Import libreoffice_24.2.5-1.debian.tar.xz
authorRene Engelhard <rene@debian.org>
Wed, 10 Jul 2024 17:15:44 +0000 (17:15 +0000)
committerRene Engelhard <rene@debian.org>
Wed, 10 Jul 2024 17:15:44 +0000 (17:15 +0000)
[dgit import tarball libreoffice 4:24.2.5-1 libreoffice_24.2.5-1.debian.tar.xz]

473 files changed:
debian/README [new file with mode: 0644]
debian/README.Debian [new file with mode: 0644]
debian/README.Debian-source [new file with mode: 0644]
debian/README.qa [new file with mode: 0644]
debian/branding/progress.conf [new file with mode: 0644]
debian/bug-presubj [new file with mode: 0644]
debian/changelog [new file with mode: 0644]
debian/control [new file with mode: 0644]
debian/control.evolution.in [new file with mode: 0644]
debian/control.firebird.in [new file with mode: 0644]
debian/control.fonts.in [new file with mode: 0644]
debian/control.gtk3.in [new file with mode: 0644]
debian/control.gtk4.in [new file with mode: 0644]
debian/control.help.in [new file with mode: 0644]
debian/control.in [new file with mode: 0644]
debian/control.kf5.in [new file with mode: 0644]
debian/control.kf6.in [new file with mode: 0644]
debian/control.lang.in [new file with mode: 0644]
debian/control.librelogo.in [new file with mode: 0644]
debian/control.lokit.in [new file with mode: 0644]
debian/control.mediawiki.in [new file with mode: 0644]
debian/control.nlpsolver.in [new file with mode: 0644]
debian/control.plasma.in [new file with mode: 0644]
debian/control.postgresql.in [new file with mode: 0644]
debian/control.qt5.in [new file with mode: 0644]
debian/control.qt6.in [new file with mode: 0644]
debian/control.reportbuilder.in [new file with mode: 0644]
debian/control.sdk.in [new file with mode: 0644]
debian/control.test-packages.in [new file with mode: 0644]
debian/control.ure.in [new file with mode: 0644]
debian/copyright [new file with mode: 0644]
debian/gir1.2-lokdocview-0.1.maintscript [new file with mode: 0644]
debian/liblibreoffice-java.lintian-overrides [new file with mode: 0644]
debian/liblibreoffice-java.poms [new file with mode: 0644]
debian/liblibreofficekitgtk.links [new file with mode: 0644]
debian/liblibreofficekitgtk.maintscript [new file with mode: 0644]
debian/libofficebean-java.poms [new file with mode: 0644]
debian/libreoffice-avmedia-backend-gstreamer.maintscript [new file with mode: 0644]
debian/libreoffice-base-core.maintscript [new file with mode: 0644]
debian/libreoffice-base-drivers.NEWS [new file with mode: 0644]
debian/libreoffice-base-drivers.lintian-overrides [new file with mode: 0644]
debian/libreoffice-base-drivers.maintscript [new file with mode: 0644]
debian/libreoffice-base-nogui.bug-control [new file with mode: 0644]
debian/libreoffice-base-nogui.mime [new file with mode: 0644]
debian/libreoffice-base-nogui.ucf [new file with mode: 0644]
debian/libreoffice-base.NEWS [new file with mode: 0644]
debian/libreoffice-base.bug-control [new file with mode: 0644]
debian/libreoffice-base.lintian-overrides [new file with mode: 0644]
debian/libreoffice-base.maintscript [new file with mode: 0644]
debian/libreoffice-base.manpages [new file with mode: 0644]
debian/libreoffice-base.mime [new file with mode: 0644]
debian/libreoffice-base.preinst.in [new file with mode: 0644]
debian/libreoffice-base.ucf [new file with mode: 0644]
debian/libreoffice-calc-nogui.lintian-overrides [new file with mode: 0644]
debian/libreoffice-calc-nogui.mime [new file with mode: 0644]
debian/libreoffice-calc-nogui.ucf [new file with mode: 0644]
debian/libreoffice-calc.bug-control [new file with mode: 0644]
debian/libreoffice-calc.lintian-overrides [new file with mode: 0644]
debian/libreoffice-calc.maintscript [new file with mode: 0644]
debian/libreoffice-calc.manpages [new file with mode: 0644]
debian/libreoffice-calc.mime [new file with mode: 0644]
debian/libreoffice-calc.ucf [new file with mode: 0644]
debian/libreoffice-common.docs [new file with mode: 0644]
debian/libreoffice-common.links.in [new file with mode: 0644]
debian/libreoffice-common.lintian-overrides [new file with mode: 0644]
debian/libreoffice-common.maintscript [new file with mode: 0644]
debian/libreoffice-common.manpages [new file with mode: 0644]
debian/libreoffice-common.postinst.in [new file with mode: 0644]
debian/libreoffice-common.postrm.in [new file with mode: 0644]
debian/libreoffice-common.preinst.in [new file with mode: 0644]
debian/libreoffice-common.triggers.in [new file with mode: 0644]
debian/libreoffice-common.ucf [new file with mode: 0644]
debian/libreoffice-core-nogui.bug-control [new file with mode: 0644]
debian/libreoffice-core-nogui.bug-script.in [new file with mode: 0755]
debian/libreoffice-core.NEWS [new file with mode: 0644]
debian/libreoffice-core.bug-control [new file with mode: 0644]
debian/libreoffice-core.bug-script.in [new file with mode: 0755]
debian/libreoffice-core.maintscript [new file with mode: 0644]
debian/libreoffice-core.postrm.in [new file with mode: 0755]
debian/libreoffice-dev-common.maintscript [new file with mode: 0644]
debian/libreoffice-dev-doc.links [new file with mode: 0644]
debian/libreoffice-dev.maintscript [new file with mode: 0644]
debian/libreoffice-draw-nogui.bug-control [new file with mode: 0644]
debian/libreoffice-draw-nogui.mime [new file with mode: 0644]
debian/libreoffice-draw-nogui.ucf [new file with mode: 0644]
debian/libreoffice-draw.bug-control [new file with mode: 0644]
debian/libreoffice-draw.lintian-overrides [new file with mode: 0644]
debian/libreoffice-draw.maintscript [new file with mode: 0644]
debian/libreoffice-draw.manpages [new file with mode: 0644]
debian/libreoffice-draw.mime [new file with mode: 0644]
debian/libreoffice-draw.ucf [new file with mode: 0644]
debian/libreoffice-evolution.bug-control [new file with mode: 0644]
debian/libreoffice-evolution.maintscript [new file with mode: 0644]
debian/libreoffice-evolution.ucf [new file with mode: 0644]
debian/libreoffice-gnome.maintscript [new file with mode: 0644]
debian/libreoffice-gnome.ucf [new file with mode: 0644]
debian/libreoffice-gtk3.maintscript [new file with mode: 0644]
debian/libreoffice-help-ca-valencia.maintscript [new file with mode: 0644]
debian/libreoffice-help-ca.maintscript [new file with mode: 0644]
debian/libreoffice-help-common.links [new file with mode: 0644]
debian/libreoffice-help-common.maintscript [new file with mode: 0644]
debian/libreoffice-help-cs.maintscript [new file with mode: 0644]
debian/libreoffice-help-da.maintscript [new file with mode: 0644]
debian/libreoffice-help-de.maintscript [new file with mode: 0644]
debian/libreoffice-help-dz.maintscript [new file with mode: 0644]
debian/libreoffice-help-el.maintscript [new file with mode: 0644]
debian/libreoffice-help-en-gb.maintscript [new file with mode: 0644]
debian/libreoffice-help-en-us.maintscript [new file with mode: 0644]
debian/libreoffice-help-es.maintscript [new file with mode: 0644]
debian/libreoffice-help-et.maintscript [new file with mode: 0644]
debian/libreoffice-help-eu.maintscript [new file with mode: 0644]
debian/libreoffice-help-fi.maintscript [new file with mode: 0644]
debian/libreoffice-help-fr.maintscript [new file with mode: 0644]
debian/libreoffice-help-gl.maintscript [new file with mode: 0644]
debian/libreoffice-help-hi.maintscript [new file with mode: 0644]
debian/libreoffice-help-hu.maintscript [new file with mode: 0644]
debian/libreoffice-help-id.maintscript [new file with mode: 0644]
debian/libreoffice-help-it.maintscript [new file with mode: 0644]
debian/libreoffice-help-ja.maintscript [new file with mode: 0644]
debian/libreoffice-help-km.maintscript [new file with mode: 0644]
debian/libreoffice-help-ko.maintscript [new file with mode: 0644]
debian/libreoffice-help-nl.maintscript [new file with mode: 0644]
debian/libreoffice-help-om.maintscript [new file with mode: 0644]
debian/libreoffice-help-pl.maintscript [new file with mode: 0644]
debian/libreoffice-help-pt-br.maintscript [new file with mode: 0644]
debian/libreoffice-help-pt.maintscript [new file with mode: 0644]
debian/libreoffice-help-ru.maintscript [new file with mode: 0644]
debian/libreoffice-help-sk.maintscript [new file with mode: 0644]
debian/libreoffice-help-sl.maintscript [new file with mode: 0644]
debian/libreoffice-help-sv.maintscript [new file with mode: 0644]
debian/libreoffice-help-tr.maintscript [new file with mode: 0644]
debian/libreoffice-help-vi.maintscript [new file with mode: 0644]
debian/libreoffice-help-zh-cn.maintscript [new file with mode: 0644]
debian/libreoffice-help-zh-tw.maintscript [new file with mode: 0644]
debian/libreoffice-help.lintian-overrides.in [new file with mode: 0644]
debian/libreoffice-impress-nogui.bug-control [new file with mode: 0644]
debian/libreoffice-impress-nogui.mime [new file with mode: 0644]
debian/libreoffice-impress-nogui.ucf [new file with mode: 0644]
debian/libreoffice-impress.bug-control [new file with mode: 0644]
debian/libreoffice-impress.bug-script.in [new file with mode: 0644]
debian/libreoffice-impress.lintian-overrides [new file with mode: 0644]
debian/libreoffice-impress.maintscript [new file with mode: 0644]
debian/libreoffice-impress.manpages [new file with mode: 0644]
debian/libreoffice-impress.mime [new file with mode: 0644]
debian/libreoffice-impress.ucf [new file with mode: 0644]
debian/libreoffice-java-common.maintscript [new file with mode: 0644]
debian/libreoffice-kde5.maintscript [new file with mode: 0644]
debian/libreoffice-kf5.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-af.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-am.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-ar.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-as.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-ast.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-be.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-bg.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-bn.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-br.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-bs.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-ca.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-cs.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-cy.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-da.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-de.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-dz.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-el.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-en-gb.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-en-us.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-en-za.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-eo.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-es.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-et.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-eu.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-fa.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-fi.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-fr.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-ga.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-gd.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-gl.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-gu.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-gug.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-he.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-hi.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-hr.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-hu.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-id.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-in.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-is.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-it.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-ja.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-ka.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-kk.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-km.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-kmr.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-kn.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-ko.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-lt.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-lv.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-mk.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-ml.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-mn.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-mr.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-nb.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-ne.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-nl.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-nn.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-nr.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-nso.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-oc.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-om.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-or.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-pa-in.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-pl.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-pt-br.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-pt.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-ro.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-ru.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-rw.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-si.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-sk.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-sl.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-sr.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-ss.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-st.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-sv.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-ta.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-te.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-tg.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-th.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-tn.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-tr.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-ts.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-ug.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-uk.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-uz.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-ve.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-vi.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-xh.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-za.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-zh-cn.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-zh-tw.maintscript [new file with mode: 0644]
debian/libreoffice-l10n-zu.maintscript [new file with mode: 0644]
debian/libreoffice-l10n.ucf.in [new file with mode: 0644]
debian/libreoffice-librelogo.ucf [new file with mode: 0644]
debian/libreoffice-math-nogui.bug-control [new file with mode: 0644]
debian/libreoffice-math-nogui.mime [new file with mode: 0644]
debian/libreoffice-math-nogui.ucf [new file with mode: 0644]
debian/libreoffice-math.bug-control [new file with mode: 0644]
debian/libreoffice-math.lintian-overrides [new file with mode: 0644]
debian/libreoffice-math.maintscript [new file with mode: 0644]
debian/libreoffice-math.manpages [new file with mode: 0644]
debian/libreoffice-math.mime [new file with mode: 0644]
debian/libreoffice-math.ucf [new file with mode: 0644]
debian/libreoffice-nlpsolver.bug-control [new file with mode: 0644]
debian/libreoffice-nlpsolver.bug-script.in [new file with mode: 0755]
debian/libreoffice-nlpsolver.lintian-overrides [new file with mode: 0644]
debian/libreoffice-officebean.maintscript [new file with mode: 0644]
debian/libreoffice-plasma.maintscript [new file with mode: 0644]
debian/libreoffice-qt5.maintscript [new file with mode: 0644]
debian/libreoffice-report-builder-bin.maintscript [new file with mode: 0644]
debian/libreoffice-report-builder.bug-control [new file with mode: 0644]
debian/libreoffice-report-builder.maintscript [new file with mode: 0644]
debian/libreoffice-report-builder.ucf [new file with mode: 0644]
debian/libreoffice-script-provider-bsh.maintscript [new file with mode: 0644]
debian/libreoffice-script-provider-js.maintscript [new file with mode: 0644]
debian/libreoffice-script-provider-python.bug-control [new file with mode: 0644]
debian/libreoffice-script-provider-python.maintscript [new file with mode: 0644]
debian/libreoffice-sdbc-firebird.NEWS [new file with mode: 0644]
debian/libreoffice-sdbc-firebird.lintian-overrides [new file with mode: 0644]
debian/libreoffice-sdbc-firebird.maintscript [new file with mode: 0644]
debian/libreoffice-sdbc-firebird.ucf [new file with mode: 0644]
debian/libreoffice-sdbc-hsqldb.maintscript [new file with mode: 0644]
debian/libreoffice-sdbc-mysql.maintscript [new file with mode: 0644]
debian/libreoffice-sdbc-mysql.ucf [new file with mode: 0644]
debian/libreoffice-sdbc-postgresql.maintscript [new file with mode: 0644]
debian/libreoffice-sdbc-postgresql.ucf [new file with mode: 0644]
debian/libreoffice-style-breeze.maintscript [new file with mode: 0644]
debian/libreoffice-style-colibre.maintscript [new file with mode: 0644]
debian/libreoffice-style-elementary.maintscript [new file with mode: 0644]
debian/libreoffice-style-karasa-jaga.maintscript [new file with mode: 0644]
debian/libreoffice-style-sifr.maintscript [new file with mode: 0644]
debian/libreoffice-style-tango.maintscript [new file with mode: 0644]
debian/libreoffice-subsequentcheckbase.maintscript [new file with mode: 0644]
debian/libreoffice-wiki-publisher.bug-control [new file with mode: 0644]
debian/libreoffice-wiki-publisher.bug-script.in [new file with mode: 0755]
debian/libreoffice-wiki-publisher.lintian-overrides [new file with mode: 0644]
debian/libreoffice-writer-nogui.bug-control [new file with mode: 0644]
debian/libreoffice-writer-nogui.mime [new file with mode: 0644]
debian/libreoffice-writer-nogui.ucf [new file with mode: 0644]
debian/libreoffice-writer.bug-control [new file with mode: 0644]
debian/libreoffice-writer.lintian-overrides [new file with mode: 0644]
debian/libreoffice-writer.maintscript [new file with mode: 0644]
debian/libreoffice-writer.manpages [new file with mode: 0644]
debian/libreoffice-writer.mime [new file with mode: 0644]
debian/libreoffice-writer.ucf [new file with mode: 0644]
debian/libreoffice.bug-control [new file with mode: 0644]
debian/libreofficekit-data.maintscript [new file with mode: 0644]
debian/libreofficekit-dev.docs [new file with mode: 0644]
debian/libuno-cppu3t64.lintian-overrides [new file with mode: 0644]
debian/libuno-cppu3t64.symbols [new file with mode: 0644]
debian/libuno-cppuhelpergcc3-3t64.lintian-overrides [new file with mode: 0644]
debian/libuno-cppuhelpergcc3-3t64.symbols [new file with mode: 0644]
debian/libuno-purpenvhelpergcc3-3t64.lintian-overrides [new file with mode: 0644]
debian/libuno-purpenvhelpergcc3-3t64.symbols [new file with mode: 0644]
debian/libuno-sal3t64.lintian-overrides [new file with mode: 0644]
debian/libuno-sal3t64.symbols [new file with mode: 0644]
debian/libuno-salhelpergcc3-3t64.lintian-overrides [new file with mode: 0644]
debian/libuno-salhelpergcc3-3t64.symbols [new file with mode: 0644]
debian/libunoloader-java.poms [new file with mode: 0644]
debian/patches/adapt-for-new-carlito.diff [new file with mode: 0644]
debian/patches/add-access2base-doc.diff [new file with mode: 0644]
debian/patches/apparmor-allow-java.security.diff [new file with mode: 0644]
debian/patches/apparmor-cleanups.diff [new file with mode: 0644]
debian/patches/apparmor-complain.diff [new file with mode: 0644]
debian/patches/apparmor-gnupg-tofu.diff [new file with mode: 0644]
debian/patches/apparmor-mesa.diff [new file with mode: 0644]
debian/patches/apparmor-opencl.diff [new file with mode: 0644]
debian/patches/apparmor-updates.diff [new file with mode: 0644]
debian/patches/appstream-ignore-startcenter.diff [new file with mode: 0644]
debian/patches/arm-fp-mode.diff [new file with mode: 0644]
debian/patches/breakiterator-updates.diff [new file with mode: 0644]
debian/patches/build-against-shared-lpsolve.diff [new file with mode: 0644]
debian/patches/cppunit-optional.diff [new file with mode: 0644]
debian/patches/debian-debug.diff [new file with mode: 0644]
debian/patches/debian-hardened-buildflags-CPPFLAGS.diff [new file with mode: 0644]
debian/patches/debian-hardened-buildflags-no-LO-fstack-protector-strong.diff [new file with mode: 0644]
debian/patches/debian-opt.diff [new file with mode: 0644]
debian/patches/disable-flaky-tests.diff [new file with mode: 0644]
debian/patches/disable-java-in-odk-build-examples-on-zero-vm.diff [new file with mode: 0644]
debian/patches/disable-shortcuts_tab_navigation-uitest.diff [new file with mode: 0644]
debian/patches/disable-unused-test-programs.diff [new file with mode: 0644]
debian/patches/disableClassPathURLCheck.diff [new file with mode: 0644]
debian/patches/do-not-abort-on-NON_APPLICATION_FONT_USE.diff [new file with mode: 0644]
debian/patches/do-not-hide-test-output.diff [new file with mode: 0644]
debian/patches/dont-touch-urd.diff [new file with mode: 0644]
debian/patches/fix-flaky-bridgetest.diff [new file with mode: 0644]
debian/patches/fix-internal-hsqldb-build.diff [new file with mode: 0644]
debian/patches/fix-riscv64-bridge.diff [new file with mode: 0644]
debian/patches/fix-system-abseil-build.diff [new file with mode: 0644]
debian/patches/fix-system-lpsolve-build.diff [new file with mode: 0644]
debian/patches/help-msg-add-package-info.diff [new file with mode: 0644]
debian/patches/hide-math-desktop-file.patch [new file with mode: 0644]
debian/patches/icu-74.1.diff [new file with mode: 0644]
debian/patches/install-fixes.diff [new file with mode: 0644]
debian/patches/javadoc-optional.diff [new file with mode: 0644]
debian/patches/jdbc-driver-classpaths.diff [new file with mode: 0644]
debian/patches/jurt-soffice-location.diff [new file with mode: 0644]
debian/patches/make-package-modules-not-suck.diff [new file with mode: 0644]
debian/patches/mediwiki-oor-replace.diff [new file with mode: 0644]
debian/patches/mention-java-common-package.diff [new file with mode: 0644]
debian/patches/moreIconsDialog-accesses-internet.diff [new file with mode: 0644]
debian/patches/no-check-if-root.diff [new file with mode: 0644]
debian/patches/no-opencl-per-default.diff [new file with mode: 0644]
debian/patches/no-packagekit-per-default.diff [new file with mode: 0644]
debian/patches/pdfium-ports.diff [new file with mode: 0644]
debian/patches/reportdesign-mention-package.diff [new file with mode: 0644]
debian/patches/reviewed-breakIterator-customizations.diff [new file with mode: 0644]
debian/patches/search-usr-share-for-images.diff [new file with mode: 0644]
debian/patches/sensible-lomua.diff [new file with mode: 0644]
debian/patches/series [new file with mode: 0644]
debian/patches/split-evoab.diff [new file with mode: 0644]
debian/patches/split-sdbc-firebird-mariadb.diff [new file with mode: 0644]
debian/patches/system-officeotron-and-odfvalidator.diff [new file with mode: 0644]
debian/patches/use-PyConfig.diff [new file with mode: 0644]
debian/patches/use-mariadb-java-instead-of-mysql-java.diff [new file with mode: 0644]
debian/patches/we-dont-have-the-needed-fonts.diff [new file with mode: 0644]
debian/python3-access2base.links [new file with mode: 0644]
debian/python3-uno.NEWS [new file with mode: 0644]
debian/python3-uno.lintian-overrides [new file with mode: 0644]
debian/python3-uno.preinst.in [new file with mode: 0644]
debian/rules [new file with mode: 0755]
debian/scripts/fix_component_tarballs.sh [new file with mode: 0755]
debian/scripts/get_libebook_dep.sh [new file with mode: 0755]
debian/scripts/gid2pkgdirs.sh [new file with mode: 0755]
debian/scripts/joinctrl.py [new file with mode: 0755]
debian/scripts/locale-gen [new file with mode: 0755]
debian/scripts/move-if-change [new file with mode: 0755]
debian/scripts/stat_pos.sh [new file with mode: 0755]
debian/shell-lib-extensions.sh [new file with mode: 0644]
debian/shell-lib-lool.sh [new file with mode: 0644]
debian/shlibs.override.icu [new file with mode: 0644]
debian/shlibs.override.libc [new file with mode: 0644]
debian/shlibs.override.libetonyek [new file with mode: 0644]
debian/shlibs.override.liblangtag [new file with mode: 0644]
debian/shlibs.override.libmwaw [new file with mode: 0644]
debian/shlibs.override.libodfgen [new file with mode: 0644]
debian/shlibs.override.librevenge [new file with mode: 0644]
debian/shlibs.override.libstaroffice [new file with mode: 0644]
debian/shlibs.override.libvisio [new file with mode: 0644]
debian/shlibs.override.libwpd [new file with mode: 0644]
debian/shlibs.override.libwpg [new file with mode: 0644]
debian/shlibs.override.libwps [new file with mode: 0644]
debian/shlibs.override.orcus [new file with mode: 0644]
debian/soffice.sh [new file with mode: 0644]
debian/source/format [new file with mode: 0644]
debian/source/include-binaries [new file with mode: 0644]
debian/source/lintian-overrides [new file with mode: 0644]
debian/templates/debian-presentation-background.xcf [new file with mode: 0644]
debian/templates/debian-presentation.otp [new file with mode: 0644]
debian/templates/soffice-template.desktop.in [new file with mode: 0644]
debian/tests/access2base-import [new file with mode: 0755]
debian/tests/control [new file with mode: 0644]
debian/tests/control.in [new file with mode: 0644]
debian/tests/control.junit.in [new file with mode: 0644]
debian/tests/cppunit-connectivity-mysql [new file with mode: 0755]
debian/tests/cppunit-subsequentcheck [new file with mode: 0755]
debian/tests/junit-subsequentcheck [new file with mode: 0755]
debian/tests/odk-build-examples [new file with mode: 0755]
debian/tests/odk-build-examples-java [new file with mode: 0755]
debian/tests/patches/cppunit-standalone.diff [new file with mode: 0644]
debian/tests/patches/disable-db-tests.diff [new file with mode: 0644]
debian/tests/patches/junit-subsequentcheck-standalone.diff [new file with mode: 0644]
debian/tests/patches/odk-build-examples-standalone.diff [new file with mode: 0644]
debian/tests/patches/smoketest-disable-extension-tests.diff [new file with mode: 0644]
debian/tests/patches/smoketest-standalone.diff [new file with mode: 0644]
debian/tests/patches/testtools-standalone.diff [new file with mode: 0644]
debian/tests/patches/uicheck-standalone.diff [new file with mode: 0644]
debian/tests/pyuno-import [new file with mode: 0755]
debian/tests/scriptforge-import [new file with mode: 0755]
debian/tests/slowcheck [new file with mode: 0755]
debian/tests/smoketest [new file with mode: 0755]
debian/tests/test-extension [new file with mode: 0755]
debian/tests/test-extension-shared [new file with mode: 0755]
debian/tests/testtools-bridgetest-with-java [new file with mode: 0755]
debian/tests/testtools-bridgetest-without-java [new file with mode: 0755]
debian/tests/uicheck-cui [new file with mode: 0755]
debian/tests/uicheck-sc [new file with mode: 0755]
debian/tests/uicheck-sd [new file with mode: 0755]
debian/tests/uicheck-sfx2 [new file with mode: 0755]
debian/tests/uicheck-svx [new file with mode: 0755]
debian/tests/uicheck-sw [new file with mode: 0755]
debian/tests/uicheck-uitest [new file with mode: 0755]
debian/tests/uicheck-writerperfect [new file with mode: 0755]
debian/tests/unitcheck [new file with mode: 0755]
debian/tests/uno-import [new file with mode: 0755]
debian/upstream/metadata [new file with mode: 0644]
debian/upstream/signing-key.asc [new file with mode: 0644]
debian/ure-java.bug-script.in [new file with mode: 0644]
debian/ure-java.lintian-overrides [new file with mode: 0644]
debian/vars.alpha [new file with mode: 0644]
debian/vars.amd64 [new file with mode: 0644]
debian/vars.arm [new file with mode: 0644]
debian/vars.arm64 [new file with mode: 0644]
debian/vars.armel [new file with mode: 0644]
debian/vars.armhf [new file with mode: 0644]
debian/vars.hppa [new file with mode: 0644]
debian/vars.i386 [new file with mode: 0644]
debian/vars.ia64 [new file with mode: 0644]
debian/vars.kfreebsd-amd64 [new file with mode: 0644]
debian/vars.kfreebsd-i386 [new file with mode: 0644]
debian/vars.loong64 [new file with mode: 0644]
debian/vars.m68k [new file with mode: 0644]
debian/vars.mips [new file with mode: 0644]
debian/vars.mips64 [new file with mode: 0644]
debian/vars.mips64el [new file with mode: 0644]
debian/vars.mipsel [new file with mode: 0644]
debian/vars.powerpc [new file with mode: 0644]
debian/vars.powerpcspe [new file with mode: 0644]
debian/vars.ppc64 [new file with mode: 0644]
debian/vars.ppc64el [new file with mode: 0644]
debian/vars.riscv64 [new file with mode: 0644]
debian/vars.s390x [new file with mode: 0644]
debian/vars.solaris-i386 [new file with mode: 0644]
debian/vars.sparc [new file with mode: 0644]
debian/vars.sparc64 [new file with mode: 0644]
debian/watch [new file with mode: 0644]
debian/xmerge-javadoc.in [new file with mode: 0644]
tarballs/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip [new file with mode: 0644]
tarballs/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip [new file with mode: 0644]
tarballs/Java-WebSocket-1.5.4.tar.gz [new file with mode: 0644]
tarballs/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip [new file with mode: 0644]
tarballs/dtoa-20180411.tgz [new file with mode: 0644]
tarballs/pdfium-6179.tar.bz2 [new file with mode: 0644]
tarballs/skia-m116-2ddcf183eb260f63698aa74d1bb380f247ad7ccd.tar.xz [new file with mode: 0644]

diff --git a/debian/README b/debian/README
new file mode 100644 (file)
index 0000000..01e7967
--- /dev/null
@@ -0,0 +1,83 @@
+LibreOffice build system
+------------------------
+
+Building the packages from source
+=================================
+Overview:
+  apt-get source libreoffice
+  apt-get build-dep libreoffice (to install build dependencies)
+  cd <source directory>
+  debuild
+
+Changing the build behaviour with DEB_BUILD_OPTIONS
+---------------------------------------------------
+These options are supported:
+
+  debug     - build with FULL debug symbols. Default is just to build
+             with SMALL ones since the deb otherwise gets too big
+             ((>400M, ca. 1GB I-S))
+
+  ccache    - enable the use of ccache during the build. This is highly
+             recommended if you plan on building the package more than
+              once, or doing any development on the packages. Be aware
+              that you need EXTRAPACKAGES="ccache" in /etc/pbuilderrc
+              when trying to build libreoffice with ccache in
+              $DEB_BUILD_OPTIONS under pbuilder (this has no effect
+              on speed, hough because the cache does not persist in
+              pbuilder)
+
+  parallel=<n>
+            - enable n projects to be built in parallel.
+              The log output can get a little confusing, and some projects
+             may fail still. You need to remove config.status if you
+             change this value after interrupting a build.
+
+  lang=<code>
+           - Build only the specified language
+
+  nocheck
+           - disable run of tests when enabled in rules
+
+
+The targets that are built during the package build
+---------------------------------------------------
+
+- targets run during the package build -
+
+unpack             - Does prerequisites for the build: packing, unpacking etc.
+
+build              - as the name says
+
+install            - Copy files from debian/tmp/pkg into the correct locations
+                     for the final package layout in debian/libreoffice*
+                    where we need to do that here because it affects arch-dep
+                    and arch-indep stuff and therefore cannot be done in
+                    install-arch / install-indep.
+
+install-arch       - installs arch-dependent stuff into the arch-dep. packages
+install-indep      -  "       "-independent   "     "   "    "-indep. packages
+
+langpackgs         - Installs the language packgs
+helppkgs           - Installs the help packages
+
+maintscripts       - Generates  the maintainer scripts
+
+get-orig-source           - gets original source tarballs and unpacks them
+                     GIT_BASEURL can be set to a local mirror
+                     GIT_BRANCH is the branch to clone from the repos
+                     GIT_TAG is tag that should be packed
+                     GIT_BRANCH and GIT_TAG can both be master
+
+Building the package from git master
+====================================
+To do a build from git master, do:
+  mkdir libreoffice-git
+  cd libreoffice-git
+  git clone https://salsa.debian.org/libreoffice-team/libreoffice/libreoffice.git debian
+  ./debian/rules unpack GIT_BRANCH=master GIT_TAG=master SOURCE_TARBALLS=n
+  dpkg-buildpackage
+
+Build system file layout
+========================
+debian/scripts:
+  Directory containing various debian-specific build-related scripts.
diff --git a/debian/README.Debian b/debian/README.Debian
new file mode 100644 (file)
index 0000000..c27c3d5
--- /dev/null
@@ -0,0 +1,307 @@
+       Readme for libreoffice package for Debian
+       --------------------------------------------
+
+Contents
+========
+Introduction
+Quick start
+Printer setup
+  Native CUPS support
+  Non-CUPS systems
+Language support
+  Spellcheck dictionaries, Hyphenation patterns and Thesauri
+  Help packages
+Display and crashing problems
+  X server crashes
+Font problems
+  Why are the menu fonts smaller than in older versions?
+  Changing the default user interface font typeface for non-KDE/Gnome desktops
+Disabling the splash screen
+AppArmor problems
+More information about LibreOffice in Debian
+
+
+Introduction
+============
+Welcome to the LibreOffice packages for the Debian distribution.  These
+packages are of the release of LibreOffice with the following
+modifications:
+
+  * Packaged as libreoffice-core (architecture-dependent core files),
+    libreoffice-common (architecture-independent common files),
+    libreoffice-{calc,writer,draw,impress,base} (the LibreOffice modules)
+    libreoffice-l10n-<lang> and libreoffice-help-<lang> and
+    other subpackages (-filters-* for lesser used filters, -gtk/-gnome/-kde,
+    ttf-opensymbol for the OpenSymbol font, ...).
+
+  * Integration with other Debian packages:
+       - Global desktop integration for all users for KDE and Gnome desktops.
+         Menu entries for all window managers that support the Debian 'menu'
+         package.
+
+  * Some extra features not yet present in official releases:
+       - Many of the patches included in the Ximian edition
+
+  * Extra documentation - this README and man pages.
+
+
+Quick start
+===========
+
+To start using LibreOffice, execute the command
+
+   libreoffice
+
+as the user which you wish to start LibreOffice as.  This will create the
+necessary user files in ~/.libreoffice/3 for you.  Alternatively, you
+can start LibreOffice from the menus, if you have the menu package
+installed/use KDE or GNOME.
+
+Printing
+========
+
+Printing on CUPS systems
+------------------------
+The Debian packages include native CUPS support from version 1.1.1-3.  This
+is standard in all OpenOffice.org versions since 2.0.
+When LibreOffice detects a CUPS system, it will download printer settings for
+all CUPS queues, and these can be set from within the printer properties dialog.
+
+If you wish to add additional filters or print commands, you can add them
+using 'spadmin'.  Note that the 'Add a printer' option is disabled - you
+should add printers using your favourite CUPS frontend.
+
+When creating a new document, LibreOffice will use the default paper size of
+your default CUPS printer queue.  If your new documents have the wrong paper
+size, please check the configuration of your printer.
+
+Non-CUPS systems (lpr, lprng, SAL_DISABLE_CUPS=1)
+---------------------------------
+There is a tool supplied with LibreOffice for setting up printers.  You can
+execute this with the command
+
+  /usr/lib/openoffice/program/spadmin
+
+To change the page size and other default settings on non-CUPS systems,
+modify /etc/openoffice/psprint.conf.  The settings are documented in there.
+
+Language support
+================
+You can get foreign language support by installing the
+libreoffice-l10n-<lang> package for your language.  You will also need the
+'locales' (or belocs-locales-data for some locales, alternatively locales-all
+if you want all locales) package installed.
+The user interface language is selected according to your locale(1) settings.
+
+To change the user interface language for all users, run
+
+  dpkg-reconfigure locales
+
+[ This is not needed when you install locales-all  ]
+
+To change the language for just one user, you must arrange for the LC_MESSAGES
+or LANG environment variable to be set.  You can list all available locales
+with the command 'locale -a'.
+For example, to run LibreOffice in German from the command line:
+
+  LANG=de_DE libreoffice
+
+Spellcheck dictionaries, Hyphenation patterns and Thesauri
+----------------------------------------------------------
+Currently, there are dictionaries available for Afrikaans, Arabic, Armenian,
+Bulgarian, Catalan, Croatian, Czech, Danish, Dutch, English (AUS/GB/US),
+Esperanto, Estonian, Farsi, Finnish, French, Galician, German (DE/CH/AT),
+Greek, Hebrew, Hungarian, Irish (Gaeilge), Italian, Kurdish, Latvian,
+Lithuanian, Manx Gaelic, Norwegian Bokmal, Norwegian Nynorsk, Polish,
+Portuguese, Portuguese (Brazilian), Russian, Scots Gaelic, Slovak, Slovenian,
+Spanish, Swahili, Swedish, Thai, Ukrainian and Uzbek.
+Dictionaries are packaged as myspell-<lang> (or, for newer ones improved
+for hunspell hunspell-<lang>).
+
+Currently, there are thesauri available for Czech, English (AUS/GB/US),
+German (DE/CH), Italian, Polish and Slovak.
+Thesauri are packaged as mythes-<lang>
+
+Currently, there are hyphenation patterns available for English (USA),
+Croatian, Estonian, German, Hungarian, Italian, Polish, Slovenian and
+Lithuanian.
+Hyphenation patterns are packaged as hyphen-<lang>.
+
+Help packages
+-------------
+Currently, there are localized help packages available for
+Bulgarian, Chinese, Czech, Danish, Dutch, English (GB), English (USA),
+Estonian, French, Galician, German, Hungarian, Italian, Japanese, Khmer,
+Macedonian, Polish, Portuguese (Brazil), Russian, Slovakian, Slovenian and
+Spanish and Swedish.
+They are packaged as libreoffice-help-<lang>.
+
+Problems
+================================
+
+Here are some problems that have been reported with this version.  If you do
+not see your problem here, please check for open bug reports:
+
+  http://bugs.debian.org/debian-openoffice@lists.debian.org
+
+1. If you are using NFS mounted file systems, you should make sure that locking
+is functioning:
+
+  'Make sure NFS lockd/statd is running on the client, or mount the NFS export
+  with the 'nolock' option.
+
+  If /usr gets mounted from an initrd, check 'ps' output once the system is
+  fully booted to ensure that you see a [lockd] kernel process, or an
+  'rpc.lockd' / 'rpc.statd' userspace process.
+
+  If not, just issue your mount command again (no need to even -o remount it
+  seems!) and run /etc/init.d/nfs-common restart.' (Thanks to Gavin Hamill)
+
+  See this mailing list thread for more information:
+    http://lists.debian.org/debian-openoffice/2004/debian-openoffice-200402/msg00223.html
+
+X server crash with Matrox cards
+--------------------------------
+If your X server is using the mga driver, you may find that your X server
+crashes.  You can work around this problem by adding this line to the mga
+Device section:
+
+  Option "XaaNoScreenToScreenColorExpandFill"
+
+There is a bug already open against xserver-xfree86 for this problem.  Thanks
+to Philip Armstrong for this information.
+
+LibreOffice crash with nVidia cards
+--------------------------------------
+It seems that LibreOffice can trigger some obscure bugs in the X server
+drivers for Nvidia cards too, especially if you have more than one processor.
+Try updating your drivers to the latest version.
+
+Moreover LibreOffice may hang and takes X with it when RenderAccel
+is enabled when using the proprietary nVidia Drivers. Disabling this option
+helps then.
+
+Font problems
+=============
+
+Why are the menu fonts smaller than in older versions?
+------------------------------------------------------
+This is caused by a change in the way LibreOfffice interprets your X server DPI
+setting.
+This setting, when correctly configured, means that software can display text
+at its true size on the display.
+
+The official OpenOffice.org version assumes that anyone who has their X server
+configured with a DPI of less than 96 has not actually configured it at all,
+and sets it back to 96.  Unfortunately, this has the side effect that
+displays with a lower DPI setting, such as some LCD laptop displays, cannot
+display the page at its true size.
+
+So you can fix this by correctly setting the DPI for your X server.  Gnome
+users will find that it is set to 96 DPI by default; others may need to edit
+their X server configuration.
+
+The best way to get the correct DPI setting is to add a 'DisplaySize' entry to
+the Monitor section.  From the XF86Config-4 man page:
+
+  DisplaySize  width height
+    This optional entry gives the width and height, in millimetres, of the
+    picture area of the monitor. If given this is used to calculate the
+    horizontal and vertical pitch (DPI) of the screen.
+
+If you set this value correctly, X will calculate and use the correct DPI
+setting, even if you use several different display resolutions.
+
+From Nikita V. Youshchenko <yoush at cs.msu.su>:
+
+- Many display manager configurations pass the option "-dpi 100" to the X
+  server by default, overriding any autodetected DPI.  This has to be removed
+  for DisplaySize to work.  The file that you need to edit varies depending on
+  the way your X server is started:
+    xdm: /etc/X11/xdm/Xservers
+    kdm: /etc/kde3/kdm/Xservers
+    gdm: /etc/gdm/gdm.conf
+    startx: /etc/X11/xinit/xserverrc
+
+- Gnome's gconf overrides the autodetected DPI, by setting Xft.dpi to a value
+  entered in configuration dialog, 96 by default.  I don't know what is
+  the clean fix for this. Perhaps it should be fixed on the Gnome side.
+
+From Juergen Kreileder <jk at blackdown.de>:>
+
+- Note that with most recent graphics cards and monitors XFree86 is able to
+  get the monitor size (and thus the correct dpi value) through ddc.
+    (**) NVIDIA(0): Validated modes for display device DFP-0:
+    (**) NVIDIA(0): Default mode "1600x1200": 189.0 MHz, 87.5 kHz, 70.0 Hz
+    (II) NVIDIA(0): Virtual screen size determined to be 1600 x 1200
+    (--) NVIDIA(0): Display dimensions: (410, 310) mm
+    (--) NVIDIA(0): DPI set to (99, 98)
+  (That's with the proprietary NVIDIA drivers but other XFree86 drivers have
+  that support too.)
+
+If you use KDE or Gnome, LibreOffice will use the same font face and size as
+your desktop environment.  If you use another window manager, you can either
+let it pick a default font itself, or change the font to be used (see next
+section), or set the OOO_FORCE_DESKTOP environment variable to
+kde (for kde3)/kde4 or gnome, to use KDE or Gnome settings respectively.
+
+Changing the default user interface font typeface for non-KDE/Gnome desktops
+----------------------------------------------------------------------------
+If you do not want to use KDE or Gnome settings and want to change font sizes
+within LibreOffice, you can configure the user interface font as follows:
+
+- Font size -
+
+You can change the font scaling using the user interface:
+
+   Tools Menu -> Options -> View -> Scale
+
+- Font typeface -
+
+You can change the default font typeface by replacing it with a different font
+installed on your system. This can be done using the font replacement function.
+Choose Tools - Options - LibreOffice - Font Replacement to access this
+function.
+
+To change the font of the LibreOffice user interface, you have to replace
+the default font "Andale Sans UI" with another font and mark the "always"
+setting for this replacement.  "Andale Sans UI" is not selectable and has to be
+typed in. The replacement font has to be a font which supports the requested
+locale ( e.g for Korean language the replacement font has to be a font
+including Korean characters).
+
+Refer to the LibreOffice Help for a detailed explanation of the font
+replacement dialog.
+
+Disabling the splash screen
+===========================
+If you don't like the splash screen staying in front of other windows while
+LibreOffice is loading, you can disable it by editing
+/etc/openoffice/sofficerc.  Change Logo=1 to Logo=0.
+
+AppArmor problems
+=================
+
+LibreOffice in Debian ships with AppArmor profiles:
+
+    /etc/apparmor.d/usr.lib.libreoffice.*
+
+To debug issues with these AppArmor profiles, see:
+
+    https://wiki.debian.org/AppArmor/Debug
+
+If you are using custom settings such as a custom env:UserInstallation
+directory, you may need to adjust them to match your local setup.
+In this example, you would need to add your custom
+env:UserInstallation to @{libo_user_dirs} in the
+usr.lib.libreoffice.program.soffice.bin profile.
+
+More information about LibreOffice in Debian
+===============================================
+Please read the official README.gz (in the same directory as this file), too.
+
+If you have questions, either post to our the mailing list:
+
+   http://lists.debian.org/debian-openoffice
+
+The Debian LibreOffice team
diff --git a/debian/README.Debian-source b/debian/README.Debian-source
new file mode 100644 (file)
index 0000000..5bc3f54
--- /dev/null
@@ -0,0 +1,103 @@
+Package directory modes
+=======================
+The packages can be built directly from a set of git checkouts (vcs mode),
+or from a set of release tarballs (tarball mode).
+
+Vcs mode is useful if you want to work on libreoffice during the development
+cycle. You can check out the latest sources and track them while you make
+changes.
+
+Tarball mode is used to prepare packages of official libreoffice releases
+from the tarballs created by upstream.
+
+Source package creation steps for tarball mode
+==============================================
+The .orig.tar.gz consists of the (separate) source tarballs available
+from The Document Foundation from
+http://download.documentfoundation.org/libreoffice/src/<version/
+
+The libreoffice-x.y.z.a.tar.xz is taken verbatim as original tarball:
+$ ln -s libreoffice-x.y.z.a.tar.xz libreoffice_x.y.z.orig.tar.xz
+$ tar xfvJ libreoffice-x.y.z.a.tar.xz
+
+For a full build you also need helpcontent2 and translations (and the external
+modules' tarballs) which normally are git submodules and/or downloaded during
+the build.
+
+As dpkg-source expects e.g. helpcontent2 as a subdir we can't directly
+symlink (as the tarball contains libreoffice-x.y.z.a/helpcontent2).
+We need to create them manually/repack them:
+
+$ tar xfvJ libreoffice-helpcontent2-x.y.z.a.tar.xz
+$ tar xfvJ libreoffice-translations-x.y.z.a.tar.xz
+$ cd libreoffice-x.y.z.a
+$ for i in helpcontent2 translations tarballs; do \
+       tar cfvJ ../libreoffice_5.2.1.orig-$i.tar.xz $i; \
+  done
+
+The get-orig-source debian/rules target does this with our custom
+mk-origtargz script.
+
+Given those files are not in the tarballs above they need to be removed
+as otherwise dpkg complains
+$ rm ChangeLog-*
+
+We also need the "tarballs".
+A standard upstream build downloads it during the build, but we neither can't nor want it here of course. So:
+
+$ rm -rf tarballs
+$ mkdir -p tarballs
+$ ./autogen.sh $(filter-out --disable-fetch-external,$(CONFIGURE_FLAGS)) --with-all-tarballs
+$ make download gb_LO_VER=<version>
+
+or base on an old version and add/remove the files manually and/or symlink
+to the old version if this didn't change - see git diff of download.lst. This
+is even better given we probably want to add only needed stuff there, and not
+all tarballs (most of those we don't use)
+
+See the "Format: 3.0 (quilt)" section dpkg-source(1) for more details.
+
+Package directory layout - vcs mode
+===================================
+
+In vcs mode we are working directly from checkouts of the libreoffice sources.
+
+We pull in sources to these places:
+
+ "top" directory - checkout of LO's "core" repo
+ debian - git packaging repository from pkg-openoffice project on alioth
+ helpcontent2 - checkout of LO's "help" repo (git submodule)
+ translations - checkout of LO's "translations" repo (git submodule)
+ tarballs - see above in tarball mode
+
+$ git clone git://gerrit.libreoffice.org/core
+$ cd core
+$ git submodule init
+
+(maybe remove dictionaries again, see .git/config, we don't need it here.)
+
+./g pull -r (git pull -r, but also does the necessary steps for the submodules)
+
+For tarballs/, see above
+
+Build profiles
+==============
+
+Except the "common" build profiles
+ - nodoc
+ - nocheck
+ - nopython
+ - nojava
+ - nogir
+this source package also has 
+ - an own one which controls whether opens___.ttf of fonts-opensymbol is rebuilt
+   (which needs fontforge-nox | fontforge) (pkg.libreoffice.opensymbolbuild, default on arch
+   inde builds) or not.
+   If this is disabled you must provide opens___.ttf itself since the upstream build will fail
+   wiithout it being present. The canonical way (which is what upstream does per default actually)
+   is to put https://dev-www.libreoffice.org/extern/f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf
+   into tarballs/. It will be picked up from there.
+ - Then we get a fonts-opensymbol Build-Depends-Arch to make arch-dep builds use the
+   rebuilt font. In case this makes problem this can be built still by
+   debuild (-b) -Ppkg.libreoffice.opensymbolbuild
+
diff --git a/debian/README.qa b/debian/README.qa
new file mode 100644 (file)
index 0000000..3da75a9
--- /dev/null
@@ -0,0 +1,59 @@
+LibreOffice QA Tools
+
+smoketest
+=========
+
+smoketest executes a set of macros that create a minimal document in
+each of LibreOffice's applications, tests cut&paste and
+saving/loading in various formats.
+
+Invoke it as oosmoketest.
+
+This program manipulates the LibreOffice user configuration, USE IT
+WITH A DEDICATED USER ACCOUNT if you value your settings.
+
+qadevOOo
+========
+
+qadevOOo is a framework for executing tests for the LibreOffice
+API.  It is documented at
+http://qa.openoffice.org/qadevOOo_doc/user-guide.html
+
+Predefined properties files exist in /usr/lib/openoffice/qadevOOo.
+
+Invoke it like e.g:
+
+  ootestapi -ini /usr/lib/openoffice/qadevOOo/java.props -o sd.SdMasterPage
+
+That properties files specify AppExecutionCommand, i.e. an office will
+be started if necessary. Some tests, however seem to work better if
+the office was started manually, as written in the user guide.
+
+  /usr/lib/openoffice/program/soffice "-accept=socket,host=localhost,port=8100;urp;"
+
+Use this invocation and not ooffice to prevent interference with the
+quickstarter code.
+
+testtool
+========
+
+testtool is a framework for executing tests by automating actions in
+LibreOffice's user interface. It is documented at
+http://qa.openoffice.org/qatesttool/index.html
+
+Test scripts for testtool are available in the
+libreoffice-qa-ui-tests package.
+
+Start it as ootesttool.
+
+If you're starting it for the first time, create a profile in
+Extras->Settings where you specify the location of test scripts and
+output path for log files. The default values point to the scripts
+from the libreoffice-qa-ui-tests package, so simply giving a name
+to the profile and pressing the "New" button is enough.
+
+Then open a test script and press F5 to start the test.
+
+Some test scripts may change your LibreOffice user
+configuration. USE IT WITH A DEDICATED USER ACCOUNT if you value your
+settings.
diff --git a/debian/branding/progress.conf b/debian/branding/progress.conf
new file mode 100644 (file)
index 0000000..59ff72c
--- /dev/null
@@ -0,0 +1 @@
+PROGRESSBARCOLOR=215,7,81
diff --git a/debian/bug-presubj b/debian/bug-presubj
new file mode 100644 (file)
index 0000000..b0b6cfc
--- /dev/null
@@ -0,0 +1,61 @@
+Reporting a bug against LibreOffice
+--------------------------------------
+I) Make sure it's a LibreOffice bug after all: #398923 and its friends for
+   example are not.
+   Set the Version: header right. If you found a bug in a specific version,
+   set that as version:, even if you in the meanwhile upgraded. If you are on
+   an up-to-date version and tried old versions and they have the bug, too, set
+   the Version: header to the earliest version you found it in (of course, if
+   versions inbetween don't have the bug use the version in which it reappeared
+   and sustained to the current version)
+
+II) Check on the BTS (http://bugs.debian.org/src:libreoffice) whether the
+   bug already is reported. Do *NOT* report a new one then. For judging whether
+   it's already reported, read *ALL* the bugs, think, try and use common sense.
+
+III) If you have crashes with a document, try another one. If only that or
+    similar docs causes problems please attach THIS (or a similar type one
+    causing it). Otherwise, don't file a bug, we can't look at it anyway.
+
+IV) Please attach more info if possible (see
+    https://wiki.documentfoundation.org/QA/BugReport/Debug_Information#GNU.2FLinux).
+    Install libreoffice-*-dbgsym or libreoffice-dbg before doing this (and maybe
+    the packages it Recommends and/or -dbgsym/-dbg of the libraries LO depends
+    on).
+    Please note that those *-dbgsym packages are not in the main archive; you
+    need to add the debug archive for that.
+    See https://wiki.debian.org/AutomaticDebugPackages
+    Please also read /usr/share/doc/libreoffice-common/README.gz for common
+    problems ("Problems During Program Startup")
+    If you have NFS/Samba/... file locking problems (i.e. files opened
+    read-only when they should be read-write), also see the "File Locking"
+    section in above file.
+
+V) If the bug is also in the version you can get from www.libreoffice.org, file
+   it there (see https://wiki.documentfoundation.org/QA/BugReport) in the first
+   place. If you really think this also should be a bug in the Debian BTS
+   (because it's (release-)critical or otherwise important) please file a bug
+   there too *BUT* note the TDF bug number in the bug or mark it forwarded
+   yourself if you can. Especially this is for feature requests.
+   If you tested other LibreOffice packages and the bug is (not) in version
+   foo from bar, mention that, too.
+
+VI) Only report bugs on completely up-to-date systems. Don't file bugs on a
+    obsolete version and neither on sid/testing systems really old. Nor on
+    backports, see https://backports.debian.org/Instructions/#index6h2. If bugs
+    got fixed in sid, it doesn't make sense to file them anymore. (Exception
+    is security bugs or really critical bugs which should be get fixed in
+    stable.) When you think a dependency is missing/wrong/too lax please be
+    *sure* that this is the case before reporting it. Most times it isn't.
+    Use common sense and the bug severities for judging here. When you think
+    you have an up-to-date system, check whether you really have one.
+    (And do a dist-upgrade, try to reproduce the bug again).
+    Also don't report bugs on broken mix systems unless you are sure about the
+    dependencies/conflicts (see above).
+
+VII) Please give as much info as possible (installed LibreOffice packages, installed
+     extensions, "special" configs, additions, changes, whatever). Better too
+     much than too less. (See #396225 for example which was caused by an
+     unsupportable, non-free extension)
+
+Thanks.
diff --git a/debian/changelog b/debian/changelog
new file mode 100644 (file)
index 0000000..d83414e
Binary files /dev/null and b/debian/changelog differ
diff --git a/debian/control b/debian/control
new file mode 100644 (file)
index 0000000..494ecc5
Binary files /dev/null and b/debian/control differ
diff --git a/debian/control.evolution.in b/debian/control.evolution.in
new file mode 100644 (file)
index 0000000..ded447f
--- /dev/null
@@ -0,0 +1,18 @@
+Package: libreoffice-evolution
+Architecture: %OOO_BASE_ARCHS%
+Section: gnome
+Depends: libreoffice-base,
+         libreoffice-common (>= 1:7.0.0~alpha~),
+         libreoffice-core (= ${binary:Version}),
+         ${libebook-dep},
+         ${misc:Depends},
+         ${shlibs:Depends}
+Replaces: libreoffice-common (= 4:24.2.1-3)
+Recommends: evolution
+Description: office productivity suite -- Evolution addressbook support
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package allows LibreOffice to access Evolution address books.
+ You need to install evolution separately.
+
diff --git a/debian/control.firebird.in b/debian/control.firebird.in
new file mode 100644 (file)
index 0000000..89cc8b3
--- /dev/null
@@ -0,0 +1,12 @@
+Package: libreoffice-sdbc-firebird
+Depends: libreoffice-core-nogui | libreoffice-core, ${shlibs:Depends}, ${misc:Depends}, ${firebird-engine-depends}
+Architecture: %OOO_FIREBIRD_ARCHS%
+Section: database
+Enhances: libreoffice-base-drivers
+Description: Firebird SDBC driver for LibreOffice
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ The Firebird SDBC Driver allows one to use the Firebird database from
+ LibreOffice without any wrapper layer such as ODBC or JDBC.
+
diff --git a/debian/control.fonts.in b/debian/control.fonts.in
new file mode 100644 (file)
index 0000000..f52165d
--- /dev/null
@@ -0,0 +1,13 @@
+Package: fonts-opensymbol
+Section: fonts
+Architecture: all
+Multi-Arch: foreign
+Depends: ${misc:Depends}
+Recommends: fontconfig
+Replaces: ttf-opensymbol
+Provides: ttf-opensymbol
+Description: OpenSymbol TrueType font
+ This package contains the OpenSymbol TrueType font included in
+ LibreOffice. This font contains symbols (like fonts as Wingdings(tm)),
+ bullets (needed for bullets in LibreOffice) and non-latin character
+
diff --git a/debian/control.gtk3.in b/debian/control.gtk3.in
new file mode 100644 (file)
index 0000000..ad842c7
--- /dev/null
@@ -0,0 +1,50 @@
+Package: libreoffice-gtk3
+Architecture: %OOO_ARCHS%
+Depends: libreoffice-core (= ${binary:Version}),
+         ${misc:Depends},
+         ${shlibs:Depends}
+Suggests: libreofficekit-data
+Recommends: gstreamer1.0-gtk3
+Section: gnome
+Enhances: libreoffice
+Description: office productivity suite -- GTK+ 3 integration
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the GTK+ plugin for drawing LibreOffices widgets
+ with GTK+ 3 and GTK+/GNOMEish print dialog when running under GNOME.
+
+Package: gir1.2-lokdocview-0.1
+Architecture: %OOO_ARCHS%
+Section: introspection
+Build-Profiles: <!nogir>
+Depends: ${gir:Depends}, ${misc:Depends}, liblibreofficekitgtk (= ${binary:Version})
+Description: GTK+ 3 widget wrapping LibreOffice functionality - introspection
+ LOKDocView is the GTK+ 3 widget that wraps the libreoffice functionality and
+ exposes a simple API for applications to use this widget.
+ .
+ This package contains the Introspection data.
+
+Package: liblibreofficekitgtk
+Section: gnome
+Architecture: %OOO_ARCHS%
+Depends: ${shlibs:Depends}, ${misc:Depends}, libreofficekit-data
+Replaces: libreoffice-gtk3 (<< 1:5.2.0~)
+Breaks: libreoffice-gtk3 (<< 1:5.2.0~)
+Recommends: libreoffice-gtk3
+Description: GTK+ 3 widget wrapping LibreOffice functionality
+ This package contains a (basic) GTK+ document viewer widget (used
+ by e.g. LOKDocView)
+
+Package: libreofficekit-data
+Architecture: all
+Section: web
+Depends: ${misc:Depends}
+Recommends: gir1.2-lokdocview-0.1
+Description: common data for LOKDocView
+ LOKDocView is the GTK+ 3 widget that wraps the libreoffice functionality and
+ exposes a simple API for applications to use this widget.
+ .
+ This package contains architecture-independent data (e.g. the selection
+ handlers).
+
diff --git a/debian/control.gtk4.in b/debian/control.gtk4.in
new file mode 100644 (file)
index 0000000..2838b83
--- /dev/null
@@ -0,0 +1,18 @@
+Package: libreoffice-gtk4
+Architecture: %OOO_ARCHS%
+Depends: libreoffice-core (= ${binary:Version}),
+         ${misc:Depends},
+         ${shlibs:Depends}
+Suggests: libreofficekit-data
+Replaces: libreoffice-core (<< 4:7.6.0~rc2)
+Section: gnome
+Enhances: libreoffice
+Description: office productivity suite -- GTK 4 integration
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the GTK plugin for drawing LibreOffices widgets
+ with GTK 4 and GTK/GNOMEish print dialog.
+ .
+ You need to enable it manually by export SAL_USE_VCLPLUGIN=gtk4.
+
diff --git a/debian/control.help.in b/debian/control.help.in
new file mode 100644 (file)
index 0000000..40163e9
--- /dev/null
@@ -0,0 +1,18 @@
+Package: libreoffice-help-@LCODE@
+Architecture: all
+Section: doc
+Recommends: libreoffice-core (>> ${base-version}),
+ ${help-recommends}
+Depends: libreoffice-l10n-@LCODE@,
+         libreoffice-common (>= 1:6.1.0~),
+         ${help-depends},
+         ${misc:Depends}
+Provides: libreoffice-help (= ${help-l10n-virtual-version})
+Replaces: libreoffice-help-common (<< 1:6.4.1~rc1)
+Description: office productivity suite -- @LNAME@ help
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the help of LibreOffice in
+ @LNAME@.
+
diff --git a/debian/control.in b/debian/control.in
new file mode 100644 (file)
index 0000000..5becf9b
--- /dev/null
@@ -0,0 +1,1065 @@
+Source: libreoffice
+Section: editors
+Priority: optional
+Maintainer: Debian LibreOffice Maintainers <debian-openoffice@lists.debian.org>
+Uploaders: Rene Engelhard <rene@debian.org>, Chris Halls <halls@debian.org>
+Build-Depends: %BUILD_DEPS%,
+Build-Depends-Arch: %BUILD_DEPS_ARCH%
+Build-Depends-Indep: %BUILD_DEPS_INDEP%
+Build-Conflicts: nvidia-glx-dev,
+                 nvidia-glx-legacy-dev,
+                 amd-libopencl1,
+                 nvidia-libopencl1,
+                 fontconfig-config (= 2.14.1-1) <!nocheck>,
+                 fontconfig-config (= 2.14.1-2) <!nocheck>,
+                 fontconfig-config (= 2.14.1-3) <!nocheck>
+Standards-Version: 4.0.1
+Rules-Requires-Root: no
+Vcs-Git: https://salsa.debian.org/libreoffice-team/libreoffice/libreoffice.git
+Vcs-Browser: https://salsa.debian.org/libreoffice-team/libreoffice/libreoffice
+Bugs: @BUGS@
+Homepage: http://www.libreoffice.org
+
+Package: libreoffice
+Architecture: %OOO_ARCHS%
+Section: metapackages
+Depends: libreoffice-base%OOO_NO_BASE_ARCHS%,
+         libreoffice-calc,
+         libreoffice-core (= ${binary:Version}),
+         libreoffice-draw,
+         libreoffice-impress,
+         libreoffice-math,
+         libreoffice-report-builder-bin%OOO_NO_REPORTBUILDER_ARCHS%,
+         libreoffice-writer,
+         ${misc:Depends},
+         ${pyuno-depends}
+Recommends: ${java-common-depends},
+            fonts-sil-gentium-basic,
+            fonts-crosextra-caladea,
+            fonts-crosextra-carlito,
+            fonts-dejavu,
+            ${liberation-fonts-recommends},
+            fonts-linuxlibertine,
+            fonts-noto-core,
+            fonts-noto-extra,
+            fonts-noto-mono,
+            fonts-noto-ui-core,
+            libreoffice-script-provider-bsh,
+            libreoffice-script-provider-js,
+            libreoffice-script-provider-python,
+            libreoffice-nlpsolver,
+            libreoffice-report-builder%OOO_NO_REPORTBUILDER_ARCHS%,
+            libreoffice-wiki-publisher,
+            libreoffice-sdbc-mysql,
+            libreoffice-sdbc-postgresql
+Suggests: cups-bsd,
+          ghostscript,
+          hunspell-dictionary,
+          hyphen-hyphenation-patterns,
+          firefox-esr | thunderbird | firefox,
+          imagemagick | graphicsmagick-imagemagick-compat,
+          libgl1,
+          libreoffice-grammarcheck,
+          libreoffice-help (= ${help-l10n-virtual-version}),
+          libreoffice-l10n (= ${help-l10n-virtual-version}),
+          ${libsane-suggests},
+          libxrender1,
+          myspell-dictionary,
+          mythes-thesaurus,
+          openclipart-libreoffice,
+          pstoedit,
+          unixodbc,
+          gnupg,
+          gpa,
+          ${gstreamer-plugins-suggests},
+          ${java-runtime-depends},
+          ${ooo-officebean-dep},
+          libreoffice-librelogo,
+          %LO-DESKTOP-INTEGRATION%
+Conflicts: libreoffice-dev (<= 1:5.0.3~rc1-2), libreoffice-dev-doc (<= 1:5.0.3~rc1-2)
+Description: office productivity suite (metapackage)
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This metapackage installs all components of libreoffice:
+  * libreoffice-writer: Word processor
+  * libreoffice-calc: Spreadsheet
+  * libreoffice-impress: Presentation
+  * libreoffice-draw: Drawing
+  * libreoffice-base: Database
+  * libreoffice-math: Equation editor
+ It also recommends additional packages (e.g. fonts) in order to match an
+ upstream LibreOffice install as closely as possible.
+ .
+ You can extend the functionality of LibreOffice by installing these
+ packages:
+  * hunspell-*/myspell-*: Hunspell/Myspell dictionaries
+    for use with LibreOffice
+  * libreoffice-l10n-*: UI interface translation
+  * libreoffice-help-*: User help
+  * mythes-*: Thesauri for the use with LibreOffice
+  * hyphen-*: Hyphenation patterns for LibreOffice
+  * libreoffice-gtk(2|3): Gtk UI Plugin, GNOME File Picker support
+  * libreoffice-gnome: GIO backend
+  * unixodbc: ODBC database support
+  * cups-bsd: Allows LibreOffice to detect your CUPS printer queues
+    automatically
+  * libsane: Use your sane-supported scanner with LibreOffice
+  * libxrender1: Speed up display by using Xrender library
+  * libgl1: OpenGL support
+  * openclipart-libreoffice: Open Clip Art Gallery with LibreOffice index
+    files
+  * firefox-esr | thunderbird | firefox:
+    Mozilla profile with Certificates needed for XML Security...
+  * openjdk-11-jre | openjdk-8-jre | java8-runtime:
+    Java Runtime Environment for use with LibreOffice
+  * pstoedit / imagemagick / ghostscript: helper tools for EPS
+  * gstreamer0.10-plugins-*: GStreamer plugins for use with LibreOffices
+    media backend
+  * libpaper-utils: papersize detection support via paperconf
+
+Package: libreoffice-nogui
+Architecture: %OOO_NOGUI_ARCHS%
+Section: metapackages
+Depends: libreoffice-base-nogui%OOO_NO_BASE_ARCHS%,
+         libreoffice-calc-nogui,
+         libreoffice-core-nogui (= ${binary:Version}),
+         libreoffice-draw-nogui,
+         libreoffice-impress-nogui,
+         libreoffice-math-nogui,
+         libreoffice-report-builder-bin-nogui%OOO_NO_REPORTBUILDER_ARCHS%,
+         libreoffice-writer-nogui,
+         ${misc:Depends},
+         ${pyuno-depends}
+Recommends: ${java-common-depends},
+            libreoffice-script-provider-bsh,
+            libreoffice-script-provider-js,
+            libreoffice-script-provider-python,
+            libreoffice-sdbc-mysql,
+            libreoffice-sdbc-postgresql
+Suggests: ghostscript,
+          hunspell-dictionary,
+          hyphen-hyphenation-patterns,
+          imagemagick | graphicsmagick-imagemagick-compat,
+          libreoffice-grammarcheck,
+          myspell-dictionary,
+          mythes-thesaurus,
+          pstoedit,
+          unixodbc,
+          gnupg,
+          gpa,
+          ${java-runtime-depends}
+Description: office productivity suite (metapackage, no GUI)
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This metapackage installs all components of libreoffice:
+  * libreoffice-writer: Word processor
+  * libreoffice-calc: Spreadsheet
+  * libreoffice-impress: Presentation
+  * libreoffice-draw: Drawing
+  * libreoffice-base: Database
+  * libreoffice-math: Equation editor
+ .
+ WITHOUT GUI SUPPORT.
+ .
+ This package is intended mostly for scripting needs.
+
+Package: libreoffice-l10n-za
+Section: metapackages
+Architecture: all
+Depends: libreoffice-l10n-af,
+         libreoffice-l10n-en-za,
+         libreoffice-l10n-nr,
+         libreoffice-l10n-nso,
+         libreoffice-l10n-ss,
+         libreoffice-l10n-st,
+         libreoffice-l10n-tn,
+         libreoffice-l10n-ts,
+         libreoffice-l10n-ve,
+         libreoffice-l10n-xh,
+         libreoffice-l10n-zu,
+         ${misc:Depends}
+Description: office productivity suite -- South African language packages
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package is a metapackage installing l10n packages for all 11 South
+ African languages.
+
+Package: libreoffice-l10n-in
+Section: metapackages
+Architecture: all
+Depends: libreoffice-l10n-as,
+         libreoffice-l10n-bn,
+         libreoffice-l10n-gu,
+         libreoffice-l10n-hi,
+         libreoffice-l10n-kn,
+         libreoffice-l10n-ml,
+         libreoffice-l10n-mr,
+         libreoffice-l10n-ne,
+         libreoffice-l10n-or,
+         libreoffice-l10n-pa-in,
+         libreoffice-l10n-ta,
+         libreoffice-l10n-te,
+         ${misc:Depends}
+Recommends: fonts-indic
+Description: office productivity suite -- Indic language packages
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package is a metapackage installing l10n packages for all available
+ indic languages.
+
+Package: libreoffice-core
+Architecture: %OOO_ARCHS%
+Depends: fontconfig,
+         fonts-opensymbol (>= 2:102.12),
+         libreoffice-common (>> ${base-version}),
+         libreoffice-gtk3 [alpha ia64] | libreoffice-gtk4 [alpha ia64] | libreoffice-qt5 [alpha ia64] | libreoffice-kf5 [alpha ia64] | libreoffice-qt6 [alpha ia64],
+         ure (>= 1:7.4.0~),
+         uno-libs-private (>= 4:7.5.0~),
+         ${misc:Depends},
+         ${shlibs:Depends}
+Recommends: libpaper-utils, ${gstreamer-plugins-suggests}
+Breaks: libreoffice-base (<< ${binary:Version}),
+        libreoffice-calc (<< ${binary:Version}),
+        libreoffice-dev (<< ${binary:Version}),
+        libreoffice-draw (<< ${binary:Version}),
+        libreoffice-evolution (<< ${binary:Version}),
+        libreoffice-gnome (<< ${binary:Version}),
+        libreoffice-gtk2 (<< ${binary:Version}),
+        libreoffice-gtk3 (<< ${binary:Version}),
+        libreoffice-impress (<< ${binary:Version}),
+        libreoffice-qt5 (<< ${binary:Version}),
+        libreoffice-kde4 (<< ${binary:Version}),
+        libreoffice-kde5 (<< ${binary:Version}),
+        libreoffice-kf5 (<< ${binary:Version}),
+        libreoffice-officebean (<< ${binary:Version}),
+        libreoffice-writer (<< ${binary:Version}),
+        browser-plugin-libreoffice,
+        libreoffice-pdfimport (<< 1:5.4~),
+        libreoffice-common (<< 1:5.4.1),
+        libreoffice-avmedia-backend-gstreamer (<< ${binary:Version})
+Conflicts: libreoffice-filter-binfilter, libreoffice-avmedia-backend-vlc, libreoffice-mysql-connector (<< 1:6.2.0~), libreoffice-core-nogui
+# for bullseye, copied from libreoffice-common, see #985297
+ ,
+ libreoffice-base (<< 1:7.0.0~alpha~),
+ libreoffice-calc (<< 1:7.0.0~alpha~),
+ libreoffice-draw (<< 1:7.0.0~alpha~),
+ libreoffice-impress (<< 1:7.0.0~alpha~),
+ libreoffice-math (<< 1:7.0.0~alpha~),
+ libreoffice-report-builder (<< 1:7.0.0~alpha~),
+ libreoffice-writer (<< 1:7.0.0~alpha~),
+Replaces: libreoffice-pdfimport (<< 1:5.4~), libreoffice-common (<< 1:6.3.0~rc1~), libreoffice-avmedia-backend-gstreamer, libreoffice-core-nogui
+Description: office productivity suite -- arch-dependent files
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the architecture-dependent core files of
+ LibreOffice.  See the libreoffice package for more information.
+
+Package: libreoffice-core-nogui
+Architecture: %OOO_NOGUI_ARCHS%
+Depends: fontconfig,
+         fonts-opensymbol (>= 2:102.12),
+         libreoffice-common (>> ${base-version}),
+         ure (>= 1:7.4.0~),
+         uno-libs-private (>= 4:7.5.0~),
+         ${misc:Depends},
+         ${shlibs:Depends}
+Recommends: libpaper-utils
+Breaks: libreoffice-base (<< ${binary:Version}),
+        libreoffice-calc,
+        libreoffice-dev (<< ${binary:Version}),
+        libreoffice-draw (<< ${binary:Version}),
+        libreoffice-evolution (<< ${binary:Version}),
+        libreoffice-gnome (<< ${binary:Version}),
+        libreoffice-gtk2,
+        libreoffice-gtk3,
+        libreoffice-impress (<< ${binary:Version}),
+        libreoffice-qt5,
+        libreoffice-kde4,
+        libreoffice-kde5,
+        libreoffice-kf5,
+        libreoffice-officebean (<< ${binary:Version}),
+        libreoffice-writer (<< ${binary:Version}),
+        browser-plugin-libreoffice,
+        libreoffice-pdfimport (<< 1:5.4~),
+        libreoffice-common (<< 1:5.4.1),
+        libreoffice-avmedia-backend-gstreamer (<< ${binary:Version})
+Conflicts: libreoffice-filter-binfilter, libreoffice-avmedia-backend-vlc, libreoffice-mysql-connector (<< 1:6.2.0~), libreoffice-core
+Provides: libreoffice-bundled
+Replaces: libreoffice-pdfimport (<< 1:5.4~), libreoffice-common (<< 1:6.3.0~rc1~), libreoffice-avmedia-backend-gstreamer, libreoffice-core
+Description: office productivity suite -- arch-dependent files (no GUI variant)
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the architecture-dependent core files of
+ LibreOffice without GUI support for server-based or commandline usage of
+ LibreOffice.
+
+Package: libreoffice-common
+Architecture: all
+Depends: libreoffice-style-colibre, ure, libreoffice-uiconfig-common (= ${source:Version}), ${numbertext-data-recommends}, ${misc:Depends}
+Suggests: libreoffice-style, python3-scriptforge
+Recommends: ${pyuno-depends}, ${textcat-data-recommends}, poppler-data, xdg-utils, ${liberation2-font-recommends} | ttf-mscorefonts-installer
+Conflicts: openoffice.org-unbundled,
+           broffice,
+           libreoffice-filter-mobiledev,
+           libreoffice-l10n-4.3,
+           libreoffice-l10n-4.4,
+           libreoffice-wiki-publisher (<< 1.2.0+LibO5.4.0~rc2),
+           libreoffice-base (<< 1:7.0.0~alpha~),
+           libreoffice-base-nogui (<< 1:7.0.0~alpha~),
+           libreoffice-calc (<< 1:7.0.0~alpha~),
+           libreoffice-calc-nogui (<< 1:7.0.0~alpha~),
+           libreoffice-draw (<< 1:7.0.0~alpha~),
+           libreoffice-draw-nogui (<< 1:7.0.0~alpha~),
+           libreoffice-evolution (<< 1:7.0.0~alpha~),
+           libreoffice-gnome (<< 1:7.0.0~alpha~),
+           libreoffice-impress (<< 1:7.0.0~alpha~),
+           libreoffice-impress-nogui (<< 1:7.0.0~alpha~),
+           libreoffice-l10n (<< 7.0),
+           libreoffice-librelogo (<< 1:7.0.0~alpha~),
+           libreoffice-math (<< 1:7.0.0~alpha~),
+           libreoffice-math-nogui (<< 1:7.0.0~alpha~),
+           libreoffice-sdbc-postgresql (<< 1:7.0.0~alpha~),
+           python3-uno (<< 1:7.0.0~alpha~),
+           libreoffice-report-builder (<< 1:7.0.0~alpha~),
+           libreoffice-writer (<< 1:7.0.0~alpha~),
+           libreoffice-writer-nogui (<< 1:7.0.0~alpha~)
+Provides: libreoffice-l10n-en-us
+Breaks: libreoffice-core (<< 4:${oover}~),
+        libreoffice-core-nogui (<< 4:${oover}~),
+        libreoffice-core (<< 1:6.4.2~rc1),
+        libreoffice-help-5.2,
+        libreoffice-help (<< 5.4),
+        libreoffice-l10n (<< 7.0),
+        libreoffice-librelogo (<< 1:7.0.0~alpha),
+        libreoffice-sdbc-postgresql (<< 1:7.0.0~alpha),
+        libreoffice-sdbc-mysql (<< 4:24.2.2-2~),
+        libreoffice-sdbc-firebird (<< 4:24.2.2-2~),
+        libreoffice-report-builder (<< 1:7.0.0~alpha),
+        libreoffice-evolution (<< 1:7.0.0~alpha),
+        libreoffice-gnome (<< 1:7.0.0~alpha),
+        python3-uno (<< 1:7.0.0~alpha),
+        libreoffice-core (>= 4:${next-oover}~),
+        libreoffice-core-nogui (>= 4:${next-oover}~),
+        libreoffice-style-andromeda (<< 4:${oover}~),
+        libreoffice-style-crystal (<< 4:${oover}~),
+        libreoffice-style-crystal (>= 4:${next-oover}~),
+        libreoffice-style-galaxy (<< 4:${oover}~),
+        libreoffice-style-galaxy (>= 4:${next-oover}~),
+        libreoffice-style-hicontrast (<< 4:${oover}~),
+        libreoffice-style-hicontrast (>= 4:${next-oover}~),
+        libreoffice-style-tango,
+        libreoffice-writer2latex (<< 1.0.2-9),
+        libreoffice-writer2xhtml (<< 1.0.2-9),
+        libreoffice-base (<< 1:6.4.0~beta1-2~),
+        openclipart-libreoffice (<= 1:0.18+dfsg-17)
+Replaces: libreoffice-base (<< 1:6.4.0~beta1-2~),
+          libreoffice-pdfimport (<< 1:5.4~),
+          openclipart-libreoffice (<= 1:0.18+dfsg-17)
+Description: office productivity suite -- arch-independent files
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the architecture-independent files of
+ LibreOffice.
+
+Package: libreoffice-java-common
+Architecture: all
+Depends: libreoffice-common, ure-java, liblibreoffice-java, libunoloader-java, ${java:Depends}, ${misc:Depends}
+Breaks: libunoil-java (<< 1:6.4.0~rc1-6)
+Replaces: libunoil-java (<< 1:6.4.0~rc1-6)
+Description: office productivity suite -- arch-independent Java support files
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the architecture-independent files of
+ the Java support for LibreOffice (Java classes, scripts, config snippets).
+
+Package: libreoffice-help-common
+Architecture: all
+Depends: libreoffice-common, ${help-common-depends}, ${misc:Depends}
+Breaks: libreoffice-common (<< 1:6.1.0~alpha1-1)
+Replaces: libreoffice-common (<< 4:24.2.2~rc2)
+Description: office productivity suite -- common files for LibreOffice help
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the common files (e.g. language-independent, media) files
+ for the LibreOffice Help.
+
+Package: libreoffice-writer
+Architecture: %OOO_ARCHS%
+Depends: libreoffice-base-core (= ${binary:Version})%OOO_NO_BASE_ARCHS%,
+         libreoffice-core (= ${binary:Version}),
+         libreoffice-common (>= 1:7.0.0~alpha~),
+         libreoffice-uiconfig-writer (= ${source:Version}),
+         ${misc:Depends},
+         ${shlibs:Depends}
+Recommends: libreoffice-math,
+Suggests: fonts-crosextra-caladea,
+          fonts-crosextra-carlito,
+          libreoffice-base,
+          ${java-common-depends},
+          ${java-runtime-depends}
+Replaces: libreoffice-common (<< 1:6.4.2~rc1~)
+Breaks: libreoffice-common (<< 1:6.4.2~rc1~)
+Description: office productivity suite -- word processor
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the wordprocessor component for LibreOffice.
+
+Package: libreoffice-writer-nogui
+Architecture: %OOO_NOGUI_ARCHS%
+Depends: libreoffice-base-core (= ${binary:Version})%OOO_NO_BASE_ARCHS%,
+         libreoffice-core-nogui (= ${binary:Version}) | libreoffice-core (= ${binary:Version}),
+         libreoffice-common (>= 1:7.0.0~alpha~),
+         ${misc:Depends},
+         ${shlibs:Depends}
+Recommends: libreoffice-math-nogui,
+Suggests: fonts-crosextra-caladea,
+          fonts-crosextra-carlito,
+          libreoffice-base,
+          ${java-common-depends},
+          ${java-runtime-depends}
+Replaces: libreoffice-common (<< 1:6.4.2~rc1~), libreoffice-writer
+Breaks: libreoffice-common (<< 1:6.4.2~rc1~)
+Conflicts: libreoffice-writer
+Description: office productivity suite -- word processor (no GUI variant)
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the wordprocessor component for LibreOffice.
+
+Package: libreoffice-calc
+Architecture: %OOO_ARCHS%
+Depends: libreoffice-base-core (= ${binary:Version})%OOO_NO_BASE_ARCHS%,
+         libreoffice-core (= ${binary:Version}),
+         libreoffice-common (>= 1:7.0.0~alpha~),
+         libreoffice-uiconfig-calc (= ${source:Version}),
+         ${lpsolve-dep},
+         ${misc:Depends},
+         ${shlibs:Depends}
+Suggests: ocl-icd-libopencl1 | mesa-opencl-icd | beignet-opencl-icd
+Replaces: libreoffice-common (<< 1:6.4.2~rc1~)
+Breaks: libreoffice-common (<< 1:6.4.2~rc1~)
+Description: office productivity suite -- spreadsheet
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the spreadsheet component for LibreOffice.
+
+Package: libreoffice-calc-nogui
+Architecture: %OOO_NOGUI_ARCHS%
+Depends: libreoffice-base-core (= ${binary:Version})%OOO_NO_BASE_ARCHS%,
+         libreoffice-core-nogui (= ${binary:Version}) | libreoffice-core (= ${binary:Version}),
+         libreoffice-common (>= 1:7.0.0~alpha~),
+         libreoffice-uiconfig-calc (= ${source:Version}),
+         ${lpsolve-dep},
+         ${misc:Depends},
+         ${shlibs:Depends}
+Replaces: libreoffice-common (<< 1:6.4.2~rc1~), libreoffice-calc
+Breaks: libreoffice-common (<< 1:6.4.2~rc1~)
+Conflicts: libreoffice-calc
+Description: office productivity suite -- spreadsheet (no GUI variant)
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the spreadsheet component for LibreOffice
+ for use with libreoffice-core-nogui.
+
+Package: libreoffice-impress
+Architecture: %OOO_ARCHS%
+Depends: libreoffice-core (= ${binary:Version}),
+         libreoffice-draw (= ${binary:Version}),
+         libreoffice-common (>= 1:7.0.0~alpha~),
+         libreoffice-uiconfig-impress (= ${source:Version}),
+         ${misc:Depends},
+         ${shlibs:Depends}
+Replaces: libreoffice-common (<< 1:6.4.2~rc1~), libreoffice-ogltrans (<< 1:6.1.4-2~)
+Conflicts: libreoffice-ogltrans (<< 1:6.1.4-2~)
+Provides: libreoffice-ogltrans
+Breaks: libreoffice-common (<< 1:6.4.2~rc1~)
+Description: office productivity suite -- presentation
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the presentation component for LibreOffice.
+
+Package: libreoffice-impress-nogui
+Architecture: %OOO_NOGUI_ARCHS%
+Depends: libreoffice-core-nogui (= ${binary:Version}) | libreoffice-core (= ${binary:Version}),
+         libreoffice-draw-nogui (= ${binary:Version}) | libreoffice-draw (= ${binary:Version}),
+         libreoffice-common (>= 1:7.0.0~alpha~),
+         libreoffice-uiconfig-impress (= ${source:Version}),
+         ${misc:Depends},
+         ${shlibs:Depends}
+Replaces: libreoffice-common (<< 1:6.4.2~rc1~), libreoffice-impress
+Conflicts: libreoffice-ogltrans (<< 1:6.1.4-2~), libreoffice-impress
+Breaks: libreoffice-common (<< 1:6.4.2~rc1~)
+Description: office productivity suite -- presentation (no GUI variant)
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the presentation component for LibreOffice.
+
+Package: libreoffice-draw
+Architecture: %OOO_ARCHS%
+Depends: libreoffice-core (= ${binary:Version}),
+         libreoffice-common (>= 1:7.0.0~alpha~),
+         libreoffice-uiconfig-draw (= ${source:Version}), libreoffice-uiconfig-impress (= ${source:Version}),
+         ${misc:Depends},
+         ${shlibs:Depends}
+Replaces: libreoffice-core (<< 1:6.4.1~rc1-3), libreoffice-impress (<< 4:7.5.4~rc1-1), libreoffice-impress-nogui (<< 4:7.5.4~rc1-1), libreoffice-common (<< 1:6.4.2~rc1~) 
+Breaks: libreoffice-core (<< 1:6.4.1~rc1-3), libreoffice-impress (<< 4:7.5.3~rc2-2), libreoffice-common (<< 1:6.4.2~rc1~)
+Description: office productivity suite -- drawing
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the drawing component for LibreOffice.
+
+Package: libreoffice-draw-nogui
+Architecture: %OOO_NOGUI_ARCHS%
+Depends: libreoffice-core-nogui (= ${binary:Version}) | libreoffice-core (= ${binary:Version}),
+         libreoffice-common (>= 1:7.0.0~alpha~),
+         libreoffice-uiconfig-draw (= ${source:Version}), libreoffice-uiconfig-impress (= ${source:Version}),
+         ${misc:Depends},
+         ${shlibs:Depends}
+Replaces: libreoffice-impress (<< 4:7.5.4~rc1-1), libreoffice-impress-nogui (<< 4:7.5.4~rc1-1), libreoffice-common (<< 1:6.4.2~rc1~), libreoffice-draw
+Breaks: libreoffice-impress (<< 1:5.2.0-2), libreoffice-common (<< 1:6.4.2~rc1~)
+Conflicts: libreoffice-draw
+Description: office productivity suite -- drawing (no GUI variant)
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the drawing component for LibreOffice.
+
+Package: libreoffice-math
+Architecture: %OOO_ARCHS%
+Depends: fonts-opensymbol (>= 2:102.11),
+         libreoffice-core (= ${binary:Version}),
+         libreoffice-common (>= 1:7.0.0~alpha~),
+         libreoffice-uiconfig-math (= ${source:Version}),
+         ${misc:Depends},
+         ${shlibs:Depends}
+Replaces: libreoffice-common (<< 1:6.4.2~rc1~)
+Breaks: libreoffice-common (<< 1:6.4.2~rc1~)
+Description: office productivity suite -- equation editor
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the equation editor component for LibreOffice.
+
+Package: libreoffice-math-nogui
+Architecture: %OOO_NOGUI_ARCHS%
+Depends: fonts-opensymbol (>= 2:102.11),
+         libreoffice-core-nogui (= ${binary:Version}) | libreoffice-core (= ${binary:Version}),
+         libreoffice-common (>= 1:7.0.0~alpha~),
+         libreoffice-uiconfig-math (= ${source:Version}),
+         ${misc:Depends},
+         ${shlibs:Depends}
+Replaces: libreoffice-common (<< 1:6.4.2~rc1~), libreoffice-math
+Conflicts: libreoffice-common (<< 1:6.4.2~rc1~), libreoffice-math
+Description: office productivity suite -- equation editor (no GUI variant)
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the equation editor component for LibreOffice.
+
+Package: libreoffice-base-core
+Architecture: %OOO_BASE_ARCHS%
+Depends: libreoffice-core-nogui (= ${binary:Version}) | libreoffice-core (= ${binary:Version}),
+         ${misc:Depends},
+         ${shlibs:Depends}
+Suggests: libreoffice-base
+Replaces: libreoffice-base-drivers (<< 1:6.1.1~rc1-2)
+Description: office productivity suite -- shared library
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains common libraries of LibreOffice Base used by
+ Base, Writer and Calc.
+ .
+ If you need full Base functionality (or actual database drivers), please
+ install libreoffice-base (and/or libreoffice-base-drivers and/o
+ libreoffice-sdbc-*).
+
+Package: libreoffice-base
+Architecture: %OOO_BASE_ARCHS%
+Section: database
+Depends: libreoffice-base-core (= ${binary:Version}),
+         libreoffice-base-drivers (= ${binary:Version}),
+         libreoffice-core (= ${binary:Version}),
+         libreoffice-common (>= 1:7.0.0~alpha~),
+         libreoffice-uiconfig-base (= ${source:Version}),
+         ${misc:Depends},
+         ${shlibs:Depends}
+Suggests: libreoffice-report-builder,
+          unixodbc,
+          python3-access2base
+Recommends: libreoffice-writer, ${java-common-depends}, ${java-runtime-depends}
+Replaces: libreoffice-common (<< 1:6.4.2~rc1~)
+Breaks: libreoffice-common (<< 1:6.4.2~rc1~)
+Description: office productivity suite -- database
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the database component for LibreOffice.
+
+Package: libreoffice-base-nogui
+Architecture: %OOO_NOGUI_ARCHS%
+Section: database
+Depends: libreoffice-base-core (= ${binary:Version}),
+         libreoffice-base-drivers (= ${binary:Version}),
+         libreoffice-core-nogui (= ${binary:Version}) | libreoffice-core (= ${binary:Version}),
+         libreoffice-common (>= 1:7.0.0~alpha~),
+         ${misc:Depends},
+         ${shlibs:Depends}
+Suggests: libreoffice-report-builder,
+          unixodbc,
+          python3-uno
+Recommends: libreoffice-writer, ${java-common-depends}, ${java-runtime-depends}
+Replaces: libreoffice-common (<< 1:6.4.2~rc1~), libreoffice-base
+Breaks: libreoffice-common (<< 1:6.4.2~rc1~)
+Conflicts: libreoffice-base
+Description: office productivity suite -- database (no GUI variant)
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the database component for LibreOffice.
+
+Package: libreoffice-style-breeze
+Architecture: all
+Enhances: libreoffice-core
+Depends: libreoffice-style-colibre, ${misc:Depends}
+Suggests: breeze-icon-theme
+Provides: libreoffice-style
+Recommends: libreoffice-common
+Description: office productivity suite -- Breeze symbol style
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the "breeze" symbol style, default style for KDE 5.
+
+Package: libreoffice-style-colibre
+Architecture: all
+Enhances: libreoffice-core
+Depends: ${misc:Depends}
+Provides: libreoffice-style
+Recommends: libreoffice-common
+Description: office productivity suite -- colibre symbol style
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the "colibre" symbol style - a icon theme
+ which follow Microsoft(R) Offices color scheme.
+
+Package: libreoffice-style-sifr
+Architecture: all
+Enhances: libreoffice-core
+Depends: libreoffice-style-breeze, ${misc:Depends}
+Provides: libreoffice-style, libreoffice-style-hicontrast
+Replaces: libreoffice-style-hicontrast
+Conflicts: libreoffice-style-hicontrast
+Recommends: libreoffice-common
+Description: office productivity suite -- Sifr symbol style
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the "sifr" symbol style (an adaption of the Gnome
+ symbolic theme), needs to be manually  enabled in the LibreOffice option
+ menu.
+
+Package: libreoffice-style-elementary
+Architecture: all
+Depends: libreoffice-style-colibre, ${misc:Depends}
+Enhances: libreoffice-core
+Provides: libreoffice-style
+Recommends: libreoffice-common
+Description: office productivity suite -- Elementary symbol style
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the "elementary" symbol style, default style
+ for GTK+/Gnome.
+
+Package: libreoffice-style-karasa-jaga
+Architecture: all
+Depends: ${misc:Depends}
+Enhances: libreoffice-core
+Provides: libreoffice-style
+Recommends: libreoffice-common
+Description: office productivity suite -- Karasa Jaga symbol style
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the "karasa_jaga" symbol style.
+
+Package: libreoffice-style-sukapura
+Architecture: all
+Depends: ${misc:Depends}
+Enhances: libreoffice-core
+Provides: libreoffice-style
+Recommends: libreoffice-common
+Description: office productivity suite -- Sukapura symbol style
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the "sukapura" symbol style.
+
+Package: libreoffice-gnome
+Architecture: %OOO_ARCHS%
+Depends: libreoffice-core (= ${binary:Version}),
+         libreoffice-common (>= 1:7.0.0~alpha~),
+         ${misc:Depends},
+         ${shlibs:Depends}
+Recommends: ${gnome-gtk-recommends}, libreoffice-style-elementary
+Suggests: libreoffice-evolution, seahorse
+Section: gnome
+Enhances: libreoffice
+Provides: libreoffice-gtk-gnome
+Replaces: libreoffice-gtk (<< 1:5.0.0~rc2-1), libreoffice-gtk3 (<< 1:7.2.0~)
+Conflicts: libreoffice-gtk3 (<< 1:7.2.0~)
+Description: office productivity suite -- GNOME integration
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the GIO support.
+ .
+ You can extend the functionality of this by installing these packages:
+ .
+  * libreoffice-evolution: Evolution addressbook support
+  * evolution
+
+Package: python3-uno
+Section: python
+Architecture: %OOO_ARCHS%
+Enhances: libreoffice
+Depends: libreoffice-core-nogui (= ${binary:Version}) | libreoffice-core (= ${binary:Version}),
+         libreoffice-common (>= 1:7.0.0~alpha~),
+         ${misc:Depends},
+         ${python3:Depends},
+         ${shlibs:Depends}
+# ucf should suffice (needed for preinst usage and is mandated by policy anyway). awk here doesn't please lintian)
+# but there is a time64-related upgrade problem which can occur. Go safe. See Ubuntus
+# https://bugs.launchpad.net/ubuntu/+source/libreoffice/+bug/2067762
+Pre-Depends: ucf, awk
+Conflicts: python-uno
+Replaces: libreoffice-core (= 1:4.3.0~beta1-1), libreoffice-common (<< 1:4.4.0~beta2)
+Build-Profiles: <!nopython>
+Description: Python-UNO bridge
+ The Python-UNO bridge allows use of the standard LibreOffice API
+ with the Python scripting language. It additionally allows
+ others to develop UNO components in Python, thus Python UNO components
+ may be run within the LibreOffice process and can be called from C++
+ or the built in StarBasic scripting language.
+Homepage: http://udk.openoffice.org/python/python-bridge.html
+
+Package: libreoffice-script-provider-python
+Architecture: all
+Section: python
+Depends: libreoffice-common,
+         libreoffice-core-nogui | libreoffice-core,
+         ${misc:Depends},
+         ${python3:Depends},
+         ${pyuno-depends}
+Build-Profiles: <!nopython>
+Description: Python script support provider for LibreOffice scripting framework
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ The Scripting Framework allows LibreOffice users to write and run macros
+ in multiple languages including LibreOffice Basic, Python, Java, BeanShell
+ and JavaScript. These macros can then be assigned to menus, toolbars,
+ keyboard shortcuts, events and embedded objects.
+ .
+ This package contains the script provider to support Python.
+
+Package: libreoffice-script-provider-bsh
+Architecture: all
+Section: java
+Depends: libreoffice-common,
+         libreoffice-core-nogui | libreoffice-core,
+         ${java-common-depends},
+         liblibreoffice-java,
+         ${java:Depends},
+         ${java-runtime-depends},
+         ${misc:Depends}
+Build-Profiles: <!nojava>
+Description: BeanShell script support provider for LibreOffice scripting framework
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ The Scripting Framework allows LibreOffice users to write and run macros
+ in multiple languages including LibreOffice Basic, Python, Java, BeanShell
+ and JavaScript. These macros can then be assigned to menus, toolbars,
+ keyboard shortcuts, events and embedded objects.
+ .
+ This package contains the script provider to support BeanShell.
+
+Package: libreoffice-script-provider-js
+Architecture: all
+Section: web
+Depends: libreoffice-common,
+         libreoffice-core-nogui | libreoffice-core,
+         ${java-common-depends},
+         liblibreoffice-java,
+         ${java:Depends},
+         ${java-runtime-depends},
+         ${misc:Depends}
+Build-Profiles: <!nojava>
+Description: JavaScript script support provider for LibreOffice scripting framework
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ The Scripting Framework allows LibreOffice users to write and run macros
+ in multiple languages including LibreOffice Basic, Python, Java, BeanShell
+ and JavaScript. These macros can then be assigned to menus, toolbars,
+ keyboard shortcuts, events and embedded objects.
+ .
+ This package contains the script provider to support JavaScript.
+
+Package: libreoffice-sdbc-hsqldb
+Depends: libreoffice-core-nogui | libreoffice-core, ${java-common-depends}, ${java:Depends}, ${java-runtime-depends}, ${shlibs:Depends}, ${misc:Depends}
+Architecture: %OOO_JAVA_ARCHS%
+Section: database
+Enhances: libreoffice-base-drivers
+Build-Profiles: <!nojava>
+Description: HSQLDB SDBC driver for LibreOffice
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ The HSQLDB SDBC Driver allows one to use the HSQLDB embedded database from
+ LibreOffice without any wrapper layer such as ODBC or JDBC.
+
+Package: libreoffice-sdbc-mysql
+Section: database
+Architecture: %OOO_BASE_ARCHS%
+Depends: libreoffice-core-nogui | libreoffice-core, ${misc:Depends}, ${shlibs:Depends}
+Suggests: default-mysql-server | virtual-mysql-server
+Description: MariaDB/MySQL SDBC driver for LibreOffice
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ The MariaDB/MySQL driver allows one to use the MariaDB or MySQL
+ database from LibreOffice without any wrapper layer such as ODBC or JDBC.
+
+Package: libreoffice-base-drivers
+Depends: libreoffice-core-nogui | libreoffice-core, ${shlibs:Depends}, ${misc:Depends}
+Architecture: %OOO_BASE_ARCHS%
+Section: database
+Suggests: libreoffice-sdbc-postgresql | odbc-postgresql | libpg-java,
+          libreoffice-sdbc-mysql | libmyodbc | libmariadb-java,
+          libsqliteodbc | tdsodbc | odbc-mdbtools,
+          libjtds-java,
+Recommends: libreoffice-sdbc-hsqldb [%OOO_JAVA_ARCHS%], ${base-firebird-recommends}
+Replaces: libreoffice-base (<< 1:4.3.0-3), libreoffice-core (<< 1:6.2.0~beta1~)
+Breaks: libreoffice-base (<< 1:4.3.0-3)
+Description: Database connectivity drivers for LibreOffice
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the database connectivity drivers used by LibreOffices
+ database functionality:
+  - ODBC
+  - JDBC
+  - dBase
+  - Calc
+  - Flat files
+ .
+ You can extend this by installing:
+ .
+  * unixodbc: ODBC database support
+  * libmyodbc | odbc-postgresql | libsqliteodbc | tdsodbc | odbc-mdbtools: ODBC
+    drivers for:
+    - MySQL
+    - PostgreSQL
+    - SQLite
+    - MS SQL / Sybase SQL
+    - *.mdb (JET / MS Access)
+  * libmariadb-java | libpg-java | libjtds-java: JDBC Drivers
+    for:
+    - MySQL/MariaDB
+    - PostgreSQL
+    - MS SQL Server and Sybase
+  * libreoffice-sdbc-hsqldb: embedded HSQLDB SDBC Driver
+  * libreoffice-sdbc-firebird: Firebird SDBC Driver
+  * libreoffice-sdbc-postgresql: PostgreSQL SDBC Driver
+  * libreoffice-sdbc-mysql: MySQL/MariaDB SDBC Driver
+
+Package: python3-access2base
+Section: python
+Architecture: all
+Homepage: http://www.access2base.com/access2base.html
+Depends: libreoffice-common (>= 1:6.4.0~beta1-2~), libreoffice-base, python3-uno, ${python3:Depends}, ${misc:Depends}
+Replaces: libreoffice-base
+Build-Profiles: <!nopython>
+Description: interface between Python and the LibreOffice Access2Base library
+ Access2Base is a LibreOffice/OpenOffice Basic library of macros for
+ (business or personal) application developers and advanced users.
+ .
+ Their syntax and their meaning are directly inspired by MSAccess.
+ The macros are callable from
+  - a LibreOffice / OpenOffice Base application,
+  - any LibreOffice / OpenOffice document wanting to access data
+   stored in databases.
+ .
+ This package contains an interface between Python (user) scripts
+ and Access2Base.
+
+Package: python3-scriptforge
+Section: python
+Architecture: all
+Depends: libreoffice-common (>= 1:7.1.0~), python3-uno, ${python3:Depends}, ${misc:Depends}
+Replaces: libreoffice-common (<< 4:7.6.0~)
+Build-Profiles: <!nopython>
+Description: interface between Python and the LibreOffice ScriptForge library
+ ScriptForge libraries build up an extensible collection of macro scripting
+ resources for LibreOffice to be invoked from Basic macros or Python scripts.
+ .
+ This package contains the public scriptforge python library.
+
+Package: libofficebean-java
+Section: java
+Depends: liblibreoffice-java,
+         ${java-runtime-depends},
+         ${java:Depends},
+         ${shlibs:Depends},
+         ${misc:Depends}
+Recommends: libreoffice-core-nogui | libreoffice-core
+Architecture: %OOO_JAVA_ARCHS%
+Replaces: libreoffice-officebean (<< 1:6.4.0~rc2-1)
+Breaks: libreoffice-officebean (<< 1:6.4.0~rc2-1)
+Build-Profiles: <!nojava>
+Description: generic Java Bean wrapper for LibreOffice components
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the Java library for the LibreOffice Office Bean
+ for embedding LibreOffice in custom Java applications.
+
+Package: libreoffice-uiconfig-common
+Section: misc
+Architecture: all
+Depends: ${misc:Depends}
+Replaces: libreoffice-common (<< 4:7.6.0~beta1)
+Breaks: libreoffice-common (<< 4:7.6.0~beta1)
+Description: UI data ("config") for LibreOffice ("common" set)
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains internal "configuration" of various UI components.
+ It is not meant to be editable. It is just split out for dependencies of
+ other packages.
+ .
+ You will usually not need to install this package manually but it should
+ just be pulled in by other packages.
+
+Package: libreoffice-uiconfig-base
+Section: misc
+Architecture: all
+Depends: ${misc:Depends}
+Replaces: libreoffice-base (<< 4:7.6.0~beta1), libreoffice-base-nogui (<< 4:7.6.0~beta1), libreoffice-common (<< 4:7.6.0~beta1)
+Breaks: libreoffice-base (<< 4:7.6.0~beta1), libreoffice-base-nogui (<< 4:7.6.0~beta1), libreoffice-common (<< 4:7.6.0~beta1)
+Description: UI data ("config") for LibreOffice Base
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains internal "configuration" of various UI components.
+ It is not meant to be editable. It is just split out for dependencies of
+ other packages.
+ .
+ You will usually not need to install this package manually but it should
+ just be pulled in by other packages.
+
+Package: libreoffice-uiconfig-calc
+Section: misc
+Architecture: all
+Depends: ${misc:Depends}
+Replaces: libreoffice-calc (<< 4:7.6.0~beta1), libreoffice-calc-nogui (<< 4:7.6.0~beta1), libreoffice-common (<< 4:7.6.0~beta1)
+Breaks: libreoffice-calc (<< 4:7.6.0~beta1), libreoffice-calc-nogui (<< 4:7.6.0~beta1), libreoffice-common (<< 4:7.6.0~beta1)
+Description: UI data ("config") for LibreOffice Calc
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains internal "configuration" of various UI components.
+ It is not meant to be editable. It is just split out for dependencies of
+ other packages.
+ .
+ You will usually not need to install this package manually but it should
+ just be pulled in by other packages.
+
+Package: libreoffice-uiconfig-draw
+Section: misc
+Architecture: all
+Depends: ${misc:Depends}
+Replaces: libreoffice-draw (<< 4:7.6.0~beta1), libreoffice-draw-nogui (<< 4:7.6.0~beta1), libreoffice-common (<< 4:7.6.0~beta1)
+Breaks: libreoffice-draw (<< 4:7.6.0~beta1), libreoffice-draw-nogui (<< 4:7.6.0~beta1), libreoffice-common (<< 4:7.6.0~beta1)
+Description: UI data ("config") for LibreOffice Draw
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains internal "configuration" of various UI components.
+ It is not meant to be editable. It is just split out for dependencies of
+ other packages.
+ .
+ You will usually not need to install this package manually but it should
+ just be pulled in by other packages.
+
+Package: libreoffice-uiconfig-impress
+Section: misc
+Architecture: all
+Depends: ${misc:Depends}
+Replaces: libreoffice-impress (<< 4:7.6.0~rc1), libreoffice-impress-nogui (<< 4:7.6.0~rc1), libreoffice-draw (<< 4:7.6.0~rc1), libreoffice-draw-nogui (<< 4:7.6.0~rc1), libreoffice-common (<< 4:7.6.0~beta1)
+Breaks: libreoffice-impress (<< 4:7.6.0~rc1), libreoffice-impress-nogui (<< 4:7.6.0~rc1), libreoffice-draw (<< 4:7.6.0~rc1), libreoffice-draw-nogui (<< 4:7.6.0~rc1), libreoffice-common (<< 4:7.6.0~beta1)
+Description: UI data ("config") for LibreOffice Impress
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains internal "configuration" of various UI components.
+ It is not meant to be editable. It is just split out for dependencies of
+ other packages.
+ .
+ You will usually not need to install this package manually but it should
+ just be pulled in by other packages.
+
+Package: libreoffice-uiconfig-math
+Section: misc
+Architecture: all
+Depends: ${misc:Depends}
+Replaces: libreoffice-math (<< 4:7.6.0~beta1), libreoffice-math-nogui (<< 4:7.6.0~beta1), libreoffice-common (<< 4:7.6.0~beta1)
+Breaks: libreoffice-math (<< 4:7.6.0~beta1), libreoffice-math-nogui (<< 4:7.6.0~beta1), libreoffice-common (<< 4:7.6.0~beta1)
+Description: UI data ("config") for LibreOffice Math
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains internal "configuration" of various UI components.
+ It is not meant to be editable. It is just split out for dependencies of
+ other packages.
+ .
+ You will usually not need to install this package manually but it should
+ just be pulled in by other packages.
+
+Package: libreoffice-uiconfig-writer
+Section: misc
+Architecture: all
+Depends: ${misc:Depends}
+Replaces: libreoffice-writer (<< 4:7.6.0~beta1), libreoffice-writer-nogui (<< 4:7.6.0~beta1), libreoffice-common (<< 4:7.6.0~beta1)
+Breaks: libreoffice-writer (<< 4:7.6.0~beta1), libreoffice-writer-nogui (<< 4:7.6.0~beta1), libreoffice-common (<< 4:7.6.0~beta1)
+Description: UI data ("config") for LibreOffice Writer
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains internal "configuration" of various UI components.
+ It is not meant to be editable. It is just split out for dependencies of
+ other packages.
+ .
+ You will usually not need to install this package manually but it should
+ just be pulled in by other packages.
+
+
diff --git a/debian/control.kf5.in b/debian/control.kf5.in
new file mode 100644 (file)
index 0000000..3eaa5b3
--- /dev/null
@@ -0,0 +1,17 @@
+Package: libreoffice-kf5
+Architecture: %OOO_ARCHS%
+Depends: libreoffice-core (= ${binary:Version}),
+         ${kf5-qt5-depends},
+         ${misc:Depends},
+         ${shlibs:Depends}
+Recommends: ${plasma-iconset-dep}
+Replaces: libreoffice-kde (<< 1:6.1.0~alpha1-1)
+Section: kde
+Enhances: libreoffice
+Description: office productivity suite -- KDE Frameworks 5 integration
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the KF5 plugin for LibreOffice and a KF5-based File
+ Picker when running under Plasma.
+
diff --git a/debian/control.kf6.in b/debian/control.kf6.in
new file mode 100644 (file)
index 0000000..e92467d
--- /dev/null
@@ -0,0 +1,16 @@
+Package: libreoffice-kf6
+Architecture: %OOO_ARCHS%
+Depends: libreoffice-core (= ${binary:Version}),
+         ${kf6-qt6-depends},
+         ${misc:Depends},
+         ${shlibs:Depends}
+Recommends: ${plasma-iconset-dep}
+Section: kde
+Enhances: libreoffice
+Description: office productivity suite -- KDE Frameworks 6 integration
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the KF6 plugin for LibreOffice and a KF6-based File
+ Picker when running under Plasma.
+
diff --git a/debian/control.lang.in b/debian/control.lang.in
new file mode 100644 (file)
index 0000000..55546fd
--- /dev/null
@@ -0,0 +1,29 @@
+Package: libreoffice-l10n-@LCODE@
+Section: localization
+Architecture: all
+Depends: libreoffice-common (>= 1:7.0.0~alpha~), ${misc:Depends}, @LOCALES_DEPENDS@
+Recommends: libreoffice-core (>> ${base-version}) @FONT_RECOMMENDS@
+Provides: libreoffice-l10n (= ${help-l10n-virtual-version})
+Suggests: hunspell-dictionary-@LCODE@ | myspell-dictionary-@LCODE@ | libreoffice-spellcheck-@LCODE@,
+          hyphen-@LCODE@ | libreoffice-hyphenation-@LCODE@,
+          libreoffice-grammarcheck-@LCODE@,
+          libreoffice-help-@LCODE@,
+          mythes-@LCODE@
+Description: office productivity suite -- @LNAME@ language package
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the localization of LibreOffice in
+ @LNAME@.
+ It contains the user interface, the templates and the autotext features.
+ (please note that not all this is available for all possible languages).
+ You can switch user interface language using the locales system.
+ .
+ Spelling dictionaries, hyphenation patterns, thesauri and help are not
+ included in this package. There are some available in separate packages
+ (myspell-*, hyphen-*, mythes-*, libreoffice-help-*)
+ .
+ If you just want to be able to spellcheck etc. in other languages, you can
+ install extra dictionaries/hyphenation patterns/thesauri independently of
+ the language packs.
+
diff --git a/debian/control.librelogo.in b/debian/control.librelogo.in
new file mode 100644 (file)
index 0000000..a07a2e0
--- /dev/null
@@ -0,0 +1,22 @@
+Package: libreoffice-librelogo
+Section: misc
+Architecture: all
+Depends: libreoffice-core,
+         libreoffice-writer,
+         libreoffice-script-provider-python,
+         libreoffice-common (>= 1:7.0.0~alpha),
+         ${misc:Depends}
+Build-Profiles: <!nopython>
+Homepage: http://librelogo.org
+Description: Logo-like programming language for LibreOffice
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains Librelogo, which is a pyuno-based Logo-like programming
+ language with interactive vectorgraphics for education and DTP
+  - basic Logo syntax for back compatibility with educational Logo systems
+  - interactive vectorgraphics in LibreOffice Writer
+  - native commands (easily translatable)
+  - Python data structures (list, tuple, set, dictionary) and other Python
+    features
+
diff --git a/debian/control.lokit.in b/debian/control.lokit.in
new file mode 100644 (file)
index 0000000..041b380
--- /dev/null
@@ -0,0 +1,17 @@
+Package: libreofficekit-dev
+Section: libdevel
+Architecture: %OOO_ARCHS%
+Depends: ${misc:Depends}, ${gir:Depends}, gir1.2-lokdocview-0.1 (= ${binary:Version})
+Suggests: libgtk-3-dev
+Recommends: libreoffice-core, libreofficekit-data
+Replaces: gir1.2-lokdocview-0.1 (<< 1:5.4.0~rc1)
+Provides: ${gir:Provides}
+Description: LibreOfficeKit -- headers
+ LibreOfficeKit can be used for accessing LibreOffice functionality through
+ C/C++, without any need to use UNO.
+ .
+ For now it only offers document conversion (in addition to an experimental
+ tiled rendering API).
+ .
+ This package contains the headers needed for using LibreOfficeKit.
+
diff --git a/debian/control.mediawiki.in b/debian/control.mediawiki.in
new file mode 100644 (file)
index 0000000..55e3c5c
--- /dev/null
@@ -0,0 +1,18 @@
+Package: libreoffice-wiki-publisher
+Section: misc
+Architecture: all
+Depends: libreoffice-core,
+         liblibreoffice-java,
+         ${java-common-depends},
+         ${java:Depends},
+         ${java-runtime-depends},
+         ${misc:Depends}
+Enhances: libreoffice-writer
+Suggests: mediawiki, libreoffice-help-common
+Description: LibreOffice extension for working with MediaWiki articles
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains an extension to create/edit/publish MediaWiki
+ articles with LibreOffice
+
diff --git a/debian/control.nlpsolver.in b/debian/control.nlpsolver.in
new file mode 100644 (file)
index 0000000..9b386d8
--- /dev/null
@@ -0,0 +1,15 @@
+Package: libreoffice-nlpsolver
+Architecture: all
+Depends: ${misc:Depends}, libreoffice-calc, libreoffice-core, liblibreoffice-java, ${java-common-depends}, ${java-runtime-depends}
+Suggests: libreoffice-help-common
+Section: math
+Description: "Solver for Nonlinear Programming" extension for LibreOffice
+ By default LibreOffice Calc ships with a solver engine for linear
+ programming only. This allows the optimization of models to a certain degree.
+ However, if the formulas or constraints become more complex,
+ nonlinear programming is required. That missing gap is now filled by the
+ Solver for Nonlinear Programming extension.
+ .
+ Currently it incorporates two Evolutionary Algorithms which are able to
+ handle floating point and integer variables as well as nonlinear constraints.
+
diff --git a/debian/control.plasma.in b/debian/control.plasma.in
new file mode 100644 (file)
index 0000000..bcd2c8d
--- /dev/null
@@ -0,0 +1,14 @@
+Package: libreoffice-plasma
+Architecture: %OOO_ARCHS%
+Depends: libreoffice-core (= ${binary:Version}),
+        ${misc:Depends},
+        ${shlibs:Depends}
+Recommends: libreoffice-kf@PLASMA_VERSION@
+Replaces: libreoffice-kde5 (<< 1:6.4.0~)
+Description: office productivity suite -- some Plasma integration
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains some minor Plasma integration (like AppData
+ and "Create New..." integration) and a KDE/KF@PLASMA_KF_VERSION@ configuration backend.
+
diff --git a/debian/control.postgresql.in b/debian/control.postgresql.in
new file mode 100644 (file)
index 0000000..d415768
--- /dev/null
@@ -0,0 +1,17 @@
+Package: libreoffice-sdbc-postgresql
+Section: misc
+Architecture: %OOO_BASE_ARCHS%
+Depends: libreoffice-core-nogui | libreoffice-core,
+         libreoffice-common (>= 1:7.0.0~alpha),
+         ${misc:Depends},
+         ${shlibs:Depends}
+Suggests: postgresql (>= 8.4)
+Enhances: libreoffice-base-drivers
+Description: PostgreSQL SDBC driver for LibreOffice
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ The PostgreSQL SDBC Driver allows one to use the PostgreSQL database from
+ LibreOffice without any wrapper layer such as ODBC or JDBC.
+Homepage: http://wiki.documentfoundation.org/PostgreSQL-SDBC
+
diff --git a/debian/control.qt5.in b/debian/control.qt5.in
new file mode 100644 (file)
index 0000000..aea9dbe
--- /dev/null
@@ -0,0 +1,17 @@
+Package: libreoffice-qt5
+Architecture: %OOO_ARCHS%
+Depends: libreoffice-core (= ${binary:Version}),
+         ${misc:Depends},
+         ${shlibs:Depends}
+Recommends: qtgstreamer-plugins-qt5
+Enhances: libreoffice
+Description: office productivity suite -- Qt 5 integration
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the Qt 5 plugin for drawing LibreOffices widgets
+ with Qt 5 and a Qt File Picker and print dialog.
+ .
+ You need to enable it manually by export SAL_USE_VCLPLUGIN=qt5 if you are
+ not using Plasma.
+
diff --git a/debian/control.qt6.in b/debian/control.qt6.in
new file mode 100644 (file)
index 0000000..2cc7841
--- /dev/null
@@ -0,0 +1,15 @@
+Package: libreoffice-qt6
+Architecture: %OOO_ARCHS%
+Depends: libreoffice-core (= ${binary:Version}),
+         ${misc:Depends},
+         ${shlibs:Depends}
+Enhances: libreoffice
+Description: office productivity suite -- Qt 6 integration
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the Qt 6 plugin for drawing LibreOffices widgets
+ with Qt 6 and a Qt File Picker and print dialog.
+ .
+ You need to enable it manually by export SAL_USE_VCLPLUGIN=qt6.
+
diff --git a/debian/control.reportbuilder.in b/debian/control.reportbuilder.in
new file mode 100644 (file)
index 0000000..99f33d2
--- /dev/null
@@ -0,0 +1,73 @@
+Package: libreoffice-report-builder
+Section: misc
+Architecture: all
+Depends: libreoffice-core | libreoffice-core-nogui,
+         libreoffice-report-builder-bin (>= ${base-version}),
+         libreoffice-common (>= 1:7.0.0~alpha),
+         libreoffice-uiconfig-report-builder (= ${source:Version}),
+         liblibreoffice-java,
+         ${java:Depends},
+         ${java-common-depends},
+         ${misc:Depends},
+         ${report-builder-jar-depends}
+Provides: libreoffice-reportdesigner
+Enhances: libreoffice-base
+Breaks: libreoffice-common (<< 1:6.4.2~rc1~)
+Replaces: libreoffice-common (<< 1:6.4.2~r~~)
+Description: LibreOffice component for building database reports
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the report builder:
+  "Create with the Sun Report Builder stylish, smart-looking database reports.
+  The flexible report editor can define group and page headers as well as
+  group and page footers and even calculation fields are available to
+  accomplish complex database reports."
+
+Package: libreoffice-report-builder-bin
+Section: misc
+Architecture: %OOO_REPORTBUILDER_ARCHS%
+Depends: libreoffice-core,
+         libreoffice-base,
+         ${misc:Depends},
+         ${shlibs:Depends}
+Description: LibreOffice component for building database reports -- libraries
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains some architecture-dependent support libraries
+ (librpt*.so) for the report builder component.
+
+Package: libreoffice-report-builder-bin-nogui
+Section: misc
+Architecture: %OOO_REPORTBUILDER_ARCHS%
+Depends: libreoffice-core-nogui | libreoffice-core,
+         libreoffice-base-nogui | libreoffice-base,
+         ${misc:Depends},
+         ${shlibs:Depends}
+Conflicts: libreoffice-report-builder-bin
+Replaces: libreoffice-report-builder-bin
+Description: LibreOffice component for building database reports -- libraries (no GUI variant)
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains some architecture-dependent support libraries
+ (librpt*.so) for the report builder component.
+
+Package: libreoffice-uiconfig-report-builder
+Section: misc
+Architecture: all
+Replaces: libreoffice-report-builder (<< 4:7.6.0~beta1), libreoffice-common (<< 4:7.6.0~beta1)
+Breaks: libreoffice-report-builder (<< 4:7.6.0~beta1), libreoffice-common (<< 4:7.6.0~beta1)
+Depends: ${misc:Depends}
+Description: UI data ("config") for the LibreOffice Report Builder
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains internal "configuration" of various UI components.
+ It is not meant to be editable. It is just split out for dependencies of
+ other packages.
+ .
+ You will usually not need to install this package manually but it should
+ just be pulled in by other packages.
+
diff --git a/debian/control.sdk.in b/debian/control.sdk.in
new file mode 100644 (file)
index 0000000..172f841
--- /dev/null
@@ -0,0 +1,69 @@
+Package: libreoffice-dev
+Section: devel
+Architecture: %OOO_ARCHS%
+Depends: libreoffice-core-nogui (= ${binary:Version}) | libreoffice-core (= ${binary:Version}),
+         libreoffice-dev-common (= ${source:Version}),
+         ${misc:Depends},
+         ${shlibs:Depends}
+Recommends: g++, ${java-common-depends}, ${java-runtime-depends}
+Suggests: libmythes-dev, libreofficekit-dev, libreoffice-dev-doc
+Replaces: libreoffice-dev-common (<< 1:5.4.1~)
+Conflicts: libreoffice-dev-doc (<< 1:5.2.5-2~), libreoffice (<< 1:5.2.5-2~)
+Breaks: libreoffice-dev-common (<< 1:5.4.1~)
+Description: office productivity suite -- SDK -- architecture-dependent parts
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the (architecture-dependent) files needed to build
+ plugins/add-ons for LibreOffice (build tools, libraries, arch-dependent
+ includes, ...).
+
+Package: libreoffice-dev-gui
+Section: devel
+Architecture: %OOO_ARCHS%
+Depends: libreoffice-core (= ${binary:Version}),
+         libreoffice-dev (= ${binary:Version}),
+         libreoffice-dev-common (= ${source:Version}),
+         ${misc:Depends},
+         ${shlibs:Depends}
+Replaces: libreoffice-dev (<< 1:7.0.0~)
+Breaks: libreoffice-dev (<< 1:7.0.0~)
+Description: office productivity suite -- "GUI" development stuff
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the gengal utility which was moved from
+ libreoffice-dev.
+
+Package: libreoffice-dev-common
+Section: devel
+Architecture: all
+Depends: ${misc:Depends}
+Replaces: libreoffice-dev (<< 1:5.2.0~)
+Breaks: libreoffice-dev (<< 1:5.2.0~)
+Conflicts: libreoffice (<< 1:5.2.5-2~)
+Description: office productivity suite -- SDK -- architecture-independent parts
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the (architecture-independent) files needed to build
+ plugins/add-ons for LibreOffice (includes, IDL files, ...)
+
+Package: libreoffice-dev-doc
+Section: doc
+Architecture: all
+Depends: ${misc:Depends}
+Recommends: libreoffice-dev (= ${binary:Version}),
+            www-browser
+Conflicts: openoffice.org-dev-doc, libreoffice-dev (<= 1:5.0.3~rc1-2), libreoffice (<< 1:5.2.5-2~)
+Build-Profiles: <!nodoc>
+Description: office productivity suite -- SDK documentation
+ LibreOffice is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the documentation of the LibreOffice SDK:
+ .
+  * C++/Java API reference
+  * IDL reference
+  * C++/Java/Basic examples
+
diff --git a/debian/control.test-packages.in b/debian/control.test-packages.in
new file mode 100644 (file)
index 0000000..4130f6e
--- /dev/null
@@ -0,0 +1,18 @@
+Package: libreoffice-subsequentcheckbase
+Section: libs
+Architecture: all
+Depends: liblibreoffice-java, ${java:Depends}, ${misc:Depends}
+Build-Profiles: <!noinsttest !nojava>
+Description: LibreOffice java test libraries
+ Java libraries LibreOffice subsequentchecks integration test suite
+
+Package: libreoffice-smoketest-data
+Section: misc
+Depends: ${misc:Depends}
+Architecture: all
+Build-Profiles: <!noinsttest>
+Replaces: libreoffice-java-common (<< 1:6.4.0~rc1-6)
+Breaks: libreoffice-java-common (<< 1:6.4.0~rc1-6)
+Description: data files for LibreOffices "smoketest"
+ Data files for the LibreOffice "smoketest".
+
diff --git a/debian/control.ure.in b/debian/control.ure.in
new file mode 100644 (file)
index 0000000..cbe7102
--- /dev/null
@@ -0,0 +1,180 @@
+Package: uno-libs-private
+Section: libs
+Architecture: %OOO_ARCHS%
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Replaces: uno-libs3
+Breaks: uno-libs3, libuno-cppuhelpergcc3-3 (<< 4:7.5.0~), libreoffice-core (<< 4:7.5.0~), libreoffice-core-nogui (<< 4:7.5.0~)
+Description: LibreOffice UNO runtime environment -- private libraries used by public ones
+ The Uno Runtime Environment (URE) is the well-known UNO component model
+ of LibreOffice, packaged up as an individual product.
+ .
+ It offers you a flexible, low-overhead component model that is most ideal
+ for (but not limited to) combining in one application components written in
+ different computer languages, and developed by different parties. You can use
+ it to create any kind of application, in whatever application domain you can
+ imagine.
+ .
+ This package contains some private UNO/URE libraries which are used by public
+ ones (e.g. cppu).
+
+Package: libuno-sal3t64
+Section: libs
+Architecture: %OOO_ARCHS%
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Replaces: ure (<< 5.0.0~rc2-1), uno-libs3, libuno-sal3
+Breaks: libreoffice-core (<< 1:4.3.0~), uno-libs3, libuno-sal3 (<< ${source:Version})
+Provides: ${t64:Provides}
+Description: LibreOffice UNO runtime environment -- SAL public library
+ The Uno Runtime Environment (URE) is the well-known UNO component model
+ of LibreOffice, packaged up as an individual product.
+ .
+ It offers you a flexible, low-overhead component model that is most ideal
+ for (but not limited to) combining in one application components written in
+ different computer languages, and developed by different parties. You can use
+ it to create any kind of application, in whatever application domain you can
+ imagine.
+ .
+ This package contains the System Abstraction Layer (SAL) library.
+
+Package: libuno-salhelpergcc3-3t64
+Section: libs
+Architecture: %OOO_ARCHS%
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Replaces: ure (<< 5.0.0~rc2-1), uno-libs3, libuno-salhelpergcc3-3
+Breaks: libreoffice-core (<< 1:4.3.0~), uno-libs3, libuno-salhelpergcc3-3 (<< ${source:Version})
+Provides: ${t64:Provides}
+Description: LibreOffice UNO runtime environment -- SAL helpers for C++ library
+ The Uno Runtime Environment (URE) is the well-known UNO component model
+ of LibreOffice, packaged up as an individual product.
+ .
+ It offers you a flexible, low-overhead component model that is most ideal
+ for (but not limited to) combining in one application components written in
+ different computer languages, and developed by different parties. You can use
+ it to create any kind of application, in whatever application domain you can
+ imagine.
+ .
+ This package contains C++ helpers to make use of sal easier.
+
+Package: libuno-cppu3t64
+Section: libs
+Architecture: %OOO_ARCHS%
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Replaces: ure (<< 5.0.0~rc2-1), uno-libs3, libuno-cppu3
+Breaks: libreoffice-core (<< 1:4.3.0~), uno-libs3, libuno-cppu3 (<< ${source:Version})
+Provides: ${t64:Provides}
+Description: LibreOffice UNO runtime environment -- CPPU public library
+ The Uno Runtime Environment (URE) is the well-known UNO component model
+ of LibreOffice, packaged up as an individual product.
+ .
+ It offers you a flexible, low-overhead component model that is most ideal
+ for (but not limited to) combining in one application components written in
+ different computer languages, and developed by different parties. You can use
+ it to create any kind of application, in whatever application domain you can
+ imagine.
+ .
+ This package contains CPPU, the type definitions/implementations for the core
+ of UNO.
+
+Package: libuno-cppuhelpergcc3-3t64
+Section: libs
+Architecture: %OOO_ARCHS%
+Depends: ${misc:Depends}, ${shlibs:Depends}, uno-libs-private (= ${binary:Version})
+Replaces: ure (<< 5.0.0~rc2-1), uno-libs3, libuno-cppuhelpergcc3-3
+Breaks: libreoffice-core (<< 1:4.3.0~), uno-libs3, libuno-cppuhelpergcc3-3 (<< ${source:Version})
+Provides: ${t64:Provides}
+Description: LibreOffice UNO runtime environment -- CPPU helper library
+ The Uno Runtime Environment (URE) is the well-known UNO component model
+ of LibreOffice, packaged up as an individual product.
+ .
+ It offers you a flexible, low-overhead component model that is most ideal
+ for (but not limited to) combining in one application components written in
+ different computer languages, and developed by different parties. You can use
+ it to create any kind of application, in whatever application domain you can
+ imagine.
+ .
+ This package contains the cppuhelper library (helpers for using cppu in C++,
+ e.g. templates for implementing UNO components, bootstrapping stuff)
+
+Package: libuno-purpenvhelpergcc3-3t64
+Section: libs
+Architecture: %OOO_ARCHS%
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Replaces: ure (<< 5.0.0~rc2-1), uno-libs3, libuno-purpenvhelpergcc3-3
+Breaks: libreoffice-core (<< 1:4.3.0~), uno-libs3, libuno-purpenvhelpergcc3-3 (<< ${source:Version})
+Provides: ${t64:Provides}
+Description: LibreOffice UNO runtime environment -- "purpose environment" helper
+ The Uno Runtime Environment (URE) is the well-known UNO component model
+ of LibreOffice, packaged up as an individual product.
+ .
+ It offers you a flexible, low-overhead component model that is most ideal
+ for (but not limited to) combining in one application components written in
+ different computer languages, and developed by different parties. You can use
+ it to create any kind of application, in whatever application domain you can
+ imagine.
+ .
+ This package contains a library which contains a helper for implementing
+ so-called "purpose environments".
+
+Package: ure
+Section: libs
+Architecture: %OOO_ARCHS%
+Depends: ${misc:Depends}, ${shlibs:Depends}, uno-libs-private (= ${binary:Version})
+Replaces: libreoffice-common (<< 1:4.5.0), libreoffice-core (<< 1:5.3.0~beta1~), libjuh-java (<< 1:6.4.0~rc1-6), libridl-java (<< 1:6.4.0~rc1-6), libunoloader-java (<< 1:6.4.0~rc1-6), libjurt-java (<< 1:6.4.0~rc1-6), ure-java (<< 1:7.1.1~rc2-1)
+Breaks: libreoffice-core (<< 1:7.4.0~), libreoffice-core-nogui (<< 1:7.4.0~), libreoffice-common (<< 1:4.5.0), libjuh-java (<< 1:6.4.0~rc1-6), libridl-java (<< 1:6.4.0~rc1-6), libunoloader-java (<< 1:6.4.0~rc1-6), libjurt-java (<< 1:6.4.0~rc1-6), ure-java (<< 1:7.1.1~rc2-1)
+Description: LibreOffice UNO runtime environment
+ The Uno Runtime Environment (URE) is the well-known UNO component model
+ of LibreOffice, packaged up as an individual product.
+ .
+ It offers you a flexible, low-overhead component model that is most ideal
+ for (but not limited to) combining in one application components written in
+ different computer languages, and developed by different parties. You can use
+ it to create any kind of application, in whatever application domain you can
+ imagine.
+
+Package: ure-java
+Section: java
+Architecture: %OOO_JAVA_ARCHS%
+Depends: ${misc:Depends}, ${shlibs:Depends}, ${java:Depends}, uno-libs-private (= ${binary:Version}), ure (= ${binary:Version}), libunoloader-java
+Recommends: liblibreoffice-java, ${java-runtime-depends}
+Replaces: ure (<< 4:24.2.0~rc1~)
+Breaks: ure (<< 4:24.2.0~rc1~)
+Build-Profiles: <!nojava>
+Description: LibreOffice UNO runtime environment -- Java support
+ The Uno Runtime Environment (URE) is the well-known UNO component model
+ of LibreOffice, packaged up as an individual product.
+ .
+ It offers you a flexible, low-overhead component model that is most ideal
+ for (but not limited to) combining in one application components written in
+ different computer languages, and developed by different parties. You can use
+ it to create any kind of application, in whatever application domain you can
+ imagine.
+ .
+ This package contains the Java support in the URE.
+
+Package: libunoloader-java
+Architecture: all
+Section: java
+Depends: ${java:Depends}, ${misc:Depends}
+Replaces: ure (<< 6.4.0~rc1-6)
+Breaks: ure (<< 6.4.0~rc1-6)
+Build-Profiles: <!nojava>
+Description: LibreOffice UNO runtime environment -- (Java) UNO loader
+ The Uno Runtime Environment (URE) is the well-known UNO component model
+ of LibreOffice, packaged up as an individual product.
+ .
+ This package contains a UNO loader library for Java.
+
+Package: liblibreoffice-java
+Architecture: all
+Section: java
+Depends: ure-java, libunoloader-java, ${java:Depends}, ${misc:Depends}
+Provides: libjuh-java, libridl-java, libjurt-java, libunoil-java
+Replaces: libjuh-java (<< 1:7.1.0~), libridl-java (<< 1:7.1.0~), libjurt-java (<< 1:7.1.0~), libunoil-java (<< 1:7.1.0~)
+Breaks: libjuh-java (<< 1:7.1.0~), libridl-java (<< 1:7.1.0~), libjurt-java (<< 1:7.1.0~), libunoil-java (<< 1:7.1.0~)
+Build-Profiles: <!nojava>
+Description: LibreOffice UNO runtime environment -- Java library
+ The Uno Runtime Environment (URE) is the well-known UNO component model
+ of LibreOffice, packaged up as an individual product.
+ .
+ This package contains the public Java libraries.
+
diff --git a/debian/copyright b/debian/copyright
new file mode 100644 (file)
index 0000000..37a2502
--- /dev/null
@@ -0,0 +1,432 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: LibreOffice
+Upstream-Contact: libreoffice@lists.freedesktop.org
+Source: http://download.documentfoundation.org/libreoffice/src
+# they are already removed when packing the upstream tarballs, but are in git...
+#Files-Excluded: schema/*/*
+
+Files: *
+Copyright: Copyright 2000, 2010 Oracle and/or its affiliates.
+           Copyright (c) 2000, 2010 LibreOffice contributors and/or their affiliates.
+License: MPL-2.0
+ On Debian systems the full text of the MPL-2.0 can be found in
+ /usr/share/common-licenses/MPL-2.0.
+ .
+ Some files include Apache-2.0 licensed material:
+ .
+ # This file incorporates work covered by the following license notice:
+ #
+ #   Licensed to the Apache Software Foundation (ASF) under one or more
+ #   contributor license agreements. See the NOTICE file distributed
+ #   with this work for additional information regarding copyright
+ #   ownership. The ASF licenses this file to you under the Apache
+ #   License, Version 2.0 (the "License"); you may not use this file
+ #   except in compliance with the License. You may obtain a copy of
+ #   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ .
+ On Debian systems the full text of the Apache-2.0 license can be found in
+ /usr/share/common-licenses/Apache-2.0.
+
+Files: extras/source/truetype/symbol/OpenSymbol.sfd
+Copyright: (c) 2009 Sun Microsystems Inc.
+           (c) 2010 Google Corporation
+           (c) 2011 Julien Nabet
+           (c) 2011 Olivier Hallot
+           (c) 2013 Mathias Hasselmann
+           (c) 2015 Khaled Hosny
+           (c) 2016 Mike Kaganski
+License: MPL-2.0
+ On Debian systems the full text of the MPL-2.0 can be found in
+ /usr/share/common-licenses/MPL-2.0.
+ .
+ Some files include Apache-2.0 licensed material:
+ .
+ # This file incorporates work covered by the following license notice:
+ #
+ #   Licensed to the Apache Software Foundation (ASF) under one or more
+ #   contributor license agreements. See the NOTICE file distributed
+ #   with this work for additional information regarding copyright
+ #   ownership. The ASF licenses this file to you under the Apache
+ #   License, Version 2.0 (the "License"); you may not use this file
+ #   except in compliance with the License. You may obtain a copy of
+ #   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ .
+ On Debian systems the full text of the Apache-2.0 license can be found in
+ /usr/share/common-licenses/Apache-2.0.
+
+Files: swext/mediawiki/src/filter/odt2mediawiki.xsl
+Copyright: Copyright (C) 2007-2013  Bernhard Haumacher (haui@haumacher.de)
+License: Apache-2.0
+
+Files: sysui/desktop/apparmor/*
+Copyright: Copyright (C) 2016 Canonical Ltd.
+           Copyright (C) 2017 Software in the Public Interest, Inc.
+License: MPL-2.0
+
+Files: sysui/desktop/appstream-appdata/*.xml
+Copyright: Copyright (c) 2013-2019 LibreOffice contributors and/or their affiliates.
+License: CC0-1.0
+
+Files: msicreator/createmsi.py
+Copyright: Copyright 2017-2018 Jussi Pakkanen et al
+License: Apache-2.0
+
+Files: icon-themes/breeze*/*
+Copyright: Copyright 2014 Uri Herrera <kaisergreymon99@gmail.com>
+           Copyright 2015 Andreas Kainz <kainz.a@gmail.com> and other contributors
+License: GPL-2+
+
+Files: icon-themes/sifr*/*
+Copyright: Jakub Steiner <jimmac@novell.com>
+           Lapo Calamandrei <calamandrei@gmail.com>
+           Hylke Bons <hylke.bons@intel.com>
+           Barbara Muraus <barbara.muraus@gmail.com>
+           Issa Alkurtass <ialkurtass@kacst.edu.sa>
+           Norah Abanumay <nabanimy@kacst.edu.sa>
+           Copyright 2017-2018 Matthias Freund <matti_lx@mailbox.org>
+License: CC-BY-SA-3.0
+
+Files: icon-themes/elementary*/*
+Copyright: Copyright 2015 by Simon Steinbeiss <simon@xfce.org>, Pasi Lallinaho <pasi@shimmerproject.org>
+License: GPL-3+
+
+Files: icon-themes/colibre*/*
+Copyright: Copyright 2018 Andreas Kainz <kainz.a@gmail.com>
+License: CC0-1.0
+
+https://github.com/rizmut/libreoffice-style-karasa-jaga/blob/master/COPYING
+Files: icon-themes/karasa_jaga/*
+Copyright: Copyright (c) 2014 Rizal Muttaqin <sundaralinux@gmail.com>
+License: LGPL-3+
+
+Files: icon-themes/sukapura*/*
+Copyright: Copyright (c) 2019-2020 Rizal Muttaqin <riz_17_oke@yahoo.co.id>
+License: MPL-2.0
+
+Files: helpcontent2/help3xsl/normalize.css
+Copyright: Copyright © Nicolas Gallagher and Jonathan Neal
+License: Expat
+
+Files: helpcontent2/help3xsl/prism.js
+Copyright: Copyright (c) Lea Verou <https://lea.verou.me>
+License: MIT
+
+Files: helpcontent2/help3xsl/prism.css
+Copyright: Copyright (c) Tim  Shedor
+License: MIT
+
+Files: debian/*
+Copyright: Copyright (C) 2002-2009 Software in the Public Interest, Inc.
+License: GPL-2
+
+Files: debian/templates/debian-presentation.otp
+Copyright: Copyright (C) 2010 Raphaël Hertzog
+License: GPL-2+
+
+Files: debian/templates/debian-presentation-background.xcf
+Copyright: Copyright Alexis Younes "ayo"
+License: GPL-2+
+
+Files: vcl/qa/cppunit/data/tdf153440.ttf.readme
+Copyright: (C) 2023 Khaled Hosny <khaled@libreoffice.org>
+License:
+ This is a subset copy of Noto Emoji font licensed under Open Font License and
+ obtained from:
+ .
+  https://fonts.google.com/noto/specimen/Noto+Emoji
+ .
+ And subset using hb-subset to contain only the one glyph used in the test:
+ .
+  hb-subset static/NotoEmoji-Regular.ttf "🌿 " -o tdf153440.ttf --drop-tables=GSUB,STAT,vhea,vmtx
+ .
+ The space is added to the subset as it seems needed to get the font to work on
+ Windows. (The --drop-tables argument is not necessary be saves a few bytes of
+ stuff we don’t need.)
+ .
+ Open Font License:
+ .
+ PREAMBLE
+ The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership
+with others.
+ .
+ The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+ .
+ DEFINITIONS
+ “Font Software” refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+ .
+ “Reserved Font Name” refers to any names specified as such after the copyright statement(s).
+ .
+ “Original Version” refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+ .
+ “Modified Version” refers to any derivative made by adding to, deleting, or substituting – in part or in whole – any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+ .
+ “Author” refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+ .
+ PERMISSION & CONDITIONS
+ Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+ .
+ 1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+ .
+ 2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+ .
+ 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+ .
+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+ .
+ 5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+ .
+ TERMINATION
+ .
+ This license becomes null and void if any of the above conditions are
+ not met.
+ .
+ DISCLAIMER
+ .
+ THE FONT SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+ OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+ COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+ DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+ OTHER DEALINGS IN THE FONT SOFTWARE.
+
+Files: vcl/qa/cppunit/data/tdf107718.otf
+Copyright: (C) 2023 Khaled Hosny <khaled@libreoffice.org>
+License:
+ This is a subset copy of Source Han Sans font licensed under Open Font License and
+ obtained from (the Static Super OTC):
+ .
+  https://github.com/adobe-fonts/source-han-sans/releases/tag/2.004R
+ .
+ And subset using hb-subset to contain only the one glyph used in the test:
+ .
+  hb-subset SourceHanSans.ttc --face-index=25 --unicodes="u4E16,u1109,u1168,u11BC,u302E,uC185,u0020" -o tdf107718.otf
+ .
+ Open Font License:
+ .
+ PREAMBLE
+ The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership
+with others.
+ .
+ The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+ .
+ DEFINITIONS
+ “Font Software” refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+ .
+ “Reserved Font Name” refers to any names specified as such after the copyright statement(s).
+ .
+ “Original Version” refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+ .
+ “Modified Version” refers to any derivative made by adding to, deleting, or substituting – in part or in whole – any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+ .
+ “Author” refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+ .
+ PERMISSION & CONDITIONS
+ Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+ .
+ 1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+ .
+ 2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+ .
+ 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+ .
+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+ .
+ 5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+ .
+ TERMINATION
+ .
+ This license becomes null and void if any of the above conditions are
+ not met.
+ .
+ DISCLAIMER
+ .
+ THE FONT SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+ OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+ COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+ DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+ OTHER DEALINGS IN THE FONT SOFTWARE.
+
+Files: tarballs/dtoa*
+Copyright: Copyright (c) 1991, 2000, 2001 by Lucent Technologies.
+License: Expat
+
+# https://github.com/google/skia/blob/master/LICENSE
+Files: tarballs/skia*
+Copyright: Copyright (c) 2011 Google Inc.
+License: BSD-3-clause
+
+Files: tarballs/*rhino*
+Copyright: Copyright (C) 1997-2000 Netscape Communications Corporation
+           Copyright (C) 2000 See Beyond Communications Corporation
+License: MPL-1.1 or GPL-2 or LGPL-2
+
+Files: tarballs/*xsltml*
+Copyright: Copyright (C) 2001-2003 Vasil Yaroshevich
+License: other
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation
+ files (the ``Software''), to deal in the Software without
+ restriction, including without limitation the rights to use,
+ copy, modify, merge, publish, distribute, sublicense, and/or
+ sell copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following
+ conditions:
+ .
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+ .
+ Except as contained in this notice, the names of individuals
+ credited with contribution to this software shall not be used in
+ advertising or otherwise to promote the sale, use or other
+ dealings in this Software without prior written authorization
+ from the individuals in question.
+ .
+ Any stylesheet derived from this Software that is publically
+ distributed will be identified with a different name and the
+ version strings in any derived Software will be changed so that
+ no possibility of confusion between the derived package and this
+ Software will exist.
+
+Files: tarballs/*swingEx*
+Copyright: Copyright 2008 by Sun Microsystems, Inc.
+License: LGPL-3
+ On Debian systems the full text of the LGPL-3 can be found in
+ /usr/share/common-licenses/LGPL-3
+
+Files: tarballs/pdfium*
+Copyright: // Copyright 2014-2016 PDFium Authors.
+           // Original code copyright 2014 Foxit Software Inc.
+License: other
+ // Redistribution and use in source and binary forms, with or without
+ // modification, are permitted provided that the following conditions are
+ // met:
+ //
+ //    * Redistributions of source code must retain the above copyright
+ // notice, this list of conditions and the following disclaimer.
+ //    * Redistributions in binary form must reproduce the above
+ // copyright notice, this list of conditions and the following disclaimer
+ // in the documentation and/or other materials provided with the
+ // distribution.
+ //    * Neither the name of Google Inc. nor the names of its
+ // contributors may be used to endorse or promote products derived from
+ // this software without specific prior written permission.
+ //
+ // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Files: tarballs/Java-WebSocket*
+Copyright: Copyright (c) 2010-2020 Nathan Rajlich
+License: MIT
+
+Files: debian/patches/add-access2base-doc.diff wizards/source/access2base/access2base.html
+Copyright: Copyright (c) Jeremy Ruston 2004-2007
+           Copyright (c) UnaMesa Association 2007-2012
+License: other
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+ .
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ .
+ Redistributions in binary form must reproduce the above copyright notice, this
+ list of conditions and the following disclaimer in the documentation and/or other
+ materials provided with the distribution.
+ .
+ Neither the name of the UnaMesa Association nor the names of its contributors may be
+ used to endorse or promote products derived from this software without specific
+ prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' AND ANY
+ EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
+ SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+
+Files: helpcontent2/help3xsl/polyfills.js
+Copyright: Copyright (c) 2016-present, jszhou
+License: MIT
+
+Files: helpcontent2/help3xsl/polyfills.js
+Copyright: Copyright (C) 2015 Larry Davis
+License: BSD-2-clause
+
+License: Expat
+  Permission is hereby granted, free of charge, to any person obtaining
+  a copy of this software and associated documentation files (the
+  "Software"), to deal in the Software without restriction, including
+  without limitation the rights to use, copy, modify, merge, publish,
+  distribute, sublicense, and/or sell copies of the Software, and to
+  permit persons to whom the Software is furnished to do so, subject to
+  the following conditions:
+  .
+  The above copyright notice and this permission notice shall be
+  included in all copies or substantial portions of the Software.
+  .
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+License: MPL-2.0
+ On Debian systems the full text of the MPL-2.0 can be found in
+ /usr/share/common-licenses/MPL-2.0.
+
+License: Apache-2.0
+ On Debian systems the full text of the Apache-2.0 license can be found in
+ /usr/share/common-licenses/Apache-2.0.
+
+License: GPL-2+
+ On Debian systems the full text of the GPL-2 can be found in
+ /usr/share/common-licenses/GPL-2
+
+License: GPL-3+
+ On Debian systems the full text of the GPL-3 can be found in
+ /usr/share/common-licenses/GPL-3
+
+License: GPL-2
+ On Debian systems the full text of the GPL-2 can be found in
+ /usr/share/common-licenses/GPL-2
+
+License: MPL-1.1
+ On Debian systems the full text of the MPL-1.1 can be found in
+ /usr/share/common-licenses/MPL-1.1
+
+License: LGPL-2
+ On Debian systems the full text of the LGPL-2 can be found in
+ /usr/share/common-licenses/LGPL-2
+
+License: LGPL-3+
+ On Debian systems the full text of the LGPL-3 can be found in
+ /usr/share/common-licenses/LGPL-3
+
+License: CC0-1.0
+ On Debian systems the full text of the CC0-1.0 license can be found in
+ /usr/share/common-licenses/CC0-1.0
+
+
diff --git a/debian/gir1.2-lokdocview-0.1.maintscript b/debian/gir1.2-lokdocview-0.1.maintscript
new file mode 100644 (file)
index 0000000..af2542f
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/gir1.2-lokdocview-0.1 /usr/share/doc/libreoffice-core 1:6.4.0~alpha1~git20191013
diff --git a/debian/liblibreoffice-java.lintian-overrides b/debian/liblibreoffice-java.lintian-overrides
new file mode 100644 (file)
index 0000000..1684771
--- /dev/null
@@ -0,0 +1,5 @@
+liblibreoffice-java: codeless-jar [usr/share/java/juh-*.jar]
+liblibreoffice-java: codeless-jar [usr/share/java/jurt-*.jar]
+liblibreoffice-java: codeless-jar [usr/share/java/ridl-*.jar]
+liblibreoffice-java: codeless-jar [usr/share/java/unoil-*.jar]
+liblibreoffice-java: classpath-contains-relative-path ../ [usr/share/java/libreoffice-*.jar]
diff --git a/debian/liblibreoffice-java.poms b/debian/liblibreoffice-java.poms
new file mode 100644 (file)
index 0000000..e73276d
--- /dev/null
@@ -0,0 +1,32 @@
+# List of POM files for the package
+# Format of this file is:
+# <path to pom file> [option]*
+# where option can be:
+#   --ignore: ignore this POM and its artifact if any
+#   --ignore-pom: don't install the POM. To use on POM files that are created
+#     temporarily for certain artifacts such as Javadoc jars. [mh_install, mh_installpoms]
+#   --no-parent: remove the <parent> tag from the POM
+#   --package=<package>: an alternative package to use when installing this POM
+#      and its artifact
+#   --has-package-version: to indicate that the original version of the POM is the same as the upstream part
+#      of the version for the package.
+#   --keep-elements=<elem1,elem2>: a list of XML elements to keep in the POM
+#      during a clean operation with mh_cleanpom or mh_installpom
+#   --artifact=<path>: path to the build artifact associated with this POM,
+#      it will be installed when using the command mh_install. [mh_install]
+#   --java-lib: install the jar into /usr/share/java to comply with Debian
+#      packaging guidelines
+#   --usj-name=<name>: name to use when installing the library in /usr/share/java
+#   --usj-version=<version>: version to use when installing the library in /usr/share/java
+#   --no-usj-versionless: don't install the versionless link in /usr/share/java
+#   --dest-jar=<path>: the destination for the real jar.
+#     It will be installed with mh_install. [mh_install]
+#   --classifier=<classifier>: Optional, the classifier for the jar. Empty by default.
+#   --site-xml=<location>: Optional, the location for site.xml if it needs to be installed.
+#     Empty by default. [mh_install]
+#
+debian/pom.juh.xml --no-parent --has-package-version
+debian/pom.jurt.xml --no-parent --has-package-version
+debian/pom.ridl.xml --no-parent --has-package-version
+debian/pom.unoil.xml --no-parent --has-package-version
+debian/pom.libreoffice.xml --no-parent --has-package-version
diff --git a/debian/liblibreofficekitgtk.links b/debian/liblibreofficekitgtk.links
new file mode 100644 (file)
index 0000000..c8017de
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/libreoffice/program/liblibreofficekitgtk.so usr/lib/liblibreofficekitgtk.so
diff --git a/debian/liblibreofficekitgtk.maintscript b/debian/liblibreofficekitgtk.maintscript
new file mode 100644 (file)
index 0000000..bc4fa41
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/liblibreofficekitgtk /usr/share/doc/libreoffice-core 1:6.4.0~alpha1~git20191013
diff --git a/debian/libofficebean-java.poms b/debian/libofficebean-java.poms
new file mode 100644 (file)
index 0000000..36e613a
--- /dev/null
@@ -0,0 +1,28 @@
+# List of POM files for the package
+# Format of this file is:
+# <path to pom file> [option]*
+# where option can be:
+#   --ignore: ignore this POM and its artifact if any
+#   --ignore-pom: don't install the POM. To use on POM files that are created
+#     temporarily for certain artifacts such as Javadoc jars. [mh_install, mh_installpoms]
+#   --no-parent: remove the <parent> tag from the POM
+#   --package=<package>: an alternative package to use when installing this POM
+#      and its artifact
+#   --has-package-version: to indicate that the original version of the POM is the same as the upstream part
+#      of the version for the package.
+#   --keep-elements=<elem1,elem2>: a list of XML elements to keep in the POM
+#      during a clean operation with mh_cleanpom or mh_installpom
+#   --artifact=<path>: path to the build artifact associated with this POM,
+#      it will be installed when using the command mh_install. [mh_install]
+#   --java-lib: install the jar into /usr/share/java to comply with Debian
+#      packaging guidelines
+#   --usj-name=<name>: name to use when installing the library in /usr/share/java
+#   --usj-version=<version>: version to use when installing the library in /usr/share/java
+#   --no-usj-versionless: don't install the versionless link in /usr/share/java
+#   --dest-jar=<path>: the destination for the real jar.
+#     It will be installed with mh_install. [mh_install]
+#   --classifier=<classifier>: Optional, the classifier for the jar. Empty by default.
+#   --site-xml=<location>: Optional, the location for site.xml if it needs to be installed.
+#     Empty by default. [mh_install]
+#
+debian/pom.officebean.xml --no-parent --has-package-version
diff --git a/debian/libreoffice-avmedia-backend-gstreamer.maintscript b/debian/libreoffice-avmedia-backend-gstreamer.maintscript
new file mode 100644 (file)
index 0000000..b89fd7b
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-avmedia-backend-gstreamer /usr/share/doc/libreoffice-core 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-base-core.maintscript b/debian/libreoffice-base-core.maintscript
new file mode 100644 (file)
index 0000000..de6bf06
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-base-core /usr/share/doc/libreoffice-core 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-base-drivers.NEWS b/debian/libreoffice-base-drivers.NEWS
new file mode 100644 (file)
index 0000000..049002c
--- /dev/null
@@ -0,0 +1,14 @@
+libreoffice (1:6.2.0~beta1-1) unstable; urgency=low
+
+  * The JDBC Driver used for JDBC Access by the LibreOffice MySQL driver
+    (NOT libreoffice-mysql-connector) contained in this package has been
+    changed from MySQL to MariaDB (libmysql-java -> libmariadb-java). See
+    http://bugs.debian.org/913360 and https://bugs.debian.org/912916.
+
+    This also involves changing the classes used in the code, so using
+    libmysql-java and com.mysql.jdbc.Driver does not work anymore.
+
+    If you want to connect to MySQL or MariaDB databases over JDBC, use
+    libmariadb-java.
+
+ -- Rene Engelhard <rene@debian.org>  Fri, 16 Nov 2018 19:35:22 +0100
diff --git a/debian/libreoffice-base-drivers.lintian-overrides b/debian/libreoffice-base-drivers.lintian-overrides
new file mode 100644 (file)
index 0000000..2e33386
--- /dev/null
@@ -0,0 +1,2 @@
+# "aged out" due to debhelpers changelog trimming (see #1021502)
+libreoffice-base-drivers: debian-news-entry-has-unknown-version 1:6.2.0~beta1-1 [usr/share/doc/libreoffice-base-drivers/NEWS.Debian.gz:1]
diff --git a/debian/libreoffice-base-drivers.maintscript b/debian/libreoffice-base-drivers.maintscript
new file mode 100644 (file)
index 0000000..a2c6bc2
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-base-drivers /usr/share/doc/libreoffice-core 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-base-nogui.bug-control b/debian/libreoffice-base-nogui.bug-control
new file mode 100644 (file)
index 0000000..b06c62e
--- /dev/null
@@ -0,0 +1,2 @@
+report-with: libreoffice-core libreoffice-core-nogui
+package-status: unixodbc libmyodbc odbc-postgresql libsqliteodbc tdsodbc mdbtools libmariadb-java libmysql-java libpg-java libsapdbc-java
diff --git a/debian/libreoffice-base-nogui.mime b/debian/libreoffice-base-nogui.mime
new file mode 100644 (file)
index 0000000..3174fcc
--- /dev/null
@@ -0,0 +1,11 @@
+###
+# shared-mime-info
+
+# OASIS OpenDocument Format
+application/vnd.oasis.opendocument.database; soffice --nologo --base %s; edit=soffice --nologo --base %s; print=soffice --nologo --base -p %s; test=test -n "$DISPLAY"; description="OpenDocument Database"; nametemplate=%s.odb; priority=9
+
+# OpenOffice.org 1.0
+application/vnd.sun.xml.base; soffice --nologo --writer %s; edit=soffice --nologo --writer %s; description="OpenOffice.org Database"; nametemplate=%s.sdb; priority=8
+
+#
+###
diff --git a/debian/libreoffice-base-nogui.ucf b/debian/libreoffice-base-nogui.ucf
new file mode 100644 (file)
index 0000000..79c8af2
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/libreoffice/share/.registry/base.xcd /etc/libreoffice/registry/base.xcd
diff --git a/debian/libreoffice-base.NEWS b/debian/libreoffice-base.NEWS
new file mode 100644 (file)
index 0000000..b7a30f1
--- /dev/null
@@ -0,0 +1,14 @@
+libreoffice (1:4.2.1-1) experimental; urgency=low
+
+  * the database drivers have been split out to a new libreoffice-base-drivers
+    package. This package depends on most of them, but that explicitly
+    _does not_ include the HSQLDB SDBC Driver or the new Firebird SDBC Driver
+    (both for the embedded database) - whose because of their dependencies are
+    split into extra packages.
+    .
+    If you used a "normal" embedded database in your (old) database file you
+    _must_ install libreoffice-sdbc-hsqldb so that it can "connect" to it.
+    .
+    Similar with the new Firebird embedded database in 4.2 and -sdbc-firebird.
+
+ -- Rene Engelhard <rene@debian.org>  Fri, 16 Aug 2013 10:21:53 +0200
diff --git a/debian/libreoffice-base.bug-control b/debian/libreoffice-base.bug-control
new file mode 100644 (file)
index 0000000..31f42c1
--- /dev/null
@@ -0,0 +1,2 @@
+report-with: libreoffice-core
+package-status: unixodbc libmyodbc odbc-postgresql libsqliteodbc tdsodbc mdbtools libmariadb-java libmysql-java libpg-java libsapdbc-java
diff --git a/debian/libreoffice-base.lintian-overrides b/debian/libreoffice-base.lintian-overrides
new file mode 100644 (file)
index 0000000..458c78f
--- /dev/null
@@ -0,0 +1,3 @@
+libreoffice-base: desktop-command-not-in-package libreoffice [usr/share/applications/libreoffice-base.desktop]
+# "aged out" due to debhelpers changelog trimming (see #1021502)
+libreoffice-base: debian-news-entry-has-unknown-version 1:4.2.1-1 [usr/share/doc/libreoffice-base/NEWS.Debian.gz:1]
diff --git a/debian/libreoffice-base.maintscript b/debian/libreoffice-base.maintscript
new file mode 100644 (file)
index 0000000..14d5ac4
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-base /usr/share/doc/libreoffice-core 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-base.manpages b/debian/libreoffice-base.manpages
new file mode 100644 (file)
index 0000000..144eec7
--- /dev/null
@@ -0,0 +1 @@
+debian/tmp/usr/share/man/man1/lobase.1.gz
diff --git a/debian/libreoffice-base.mime b/debian/libreoffice-base.mime
new file mode 100644 (file)
index 0000000..3174fcc
--- /dev/null
@@ -0,0 +1,11 @@
+###
+# shared-mime-info
+
+# OASIS OpenDocument Format
+application/vnd.oasis.opendocument.database; soffice --nologo --base %s; edit=soffice --nologo --base %s; print=soffice --nologo --base -p %s; test=test -n "$DISPLAY"; description="OpenDocument Database"; nametemplate=%s.odb; priority=9
+
+# OpenOffice.org 1.0
+application/vnd.sun.xml.base; soffice --nologo --writer %s; edit=soffice --nologo --writer %s; description="OpenOffice.org Database"; nametemplate=%s.sdb; priority=8
+
+#
+###
diff --git a/debian/libreoffice-base.preinst.in b/debian/libreoffice-base.preinst.in
new file mode 100644 (file)
index 0000000..08ab83a
--- /dev/null
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+set -e
+
+#INCLUDE_SHELL_LIB#
+
+if [ upgrade = "$1" ] || dpkg --compare-versions "$2" lt 1:6.4.0~beta1-2; then
+       dpkg-divert --remove --no-rename \
+               --divert /usr/lib/libreoffice/share/basic/dialog.xlc.noaccess \
+                       /usr/lib/libreoffice/share/basic/dialog.xlc
+       dpkg-divert --remove --no-rename \
+               --divert /usr/lib/libreoffice/share/basic/script.xlc.noaccess \
+                       /usr/lib/libreoffice/share/basic/script.xlc
+       # cleanup
+       rm -f /usr/lib/libreoffice/share/basic/script.xlc.noaccess
+       rm -f /usr/lib/libreoffice/share/basic/dialog.xlc.noaccess
+fi
+
+#DEBHELPER#
+
+exit 0
diff --git a/debian/libreoffice-base.ucf b/debian/libreoffice-base.ucf
new file mode 100644 (file)
index 0000000..79c8af2
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/libreoffice/share/.registry/base.xcd /etc/libreoffice/registry/base.xcd
diff --git a/debian/libreoffice-calc-nogui.lintian-overrides b/debian/libreoffice-calc-nogui.lintian-overrides
new file mode 100644 (file)
index 0000000..630bb42
--- /dev/null
@@ -0,0 +1 @@
+libreoffice-calc-nogui: binary-or-shlib-defines-rpath
diff --git a/debian/libreoffice-calc-nogui.mime b/debian/libreoffice-calc-nogui.mime
new file mode 100644 (file)
index 0000000..d306e62
--- /dev/null
@@ -0,0 +1,37 @@
+###
+# shared-mime-info
+
+# Generic
+text/csv; soffice --nologo --calc %s; edit=soffice --nologo --calc %s; test=test -n "$DISPLAY"; description="CSV Document"; nametemplate=%s.csv; priority=3
+text/spreadsheet; soffice --nologo --calc %s; edit=soffice --nologo --calc %s; test=test -n "$DISPLAY"; description="Spreadsheet Interchange Document"; nametemplate=%s.slk; priority=3
+
+# Corel Quattro Pro
+application/x-quattropro; soffice --nologo --calc %s; edit=soffice --nologo --calc %s; test=test -n "$DISPLAY"; description="Quattro Pro 6 for Windows Spreadsheet"; nametemplate=%s.wb2; priority=3
+
+# dBase dBASE
+application/x-dbf; soffice --nologo --calc %s; edit=soffice --nologo --calc %s; test=test -n "$DISPLAY"; description="xBase Document"; nametemplate=%s.dbf; priority=3
+
+# ECMA Office Open XML (Microsoft Office 2007)
+application/vnd.ms-excel.sheet.macroEnabled.12; soffice --nologo --calc %s; edit=soffice --nologo --calc %s; test=test -n "$DISPLAY"; description="Office Open XML Spreadsheet with Macros Enabled"; nametemplate=%s.xlsm; priority=3
+application/vnd.ms-excel.template.macroEnabled.12; soffice --nologo --calc %s; edit=soffice --nologo --calc %s; test=test -n "$DISPLAY"; description="Office Open XML Spreadsheet Template with Macros Enabled"; nametemplate=%s.xltm; priority=3
+application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; soffice --nologo --calc %s; edit=soffice --nologo --calc %s; test=test -n "$DISPLAY"; description="Office Open XML Spreadsheet"; nametemplate=%s.xlsx; priority=3
+application/vnd.openxmlformats-officedocument.spreadsheetml.template; soffice --nologo --calc %s; edit=soffice --nologo --calc %s; test=test -n "$DISPLAY"; description="Office Open XML Spreadsheet Template"; nametemplate=%s.xltx; priority=3
+
+# IBM Lotus 1-2-3
+application/vnd.lotus-1-2-3; soffice --nologo --calc %s; edit=soffice --nologo --calc %s; test=test -n "$DISPLAY"; description="Lotus 1-2-3 spreadsheet"; nametemplate=%s.123; priority=3
+
+# Microsoft Excel
+application/vnd.ms-excel; soffice --nologo --calc %s; edit=soffice --nologo --calc %s; test=test -n "$DISPLAY"; description="Microsoft Excel Document"; nametemplate=%s.xls; priority=3
+
+# OASIS OpenDocument Format
+application/vnd.oasis.opendocument.chart; soffice --nologo --calc %s; edit=soffice --nologo --calc %s; print=soffice --nologo --calc -p %s; test=test -n "$DISPLAY"; description="OpenDocument Chart"; nametemplate=%s.odc; priority=9
+application/vnd.oasis.opendocument.spreadsheet; soffice --nologo --calc %s; edit=soffice --nologo --calc %s; print=soffice --nologo --calc -p %s; test=test -n "$DISPLAY"; description="OpenDocument Spreadsheet"; nametemplate=%s.ods; priority=9
+application/vnd.oasis.opendocument.spreadsheet-template; soffice --nologo --calc %s; edit=soffice --nologo --calc %s; print=soffice --nologo --calc -p %s; test=test -n "$DISPLAY"; description="OpenDocument Spreadsheet Template"; nametemplate=%s.ots; priority=9
+
+# OpenOffice.org 1.0
+application/vnd.sun.xml.calc; soffice --nologo --calc %s; edit=soffice --nologo --calc %s; test=test -n "$DISPLAY"; description="OpenOffice.org Spreadsheet"; nametemplate=%s.sxc; priority=8
+application/vnd.sun.xml.calc.template; soffice --nologo --calc %s; edit=soffice --nologo --calc %s; test=test -n "$DISPLAY"; description="OpenOffice.org Spreadsheet Template"; nametemplate=%s.stc; priority=8
+
+#
+###
+
diff --git a/debian/libreoffice-calc-nogui.ucf b/debian/libreoffice-calc-nogui.ucf
new file mode 100644 (file)
index 0000000..4820977
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/libreoffice/share/.registry/calc.xcd /etc/libreoffice/registry/calc.xcd
diff --git a/debian/libreoffice-calc.bug-control b/debian/libreoffice-calc.bug-control
new file mode 100644 (file)
index 0000000..1ac405f
--- /dev/null
@@ -0,0 +1 @@
+report-with: libreoffice-core
diff --git a/debian/libreoffice-calc.lintian-overrides b/debian/libreoffice-calc.lintian-overrides
new file mode 100644 (file)
index 0000000..ba31100
--- /dev/null
@@ -0,0 +1,2 @@
+libreoffice-calc: binary-or-shlib-defines-rpath
+libreoffice-calc: desktop-command-not-in-package libreoffice [usr/share/applications/libreoffice-calc.desktop]
diff --git a/debian/libreoffice-calc.maintscript b/debian/libreoffice-calc.maintscript
new file mode 100644 (file)
index 0000000..859933b
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-calc /usr/share/doc/libreoffice-core 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-calc.manpages b/debian/libreoffice-calc.manpages
new file mode 100644 (file)
index 0000000..a4b78ee
--- /dev/null
@@ -0,0 +1,2 @@
+debian/tmp/usr/share/man/man1/localc.1.gz
+
diff --git a/debian/libreoffice-calc.mime b/debian/libreoffice-calc.mime
new file mode 100644 (file)
index 0000000..d306e62
--- /dev/null
@@ -0,0 +1,37 @@
+###
+# shared-mime-info
+
+# Generic
+text/csv; soffice --nologo --calc %s; edit=soffice --nologo --calc %s; test=test -n "$DISPLAY"; description="CSV Document"; nametemplate=%s.csv; priority=3
+text/spreadsheet; soffice --nologo --calc %s; edit=soffice --nologo --calc %s; test=test -n "$DISPLAY"; description="Spreadsheet Interchange Document"; nametemplate=%s.slk; priority=3
+
+# Corel Quattro Pro
+application/x-quattropro; soffice --nologo --calc %s; edit=soffice --nologo --calc %s; test=test -n "$DISPLAY"; description="Quattro Pro 6 for Windows Spreadsheet"; nametemplate=%s.wb2; priority=3
+
+# dBase dBASE
+application/x-dbf; soffice --nologo --calc %s; edit=soffice --nologo --calc %s; test=test -n "$DISPLAY"; description="xBase Document"; nametemplate=%s.dbf; priority=3
+
+# ECMA Office Open XML (Microsoft Office 2007)
+application/vnd.ms-excel.sheet.macroEnabled.12; soffice --nologo --calc %s; edit=soffice --nologo --calc %s; test=test -n "$DISPLAY"; description="Office Open XML Spreadsheet with Macros Enabled"; nametemplate=%s.xlsm; priority=3
+application/vnd.ms-excel.template.macroEnabled.12; soffice --nologo --calc %s; edit=soffice --nologo --calc %s; test=test -n "$DISPLAY"; description="Office Open XML Spreadsheet Template with Macros Enabled"; nametemplate=%s.xltm; priority=3
+application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; soffice --nologo --calc %s; edit=soffice --nologo --calc %s; test=test -n "$DISPLAY"; description="Office Open XML Spreadsheet"; nametemplate=%s.xlsx; priority=3
+application/vnd.openxmlformats-officedocument.spreadsheetml.template; soffice --nologo --calc %s; edit=soffice --nologo --calc %s; test=test -n "$DISPLAY"; description="Office Open XML Spreadsheet Template"; nametemplate=%s.xltx; priority=3
+
+# IBM Lotus 1-2-3
+application/vnd.lotus-1-2-3; soffice --nologo --calc %s; edit=soffice --nologo --calc %s; test=test -n "$DISPLAY"; description="Lotus 1-2-3 spreadsheet"; nametemplate=%s.123; priority=3
+
+# Microsoft Excel
+application/vnd.ms-excel; soffice --nologo --calc %s; edit=soffice --nologo --calc %s; test=test -n "$DISPLAY"; description="Microsoft Excel Document"; nametemplate=%s.xls; priority=3
+
+# OASIS OpenDocument Format
+application/vnd.oasis.opendocument.chart; soffice --nologo --calc %s; edit=soffice --nologo --calc %s; print=soffice --nologo --calc -p %s; test=test -n "$DISPLAY"; description="OpenDocument Chart"; nametemplate=%s.odc; priority=9
+application/vnd.oasis.opendocument.spreadsheet; soffice --nologo --calc %s; edit=soffice --nologo --calc %s; print=soffice --nologo --calc -p %s; test=test -n "$DISPLAY"; description="OpenDocument Spreadsheet"; nametemplate=%s.ods; priority=9
+application/vnd.oasis.opendocument.spreadsheet-template; soffice --nologo --calc %s; edit=soffice --nologo --calc %s; print=soffice --nologo --calc -p %s; test=test -n "$DISPLAY"; description="OpenDocument Spreadsheet Template"; nametemplate=%s.ots; priority=9
+
+# OpenOffice.org 1.0
+application/vnd.sun.xml.calc; soffice --nologo --calc %s; edit=soffice --nologo --calc %s; test=test -n "$DISPLAY"; description="OpenOffice.org Spreadsheet"; nametemplate=%s.sxc; priority=8
+application/vnd.sun.xml.calc.template; soffice --nologo --calc %s; edit=soffice --nologo --calc %s; test=test -n "$DISPLAY"; description="OpenOffice.org Spreadsheet Template"; nametemplate=%s.stc; priority=8
+
+#
+###
+
diff --git a/debian/libreoffice-calc.ucf b/debian/libreoffice-calc.ucf
new file mode 100644 (file)
index 0000000..4820977
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/libreoffice/share/.registry/calc.xcd /etc/libreoffice/registry/calc.xcd
diff --git a/debian/libreoffice-common.docs b/debian/libreoffice-common.docs
new file mode 100644 (file)
index 0000000..e267579
--- /dev/null
@@ -0,0 +1 @@
+wizards/source/access2base/access2base.html
diff --git a/debian/libreoffice-common.links.in b/debian/libreoffice-common.links.in
new file mode 100644 (file)
index 0000000..8365f3e
--- /dev/null
@@ -0,0 +1,37 @@
+usr/share/icons/hicolor/16x16/mimetypes/libreoffice-oasis-database.png usr/share/icons/hicolor/16x16/mimetypes/application-vnd.oasis.opendocument.database.png
+usr/share/icons/hicolor/16x16/mimetypes/libreoffice-oasis-drawing.png usr/share/icons/hicolor/16x16/mimetypes/application-vnd.oasis.opendocument.drawing.png
+usr/share/icons/hicolor/16x16/mimetypes/libreoffice-oasis-drawing-template.png usr/share/icons/hicolor/16x16/mimetypes/application-vnd.oasis.opendocument.drawing-template.png
+usr/share/icons/hicolor/16x16/mimetypes/libreoffice-oasis-formula.png usr/share/icons/hicolor/16x16/mimetypes/application-vnd.oasis.opendocument.formula.png
+usr/share/icons/hicolor/16x16/mimetypes/libreoffice-oasis-master-document.png usr/share/icons/hicolor/16x16/mimetypes/application-vnd.oasis.opendocument.master-document.png
+usr/share/icons/hicolor/16x16/mimetypes/libreoffice-oasis-presentation.png usr/share/icons/hicolor/16x16/mimetypes/application-vnd.oasis.opendocument.presentation.png
+usr/share/icons/hicolor/16x16/mimetypes/libreoffice-oasis-presentation-template.png usr/share/icons/hicolor/16x16/mimetypes/application-vnd.oasis.opendocument.presentation-template.png
+usr/share/icons/hicolor/16x16/mimetypes/libreoffice-oasis-spreadsheet.png usr/share/icons/hicolor/16x16/mimetypes/application-vnd.oasis.opendocument.spreadsheet.png
+usr/share/icons/hicolor/16x16/mimetypes/libreoffice-oasis-spreadsheet-template.png usr/share/icons/hicolor/16x16/mimetypes/application-vnd.oasis.opendocument.spreadsheet-template.png
+usr/share/icons/hicolor/16x16/mimetypes/libreoffice-oasis-text.png usr/share/icons/hicolor/16x16/mimetypes/application-vnd.oasis.opendocument.text.png
+usr/share/icons/hicolor/16x16/mimetypes/libreoffice-oasis-text-template.png usr/share/icons/hicolor/16x16/mimetypes/application-vnd.oasis.opendocument.text-template.png
+usr/share/icons/hicolor/16x16/mimetypes/libreoffice-oasis-web-template.png usr/share/icons/hicolor/16x16/mimetypes/application-vnd.oasis.opendocument.web-template.png
+usr/share/icons/hicolor/32x32/mimetypes/libreoffice-oasis-database.png usr/share/icons/hicolor/32x32/mimetypes/application-vnd.oasis.opendocument.database.png
+usr/share/icons/hicolor/32x32/mimetypes/libreoffice-oasis-drawing.png usr/share/icons/hicolor/32x32/mimetypes/application-vnd.oasis.opendocument.drawing.png
+usr/share/icons/hicolor/32x32/mimetypes/libreoffice-oasis-drawing-template.png usr/share/icons/hicolor/32x32/mimetypes/application-vnd.oasis.opendocument.drawing-template.png
+usr/share/icons/hicolor/32x32/mimetypes/libreoffice-oasis-formula.png usr/share/icons/hicolor/32x32/mimetypes/application-vnd.oasis.opendocument.formula.png
+usr/share/icons/hicolor/32x32/mimetypes/libreoffice-oasis-master-document.png usr/share/icons/hicolor/32x32/mimetypes/application-vnd.oasis.opendocument.master-document.png
+usr/share/icons/hicolor/32x32/mimetypes/libreoffice-oasis-presentation.png usr/share/icons/hicolor/32x32/mimetypes/application-vnd.oasis.opendocument.presentation.png
+usr/share/icons/hicolor/32x32/mimetypes/libreoffice-oasis-presentation-template.png usr/share/icons/hicolor/32x32/mimetypes/application-vnd.oasis.opendocument.presentation-template.png
+usr/share/icons/hicolor/32x32/mimetypes/libreoffice-oasis-spreadsheet.png usr/share/icons/hicolor/32x32/mimetypes/application-vnd.oasis.opendocument.spreadsheet.png
+usr/share/icons/hicolor/32x32/mimetypes/libreoffice-oasis-spreadsheet-template.png usr/share/icons/hicolor/32x32/mimetypes/application-vnd.oasis.opendocument.spreadsheet-template.png
+usr/share/icons/hicolor/32x32/mimetypes/libreoffice-oasis-text.png usr/share/icons/hicolor/32x32/mimetypes/application-vnd.oasis.opendocument.text.png
+usr/share/icons/hicolor/32x32/mimetypes/libreoffice-oasis-text-template.png usr/share/icons/hicolor/32x32/mimetypes/application-vnd.oasis.opendocument.text-template.png
+usr/share/icons/hicolor/32x32/mimetypes/libreoffice-oasis-web-template.png usr/share/icons/hicolor/32x32/mimetypes/application-vnd.oasis.opendocument.web-template.png
+usr/share/icons/hicolor/48x48/mimetypes/libreoffice-oasis-database.png usr/share/icons/hicolor/48x48/mimetypes/application-vnd.oasis.opendocument.database.png
+usr/share/icons/hicolor/48x48/mimetypes/libreoffice-oasis-drawing.png usr/share/icons/hicolor/48x48/mimetypes/application-vnd.oasis.opendocument.drawing.png
+usr/share/icons/hicolor/48x48/mimetypes/libreoffice-oasis-drawing-template.png usr/share/icons/hicolor/48x48/mimetypes/application-vnd.oasis.opendocument.drawing-template.png
+usr/share/icons/hicolor/48x48/mimetypes/libreoffice-oasis-formula.png usr/share/icons/hicolor/48x48/mimetypes/application-vnd.oasis.opendocument.formula.png
+usr/share/icons/hicolor/48x48/mimetypes/libreoffice-oasis-master-document.png usr/share/icons/hicolor/48x48/mimetypes/application-vnd.oasis.opendocument.master-document.png
+usr/share/icons/hicolor/48x48/mimetypes/libreoffice-oasis-presentation.png usr/share/icons/hicolor/48x48/mimetypes/application-vnd.oasis.opendocument.presentation.png
+usr/share/icons/hicolor/48x48/mimetypes/libreoffice-oasis-presentation-template.png usr/share/icons/hicolor/48x48/mimetypes/application-vnd.oasis.opendocument.presentation-template.png
+usr/share/icons/hicolor/48x48/mimetypes/libreoffice-oasis-spreadsheet.png usr/share/icons/hicolor/48x48/mimetypes/application-vnd.oasis.opendocument.spreadsheet.png
+usr/share/icons/hicolor/48x48/mimetypes/libreoffice-oasis-spreadsheet-template.png usr/share/icons/hicolor/48x48/mimetypes/application-vnd.oasis.opendocument.spreadsheet-template.png
+usr/share/icons/hicolor/48x48/mimetypes/libreoffice-oasis-text.png usr/share/icons/hicolor/48x48/mimetypes/application-vnd.oasis.opendocument.text.png
+usr/share/icons/hicolor/48x48/mimetypes/libreoffice-oasis-text-template.png usr/share/icons/hicolor/48x48/mimetypes/application-vnd.oasis.opendocument.text-template.png
+usr/share/icons/hicolor/48x48/mimetypes/libreoffice-oasis-web-template.png usr/share/icons/hicolor/48x48/mimetypes/application-vnd.oasis.opendocument.web-template.png
+etc/libreoffice/registry usr/lib/libreoffice/share/registry
diff --git a/debian/libreoffice-common.lintian-overrides b/debian/libreoffice-common.lintian-overrides
new file mode 100644 (file)
index 0000000..efdaf3d
--- /dev/null
@@ -0,0 +1,2 @@
+# this is essentially a breaks with version
+libreoffice-common: breaks-without-version libreoffice-help-5.2
diff --git a/debian/libreoffice-common.maintscript b/debian/libreoffice-common.maintscript
new file mode 100644 (file)
index 0000000..e3da9c1
--- /dev/null
@@ -0,0 +1,11 @@
+mv_conffile /etc/apparmor.d/usr.lib.libreofficeprogram.oosplash /etc/apparmor.d/usr.lib.libreoffice.program.oosplash 1:5.4.3-1
+mv_conffile /etc/apparmor.d/usr.lib.libreofficeprogram.senddoc /etc/apparmor.d/usr.lib.libreoffice.program.senddoc 1:5.4.3-1
+mv_conffile /etc/apparmor.d/usr.lib.libreofficeprogram.soffice.bin /etc/apparmor.d/usr.lib.libreoffice.program.soffice.bin 1:5.4.3-1
+mv_conffile /etc/apparmor.d/usr.lib.libreofficeprogram.xpdfimport /etc/apparmor.d/usr.lib.libreoffice.program.xpdfimport 1:5.4.3-1
+
+# do this manually since dpkg-maintscript-helper dir_to_symlink
+# does not work reliably in this case because we cannot ensure that all
+# conflicting packages previously shipping files in
+# /usr/lib/libreoffice/share/registry are either upgraded or removed
+# but not just deconfigured, see #985297
+#dir_to_symlink /usr/lib/libreoffice/share/registry /etc/libreoffice/registry 1:7.0.2~rc1-1
diff --git a/debian/libreoffice-common.manpages b/debian/libreoffice-common.manpages
new file mode 100644 (file)
index 0000000..37ce2e8
--- /dev/null
@@ -0,0 +1,4 @@
+debian/tmp/usr/share/man/man1/libreoffice.1.gz
+debian/tmp/usr/share/man/man1/loffice.1.gz
+debian/tmp/usr/share/man/man1/unopkg.1.gz
+debian/tmp/usr/share/man/man1/lofromtemplate.1.gz
diff --git a/debian/libreoffice-common.postinst.in b/debian/libreoffice-common.postinst.in
new file mode 100644 (file)
index 0000000..dd95adf
--- /dev/null
@@ -0,0 +1,43 @@
+#!/bin/sh
+
+set -e
+
+#INCLUDE_SHELL_LIB#
+
+if [ "$1" = "triggered" ]; then
+        for triggername in $2; do
+                case "$triggername" in
+                        # new "bundled" extensions (since 3.3)
+                        "/@OODIR@/share/extensions")
+                          make_lo_sync_extensions
+                        ;;
+                        "/@OODIR@")
+                        # check also whether /usr/bin/loolwsd-systemplate-setup
+                        # is +x do to not fail when it's gone but
+                        # /var/lib/lool/systemplate is still there (loolwsd
+                       # removed but not purged)
+                          if [ -x /usr/bin/loolwsd-systemplate-setup -a \
+                               -d /var/lib/lool/systemplate ]; then
+                            update_lool_systemplate
+                          fi
+                        ;;
+                esac
+        done
+fi
+
+#DEBHELPER#
+
+# do this manually since dpkg-maintscript-helper dir_to_symlink
+# does not work reliably in this case because we cannot ensure that all
+# conflicting packages previously shipping files in
+# /usr/lib/libreoffice/share/registry are either upgraded or removed
+# but not just deconfigured, see #985297
+if [ "$1" = "configure" ] && dpkg --compare-versions "$2" lt-nl "1:7.0.4-4~" ; then
+       if [ ! -L /usr/lib/libreoffice/share/registry ]; then
+               if [ -d /usr/lib/libreoffice/share/registry ]; then
+                       # this will fail if the directory is not yet empty
+                       rmdir -v /usr/lib/libreoffice/share/registry
+               fi
+               ln -sfvT /etc/libreoffice/registry /usr/lib/libreoffice/share/registry
+       fi
+fi
diff --git a/debian/libreoffice-common.postrm.in b/debian/libreoffice-common.postrm.in
new file mode 100644 (file)
index 0000000..c4471b5
--- /dev/null
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+set -e
+
+#INCLUDE_SHELL_LIB#
+
+case "$1" in
+       remove|abort-install|abort-upgrade)
+               rm -rf /`echo @OODIR@ | sed -e s,usr/,var/,g`/share/prereg/bundled
+               rmdir /`echo @OODIR@ | sed -e s,usr/,var/,g`/share/prereg/ || true
+               rmdir /`echo @OODIR@ | sed -e s,usr/,var/,g`/share/ || true
+               # this belongs to -core, but won't work until we have -common stuff removed, too, so try here again
+               # in adduition to -core
+               rmdir /`echo @OODIR@ | sed -e s,usr/,var/,g`/program/ || true
+               rmdir /`echo @OODIR@ | sed -e s,usr/,var/,g` || true
+               # and try to remove /@OOBRANDDIR@ itself
+               rmdir /`echo @OODIR@ | sed -e s,usr/,var/,g` || true
+       ;;
+       purge)
+               rm -f /`echo @OODIR@ | sed -e s,usr/,var/,g`/share/config/javasettingsunopkginstall.xml
+               rmdir /`echo @OODIR@ | sed -e s,usr/,var/,g`/share/config || true
+               rmdir /`echo @OODIR@ | sed -e s,usr/,var/,g`/share || true
+       ;;
+esac
+
+#DEBHELPER#
diff --git a/debian/libreoffice-common.preinst.in b/debian/libreoffice-common.preinst.in
new file mode 100644 (file)
index 0000000..d1a322c
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+set -e
+
+# fix up broken 0 byte file, should be a dir
+if [ "$1" = "upgrade" ] && dpkg --compare-versions "$2" lt-nl "1:7.4.1~rc1-3"; then
+        if [ -f /@OODIR@/share/extensions -a ! -s /@OODIR@/share/extensions ]; then
+                rm /@OODIR@/share/extensions
+        fi
+fi
+
+#DEBHELPER#
diff --git a/debian/libreoffice-common.triggers.in b/debian/libreoffice-common.triggers.in
new file mode 100644 (file)
index 0000000..2743017
--- /dev/null
@@ -0,0 +1,2 @@
+interest-noawait /@OODIR@/share/extensions
+interest-noawait /@OODIR@
diff --git a/debian/libreoffice-common.ucf b/debian/libreoffice-common.ucf
new file mode 100644 (file)
index 0000000..b929f5f
--- /dev/null
@@ -0,0 +1,6 @@
+/usr/lib/libreoffice/share/.registry/main.xcd /etc/libreoffice/registry/main.xcd
+/usr/lib/libreoffice/share/.registry/pdfimport.xcd /etc/libreoffice/registry/pdfimport.xcd
+/usr/lib/libreoffice/share/.registry/xsltfilter.xcd /etc/libreoffice/registry/xsltfilter.xcd
+/usr/lib/libreoffice/share/.registry/lingucomponent.xcd /etc/libreoffice/registry/lingucomponent.xcd
+/usr/lib/libreoffice/share/.registry/Langpack-en-US.xcd /etc/libreoffice/registry/Langpack-en-US.xcd
+/usr/lib/libreoffice/share/.registry/res/fcfg_langpack_en-US.xcd /etc/libreoffice/registry/res/fcfg_langpack_en-US.xcd
diff --git a/debian/libreoffice-core-nogui.bug-control b/debian/libreoffice-core-nogui.bug-control
new file mode 100644 (file)
index 0000000..7dc2257
--- /dev/null
@@ -0,0 +1 @@
+report-with: libreoffice-common libreoffice-java-common fonts-opensymbol ure-java
diff --git a/debian/libreoffice-core-nogui.bug-script.in b/debian/libreoffice-core-nogui.bug-script.in
new file mode 100755 (executable)
index 0000000..bba16b1
--- /dev/null
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+# list all installed extensions. --bundled, --shared and non-shared
+/usr/lib/libreoffice/program/unopkg list --bundled >&3
+/usr/lib/libreoffice/program/unopkg list --shared >&3
+/usr/lib/libreoffice/program/unopkg list >&3
+
+# experimental stuff enabled?
+echo "" >&3
+echo "Experimental features enabled:" >&3
+#_lo_profile_ver=`echo @OOVER@ | cut -d. -f1`
+_lo_profile_ver=4
+if [ -d "$HOME/.config/libreoffice/$_lo_profile_ver" ]; then
+        grep ExperimentalMode $HOME/.config/libreoffice/$_lo_profile_ver/user/registrymodifications.xcu >&3
+fi
+
diff --git a/debian/libreoffice-core.NEWS b/debian/libreoffice-core.NEWS
new file mode 100644 (file)
index 0000000..56dca91
--- /dev/null
@@ -0,0 +1,13 @@
+libreoffice (1:7.4.2~rc1-1) unstable; urgency=low
+
+  * LibreOffice 7.4.0/7.4.1 contained a bug about wrongly remembering the
+    size of the LibreOffice windows. (Most prominently showing inside KDE).
+    .
+    This has been fixed in 7.4.2 but you experience this problem even after
+    a second start of the new LibreOffice you might either need to reset your
+    user profile or remove the affecting keys from it manuallly
+    (ooSetupFactoryWindowAttributes in
+    ~/.config/libreofficei/4/user/registrymodifications.xcu)
+
+ -- Rene Engelhard <rene@debian.org>  Wed, 09 Nov 2022 07:31:23 +0200
+
diff --git a/debian/libreoffice-core.bug-control b/debian/libreoffice-core.bug-control
new file mode 100644 (file)
index 0000000..389aa41
--- /dev/null
@@ -0,0 +1,2 @@
+report-with: ure-java libreoffice-common libreoffice-java-common fonts-opensymbol
+package-status: libxrender1 libxinerama1 libsane iceweasel firefox icedove iceape-browser pstoedit imagemagick fglrx-driver nvidia-glx nvidia-glx-legacy
diff --git a/debian/libreoffice-core.bug-script.in b/debian/libreoffice-core.bug-script.in
new file mode 100755 (executable)
index 0000000..3ba60de
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+# list all installed extensions. --bundled, --shared and non-shared
+/usr/lib/libreoffice/program/unopkg list --bundled >&3
+/usr/lib/libreoffice/program/unopkg list --shared >&3
+/usr/lib/libreoffice/program/unopkg list >&3
+
+# experimental stuff enabled?
+echo "" >&3
+echo "Experimental features enabled:" >&3
+#_lo_profile_ver=`echo @OOVER@ | cut -d. -f1`
+_lo_profile_ver=4
+if [ -d "$HOME/.config/libreoffice/$_lo_profile_ver" ]; then
+        grep ExperimentalMode $HOME/.config/libreoffice/$_lo_profile_ver/user/registrymodifications.xcu >&3
+fi
+
+# installed VCLplugs
+echo "" >&3
+echo "Installed VCLplugs:" >&3
+dpkg -l libreoffice-gtk3 libreoffice-gtk4 libreoffice-qt5 libreoffice-kf5 libreoffice-qt6 libreoffice-kf6 >&3
diff --git a/debian/libreoffice-core.maintscript b/debian/libreoffice-core.maintscript
new file mode 100644 (file)
index 0000000..926d53c
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-core /usr/share/doc/libreoffice-core 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-core.postrm.in b/debian/libreoffice-core.postrm.in
new file mode 100755 (executable)
index 0000000..95ed9cb
--- /dev/null
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+set -e
+
+#INCLUDE_SHELL_LIB#
+
+if [ "$1" = "remove" ]; then
+       rm -rf /var/spool/libreoffice
+fi
+
+#DEBHELPER#
+
+exit 0
diff --git a/debian/libreoffice-dev-common.maintscript b/debian/libreoffice-dev-common.maintscript
new file mode 100644 (file)
index 0000000..d9ebd73
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-dev-common /usr/share/doc/libreoffice-common 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-dev-doc.links b/debian/libreoffice-dev-doc.links
new file mode 100644 (file)
index 0000000..7e6fd17
--- /dev/null
@@ -0,0 +1 @@
+usr/share/doc/libreoffice/sdk/docs usr/share/doc/libreoffice-dev-doc/api
diff --git a/debian/libreoffice-dev.maintscript b/debian/libreoffice-dev.maintscript
new file mode 100644 (file)
index 0000000..dc89bb3
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-dev /usr/share/doc/libreoffice-core 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-draw-nogui.bug-control b/debian/libreoffice-draw-nogui.bug-control
new file mode 100644 (file)
index 0000000..f7a2b99
--- /dev/null
@@ -0,0 +1 @@
+report-with: libreoffice-core libreoffice-core-nogui
diff --git a/debian/libreoffice-draw-nogui.mime b/debian/libreoffice-draw-nogui.mime
new file mode 100644 (file)
index 0000000..e0b81d3
--- /dev/null
@@ -0,0 +1,13 @@
+###
+# shared-mime-info
+
+# OASIS OpenDocument Format
+application/vnd.oasis.opendocument.graphics; soffice --nologo --draw %s; edit=soffice --nologo --draw %s; print=soffice --nologo --draw -p %s; test=test -n "$DISPLAY"; description="OpenDocument Drawing"; nametemplate=%s.odg; priority=9
+application/vnd.oasis.opendocument.graphics-template; soffice --nologo --draw %s; edit=soffice --nologo --draw %s; print=soffice --nologo --draw -p %s; test=test -n "$DISPLAY"; description="OpenDocument Drawing Template"; nametemplate=%s.otg; priority=9
+
+# OpenOffice.org 1.0
+application/vnd.sun.xml.draw; soffice --nologo --draw %s; edit=soffice --nologo --draw %s; test=test -n "$DISPLAY"; description="OpenOffice.org Drawing"; nametemplate=%s.sxd; priority=8
+application/vnd.sun.xml.draw.template; soffice --nologo --draw %s; edit=soffice --nologo --draw %s; test=test -n "$DISPLAY"; description="OpenOffice.org Drawing Template"; nametemplate=%s.std; priority=8
+
+#
+###
diff --git a/debian/libreoffice-draw-nogui.ucf b/debian/libreoffice-draw-nogui.ucf
new file mode 100644 (file)
index 0000000..a1e42c7
--- /dev/null
@@ -0,0 +1,2 @@
+/usr/lib/libreoffice/share/.registry/draw.xcd /etc/libreoffice/registry/draw.xcd
+/usr/lib/libreoffice/share/.registry/graphicfilter.xcd /etc/libreoffice/registry/graphicfilter.xcd
diff --git a/debian/libreoffice-draw.bug-control b/debian/libreoffice-draw.bug-control
new file mode 100644 (file)
index 0000000..1ac405f
--- /dev/null
@@ -0,0 +1 @@
+report-with: libreoffice-core
diff --git a/debian/libreoffice-draw.lintian-overrides b/debian/libreoffice-draw.lintian-overrides
new file mode 100644 (file)
index 0000000..6e0f4c2
--- /dev/null
@@ -0,0 +1 @@
+libreoffice-draw: desktop-command-not-in-package libreoffice [usr/share/applications/libreoffice-draw.desktop]
diff --git a/debian/libreoffice-draw.maintscript b/debian/libreoffice-draw.maintscript
new file mode 100644 (file)
index 0000000..cf0ace6
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-draw /usr/share/doc/libreoffice-core 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-draw.manpages b/debian/libreoffice-draw.manpages
new file mode 100644 (file)
index 0000000..3267e53
--- /dev/null
@@ -0,0 +1 @@
+debian/tmp/usr/share/man/man1/lodraw.1.gz
diff --git a/debian/libreoffice-draw.mime b/debian/libreoffice-draw.mime
new file mode 100644 (file)
index 0000000..e0b81d3
--- /dev/null
@@ -0,0 +1,13 @@
+###
+# shared-mime-info
+
+# OASIS OpenDocument Format
+application/vnd.oasis.opendocument.graphics; soffice --nologo --draw %s; edit=soffice --nologo --draw %s; print=soffice --nologo --draw -p %s; test=test -n "$DISPLAY"; description="OpenDocument Drawing"; nametemplate=%s.odg; priority=9
+application/vnd.oasis.opendocument.graphics-template; soffice --nologo --draw %s; edit=soffice --nologo --draw %s; print=soffice --nologo --draw -p %s; test=test -n "$DISPLAY"; description="OpenDocument Drawing Template"; nametemplate=%s.otg; priority=9
+
+# OpenOffice.org 1.0
+application/vnd.sun.xml.draw; soffice --nologo --draw %s; edit=soffice --nologo --draw %s; test=test -n "$DISPLAY"; description="OpenOffice.org Drawing"; nametemplate=%s.sxd; priority=8
+application/vnd.sun.xml.draw.template; soffice --nologo --draw %s; edit=soffice --nologo --draw %s; test=test -n "$DISPLAY"; description="OpenOffice.org Drawing Template"; nametemplate=%s.std; priority=8
+
+#
+###
diff --git a/debian/libreoffice-draw.ucf b/debian/libreoffice-draw.ucf
new file mode 100644 (file)
index 0000000..a1e42c7
--- /dev/null
@@ -0,0 +1,2 @@
+/usr/lib/libreoffice/share/.registry/draw.xcd /etc/libreoffice/registry/draw.xcd
+/usr/lib/libreoffice/share/.registry/graphicfilter.xcd /etc/libreoffice/registry/graphicfilter.xcd
diff --git a/debian/libreoffice-evolution.bug-control b/debian/libreoffice-evolution.bug-control
new file mode 100644 (file)
index 0000000..aa427de
--- /dev/null
@@ -0,0 +1 @@
+report-with: libreoffice-core evolution libreoffice-base
diff --git a/debian/libreoffice-evolution.maintscript b/debian/libreoffice-evolution.maintscript
new file mode 100644 (file)
index 0000000..3d581a3
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-evolution /usr/share/doc/libreoffice-core 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-evolution.ucf b/debian/libreoffice-evolution.ucf
new file mode 100644 (file)
index 0000000..8b029ed
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/libreoffice/share/.registry/evoab.xcd /etc/libreoffice/registry/evoab.xcd
diff --git a/debian/libreoffice-gnome.maintscript b/debian/libreoffice-gnome.maintscript
new file mode 100644 (file)
index 0000000..5ea20d6
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-gnome /usr/share/doc/libreoffice-core 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-gnome.ucf b/debian/libreoffice-gnome.ucf
new file mode 100644 (file)
index 0000000..7306c2e
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/libreoffice/share/.registry/gnome.xcd /etc/libreoffice/registry/gnome.xcd
diff --git a/debian/libreoffice-gtk3.maintscript b/debian/libreoffice-gtk3.maintscript
new file mode 100644 (file)
index 0000000..284aead
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-gtk3 /usr/share/doc/libreoffice-core 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-help-ca-valencia.maintscript b/debian/libreoffice-help-ca-valencia.maintscript
new file mode 100644 (file)
index 0000000..333a3f8
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-ca-valencia /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-ca.maintscript b/debian/libreoffice-help-ca.maintscript
new file mode 100644 (file)
index 0000000..36688ec
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-ca /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-common.links b/debian/libreoffice-help-common.links
new file mode 100644 (file)
index 0000000..83497a2
--- /dev/null
@@ -0,0 +1,3 @@
+/usr/share/javascript/normalize.css/normalize.css usr/share/libreoffice/help/normalize.css
+/usr/share/nodejs/prismjs/prism.js usr/share/libreoffice/help/prism.js
+/usr/share/nodejs/prismjs/themes/prism-coy.css usr/share/libreoffice/help/prism.css
diff --git a/debian/libreoffice-help-common.maintscript b/debian/libreoffice-help-common.maintscript
new file mode 100644 (file)
index 0000000..635c1ca
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-common /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-cs.maintscript b/debian/libreoffice-help-cs.maintscript
new file mode 100644 (file)
index 0000000..24048ea
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-cs /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-da.maintscript b/debian/libreoffice-help-da.maintscript
new file mode 100644 (file)
index 0000000..fdf5f33
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-da /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-de.maintscript b/debian/libreoffice-help-de.maintscript
new file mode 100644 (file)
index 0000000..d55b766
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-de /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-dz.maintscript b/debian/libreoffice-help-dz.maintscript
new file mode 100644 (file)
index 0000000..d4fe014
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-dz /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-el.maintscript b/debian/libreoffice-help-el.maintscript
new file mode 100644 (file)
index 0000000..5ad40b1
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-el /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-en-gb.maintscript b/debian/libreoffice-help-en-gb.maintscript
new file mode 100644 (file)
index 0000000..f038600
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-en-gb /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-en-us.maintscript b/debian/libreoffice-help-en-us.maintscript
new file mode 100644 (file)
index 0000000..a4a63f7
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-en-us /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-es.maintscript b/debian/libreoffice-help-es.maintscript
new file mode 100644 (file)
index 0000000..2b04756
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-es /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-et.maintscript b/debian/libreoffice-help-et.maintscript
new file mode 100644 (file)
index 0000000..d65fd19
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-et /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-eu.maintscript b/debian/libreoffice-help-eu.maintscript
new file mode 100644 (file)
index 0000000..e243177
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-eu /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-fi.maintscript b/debian/libreoffice-help-fi.maintscript
new file mode 100644 (file)
index 0000000..93b944a
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-fi /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-fr.maintscript b/debian/libreoffice-help-fr.maintscript
new file mode 100644 (file)
index 0000000..d94c693
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-fr /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-gl.maintscript b/debian/libreoffice-help-gl.maintscript
new file mode 100644 (file)
index 0000000..10cabd0
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-gl /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-hi.maintscript b/debian/libreoffice-help-hi.maintscript
new file mode 100644 (file)
index 0000000..34485e8
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-hi /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-hu.maintscript b/debian/libreoffice-help-hu.maintscript
new file mode 100644 (file)
index 0000000..9d307fb
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-hu /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-id.maintscript b/debian/libreoffice-help-id.maintscript
new file mode 100644 (file)
index 0000000..9dfe92f
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-id /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-it.maintscript b/debian/libreoffice-help-it.maintscript
new file mode 100644 (file)
index 0000000..a9f1015
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-it /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-ja.maintscript b/debian/libreoffice-help-ja.maintscript
new file mode 100644 (file)
index 0000000..00db55c
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-ja /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-km.maintscript b/debian/libreoffice-help-km.maintscript
new file mode 100644 (file)
index 0000000..2fb9ccd
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-km /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-ko.maintscript b/debian/libreoffice-help-ko.maintscript
new file mode 100644 (file)
index 0000000..aed2e03
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-ko /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-nl.maintscript b/debian/libreoffice-help-nl.maintscript
new file mode 100644 (file)
index 0000000..ab75a60
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-nl /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-om.maintscript b/debian/libreoffice-help-om.maintscript
new file mode 100644 (file)
index 0000000..64d5f54
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-om /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-pl.maintscript b/debian/libreoffice-help-pl.maintscript
new file mode 100644 (file)
index 0000000..b1fca4d
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-pl /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-pt-br.maintscript b/debian/libreoffice-help-pt-br.maintscript
new file mode 100644 (file)
index 0000000..ca4f77f
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-pt-br /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-pt.maintscript b/debian/libreoffice-help-pt.maintscript
new file mode 100644 (file)
index 0000000..5d36890
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-pt /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-ru.maintscript b/debian/libreoffice-help-ru.maintscript
new file mode 100644 (file)
index 0000000..13ff092
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-ru /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-sk.maintscript b/debian/libreoffice-help-sk.maintscript
new file mode 100644 (file)
index 0000000..9306f19
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-sk /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-sl.maintscript b/debian/libreoffice-help-sl.maintscript
new file mode 100644 (file)
index 0000000..88eba79
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-sl /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-sv.maintscript b/debian/libreoffice-help-sv.maintscript
new file mode 100644 (file)
index 0000000..4c23059
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-sv /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-tr.maintscript b/debian/libreoffice-help-tr.maintscript
new file mode 100644 (file)
index 0000000..08522b1
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-tr /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-vi.maintscript b/debian/libreoffice-help-vi.maintscript
new file mode 100644 (file)
index 0000000..c2ee611
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-vi /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-zh-cn.maintscript b/debian/libreoffice-help-zh-cn.maintscript
new file mode 100644 (file)
index 0000000..1e3c388
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-zh-cn /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help-zh-tw.maintscript b/debian/libreoffice-help-zh-tw.maintscript
new file mode 100644 (file)
index 0000000..b13206f
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-help-zh-tw /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-help.lintian-overrides.in b/debian/libreoffice-help.lintian-overrides.in
new file mode 100644 (file)
index 0000000..17fde6d
--- /dev/null
@@ -0,0 +1,15 @@
+# these are in -help-common. See lintian bug http://bugs.debian.org/897244
+doc-base-file-references-missing-file libreoffice-help-@LCODE@:8 /usr/share/libreoffice/help/media/*
+doc-base-file-references-missing-file libreoffice-help-@LCODE@:8 /usr/share/libreoffice/help/help.html
+doc-base-file-references-missing-file libreoffice-help-@LCODE@:8 /usr/share/libreoffice/help/idxcaption.xsl
+doc-base-file-references-missing-file libreoffice-help-@LCODE@:8 /usr/share/libreoffice/help/fuse.js
+doc-base-file-references-missing-file libreoffice-help-@LCODE@:8 /usr/share/libreoffice/help/help.js
+doc-base-file-references-missing-file libreoffice-help-@LCODE@:8 /usr/share/libreoffice/help/hid2file.js
+doc-base-file-references-missing-file libreoffice-help-@LCODE@:8 /usr/share/libreoffice/help/paginathing.js
+doc-base-file-references-missing-file libreoffice-help-@LCODE@:8 /usr/share/libreoffice/help/idxcontent.xsl
+doc-base-file-references-missing-file libreoffice-help-@LCODE@:8 /usr/share/libreoffice/help/index.html
+doc-base-file-references-missing-file libreoffice-help-@LCODE@:8 /usr/share/libreoffice/help/normalize.css
+doc-base-file-references-missing-file libreoffice-help-@LCODE@:8 /usr/share/libreoffice/help/main_transform.xsl
+doc-base-file-references-missing-file libreoffice-help-@LCODE@:8 /usr/share/libreoffice/help/help2.js
+doc-base-file-references-missing-file libreoffice-help-@LCODE@:8 /usr/share/libreoffice/help/default.css
+
diff --git a/debian/libreoffice-impress-nogui.bug-control b/debian/libreoffice-impress-nogui.bug-control
new file mode 100644 (file)
index 0000000..285e78b
--- /dev/null
@@ -0,0 +1 @@
+report-with: libreoffice-core libreoffice-core-nogui libreoffice-draw libreoffice-draw-nogui
diff --git a/debian/libreoffice-impress-nogui.mime b/debian/libreoffice-impress-nogui.mime
new file mode 100644 (file)
index 0000000..ed8a11f
--- /dev/null
@@ -0,0 +1,25 @@
+###
+# shared-mime-info
+
+# ECMA Office Open XML (Microsoft Office 2007)
+application/vnd.ms-powerpoint.presentation.macroEnabled.12; soffice --nologo --impress %s; edit=soffice --nologo --impress %s; test=test -n "$DISPLAY"; description="Office Open XML Presentation with Macros Enabled"; nametemplate=%s.pptm; priority=3
+application/vnd.ms-powerpoint.slideshow.macroEnabled.12; soffice --nologo --impress %s; edit=soffice --nologo --impress %s; test=test -n "$DISPLAY"; description="Office Open XML Presentation Slide Show with Macros Enabled"; nametemplate=%s.ppsm; priority=3
+application/vnd.ms-powerpoint.template.macroEnabled.12; soffice --nologo --impress %s; edit=soffice --nologo --impress %s; test=test -n "$DISPLAY"; description="Office Open XML Presentation Template with Macros Enabled"; nametemplate=%s.potm; priority=3
+application/vnd.openxmlformats-officedocument.presentationml.presentation; soffice --nologo --impress %s; edit=soffice --nologo --impress %s; test=test -n "$DISPLAY"; description="Office Open XML Presentation"; nametemplate=%s.pptx; priority=3
+application/vnd.openxmlformats-officedocument.presentationml.slideshow; soffice --nologo --impress %s; edit=soffice --nologo --impress %s; test=test -n "$DISPLAY"; description="Office Open XML Presentation Slide Show"; nametemplate=%s.ppsx; priority=3
+application/vnd.openxmlformats-officedocument.presentationml.template; soffice --nologo --impress %s; edit=soffice --nologo --impress %s; test=test -n "$DISPLAY"; description="Office Open XML Presentation Template"; nametemplate=%s.potx; priority=3
+
+# Microsoft PowerPoint
+application/vnd.ms-powerpoint; soffice --nologo --impress %s; edit=soffice --nologo --impress %s; test=test -n "$DISPLAY"; description="Microsoft PowerPoint Document"; nametemplate=%s.ppt; priority=3
+
+# OASIS OpenDocument Format
+application/vnd.oasis.opendocument.presentation; soffice --nologo --impress %s; edit=soffice --nologo --impress %s; print=soffice --nologo --impress -p %s; test=test -n "$DISPLAY"; description="OpenDocument Presentation"; nametemplate=%s.odp; priority=9
+application/vnd.oasis.opendocument.presentation-template; soffice --nologo --impress %s; edit=soffice --nologo --impress %s; print=soffice --nologo --impress -p %s; test=test -n "$DISPLAY"; description="OpenDocument Presentation Template"; nametemplate=%s.otp; priority=9
+
+# OpenOffice.org 1.0
+application/vnd.sun.xml.impress; soffice --nologo --impress %s; edit=soffice --nologo --impress %s; test=test -n "$DISPLAY"; description="OpenOffice.org Presentation"; nametemplate=%s.sxi; priority=8
+application/vnd.sun.xml.impress.template; soffice --nologo --impress %s; edit=soffice --nologo --impress %s; test=test -n "$DISPLAY"; description="OpenOffice.org Presentation Template"; nametemplate=%s.sti; priority=8
+
+#
+###
+
diff --git a/debian/libreoffice-impress-nogui.ucf b/debian/libreoffice-impress-nogui.ucf
new file mode 100644 (file)
index 0000000..9a35613
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/libreoffice/share/.registry/impress.xcd /etc/libreoffice/registry/impress.xcd
diff --git a/debian/libreoffice-impress.bug-control b/debian/libreoffice-impress.bug-control
new file mode 100644 (file)
index 0000000..e7775ba
--- /dev/null
@@ -0,0 +1 @@
+report-with: libreoffice-core libreoffice-draw glx-alternative-nvidia
diff --git a/debian/libreoffice-impress.bug-script.in b/debian/libreoffice-impress.bug-script.in
new file mode 100644 (file)
index 0000000..f2bd614
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+dpkg -l | grep nvidia >&3
diff --git a/debian/libreoffice-impress.lintian-overrides b/debian/libreoffice-impress.lintian-overrides
new file mode 100644 (file)
index 0000000..c251e90
--- /dev/null
@@ -0,0 +1 @@
+libreoffice-impress: desktop-command-not-in-package libreoffice [usr/share/applications/libreoffice-impress.desktop]
diff --git a/debian/libreoffice-impress.maintscript b/debian/libreoffice-impress.maintscript
new file mode 100644 (file)
index 0000000..06608cf
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-impress /usr/share/doc/libreoffice-core 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-impress.manpages b/debian/libreoffice-impress.manpages
new file mode 100644 (file)
index 0000000..60ab514
--- /dev/null
@@ -0,0 +1 @@
+debian/tmp/usr/share/man/man1/loimpress.1.gz
diff --git a/debian/libreoffice-impress.mime b/debian/libreoffice-impress.mime
new file mode 100644 (file)
index 0000000..ed8a11f
--- /dev/null
@@ -0,0 +1,25 @@
+###
+# shared-mime-info
+
+# ECMA Office Open XML (Microsoft Office 2007)
+application/vnd.ms-powerpoint.presentation.macroEnabled.12; soffice --nologo --impress %s; edit=soffice --nologo --impress %s; test=test -n "$DISPLAY"; description="Office Open XML Presentation with Macros Enabled"; nametemplate=%s.pptm; priority=3
+application/vnd.ms-powerpoint.slideshow.macroEnabled.12; soffice --nologo --impress %s; edit=soffice --nologo --impress %s; test=test -n "$DISPLAY"; description="Office Open XML Presentation Slide Show with Macros Enabled"; nametemplate=%s.ppsm; priority=3
+application/vnd.ms-powerpoint.template.macroEnabled.12; soffice --nologo --impress %s; edit=soffice --nologo --impress %s; test=test -n "$DISPLAY"; description="Office Open XML Presentation Template with Macros Enabled"; nametemplate=%s.potm; priority=3
+application/vnd.openxmlformats-officedocument.presentationml.presentation; soffice --nologo --impress %s; edit=soffice --nologo --impress %s; test=test -n "$DISPLAY"; description="Office Open XML Presentation"; nametemplate=%s.pptx; priority=3
+application/vnd.openxmlformats-officedocument.presentationml.slideshow; soffice --nologo --impress %s; edit=soffice --nologo --impress %s; test=test -n "$DISPLAY"; description="Office Open XML Presentation Slide Show"; nametemplate=%s.ppsx; priority=3
+application/vnd.openxmlformats-officedocument.presentationml.template; soffice --nologo --impress %s; edit=soffice --nologo --impress %s; test=test -n "$DISPLAY"; description="Office Open XML Presentation Template"; nametemplate=%s.potx; priority=3
+
+# Microsoft PowerPoint
+application/vnd.ms-powerpoint; soffice --nologo --impress %s; edit=soffice --nologo --impress %s; test=test -n "$DISPLAY"; description="Microsoft PowerPoint Document"; nametemplate=%s.ppt; priority=3
+
+# OASIS OpenDocument Format
+application/vnd.oasis.opendocument.presentation; soffice --nologo --impress %s; edit=soffice --nologo --impress %s; print=soffice --nologo --impress -p %s; test=test -n "$DISPLAY"; description="OpenDocument Presentation"; nametemplate=%s.odp; priority=9
+application/vnd.oasis.opendocument.presentation-template; soffice --nologo --impress %s; edit=soffice --nologo --impress %s; print=soffice --nologo --impress -p %s; test=test -n "$DISPLAY"; description="OpenDocument Presentation Template"; nametemplate=%s.otp; priority=9
+
+# OpenOffice.org 1.0
+application/vnd.sun.xml.impress; soffice --nologo --impress %s; edit=soffice --nologo --impress %s; test=test -n "$DISPLAY"; description="OpenOffice.org Presentation"; nametemplate=%s.sxi; priority=8
+application/vnd.sun.xml.impress.template; soffice --nologo --impress %s; edit=soffice --nologo --impress %s; test=test -n "$DISPLAY"; description="OpenOffice.org Presentation Template"; nametemplate=%s.sti; priority=8
+
+#
+###
+
diff --git a/debian/libreoffice-impress.ucf b/debian/libreoffice-impress.ucf
new file mode 100644 (file)
index 0000000..a2680a0
--- /dev/null
@@ -0,0 +1,2 @@
+/usr/lib/libreoffice/share/.registry/impress.xcd /etc/libreoffice/registry/impress.xcd
+/usr/lib/libreoffice/share/.registry/ogltrans.xcd /etc/libreoffice/registry/ogltrans.xcd
diff --git a/debian/libreoffice-java-common.maintscript b/debian/libreoffice-java-common.maintscript
new file mode 100644 (file)
index 0000000..38517c7
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-java-common /usr/share/doc/libreoffice-common 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-kde5.maintscript b/debian/libreoffice-kde5.maintscript
new file mode 100644 (file)
index 0000000..1711748
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-kde5 /usr/share/doc/libreoffice-core 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-kf5.maintscript b/debian/libreoffice-kf5.maintscript
new file mode 100644 (file)
index 0000000..37dbb42
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-kf5 /usr/share/doc/libreoffice-core 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-l10n-af.maintscript b/debian/libreoffice-l10n-af.maintscript
new file mode 100644 (file)
index 0000000..525bb4c
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-af /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-am.maintscript b/debian/libreoffice-l10n-am.maintscript
new file mode 100644 (file)
index 0000000..2df6ddb
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-am /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-ar.maintscript b/debian/libreoffice-l10n-ar.maintscript
new file mode 100644 (file)
index 0000000..da522ca
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-ar /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-as.maintscript b/debian/libreoffice-l10n-as.maintscript
new file mode 100644 (file)
index 0000000..926ab90
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-as /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-ast.maintscript b/debian/libreoffice-l10n-ast.maintscript
new file mode 100644 (file)
index 0000000..df6ea66
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-ast /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-be.maintscript b/debian/libreoffice-l10n-be.maintscript
new file mode 100644 (file)
index 0000000..53b4bd4
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-be /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-bg.maintscript b/debian/libreoffice-l10n-bg.maintscript
new file mode 100644 (file)
index 0000000..e8ba218
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-bg /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-bn.maintscript b/debian/libreoffice-l10n-bn.maintscript
new file mode 100644 (file)
index 0000000..78da960
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-bn /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-br.maintscript b/debian/libreoffice-l10n-br.maintscript
new file mode 100644 (file)
index 0000000..d92f240
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-br /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-bs.maintscript b/debian/libreoffice-l10n-bs.maintscript
new file mode 100644 (file)
index 0000000..1178e5a
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-bs /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-ca.maintscript b/debian/libreoffice-l10n-ca.maintscript
new file mode 100644 (file)
index 0000000..471887d
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-ca /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-cs.maintscript b/debian/libreoffice-l10n-cs.maintscript
new file mode 100644 (file)
index 0000000..29d0c0a
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-cs /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-cy.maintscript b/debian/libreoffice-l10n-cy.maintscript
new file mode 100644 (file)
index 0000000..3b30f96
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-cy /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-da.maintscript b/debian/libreoffice-l10n-da.maintscript
new file mode 100644 (file)
index 0000000..3cbf1d4
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-da /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-de.maintscript b/debian/libreoffice-l10n-de.maintscript
new file mode 100644 (file)
index 0000000..68063de
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-de /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-dz.maintscript b/debian/libreoffice-l10n-dz.maintscript
new file mode 100644 (file)
index 0000000..76c5197
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-dz /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-el.maintscript b/debian/libreoffice-l10n-el.maintscript
new file mode 100644 (file)
index 0000000..f9f850b
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-el /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-en-gb.maintscript b/debian/libreoffice-l10n-en-gb.maintscript
new file mode 100644 (file)
index 0000000..f0ecabc
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-en-gb /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-en-us.maintscript b/debian/libreoffice-l10n-en-us.maintscript
new file mode 100644 (file)
index 0000000..edba260
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-en-us /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-en-za.maintscript b/debian/libreoffice-l10n-en-za.maintscript
new file mode 100644 (file)
index 0000000..1897e7b
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-en-za /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-eo.maintscript b/debian/libreoffice-l10n-eo.maintscript
new file mode 100644 (file)
index 0000000..6734501
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-eo /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-es.maintscript b/debian/libreoffice-l10n-es.maintscript
new file mode 100644 (file)
index 0000000..e3287c6
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-es /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-et.maintscript b/debian/libreoffice-l10n-et.maintscript
new file mode 100644 (file)
index 0000000..c3e25bb
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-et /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-eu.maintscript b/debian/libreoffice-l10n-eu.maintscript
new file mode 100644 (file)
index 0000000..a503c6d
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-eu /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-fa.maintscript b/debian/libreoffice-l10n-fa.maintscript
new file mode 100644 (file)
index 0000000..4b70296
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-fa /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-fi.maintscript b/debian/libreoffice-l10n-fi.maintscript
new file mode 100644 (file)
index 0000000..cf6d449
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-fi /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-fr.maintscript b/debian/libreoffice-l10n-fr.maintscript
new file mode 100644 (file)
index 0000000..6d31349
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-fr /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-ga.maintscript b/debian/libreoffice-l10n-ga.maintscript
new file mode 100644 (file)
index 0000000..165629c
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-ga /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-gd.maintscript b/debian/libreoffice-l10n-gd.maintscript
new file mode 100644 (file)
index 0000000..4748b69
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-gd /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-gl.maintscript b/debian/libreoffice-l10n-gl.maintscript
new file mode 100644 (file)
index 0000000..4abfef8
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-gl /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-gu.maintscript b/debian/libreoffice-l10n-gu.maintscript
new file mode 100644 (file)
index 0000000..d28f9b6
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-gu /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-gug.maintscript b/debian/libreoffice-l10n-gug.maintscript
new file mode 100644 (file)
index 0000000..22caeda
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-gug /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-he.maintscript b/debian/libreoffice-l10n-he.maintscript
new file mode 100644 (file)
index 0000000..48c588c
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-he /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-hi.maintscript b/debian/libreoffice-l10n-hi.maintscript
new file mode 100644 (file)
index 0000000..c1aafd3
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-hi /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-hr.maintscript b/debian/libreoffice-l10n-hr.maintscript
new file mode 100644 (file)
index 0000000..7924ca0
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-hr /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-hu.maintscript b/debian/libreoffice-l10n-hu.maintscript
new file mode 100644 (file)
index 0000000..042765e
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-hu /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-id.maintscript b/debian/libreoffice-l10n-id.maintscript
new file mode 100644 (file)
index 0000000..e18551b
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-id /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-in.maintscript b/debian/libreoffice-l10n-in.maintscript
new file mode 100644 (file)
index 0000000..230d48c
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-in /usr/share/doc/libreoffice-common 1:6.4.0-1
diff --git a/debian/libreoffice-l10n-is.maintscript b/debian/libreoffice-l10n-is.maintscript
new file mode 100644 (file)
index 0000000..3631a6a
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-is /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-it.maintscript b/debian/libreoffice-l10n-it.maintscript
new file mode 100644 (file)
index 0000000..18be5b4
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-it /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-ja.maintscript b/debian/libreoffice-l10n-ja.maintscript
new file mode 100644 (file)
index 0000000..7ce6104
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-ja /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-ka.maintscript b/debian/libreoffice-l10n-ka.maintscript
new file mode 100644 (file)
index 0000000..8698115
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-ka /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-kk.maintscript b/debian/libreoffice-l10n-kk.maintscript
new file mode 100644 (file)
index 0000000..b749dd7
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-kk /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-km.maintscript b/debian/libreoffice-l10n-km.maintscript
new file mode 100644 (file)
index 0000000..30a3839
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-km /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-kmr.maintscript b/debian/libreoffice-l10n-kmr.maintscript
new file mode 100644 (file)
index 0000000..d7405d3
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-kmr /usr/share/doc/libreoffice-common 1:6.4.0-1
diff --git a/debian/libreoffice-l10n-kn.maintscript b/debian/libreoffice-l10n-kn.maintscript
new file mode 100644 (file)
index 0000000..6d4a373
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-kn /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-ko.maintscript b/debian/libreoffice-l10n-ko.maintscript
new file mode 100644 (file)
index 0000000..2054fa9
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-ko /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-lt.maintscript b/debian/libreoffice-l10n-lt.maintscript
new file mode 100644 (file)
index 0000000..1cac226
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-lt /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-lv.maintscript b/debian/libreoffice-l10n-lv.maintscript
new file mode 100644 (file)
index 0000000..7df0115
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-lv /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-mk.maintscript b/debian/libreoffice-l10n-mk.maintscript
new file mode 100644 (file)
index 0000000..597b3b7
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-mk /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-ml.maintscript b/debian/libreoffice-l10n-ml.maintscript
new file mode 100644 (file)
index 0000000..1c377d5
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-ml /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-mn.maintscript b/debian/libreoffice-l10n-mn.maintscript
new file mode 100644 (file)
index 0000000..d1a6d0e
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-mn /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-mr.maintscript b/debian/libreoffice-l10n-mr.maintscript
new file mode 100644 (file)
index 0000000..e2c755e
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-mr /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-nb.maintscript b/debian/libreoffice-l10n-nb.maintscript
new file mode 100644 (file)
index 0000000..db28244
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-nb /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-ne.maintscript b/debian/libreoffice-l10n-ne.maintscript
new file mode 100644 (file)
index 0000000..464ae4b
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-ne /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-nl.maintscript b/debian/libreoffice-l10n-nl.maintscript
new file mode 100644 (file)
index 0000000..700d497
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-nl /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-nn.maintscript b/debian/libreoffice-l10n-nn.maintscript
new file mode 100644 (file)
index 0000000..b5f2d17
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-nn /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-nr.maintscript b/debian/libreoffice-l10n-nr.maintscript
new file mode 100644 (file)
index 0000000..b619763
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-nr /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-nso.maintscript b/debian/libreoffice-l10n-nso.maintscript
new file mode 100644 (file)
index 0000000..bb4394e
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-nso /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-oc.maintscript b/debian/libreoffice-l10n-oc.maintscript
new file mode 100644 (file)
index 0000000..b71f2f3
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-oc /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-om.maintscript b/debian/libreoffice-l10n-om.maintscript
new file mode 100644 (file)
index 0000000..976dc25
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-om /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-or.maintscript b/debian/libreoffice-l10n-or.maintscript
new file mode 100644 (file)
index 0000000..b3b20c5
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-or /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-pa-in.maintscript b/debian/libreoffice-l10n-pa-in.maintscript
new file mode 100644 (file)
index 0000000..3cf7b3b
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-pa-in /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-pl.maintscript b/debian/libreoffice-l10n-pl.maintscript
new file mode 100644 (file)
index 0000000..08b60dc
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-pl /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-pt-br.maintscript b/debian/libreoffice-l10n-pt-br.maintscript
new file mode 100644 (file)
index 0000000..f7541ad
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-pt-br /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-pt.maintscript b/debian/libreoffice-l10n-pt.maintscript
new file mode 100644 (file)
index 0000000..fb7c10c
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-pt /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-ro.maintscript b/debian/libreoffice-l10n-ro.maintscript
new file mode 100644 (file)
index 0000000..0d5acb3
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-ro /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-ru.maintscript b/debian/libreoffice-l10n-ru.maintscript
new file mode 100644 (file)
index 0000000..1956e1c
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-ru /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-rw.maintscript b/debian/libreoffice-l10n-rw.maintscript
new file mode 100644 (file)
index 0000000..5451935
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-rw /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-si.maintscript b/debian/libreoffice-l10n-si.maintscript
new file mode 100644 (file)
index 0000000..092ada5
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-si /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-sk.maintscript b/debian/libreoffice-l10n-sk.maintscript
new file mode 100644 (file)
index 0000000..f2913ab
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-sk /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-sl.maintscript b/debian/libreoffice-l10n-sl.maintscript
new file mode 100644 (file)
index 0000000..301770c
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-sl /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-sr.maintscript b/debian/libreoffice-l10n-sr.maintscript
new file mode 100644 (file)
index 0000000..761543f
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-sr /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-ss.maintscript b/debian/libreoffice-l10n-ss.maintscript
new file mode 100644 (file)
index 0000000..349d0a7
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-ss /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-st.maintscript b/debian/libreoffice-l10n-st.maintscript
new file mode 100644 (file)
index 0000000..e5a9f05
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-st /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-sv.maintscript b/debian/libreoffice-l10n-sv.maintscript
new file mode 100644 (file)
index 0000000..0f6f76c
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-sv /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-ta.maintscript b/debian/libreoffice-l10n-ta.maintscript
new file mode 100644 (file)
index 0000000..799d853
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-ta /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-te.maintscript b/debian/libreoffice-l10n-te.maintscript
new file mode 100644 (file)
index 0000000..ed90e6e
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-te /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-tg.maintscript b/debian/libreoffice-l10n-tg.maintscript
new file mode 100644 (file)
index 0000000..6c51ccf
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-tg /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-th.maintscript b/debian/libreoffice-l10n-th.maintscript
new file mode 100644 (file)
index 0000000..fa87878
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-th /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-tn.maintscript b/debian/libreoffice-l10n-tn.maintscript
new file mode 100644 (file)
index 0000000..b64f5de
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-tn /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-tr.maintscript b/debian/libreoffice-l10n-tr.maintscript
new file mode 100644 (file)
index 0000000..b41b6e9
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-tr /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-ts.maintscript b/debian/libreoffice-l10n-ts.maintscript
new file mode 100644 (file)
index 0000000..b6596f5
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-ts /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-ug.maintscript b/debian/libreoffice-l10n-ug.maintscript
new file mode 100644 (file)
index 0000000..7a295b3
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-ug /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-uk.maintscript b/debian/libreoffice-l10n-uk.maintscript
new file mode 100644 (file)
index 0000000..2436b0d
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-uk /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-uz.maintscript b/debian/libreoffice-l10n-uz.maintscript
new file mode 100644 (file)
index 0000000..bf8c49d
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-uz /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-ve.maintscript b/debian/libreoffice-l10n-ve.maintscript
new file mode 100644 (file)
index 0000000..1c77252
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-ve /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-vi.maintscript b/debian/libreoffice-l10n-vi.maintscript
new file mode 100644 (file)
index 0000000..0d15db9
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-vi /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-xh.maintscript b/debian/libreoffice-l10n-xh.maintscript
new file mode 100644 (file)
index 0000000..3803ac4
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-xh /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-za.maintscript b/debian/libreoffice-l10n-za.maintscript
new file mode 100644 (file)
index 0000000..8a568e6
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-za /usr/share/doc/libreoffice-common 1:6.4.0-1
diff --git a/debian/libreoffice-l10n-zh-cn.maintscript b/debian/libreoffice-l10n-zh-cn.maintscript
new file mode 100644 (file)
index 0000000..a74dbb3
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-zh-cn /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-zh-tw.maintscript b/debian/libreoffice-l10n-zh-tw.maintscript
new file mode 100644 (file)
index 0000000..e2b741c
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-zh-tw /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n-zu.maintscript b/debian/libreoffice-l10n-zu.maintscript
new file mode 100644 (file)
index 0000000..d796b05
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-l10n-zu /usr/share/doc/libreoffice-common 1:6.4.0~rc1~git20191209
diff --git a/debian/libreoffice-l10n.ucf.in b/debian/libreoffice-l10n.ucf.in
new file mode 100644 (file)
index 0000000..2021b7b
--- /dev/null
@@ -0,0 +1,3 @@
+/usr/lib/libreoffice/share/.registry/Langpack-@ISO@.xcd /etc/libreoffice/registry/Langpack-@ISO@.xcd
+/usr/lib/libreoffice/share/.registry/res/fcfg_langpack_@ISO@.xcd /etc/libreoffice/registry/res/fcfg_langpack_@ISO@.xcd
+/usr/lib/libreoffice/share/.registry/res/registry_@ISO@.xcd /etc/libreoffice/registry/res/registry_@ISO@.xcd
diff --git a/debian/libreoffice-librelogo.ucf b/debian/libreoffice-librelogo.ucf
new file mode 100644 (file)
index 0000000..e2300cf
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/libreoffice/share/.registry/librelogo.xcd /etc/libreoffice/registry/librelogo.xcd
diff --git a/debian/libreoffice-math-nogui.bug-control b/debian/libreoffice-math-nogui.bug-control
new file mode 100644 (file)
index 0000000..f7a2b99
--- /dev/null
@@ -0,0 +1 @@
+report-with: libreoffice-core libreoffice-core-nogui
diff --git a/debian/libreoffice-math-nogui.mime b/debian/libreoffice-math-nogui.mime
new file mode 100644 (file)
index 0000000..ea64828
--- /dev/null
@@ -0,0 +1,14 @@
+###
+# shared-mime-info
+
+# Generic
+text/mathml; soffice --nologo --math %s; edit=soffice --nologo --math %s; test=test -n "$DISPLAY"; description="MathML Formula"; nametemplate=%s.mml; priority=3
+
+# OASIS OpenDocument Format
+application/vnd.oasis.opendocument.formula; soffice --nologo --math %s; edit=soffice --nologo --math %s; print=soffice --nologo --math -p %s; test=test -n "$DISPLAY"; description="OpenDocument Formula"; nametemplate=%s.odf; priority=9
+
+# OpenOffice.org 1.0
+application/vnd.sun.xml.math; soffice --nologo --math %s; edit=soffice --nologo --math %s; test=test -n "$DISPLAY"; description="OpenOffice.org Formula"; nametemplate=%s.sxm; priority=8
+
+#
+###
diff --git a/debian/libreoffice-math-nogui.ucf b/debian/libreoffice-math-nogui.ucf
new file mode 100644 (file)
index 0000000..3ee48a8
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/libreoffice/share/.registry/math.xcd /etc/libreoffice/registry/math.xcd
diff --git a/debian/libreoffice-math.bug-control b/debian/libreoffice-math.bug-control
new file mode 100644 (file)
index 0000000..1ac405f
--- /dev/null
@@ -0,0 +1 @@
+report-with: libreoffice-core
diff --git a/debian/libreoffice-math.lintian-overrides b/debian/libreoffice-math.lintian-overrides
new file mode 100644 (file)
index 0000000..4544db7
--- /dev/null
@@ -0,0 +1 @@
+libreoffice-math: desktop-command-not-in-package libreoffice [usr/share/applications/libreoffice-math.desktop]
diff --git a/debian/libreoffice-math.maintscript b/debian/libreoffice-math.maintscript
new file mode 100644 (file)
index 0000000..9dbb167
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-math /usr/share/doc/libreoffice-core 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-math.manpages b/debian/libreoffice-math.manpages
new file mode 100644 (file)
index 0000000..6798b1e
--- /dev/null
@@ -0,0 +1 @@
+debian/tmp/usr/share/man/man1/lomath.1.gz
diff --git a/debian/libreoffice-math.mime b/debian/libreoffice-math.mime
new file mode 100644 (file)
index 0000000..ea64828
--- /dev/null
@@ -0,0 +1,14 @@
+###
+# shared-mime-info
+
+# Generic
+text/mathml; soffice --nologo --math %s; edit=soffice --nologo --math %s; test=test -n "$DISPLAY"; description="MathML Formula"; nametemplate=%s.mml; priority=3
+
+# OASIS OpenDocument Format
+application/vnd.oasis.opendocument.formula; soffice --nologo --math %s; edit=soffice --nologo --math %s; print=soffice --nologo --math -p %s; test=test -n "$DISPLAY"; description="OpenDocument Formula"; nametemplate=%s.odf; priority=9
+
+# OpenOffice.org 1.0
+application/vnd.sun.xml.math; soffice --nologo --math %s; edit=soffice --nologo --math %s; test=test -n "$DISPLAY"; description="OpenOffice.org Formula"; nametemplate=%s.sxm; priority=8
+
+#
+###
diff --git a/debian/libreoffice-math.ucf b/debian/libreoffice-math.ucf
new file mode 100644 (file)
index 0000000..3ee48a8
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/libreoffice/share/.registry/math.xcd /etc/libreoffice/registry/math.xcd
diff --git a/debian/libreoffice-nlpsolver.bug-control b/debian/libreoffice-nlpsolver.bug-control
new file mode 100644 (file)
index 0000000..6af4478
--- /dev/null
@@ -0,0 +1 @@
+report-with: ure-java
diff --git a/debian/libreoffice-nlpsolver.bug-script.in b/debian/libreoffice-nlpsolver.bug-script.in
new file mode 100755 (executable)
index 0000000..8408533
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+/usr/lib/libreoffice/program/unopkg list --bundled com.sun.star.comp.Calc.NLPSolver >&3
diff --git a/debian/libreoffice-nlpsolver.lintian-overrides b/debian/libreoffice-nlpsolver.lintian-overrides
new file mode 100644 (file)
index 0000000..e5e1945
--- /dev/null
@@ -0,0 +1,3 @@
+libreoffice-nlpsolver: jar-not-in-usr-share [usr/lib/libreoffice/share/extensions/nlpsolver/EvolutionarySolver.jar]
+libreoffice-nlpsolver: jar-not-in-usr-share [usr/lib/libreoffice/share/extensions/nlpsolver/help/*/help.jar]
+libreoffice-nlpsolver: jar-not-in-usr-share [usr/lib/libreoffice/share/extensions/nlpsolver/nlpsolver.jar]
diff --git a/debian/libreoffice-officebean.maintscript b/debian/libreoffice-officebean.maintscript
new file mode 100644 (file)
index 0000000..eec3d3b
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-officebean /usr/share/doc/libreoffice-core 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-plasma.maintscript b/debian/libreoffice-plasma.maintscript
new file mode 100644 (file)
index 0000000..8c7e556
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-plasma /usr/share/doc/libreoffice-core 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-qt5.maintscript b/debian/libreoffice-qt5.maintscript
new file mode 100644 (file)
index 0000000..4e11d0b
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-qt5 /usr/share/doc/libreoffice-core 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-report-builder-bin.maintscript b/debian/libreoffice-report-builder-bin.maintscript
new file mode 100644 (file)
index 0000000..c31cc3b
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-report-builder-bin /usr/share/doc/libreoffice-core 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-report-builder.bug-control b/debian/libreoffice-report-builder.bug-control
new file mode 100644 (file)
index 0000000..3aabaa3
--- /dev/null
@@ -0,0 +1 @@
+report-with: libreoffice-base libreoffice-java-common ure-java
diff --git a/debian/libreoffice-report-builder.maintscript b/debian/libreoffice-report-builder.maintscript
new file mode 100644 (file)
index 0000000..d2d3e33
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-report-builder /usr/share/doc/libreoffice-common 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-report-builder.ucf b/debian/libreoffice-report-builder.ucf
new file mode 100644 (file)
index 0000000..60247c8
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/libreoffice/share/.registry/reportbuilder.xcd /etc/libreoffice/registry/reportbuilder.xcd
diff --git a/debian/libreoffice-script-provider-bsh.maintscript b/debian/libreoffice-script-provider-bsh.maintscript
new file mode 100644 (file)
index 0000000..0c4d00f
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-script-provider-bsh /usr/share/doc/libreoffice-common 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-script-provider-js.maintscript b/debian/libreoffice-script-provider-js.maintscript
new file mode 100644 (file)
index 0000000..db3fd3c
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-script-provider-js /usr/share/doc/libreoffice-common 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-script-provider-python.bug-control b/debian/libreoffice-script-provider-python.bug-control
new file mode 100644 (file)
index 0000000..38da481
--- /dev/null
@@ -0,0 +1 @@
+report-with: python-uno python3-uno
diff --git a/debian/libreoffice-script-provider-python.maintscript b/debian/libreoffice-script-provider-python.maintscript
new file mode 100644 (file)
index 0000000..64f0371
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-script-provider-python /usr/share/doc/libreoffice-common 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-sdbc-firebird.NEWS b/debian/libreoffice-sdbc-firebird.NEWS
new file mode 100644 (file)
index 0000000..faee0f2
--- /dev/null
@@ -0,0 +1,21 @@
+libreoffice (1:5.3.0~alpha1-1) experimental; urgency=low
+
+  * LibreOffice switched from Firebird 2.5 to Firebird 3. Unfortunately
+    the format used by the Firebird 2.5 code (fdb - the native on-disk format)
+    is NOT compatible with the "new" one (the archive format). LibreOffice 5.3
+    can NOT read older .odbs having .fdb embedded.
+
+    Some future firebird version might have a way to convert itself/make LO
+    able to convert but until then you need to convert manually as follows:
+
+    You need the gbak tool from firebird2.5:
+    https://packages.debian.org/search?searchon=contents&keywords=gbak&mode=exactfilename&suite=oldstable&arch=any
+
+    Then execute:
+        unzip -d oldFirebird.odb temp;
+        gbak -b temp/database/firebird.fdb temp/database/firebird.fbk;
+        rm temp/database/firebird.fdb
+        zip -FSr oldFirebird.odb temp;
+        rm -r temp;
+
+ -- Rene Engelhard <rene@debian.org>  Mon, 28 Nov 2016 10:27:15 +0200
diff --git a/debian/libreoffice-sdbc-firebird.lintian-overrides b/debian/libreoffice-sdbc-firebird.lintian-overrides
new file mode 100644 (file)
index 0000000..9f2850f
--- /dev/null
@@ -0,0 +1,2 @@
+# "aged out" due to debhelpers changelog trimming (see #1021502)
+libreoffice-sdbc-firebird: debian-news-entry-has-unknown-version 1:5.3.0~alpha1-1 [usr/share/doc/libreoffice-sdbc-firebird/NEWS.Debian.gz:1]
diff --git a/debian/libreoffice-sdbc-firebird.maintscript b/debian/libreoffice-sdbc-firebird.maintscript
new file mode 100644 (file)
index 0000000..b598648
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-sdbc-firebird /usr/share/doc/libreoffice-core 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-sdbc-firebird.ucf b/debian/libreoffice-sdbc-firebird.ucf
new file mode 100644 (file)
index 0000000..3ed2802
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/libreoffice/share/.registry/firebird_sdbc.xcd /etc/libreoffice/registry/firebird_sdbc.xcd
diff --git a/debian/libreoffice-sdbc-hsqldb.maintscript b/debian/libreoffice-sdbc-hsqldb.maintscript
new file mode 100644 (file)
index 0000000..007b4a2
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-sdbc-hsqldb /usr/share/doc/libreoffice-core 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-sdbc-mysql.maintscript b/debian/libreoffice-sdbc-mysql.maintscript
new file mode 100644 (file)
index 0000000..7e41026
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-sdbc-mysql /usr/share/doc/libreoffice-core 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-sdbc-mysql.ucf b/debian/libreoffice-sdbc-mysql.ucf
new file mode 100644 (file)
index 0000000..403d2d9
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/libreoffice/share/.registry/mysqlc.xcd /etc/libreoffice/registry/mysqlc.xcd
diff --git a/debian/libreoffice-sdbc-postgresql.maintscript b/debian/libreoffice-sdbc-postgresql.maintscript
new file mode 100644 (file)
index 0000000..923b4b4
--- /dev/null
@@ -0,0 +1,2 @@
+symlink_to_dir /usr/share/doc/libreoffice-sdbc-postgresql /usr/share/doc/libreoffice-core 1:6.4.0~alpha1~git20191013
+rm_conffile /etc/libreoffice/postgresql-sdbc.ini 1:6.4.0~alpha1~git20191027
diff --git a/debian/libreoffice-sdbc-postgresql.ucf b/debian/libreoffice-sdbc-postgresql.ucf
new file mode 100644 (file)
index 0000000..81b5d51
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/libreoffice/share/.registry/postgresql.xcd /etc/libreoffice/registry/postgresql.xcd
diff --git a/debian/libreoffice-style-breeze.maintscript b/debian/libreoffice-style-breeze.maintscript
new file mode 100644 (file)
index 0000000..a124622
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-style-breeze /usr/share/doc/libreoffice-common 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-style-colibre.maintscript b/debian/libreoffice-style-colibre.maintscript
new file mode 100644 (file)
index 0000000..26f3ed6
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-style-colibre /usr/share/doc/libreoffice-common 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-style-elementary.maintscript b/debian/libreoffice-style-elementary.maintscript
new file mode 100644 (file)
index 0000000..82d7889
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-style-elementary /usr/share/doc/libreoffice-common 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-style-karasa-jaga.maintscript b/debian/libreoffice-style-karasa-jaga.maintscript
new file mode 100644 (file)
index 0000000..c3e34cf
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-style-karasa-jaga /usr/share/doc/libreoffice-common 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-style-sifr.maintscript b/debian/libreoffice-style-sifr.maintscript
new file mode 100644 (file)
index 0000000..ff95171
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-style-sifr /usr/share/doc/libreoffice-common 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-style-tango.maintscript b/debian/libreoffice-style-tango.maintscript
new file mode 100644 (file)
index 0000000..886e586
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-style-tango /usr/share/doc/libreoffice-common 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-subsequentcheckbase.maintscript b/debian/libreoffice-subsequentcheckbase.maintscript
new file mode 100644 (file)
index 0000000..e4f4547
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-subsequentcheckbase /usr/share/doc/libreoffice-common 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-wiki-publisher.bug-control b/debian/libreoffice-wiki-publisher.bug-control
new file mode 100644 (file)
index 0000000..6af4478
--- /dev/null
@@ -0,0 +1 @@
+report-with: ure-java
diff --git a/debian/libreoffice-wiki-publisher.bug-script.in b/debian/libreoffice-wiki-publisher.bug-script.in
new file mode 100755 (executable)
index 0000000..9497e5c
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+/usr/lib/libreoffice/program/unopkg list --bundled com.sun.wiki-publisher >&3
diff --git a/debian/libreoffice-wiki-publisher.lintian-overrides b/debian/libreoffice-wiki-publisher.lintian-overrides
new file mode 100644 (file)
index 0000000..0c20553
--- /dev/null
@@ -0,0 +1,2 @@
+libreoffice-wiki-publisher: jar-not-in-usr-share [usr/lib/libreoffice/share/extensions/wiki-publisher/help/*/help.jar]
+libreoffice-wiki-publisher: jar-not-in-usr-share [usr/lib/libreoffice/share/extensions/wiki-publisher/mediawiki.jar]
diff --git a/debian/libreoffice-writer-nogui.bug-control b/debian/libreoffice-writer-nogui.bug-control
new file mode 100644 (file)
index 0000000..f7a2b99
--- /dev/null
@@ -0,0 +1 @@
+report-with: libreoffice-core libreoffice-core-nogui
diff --git a/debian/libreoffice-writer-nogui.mime b/debian/libreoffice-writer-nogui.mime
new file mode 100644 (file)
index 0000000..fb38a25
--- /dev/null
@@ -0,0 +1,37 @@
+###
+# shared-mime-info
+
+# Generic
+application/rtf; soffice --nologo --writer %s; edit=soffice --nologo --writer %s; test=test -n "$DISPLAY"; description="Rich Text Format"; nametemplate=%s.rtf; priority=3
+application/x-extension-txt; soffice --nologo --writer %s; edit=soffice --nologo --writer %s; test=test -n "$DISPLAY"; description="Plain Text Document"; nametemplate=%s.txt; priority=3
+application/x-t602; soffice --nologo --writer %s; edit=soffice --nologo --writer %s; test=test -n "$DISPLAY"; description="T602 Document"; nametemplate=%s.602; priority=3
+
+# Corel WordPerfect
+application/vnd.wordperfect; soffice --nologo --writer %s; edit=soffice --nologo --writer %s; test=test -n "$DISPLAY"; description="WordPerfect Document"; nametemplate=%s.wp; priority=3
+
+# ECMA Office Open XML (Microsoft Office 2007)
+application/vnd.ms-word.document.macroEnabled.12; soffice --nologo --writer %s; edit=soffice --nologo --writer %s; test=test -n "$DISPLAY"; description="Office Open XML Document with Macros Enabled"; nametemplate=%s.docm; priority=3
+application/vnd.ms-word.template.macroEnabled.12; soffice --nologo --writer %s; edit=soffice --nologo --writer %s; test=test -n "$DISPLAY"; description="Office Open XML Document Template with Macros Enabled"; nametemplate=%s.dotm; priority=3
+application/vnd.openxmlformats-officedocument.wordprocessingml.document; soffice --nologo --writer %s; edit=soffice --nologo --writer %s; test=test -n "$DISPLAY"; description="Office Open XML Document"; nametemplate=%s.docx; priority=3
+application/vnd.openxmlformats-officedocument.wordprocessingml.template; soffice --nologo --writer %s; edit=soffice --nologo --writer %s; test=test -n "$DISPLAY"; description="Office Open XML Document Template"; nametemplate=%s.dotx; priority=3
+
+# Microsoft Word
+application/msword; soffice --nologo --writer %s; edit=soffice --nologo --writer %s; test=test -n "$DISPLAY"; description="Microsoft Word Document"; nametemplate=%s.doc; priority=3
+
+# Microsoft Works
+application/vnd.ms-works; soffice --nologo --writer %s; edit=soffice --nologo --writer %s; test=test -n "$DISPLAY"; description="Microsoft Works Document"; nametemplate=%s.wps; priority=3
+
+# OASIS OpenDocument Format
+application/vnd.oasis.opendocument.text; soffice --nologo --writer %s; edit=soffice --nologo --writer %s; print=soffice --nologo --writer -p %s; test=test -n "$DISPLAY"; description="OpenDocument Text Document"; nametemplate=%s.odt; priority=9
+application/vnd.oasis.opendocument.text-master; soffice --nologo --global %s; edit=soffice --nologo --writer %s; print=soffice --nologo --writer -p %s; test=test -n "$DISPLAY"; description="OpenDocument Master Document"; nametemplate=%s.odm; priority=9
+application/vnd.oasis.opendocument.text-template; soffice --nologo --writer %s; edit=soffice --nologo --writer %s; print=soffice --nologo --writer -p %s; test=test -n "$DISPLAY"; description="OpenDocument Text Document Template"; nametemplate=%s.ott; priority=9
+application/vnd.oasis.opendocument.text-web; soffice --nologo --web %s; edit=soffice --nologo --web %s; print=soffice --nologo --web -p %s; test=test -n "$DISPLAY"; description="OpenDocument HTML Document Template"; nametemplate=%s.oth; priority=9
+
+# OpenOffice.org 1.0
+application/vnd.sun.xml.writer; soffice --nologo --writer %s; edit=soffice --nologo --writer %s; description="OpenOffice.org Text Document"; nametemplate=%s.sxw; priority=8
+application/vnd.sun.xml.writer.global; soffice --nologo --global %s; edit=soffice --nologo --writer %s; description="OpenOffice.org Master Document"; nametemplate=%s.sxg; priority=8
+application/vnd.sun.xml.writer.template; soffice --nologo --writer %s; edit=soffice --nologo --writer %s; description="OpenOffice.org Text Document Template"; nametemplate=%s.stw; priority=8
+
+#
+###
+
diff --git a/debian/libreoffice-writer-nogui.ucf b/debian/libreoffice-writer-nogui.ucf
new file mode 100644 (file)
index 0000000..1b9239c
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/libreoffice/share/.registry/writer.xcd /etc/libreoffice/registry/writer.xcd
diff --git a/debian/libreoffice-writer.bug-control b/debian/libreoffice-writer.bug-control
new file mode 100644 (file)
index 0000000..1ac405f
--- /dev/null
@@ -0,0 +1 @@
+report-with: libreoffice-core
diff --git a/debian/libreoffice-writer.lintian-overrides b/debian/libreoffice-writer.lintian-overrides
new file mode 100644 (file)
index 0000000..df8d660
--- /dev/null
@@ -0,0 +1 @@
+libreoffice-writer: desktop-command-not-in-package libreoffice [usr/share/applications/libreoffice-writer.desktop]
diff --git a/debian/libreoffice-writer.maintscript b/debian/libreoffice-writer.maintscript
new file mode 100644 (file)
index 0000000..829e8be
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreoffice-writer /usr/share/doc/libreoffice-core 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreoffice-writer.manpages b/debian/libreoffice-writer.manpages
new file mode 100644 (file)
index 0000000..53c4e24
--- /dev/null
@@ -0,0 +1,3 @@
+debian/tmp/usr/share/man/man1/loweb.1.gz
+debian/tmp/usr/share/man/man1/lowriter.1.gz
+
diff --git a/debian/libreoffice-writer.mime b/debian/libreoffice-writer.mime
new file mode 100644 (file)
index 0000000..fb38a25
--- /dev/null
@@ -0,0 +1,37 @@
+###
+# shared-mime-info
+
+# Generic
+application/rtf; soffice --nologo --writer %s; edit=soffice --nologo --writer %s; test=test -n "$DISPLAY"; description="Rich Text Format"; nametemplate=%s.rtf; priority=3
+application/x-extension-txt; soffice --nologo --writer %s; edit=soffice --nologo --writer %s; test=test -n "$DISPLAY"; description="Plain Text Document"; nametemplate=%s.txt; priority=3
+application/x-t602; soffice --nologo --writer %s; edit=soffice --nologo --writer %s; test=test -n "$DISPLAY"; description="T602 Document"; nametemplate=%s.602; priority=3
+
+# Corel WordPerfect
+application/vnd.wordperfect; soffice --nologo --writer %s; edit=soffice --nologo --writer %s; test=test -n "$DISPLAY"; description="WordPerfect Document"; nametemplate=%s.wp; priority=3
+
+# ECMA Office Open XML (Microsoft Office 2007)
+application/vnd.ms-word.document.macroEnabled.12; soffice --nologo --writer %s; edit=soffice --nologo --writer %s; test=test -n "$DISPLAY"; description="Office Open XML Document with Macros Enabled"; nametemplate=%s.docm; priority=3
+application/vnd.ms-word.template.macroEnabled.12; soffice --nologo --writer %s; edit=soffice --nologo --writer %s; test=test -n "$DISPLAY"; description="Office Open XML Document Template with Macros Enabled"; nametemplate=%s.dotm; priority=3
+application/vnd.openxmlformats-officedocument.wordprocessingml.document; soffice --nologo --writer %s; edit=soffice --nologo --writer %s; test=test -n "$DISPLAY"; description="Office Open XML Document"; nametemplate=%s.docx; priority=3
+application/vnd.openxmlformats-officedocument.wordprocessingml.template; soffice --nologo --writer %s; edit=soffice --nologo --writer %s; test=test -n "$DISPLAY"; description="Office Open XML Document Template"; nametemplate=%s.dotx; priority=3
+
+# Microsoft Word
+application/msword; soffice --nologo --writer %s; edit=soffice --nologo --writer %s; test=test -n "$DISPLAY"; description="Microsoft Word Document"; nametemplate=%s.doc; priority=3
+
+# Microsoft Works
+application/vnd.ms-works; soffice --nologo --writer %s; edit=soffice --nologo --writer %s; test=test -n "$DISPLAY"; description="Microsoft Works Document"; nametemplate=%s.wps; priority=3
+
+# OASIS OpenDocument Format
+application/vnd.oasis.opendocument.text; soffice --nologo --writer %s; edit=soffice --nologo --writer %s; print=soffice --nologo --writer -p %s; test=test -n "$DISPLAY"; description="OpenDocument Text Document"; nametemplate=%s.odt; priority=9
+application/vnd.oasis.opendocument.text-master; soffice --nologo --global %s; edit=soffice --nologo --writer %s; print=soffice --nologo --writer -p %s; test=test -n "$DISPLAY"; description="OpenDocument Master Document"; nametemplate=%s.odm; priority=9
+application/vnd.oasis.opendocument.text-template; soffice --nologo --writer %s; edit=soffice --nologo --writer %s; print=soffice --nologo --writer -p %s; test=test -n "$DISPLAY"; description="OpenDocument Text Document Template"; nametemplate=%s.ott; priority=9
+application/vnd.oasis.opendocument.text-web; soffice --nologo --web %s; edit=soffice --nologo --web %s; print=soffice --nologo --web -p %s; test=test -n "$DISPLAY"; description="OpenDocument HTML Document Template"; nametemplate=%s.oth; priority=9
+
+# OpenOffice.org 1.0
+application/vnd.sun.xml.writer; soffice --nologo --writer %s; edit=soffice --nologo --writer %s; description="OpenOffice.org Text Document"; nametemplate=%s.sxw; priority=8
+application/vnd.sun.xml.writer.global; soffice --nologo --global %s; edit=soffice --nologo --writer %s; description="OpenOffice.org Master Document"; nametemplate=%s.sxg; priority=8
+application/vnd.sun.xml.writer.template; soffice --nologo --writer %s; edit=soffice --nologo --writer %s; description="OpenOffice.org Text Document Template"; nametemplate=%s.stw; priority=8
+
+#
+###
+
diff --git a/debian/libreoffice-writer.ucf b/debian/libreoffice-writer.ucf
new file mode 100644 (file)
index 0000000..1b9239c
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/libreoffice/share/.registry/writer.xcd /etc/libreoffice/registry/writer.xcd
diff --git a/debian/libreoffice.bug-control b/debian/libreoffice.bug-control
new file mode 100644 (file)
index 0000000..21ad6ad
--- /dev/null
@@ -0,0 +1,2 @@
+report-with: libreoffice-core libreoffice-writer libreoffice-calc libreoffice-base libreoffice-draw libreoffice-impress libreoffice-math
+
diff --git a/debian/libreofficekit-data.maintscript b/debian/libreofficekit-data.maintscript
new file mode 100644 (file)
index 0000000..3c2a916
--- /dev/null
@@ -0,0 +1 @@
+symlink_to_dir /usr/share/doc/libreofficekit-data /usr/share/doc/libreoffice-common 1:6.4.0~alpha1~git20191013
diff --git a/debian/libreofficekit-dev.docs b/debian/libreofficekit-dev.docs
new file mode 100644 (file)
index 0000000..1dbbe5d
--- /dev/null
@@ -0,0 +1 @@
+libreofficekit/README.md
diff --git a/debian/libuno-cppu3t64.lintian-overrides b/debian/libuno-cppu3t64.lintian-overrides
new file mode 100644 (file)
index 0000000..ad1c692
--- /dev/null
@@ -0,0 +1,2 @@
+libuno-cppu3t64: symbols-declares-dependency-on-other-package libstdc++6 (>= 4.1.1) (libuno_cppu.so.3) [symbols]
+libuno-cppu3t64: package-name-doesnt-match-sonames libuno-cppu3
diff --git a/debian/libuno-cppu3t64.symbols b/debian/libuno-cppu3t64.symbols
new file mode 100644 (file)
index 0000000..c745fb9
--- /dev/null
@@ -0,0 +1,11 @@
+libuno_cppu.so.3 libuno-cppu3t64 #MINVER#
+| libuno-cppu3t64 #MINVER#, libstdc++6 (>= 4.1.1)
+ (symver)UDK_3_0_0 1.4.0
+ (symver)UDK_3.1 1.4.0
+ (symver)UDK_3.2 1.4.0
+ (symver)UDK_3.3 1.4.0
+ (symver)GLIBCXX_3.4 3.6 1
+ (symver)LIBO_UDK_4.4 4.4.0~alpha
+# add new stuff BELOW this line
+# and note that the stuff above HAS NO epoch but the
+# below HAS
diff --git a/debian/libuno-cppuhelpergcc3-3t64.lintian-overrides b/debian/libuno-cppuhelpergcc3-3t64.lintian-overrides
new file mode 100644 (file)
index 0000000..3e4ed0e
--- /dev/null
@@ -0,0 +1,3 @@
+libuno-cppuhelpergcc3-3t64: symbols-declares-dependency-on-other-package uno-libs-private (libuno_cppuhelpergcc3.so.3) [symbols]
+libuno-cppuhelpergcc3-3t64: symbols-declares-dependency-on-other-package libstdc++6 (>= 4.1.1) (libuno_cppuhelpergcc3.so.3) [symbols]
+libuno-cppuhelpergcc3-3t64: package-name-doesnt-match-sonames libuno-cppuhelpergcc3-3
diff --git a/debian/libuno-cppuhelpergcc3-3t64.symbols b/debian/libuno-cppuhelpergcc3-3t64.symbols
new file mode 100644 (file)
index 0000000..814f8b3
--- /dev/null
@@ -0,0 +1,18 @@
+libuno_cppuhelpergcc3.so.3 libuno-cppuhelpergcc3-3t64 #MINVER#, uno-libs-private
+| libuno-cppuhelpergcc3-3t64 #MINVER#, uno-libs-private, libstdc++6 (>= 4.1.1)
+ (symver)UDK_3_0_0 1.4.0
+ (symver)UDK_3.1 1.4.0
+ (symver)UDK_3.2 1.4.0
+ (symver)UDK_3.3 1.4.0
+ (symver)UDK_3.4 1.4.0
+ (symver)UDK_3.5 1.4.0
+ (symver)UDK_3.6 1.7.0
+ (symver)UDK_3.7 3.4.0
+ (symver)UDK_3.8 3.5.0~beta
+ (symver)GLIBCXX_3.4 3.6 1
+ (symver)LIBO_UDK_3.9 4.0.0~alpha
+ (symver)LIBO_UDK_5.3 5.3.0~alpha
+# add new stuff BELOW this line
+# and note that the stuff above HAS NO epoch but the
+# below HAS
+ (symver)LIBO_UDK_7.4 1:7.4.0~alpha
diff --git a/debian/libuno-purpenvhelpergcc3-3t64.lintian-overrides b/debian/libuno-purpenvhelpergcc3-3t64.lintian-overrides
new file mode 100644 (file)
index 0000000..fca2887
--- /dev/null
@@ -0,0 +1,2 @@
+libuno-purpenvhelpergcc3-3t64: symbols-declares-dependency-on-other-package libstdc++6 (>= 4.1.1) (libuno_purpenvhelpergcc3.so.3) [symbols]
+libuno-purpenvhelpergcc3-3t64: package-name-doesnt-match-sonames libuno-purpenvhelpergcc3-3
diff --git a/debian/libuno-purpenvhelpergcc3-3t64.symbols b/debian/libuno-purpenvhelpergcc3-3t64.symbols
new file mode 100644 (file)
index 0000000..75b85e9
--- /dev/null
@@ -0,0 +1,7 @@
+libuno_purpenvhelpergcc3.so.3 libuno-purpenvhelpergcc3-3t64 #MINVER#
+| libuno-purpenvhelpergcc3-3t64 #MINVER#, libstdc++6 (>= 4.1.1)
+ (symver)UDK_3_0_0 1.4.0
+ (symver)GLIBCXX_3.4 3.6 1
+# add new stuff BELOW this line
+# and note that the stuff above HAS NO epoch but the
+# below HAS
diff --git a/debian/libuno-sal3t64.lintian-overrides b/debian/libuno-sal3t64.lintian-overrides
new file mode 100644 (file)
index 0000000..48f5f46
--- /dev/null
@@ -0,0 +1,2 @@
+libuno-sal3t64: symbols-declares-dependency-on-other-package libstdc++6 (>= 4.1.1) (libuno_sal.so.3) [symbols]
+libuno-sal3t64: package-name-doesnt-match-sonames libuno-sal3
diff --git a/debian/libuno-sal3t64.symbols b/debian/libuno-sal3t64.symbols
new file mode 100644 (file)
index 0000000..7e174a6
--- /dev/null
@@ -0,0 +1,42 @@
+libuno_sal.so.3 libuno-sal3t64 #MINVER#
+| libuno-sal3t64 #MINVER#, libstdc++6 (>= 4.1.1)
+ (symver)UDK_3_0_0 1.4.0
+ (symver)UDK_3.1 1.4.0
+ (symver)UDK_3.2 1.4.0
+ (symver)UDK_3.3 1.4.0
+ (symver)UDK_3.4 1.4.0
+ (symver)UDK_3.5 1.4.0
+ (symver)UDK_3.6 1.4.0
+ (symver)UDK_3.7 1.4.0
+ (symver)UDK_3.8 1.4.0
+ (symver)UDK_3.9 1.5.0
+ (symver)UDK_3.10 1.6.0
+ UDK_3.11@UDK_3.11 1.7.0+LibO3.3.0~beta3
+ osl_clearEnvironment@UDK_3.11 1.7.0+LibO3.3.0~beta3
+ osl_setEnvironment@UDK_3.11 1.7.0+LibO3.3.0~beta3
+ (symver)UDK_3.11 1.8.0
+ (symver)PRIVATE_1.0 3.3.0~
+ (symver)PRIVATE_1.1 3.3.0~
+ (symver)LIBO_UDK_3.5 3.5.0~beta
+ (symver)PRIVATE_1.2 3.5.0~beta
+ (symver)PRIVATE_textenc.1 3.6.0~beta
+ (symver)GLIBCXX_3.4 3.6 1
+ (symver)LIBO_UDK_3.6 4.0.0~alpha
+ (symver)LIBO_UDK_4.0 4.0.0~beta
+ (symver)LIBO_UDK_4.1 4.1.0~alpha
+ (symver)LIBO_UDK_4.2 4.2.0~rc1
+ (symver)LIBO_UDK_4.3 4.3.0~alpha
+ (symver)LIBO_UDK_5.0 5.0.0~alpha
+ (symver)LIBO_UDK_5.1 5.1.0~alpha
+ (symver)LIBO_UDK_5.2 5.2.0~alpha
+ (symver)LIBO_UDK_5.3 5.3.0~alpha
+ (symver)LIBO_UDK_6.2 6.2.0~alpha
+ (symver)PRIVATE_1.3 5.4.0~alpha
+ (symver)PRIVATE_1.4 6.0.0~alpha
+ (symver)PRIVATE_1.5 6.1.0~alpha
+ (symver)PRIVATE_1.6 6.4.0~beta
+# add new stuff BELOW this line
+# and note that the stuff above HAS NO epoch but the
+# below HAS
+ (symver)PRIVATE_1.7 1:7.1.0~alpha1
+ (symver)PRIVATE_1.8 1:7.3.0~beta1
diff --git a/debian/libuno-salhelpergcc3-3t64.lintian-overrides b/debian/libuno-salhelpergcc3-3t64.lintian-overrides
new file mode 100644 (file)
index 0000000..956945a
--- /dev/null
@@ -0,0 +1,2 @@
+libuno-salhelpergcc3-3t64: symbols-declares-dependency-on-other-package libstdc++6 (>= 4.1.1) (libuno_salhelpergcc3.so.3) [symbols]
+libuno-salhelpergcc3-3t64: package-name-doesnt-match-sonames libuno-salhelpergcc3-3
diff --git a/debian/libuno-salhelpergcc3-3t64.symbols b/debian/libuno-salhelpergcc3-3t64.symbols
new file mode 100644 (file)
index 0000000..f9b9bac
--- /dev/null
@@ -0,0 +1,9 @@
+libuno_salhelpergcc3.so.3 libuno-salhelpergcc3-3t64 #MINVER#
+| libuno-salhelpergcc3-3t64 #MINVER#, libstdc++6 (>= 4.1.1)
+ (symver)UDK_3_0_0 1.4.0
+ (symver)UDK_3.1 1.4.0
+ (symver)LIBO_UDK_3.6 3.6.0~beta
+ (symver)GLIBCXX_3.4 3.6 1
+# add new stuff BELOW this line
+# and note that the stuff above HAS NO epoch but the
+# below HAS
diff --git a/debian/libunoloader-java.poms b/debian/libunoloader-java.poms
new file mode 100644 (file)
index 0000000..e89019b
--- /dev/null
@@ -0,0 +1,28 @@
+# List of POM files for the package
+# Format of this file is:
+# <path to pom file> [option]*
+# where option can be:
+#   --ignore: ignore this POM and its artifact if any
+#   --ignore-pom: don't install the POM. To use on POM files that are created
+#     temporarily for certain artifacts such as Javadoc jars. [mh_install, mh_installpoms]
+#   --no-parent: remove the <parent> tag from the POM
+#   --package=<package>: an alternative package to use when installing this POM
+#      and its artifact
+#   --has-package-version: to indicate that the original version of the POM is the same as the upstream part
+#      of the version for the package.
+#   --keep-elements=<elem1,elem2>: a list of XML elements to keep in the POM
+#      during a clean operation with mh_cleanpom or mh_installpom
+#   --artifact=<path>: path to the build artifact associated with this POM,
+#      it will be installed when using the command mh_install. [mh_install]
+#   --java-lib: install the jar into /usr/share/java to comply with Debian
+#      packaging guidelines
+#   --usj-name=<name>: name to use when installing the library in /usr/share/java
+#   --usj-version=<version>: version to use when installing the library in /usr/share/java
+#   --no-usj-versionless: don't install the versionless link in /usr/share/java
+#   --dest-jar=<path>: the destination for the real jar.
+#     It will be installed with mh_install. [mh_install]
+#   --classifier=<classifier>: Optional, the classifier for the jar. Empty by default.
+#   --site-xml=<location>: Optional, the location for site.xml if it needs to be installed.
+#     Empty by default. [mh_install]
+#
+debian/pom.unoloader.xml --no-parent --has-package-version
diff --git a/debian/patches/adapt-for-new-carlito.diff b/debian/patches/adapt-for-new-carlito.diff
new file mode 100644 (file)
index 0000000..6b316f2
--- /dev/null
@@ -0,0 +1,26 @@
+diff --git a/sw/qa/extras/layout/layout3.cxx b/sw/qa/extras/layout/layout3.cxx
+index 784a295fa2e8..12ce916f63e5 100644
+--- a/sw/qa/extras/layout/layout3.cxx
++++ b/sw/qa/extras/layout/layout3.cxx
+@@ -423,7 +423,7 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter3, testBtlrCell)
+     // Without the accompanying fix in place, this test would have failed with 'Expected: 1915;
+     // Actual  : 1756', i.e. the AAA1 text was too close to the left cell border due to an ascent vs
+     // descent mismatch when calculating the baseline offset of the text portion.
+-    assertXPath(pXmlDoc, "//textarray[1]"_ostr, "x"_ostr, "1915");
++    assertXPath(pXmlDoc, "//textarray[1]"_ostr, "x"_ostr, "1911");
+     assertXPath(pXmlDoc, "//textarray[1]"_ostr, "y"_ostr, "2707");
+     // Without the accompanying fix in place, this test would have failed with 'Expected: 1979;
+diff --git a/sd/qa/unit/import-tests-smartart.cxx b/sd/qa/unit/import-tests-smartart.cxx
+index 0a519c117b52..e4b504dcddbd 100644
+--- a/sd/qa/unit/import-tests-smartart.cxx
++++ b/sd/qa/unit/import-tests-smartart.cxx
+@@ -1541,7 +1541,7 @@ CPPUNIT_TEST_FIXTURE(SdImportTestSmartArt, testAutofitSync)
+     // - Actual  : 100
+     // i.e. the left shape had no scale-down and the right shape was scaled down, even if it was
+     // requested that their scaling matches.
+-    CPPUNIT_ASSERT_EQUAL(nSecondScale, nFirstScale);
++//FIXME    CPPUNIT_ASSERT_EQUAL(nSecondScale, nFirstScale);
+     // Without the accompanying fix in place, this test would have failed with:
+     // - Expected: 0 (drawing::TextFitToSizeType_NONE)
diff --git a/debian/patches/add-access2base-doc.diff b/debian/patches/add-access2base-doc.diff
new file mode 100644 (file)
index 0000000..4ad7178
Binary files /dev/null and b/debian/patches/add-access2base-doc.diff differ
diff --git a/debian/patches/apparmor-allow-java.security.diff b/debian/patches/apparmor-allow-java.security.diff
new file mode 100644 (file)
index 0000000..e4b8ae6
--- /dev/null
@@ -0,0 +1,14 @@
+diff --git a/sysui/desktop/apparmor/program.soffice.bin b/sysui/desktop/apparmor/program.soffice.bin
+index 2fc7fd6b5735..3fd82b08431e 100644
+--- a/sysui/desktop/apparmor/program.soffice.bin
++++ b/sysui/desktop/apparmor/program.soffice.bin
+@@ -144,6 +144,9 @@ profile libreoffice-soffice INSTDIR-program/soffice.bin {
+   /usr/lib{,32,64}/jvm/**                       r,
+   /usr/lib{,32,64}/jvm/**/jre/bin/java          mix,
+   /usr/lib{,32,64}/jvm/**/bin/java              mix,
++  # should be included in the jvm/** above but there it is
++  # a symlink, so apparmor still doesn't allow it...
++  /etc/java-??-openjdk/security/java.security   r,
+   INSTDIR-**                        rw,
+   INSTDIR-**.so                     m,
+   INSTDIR-program/soffice.bin       mix,
diff --git a/debian/patches/apparmor-cleanups.diff b/debian/patches/apparmor-cleanups.diff
new file mode 100644 (file)
index 0000000..c607c26
--- /dev/null
@@ -0,0 +1,35 @@
+From b3c157faeb945fd689fcc8561a520d9e611a7419 Mon Sep 17 00:00:00 2001
+From: Vincas Dargis <vindrg@gmail.com>
+Date: Sat, 4 Aug 2018 17:40:05 +0300
+Subject: [PATCH] apparmor: use dri-enumerate abstraction
+
+Remove backported rule and use new dri-enumerate abstraction instead.
+dri-enumerate is available in AppArmor 2.13, which recently migrated
+into Debian Buster.
+
+Change-Id: I64919edc1882f7bc1e65cfb94686464c5350f699
+---
+ sysui/desktop/apparmor/program.soffice.bin | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sysui/desktop/apparmor/program.soffice.bin b/sysui/desktop/apparmor/program.soffice.bin
+index 2fc7fd6b5735..33ad6f933ef6 100644
+--- a/sysui/desktop/apparmor/program.soffice.bin
++++ b/sysui/desktop/apparmor/program.soffice.bin
+@@ -82,6 +82,7 @@ profile libreoffice-soffice INSTDIR-program/soffice.bin {
+   #include <abstractions/dbus>
+   #include <abstractions/dbus-session>
+   #include <abstractions/dbus-accessibility>
++  #include <abstractions/dri-enumerate>
+   #include <abstractions/ibus>
+   #include <abstractions/nameservice>
+   #include <abstractions/gnome>
+@@ -179,7 +179,6 @@ profile libreoffice-soffice INSTDIR-program/soffice.bin {
+   #Likely moving to abstractions in the future
+   owner @{HOME}/.icons/*/cursors/*      r,
+   /etc/fstab r, # Solid::DeviceNotifier::instance() TODO: deny?
+-  /sys/devices/pci[0-9]*/**/{device,subsystem_device,subsystem_vendor,uevent,vendor} r, # for libdrm
+   /usr/share/*-fonts/conf.avail/*.conf  r,
+   /usr/share/fonts-config/conf.avail/*.conf r,
+   /{,var/}run/udev/data/+usb:* r, # Solid::Device::listFromQuery()
+
diff --git a/debian/patches/apparmor-complain.diff b/debian/patches/apparmor-complain.diff
new file mode 100644 (file)
index 0000000..99a2189
--- /dev/null
@@ -0,0 +1,26 @@
+diff --git a/sysui/desktop/apparmor/program.oosplash b/sysui/desktop/apparmor/program.oosplash
+index fef54b7ee384..9dde31a63615 100644
+--- a/sysui/desktop/apparmor/program.oosplash
++++ b/sysui/desktop/apparmor/program.oosplash
+@@ -12,7 +12,7 @@
+ #include <tunables/global>
+-profile libreoffice-oosplash INSTDIR-program/oosplash {
++profile libreoffice-oosplash INSTDIR-program/oosplash flags=(complain) {
+   #include <abstractions/base>
+   #include <abstractions/X>
+diff --git a/sysui/desktop/apparmor/program.soffice.bin b/sysui/desktop/apparmor/program.soffice.bin
+index b4baeab8f5ee..7861c9eac9bd 100644
+--- a/sysui/desktop/apparmor/program.soffice.bin
++++ b/sysui/desktop/apparmor/program.soffice.bin
+@@ -60,7 +60,7 @@
+ #include <tunables/global>
+-profile libreoffice-soffice INSTDIR-program/soffice.bin {
++profile libreoffice-soffice INSTDIR-program/soffice.bin flags=(complain) {
+   #include <abstractions/private-files>
+   #include <abstractions/audio>
diff --git a/debian/patches/apparmor-gnupg-tofu.diff b/debian/patches/apparmor-gnupg-tofu.diff
new file mode 100644 (file)
index 0000000..a2ee52f
--- /dev/null
@@ -0,0 +1,28 @@
+From: Benjamin Barenblat <bbaren@google.com>
+Subject: Support tofu+pgp trust model in GnuPG
+Bug-Debian: https://bugs.debian.org/955271
+Forwarded: no
+
+GnuPG supports a trust-on-first-use layer that sits on top of the
+standard PGP trust model. If this is enabled, 'gpg --list-keys' needs
+write and lock permissions on the TOFU database to return any useful
+data. Allow this access through AppArmor.
+
+--- libreoffice-7.1.2.2/sysui/desktop/apparmor/program.soffice.bin
++++ libreoffice-7.1.2.2/sysui/desktop/apparmor/program.soffice.bin
+@@ -2,6 +2,7 @@
+ #
+ #    Copyright (C) 2016 Canonical Ltd.
+ #    Copyright (C) 2018 Software in the Public Interest, Inc.
++#    Copyright (C) 2021 Google LLC
+ #
+ #    This Source Code Form is subject to the terms of the Mozilla Public
+ #    License, v. 2.0. If a copy of the MPL was not distributed with this
+@@ -215,6 +216,7 @@   profile gpg {
+     owner @{HOME}/.gnupg/* r,
+     owner @{HOME}/.gnupg/random_seed rk,
++    owner @{HOME}/.gnupg/tofu.db rwk,
+   }
+   # probably should become a subprofile like gpg above, but then it doesn't
diff --git a/debian/patches/apparmor-mesa.diff b/debian/patches/apparmor-mesa.diff
new file mode 100644 (file)
index 0000000..dd6dd20
--- /dev/null
@@ -0,0 +1,10 @@
+--- a/sysui/desktop/apparmor/program.soffice.bin-old   2018-11-09 23:04:59.858704214 +0100
++++ b/sysui/desktop/apparmor/program.soffice.bin       2018-11-09 23:05:28.050949237 +0100
+@@ -87,6 +87,7 @@
+   #include <abstractions/dbus-session>
+   #include <abstractions/dbus-accessibility>
+   #include <abstractions/dri-enumerate>
++  #include <abstractions/mesa>
+   #include <abstractions/ibus>
+   #include <abstractions/nameservice>
+   #include <abstractions/gnome>
diff --git a/debian/patches/apparmor-opencl.diff b/debian/patches/apparmor-opencl.diff
new file mode 100644 (file)
index 0000000..462f376
--- /dev/null
@@ -0,0 +1,20 @@
+apparmor: Add opencl support
+
+AppArmor in Debian Buster now has OpenCL abstractions.
+
+Include OpenCL abstractions to fix OpenCL usage in Calc.
+Index: libreoffice-6.1.4/sysui/desktop/apparmor/program.soffice.bin
+===================================================================
+--- libreoffice-6.1.4.orig/sysui/desktop/apparmor/program.soffice.bin  2019-01-14 19:29:25.000000000 +0200
++++ libreoffice-6.1.4/sysui/desktop/apparmor/program.soffice.bin       2019-01-16 18:43:17.051781559 +0200
+@@ -98,6 +98,10 @@
+   #include <abstractions/user-tmp>
++  #include <abstractions/opencl-intel>
++  #include <abstractions/opencl-mesa>
++  #include <abstractions/opencl-nvidia>
++
+   #List directories for file browser
+   /                                     r,
+   /**/                                  r,
diff --git a/debian/patches/apparmor-updates.diff b/debian/patches/apparmor-updates.diff
new file mode 100644 (file)
index 0000000..538f913
--- /dev/null
@@ -0,0 +1,13 @@
+diff --git a/sysui/desktop/apparmor/program.soffice.bin b/sysui/desktop/apparmor/program.soffice.bin
+index 42053db2abef..2a60f67c2846 100644
+--- a/sysui/desktop/apparmor/program.soffice.bin
++++ b/sysui/desktop/apparmor/program.soffice.bin
+@@ -101,7 +108,7 @@ profile libreoffice-soffice INSTDIR-program/soffice.bin {
+   owner @{libo_user_dirs}/**/           rw,  #allow creating directories that we own
+   owner @{libo_user_dirs}/**~lock.*     rw,  #lock file support
+   owner @{libo_user_dirs}/**.@{libreoffice_ext} rwk,  #Open files rw with the right exts
+-  owner @{libo_user_dirs}/{,**/}lu??????????{,?}.tmp rwk, #Temporary file used when saving
++  owner @{libo_user_dirs}/{,**/}lu????????{,?,??,???,????}.tmp rwk, #Temporary file used when saving
+   owner @{libo_user_dirs}/{,**/}.directory r, #Read directory settings on KDE
+   # Settings
diff --git a/debian/patches/appstream-ignore-startcenter.diff b/debian/patches/appstream-ignore-startcenter.diff
new file mode 100644 (file)
index 0000000..d61aa87
--- /dev/null
@@ -0,0 +1,10 @@
+--- a/sysui/desktop/menus/startcenter.desktop
++++ b/sysui/desktop/menus/startcenter.desktop
+@@ -31,6 +31,7 @@ StartupNotify=true
+ X-GIO-NoFuse=true
+ StartupWMClass=libreoffice-startcenter
+ X-KDE-Protocols=file,http,webdav,webdavs
++X-AppStream-Ignore=True
+ ##Define Actions
+ Actions=Writer;Calc;Impress;Draw;Base;Math;
diff --git a/debian/patches/arm-fp-mode.diff b/debian/patches/arm-fp-mode.diff
new file mode 100644 (file)
index 0000000..3047188
--- /dev/null
@@ -0,0 +1,15 @@
+Description: Explicitly set fpu mode on armhf
+Author: Rico Tzschichholz <ricotz@ubuntu.com>
+
+diff --git a/bridges/source/cpp_uno/gcc3_linux_arm/armhelper.S b/bridges/source/cpp_uno/gcc3_linux_arm/armhelper.S
+index 4eff3ff0a012..7996b9c5b3f0 100644
+--- a/bridges/source/cpp_uno/gcc3_linux_arm/armhelper.S
++++ b/bridges/source/cpp_uno/gcc3_linux_arm/armhelper.S
+@@ -51,6 +51,7 @@ privateSnippetExecutor:
+       mov   r0, ip               @ r0 points to functionoffset/vtable
+       mov   r1, sp               @ r1 points to this and params
+ #ifdef __ARM_PCS_VFP
++      .fpu vfpv2
+       vpush {d0-d7}              @ floating point parameter on stack
+ #endif
+       UNWIND .pad  #PAD          @ throw this data away on exception
diff --git a/debian/patches/breakiterator-updates.diff b/debian/patches/breakiterator-updates.diff
new file mode 100644 (file)
index 0000000..8ac9cdb
--- /dev/null
@@ -0,0 +1,3620 @@
+From 5b688b03a916a0f6127c7aba891bf613cff0de0b Mon Sep 17 00:00:00 2001
+From: Jonathan Clark <jonathan@libreoffice.org>
+Date: Wed, 17 Apr 2024 09:09:50 -0600
+Subject: [PATCH] tdf#49885 BreakIterator rule upgrades
+
+This change re-bases the BreakIterator rule customizations on top of a
+clean copy of the ICU 74.2 rules.
+
+Change-Id: Iadcf16cab138cc6c869fac61ad64e996e65b5ae4
+---
+ i18npool/CustomTarget_breakiterator.mk        |   6 +-
+ i18npool/qa/cppunit/test_breakiterator.cxx    | 356 +++++----
+ .../source/breakiterator/data/dict_word.txt   | 267 ++++---
+ .../breakiterator/data/dict_word_he.txt       | 139 ----
+ .../breakiterator/data/dict_word_hu.txt       | 324 +++++----
+ .../breakiterator/data/dict_word_nodash.txt   | 147 ----
+ .../data/dict_word_prepostdash.txt            | 288 +++++---
+ .../source/breakiterator/data/edit_word.txt   | 261 ++++---
+ .../breakiterator/data/edit_word_he.txt       | 142 ----
+ .../breakiterator/data/edit_word_hu.txt       | 294 +++++---
+ i18npool/source/breakiterator/data/line.txt   | 680 ++++++------------
+ i18npool/source/breakiterator/data/sent.txt   | 128 ----
+ 12 files changed, 1307 insertions(+), 1725 deletions(-)
+ delete mode 100644 i18npool/source/breakiterator/data/dict_word_he.txt
+ delete mode 100644 i18npool/source/breakiterator/data/dict_word_nodash.txt
+ delete mode 100644 i18npool/source/breakiterator/data/edit_word_he.txt
+ delete mode 100644 i18npool/source/breakiterator/data/sent.txt
+
+diff --git a/i18npool/CustomTarget_breakiterator.mk b/i18npool/CustomTarget_breakiterator.mk
+index 8229a5e8f314..ef951142837a 100644
+--- a/i18npool/CustomTarget_breakiterator.mk
++++ b/i18npool/CustomTarget_breakiterator.mk
+@@ -45,16 +45,12 @@ endif
+ i18npool_BRKTXTS := \
+     count_word.brk \
+-    $(call gb_Helper_optional_locale,he,dict_word_he.brk) \
+     $(call gb_Helper_optional_locale,hu,dict_word_hu.brk) \
+-    dict_word_nodash.brk \
+     dict_word_prepostdash.brk \
+     dict_word.brk \
+-    $(call gb_Helper_optional_locale,he,edit_word_he.brk) \
+     $(call gb_Helper_optional_locale,hu,edit_word_hu.brk) \
+     edit_word.brk \
+-    line.brk \
+-    sent.brk
++    line.brk
+ # 'gencmn', 'genbrk' and 'genccode' are tools generated and delivered by icu project to process icu breakiterator rules.
+ # The output of gencmn generates warnings under Windows. We want to minimize the patches to external tools,
+diff --git a/i18npool/qa/cppunit/test_breakiterator.cxx b/i18npool/qa/cppunit/test_breakiterator.cxx
+index b33466bee46d..2a35b2eee58f 100644
+--- a/i18npool/qa/cppunit/test_breakiterator.cxx
++++ b/i18npool/qa/cppunit/test_breakiterator.cxx
+@@ -184,11 +184,10 @@ void TestBreakIterator::testLineBreaking()
+         {
+             // Per the bug, the line break should leave -bar clumped together on the next line.
+-            // However, this change was reverted at some point. This test asserts the new behavior.
+             i18n::LineBreakResults aResult = m_xBreak->getLineBreak(
+                 "foo -bar", strlen("foo -ba"), aLocale, 0, aHyphOptions, aUserOptions);
+             CPPUNIT_ASSERT_EQUAL_MESSAGE("Expected a break at the first dash",
+-                                         static_cast<sal_Int32>(5), aResult.breakIndex);
++                                         static_cast<sal_Int32>(4), aResult.breakIndex);
+         }
+     }
+@@ -198,11 +197,29 @@ void TestBreakIterator::testLineBreaking()
+         aLocale.Country = "US";
+         {
+-            // Here we want the line break to leave C:\Program Files\ on the first line
++            // Note that the current behavior deviates from the original fix for this bug.
++            //
++            // The original report was filed due to wrapping all of "\Program Files\aaaa" to the
++            // next line, even though only "aaaa" overflowed. The original fix was to simply make
++            // U+005C reverse solidus (backslash) a breaking character.
++            //
++            // However, the root cause for this bug was not the behavior of '\', but rather some
++            // other bug making all of "\Program Files\" behave like a single token, despite it
++            // even containing whitespace.
++            //
++            // Reverting to the ICU line rules fixes this root issue. Now, in the following,
++            // "C:\Program" and "Files\LibreOffice" are treated as separate tokens. This is also
++            // consistent with the behavior of other office programs.
+             i18n::LineBreakResults aResult = m_xBreak->getLineBreak(
+                 "C:\\Program Files\\LibreOffice", strlen("C:\\Program Files\\Libre"), aLocale, 0,
+                 aHyphOptions, aUserOptions);
+-            CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(17), aResult.breakIndex);
++            CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(11), aResult.breakIndex);
++
++            // An identical result should be generated for solidus.
++            aResult = m_xBreak->getLineBreak(
++                "C:/Program Files/LibreOffice", strlen("C:/Program Files/Libre"), aLocale, 0,
++                aHyphOptions, aUserOptions);
++            CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(11), aResult.breakIndex);
+         }
+     }
+@@ -251,23 +268,125 @@ void TestBreakIterator::testLineBreaking()
+         aLocale.Country = "US";
+         {
++            // The root cause for this bug was the Unicode standard introducing special treatment
++            // for '-' in a number range context. This change makes number ranges (e.g. "100-199")
++            // behave as if they are single tokens for the purposes of line breaking. Unfortunately,
++            // this caused a significant appearance change to existing documents.
++            //
++            // Despite being a user-visible layout change, this isn't exactly a bug. Wrapping
++            // number ranges as a single token is consistent with other applications, including web
++            // browsers, and other office suites as mentioned in the bug discussion. Removing this
++            // customization seems like it would be a major change, however.
++            //
+             // Here we want the line break to leave 100- clumped on the first line.
++
+             i18n::LineBreakResults aResult = m_xBreak->getLineBreak(
+                 "word 100-199 word", strlen("word 100-1"), aLocale, 0, aHyphOptions, aUserOptions);
+-            CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(9), aResult.breakIndex);
++            CPPUNIT_ASSERT_EQUAL(sal_Int32{9}, aResult.breakIndex);
++        }
++
++        {
++            // From the same bug: "the leading minus must stay with numbers and strings"
++
++            i18n::LineBreakResults aResult = m_xBreak->getLineBreak(
++                    "range of -100.000 to 100.000", strlen("range of -1"), aLocale, 0,
++                    aHyphOptions, aUserOptions);
++            CPPUNIT_ASSERT_EQUAL(sal_Int32{9}, aResult.breakIndex);
++
++            constexpr OUString str = u"range of \u2212100.000 to 100.000"_ustr;
++            aResult = m_xBreak->getLineBreak(
++                    str, strlen("range of -"), aLocale, 0, aHyphOptions, aUserOptions);
++            CPPUNIT_ASSERT_EQUAL(sal_Int32{9}, aResult.breakIndex);
+         }
+-    }
+-    // i#83649: Line break should be between typographical quote and left bracket
+-    {
+         aLocale.Language = "de";
+         aLocale.Country = "DE";
+         {
+-            // Here we want the line break to leave »angetan werden« on the first line
++            // From the same bug: "the leading minus must stay with numbers and strings"
++
++            i18n::LineBreakResults aResult = m_xBreak->getLineBreak(
++                    "EURO is -10,50", strlen("EURO is -1"), aLocale, 0, aHyphOptions, aUserOptions);
++            CPPUNIT_ASSERT_EQUAL(sal_Int32{8}, aResult.breakIndex);
++
++            // Also the mathematical minus sign:
++
++            constexpr OUString str = u"EURO is \u221210,50"_ustr;
++            aResult = m_xBreak->getLineBreak(
++                    str, strlen("EURO is -"), aLocale, 0, aHyphOptions, aUserOptions);
++            CPPUNIT_ASSERT_EQUAL(sal_Int32{8}, aResult.breakIndex);
++        }
++
++        {
++            // From the same bug: "the leading minus must stay with numbers and strings"
++
++            i18n::LineBreakResults aResult = m_xBreak->getLineBreak(
++                    "und -kosten", strlen("und -ko"), aLocale, 0,
++                    aHyphOptions, aUserOptions);
++            CPPUNIT_ASSERT_EQUAL(sal_Int32{4}, aResult.breakIndex);
++
++            // But not the non-breaking hyphen:
++
++            constexpr OUString str = u"und \u2011"_ustr;
++            aResult = m_xBreak->getLineBreak(
++                    str, strlen("und -ko"), aLocale, 0, aHyphOptions, aUserOptions);
++            CPPUNIT_ASSERT_EQUAL(sal_Int32{5}, aResult.breakIndex);
++        }
++    }
++
++    // i#83649: "Line break should be between typographical quote and left bracket"
++    // - Actually: Spaces between quotation mark and opening punctuation not treated as a break.
++    // - Note that per the Unicode standard, prohibiting breaks in this context is intentional
++    // because it may cause issues in certain languages due to the various ways quotation
++    // characters are used.
++    // - We do it anyway by customizing the ICU line breaking rules.
++    {
++        {
++            // This uses the sample text provided in the bug report. Based on usage, it is assumed
++            // they were in the de_DE locale.
++
++            aLocale.Language = "de";
++            aLocale.Country = "DE";
++
++            // Per the bug report, it is expected that »angetan werden« remains on the first line.
+             const OUString str = u"»angetan werden« [Passiv]"_ustr;
+             i18n::LineBreakResults aResult = m_xBreak->getLineBreak(
+-                str, strlen("Xangetan werdenX ["), aLocale, 0, aHyphOptions, aUserOptions);
++                str, str.getLength() - 4, aLocale, 0, aHyphOptions, aUserOptions);
++            CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(17), aResult.breakIndex);
++
++            // The same result should be returned for this and the first case.
++            const OUString str2 = u"»angetan werden« Passiv"_ustr;
++            aResult = m_xBreak->getLineBreak(
++                str2, str2.getLength() - 4, aLocale, 0, aHyphOptions, aUserOptions);
++            CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(17), aResult.breakIndex);
++
++            // Under ICU rules, no amount of spaces would cause this to wrap.
++            const OUString str3 = u"»angetan werden«    [Passiv]"_ustr;
++            aResult = m_xBreak->getLineBreak(
++                str3, str3.getLength() - 4, aLocale, 0, aHyphOptions, aUserOptions);
++            CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(20), aResult.breakIndex);
++
++            // However, tabs will
++            const OUString str4 = u"»angetan werden«\t[Passiv]"_ustr;
++            aResult = m_xBreak->getLineBreak(
++                str4, str4.getLength() - 4, aLocale, 0, aHyphOptions, aUserOptions);
++            CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(17), aResult.breakIndex);
++        }
++
++        {
++            // The same behavior is seen in English
++
++            aLocale.Language = "en";
++            aLocale.Country = "US";
++
++            const OUString str = u"\"angetan werden\" [Passiv]"_ustr;
++            i18n::LineBreakResults aResult = m_xBreak->getLineBreak(
++                str, str.getLength() - 4, aLocale, 0, aHyphOptions, aUserOptions);
++            CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(17), aResult.breakIndex);
++
++            const OUString str2 = u"\"angetan werden\" Passiv"_ustr;
++            aResult = m_xBreak->getLineBreak(
++                str2, str2.getLength() - 4, aLocale, 0, aHyphOptions, aUserOptions);
+             CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(17), aResult.breakIndex);
+         }
+     }
+@@ -355,7 +474,7 @@ void TestBreakIterator::testLineBreaking()
+             auto res = m_xBreak->getLineBreak("Wort -prinzessinnen, wort",
+                                               strlen("Wort -prinzessinnen,"), aLocale, 0,
+                                               aHyphOptions, aUserOptions);
+-            CPPUNIT_ASSERT_EQUAL(sal_Int32{ 6 }, res.breakIndex);
++            CPPUNIT_ASSERT_EQUAL(sal_Int32{ 5 }, res.breakIndex);
+         }
+     }
+ }
+@@ -638,7 +757,8 @@ void TestBreakIterator::testWordBoundaries()
+         CPPUNIT_ASSERT_EQUAL(std::size(aExpected), i);
+     }
+-    //See https://bz.apache.org/ooo/show_bug.cgi?id=85411
++    // i#85411: ZWSP should be a word separator for spellchecking
++    // - This fix was applied to both dict and edit customizations
+     for (int j = 0; j < 3; ++j)
+     {
+         switch (j)
+@@ -660,21 +780,23 @@ void TestBreakIterator::testWordBoundaries()
+                 break;
+         }
+-        static constexpr OUString aTest =
+-            u"I\u200Bwant\u200Bto\u200Bgo"_ustr;
++        static constexpr OUString aTest = u"I\u200Bwant\u200Bto\u200Bgo"_ustr;
+         sal_Int32 nPos = 0;
+-        sal_Int32 aExpected[] = {1, 6, 9, 12};
++        sal_Int32 aExpected[] = { 1, 6, 9, 12 };
+         size_t i = 0;
+         do
+         {
+             CPPUNIT_ASSERT(i < std::size(aExpected));
+-            nPos = m_xBreak->getWordBoundary(aTest, nPos, aLocale,
+-                i18n::WordType::DICTIONARY_WORD, true).endPos;
+-            CPPUNIT_ASSERT_EQUAL(aExpected[i], nPos);
++            auto dwPos = m_xBreak->getWordBoundary(aTest, nPos, aLocale,
++                                                   i18n::WordType::DICTIONARY_WORD, true);
++            CPPUNIT_ASSERT_EQUAL(aExpected[i], dwPos.endPos);
++            auto ewPos = m_xBreak->getWordBoundary(aTest, nPos, aLocale,
++                                                   i18n::WordType::ANYWORD_IGNOREWHITESPACES, true);
++            CPPUNIT_ASSERT_EQUAL(aExpected[i], ewPos.endPos);
++            nPos = dwPos.endPos;
+             ++i;
+-        }
+-        while (nPos++ < aTest.getLength());
++        } while (nPos++ < aTest.getLength());
+         CPPUNIT_ASSERT_EQUAL(std::size(aExpected), i);
+     }
+@@ -814,121 +936,45 @@ void TestBreakIterator::testWordBoundaries()
+     }
+     // i#56347: "BreakIterator patch for Hungarian"
+-    // Rules for Hungarian affixes after numbers and certain symbols
+-    {
+-        auto mode = i18n::WordType::DICTIONARY_WORD;
+-        aLocale.Language = "hu";
+-        aLocale.Country = "HU";
+-
+-        OUString aTest = u"szavak 15 15-tel 15%-kal €-val szavak"_ustr;
+-
+-        aBounds = m_xBreak->getWordBoundary(aTest, 2, aLocale, mode, true);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(0), aBounds.startPos);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(6), aBounds.endPos);
+-
+-        aBounds = m_xBreak->getWordBoundary(aTest, 7, aLocale, mode, true);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(7), aBounds.startPos);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(9), aBounds.endPos);
+-
+-        aBounds = m_xBreak->getWordBoundary(aTest, 11, aLocale, mode, true);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(10), aBounds.startPos);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(16), aBounds.endPos);
+-
+-        aBounds = m_xBreak->getWordBoundary(aTest, 18, aLocale, mode, true);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(17), aBounds.startPos);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(24), aBounds.endPos);
+-
+-        aBounds = m_xBreak->getWordBoundary(aTest, 25, aLocale, mode, true);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(25), aBounds.startPos);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(30), aBounds.endPos);
+-
+-        aBounds = m_xBreak->getWordBoundary(aTest, 27, aLocale, mode, true);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(25), aBounds.startPos);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(30), aBounds.endPos);
+-
+-        aBounds = m_xBreak->getWordBoundary(aTest, 34, aLocale, mode, true);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(31), aBounds.startPos);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(37), aBounds.endPos);
+-    }
+-
+     // i#56348: Special chars in first pos not handled by spell checking in Writer (Hungarian)
+-    // Rules for Hungarian affixes after numbers and certain symbols in edit mode.
+-    // The patch was merged, but the original bug was never closed and the current behavior seems
+-    // identical to the ICU default behavior. Added this test to ensure that doesn't change.
++    // Rules for Hungarian affixes after numbers and certain symbols
+     {
+-        auto mode = i18n::WordType::ANY_WORD;
+         aLocale.Language = "hu";
+         aLocale.Country = "HU";
+         OUString aTest = u"szavak 15 15-tel 15%-kal €-val szavak"_ustr;
+-        aBounds = m_xBreak->getWordBoundary(aTest, 2, aLocale, mode, true);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(0), aBounds.startPos);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(6), aBounds.endPos);
+-
+-        aBounds = m_xBreak->getWordBoundary(aTest, 7, aLocale, mode, true);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(7), aBounds.startPos);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(9), aBounds.endPos);
+-
+-        aBounds = m_xBreak->getWordBoundary(aTest, 11, aLocale, mode, true);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(10), aBounds.startPos);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(12), aBounds.endPos);
+-
+-        aBounds = m_xBreak->getWordBoundary(aTest, 11, aLocale, mode, true);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(10), aBounds.startPos);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(12), aBounds.endPos);
+-
+-        aBounds = m_xBreak->getWordBoundary(aTest, 12, aLocale, mode, true);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(12), aBounds.startPos);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(13), aBounds.endPos);
+-
+-        aBounds = m_xBreak->getWordBoundary(aTest, 13, aLocale, mode, true);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(13), aBounds.startPos);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(16), aBounds.endPos);
+-
+-        aBounds = m_xBreak->getWordBoundary(aTest, 16, aLocale, mode, true);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(16), aBounds.startPos);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(17), aBounds.endPos);
+-
+-        aBounds = m_xBreak->getWordBoundary(aTest, 17, aLocale, mode, true);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(17), aBounds.startPos);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(19), aBounds.endPos);
+-
+-        aBounds = m_xBreak->getWordBoundary(aTest, 19, aLocale, mode, true);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(19), aBounds.startPos);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(20), aBounds.endPos);
+-
+-        aBounds = m_xBreak->getWordBoundary(aTest, 20, aLocale, mode, true);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(20), aBounds.startPos);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(21), aBounds.endPos);
+-
+-        aBounds = m_xBreak->getWordBoundary(aTest, 21, aLocale, mode, true);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(21), aBounds.startPos);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(24), aBounds.endPos);
++        for (auto mode :
++             { i18n::WordType::DICTIONARY_WORD, i18n::WordType::ANYWORD_IGNOREWHITESPACES })
++        {
++            aBounds = m_xBreak->getWordBoundary(aTest, 2, aLocale, mode, true);
++            CPPUNIT_ASSERT_EQUAL(sal_Int32(0), aBounds.startPos);
++            CPPUNIT_ASSERT_EQUAL(sal_Int32(6), aBounds.endPos);
+-        aBounds = m_xBreak->getWordBoundary(aTest, 24, aLocale, mode, true);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(24), aBounds.startPos);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(25), aBounds.endPos);
++            aBounds = m_xBreak->getWordBoundary(aTest, 7, aLocale, mode, true);
++            CPPUNIT_ASSERT_EQUAL(sal_Int32(7), aBounds.startPos);
++            CPPUNIT_ASSERT_EQUAL(sal_Int32(9), aBounds.endPos);
+-        aBounds = m_xBreak->getWordBoundary(aTest, 25, aLocale, mode, true);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(25), aBounds.startPos);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(26), aBounds.endPos);
++            aBounds = m_xBreak->getWordBoundary(aTest, 11, aLocale, mode, true);
++            CPPUNIT_ASSERT_EQUAL(sal_Int32(10), aBounds.startPos);
++            CPPUNIT_ASSERT_EQUAL(sal_Int32(16), aBounds.endPos);
+-        aBounds = m_xBreak->getWordBoundary(aTest, 26, aLocale, mode, true);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(26), aBounds.startPos);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(27), aBounds.endPos);
++            aBounds = m_xBreak->getWordBoundary(aTest, 18, aLocale, mode, true);
++            CPPUNIT_ASSERT_EQUAL(sal_Int32(17), aBounds.startPos);
++            CPPUNIT_ASSERT_EQUAL(sal_Int32(24), aBounds.endPos);
+-        aBounds = m_xBreak->getWordBoundary(aTest, 27, aLocale, mode, true);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(27), aBounds.startPos);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(30), aBounds.endPos);
++            aBounds = m_xBreak->getWordBoundary(aTest, 25, aLocale, mode, true);
++            CPPUNIT_ASSERT_EQUAL(sal_Int32(25), aBounds.startPos);
++            CPPUNIT_ASSERT_EQUAL(sal_Int32(30), aBounds.endPos);
+-        aBounds = m_xBreak->getWordBoundary(aTest, 30, aLocale, mode, true);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(30), aBounds.startPos);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(31), aBounds.endPos);
++            aBounds = m_xBreak->getWordBoundary(aTest, 27, aLocale, mode, true);
++            CPPUNIT_ASSERT_EQUAL(sal_Int32(25), aBounds.startPos);
++            CPPUNIT_ASSERT_EQUAL(sal_Int32(30), aBounds.endPos);
+-        aBounds = m_xBreak->getWordBoundary(aTest, 31, aLocale, mode, true);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(31), aBounds.startPos);
+-        CPPUNIT_ASSERT_EQUAL(sal_Int32(37), aBounds.endPos);
++            aBounds = m_xBreak->getWordBoundary(aTest, 34, aLocale, mode, true);
++            CPPUNIT_ASSERT_EQUAL(sal_Int32(31), aBounds.startPos);
++            CPPUNIT_ASSERT_EQUAL(sal_Int32(37), aBounds.endPos);
++        }
+     }
+ }
+@@ -967,6 +1013,56 @@ void TestBreakIterator::testSentenceBoundaries()
+         CPPUNIT_ASSERT_EQUAL(sal_Int32(24), m_xBreak->beginOfSentence(aTest, 26, aLocale));
+         CPPUNIT_ASSERT_EQUAL(sal_Int32(53), m_xBreak->endOfSentence(aTest, 26, aLocale));
+     }
++
++    // i#55063: Sentence selection in Thai should select a space-delimited phrase.
++    // - This customization broke at some point. It works in an English locale in a synthetic test
++    // like this one, but does not work in the Thai locale, nor on Thai text in practice.
++    {
++        static constexpr OUString aTest = u"ว้อย โหลยโท่ยคอร์รัปชันโอเพ่นฮอตดอก โปรโมเตอร์"_ustr;
++
++        aLocale.Language = "en";
++        aLocale.Country = "US";
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(0), m_xBreak->beginOfSentence(aTest, 23, aLocale));
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(46), m_xBreak->endOfSentence(aTest, 23, aLocale));
++
++        aLocale.Language = "th";
++        aLocale.Country = "TH";
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(0), m_xBreak->beginOfSentence(aTest, 23, aLocale));
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(46), m_xBreak->endOfSentence(aTest, 23, aLocale));
++    }
++
++    // i#55063: Thai phrases should delimit English sentence selection.
++    // - This customization broke at some point. It works in an English locale in a synthetic test
++    // like this one, but does not work in the Thai locale, nor on Thai text in practice.
++    {
++        static constexpr OUString aTest = u"ว้อย English usually ends with a period โปรโมเตอร์."_ustr;
++
++        aLocale.Language = "en";
++        aLocale.Country = "US";
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(0), m_xBreak->beginOfSentence(aTest, 23, aLocale));
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(51), m_xBreak->endOfSentence(aTest, 23, aLocale));
++
++        aLocale.Language = "th";
++        aLocale.Country = "TH";
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(0), m_xBreak->beginOfSentence(aTest, 23, aLocale));
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(51), m_xBreak->endOfSentence(aTest, 23, aLocale));
++    }
++
++    // i#55063: Characteristic test for English text delimiting Thai phrases (sentences)
++    // - English text should not delimit Thai phrases.
++    {
++        static constexpr OUString aTest = u"Englishโหลยโท่ยคอร์รัปชันโอเพ่นฮอตดอกEnglish"_ustr;
++
++        aLocale.Language = "en";
++        aLocale.Country = "US";
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(0), m_xBreak->beginOfSentence(aTest, 23, aLocale));
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(44), m_xBreak->endOfSentence(aTest, 23, aLocale));
++
++        aLocale.Language = "th";
++        aLocale.Country = "TH";
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(0), m_xBreak->beginOfSentence(aTest, 23, aLocale));
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(44), m_xBreak->endOfSentence(aTest, 23, aLocale));
++    }
+ }
+ //See https://bugs.libreoffice.org/show_bug.cgi?id=40292
+@@ -1501,6 +1597,7 @@ void TestBreakIterator::testLegacyHebrewQuoteInsideWord()
+     aLocale.Language = "he";
+     aLocale.Country = "IL";
++    // i#51661: Add quotation mark as middle letter for Hebrew
+     {
+         auto aTest = u"פַּרְדּ״ס פַּרְדּ\"ס"_ustr;
+@@ -1514,6 +1611,21 @@ void TestBreakIterator::testLegacyHebrewQuoteInsideWord()
+         CPPUNIT_ASSERT_EQUAL(sal_Int32(10), aBounds.startPos);
+         CPPUNIT_ASSERT_EQUAL(sal_Int32(19), aBounds.endPos);
+     }
++
++    // i#51661: Add quotation mark as middle letter for Hebrew
++    {
++        auto aTest = u"פַּרְדּ״ס פַּרְדּ\"ס"_ustr;
++
++        i18n::Boundary aBounds = m_xBreak->getWordBoundary(
++            aTest, 3, aLocale, i18n::WordType::ANYWORD_IGNOREWHITESPACES, false);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(0), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(9), aBounds.endPos);
++
++        aBounds = m_xBreak->getWordBoundary(aTest, 13, aLocale,
++                                            i18n::WordType::ANYWORD_IGNOREWHITESPACES, false);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(10), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(19), aBounds.endPos);
++    }
+ }
+ void TestBreakIterator::testLegacySurrogatePairs()
+diff --git a/i18npool/source/breakiterator/data/dict_word.txt b/i18npool/source/breakiterator/data/dict_word.txt
+index b1666f44daab..f804b0eec214 100644
+--- a/i18npool/source/breakiterator/data/dict_word.txt
++++ b/i18npool/source/breakiterator/data/dict_word.txt
+@@ -1,148 +1,199 @@
+ #
+-#   Copyright (C) 2002-2003, International Business Machines Corporation and others.
+-#       All Rights Reserved.
++# Copyright (C) 2016 and later: Unicode, Inc. and others.
++# License & terms of use: http://www.unicode.org/copyright.html
++# Copyright (C) 2002-2016, International Business Machines Corporation
++# and others. All Rights Reserved.
+ #
+-#   file:  dict_word.txt   
++# file:  word.txt
+ #
+-#   ICU Word Break Rules
++# ICU Word Break Rules
+ #      See Unicode Standard Annex #29.
+-#      These rules are based on Version 4.0.0, dated 2003-04-17
++#      These rules are based on UAX #29 Revision 34 for Unicode Version 12.0
+ #
++# Note:  Updates to word.txt will usually need to be merged into
++#        word_POSIX.txt also.
+-
+-
+-####################################################################################
++##############################################################################
+ #
+ #  Character class definitions from TR 29
+ #
+-####################################################################################
+-$Katakana  = [[:Script = KATAKANA:] [:name = KATAKANA-HIRAGANA PROLONGED SOUND MARK:] 
+-                                   [:name = HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK:]
+-                                   [:name = HALFWIDTH KATAKANA VOICED SOUND MARK:]
+-                                   [:name = HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK:]];
+-
+-$Ideographic = [:Ideographic:];
+-$Hangul = [:Script = HANGUL:];
+-
+-$ALetter   = [[:Alphabetic:] [:name= COMMERCIAL AT:] [:name= HEBREW PUNCTUATION GERESH:]
+-                           - $Ideographic
+-                           - $Katakana
+-                           - $Hangul
+-                           - [:Script = Thai:]
+-                           - [:Script = Lao:]
+-                           - [:Script = Hiragana:]];
+-                           
+-$MidLetter = [[:name = APOSTROPHE:] [:name = GRAVE ACCENT:] \u0084 [:name = SOFT HYPHEN:] [:name = MIDDLE DOT:] [:name = GREEK TONOS:] [:name= FULL STOP:] 
+-              [:name = HEBREW PUNCTUATION GERSHAYIM:] [:name = DOUBLE VERTICAL LINE:] [:name = LEFT SINGLE QUOTATION MARK:]
+-              [:name = RIGHT SINGLE QUOTATION MARK:] [:name = HYPHENATION POINT:] [:name = PRIME:] 
+-              [:name = HYPHEN-MINUS:] ];
+-
+-$SufixLetter = [:name= FULL STOP:];
+-              
+-
+-$MidNum    = [[:LineBreak = Infix_Numeric:] [:name= COMMERCIAL AT:] \u0084 [:name = GREEK TONOS:] [:name = ARABIC DECIMAL SEPARATOR:]
+-             [:name = LEFT SINGLE QUOTATION MARK:] [:name = RIGHT SINGLE QUOTATION MARK:] [:name = SINGLE HIGH-REVERSED-9 QUOTATION MARK:]
+-             [:name = PRIME:]];
+-$Numeric   = [:LineBreak = Numeric:];
+-
+-
+-$TheZWSP = \u200b;
++##############################################################################
++
++### BEGIN CUSTOMIZATION
++### This file contains LibreOffice-specific rule customizations.
++###
++### To aid future maintainability:
++### - The change location should be bracketed by comments of this form.
++### - The original rule should be commented out, and the modified rule placed alongside.
++### - By doing this, maintainers can more easily compare to an upstream baseline.
++###
++### END CUSTOMIZATION
++
++!!chain;
++!!quoted_literals_only;
++
+ #
+ #  Character Class Definitions.
+-#    The names are those from TR29.
+ #
+-$CR         = \u000d;
+-$LF         = \u000a;
+-$Control    = [[[:Zl:] [:Zp:] [:Cc:] [:Cf:]] - $TheZWSP];
+-$Extend     = [[:Grapheme_Extend = TRUE:]]; 
++$Han                = [:Han:];
++$CR                 = [\p{Word_Break = CR}];
++$LF                 = [\p{Word_Break = LF}];
++$Newline            = [\p{Word_Break = Newline}];
++$Extend             = [\p{Word_Break = Extend}-$Han];
++$ZWJ                = [\p{Word_Break = ZWJ}];
++$Regional_Indicator = [\p{Word_Break = Regional_Indicator}];
++$Format             = [\p{Word_Break = Format}];
++$Katakana           = [\p{Word_Break = Katakana}];
++$Hebrew_Letter      = [\p{Word_Break = Hebrew_Letter}];
++$ALetter            = [\p{Word_Break = ALetter}];
++$Single_Quote       = [\p{Word_Break = Single_Quote}];
++$Double_Quote       = [\p{Word_Break = Double_Quote}];
++$MidNumLet          = [\p{Word_Break = MidNumLet}];
++$MidNum             = [\p{Word_Break = MidNum}];
++$Numeric            = [\p{Word_Break = Numeric}];
++$ExtendNumLet       = [\p{Word_Break = ExtendNumLet}];
++$WSegSpace          = [\p{Word_Break = WSegSpace}];
++$Extended_Pict      = [\p{Extended_Pictographic}];
++### BEGIN CUSTOMIZATION
++### Unknown issue number: Dictionary words can contain hyphens
++### tdf#49885: Sync custom BreakIterator rules with ICU originals
++### - ICU is now more permissive about punctuation inside words.
++### - For compatibility, exclude certain characters that were previously excluded.
+-####################################################################################
+-#
+-#  Word Break Rules.    Definitions and Rules specific to word break begin Here. 
+-#
+-####################################################################################
++$IncludedML         = [:name = HYPHEN-MINUS:];
++$ExcludedML         = [[:name = COLON:]
++                       [:name = GREEK ANO TELEIA:]
++                       [:name = PRESENTATION FORM FOR VERTICAL COLON:]
++                       [:name = SMALL COLON:]
++                       [:name = FULLWIDTH COLON:]];
+-$Format    = [[:Cf:] - $TheZWSP];
++# $MidLetter          = [\p{Word_Break = MidLetter}];
++$MidLetter          = [[\p{Word_Break = MidLetter}]-$ExcludedML $IncludedML];
++### END CUSTOMIZATION
++$Hiragana           = [:Hiragana:];
++$Ideographic        = [\p{Ideographic}];
+-# Rule 3:  Treat a grapheme cluster as if it were a single character.
+-#          Hangul Syllables are easier to deal with here than they are in Grapheme Clusters
+-#          because we don't need to find the boundaries between adjacent syllables -
+-#          they won't be word boundaries.
+-#
++#   Dictionary character set, for triggering language-based break engines. Currently
++#   limited to LineBreak=Complex_Context. Note that this set only works in Unicode
++#   5.0 or later as the definition of Complex_Context was corrected to include all
++#   characters requiring dictionary break.
+-#
+-#  "Extended"  definitions.  Grapheme Cluster + Format Chars, treated like the base char.
+-#
+-$ALetterEx    = $ALetter   $Extend*; 
+-$NumericEx    = $Numeric   $Extend*;
+-$MidNumEx     = $MidNum    $Extend*;
+-$MidLetterEx  = $MidLetter $Extend*;
+-$SufixLetterEx= $SufixLetter $Extend*;
+-$KatakanaEx   = $Katakana  $Extend*;
+-$IdeographicEx= $Ideographic  $Extend*;
+-$HangulEx = $Hangul  $Extend*;
+-$FormatEx     = $Format    $Extend*;
++$Control        = [\p{Grapheme_Cluster_Break = Control}];
++$HangulSyllable = [\uac00-\ud7a3];
++$ComplexContext = [:LineBreak = Complex_Context:];
++$KanaKanji      = [$Han $Hiragana $Katakana];
++$dictionaryCJK  = [$KanaKanji $HangulSyllable];
++$dictionary     = [$ComplexContext $dictionaryCJK];
++# TODO: check if handling of katakana in dictionary makes rules incorrect/void
+-#
+-#  Numbers.  Rules 8, 11, 12 form the TR.
+-#
+-$NumberSequence = $NumericEx ($FormatEx* $MidNumEx? $FormatEx* $NumericEx)*;
+-$NumberSequence {100};
++# leave CJK scripts out of ALetterPlus
++$ALetterPlus  = [$ALetter-$dictionaryCJK [$ComplexContext-$Extend-$Control]];
+-#
+-#  Words.  Alpha-numerics.  Rule 5, 6, 7, 9, 10
+-#     - must include at least one letter. 
+-#     - may include both letters and numbers.
+-#     - may include  MideLetter, MidNumber punctuation.
+-#
+-$LetterSequence = $ALetterEx ($FormatEx* $MidLetterEx? $FormatEx* $ALetterEx)*;     # rules #6, #7
+-($NumberSequence $FormatEx*)? $LetterSequence ($FormatEx* ($NumberSequence | $LetterSequence))* $SufixLetterEx? {200};
+-[[:P:][:S:]]*;
++## -------------------------------------------------
++# Rule 3 - CR x LF
+ #
+-#  Do not break between Katakana.   Rule #13.
+-#
+-$KatakanaEx ($FormatEx* $KatakanaEx)* {300};
+-[:Hiragana:] $Extend* {300};
++$CR $LF;
++# Rule 3c   Do not break within emoji zwj sequences.
++#             ZWJ ×  \p{Extended_Pictographic}.  Precedes WB4, so no intervening Extend chars allowed.
+ #
+-#  Ideographic Characters.  Stand by themselves as words.
+-#                           Separated from the "Everything Else" rule, below, only so that they
+-#                           can be tagged with a return value.   TODO:  is this what we want?
+-#
+-$IdeographicEx ($FormatEx* $IdeographicEx)* {400};
+-$HangulEx ($FormatEx* $HangulEx)* {400};
++$ZWJ $Extended_Pict;
++# Rule 3d - Keep horizontal whitespace together.
+ #
+-#  Everything Else, with no tag.
+-#                   Non-Control chars combine with $Extend (combining) chars.
+-#                   Controls are do not.
+-#
+-[^$Control [:Ideographic:]] $Extend*;
+-$CR $LF;
++$WSegSpace $WSegSpace;
++
++# Rule 4 - ignore Format and Extend characters, except when they appear at the beginning
++#          of a region of Text.
++
++$ExFm  = [$Extend $Format $ZWJ];
++
++^$ExFm+;            # This rule fires only when there are format or extend characters at the
++                    # start of text, or immediately following another boundary. It groups them, in
++                    # the event there are more than one.
++
++[^$CR $LF $Newline $ExFm] $ExFm*;   # This rule rule attaches trailing format/extends to words,
++                                    # with no special rule status value.
++
++$Numeric $ExFm* {100};              # This group of rules also attach trailing format/extends, but
++$ALetterPlus $ExFm* {200};          # with rule status set based on the word's final base character.
++$HangulSyllable {200};
++$Hebrew_Letter $ExFm* {200};
++$Katakana $ExFm* {400};             # note:  these status values override those from rule 5
++$Hiragana $ExFm* {400};             #        by virtue of being numerically larger.
++$Ideographic $ExFm* {400};          #
+ #
+-#  Reverse Rules.   Back up over any of the chars that can group together.
+-#                   (Reverse rules do not need to be exact; they can back up  too far,
+-#                   but must back up at least enough, and must stop on a boundary.)
++# rule 5
++#    Do not break between most letters.
+ #
++($ALetterPlus | $Hebrew_Letter) $ExFm* ($ALetterPlus | $Hebrew_Letter);
++
++# rule 6 and 7
++($ALetterPlus | $Hebrew_Letter)  $ExFm* ($MidLetter | $MidNumLet | $Single_Quote) $ExFm* ($ALetterPlus | $Hebrew_Letter) {200};
++
++# rule 7a
++$Hebrew_Letter $ExFm* $Single_Quote {200};
++
++# rule 7b and 7c
++$Hebrew_Letter $ExFm* $Double_Quote $ExFm* $Hebrew_Letter;
++
++# rule 8
++
++$Numeric $ExFm* $Numeric;
++
++# rule 9
++
++($ALetterPlus | $Hebrew_Letter)  $ExFm* $Numeric;
++
++# rule 10
++
++$Numeric $ExFm* ($ALetterPlus | $Hebrew_Letter);
++
++# rule 11 and 12
++
++$Numeric $ExFm* ($MidNum | $MidNumLet | $Single_Quote) $ExFm* $Numeric;
++
++# rule 13
++# to be consistent with $KanaKanji $KanaKanhi, changed
++# from 300 to 400.
++# See also TestRuleStatus in intltest/rbbiapts.cpp
++$Katakana $ExFm*  $Katakana {400};
++
++# rule 13a/b
++
++$ALetterPlus   $ExFm* $ExtendNumLet {200};    #  (13a)
++$Hebrew_Letter $ExFm* $ExtendNumLet {200};    #  (13a)
++$Numeric       $ExFm* $ExtendNumLet {100};    #  (13a)
++$Katakana      $ExFm* $ExtendNumLet {400};    #  (13a)
++$ExtendNumLet  $ExFm* $ExtendNumLet {200};    #  (13a)
++
++$ExtendNumLet  $ExFm* $ALetterPlus  {200};    #  (13b)
++$ExtendNumLet  $ExFm* $Hebrew_Letter {200};    #  (13b)
++$ExtendNumLet  $ExFm* $Numeric      {100};    #  (13b)
++$ExtendNumLet  $ExFm* $Katakana     {400};    #  (13b)
+-# NonStarters are the set of all characters that can appear at the 2nd - nth position of
+-#    a word.   (They may also be the first.)   The reverse rule skips over these, until it
+-#    reaches something that can only be the start (and probably only) char in a "word".
+-#    A space or punctuation meets the test.
++# rules 15 - 17
++#    Pairs of Regional Indicators stay together.
++#    With incoming rule chaining disabled by ^, this rule will match exactly two of them.
++#    No other rule begins with a Regional_Indicator, so chaining cannot extend the match.
+ #
+-$NonStarters = [$Numeric $ALetter $Katakana $Ideographic $Hangul [:P:] [:S:] $MidLetter $MidNum $SufixLetter $Extend $Format];
++^$Regional_Indicator $ExFm* $Regional_Indicator;
+-#!.*;
+-! ($NonStarters* | \n \r) .;
++# special handling for CJK characters: chain for later dictionary segmentation
++$HangulSyllable $HangulSyllable {200};
++$KanaKanji $KanaKanji {400}; # different rule status if both kana and kanji found
++# Rule 999
++#     Match a single code point if no other rule applies.
++.;
+diff --git a/i18npool/source/breakiterator/data/dict_word_he.txt b/i18npool/source/breakiterator/data/dict_word_he.txt
+deleted file mode 100644
+index 40197d92a431..000000000000
+--- a/i18npool/source/breakiterator/data/dict_word_he.txt
++++ /dev/null
+@@ -1,139 +0,0 @@
+-#
+-#   Copyright (C) 2002-2003, International Business Machines Corporation and others.
+-#       All Rights Reserved.
+-#
+-#   file:  dict_word.txt   
+-#
+-#   ICU Word Break Rules
+-#      See Unicode Standard Annex #29.
+-#      These rules are based on Version 4.0.0, dated 2003-04-17
+-#
+-
+-
+-
+-####################################################################################
+-#
+-#  Character class definitions from TR 29
+-#
+-####################################################################################
+-$Katakana  = [[:Script = KATAKANA:] [:name = KATAKANA-HIRAGANA PROLONGED SOUND MARK:] 
+-                                   [:name = HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK:]
+-                                   [:name = HALFWIDTH KATAKANA VOICED SOUND MARK:]
+-                                   [:name = HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK:]];
+-
+-
+-$ALetter   = [[:Alphabetic:] [:name= COMMERCIAL AT:] [:name= HEBREW PUNCTUATION GERESH:]
+-                           - $Katakana
+-                           - [:Script = Thai:]
+-                           - [:Script = Lao:]
+-                           - [:Script = Hiragana:]];
+-                           
+-$MidLetter = [[:name = QUOTATION MARK:] [:name = APOSTROPHE:] [:name = GRAVE ACCENT:] \u0084 [:name = SOFT HYPHEN:] [:name = MIDDLE DOT:] [:name = GREEK TONOS:] [:name= FULL STOP:]
+-              [:name = HEBREW PUNCTUATION GERSHAYIM:] [:name = DOUBLE VERTICAL LINE:] [:name = LEFT SINGLE QUOTATION MARK:]
+-              [:name = RIGHT SINGLE QUOTATION MARK:] [:name = HYPHENATION POINT:] [:name = PRIME:] [:name = HYPHEN-MINUS:]];  
+-              
+-$SufixLetter = [:name= FULL STOP:];
+-
+-$MidNum    = [[:LineBreak = Infix_Numeric:] [:name= COMMERCIAL AT:] \u0084 [:name = GREEK TONOS:] [:name = ARABIC DECIMAL SEPARATOR:]
+-             [:name = LEFT SINGLE QUOTATION MARK:] [:name = RIGHT SINGLE QUOTATION MARK:] [:name = SINGLE HIGH-REVERSED-9 QUOTATION MARK:]
+-             [:name = PRIME:]];
+-$Numeric   = [:LineBreak = Numeric:];
+-
+-
+-$TheZWSP = \u200b;
+-
+-#
+-#  Character Class Definitions.
+-#    The names are those from TR29.
+-#
+-$CR         = \u000d;
+-$LF         = \u000a;
+-$Control    = [[[:Zl:] [:Zp:] [:Cc:] [:Cf:]] - $TheZWSP];
+-$Extend     = [[:Grapheme_Extend = TRUE:]]; 
+-
+-
+-
+-
+-####################################################################################
+-#
+-#  Word Break Rules.    Definitions and Rules specific to word break begin Here. 
+-#
+-####################################################################################
+-
+-$Format    = [[:Cf:] - $TheZWSP];
+-
+-
+-
+-# Rule 3:  Treat a grapheme cluster as if it were a single character.
+-#          Hangul Syllables are easier to deal with here than they are in Grapheme Clusters
+-#          because we don't need to find the boundaries between adjacent syllables -
+-#          they won't be word boundaries.
+-#
+-
+-
+-#
+-#  "Extended"  definitions.  Grapheme Cluster + Format Chars, treated like the base char.
+-#
+-$ALetterEx    = $ALetter   $Extend*; 
+-$NumericEx    = $Numeric   $Extend*;
+-$MidNumEx     = $MidNum    $Extend*;
+-$MidLetterEx  = $MidLetter $Extend*;
+-$SufixLetterEx= $SufixLetter $Extend*;
+-$KatakanaEx   = $Katakana  $Extend*;
+-$FormatEx     = $Format    $Extend*;
+-
+-
+-#
+-#  Numbers.  Rules 8, 11, 12 form the TR.
+-#
+-$NumberSequence = $NumericEx ($FormatEx* $MidNumEx? $FormatEx* $NumericEx)*;
+-$NumberSequence {100};
+-
+-#
+-#  Words.  Alpha-numerics.  Rule 5, 6, 7, 9, 10
+-#     - must include at least one letter. 
+-#     - may include both letters and numbers.
+-#     - may include  MideLetter, MidNumber punctuation.
+-#
+-$LetterSequence = $ALetterEx ($FormatEx* $MidLetterEx? $FormatEx* $ALetterEx)*;     # rules #6, #7
+-($NumberSequence $FormatEx*)? $LetterSequence ($FormatEx* ($NumberSequence | $LetterSequence))* $SufixLetterEx? {200};
+-
+-[[:P:][:S:]]*;
+-
+-#
+-#  Do not break between Katakana.   Rule #13.
+-#
+-$KatakanaEx ($FormatEx* $KatakanaEx)* {300};
+-[:Hiragana:] $Extend* {300};
+-
+-#
+-#  Ideographic Characters.  Stand by themselves as words.
+-#                           Separated from the "Everything Else" rule, below, only so that they
+-#                           can be tagged with a return value.   TODO:  is this what we want?
+-#
+-# [:IDEOGRAPHIC:] $Extend* {400};
+-
+-#
+-#  Everything Else, with no tag.
+-#                   Non-Control chars combine with $Extend (combining) chars.
+-#                   Controls are do not.
+-#
+-[^$Control [:Ideographic:]] $Extend*;
+-$CR $LF;
+-
+-#
+-#  Reverse Rules.   Back up over any of the chars that can group together.
+-#                   (Reverse rules do not need to be exact; they can back up  too far,
+-#                   but must back up at least enough, and must stop on a boundary.)
+-#
+-
+-# NonStarters are the set of all characters that can appear at the 2nd - nth position of
+-#    a word.   (They may also be the first.)   The reverse rule skips over these, until it
+-#    reaches something that can only be the start (and probably only) char in a "word".
+-#    A space or punctuation meets the test.
+-#
+-$NonStarters = [$Numeric $ALetter $Katakana [:P:] [:S:] $MidLetter $MidNum $SufixLetter $Extend $Format];
+-
+-#!.*;
+-! ($NonStarters* | \n \r) .;
+-
+diff --git a/i18npool/source/breakiterator/data/dict_word_hu.txt b/i18npool/source/breakiterator/data/dict_word_hu.txt
+index b0a0276b36a8..88648e6e5716 100644
+--- a/i18npool/source/breakiterator/data/dict_word_hu.txt
++++ b/i18npool/source/breakiterator/data/dict_word_hu.txt
+@@ -1,176 +1,222 @@
+ #
+-#   Copyright (C) 2002-2003, International Business Machines Corporation and others.
+-#       All Rights Reserved.
++# Copyright (C) 2016 and later: Unicode, Inc. and others.
++# License & terms of use: http://www.unicode.org/copyright.html
++# Copyright (C) 2002-2016, International Business Machines Corporation
++# and others. All Rights Reserved.
+ #
+-#   file:  dict_word.txt   
++# file:  word.txt
+ #
+-#   ICU Word Break Rules
++# ICU Word Break Rules
+ #      See Unicode Standard Annex #29.
+-#      These rules are based on Version 4.0.0, dated 2003-04-17
++#      These rules are based on UAX #29 Revision 34 for Unicode Version 12.0
+ #
++# Note:  Updates to word.txt will usually need to be merged into
++#        word_POSIX.txt also.
+-
+-
+-####################################################################################
++##############################################################################
+ #
+ #  Character class definitions from TR 29
+ #
+-####################################################################################
+-$Katakana  = [[:Script = KATAKANA:] [:name = KATAKANA-HIRAGANA PROLONGED SOUND MARK:] 
+-                                   [:name = HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK:]
+-                                   [:name = HALFWIDTH KATAKANA VOICED SOUND MARK:]
+-                                   [:name = HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK:]];
+-
+-$Ideographic = [:Ideographic:];
+-$Hangul = [:Script = HANGUL:];
+-
+-
+-# Fix spelling of a)-ban, b)-ben, when the letter is a reference
+-# resulting bad word breaking "ban" and "ben"
+-# (reference fields are not expanded in spell checking, yet, only
+-# for grammar checking).
+-
+-$PrefixLetter = [[:name = RIGHT PARENTHESIS:]];
+-
+-$ALetter   = [[:Alphabetic:] [:name= COMMERCIAL AT:] [:name= HEBREW PUNCTUATION GERESH:]
+-                [:name = PERCENT SIGN:] [:name = PER MILLE SIGN:] [:name = PER TEN THOUSAND SIGN:]
+-                [:name = SECTION SIGN:] [:name = DEGREE SIGN:] [:name = EURO SIGN:]
+-                [:name = HYPHEN-MINUS:] [:name = EN DASH:] [:name = EM DASH:]
+-                [:name = DIGIT ZERO:]
+-                [:name = DIGIT ONE:]
+-                [:name = DIGIT TWO:]
+-                [:name = DIGIT THREE:]
+-                [:name = DIGIT FOUR:]
+-                [:name = DIGIT FIVE:]
+-                [:name = DIGIT SIX:]
+-                [:name = DIGIT SEVEN:]
+-                [:name = DIGIT EIGHT:]
+-                [:name = DIGIT NINE:]
+-                           - $Ideographic
+-                           - $Katakana
+-                           - $Hangul
+-                           - [:Script = Thai:]
+-                           - [:Script = Lao:]
+-                           - [:Script = Hiragana:]];
+-                           
+-$MidLetter = [[:name = APOSTROPHE:] [:name = GRAVE ACCENT:] \u0084 [:name = SOFT HYPHEN:] [:name = MIDDLE DOT:] [:name = GREEK TONOS:]
+-              [:name = HEBREW PUNCTUATION GERSHAYIM:] [:name = DOUBLE VERTICAL LINE:] [:name = LEFT SINGLE QUOTATION MARK:]
+-              [:name = RIGHT SINGLE QUOTATION MARK:] [:name = HYPHENATION POINT:] [:name = PRIME:] [:name = HYPHEN-MINUS:]
+-              [:name = EURO SIGN:] [:name = PERCENT SIGN:] [:name = PER MILLE SIGN:] [:name = PER TEN THOUSAND SIGN:]
+-              [:name = EN DASH:] [:name = EM DASH:]
+-              [:name = RIGHT DOUBLE QUOTATION MARK:]
+-              [:name = LEFT PARENTHESIS:]
+-              [:name = RIGHT PARENTHESIS:]
+-              [:name = RIGHT SQUARE BRACKET:]
+-              [:name = EXCLAMATION MARK:]
+-              [:name = QUESTION MARK:]
+-              [:name = FULL STOP:] [:name = PERCENT SIGN:] [:name = SECTION SIGN:] [:name = DEGREE SIGN:]];  
+-              
+-$SufixLetter = [:name= FULL STOP:];
+-
+-$MidNum    = [[:LineBreak = Infix_Numeric:] [:name= COMMERCIAL AT:] \u0084 [:name = GREEK TONOS:] [:name = ARABIC DECIMAL SEPARATOR:]
+-             [:name = LEFT SINGLE QUOTATION MARK:] [:name = RIGHT SINGLE QUOTATION MARK:] [:name = SINGLE HIGH-REVERSED-9 QUOTATION MARK:]
+-             [:name = PRIME:]];
+-$Numeric   = [:LineBreak = Numeric:];
+-
+-
+-$TheZWSP = \u200b;
++##############################################################################
++
++### BEGIN CUSTOMIZATION
++### This file contains LibreOffice-specific rule customizations.
++###
++### To aid future maintainability:
++### - The change location should be bracketed by comments of this form.
++### - The original rule should be commented out, and the modified rule placed alongside.
++### - By doing this, maintainers can more easily compare to an upstream baseline.
++###
++### END CUSTOMIZATION
++
++!!chain;
++!!quoted_literals_only;
++
+ #
+ #  Character Class Definitions.
+-#    The names are those from TR29.
+ #
+-$CR         = \u000d;
+-$LF         = \u000a;
+-$Control    = [[[:Zl:] [:Zp:] [:Cc:] [:Cf:]] - $TheZWSP];
+-$Extend     = [[:Grapheme_Extend = TRUE:]]; 
+-
+-
++$Han                = [:Han:];
++
++$CR                 = [\p{Word_Break = CR}];
++$LF                 = [\p{Word_Break = LF}];
++$Newline            = [\p{Word_Break = Newline}];
++$Extend             = [\p{Word_Break = Extend}-$Han];
++$ZWJ                = [\p{Word_Break = ZWJ}];
++$Regional_Indicator = [\p{Word_Break = Regional_Indicator}];
++$Format             = [\p{Word_Break = Format}];
++$Katakana           = [\p{Word_Break = Katakana}];
++$Hebrew_Letter      = [\p{Word_Break = Hebrew_Letter}];
++$Single_Quote       = [\p{Word_Break = Single_Quote}];
++$Double_Quote       = [\p{Word_Break = Double_Quote}];
++$MidNumLet          = [\p{Word_Break = MidNumLet}];
++$MidNum             = [\p{Word_Break = MidNum}];
++$Numeric            = [\p{Word_Break = Numeric}];
++$ExtendNumLet       = [\p{Word_Break = ExtendNumLet}];
++$WSegSpace          = [\p{Word_Break = WSegSpace}];
++$Extended_Pict      = [\p{Extended_Pictographic}];
++
++### BEGIN CUSTOMIZATION
++### Unknown issue number: Dictionary words can contain hyphens
++### tdf#49885: Sync custom BreakIterator rules with ICU originals
++### - ICU is now more permissive about punctuation inside words.
++### - For compatibility, exclude certain characters that were previously excluded.
++### tdf#116072: Extend MidLetter in Hungarian word breaking
++### i#56347: BreakIterator patch for Hungarian
++### i#56348: Special chars in first pos not handled by spell checking for Hungarian
++
++$Symbols_hu         = [[:name = PERCENT SIGN:]
++                       [:name = PER MILLE SIGN:]
++                       [:name = PER TEN THOUSAND SIGN:]
++                       [:name = SECTION SIGN:]
++                       [:name = DEGREE SIGN:]
++                       [:name = EURO SIGN:]
++                       [:name = HYPHEN-MINUS:]
++                       [:name = EN DASH:]
++                       [:name = EM DASH:]];
++
++#$ALetter            = [\p{Word_Break = ALetter}];
++$ALetter            = [\p{Word_Break = ALetter} $Symbols_hu];
++
++$IncludedML         = [:name = HYPHEN-MINUS:];
++$ExcludedML         = [[:name = COLON:]
++                       [:name = GREEK ANO TELEIA:]
++                       [:name = PRESENTATION FORM FOR VERTICAL COLON:]
++                       [:name = SMALL COLON:]
++                       [:name = FULLWIDTH COLON:]];
++
++$IncludedML_hu      = [[:name = RIGHT DOUBLE QUOTATION MARK:]
++                       [:name = LEFT PARENTHESIS:]
++                       [:name = RIGHT PARENTHESIS:]
++                       [:name = RIGHT SQUARE BRACKET:]
++                       [:name = EXCLAMATION MARK:]
++                       [:name = QUESTION MARK:]
++                       $Symbols_hu];
++
++# $MidLetter          = [\p{Word_Break = MidLetter}];
++$MidLetter          = [[\p{Word_Break = MidLetter}]-$ExcludedML $IncludedML $IncludedML_hu];
++
++### END CUSTOMIZATION
++
++$Hiragana           = [:Hiragana:];
++$Ideographic        = [\p{Ideographic}];
++
++
++#   Dictionary character set, for triggering language-based break engines. Currently
++#   limited to LineBreak=Complex_Context. Note that this set only works in Unicode
++#   5.0 or later as the definition of Complex_Context was corrected to include all
++#   characters requiring dictionary break.
++
++$Control        = [\p{Grapheme_Cluster_Break = Control}];
++$HangulSyllable = [\uac00-\ud7a3];
++$ComplexContext = [:LineBreak = Complex_Context:];
++$KanaKanji      = [$Han $Hiragana $Katakana];
++$dictionaryCJK  = [$KanaKanji $HangulSyllable];
++$dictionary     = [$ComplexContext $dictionaryCJK];
++
++# TODO: check if handling of katakana in dictionary makes rules incorrect/void
++
++# leave CJK scripts out of ALetterPlus
++$ALetterPlus  = [$ALetter-$dictionaryCJK [$ComplexContext-$Extend-$Control]];
++
++
++## -------------------------------------------------
++
++# Rule 3 - CR x LF
++#
++$CR $LF;
+-####################################################################################
++# Rule 3c   Do not break within emoji zwj sequences.
++#             ZWJ ×  \p{Extended_Pictographic}.  Precedes WB4, so no intervening Extend chars allowed.
+ #
+-#  Word Break Rules.    Definitions and Rules specific to word break begin Here. 
++$ZWJ $Extended_Pict;
++
++# Rule 3d - Keep horizontal whitespace together.
+ #
+-####################################################################################
++$WSegSpace $WSegSpace;
+-$Format    = [[:Cf:] - $TheZWSP];
++# Rule 4 - ignore Format and Extend characters, except when they appear at the beginning
++#          of a region of Text.
++$ExFm  = [$Extend $Format $ZWJ];
++^$ExFm+;            # This rule fires only when there are format or extend characters at the
++                    # start of text, or immediately following another boundary. It groups them, in
++                    # the event there are more than one.
+-# Rule 3:  Treat a grapheme cluster as if it were a single character.
+-#          Hangul Syllables are easier to deal with here than they are in Grapheme Clusters
+-#          because we don't need to find the boundaries between adjacent syllables -
+-#          they won't be word boundaries.
+-#
++[^$CR $LF $Newline $ExFm] $ExFm*;   # This rule rule attaches trailing format/extends to words,
++                                    # with no special rule status value.
++$Numeric $ExFm* {100};              # This group of rules also attach trailing format/extends, but
++$ALetterPlus $ExFm* {200};          # with rule status set based on the word's final base character.
++$HangulSyllable {200};
++$Hebrew_Letter $ExFm* {200};
++$Katakana $ExFm* {400};             # note:  these status values override those from rule 5
++$Hiragana $ExFm* {400};             #        by virtue of being numerically larger.
++$Ideographic $ExFm* {400};          #
+ #
+-#  "Extended"  definitions.  Grapheme Cluster + Format Chars, treated like the base char.
++# rule 5
++#    Do not break between most letters.
+ #
+-$ALetterEx    = $ALetter   $Extend*; 
+-$NumericEx    = $Numeric   $Extend*;
+-$MidNumEx     = $MidNum    $Extend*;
+-$MidLetterEx  = $MidLetter $Extend*;
+-$SufixLetterEx= $SufixLetter $Extend*;
+-$KatakanaEx   = $Katakana  $Extend*;
+-$IdeographicEx= $Ideographic  $Extend*;
+-$HangulEx = $Hangul  $Extend*;
+-$FormatEx     = $Format    $Extend*;
++($ALetterPlus | $Hebrew_Letter) $ExFm* ($ALetterPlus | $Hebrew_Letter);
++# rule 6 and 7
++($ALetterPlus | $Hebrew_Letter)  $ExFm* ($MidLetter | $MidNumLet | $Single_Quote) $ExFm* ($ALetterPlus | $Hebrew_Letter) {200};
+-#
+-#  Numbers.  Rules 8, 11, 12 form the TR.
+-#
+-$NumberSequence = $NumericEx ($FormatEx* $MidNumEx? $FormatEx* $NumericEx)*;
+-$NumberSequence {100};
++# rule 7a
++$Hebrew_Letter $ExFm* $Single_Quote {200};
+-#
+-#  Words.  Alpha-numerics.  Rule 5, 6, 7, 9, 10
+-#     - must include at least one letter. 
+-#     - may include both letters and numbers.
+-#     - may include  MideLetter, MidNumber punctuation.
+-#
+-$LetterSequence = $PrefixLetter? $ALetterEx ($FormatEx* $MidLetterEx? $FormatEx* $ALetterEx)*;     # rules #6, #7
+-($NumberSequence $FormatEx*)? $LetterSequence ($FormatEx* ($NumberSequence | $LetterSequence))* $SufixLetterEx? {200};
++# rule 7b and 7c
++$Hebrew_Letter $ExFm* $Double_Quote $ExFm* $Hebrew_Letter;
+-[[:P:][:S:]]*;
++# rule 8
+-#
+-#  Do not break between Katakana.   Rule #13.
+-#
+-$KatakanaEx ($FormatEx* $KatakanaEx)* {300};
+-[:Hiragana:] $Extend* {300};
++$Numeric $ExFm* $Numeric;
+-#
+-#  Ideographic Characters.  Stand by themselves as words.
+-#                           Separated from the "Everything Else" rule, below, only so that they
+-#                           can be tagged with a return value.   TODO:  is this what we want?
+-#
+-$IdeographicEx ($FormatEx* $IdeographicEx)* {400};
+-$HangulEx ($FormatEx* $HangulEx)* {400};
++# rule 9
+-#
+-#  Everything Else, with no tag.
+-#                   Non-Control chars combine with $Extend (combining) chars.
+-#                   Controls are do not.
+-#
+-[^$Control [:Ideographic:]] $Extend*;
+-$CR $LF;
++($ALetterPlus | $Hebrew_Letter)  $ExFm* $Numeric;
+-#
+-#  Reverse Rules.   Back up over any of the chars that can group together.
+-#                   (Reverse rules do not need to be exact; they can back up  too far,
+-#                   but must back up at least enough, and must stop on a boundary.)
+-#
++# rule 10
++
++$Numeric $ExFm* ($ALetterPlus | $Hebrew_Letter);
++
++# rule 11 and 12
++
++$Numeric $ExFm* ($MidNum | $MidNumLet | $Single_Quote) $ExFm* $Numeric;
++
++# rule 13
++# to be consistent with $KanaKanji $KanaKanhi, changed
++# from 300 to 400.
++# See also TestRuleStatus in intltest/rbbiapts.cpp
++$Katakana $ExFm*  $Katakana {400};
++
++# rule 13a/b
++
++$ALetterPlus   $ExFm* $ExtendNumLet {200};    #  (13a)
++$Hebrew_Letter $ExFm* $ExtendNumLet {200};    #  (13a)
++$Numeric       $ExFm* $ExtendNumLet {100};    #  (13a)
++$Katakana      $ExFm* $ExtendNumLet {400};    #  (13a)
++$ExtendNumLet  $ExFm* $ExtendNumLet {200};    #  (13a)
++
++$ExtendNumLet  $ExFm* $ALetterPlus  {200};    #  (13b)
++$ExtendNumLet  $ExFm* $Hebrew_Letter {200};    #  (13b)
++$ExtendNumLet  $ExFm* $Numeric      {100};    #  (13b)
++$ExtendNumLet  $ExFm* $Katakana     {400};    #  (13b)
+-# NonStarters are the set of all characters that can appear at the 2nd - nth position of
+-#    a word.   (They may also be the first.)   The reverse rule skips over these, until it
+-#    reaches something that can only be the start (and probably only) char in a "word".
+-#    A space or punctuation meets the test.
++# rules 15 - 17
++#    Pairs of Regional Indicators stay together.
++#    With incoming rule chaining disabled by ^, this rule will match exactly two of them.
++#    No other rule begins with a Regional_Indicator, so chaining cannot extend the match.
+ #
+-$NonStarters = [$Numeric $ALetter $Katakana $Ideographic $Hangul [:P:] [:S:] $MidLetter $MidNum $SufixLetter $Extend $Format];
++^$Regional_Indicator $ExFm* $Regional_Indicator;
+-#!.*;
+-! ($NonStarters* | \n \r) .;
++# special handling for CJK characters: chain for later dictionary segmentation
++$HangulSyllable $HangulSyllable {200};
++$KanaKanji $KanaKanji {400}; # different rule status if both kana and kanji found
++# Rule 999
++#     Match a single code point if no other rule applies.
++.;
+diff --git a/i18npool/source/breakiterator/data/dict_word_nodash.txt b/i18npool/source/breakiterator/data/dict_word_nodash.txt
+deleted file mode 100644
+index 279cc50e5b66..000000000000
+--- a/i18npool/source/breakiterator/data/dict_word_nodash.txt
++++ /dev/null
+@@ -1,147 +0,0 @@
+-#
+-#   Copyright (C) 2002-2003, International Business Machines Corporation and others.
+-#       All Rights Reserved.
+-#
+-#   file:  dict_word.txt   
+-#
+-#   ICU Word Break Rules
+-#      See Unicode Standard Annex #29.
+-#      These rules are based on Version 4.0.0, dated 2003-04-17
+-#
+-
+-
+-
+-####################################################################################
+-#
+-#  Character class definitions from TR 29
+-#
+-####################################################################################
+-$Katakana  = [[:Script = KATAKANA:] [:name = KATAKANA-HIRAGANA PROLONGED SOUND MARK:] 
+-                                   [:name = HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK:]
+-                                   [:name = HALFWIDTH KATAKANA VOICED SOUND MARK:]
+-                                   [:name = HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK:]];
+-
+-$Ideographic = [:Ideographic:];
+-$Hangul = [:Script = HANGUL:];
+-
+-$ALetter   = [[:Alphabetic:] [:name= COMMERCIAL AT:] [:name= HEBREW PUNCTUATION GERESH:]
+-                           - $Ideographic
+-                           - $Katakana
+-                           - $Hangul
+-                           - [:Script = Thai:]
+-                           - [:Script = Lao:]
+-                           - [:Script = Hiragana:]];
+-                           
+-$MidLetter = [[:name = APOSTROPHE:] [:name = GRAVE ACCENT:] \u0084 [:name = SOFT HYPHEN:] [:name = MIDDLE DOT:] [:name = GREEK TONOS:] [:name= FULL STOP:] 
+-              [:name = HEBREW PUNCTUATION GERSHAYIM:] [:name = DOUBLE VERTICAL LINE:] [:name = LEFT SINGLE QUOTATION MARK:]
+-              [:name = RIGHT SINGLE QUOTATION MARK:] [:name = HYPHENATION POINT:] [:name = PRIME:] ];  
+-
+-$SufixLetter = [:name= FULL STOP:];
+-              
+-
+-$MidNum    = [[:LineBreak = Infix_Numeric:] [:name= COMMERCIAL AT:] \u0084 [:name = GREEK TONOS:] [:name = ARABIC DECIMAL SEPARATOR:]
+-             [:name = LEFT SINGLE QUOTATION MARK:] [:name = RIGHT SINGLE QUOTATION MARK:] [:name = SINGLE HIGH-REVERSED-9 QUOTATION MARK:]
+-             [:name = PRIME:]];
+-$Numeric   = [:LineBreak = Numeric:];
+-
+-
+-$TheZWSP = \u200b;
+-
+-#
+-#  Character Class Definitions.
+-#    The names are those from TR29.
+-#
+-$CR         = \u000d;
+-$LF         = \u000a;
+-$Control    = [[[:Zl:] [:Zp:] [:Cc:] [:Cf:]] - $TheZWSP];
+-$Extend     = [[:Grapheme_Extend = TRUE:]]; 
+-
+-
+-
+-
+-####################################################################################
+-#
+-#  Word Break Rules.    Definitions and Rules specific to word break begin Here. 
+-#
+-####################################################################################
+-
+-$Format    = [[:Cf:] - $TheZWSP];
+-
+-
+-
+-# Rule 3:  Treat a grapheme cluster as if it were a single character.
+-#          Hangul Syllables are easier to deal with here than they are in Grapheme Clusters
+-#          because we don't need to find the boundaries between adjacent syllables -
+-#          they won't be word boundaries.
+-#
+-
+-
+-#
+-#  "Extended"  definitions.  Grapheme Cluster + Format Chars, treated like the base char.
+-#
+-$ALetterEx    = $ALetter   $Extend*; 
+-$NumericEx    = $Numeric   $Extend*;
+-$MidNumEx     = $MidNum    $Extend*;
+-$MidLetterEx  = $MidLetter $Extend*;
+-$SufixLetterEx= $SufixLetter $Extend*;
+-$KatakanaEx   = $Katakana  $Extend*;
+-$IdeographicEx= $Ideographic  $Extend*;
+-$HangulEx = $Hangul  $Extend*;
+-$FormatEx     = $Format    $Extend*;
+-
+-
+-#
+-#  Numbers.  Rules 8, 11, 12 form the TR.
+-#
+-$NumberSequence = $NumericEx ($FormatEx* $MidNumEx? $FormatEx* $NumericEx)*;
+-$NumberSequence {100};
+-
+-#
+-#  Words.  Alpha-numerics.  Rule 5, 6, 7, 9, 10
+-#     - must include at least one letter. 
+-#     - may include both letters and numbers.
+-#     - may include  MideLetter, MidNumber punctuation.
+-#
+-$LetterSequence = $ALetterEx ($FormatEx* $MidLetterEx? $FormatEx* $ALetterEx)*;     # rules #6, #7
+-($NumberSequence $FormatEx*)? $LetterSequence ($FormatEx* ($NumberSequence | $LetterSequence))* $SufixLetterEx? {200};
+-
+-[[:P:][:S:]]*;
+-
+-#
+-#  Do not break between Katakana.   Rule #13.
+-#
+-$KatakanaEx ($FormatEx* $KatakanaEx)* {300};
+-[:Hiragana:] $Extend* {300};
+-
+-#
+-#  Ideographic Characters.  Stand by themselves as words.
+-#                           Separated from the "Everything Else" rule, below, only so that they
+-#                           can be tagged with a return value.   TODO:  is this what we want?
+-#
+-$IdeographicEx ($FormatEx* $IdeographicEx)* {400};
+-$HangulEx ($FormatEx* $HangulEx)* {400};
+-
+-#
+-#  Everything Else, with no tag.
+-#                   Non-Control chars combine with $Extend (combining) chars.
+-#                   Controls are do not.
+-#
+-[^$Control [:Ideographic:]] $Extend*;
+-$CR $LF;
+-
+-#
+-#  Reverse Rules.   Back up over any of the chars that can group together.
+-#                   (Reverse rules do not need to be exact; they can back up  too far,
+-#                   but must back up at least enough, and must stop on a boundary.)
+-#
+-
+-# NonStarters are the set of all characters that can appear at the 2nd - nth position of
+-#    a word.   (They may also be the first.)   The reverse rule skips over these, until it
+-#    reaches something that can only be the start (and probably only) char in a "word".
+-#    A space or punctuation meets the test.
+-#
+-$NonStarters = [$Numeric $ALetter $Katakana $Ideographic $Hangul [:P:] [:S:] $MidLetter $MidNum $SufixLetter $Extend $Format];
+-
+-#!.*;
+-! ($NonStarters* | \n \r) .;
+-
+diff --git a/i18npool/source/breakiterator/data/dict_word_prepostdash.txt b/i18npool/source/breakiterator/data/dict_word_prepostdash.txt
+index fb29b478af21..b39503d1b405 100644
+--- a/i18npool/source/breakiterator/data/dict_word_prepostdash.txt
++++ b/i18npool/source/breakiterator/data/dict_word_prepostdash.txt
+@@ -1,157 +1,221 @@
+ #
+-#   Copyright (C) 2002-2003, International Business Machines Corporation and others.
+-#       All Rights Reserved.
++# Copyright (C) 2016 and later: Unicode, Inc. and others.
++# License & terms of use: http://www.unicode.org/copyright.html
++# Copyright (C) 2002-2016, International Business Machines Corporation
++# and others. All Rights Reserved.
+ #
+-#   file:  dict_word.txt   
++# file:  word.txt
+ #
+-#   ICU Word Break Rules
++# ICU Word Break Rules
+ #      See Unicode Standard Annex #29.
+-#      These rules are based on Version 4.0.0, dated 2003-04-17
++#      These rules are based on UAX #29 Revision 34 for Unicode Version 12.0
+ #
++# Note:  Updates to word.txt will usually need to be merged into
++#        word_POSIX.txt also.
+-
+-
+-####################################################################################
++##############################################################################
+ #
+ #  Character class definitions from TR 29
+ #
+-####################################################################################
+-$Katakana  = [[:Script = KATAKANA:] [:name = KATAKANA-HIRAGANA PROLONGED SOUND MARK:] 
+-                                   [:name = HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK:]
+-                                   [:name = HALFWIDTH KATAKANA VOICED SOUND MARK:]
+-                                   [:name = HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK:]];
++##############################################################################
+-$Ideographic = [:Ideographic:];
+-$Hangul = [:Script = HANGUL:];
++### BEGIN CUSTOMIZATION
++### This file contains LibreOffice-specific rule customizations.
++###
++### To aid future maintainability:
++### - The change location should be bracketed by comments of this form.
++### - The original rule should be commented out, and the modified rule placed alongside.
++### - By doing this, maintainers can more easily compare to an upstream baseline.
++###
++### END CUSTOMIZATION
+-# list of dashes or hyphens that should be accepted as part of the word if a single one of these
+-# pre- or postfixes a word. E.g. in German: "Arbeits-" or "-nehmer" where that hyphen needs to
+-# be part of the word in order to have it properly spell checked etc.
+-$PrePostDashHyphen = [ [:name = HYPHEN-MINUS:] ];
++!!chain;
++!!quoted_literals_only;
+-$ALetter   = [[:Alphabetic:] [:name= COMMERCIAL AT:] [:name= HEBREW PUNCTUATION GERESH:]
+-                           - $Ideographic
+-                           - $Katakana
+-                           - $Hangul
+-                           - [:Script = Thai:]
+-                           - [:Script = Lao:]
+-                           - [:Script = Hiragana:]];
+-                           
+-$MidLetter = [[:name = APOSTROPHE:] [:name = GRAVE ACCENT:] \u0084 [:name = SOFT HYPHEN:] [:name = MIDDLE DOT:] [:name = GREEK TONOS:] [:name= FULL STOP:] 
+-              [:name = HEBREW PUNCTUATION GERSHAYIM:] [:name = DOUBLE VERTICAL LINE:] [:name = LEFT SINGLE QUOTATION MARK:]
+-              [:name = RIGHT SINGLE QUOTATION MARK:] [:name = HYPHENATION POINT:] [:name = PRIME:] 
+-              [:name = HYPHEN-MINUS:] ];
++#
++#  Character Class Definitions.
++#
+-$SufixLetter = [:name= FULL STOP:];
+-              
++$Han                = [:Han:];
+-$MidNum    = [[:LineBreak = Infix_Numeric:] [:name= COMMERCIAL AT:] \u0084 [:name = GREEK TONOS:] [:name = ARABIC DECIMAL SEPARATOR:]
+-             [:name = LEFT SINGLE QUOTATION MARK:] [:name = RIGHT SINGLE QUOTATION MARK:] [:name = SINGLE HIGH-REVERSED-9 QUOTATION MARK:]
+-             [:name = PRIME:]];
+-$Numeric   = [:LineBreak = Numeric:];
++$CR                 = [\p{Word_Break = CR}];
++$LF                 = [\p{Word_Break = LF}];
++$Newline            = [\p{Word_Break = Newline}];
++$Extend             = [\p{Word_Break = Extend}-$Han];
++$ZWJ                = [\p{Word_Break = ZWJ}];
++$Regional_Indicator = [\p{Word_Break = Regional_Indicator}];
++$Format             = [\p{Word_Break = Format}];
++$Katakana           = [\p{Word_Break = Katakana}];
++$Hebrew_Letter      = [\p{Word_Break = Hebrew_Letter}];
++$ALetter            = [\p{Word_Break = ALetter}];
++$Single_Quote       = [\p{Word_Break = Single_Quote}];
++$Double_Quote       = [\p{Word_Break = Double_Quote}];
++$MidNumLet          = [\p{Word_Break = MidNumLet}];
++$MidNum             = [\p{Word_Break = MidNum}];
++$Numeric            = [\p{Word_Break = Numeric}];
++$ExtendNumLet       = [\p{Word_Break = ExtendNumLet}];
++$WSegSpace          = [\p{Word_Break = WSegSpace}];
++$Extended_Pict      = [\p{Extended_Pictographic}];
++### BEGIN CUSTOMIZATION
++### Unknown issue number: Dictionary words can contain hyphens
++### tdf#49885: Sync custom BreakIterator rules with ICU originals
++### - ICU is now more permissive about punctuation inside words.
++### - For compatibility, exclude certain characters that were previously excluded.
+-$TheZWSP = \u200b;
++$IncludedML         = [:name = HYPHEN-MINUS:];
++$ExcludedML         = [[:name = COLON:]
++                       [:name = GREEK ANO TELEIA:]
++                       [:name = PRESENTATION FORM FOR VERTICAL COLON:]
++                       [:name = SMALL COLON:]
++                       [:name = FULLWIDTH COLON:]];
+-#
+-#  Character Class Definitions.
+-#    The names are those from TR29.
+-#
+-$CR         = \u000d;
+-$LF         = \u000a;
+-$Control    = [[[:Zl:] [:Zp:] [:Cc:] [:Cf:]] - $TheZWSP];
+-$Extend     = [[:Grapheme_Extend = TRUE:]]; 
++# $MidLetter          = [\p{Word_Break = MidLetter}];
++$MidLetter          = [[\p{Word_Break = MidLetter}]-$ExcludedML $IncludedML];
++### END CUSTOMIZATION
++### BEGIN CUSTOMIZATION
++### Unknown issue number: Allow leading and trailing hyphens in certain languages
++### This part of the customization does not replace any rules.
++$PrePostHyphen      = [:name = HYPHEN-MINUS:];
+-####################################################################################
+-#
+-#  Word Break Rules.    Definitions and Rules specific to word break begin Here. 
+-#
+-####################################################################################
++### END CUSTOMIZATION
+-$Format    = [[:Cf:] - $TheZWSP];
++$Hiragana           = [:Hiragana:];
++$Ideographic        = [\p{Ideographic}];
++#   Dictionary character set, for triggering language-based break engines. Currently
++#   limited to LineBreak=Complex_Context. Note that this set only works in Unicode
++#   5.0 or later as the definition of Complex_Context was corrected to include all
++#   characters requiring dictionary break.
+-# Rule 3:  Treat a grapheme cluster as if it were a single character.
+-#          Hangul Syllables are easier to deal with here than they are in Grapheme Clusters
+-#          because we don't need to find the boundaries between adjacent syllables -
+-#          they won't be word boundaries.
+-#
++$Control        = [\p{Grapheme_Cluster_Break = Control}];
++$HangulSyllable = [\uac00-\ud7a3];
++$ComplexContext = [:LineBreak = Complex_Context:];
++$KanaKanji      = [$Han $Hiragana $Katakana];
++$dictionaryCJK  = [$KanaKanji $HangulSyllable];
++$dictionary     = [$ComplexContext $dictionaryCJK];
++# TODO: check if handling of katakana in dictionary makes rules incorrect/void
+-#
+-#  "Extended"  definitions.  Grapheme Cluster + Format Chars, treated like the base char.
+-#
+-$ALetterEx    = $ALetter   $Extend*; 
+-$NumericEx    = $Numeric   $Extend*;
+-$MidNumEx     = $MidNum    $Extend*;
+-$MidLetterEx  = $MidLetter $Extend*;
+-$SufixLetterEx= $SufixLetter $Extend*;
+-$KatakanaEx   = $Katakana  $Extend*;
+-$IdeographicEx= $Ideographic  $Extend*;
+-$HangulEx = $Hangul  $Extend*;
+-$FormatEx     = $Format    $Extend*;
++# leave CJK scripts out of ALetterPlus
++$ALetterPlus  = [$ALetter-$dictionaryCJK [$ComplexContext-$Extend-$Control]];
++## -------------------------------------------------
++
++# Rule 3 - CR x LF
+ #
+-#  Numbers.  Rules 8, 11, 12 form the TR.
+-#
+-$NumberSequence = $NumericEx ($FormatEx* $MidNumEx? $FormatEx* $NumericEx)*;
+-$NumberSequence {100};
++$CR $LF;
++# Rule 3c   Do not break within emoji zwj sequences.
++#             ZWJ ×  \p{Extended_Pictographic}.  Precedes WB4, so no intervening Extend chars allowed.
+ #
+-#  Words.  Alpha-numerics.  Rule 5, 6, 7, 9, 10
+-#     - must include at least one letter. 
+-#     - may include both letters and numbers.
+-#     - may include  MideLetter, MidNumber punctuation.
++$ZWJ $Extended_Pict;
++
++# Rule 3d - Keep horizontal whitespace together.
+ #
+-# At most one leading or trailing dash/hyphen should be accepted as well.
+-# E.g. in German: "Arbeits-" or "-nehmer" where that hyphen needs to
+-# be part of the word in order to have it properly spell checked etc.
+-$LetterSequence = $PrePostDashHyphen? $ALetterEx ($FormatEx* $MidLetterEx? $FormatEx* $ALetterEx)* $PrePostDashHyphen?;     # rules #6, #7
+-($NumberSequence $FormatEx*)? $LetterSequence ($FormatEx* ($NumberSequence | $LetterSequence))* $SufixLetterEx? {200};
++$WSegSpace $WSegSpace;
+-[[:P:][:S:]]*;
++# Rule 4 - ignore Format and Extend characters, except when they appear at the beginning
++#          of a region of Text.
+-#
+-#  Do not break between Katakana.   Rule #13.
+-#
+-$KatakanaEx ($FormatEx* $KatakanaEx)* {300};
+-[:Hiragana:] $Extend* {300};
++$ExFm  = [$Extend $Format $ZWJ];
+-#
+-#  Ideographic Characters.  Stand by themselves as words.
+-#                           Separated from the "Everything Else" rule, below, only so that they
+-#                           can be tagged with a return value.   TODO:  is this what we want?
+-#
+-$IdeographicEx ($FormatEx* $IdeographicEx)* {400};
+-$HangulEx ($FormatEx* $HangulEx)* {400};
++^$ExFm+;            # This rule fires only when there are format or extend characters at the
++                    # start of text, or immediately following another boundary. It groups them, in
++                    # the event there are more than one.
+-#
+-#  Everything Else, with no tag.
+-#                   Non-Control chars combine with $Extend (combining) chars.
+-#                   Controls are do not.
+-#
+-[^$Control [:Ideographic:]] $Extend*;
+-$CR $LF;
++[^$CR $LF $Newline $ExFm] $ExFm*;   # This rule rule attaches trailing format/extends to words,
++                                    # with no special rule status value.
++
++$Numeric $ExFm* {100};              # This group of rules also attach trailing format/extends, but
++$ALetterPlus $ExFm* {200};          # with rule status set based on the word's final base character.
++$HangulSyllable {200};
++$Hebrew_Letter $ExFm* {200};
++$Katakana $ExFm* {400};             # note:  these status values override those from rule 5
++$Hiragana $ExFm* {400};             #        by virtue of being numerically larger.
++$Ideographic $ExFm* {400};          #
+ #
+-#  Reverse Rules.   Back up over any of the chars that can group together.
+-#                   (Reverse rules do not need to be exact; they can back up  too far,
+-#                   but must back up at least enough, and must stop on a boundary.)
++# rule 5
++#    Do not break between most letters.
+ #
+-# NonStarters are the set of all characters that can appear at the 2nd - nth position of
+-#    a word.   (They may also be the first.)   The reverse rule skips over these, until it
+-#    reaches something that can only be the start (and probably only) char in a "word".
+-#    A space or punctuation meets the test.
++### BEGIN CUSTOMIZATION
++### Unknown issue number: Allow leading and trailing hyphens in certain languages
++
++# ($ALetterPlus | $Hebrew_Letter) $ExFm* ($ALetterPlus | $Hebrew_Letter);
++($PrePostHyphen) ? ($ALetterPlus | $Hebrew_Letter) $ExFm* ($ALetterPlus | $Hebrew_Letter) ($PrePostHyphen)?;
++
++### END CUSTOMIZATION
++
++# rule 6 and 7
++
++### BEGIN CUSTOMIZATION
++### Unknown issue number: Allow leading and trailing hyphens in certain languages
++
++# ($ALetterPlus | $Hebrew_Letter)  $ExFm* ($MidLetter | $MidNumLet | $Single_Quote) $ExFm* ($ALetterPlus | $Hebrew_Letter) {200};
++($PrePostHyphen)? ($ALetterPlus | $Hebrew_Letter)  $ExFm* ($MidLetter | $MidNumLet | $Single_Quote) $ExFm* ($ALetterPlus | $Hebrew_Letter) ($PrePostHyphen)? {200};
++
++### END CUSTOMIZATION
++
++# rule 7a
++$Hebrew_Letter $ExFm* $Single_Quote {200};
++
++# rule 7b and 7c
++$Hebrew_Letter $ExFm* $Double_Quote $ExFm* $Hebrew_Letter;
++
++# rule 8
++
++$Numeric $ExFm* $Numeric;
++
++# rule 9
++
++($ALetterPlus | $Hebrew_Letter)  $ExFm* $Numeric;
++
++# rule 10
++
++$Numeric $ExFm* ($ALetterPlus | $Hebrew_Letter);
++
++# rule 11 and 12
++
++$Numeric $ExFm* ($MidNum | $MidNumLet | $Single_Quote) $ExFm* $Numeric;
++
++# rule 13
++# to be consistent with $KanaKanji $KanaKanhi, changed
++# from 300 to 400.
++# See also TestRuleStatus in intltest/rbbiapts.cpp
++$Katakana $ExFm*  $Katakana {400};
++
++# rule 13a/b
++
++$ALetterPlus   $ExFm* $ExtendNumLet {200};    #  (13a)
++$Hebrew_Letter $ExFm* $ExtendNumLet {200};    #  (13a)
++$Numeric       $ExFm* $ExtendNumLet {100};    #  (13a)
++$Katakana      $ExFm* $ExtendNumLet {400};    #  (13a)
++$ExtendNumLet  $ExFm* $ExtendNumLet {200};    #  (13a)
++
++$ExtendNumLet  $ExFm* $ALetterPlus  {200};    #  (13b)
++$ExtendNumLet  $ExFm* $Hebrew_Letter {200};    #  (13b)
++$ExtendNumLet  $ExFm* $Numeric      {100};    #  (13b)
++$ExtendNumLet  $ExFm* $Katakana     {400};    #  (13b)
++
++# rules 15 - 17
++#    Pairs of Regional Indicators stay together.
++#    With incoming rule chaining disabled by ^, this rule will match exactly two of them.
++#    No other rule begins with a Regional_Indicator, so chaining cannot extend the match.
+ #
+-$NonStarters = [$Numeric $ALetter $Katakana $Ideographic $Hangul [:P:] [:S:] $MidLetter $MidNum $SufixLetter $Extend $Format];
++^$Regional_Indicator $ExFm* $Regional_Indicator;
+-#!.*;
+-! ($NonStarters* | \n \r) .;
++# special handling for CJK characters: chain for later dictionary segmentation
++$HangulSyllable $HangulSyllable {200};
++$KanaKanji $KanaKanji {400}; # different rule status if both kana and kanji found
++# Rule 999
++#     Match a single code point if no other rule applies.
++.;
+diff --git a/i18npool/source/breakiterator/data/edit_word.txt b/i18npool/source/breakiterator/data/edit_word.txt
+index 92b344c19d41..14fc221aa96e 100644
+--- a/i18npool/source/breakiterator/data/edit_word.txt
++++ b/i18npool/source/breakiterator/data/edit_word.txt
+@@ -1,142 +1,199 @@
+ #
+-#   Copyright (C) 2002-2003, International Business Machines Corporation and others.
+-#       All Rights Reserved.
++# Copyright (C) 2016 and later: Unicode, Inc. and others.
++# License & terms of use: http://www.unicode.org/copyright.html
++# Copyright (C) 2002-2016, International Business Machines Corporation
++# and others. All Rights Reserved.
+ #
+-#   file:  edit_word.txt   
++# file:  word.txt
+ #
+-#   ICU Word Break Rules
++# ICU Word Break Rules
+ #      See Unicode Standard Annex #29.
+-#      These rules are based on Version 4.0.0, dated 2003-04-17
++#      These rules are based on UAX #29 Revision 34 for Unicode Version 12.0
+ #
++# Note:  Updates to word.txt will usually need to be merged into
++#        word_POSIX.txt also.
+-
+-
+-####################################################################################
++##############################################################################
+ #
+ #  Character class definitions from TR 29
+ #
+-####################################################################################
+-$Katakana  = [[:Script = KATAKANA:] [:name = KATAKANA-HIRAGANA PROLONGED SOUND MARK:] 
+-                                   [:name = HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK:]
+-                                   [:name = HALFWIDTH KATAKANA VOICED SOUND MARK:]
+-                                   [:name = HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK:]];
+-
+-$Ideographic = [:Ideographic:];
+-$Hangul = [:Script = HANGUL:];
+-
+-$ALetter   = [[:Alphabetic:] [:name= NO-BREAK SPACE:] [:name= HEBREW PUNCTUATION GERESH:] 
+-                           - $Ideographic
+-                           - $Katakana
+-                           - $Hangul
+-                           - [:Script = Thai:]
+-                           - [:Script = Lao:]
+-                           - [:Script = Hiragana:]];
+-                           
+-$MidLetter = [[:name = APOSTROPHE:] [:name = MIDDLE DOT:]  [:name = HEBREW PUNCTUATION GERSHAYIM:]
+-              [:name = RIGHT SINGLE QUOTATION MARK:] [:name = HYPHENATION POINT:]];  
+-              
+-$MidNum    = [[:LineBreak = Infix_Numeric:] - [:name = FULL STOP:]];
+-$Numeric   = [:LineBreak = Numeric:];
+-
+-
+-$TheZWSP = \u200b;
++##############################################################################
++
++### BEGIN CUSTOMIZATION
++### This file contains LibreOffice-specific rule customizations.
++###
++### To aid future maintainability:
++### - The change location should be bracketed by comments of this form.
++### - The original rule should be commented out, and the modified rule placed alongside.
++### - By doing this, maintainers can more easily compare to an upstream baseline.
++###
++### END CUSTOMIZATION
++
++!!chain;
++!!quoted_literals_only;
++
+ #
+ #  Character Class Definitions.
+-#    The names are those from TR29.
+ #
+-$CR         = \u000d;
+-$LF         = \u000a;
+-$Control    = [[[:Zl:] [:Zp:] [:Cc:] [:Cf:]] - $TheZWSP];
+-$Extend     = [[:Grapheme_Extend = TRUE:]]; 
++$Han                = [:Han:];
++$CR                 = [\p{Word_Break = CR}];
++$LF                 = [\p{Word_Break = LF}];
++$Newline            = [\p{Word_Break = Newline}];
++$Extend             = [\p{Word_Break = Extend}-$Han];
++$ZWJ                = [\p{Word_Break = ZWJ}];
++$Regional_Indicator = [\p{Word_Break = Regional_Indicator}];
++$Format             = [\p{Word_Break = Format}];
++$Katakana           = [\p{Word_Break = Katakana}];
++$Hebrew_Letter      = [\p{Word_Break = Hebrew_Letter}];
++$ALetter            = [\p{Word_Break = ALetter}];
++$Single_Quote       = [\p{Word_Break = Single_Quote}];
++$Double_Quote       = [\p{Word_Break = Double_Quote}];
++$MidLetter          = [\p{Word_Break = MidLetter}];
++$MidNum             = [\p{Word_Break = MidNum}];
++$Numeric            = [\p{Word_Break = Numeric}];
++$WSegSpace          = [\p{Word_Break = WSegSpace}];
++$Extended_Pict      = [\p{Extended_Pictographic}];
++### BEGIN CUSTOMIZATION
++### i#13494: For the purposes of editing, standalone punctuation should be treated as a word.
++### This change subtracts undesired characters from the above families
+-####################################################################################
+-#
+-#  Word Break Rules.    Definitions and Rules specific to word break begin Here. 
+-#
+-####################################################################################
++# $MidNumLet          = [\p{Word_Break = MidNumLet}];
++$MidNumLet          = [\p{Word_Break = MidNumLet}-[:name= FULL STOP:]];
+-$Format    = [[:Cf:] - $TheZWSP];
++# $ExtendNumLet       = [\p{Word_Break = ExtendNumLet}];
++$ExtendNumLet       = [\p{Word_Break = ExtendNumLet}-[:name= LOW LINE:]];
++### END CUSTOMIZATION
++$Hiragana           = [:Hiragana:];
++$Ideographic        = [\p{Ideographic}];
+-# Rule 3:  Treat a grapheme cluster as if it were a single character.
+-#          Hangul Syllables are easier to deal with here than they are in Grapheme Clusters
+-#          because we don't need to find the boundaries between adjacent syllables -
+-#          they won't be word boundaries.
+-#
++#   Dictionary character set, for triggering language-based break engines. Currently
++#   limited to LineBreak=Complex_Context. Note that this set only works in Unicode
++#   5.0 or later as the definition of Complex_Context was corrected to include all
++#   characters requiring dictionary break.
+-#
+-#  "Extended"  definitions.  Grapheme Cluster + Format Chars, treated like the base char.
+-#
+-$ALetterEx    = $ALetter   $Extend*; 
+-$NumericEx    = $Numeric   $Extend*;
+-$MidNumEx     = $MidNum    $Extend*;
+-$MidLetterEx  = $MidLetter $Extend*;
+-$KatakanaEx   = $Katakana  $Extend*;
+-$IdeographicEx= $Ideographic  $Extend*;
+-$HangulEx = $Hangul  $Extend*;
+-$FormatEx     = $Format    $Extend*;
++$Control        = [\p{Grapheme_Cluster_Break = Control}];
++$HangulSyllable = [\uac00-\ud7a3];
++$ComplexContext = [:LineBreak = Complex_Context:];
++$KanaKanji      = [$Han $Hiragana $Katakana];
++$dictionaryCJK  = [$KanaKanji $HangulSyllable];
++$dictionary     = [$ComplexContext $dictionaryCJK];
++# TODO: check if handling of katakana in dictionary makes rules incorrect/void
+-#
+-#  Numbers.  Rules 8, 11, 12 form the TR.
+-#
+-$NumberSequence = $NumericEx ($FormatEx* $MidNumEx? $FormatEx* $NumericEx)*;
+-$NumberSequence {100};
++# leave CJK scripts out of ALetterPlus
++$ALetterPlus  = [$ALetter-$dictionaryCJK [$ComplexContext-$Extend-$Control]];
+-#
+-#  Words.  Alpha-numerics.  Rule 5, 6, 7, 9, 10
+-#     - must include at least one letter. 
+-#     - may include both letters and numbers.
+-#     - may include  MideLetter, MidNumber punctuation.
+-#
+-$LetterSequence = $ALetterEx ($FormatEx* $MidLetterEx? $FormatEx* $ALetterEx)*;     # rules #6, #7
+-($NumberSequence $FormatEx*)? $LetterSequence ($FormatEx* ($NumberSequence | $LetterSequence))* {200};
+-# Punctuations by themselves
+-[[:P:][:S:]-[:name = FULL STOP:]]*;
+-[[:name = FULL STOP:]]*;
++## -------------------------------------------------
++# Rule 3 - CR x LF
+ #
+-#  Do not break between Katakana.   Rule #13.
+-#
+-$KatakanaEx ($FormatEx* $KatakanaEx)* {300};
+-[:Hiragana:] $Extend* {300};
++$CR $LF;
++# Rule 3c   Do not break within emoji zwj sequences.
++#             ZWJ ×  \p{Extended_Pictographic}.  Precedes WB4, so no intervening Extend chars allowed.
+ #
+-#  Ideographic Characters.  Stand by themselves as words.
+-#                           Separated from the "Everything Else" rule, below, only so that they
+-#                           can be tagged with a return value.   TODO:  is this what we want?
+-#
+-$IdeographicEx ($FormatEx* $IdeographicEx)* {400};
+-$HangulEx ($FormatEx* $HangulEx)* {400};
++$ZWJ $Extended_Pict;
++# Rule 3d - Keep horizontal whitespace together.
+ #
+-#  Everything Else, with no tag.
+-#                   Non-Control chars combine with $Extend (combining) chars.
+-#                   Controls are do not.
+-#
+-[^$Control [:Ideographic:]] $Extend*;
+-$CR $LF;
++$WSegSpace $WSegSpace;
++
++# Rule 4 - ignore Format and Extend characters, except when they appear at the beginning
++#          of a region of Text.
++
++$ExFm  = [$Extend $Format $ZWJ];
++
++^$ExFm+;            # This rule fires only when there are format or extend characters at the
++                    # start of text, or immediately following another boundary. It groups them, in
++                    # the event there are more than one.
++
++[^$CR $LF $Newline $ExFm] $ExFm*;   # This rule rule attaches trailing format/extends to words,
++                                    # with no special rule status value.
++
++$Numeric $ExFm* {100};              # This group of rules also attach trailing format/extends, but
++$ALetterPlus $ExFm* {200};          # with rule status set based on the word's final base character.
++$HangulSyllable {200};
++$Hebrew_Letter $ExFm* {200};
++$Katakana $ExFm* {400};             # note:  these status values override those from rule 5
++$Hiragana $ExFm* {400};             #        by virtue of being numerically larger.
++$Ideographic $ExFm* {400};          #
+ #
+-#  Reverse Rules.   Back up over any of the chars that can group together.
+-#                   (Reverse rules do not need to be exact; they can back up  too far,
+-#                   but must back up at least enough, and must stop on a boundary.)
++# rule 5
++#    Do not break between most letters.
+ #
++($ALetterPlus | $Hebrew_Letter) $ExFm* ($ALetterPlus | $Hebrew_Letter);
++
++# rule 6 and 7
++($ALetterPlus | $Hebrew_Letter)  $ExFm* ($MidLetter | $MidNumLet | $Single_Quote) $ExFm* ($ALetterPlus | $Hebrew_Letter) {200};
++
++# rule 7a
++$Hebrew_Letter $ExFm* $Single_Quote {200};
++
++# rule 7b and 7c
++$Hebrew_Letter $ExFm* $Double_Quote $ExFm* $Hebrew_Letter;
++
++# rule 8
++
++$Numeric $ExFm* $Numeric;
++
++# rule 9
++
++($ALetterPlus | $Hebrew_Letter)  $ExFm* $Numeric;
+-# NonStarters are the set of all characters that can appear at the 2nd - nth position of
+-#    a word.   (They may also be the first.)   The reverse rule skips over these, until it
+-#    reaches something that can only be the start (and probably only) char in a "word".
+-#    A space or punctuation meets the test.
++# rule 10
++
++$Numeric $ExFm* ($ALetterPlus | $Hebrew_Letter);
++
++# rule 11 and 12
++
++$Numeric $ExFm* ($MidNum | $MidNumLet | $Single_Quote) $ExFm* $Numeric;
++
++# rule 13
++# to be consistent with $KanaKanji $KanaKanhi, changed
++# from 300 to 400.
++# See also TestRuleStatus in intltest/rbbiapts.cpp
++$Katakana $ExFm*  $Katakana {400};
++
++# rule 13a/b
++
++$ALetterPlus   $ExFm* $ExtendNumLet {200};    #  (13a)
++$Hebrew_Letter $ExFm* $ExtendNumLet {200};    #  (13a)
++$Numeric       $ExFm* $ExtendNumLet {100};    #  (13a)
++$Katakana      $ExFm* $ExtendNumLet {400};    #  (13a)
++$ExtendNumLet  $ExFm* $ExtendNumLet {200};    #  (13a)
++
++$ExtendNumLet  $ExFm* $ALetterPlus  {200};    #  (13b)
++$ExtendNumLet  $ExFm* $Hebrew_Letter {200};    #  (13b)
++$ExtendNumLet  $ExFm* $Numeric      {100};    #  (13b)
++$ExtendNumLet  $ExFm* $Katakana     {400};    #  (13b)
++
++# rules 15 - 17
++#    Pairs of Regional Indicators stay together.
++#    With incoming rule chaining disabled by ^, this rule will match exactly two of them.
++#    No other rule begins with a Regional_Indicator, so chaining cannot extend the match.
+ #
+-$NonStarters = [$Numeric $ALetter $Katakana $Ideographic $Hangul [:P:] [:S:] $MidLetter $MidNum $Extend $Format];
++^$Regional_Indicator $ExFm* $Regional_Indicator;
+-#!.*;
+-! ($NonStarters* | \n \r) .;
++# special handling for CJK characters: chain for later dictionary segmentation
++$HangulSyllable $HangulSyllable {200};
++$KanaKanji $KanaKanji {400}; # different rule status if both kana and kanji found
++
++### BEGIN CUSTOMIZATION
++### i#13494: For the purposes of editing, standalone punctuation should be treated as a word.
++### This customization does not replace any rules.
++[[:P:][:S:]-[:name = FULL STOP:]]*
++[[:name = FULL STOP:]]*;
++### END CUSTOMIZATION
++# Rule 999
++#     Match a single code point if no other rule applies.
++.;
+diff --git a/i18npool/source/breakiterator/data/edit_word_he.txt b/i18npool/source/breakiterator/data/edit_word_he.txt
+deleted file mode 100644
+index 0b5908814e08..000000000000
+--- a/i18npool/source/breakiterator/data/edit_word_he.txt
++++ /dev/null
+@@ -1,142 +0,0 @@
+-#
+-#   Copyright (C) 2002-2003, International Business Machines Corporation and others.
+-#       All Rights Reserved.
+-#
+-#   file:  edit_word.txt   
+-#
+-#   ICU Word Break Rules
+-#      See Unicode Standard Annex #29.
+-#      These rules are based on Version 4.0.0, dated 2003-04-17
+-#
+-
+-
+-
+-####################################################################################
+-#
+-#  Character class definitions from TR 29
+-#
+-####################################################################################
+-$Katakana  = [[:Script = KATAKANA:] [:name = KATAKANA-HIRAGANA PROLONGED SOUND MARK:] 
+-                                   [:name = HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK:]
+-                                   [:name = HALFWIDTH KATAKANA VOICED SOUND MARK:]
+-                                   [:name = HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK:]];
+-
+-$Ideographic = [:Ideographic:];
+-$Hangul = [:Script = HANGUL:];
+-
+-$ALetter   = [[:Alphabetic:] [:name= NO-BREAK SPACE:] [:name= HEBREW PUNCTUATION GERESH:] 
+-                           - $Ideographic
+-                           - $Katakana
+-                           - $Hangul
+-                           - [:Script = Thai:]
+-                           - [:Script = Lao:]
+-                           - [:Script = Hiragana:]];
+-                           
+-$MidLetter = [[:name = QUOTATION MARK:] [:name = APOSTROPHE:] [:name = MIDDLE DOT:] [:name = HEBREW PUNCTUATION GERSHAYIM:]
+-              [:name = RIGHT SINGLE QUOTATION MARK:] [:name = HYPHENATION POINT:]];  
+-              
+-$MidNum    = [[:LineBreak = Infix_Numeric:] - [:name = FULL STOP:]];
+-$Numeric   = [:LineBreak = Numeric:];
+-
+-
+-$TheZWSP = \u200b;
+-
+-#
+-#  Character Class Definitions.
+-#    The names are those from TR29.
+-#
+-$CR         = \u000d;
+-$LF         = \u000a;
+-$Control    = [[[:Zl:] [:Zp:] [:Cc:] [:Cf:]] - $TheZWSP];
+-$Extend     = [[:Grapheme_Extend = TRUE:]]; 
+-
+-
+-
+-
+-####################################################################################
+-#
+-#  Word Break Rules.    Definitions and Rules specific to word break begin Here. 
+-#
+-####################################################################################
+-
+-$Format    = [[:Cf:] - $TheZWSP];
+-
+-
+-
+-# Rule 3:  Treat a grapheme cluster as if it were a single character.
+-#          Hangul Syllables are easier to deal with here than they are in Grapheme Clusters
+-#          because we don't need to find the boundaries between adjacent syllables -
+-#          they won't be word boundaries.
+-#
+-
+-
+-#
+-#  "Extended"  definitions.  Grapheme Cluster + Format Chars, treated like the base char.
+-#
+-$ALetterEx    = $ALetter   $Extend*; 
+-$NumericEx    = $Numeric   $Extend*;
+-$MidNumEx     = $MidNum    $Extend*;
+-$MidLetterEx  = $MidLetter $Extend*;
+-$KatakanaEx   = $Katakana  $Extend*;
+-$IdeographicEx= $Ideographic  $Extend*;
+-$HangulEx = $Hangul  $Extend*;
+-$FormatEx     = $Format    $Extend*;
+-
+-
+-#
+-#  Numbers.  Rules 8, 11, 12 form the TR.
+-#
+-$NumberSequence = $NumericEx ($FormatEx* $MidNumEx? $FormatEx* $NumericEx)*;
+-$NumberSequence {100};
+-
+-#
+-#  Words.  Alpha-numerics.  Rule 5, 6, 7, 9, 10
+-#     - must include at least one letter. 
+-#     - may include both letters and numbers.
+-#     - may include  MideLetter, MidNumber punctuation.
+-#
+-$LetterSequence = $ALetterEx ($FormatEx* $MidLetterEx? $FormatEx* $ALetterEx)*;     # rules #6, #7
+-($NumberSequence $FormatEx*)? $LetterSequence ($FormatEx* ($NumberSequence | $LetterSequence))* {200};
+-
+-# Punctuations by themselves
+-[[:P:][:S:]-[:name = FULL STOP:]]*;
+-[[:name = FULL STOP:]]*;
+-
+-#
+-#  Do not break between Katakana.   Rule #13.
+-#
+-$KatakanaEx ($FormatEx* $KatakanaEx)* {300};
+-[:Hiragana:] $Extend* {300};
+-
+-#
+-#  Ideographic Characters.  Stand by themselves as words.
+-#                           Separated from the "Everything Else" rule, below, only so that they
+-#                           can be tagged with a return value.   TODO:  is this what we want?
+-#
+-$IdeographicEx ($FormatEx* $IdeographicEx)* {400};
+-$HangulEx ($FormatEx* $HangulEx)* {400};
+-
+-#
+-#  Everything Else, with no tag.
+-#                   Non-Control chars combine with $Extend (combining) chars.
+-#                   Controls are do not.
+-#
+-[^$Control [:Ideographic:]] $Extend*;
+-$CR $LF;
+-
+-#
+-#  Reverse Rules.   Back up over any of the chars that can group together.
+-#                   (Reverse rules do not need to be exact; they can back up  too far,
+-#                   but must back up at least enough, and must stop on a boundary.)
+-#
+-
+-# NonStarters are the set of all characters that can appear at the 2nd - nth position of
+-#    a word.   (They may also be the first.)   The reverse rule skips over these, until it
+-#    reaches something that can only be the start (and probably only) char in a "word".
+-#    A space or punctuation meets the test.
+-#
+-$NonStarters = [$Numeric $ALetter $Katakana $Ideographic $Hangul [:P:] [:S:] $MidLetter $MidNum $Extend $Format];
+-
+-#!.*;
+-! ($NonStarters* | \n \r) .;
+-
+diff --git a/i18npool/source/breakiterator/data/edit_word_hu.txt b/i18npool/source/breakiterator/data/edit_word_hu.txt
+index 4a08acab0029..389ad2bacc13 100644
+--- a/i18npool/source/breakiterator/data/edit_word_hu.txt
++++ b/i18npool/source/breakiterator/data/edit_word_hu.txt
+@@ -1,159 +1,215 @@
+ #
+-#   Copyright (C) 2002-2003, International Business Machines Corporation and others.
+-#       All Rights Reserved.
++# Copyright (C) 2016 and later: Unicode, Inc. and others.
++# License & terms of use: http://www.unicode.org/copyright.html
++# Copyright (C) 2002-2016, International Business Machines Corporation
++# and others. All Rights Reserved.
+ #
+-#   file:  edit_word.txt   
++# file:  word.txt
+ #
+-#   ICU Word Break Rules
++# ICU Word Break Rules
+ #      See Unicode Standard Annex #29.
+-#      These rules are based on Version 4.0.0, dated 2003-04-17
++#      These rules are based on UAX #29 Revision 34 for Unicode Version 12.0
+ #
++# Note:  Updates to word.txt will usually need to be merged into
++#        word_POSIX.txt also.
+-
+-
+-####################################################################################
++##############################################################################
+ #
+ #  Character class definitions from TR 29
+ #
+-####################################################################################
+-$Katakana  = [[:Script = KATAKANA:] [:name = KATAKANA-HIRAGANA PROLONGED SOUND MARK:] 
+-                                   [:name = HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK:]
+-                                   [:name = HALFWIDTH KATAKANA VOICED SOUND MARK:]
+-                                   [:name = HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK:]];
+-
+-$Ideographic = [:Ideographic:];
+-$Hangul = [:Script = HANGUL:];
+-
+-$ALetter   = [[:Alphabetic:] [:name= NO-BREAK SPACE:] [:name= HEBREW PUNCTUATION GERESH:] 
+-                [:name = PERCENT SIGN:] [:name = PER MILLE SIGN:] [:name = PER TEN THOUSAND SIGN:]
+-                [:name = SECTION SIGN:] [:name = DEGREE SIGN:] [:name = EURO SIGN:]
+-                [:name = HYPHEN-MINUS:] [:name = EN DASH:] [:name = EM DASH:]
+-                [:name = DIGIT ZERO:]
+-                [:name = DIGIT ONE:]
+-                [:name = DIGIT TWO:]
+-                [:name = DIGIT THREE:]
+-                [:name = DIGIT FOUR:]
+-                [:name = DIGIT FIVE:]
+-                [:name = DIGIT SIX:]
+-                [:name = DIGIT SEVEN:]
+-                [:name = DIGIT EIGHT:]
+-                [:name = DIGIT NINE:]
+-                           - $Ideographic
+-                           - $Katakana
+-                           - $Hangul
+-                           - [:Script = Thai:]
+-                           - [:Script = Lao:]
+-                           - [:Script = Hiragana:]];
+-                           
+-$MidLetter = [[:name = APOSTROPHE:] [:name = MIDDLE DOT:]  [:name = HEBREW PUNCTUATION GERSHAYIM:]
+-              [:name = RIGHT SINGLE QUOTATION MARK:] [:name = HYPHENATION POINT:]  
+-              [:name = HYPHEN-MINUS:] [:name = EURO SIGN:] [:name = PERCENT SIGN:] 
+-              [:name = PER MILLE SIGN:] [:name = PER TEN THOUSAND SIGN:]
+-              [:name = EN DASH:] [:name = EM DASH:]
+-              [:name = PERCENT SIGN:] [:name = SECTION SIGN:] [:name = DEGREE SIGN:]];
+-              
+-$MidNum    = [[:LineBreak = Infix_Numeric:] - [:name = FULL STOP:]];
+-$Numeric   = [:LineBreak = Numeric:];
+-
+-
+-$TheZWSP = \u200b;
++##############################################################################
++
++### BEGIN CUSTOMIZATION
++### This file contains LibreOffice-specific rule customizations.
++###
++### To aid future maintainability:
++### - The change location should be bracketed by comments of this form.
++### - The original rule should be commented out, and the modified rule placed alongside.
++### - By doing this, maintainers can more easily compare to an upstream baseline.
++###
++### END CUSTOMIZATION
++
++!!chain;
++!!quoted_literals_only;
++
+ #
+ #  Character Class Definitions.
+-#    The names are those from TR29.
+ #
+-$CR         = \u000d;
+-$LF         = \u000a;
+-$Control    = [[[:Zl:] [:Zp:] [:Cc:] [:Cf:]] - $TheZWSP];
+-$Extend     = [[:Grapheme_Extend = TRUE:]]; 
++$Han                = [:Han:];
++$CR                 = [\p{Word_Break = CR}];
++$LF                 = [\p{Word_Break = LF}];
++$Newline            = [\p{Word_Break = Newline}];
++$Extend             = [\p{Word_Break = Extend}-$Han];
++$ZWJ                = [\p{Word_Break = ZWJ}];
++$Regional_Indicator = [\p{Word_Break = Regional_Indicator}];
++$Format             = [\p{Word_Break = Format}];
++$Katakana           = [\p{Word_Break = Katakana}];
++$Hebrew_Letter      = [\p{Word_Break = Hebrew_Letter}];
++$Single_Quote       = [\p{Word_Break = Single_Quote}];
++$Double_Quote       = [\p{Word_Break = Double_Quote}];
++$MidNum             = [\p{Word_Break = MidNum}];
++$Numeric            = [\p{Word_Break = Numeric}];
++$WSegSpace          = [\p{Word_Break = WSegSpace}];
++$Extended_Pict      = [\p{Extended_Pictographic}];
++### BEGIN CUSTOMIZATION
++### i#13494: For the purposes of editing, standalone punctuation should be treated as a word.
++### This change subtracts undesired characters from the above families
++### i#56347: BreakIterator patch for Hungarian
++### i#56348: Special chars in first pos not handled by spell checking for Hungarian
+-####################################################################################
+-#
+-#  Word Break Rules.    Definitions and Rules specific to word break begin Here. 
+-#
+-####################################################################################
++$Symbols_hu         = [[:name = PERCENT SIGN:]
++                       [:name = PER MILLE SIGN:]
++                       [:name = PER TEN THOUSAND SIGN:]
++                       [:name = SECTION SIGN:]
++                       [:name = DEGREE SIGN:]
++                       [:name = EURO SIGN:]
++                       [:name = HYPHEN-MINUS:]
++                       [:name = EN DASH:]
++                       [:name = EM DASH:]];
+-$Format    = [[:Cf:] - $TheZWSP];
++# $ALetter            = [\p{Word_Break = ALetter}];
++$ALetter            = [\p{Word_Break = ALetter} $Symbols_hu];
++# $MidLetter          = [\p{Word_Break = MidLetter}];
++$MidLetter          = [\p{Word_Break = MidLetter} $Symbols_hu];
++# $MidNumLet          = [\p{Word_Break = MidNumLet}];
++$MidNumLet          = [\p{Word_Break = MidNumLet}-[:name= FULL STOP:]];
+-# Rule 3:  Treat a grapheme cluster as if it were a single character.
+-#          Hangul Syllables are easier to deal with here than they are in Grapheme Clusters
+-#          because we don't need to find the boundaries between adjacent syllables -
+-#          they won't be word boundaries.
+-#
++# $ExtendNumLet       = [\p{Word_Break = ExtendNumLet}];
++$ExtendNumLet       = [\p{Word_Break = ExtendNumLet}-[:name= LOW LINE:]];
++### END CUSTOMIZATION
+-#
+-#  "Extended"  definitions.  Grapheme Cluster + Format Chars, treated like the base char.
+-#
+-$ALetterEx    = $ALetter   $Extend*; 
+-$NumericEx    = $Numeric   $Extend*;
+-$MidNumEx     = $MidNum    $Extend*;
+-$MidLetterEx  = $MidLetter $Extend*;
+-$KatakanaEx   = $Katakana  $Extend*;
+-$IdeographicEx= $Ideographic  $Extend*;
+-$HangulEx = $Hangul  $Extend*;
+-$FormatEx     = $Format    $Extend*;
++$Hiragana           = [:Hiragana:];
++$Ideographic        = [\p{Ideographic}];
+-#
+-#  Numbers.  Rules 8, 11, 12 form the TR.
+-#
+-$NumberSequence = $NumericEx ($FormatEx* $MidNumEx? $FormatEx* $NumericEx)*;
+-$NumberSequence {100};
++#   Dictionary character set, for triggering language-based break engines. Currently
++#   limited to LineBreak=Complex_Context. Note that this set only works in Unicode
++#   5.0 or later as the definition of Complex_Context was corrected to include all
++#   characters requiring dictionary break.
+-#
+-#  Words.  Alpha-numerics.  Rule 5, 6, 7, 9, 10
+-#     - must include at least one letter. 
+-#     - may include both letters and numbers.
+-#     - may include  MideLetter, MidNumber punctuation.
+-#
+-$LetterSequence = $ALetterEx ($FormatEx* $MidLetterEx? $FormatEx* $ALetterEx)*;     # rules #6, #7
+-($NumberSequence $FormatEx*)? $LetterSequence ($FormatEx* ($NumberSequence | $LetterSequence))* {200};
++$Control        = [\p{Grapheme_Cluster_Break = Control}];
++$HangulSyllable = [\uac00-\ud7a3];
++$ComplexContext = [:LineBreak = Complex_Context:];
++$KanaKanji      = [$Han $Hiragana $Katakana];
++$dictionaryCJK  = [$KanaKanji $HangulSyllable];
++$dictionary     = [$ComplexContext $dictionaryCJK];
+-# Punctuations by themselves
+-[[:P:][:S:]-[:name = FULL STOP:]]*;
+-[[:name = FULL STOP:]]*;
++# TODO: check if handling of katakana in dictionary makes rules incorrect/void
+-#
+-#  Do not break between Katakana.   Rule #13.
+-#
+-$KatakanaEx ($FormatEx* $KatakanaEx)* {300};
+-[:Hiragana:] $Extend* {300};
++# leave CJK scripts out of ALetterPlus
++$ALetterPlus  = [$ALetter-$dictionaryCJK [$ComplexContext-$Extend-$Control]];
++
++## -------------------------------------------------
++
++# Rule 3 - CR x LF
+ #
+-#  Ideographic Characters.  Stand by themselves as words.
+-#                           Separated from the "Everything Else" rule, below, only so that they
+-#                           can be tagged with a return value.   TODO:  is this what we want?
+-#
+-$IdeographicEx ($FormatEx* $IdeographicEx)* {400};
+-$HangulEx ($FormatEx* $HangulEx)* {400};
++$CR $LF;
++# Rule 3c   Do not break within emoji zwj sequences.
++#             ZWJ ×  \p{Extended_Pictographic}.  Precedes WB4, so no intervening Extend chars allowed.
+ #
+-#  Everything Else, with no tag.
+-#                   Non-Control chars combine with $Extend (combining) chars.
+-#                   Controls are do not.
++$ZWJ $Extended_Pict;
++
++# Rule 3d - Keep horizontal whitespace together.
+ #
+-[^$Control [:Ideographic:]] $Extend*;
+-$CR $LF;
++$WSegSpace $WSegSpace;
++
++# Rule 4 - ignore Format and Extend characters, except when they appear at the beginning
++#          of a region of Text.
++
++$ExFm  = [$Extend $Format $ZWJ];
++
++^$ExFm+;            # This rule fires only when there are format or extend characters at the
++                    # start of text, or immediately following another boundary. It groups them, in
++                    # the event there are more than one.
++
++[^$CR $LF $Newline $ExFm] $ExFm*;   # This rule rule attaches trailing format/extends to words,
++                                    # with no special rule status value.
++
++$Numeric $ExFm* {100};              # This group of rules also attach trailing format/extends, but
++$ALetterPlus $ExFm* {200};          # with rule status set based on the word's final base character.
++$HangulSyllable {200};
++$Hebrew_Letter $ExFm* {200};
++$Katakana $ExFm* {400};             # note:  these status values override those from rule 5
++$Hiragana $ExFm* {400};             #        by virtue of being numerically larger.
++$Ideographic $ExFm* {400};          #
+ #
+-#  Reverse Rules.   Back up over any of the chars that can group together.
+-#                   (Reverse rules do not need to be exact; they can back up  too far,
+-#                   but must back up at least enough, and must stop on a boundary.)
++# rule 5
++#    Do not break between most letters.
+ #
++($ALetterPlus | $Hebrew_Letter) $ExFm* ($ALetterPlus | $Hebrew_Letter);
++
++# rule 6 and 7
++($ALetterPlus | $Hebrew_Letter)  $ExFm* ($MidLetter | $MidNumLet | $Single_Quote) $ExFm* ($ALetterPlus | $Hebrew_Letter) {200};
++
++# rule 7a
++$Hebrew_Letter $ExFm* $Single_Quote {200};
++
++# rule 7b and 7c
++$Hebrew_Letter $ExFm* $Double_Quote $ExFm* $Hebrew_Letter;
++
++# rule 8
++
++$Numeric $ExFm* $Numeric;
++
++# rule 9
+-# NonStarters are the set of all characters that can appear at the 2nd - nth position of
+-#    a word.   (They may also be the first.)   The reverse rule skips over these, until it
+-#    reaches something that can only be the start (and probably only) char in a "word".
+-#    A space or punctuation meets the test.
++($ALetterPlus | $Hebrew_Letter)  $ExFm* $Numeric;
++
++# rule 10
++
++$Numeric $ExFm* ($ALetterPlus | $Hebrew_Letter);
++
++# rule 11 and 12
++
++$Numeric $ExFm* ($MidNum | $MidNumLet | $Single_Quote) $ExFm* $Numeric;
++
++# rule 13
++# to be consistent with $KanaKanji $KanaKanhi, changed
++# from 300 to 400.
++# See also TestRuleStatus in intltest/rbbiapts.cpp
++$Katakana $ExFm*  $Katakana {400};
++
++# rule 13a/b
++
++$ALetterPlus   $ExFm* $ExtendNumLet {200};    #  (13a)
++$Hebrew_Letter $ExFm* $ExtendNumLet {200};    #  (13a)
++$Numeric       $ExFm* $ExtendNumLet {100};    #  (13a)
++$Katakana      $ExFm* $ExtendNumLet {400};    #  (13a)
++$ExtendNumLet  $ExFm* $ExtendNumLet {200};    #  (13a)
++
++$ExtendNumLet  $ExFm* $ALetterPlus  {200};    #  (13b)
++$ExtendNumLet  $ExFm* $Hebrew_Letter {200};    #  (13b)
++$ExtendNumLet  $ExFm* $Numeric      {100};    #  (13b)
++$ExtendNumLet  $ExFm* $Katakana     {400};    #  (13b)
++
++# rules 15 - 17
++#    Pairs of Regional Indicators stay together.
++#    With incoming rule chaining disabled by ^, this rule will match exactly two of them.
++#    No other rule begins with a Regional_Indicator, so chaining cannot extend the match.
+ #
+-$NonStarters = [$Numeric $ALetter $Katakana $Ideographic $Hangul [:P:] [:S:] $MidLetter $MidNum $Extend $Format];
++^$Regional_Indicator $ExFm* $Regional_Indicator;
+-#!.*;
+-! ($NonStarters* | \n \r) .;
++# special handling for CJK characters: chain for later dictionary segmentation
++$HangulSyllable $HangulSyllable {200};
++$KanaKanji $KanaKanji {400}; # different rule status if both kana and kanji found
++
++### BEGIN CUSTOMIZATION
++### i#13494: For the purposes of editing, standalone punctuation should be treated as a word.
++### This customization does not replace any rules.
++[[:P:][:S:]-[:name = FULL STOP:]]*
++[[:name = FULL STOP:]]*;
++### END CUSTOMIZATION
++# Rule 999
++#     Match a single code point if no other rule applies.
++.;
+diff --git a/i18npool/source/breakiterator/data/line.txt b/i18npool/source/breakiterator/data/line.txt
+index ff3f3eafc42e..46a618c63cae 100644
+--- a/i18npool/source/breakiterator/data/line.txt
++++ b/i18npool/source/breakiterator/data/line.txt
+@@ -1,176 +1,116 @@
+-# Copyright (c) 2002-2006  International Business Machines Corporation and
++# Copyright (C) 2016 and later: Unicode, Inc. and others.
++# License & terms of use: http://www.unicode.org/copyright.html
++# Copyright (c) 2002-2016  International Business Machines Corporation and
+ # others. All Rights Reserved.
+ #
+ #  file:  line.txt
+ #
+ #         Line Breaking Rules
+-#         Implement default line breaking as defined by Unicode Standard Annex #14 version 5.0.0
+-#         http://www.unicode.org/reports/tr14/
+-
+-
++#         Implement default line breaking as defined by
++#         Unicode Standard Annex #14 (https://www.unicode.org/reports/tr14/)
++#         for Unicode 14.0, with the following modification:
++#
++#         Boundaries between hyphens and following letters are suppressed when
++#         there is a boundary preceding the hyphen. See rule 20.9
++#
++#         This corresponds to CSS line-break=strict (BCP47 -u-lb-strict).
++#         It sets characters of class CJ to behave like NS.
+ #
+ #  Character Classes defined by TR 14.
+ #
+-!!chain;
+-!!LBCMNoChain;
++### BEGIN CUSTOMIZATION
++### This file contains LibreOffice-specific rule customizations.
++###
++### To aid future maintainability:
++### - The change location should be bracketed by comments of this form.
++### - The original rule should be commented out, and the modified rule placed alongside.
++### - By doing this, maintainers can more easily compare to an upstream baseline.
++###
++### END CUSTOMIZATION
+-
+-!!lookAheadHardBreak;
+-#
+-#  !!lookAheadHardBreak    Described here because it is (as yet) undocumented elsewhere
+-#                          and only used for the line break rules.
+-#
+-#           It is used in the implementation of the incredibly annoying rule LB 10
+-#           which says to treat any combining mark that is not attached to a base
+-#           character as if it were of class AL  (alphabetic).
+-#
+-#           The problem occurs in the reverse rules.
+-#
+-#           Consider a sequence like, with correct breaks as shown
+-#               LF  ID  CM  AL  AL
+-#                  ^       ^       ^
+-#           Then consider the sequence without the initial ID (ideographic)
+-#                 LF  CM  AL  AL
+-#                    ^           ^
+-#           Our CM, which in the first example was attached to the ideograph,
+-#           is now unattached, becomes an alpha, and joins in with the other
+-#           alphas.
+-#
+-#           When iterating forwards, these sequences do not present any problems
+-#           When iterating backwards, we need to look ahead when encountering
+-#           a CM to see whether it attaches to something further on or not.
+-#           (Look-ahead in a reverse rule is looking towards the start)
+-#
+-#           If the CM is unattached, we need to force a break.
+-#
+-#           !!lookAheadHardBreak forces the run time state machine to
+-#           stop immediately when a look ahead rule ( '/' operator) matches,
+-#           and set the match position to that of the look-ahead operator,
+-#           no matter what other rules may be in play at the time.
+-#
+-#           See rule LB 19 for an example.
+-#
++!!chain;
++!!quoted_literals_only;
+ $AI = [:LineBreak =  Ambiguous:];
+-$DG = \u00B0;
+-$AL = [[:LineBreak =  Alphabetic:] $DG];
++$AL = [:LineBreak =  Alphabetic:];
+ $BA = [:LineBreak =  Break_After:];
++$HH = [\u2010];     # \u2010 is HYPHEN, default line break is BA.
+ $BB = [:LineBreak =  Break_Before:];
+ $BK = [:LineBreak =  Mandatory_Break:];
+ $B2 = [:LineBreak =  Break_Both:];
+ $CB = [:LineBreak =  Contingent_Break:];
+ $CJ = [:LineBreak =  Conditional_Japanese_Starter:];
+-$CL = [[:LineBreak =  Close_Punctuation:] [:LineBreak = Close_Parenthesis:]]; # tdf#31271
+-$CM = [:LineBreak =  Combining_Mark:];
++$CL = [:LineBreak =  Close_Punctuation:];
++# $CM = [:LineBreak =  Combining_Mark:];
++$CP = [:LineBreak =  Close_Parenthesis:];
+ $CR = [:LineBreak =  Carriage_Return:];
++$EB = [:LineBreak =  EB:];
++$EM = [:LineBreak =  EM:];
+ $EX = [:LineBreak =  Exclamation:];
+ $GL = [:LineBreak =  Glue:];
+ $HL = [:LineBreak =  Hebrew_Letter:];
+ $HY = [:LineBreak =  Hyphen:];
+ $H2 = [:LineBreak =  H2:];
+ $H3 = [:LineBreak =  H3:];
+-$ID = [[:LineBreak =  Ideographic:] - [\ufe30]];
+-$IN = [:LineBreak =  Inseparable:];
+-$IS = [[:LineBreak =  Infix_Numeric:] [\ufe30]];
++$ID = [:LineBreak =  Ideographic:];
++$IN = [:LineBreak =  Inseperable:];
++$IS = [:LineBreak =  Infix_Numeric:];
+ $JL = [:LineBreak =  JL:];
+ $JV = [:LineBreak =  JV:];
+ $JT = [:LineBreak =  JT:];
+ $LF = [:LineBreak =  Line_Feed:];
+ $NL = [:LineBreak =  Next_Line:];
++# NS includes CJ for CSS strict line breaking.
+ $NS = [[:LineBreak =  Nonstarter:] $CJ];
+ $NU = [:LineBreak =  Numeric:];
+-$OP = [[:LineBreak =  Open_Punctuation:] - $DG];
++$OP = [:LineBreak =  Open_Punctuation:];
+ $PO = [:LineBreak =  Postfix_Numeric:];
+-$BS = \u005C;
+-$PR = [[:LineBreak =  Prefix_Numeric:] - $BS];
++$PR = [:LineBreak =  Prefix_Numeric:];
+ $QU = [:LineBreak =  Quotation:];
++$RI = [:LineBreak =  Regional_Indicator:];
+ $SA = [:LineBreak =  Complex_Context:];
+ $SG = [:LineBreak =  Surrogate:];
+ $SP = [:LineBreak =  Space:];
+-$SY = [[:LineBreak =  Break_Symbols:] $BS];
++$SY = [:LineBreak =  Break_Symbols:];
+ $WJ = [:LineBreak =  Word_Joiner:];
+ $XX = [:LineBreak =  Unknown:];
+ $ZW = [:LineBreak =  ZWSpace:];
++$ZWJ = [:LineBreak = ZWJ:];
++
++# OP30 and CP30 are variants of OP and CP that appear in-line in rule LB30 from UAX 14,
++# without a formal name. Because ICU rules require multiple uses of the expressions,
++# give them a single definition with a name
++
++$OP30 = [$OP - [\p{ea=F}\p{ea=W}\p{ea=H}]];
++$CP30 = [$CP - [\p{ea=F}\p{ea=W}\p{ea=H}]];
++
++$ExtPictUnassigned = [\p{Extended_Pictographic} & \p{Cn}];
++
++# By LB9, a ZWJ also behaves as a CM. Including it in the definition of CM avoids having to explicitly
++#         list it in the numerous rules that use CM.
++# By LB1, SA characters with general categor of Mn or Mc also resolve to CM.
++
++$CM = [[:LineBreak = Combining_Mark:] $ZWJ [$SA & [[:Mn:][:Mc:]]]];
++$CMX = [[$CM] - [$ZWJ]];
+ #   Dictionary character set, for triggering language-based break engines. Currently
+-#   limited to LineBreak=Complex_Context. Note that this set only works in Unicode
+-#   5.0 or later as the definition of Complex_Context was corrected to include all
+-#   characters requiring dictionary break.
++#   limited to LineBreak=Complex_Context (SA).
+-$dictionary = [:LineBreak = Complex_Context:];
++$dictionary = [$SA];
+ #
+ #  Rule LB1.  By default, treat AI  (characters with ambiguous east Asian width),
+-#                               SA  (South East Asian: Thai, Lao, Khmer)
++#                               SA  (Dictionary chars, excluding Mn and Mc)
+ #                               SG  (Unpaired Surrogates)
+ #                               XX  (Unknown, unassigned)
+ #                         as $AL  (Alphabetic)
+ #
+-$ALPlus = [$AL $AI $SA $SG $XX];
+-
+-#
+-#  Combining Marks.   X $CM*  behaves as if it were X.  Rule LB6.
+-#
+-$ALcm = $ALPlus $CM*;
+-$BAcm = $BA $CM*;
+-$BBcm = $BB $CM*;
+-$B2cm = $B2 $CM*;
+-$CLcm = $CL $CM*;
+-$EXcm = $EX $CM*;
+-$GLcm = $GL $CM*;
+-$HLcm = $HL $CM*;
+-$HYcm = $HY $CM*;
+-$H2cm = $H2 $CM*;
+-$H3cm = $H3 $CM*;
+-$IDcm = $ID $CM*;
+-$INcm = $IN $CM*;
+-$IScm = $IS $CM*;
+-$JLcm = $JL $CM*;
+-$JVcm = $JV $CM*;
+-$JTcm = $JT $CM*;
+-$NScm = $NS $CM*;
+-$NUcm = $NU $CM*;
+-$OPcm = $OP $CM*;
+-$POcm = $PO $CM*;
+-$PRcm = $PR $CM*;
+-$QUcm = $QU $CM*;
+-$SYcm = $SY $CM*;
+-$WJcm = $WJ $CM*;
++$ALPlus = [$AL $AI $SG $XX [$SA-[[:Mn:][:Mc:]]]];
+-## -------------------------------------------------
+-!!forward;
+-
+-#
+-#  Each class of character can stand by itself as an unbroken token, with trailing combining stuff
+-#
+-$ALPlus $CM+;
+-$BA $CM+;
+-$BB $CM+;
+-$B2 $CM+;
+-$CL $CM+;
+-$EX $CM+;
+-$GL $CM+;
+-$HL $CM+;
+-$HY $CM+;
+-$H2 $CM+;
+-$H3 $CM+;
+-$ID $CM+;
+-$IN $CM+;
+-$IS $CM+;
+-$JL $CM+;
+-$JV $CM+;
+-$JT $CM+;
+-$NS $CM+;
+-$NU $CM+;
+-$OP $CM+;
+-$PO $CM+;
+-$PR $CM+;
+-$QU $CM+;
+-$SY $CM+;
+-$WJ $CM+;
++## -------------------------------------------------
+ #
+ # CAN_CM  is the set of characters that may combine with CM combining chars.
+@@ -186,19 +126,15 @@ $CANT_CM = [ $SP $BK $CR $LF $NL $ZW $CM];       # Bases that can't take CMs
+ #
+ # AL_FOLLOW  set of chars that can unconditionally follow an AL
+ #            Needed in rules where stand-alone $CM s are treated as AL.
+-#            Chaining is disabled with CM because it causes other failures,
+-#            so for this one case we need to manually list out longer sequences.
+ #
+-$AL_FOLLOW_NOCM = [$BK $CR $LF $NL $ZW $SP];
+-$AL_FOLLOW_CM   = [$CL $EX $HL $IS $SY $WJ $GL $QU $BA $HY $NS $IN $NU $ALPlus $OP];
+-$AL_FOLLOW      = [$AL_FOLLOW_NOCM $AL_FOLLOW_CM];
++$AL_FOLLOW      = [$BK $CR $LF $NL $ZW $SP $CL $CP $EX $HL $IS $SY $WJ $GL $OP30 $QU $BA $HY $NS $IN $NU $PR $PO $ALPlus];
+ #
+ #  Rule LB 4, 5    Mandatory (Hard) breaks.
+ #
+ $LB4Breaks    = [$BK $CR $LF $NL];
+-$LB4NonBreaks = [^$BK $CR $LF $NL];
++$LB4NonBreaks = [^$BK $CR $LF $NL $CM];
+ $CR $LF {100};
+ #
+@@ -206,91 +142,124 @@ $CR $LF {100};
+ #
+ $LB4NonBreaks?  $LB4Breaks {100};    # LB 5  do not break before hard breaks.
+ $CAN_CM $CM*    $LB4Breaks {100};
+-$CM+            $LB4Breaks {100};
++^$CM+           $LB4Breaks {100};
+ # LB 7         x SP
+ #              x ZW
+ $LB4NonBreaks [$SP $ZW];
+ $CAN_CM $CM*  [$SP $ZW];
+-$CM+          [$SP $ZW];
++^$CM+         [$SP $ZW];
+ #
+ # LB 8         Break after zero width space
++#              ZW SP* ÷
+ #
+ $LB8Breaks    = [$LB4Breaks $ZW];
+ $LB8NonBreaks = [[$LB4NonBreaks] - [$ZW]];
++$ZW $SP* / [^$SP $ZW $LB4Breaks];
++# LB 8a        ZWJ x            Do not break Emoji ZWJ sequences.
++#
++$ZWJ [^$CM];
+-# LB 9     Combining marks.      X   $CM needs to behave like X, where X is not $SP, $BK $CR $LF $NL 
+-#                                $CM not covered by the above needs to behave like $AL   
++# LB 9     Combining marks.      X   $CM needs to behave like X, where X is not $SP, $BK $CR $LF $NL
++#                                $CM not covered by the above needs to behave like $AL
+ #                                See definition of $CAN_CM.
+ $CAN_CM $CM+;                   #  Stick together any combining sequences that don't match other rules.
+-$CM+;
++^$CM+;
+ #
+ # LB 11  Do not break before or after WORD JOINER & related characters.
+ #
+-$CAN_CM $CM*  $WJcm;
+-$LB8NonBreaks $WJcm;
+-$CM+          $WJcm;
++$CAN_CM $CM*  $WJ;
++$LB8NonBreaks $WJ;
++^$CM+         $WJ;
+-$WJcm [^$CAN_CM];
+-$WJcm $CAN_CM $CM*;
++$WJ $CM* .;
+ #
+-# LB 12  Do not break before or after NBSP and related characters.
++# LB 12  Do not break after NBSP and related characters.
++#         GL  x
+ #
+-#         (!SP) x GL
+-[$LB8NonBreaks-$SP] $CM* $GLcm;
+-$CM+               $GLcm;
++$GL $CM* .;
+-#         GL  x
+-$GLcm ($LB8Breaks | $SP);
+-$GLcm [$LB8NonBreaks-$SP] $CM*;     # Don't let a combining mark go onto $CR, $BK, etc.
+-                              #  TODO:  I don't think we need this rule.
+-                              #         All but $CM will chain off of preceding rule.
+-                              #         $GLcm will pick up the CM case by itself.
++#
++# LB 12a  Do not break before NBSP and related characters ...
++#            [^SP BA HY] x GL
++#
++[[$LB8NonBreaks] - [$SP $BA $HY]] $CM* $GL;
++^$CM+ $GL;
+-#
+-# LB 13   Don't break before ']' or '!' or ';' or '/', even after spaces.
++# LB 13   Don't break before ']' or '!' or '/', even after spaces.
+ #
+ $LB8NonBreaks $CL;
+ $CAN_CM $CM*  $CL;
+-$CM+          $CL;              # by rule 10, stand-alone CM behaves as AL
++^$CM+         $CL;              # by rule 10, stand-alone CM behaves as AL
++
++$LB8NonBreaks $CP;
++$CAN_CM $CM*  $CP;
++^$CM+         $CP;              # by rule 10, stand-alone CM behaves as AL
+ $LB8NonBreaks $EX;
+ $CAN_CM $CM*  $EX;
+-$CM+          $EX;              # by rule 10, stand-alone CM behaves as AL
+-
+-$LB8NonBreaks $IS;
+-$CAN_CM $CM*  $IS;
+-$CM+          $IS;              # by rule 10, stand-alone CM behaves as AL
++^$CM+         $EX;              # by rule 10, stand-alone CM behaves as AL
+ $LB8NonBreaks $SY;
+ $CAN_CM $CM*  $SY;
+-$CM+          $SY;              # by rule 10, stand-alone CM behaves as AL
++^$CM+         $SY;              # by rule 10, stand-alone CM behaves as AL
+ #
+-# LB 14  Do not break after OP, even after spaced
++# LB 14  Do not break after OP, even after spaces
++#        Note subtle interaction with "SP IS /" rules in LB14a.
++#        This rule consumes the SP, chaining happens on the IS, effectivley overriding the  SP IS rules,
++#        which is the desired behavior.
++#
++$OP $CM* $SP* .;
++
++$OP $CM* $SP+ $CM+ $AL_FOLLOW?;    # by rule 10, stand-alone CM behaves as AL
++                                   # by rule 8, CM following a SP is stand-alone.
++
++
++# LB 14a Force a break before start of a number with a leading decimal pt, e.g. " .23"
++#        Note: would be simpler to express as "$SP / $IS $CM* $NU;", but ICU rules have limitations.
++#        See issue ICU-20303
++
++
++$CanFollowIS = [$BK $CR $LF $NL $SP $ZW $WJ $GL $CL $CP $EX $IS $SY $QU $BA $HY $NS $ALPlus $HL $IN];
++$SP $IS           / [^ $CanFollowIS $NU $CM];
++$SP $IS $CM* $CMX / [^ $CanFollowIS $NU $CM];
++
+ #
+-$OPcm $SP* $CAN_CM $CM*;
+-$OPcm $SP* $CANT_CM;
++# LB 14b Do not break before numeric separators (IS), even after spaces.
++
++[$LB8NonBreaks - $SP] $IS;
++$SP $IS $CM* [$CanFollowIS {eof}];
++$SP $IS $CM* $ZWJ [^$CM $NU];
++
++$CAN_CM $CM*  $IS;
++^$CM+         $IS;              # by rule 10, stand-alone CM behaves as AL
+-$OPcm $SP+ $CM+ $AL_FOLLOW?;    # by rule 10, stand-alone CM behaves as AL
+ # LB 15
+-# $QUcm $SP* $OPcm;
++
++### BEGIN CUSTOMIZATION
++### i#83649: Allow line break between quote and opening punctuation.
++### This customization simply disables rule LB 15.
++###
++# $QU $CM* $SP* $OP;
++###
++### END CUSTOMIZATION
+ # LB 16
+-$CLcm $SP* $NScm;
++($CL | $CP) $CM* $SP* $NS;
+ # LB 17
+-$B2cm $SP* $B2cm;
++$B2 $CM* $SP* $B2;
+ #
+ # LB 18  Break after spaces.
+@@ -301,347 +270,134 @@ $LB18Breaks    = [$LB8Breaks $SP];
+ # LB 19
+ #         x QU
+-$LB18NonBreaks $CM* $QUcm;
+-$CM+                $QUcm;
++$LB18NonBreaks $CM* $QU;
++^$CM+               $QU;
+ #         QU  x
+-$QUcm .?;
+-$QUcm $LB18NonBreaks $CM*;    # Don't let a combining mark go onto $CR, $BK, etc.
+-                              #  TODO:  I don't think this rule is needed.
+-
++$QU $CM* .;
+ # LB 20
+ #        <break>  $CB
+ #        $CB   <break>
+-
++#
+ $LB20NonBreaks = [$LB18NonBreaks - $CB];
++# LB 20.09    Don't break between Hyphens and Letters when there is a break preceding the hyphen.
++#             Originally added as a Finnish tailoring, now promoted to default ICU behavior.
++#             Note: this is not default UAX-14 behaviour. See issue ICU-8151.
++#
++^($HY | $HH) $CM* $ALPlus;
++
+ # LB 21        x   (BA | HY | NS)
+ #           BB x
+ #
+-$LB20NonBreaks $CM* ($BAcm | $HYcm | $NScm); 
++$LB20NonBreaks $CM* ($BA | $HY | $NS);
+-$BBcm [^$CB];                                  #  $BB  x
+-$BBcm $LB20NonBreaks $CM*;
+-# LB 21a Don't break after Hebrew + Hyphen
+-#   HL (HY | BA) x
+-#  
+-$HLcm ($HYcm | $BAcm) [^$CB]?;
++^$CM+ ($BA | $HY | $NS);
+-# LB 22
+-($ALcm | $HLcm) $INcm;
+-$CM+     $INcm;     #  by rule 10, any otherwise unattached CM behaves as AL
+-$IDcm    $INcm;
+-$INcm    $INcm;
+-$NUcm    $INcm;
++$BB $CM* [^$CB];                                  #  $BB  x
++$BB $CM* $LB20NonBreaks;
+-
+-# $LB 23
+-$IDcm  $POcm;
+-$ALcm  $NUcm;       # includes $LB19
+-$HLcm  $NUcm;
+-$CM+   $NUcm;       # Rule 10, any otherwise unattached CM behaves as AL
+-$NUcm  $ALcm;
+-$NUcm  $HLcm;
+-
+-#
+-# LB 24
+-#
+-$PRcm $IDcm;
+-$ALcm $PRcm;
+-$PRcm ($ALcm | $HLcm);
+-$POcm ($ALcm | $HLcm);
+-
+-#
+-# LB 25   Numbers.
+-#
+-($PRcm | $POcm)? ($OPcm)? $NUcm ($NUcm | $SYcm | $IScm)* $CLcm? ($PRcm | $POcm)?;
+-
+-# LB 26  Do not break a Korean syllable
++# LB 21a Don't break after Hebrew + Hyphen
++#   HL (HY | BA) x
+ #
+-$JLcm ($JLcm | $JVcm | $H2cm | $H3cm);
+-($JVcm | $H2cm) ($JVcm | $JTcm);
+-($JTcm | $H3cm) $JTcm;
+-
+-# LB 27  Treat korean Syllable Block the same as ID  (don't break it)
+-($JLcm | $JVcm | $JTcm | $H2cm | $H3cm) $INcm;
+-($JLcm | $JVcm | $JTcm | $H2cm | $H3cm) $POcm;
+-$PRcm ($JLcm | $JVcm | $JTcm | $H2cm | $H3cm);
++$HL $CM* ($HY | $BA) $CM* [^$CB]?;
++# LB 21b (forward) Don't break between SY and HL
++# (break between HL and SY already disallowed by LB 13 above)
++$SY $CM* $HL;
+-# LB 28   Do not break between alphabetics
++# LB 22  Do not break before ellipses
+ #
+-($ALcm | $HLcm) ($ALcm | $HLcm);
+-$CM+ ($ALcm | $HLcm);      # The $CM+ is from rule 10, an unattached CM is treated as AL
++$LB20NonBreaks $CM*    $IN;
++^$CM+ $IN;
+-# LB 29
+-$IScm ($ALcm | $NUcm);
++# LB 23
+ #
+-# Rule 30   Do not break between letters, numbers or ordinary symbols
+-#           and opening or closing punctuation
+-#
+-($ALcm | $HLcm | $NUcm) $OPcm;
+-$CM+ $OPcm;
+-$CLcm ($ALcm | $HLcm | $NUcm);
++($ALPlus | $HL) $CM* $NU;
++^$CM+  $NU;       # Rule 10, any otherwise unattached CM behaves as AL
++$NU $CM* ($ALPlus | $HL);
++# LB 23a
+ #
+-#  Reverse Rules.
+-#
+-## -------------------------------------------------
++$PR $CM* ($ID | $EB | $EM);
++($ID | $EB | $EM) $CM*  $PO;
+-!!reverse;
+-
+-$CM+ $ALPlus;
+-$CM+ $BA;
+-$CM+ $BB;
+-$CM+ $B2;
+-$CM+ $CL;
+-$CM+ $EX;
+-$CM+ $GL;
+-$CM+ $HL;
+-$CM+ $HY;
+-$CM+ $H2;
+-$CM+ $H3;
+-$CM+ $ID;
+-$CM+ $IN;
+-$CM+ $IS;
+-$CM+ $JL;
+-$CM+ $JV;
+-$CM+ $JT;
+-$CM+ $NS;
+-$CM+ $NU;
+-$CM+ $OP;
+-$CM+ $PO;
+-$CM+ $PR;
+-$CM+ $QU;
+-$CM+ $SY;
+-$CM+ $WJ;
+-$CM+;
+-
+-
+-#
+-#  Sequences of the form  (shown forwards)
+-#      [CANT_CM]  <break>  [CM]  [whatever]
+-#  The CM needs to behave as an AL
+-#
+-$AL_FOLLOW $CM+ / (
+-          [$BK $CR $LF $NL $ZW {eof}] |
+-          $SP+ $CM+ $SP |
+-          $SP+ $CM* ([^$OP $CM $SP] | [$AL {eof}]));   # if LB 14 will match, need to suppress this break.
+-                                               #  LB14 says    OP SP* x .        
+-                                               #    becomes    OP SP* x AL
+-                                               #    becomes    OP SP* x CM+ AL_FOLLOW
+-                                               #
+-                                               # Further note:  the $AL in [$AL {eof}] is only to work around
+-                                               #                a rule compiler bug which complains about
+-                                               #                empty sets otherwise.
+-          
+-#
+-#  Sequences of the form  (shown forwards)
+-#      [CANT_CM]  <break> [CM]  <break>  [PR]
+-#  The CM needs to behave as an AL
+-#  This rule is concerned about getting the second of the two <breaks> in place.
+-#
+-
+-[$PR   ] / $CM+ [$BK $CR $LF $NL $ZW $SP {eof}];
+-
+-
+-
+-# LB 4, 5, 5
+-
+-$LB4Breaks [$LB4NonBreaks-$CM];
+-$LB4Breaks $CM+ $CAN_CM;
+-$LF $CR;
+-
+-
+-# LB 7         x SP
+-#              x ZW
+-[$SP $ZW] [$LB4NonBreaks-$CM];
+-[$SP $ZW] $CM+ $CAN_CM;
+-# LB 8 Break after zero width space
+-
+-
+-# LB 9,10  Combining marks.
+-#    X   $CM needs to behave like X, where X is not $SP or controls.
+-#    $CM not covered by the above needs to behave like $AL
+-# Stick together any combining sequences that don't match other rules.
+-$CM+ $CAN_CM;
+-
+-
+-# LB 11
+-$CM* $WJ $CM* $CAN_CM;
+-$CM* $WJ      [$LB8NonBreaks-$CM];
+-
+-     $CANT_CM $CM* $WJ;
+-$CM* $CAN_CM  $CM* $WJ;
+-
+-# LB 12
+-#         x GL
+ #
+-$CM* $GL $CM* [$LB8NonBreaks-$CM-$SP];
++# LB 24
++#
++($PR | $PO) $CM* ($ALPlus | $HL);
++($ALPlus | $HL) $CM* ($PR | $PO);
++^$CM+ ($PR | $PO);       # Rule 10, any otherwise unattached CM behaves as AL
+ #
+-#     GL  x
++# LB 25   Numbers.
+ #
+-$CANT_CM $CM* $GL;
+-$CM* $CAN_CM $CM* $GL;
++(($PR | $PO) $CM*)? (($OP | $HY) $CM*)? ($IS $CM*)? $NU ($CM* ($NU | $SY | $IS))*
++    ($CM* ($CL | $CP))? ($CM* ($PR | $PO))?;
++### BEGIN CUSTOMIZATION
++### i#83229: Allow line break after hyphen in number range context.
++### The default ICU rules treat number ranges (e.g. 100-199) as a single token. This change forces
++### a break opportunity after the embedded '-', but only if followed by another numeral.
++###
++### This customization does not replace any existing rule.
++### Maintainers: note that this rule should consist of two instances of the LB 25 numbers rule,
++### separated by a hyphen and an explicit break.
+-# LB 13
+-$CL $CM+ $CAN_CM;
+-$EX $CM+ $CAN_CM;
+-$IS $CM+ $CAN_CM;
+-$SY $CM+ $CAN_CM;
++((($PR | $PO) $CM*)? (($OP | $HY) $CM*)? ($IS $CM*)? $NU ($CM* ($NU | $SY | $IS))*
++    ($CM* ($CL | $CP))? ($CM* ($PR | $PO))?)
++    ($HY $CM*) /
++((($PR | $PO) $CM*)? (($OP | $HY) $CM*)? ($IS $CM*)? $NU ($CM* ($NU | $SY | $IS))*
++    ($CM* ($CL | $CP))? ($CM* ($PR | $PO))?);
+-$CL [$LB8NonBreaks-$CM];
+-$EX [$LB8NonBreaks-$CM];
+-$IS [$LB8NonBreaks-$CM];
+-$SY [$LB8NonBreaks-$CM];
++### END CUSTOMIZATION
+-# Rule 13 & 14 taken together for an edge case.
+-#   Match this, shown forward
+-#     OP SP+  ($CM+ behaving as $AL) (CL | EX | IS | IY)
+-#   This really wants to chain at the $CM+ (which is acting as an $AL)
+-#   except for $CM chaining being disabled.
+-[$CL $EX $IS $SY] $CM+ $SP+ $CM* $OP;  
++### TODO
++### ((PrefixNumeric | PostfixNumeric) CombMark*) ? ((OpenPunc | Hyphen) CombMark*)?
++###    (InfixNumeric CombMark*)? Numeric (CombMark* (Numeric | BreakSym | InfixNumeric))*
++###    (CombMark* (ClosePunc | CloseParen))? (CombMark* (PrefixNumeric | PostfixNumeric))?
+-# LB 14    OP SP* x
++# LB 26  Do not break a Korean syllable
+ #
+-$CM* $CAN_CM    $SP* $CM* $OP;
+-     $CANT_CM   $SP* $CM* $OP;
+-$AL_FOLLOW? $CM+  $SP $SP* $CM* $OP;     #  by LB 10, behaves like $AL_FOLLOW? $AL $SP* $CM* $OP
+-     
+-     $AL_FOLLOW_NOCM $CM+ $SP+ $CM* $OP;
+-$CM* $AL_FOLLOW_CM   $CM+ $SP+ $CM* $OP;
+-$SY $CM $SP+ $OP;   # TODO:  Experiment.  Remove.
+-
+-
+-
+-# LB 15
+-# $CM* $OP $SP* $CM* $QU;
+-
+-# LB 16
+-$CM* $NS $SP* $CM* $CL;
++$JL $CM* ($JL | $JV | $H2 | $H3);
++($JV | $H2) $CM* ($JV | $JT);
++($JT | $H3) $CM* $JT;
+-# LB 17
+-$CM* $B2 $SP* $CM* $B2;
+-
+-# LB 18  break after spaces
+-#        Nothing explicit needed here.
+-
+-
+-#
+-# LB 19
+-#
+-$CM* $QU $CM* $CAN_CM;                                #   . x QU
+-$CM* $QU      $LB18NonBreaks;
++# LB 27  Treat korean Syllable Block the same as ID  (don't break it)
++($JL | $JV | $JT | $H2 | $H3) $CM* $PO;
++$PR $CM* ($JL | $JV | $JT | $H2 | $H3);
+-$CM* $CAN_CM  $CM* $QU;                               #   QU x .
+-     $CANT_CM $CM* $QU;
+-     
+-#
+-#  LB 20  Break before and after CB.
+-#         nothing needed here.
++# LB 28   Do not break between alphabetics
+ #
+-
+-# LB 21
+-$CM* ($BA | $HY | $NS) $CM* [$LB20NonBreaks-$CM];     #  . x (BA | HY | NS)
+-
+-$CM* [$LB20NonBreaks-$CM] $CM* $BB;                   #  BB x .
+-[^$CB] $CM* $BB;                                      # 
+-
+-# LB21a
+-[^$CB] $CM* ($HY | $BA) $CM* $HL;
+-
+-# LB 22
+-$CM* $IN $CM* ($ALPlus | $HL);
+-$CM* $IN $CM* $ID;
+-$CM* $IN $CM* $IN;
+-$CM* $IN $CM* $NU;
+-
+-# LB 23
+-$CM* $PO $CM* $ID;
+-$CM* $NU $CM* ($ALPlus | $HL);
+-$CM* ($ALPlus | $HL) $CM* $NU;
+-
+-# LB 24
+-$CM* $ID $CM* $PR;
+-$CM* $PR $CM* $ALPlus;
+-$CM* ($ALPlus | $HL) $CM* $PR;
+-$CM* ($ALPlus | $HL) $CM* $PO;
+-
+-$CM* $ALPlus $CM* ($IS | $SY | $HY)+ / $SP;
+-$CM* $NU+ $CM* $HY+ / $SP;
+-
+-# LB 25
+-($CM* ($PR | $PO))? ($CM* $CL)? ($CM* ($NU | $IS | $SY))* $CM* $NU ($CM* ($OP))? ($CM* ($PR | $PO))?;
+-
+-# LB 26
+-$CM* ($H3 | $H2 | $JV | $JL) $CM* $JL;
+-$CM* ($JT | $JV) $CM* ($H2 | $JV);
+-$CM* $JT $CM* ($H3 | $JT);
+-
+-# LB 27
+-$CM* $IN $CM* ($H3 | $H2 | $JT | $JV | $JL);
+-$CM* $PO $CM* ($H3 | $H2 | $JT | $JV | $JL);
+-$CM* ($H3 | $H2 | $JT | $JV | $JL) $CM* $PR;
+-
+-# LB 28
+-$CM* ($ALPlus | $HL) $CM* ($ALPlus | $HL);
++($ALPlus | $HL) $CM* ($ALPlus | $HL);
++^$CM+ ($ALPlus | $HL);      # The $CM+ is from rule 10, an unattached CM is treated as AL
+ # LB 29
+-$CM* ($NU | $ALPlus) $CM* $IS+ [^$SP];
++$IS $CM* ($ALPlus | $HL);
+ # LB 30
+-$CM* $OP $CM* ($ALPlus | $HL | $NU);
+-$CM* ($ALPlus | $HL | $NU) $CM* ($CL | $SY)+ [^$SP];
+-
+-
+-## -------------------------------------------------
+-
+-!!safe_reverse;
+-
+-# LB 7
+-$CM+ [^$CM $BK $CR $LF $NL $ZW $SP];
+-$CM+ $SP / .;
+-
+-# LB 9
+-$SP+ $CM* $OP;
+-
+-# LB 10
+-$SP+ $CM* $QU;
+-
+-# LB 11
+-$SP+ $CM* $CL;
+-$SP+ $CM* $B2;
+-
+-# LB 21
+-$CM* ($HY | $BA) $CM* $HL;
+-
+-# LB 18
+-($CM* ($IS | $SY))+ $CM* $NU;
+-$CL $CM* ($NU | $IS | $SY);
+-
+-# For dictionary-based break
+-$dictionary $dictionary;
+-
+-## -------------------------------------------------
+-
+-!!safe_forward;
+-
+-# Skip forward over all character classes that are involved in
+-#   rules containing patterns with possibly more than one char
+-#   of context.
+-#
+-#  It might be slightly more efficient to have specific rules
+-#  instead of one generic one, but only if we could
+-#  turn off rule chaining.  We don't want to move more
+-#  than necessary.
+-#
+-[$CM $OP $QU $CL $B2 $PR $HY $BA $SP $dictionary]+ [^$CM $OP $QU $CL $B2 $PR $HY $BA $dictionary];
+-$dictionary $dictionary;
+-
++($ALPlus | $HL | $NU) $CM* $OP30;
++^$CM+ $OP30;         # The $CM+ is from rule 10, an unattached CM is treated as AL.
++$CP30 $CM* ($ALPlus | $HL | $NU);
++
++# LB 30a  Do not break between regional indicators. Break after pairs of them.
++#         Tricky interaction with LB8a: ZWJ x .   together with ZWJ acting like a CM.
++$RI $CM* $RI                 / [[^$BK $CR $LF $NL $SP $ZW $WJ $CL $CP $EX $IS $SY $GL $QU $BA $HY $NS $IN $CM]];
++$RI $CM* $RI $CM* [$CM-$ZWJ] / [[^$BK $CR $LF $NL $SP $ZW $WJ $CL $CP $EX $IS $SY $GL $QU $BA $HY $NS $IN $CM]];
++$RI $CM* $RI $CM* [$BK $CR $LF $NL $SP $ZW $WJ $CL $CP $EX $IS $SY $GL $QU $BA $HY $NS $IN $ZWJ {eof}];
++# note: the preceding rule includes {eof} rather than having the last [set] term qualified with '?'
++#       because of the chain-out behavior difference. The rule must chain out only from the [set characters],
++#       not from the preceding $RI or $CM, which it would be able to do if the set were optional.
++
++# LB30b Do not break between an emoji base (or potential emoji) and an emoji modifier.
++$EB $CM* $EM;
++$ExtPictUnassigned $CM* $EM;
++
++# LB 31 Break everywhere else.
++#       Match a single code point if no other rule applies.
++.;
+diff --git a/i18npool/source/breakiterator/data/sent.txt b/i18npool/source/breakiterator/data/sent.txt
+deleted file mode 100644
+index 7fada89e6278..000000000000
+--- a/i18npool/source/breakiterator/data/sent.txt
++++ /dev/null
+@@ -1,128 +0,0 @@
+-#
+-#   Copyright (C) 2002-2006, International Business Machines Corporation and others.
+-#       All Rights Reserved.
+-#
+-#   file:  sent.txt
+-#
+-#   ICU Sentence Break Rules
+-#      See Unicode Standard Annex #29.
+-#      These rules are based on SA 29 version 5.0.0
+-#      Includes post 5.0 changes to treat Japanese half width voicing marks
+-#        as Grapheme Extend.
+-#
+-
+-
+-$VoiceMarks   = [\uff9e\uff9f];
+-$Thai         = [:Script = Thai:];
+-
+-#
+-# Character categories as defined in TR 29
+-#
+-$Sep       = [\p{Sentence_Break = Sep}];
+-$Format    = [\p{Sentence_Break = Format}];
+-$Sp        = [\p{Sentence_Break = Sp}];
+-$Lower     = [\p{Sentence_Break = Lower}];
+-$Upper     = [\p{Sentence_Break = Upper}];
+-$OLetter   = [\p{Sentence_Break = OLetter}-$VoiceMarks];
+-$Numeric   = [\p{Sentence_Break = Numeric}];
+-$ATerm     = [\p{Sentence_Break = ATerm}];
+-$STerm     = [\p{Sentence_Break = STerm}];
+-$Close     = [\p{Sentence_Break = Close}];
+-
+-#
+-# Define extended forms of the character classes,
+-#   incorporate grapheme cluster + format chars.
+-#   Rules 4 and 5.  
+-
+-
+-$CR         = \u000d;
+-$LF         = \u000a;
+-$Extend     = [[:Grapheme_Extend = TRUE:]$VoiceMarks];
+-
+-$SpEx       = $Sp      ($Extend | $Format)*;
+-$LowerEx    = $Lower   ($Extend | $Format)*;
+-$UpperEx    = $Upper   ($Extend | $Format)*;
+-$OLetterEx  = $OLetter ($Extend | $Format)*;
+-$NumericEx  = $Numeric ($Extend | $Format)*;
+-$ATermEx    = $ATerm   ($Extend | $Format)*;
+-$STermEx    = $STerm   ($Extend | $Format)*;
+-$CloseEx    = $Close   ($Extend | $Format)*;
+-
+-
+-## -------------------------------------------------
+-
+-!!chain;
+-!!forward;
+-
+-# Rule 3 - break after separators.  Keep CR/LF together.
+-#
+-$CR $LF;
+-
+-$LettersEx = [$OLetter $Upper $Lower $Numeric $Close $STerm] ($Extend | $Format)*;
+-$LettersEx* $Thai $LettersEx* ($ATermEx | $SpEx)*;
+-
+-# Rule 4 - Break after $Sep.
+-# Rule 5 - Ignore $Format and $Extend
+-#
+-[^$Sep]? ($Extend | $Format)*;
+-
+-
+-# Rule 6
+-$ATermEx $NumericEx;
+-
+-# Rule 7
+-$UpperEx $ATermEx $UpperEx;
+-
+-#Rule 8
+-#  Note:  follows errata for Unicode 5.0 boundary rules.
+-$NotLettersEx = [^$OLetter $Upper $Lower $Sep $ATerm $STerm] ($Extend | $Format)*;
+-$ATermEx $CloseEx* $SpEx* $NotLettersEx* $Lower;
+-
+-# Rule 8a
+-($STermEx | $ATermEx) $CloseEx* $SpEx* ($STermEx | $ATermEx);
+-
+-#Rule 9, 10, 11
+-($STermEx | $ATermEx) $CloseEx* $SpEx* $Sep?;
+-
+-#Rule 12
+-[[^$STerm $ATerm $Close $Sp $Sep $Format $Extend $Thai]{bof}] ($Extend | $Format | $Close | $Sp)* [^$Thai];
+-[[^$STerm $ATerm $Close $Sp $Sep $Format $Extend]{bof}] ($Extend | $Format | $Close | $Sp)* ([$Sep{eof}] | $CR $LF){100};
+-
+-## -------------------------------------------------
+-
+-!!reverse;
+-
+-$SpEx_R       = ($Extend | $Format)* $Sp;
+-$ATermEx_R    = ($Extend | $Format)* $ATerm;
+-$STermEx_R    = ($Extend | $Format)* $STerm;
+-$CloseEx_R    = ($Extend | $Format)* $Close;
+-
+-#
+-#  Reverse rules.
+-#     For now, use the old style inexact reverse rules, which are easier
+-#     to write, but less efficient.
+-#     TODO:  exact reverse rules.  It appears that exact reverse rules
+-#            may require improving support for look-ahead breaks in the
+-#            builder.  Needs more investigation.
+-#
+-
+-[{bof}] (.? | $LF $CR) [^$Sep]* [$Sep {eof}] ($SpEx_R* $CloseEx_R* ($STermEx_R | $ATermEx_R))*;
+-#.*;
+-
+-# Explanation for this rule:
+-#
+-#    It needs to back over
+-#        The $Sep at which we probably begin
+-#        All of the non $Sep chars leading to the preceding $Sep
+-#        The preceding $Sep, which will be the second one that the rule matches.
+-#        Any immediately preceding STerm or ATerm sequences.  We need to see these
+-#              to get the correct rule status when moving forwards again.
+-#        
+-# [{bof}]           inhibit rule chaining.  Without this, rule would loop on itself and match
+-#                   the entire string.
+-#
+-# (.? | $LF $CR)    Match one $Sep instance.  Use .? rather than $Sep because position might be
+-#                   at the beginning of the string at this point, and we don't want to fail.
+-#                   Can only use {eof} once, and it is used later.
+-#
+-
+-- 
+2.39.2
+
diff --git a/debian/patches/build-against-shared-lpsolve.diff b/debian/patches/build-against-shared-lpsolve.diff
new file mode 100644 (file)
index 0000000..ddd80de
--- /dev/null
@@ -0,0 +1,27 @@
+diff --git a/configure.ac b/configure.ac
+index cdae8b5..49f3ba2 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -9468,8 +9468,9 @@ if test "$with_system_lpsolve" = "yes"; then
+         # some systems need this. Like Ubuntu...
+         AC_CHECK_LIB(m, floor)
+         AC_CHECK_LIB(dl, dlopen)
++        AC_CHECK_LIB(colamd, colamd)
+         AC_CHECK_LIB([lpsolve55], [make_lp], [:],
+-            [ AC_MSG_ERROR(lpsolve library not found or too old.)], [])
++            [ AC_MSG_ERROR(lpsolve library not found or too old.)], [-L/usr/lib/lp_solve])
+         LIBS=$save_LIBS
+     else
+         AC_MSG_RESULT([internal])
+diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
+index a4daea7..0dea12d 100644
+--- a/RepositoryExternal.mk
++++ b/RepositoryExternal.mk
+@@ -1961,6 +1961,7 @@ ifeq ($(WITH_LPSOLVER),lpsolve)
+ define gb_LinkTarget__use_lpsolve
+ $(call gb_LinkTarget_add_libs,$(1),-llpsolve55)
++$(call gb_LinkTarget_add_ldflags,$(1),-L/usr/lib/lp_solve -Wl$(COMMA)-rpath=/usr/lib/lp_solve)
+ $(call gb_LinkTarget_add_defs,$(1),\
+       -DSYSTEM_LPSOLVE \
+ )
diff --git a/debian/patches/cppunit-optional.diff b/debian/patches/cppunit-optional.diff
new file mode 100644 (file)
index 0000000..3cb6084
--- /dev/null
@@ -0,0 +1,212 @@
+diff --git a/configure.ac b/configure.ac
+index c12fe95a561c..66d327ae8fb8 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2047,6 +2047,11 @@ AC_ARG_WITH(bffvalidator,
+          See https://web.archive.org/web/20200804155745/https://www.microsoft.com/en-us/download/details.aspx?id=26794]),
+ ,with_bffvalidator=no)
++libo_FUZZ_ARG_WITH(cppunit,
++    AS_HELP_STRING([--without-cppunit>],
++        [disable building(!) of cppunit stuff also built during make build]),
++,with_cppunit=yes)
++
+ libo_FUZZ_ARG_WITH(junit,
+     AS_HELP_STRING([--with-junit=<absolute path to JUnit 4 jar>],
+         [Specifies the JUnit 4 jar file to use for JUnit-based tests.
+@@ -7932,8 +7959,12 @@ dnl ===================================================================
+ dnl Check for system cppunit
+ dnl ===================================================================
+ if test "$_os" != "Android" ; then
++  if test "$with_cppunit" != "no"; then
+     libo_CHECK_SYSTEM_MODULE([cppunit],[CPPUNIT],[cppunit >= 1.14.0])
++    ENABLE_CPPUNIT=TRUE
++  fi
+ fi
++AC_SUBST(ENABLE_CPPUNIT)
+ dnl ===================================================================
+ dnl Check whether freetype is available
+diff --git a/config_host.mk.in b/config_host.mk.in
+index 8888355642ef..ac8a4b64967e 100644
+--- a/config_host.mk.in
++++ b/config_host.mk.in
+@@ -147,6 +147,7 @@ export ENABLE_COINMP=@ENABLE_COINMP@
+ SYSTEM_COINMP=@SYSTEM_COINMP@
+ export COINMP_CFLAGS=@COINMP_CFLAGS@
+ export COINMP_LIBS=@COINMP_LIBS@
++export ENABLE_CPPUNIT=@ENABLE_CPPUNIT@
+ export ENABLE_ATSPI_TESTS=@ENABLE_ATSPI_TESTS@
+ export ENABLE_CUPS=@ENABLE_CUPS@
+ export ENABLE_CURL=@ENABLE_CURL@
+diff --git a/sal/Module_sal.mk b/sal/Module_sal.mk
+index fe9523a7a6e2..719edf8c6252 100644
+--- a/sal/Module_sal.mk
++++ b/sal/Module_sal.mk
+@@ -10,7 +10,6 @@
+ $(eval $(call gb_Module_Module,sal))
+ $(eval $(call gb_Module_add_targets,sal,\
+-      $(if $(CROSS_COMPILING),,$(if $(filter TRUE,$(DISABLE_DYNLOADING)),,Executable_cppunittester)) \
+       $(if $(filter $(OS),ANDROID EMSCRIPTEN), \
+               Library_lo-bootstrap) \
+       Library_sal \
+@@ -33,4 +32,10 @@ $(eval $(call gb_Module_add_check_targets,sal,\
+ endif
++ifeq ($(ENABLE_CPPUNIT),TRUE)
++$(eval $(call gb_Module_add_check_targets,sal,\
++      $(if $(CROSS_COMPILING),,$(if $(filter TRUE,$(DISABLE_DYNLOADING)),,Executable_cppunittester)) \
++))
++endif
++
+ # vim: set noet sw=4 ts=4:
+diff --git a/sdext/Executable_pdf2xml.mk b/sdext/Executable_pdf2xml.mk
+index 373f40da36fd..c0401bef9c7a 100644
+--- a/sdext/Executable_pdf2xml.mk
++++ b/sdext/Executable_pdf2xml.mk
+@@ -13,10 +13,10 @@ $(eval $(call gb_Executable_use_sdk_api,pdf2xml))
+ $(eval $(call gb_Executable_use_externals,pdf2xml,\
+     boost_headers \
+-    cppunit \
+     zlib \
+ ))
++
+ $(eval $(call gb_Executable_set_include,pdf2xml,\
+     -I$(SRCDIR)/sdext/source/pdfimport/inc \
+     $$(INCLUDE) \
+@@ -27,13 +27,21 @@ $(eval $(call gb_Executable_use_libraries,pdf2xml,\
+     comphelper \
+     cppu \
+-    unotest \
+     cppuhelper \
+     sal \
+     tl \
+     xo \
+     i18nutil \
+ ))
++ifeq ($(ENABLE_CPPUNIT),TRUE)
++$(eval $(call gb_Executable_use_externals,pdf2xml,\
++    cppunit \
++))
++$(eval $(call gb_Executable_use_libraries,pdf2xml,\
++    unotest \
++))
++endif
++
+ $(eval $(call gb_Executable_use_library_objects,pdf2xml,pdfimport))
+ $(eval $(call gb_Executable_add_exception_objects,pdf2xml,\
+diff --git a/smoketest/Module_smoketest.mk b/smoketest/Module_smoketest.mk
+index 217dbfa6543a..fa2d0d489bd7 100644
+--- a/smoketest/Module_smoketest.mk
++++ b/smoketest/Module_smoketest.mk
+@@ -13,8 +13,12 @@ $(eval $(call gb_Module_Module,smoketest))
+ ifeq ($(CROSS_COMPILING),)
+ ifneq (,$(filter DESKTOP,$(BUILD_TYPE)))
++ifeq ($(ENABLE_CPPUNIT),TRUE)
+ $(eval $(call gb_Module_add_targets,smoketest,\
+       Library_smoketest \
++))
++endif
++$(eval $(call gb_Module_add_targets,smoketest,\
+       Zip_smoketestdoc \
+ ))
+ endif
+@@ -26,6 +30,7 @@ $(eval $(call gb_Module_add_targets,smoketest,\
+ endif
+ endif
++ifeq ($(ENABLE_CPPUNIT),TRUE)
+ ifneq (MACOSX/TRUE,$(OS)/$(ENABLE_MACOSX_SANDBOX))
+ ifneq ($(filter EXTENSIONS,$(BUILD_TYPE)),)
+ $(eval $(call gb_Module_add_subsequentcheck_targets,smoketest,\
+@@ -33,6 +38,7 @@ $(eval $(call gb_Module_add_subsequentcheck_targets,smoketest,\
+ ))
+ endif
+ endif
++endif
+ endif
+diff --git a/test/Module_test.mk b/test/Module_test.mk
+index e1051f16b5a0..d1787cb5789b 100644
+--- a/test/Module_test.mk
++++ b/test/Module_test.mk
+@@ -11,6 +11,7 @@ $(eval $(call gb_Module_Module,test))
+ ifneq (,$(filter DESKTOP,$(BUILD_TYPE)))
++ifeq ($(ENABLE_CPPUNIT),TRUE)
+ $(eval $(call gb_Module_add_targets,test,\
+     Library_test \
+     Library_test_setupvcl \
+@@ -18,6 +19,7 @@ $(eval $(call gb_Module_add_targets,test,\
+     CppunitTest_test_a11y \
+     CppunitTest_test_xpath \
+ ))
++endif
+ endif
+diff --git a/unotest/Module_unotest.mk b/unotest/Module_unotest.mk
+index bdffe8e8ac14..acdd4da6c539 100644
+--- a/unotest/Module_unotest.mk
++++ b/unotest/Module_unotest.mk
+@@ -12,12 +12,14 @@ $(eval $(call gb_Module_Module,unotest))
+ ifeq ($(gb_Side),host)
+ ifneq (,$(filter DESKTOP,$(BUILD_TYPE)))
++ifeq ($(ENABLE_CPPUNIT),TRUE)
+ $(eval $(call gb_Module_add_targets,unotest,\
+       Library_unobootstrapprotector \
+       Library_unoexceptionprotector \
+       Library_unotest \
+ ))
+ endif
++endif
+ ifneq ($(ENABLE_JAVA),)
+ $(eval $(call gb_Module_add_targets,unotest,\
+diff --git a/testtools/Module_testtools.mk b/testtools/Module_testtools.mk
+index a1b84e175b30..08e4aad24c11 100644
+--- a/testtools/Module_testtools.mk
++++ b/testtools/Module_testtools.mk
+@@ -11,6 +11,8 @@ $(eval $(call gb_Module_Module,testtools))
+ ifeq ($(CROSS_COMPILING),)
++ifeq ($(ENABLE_CPPUNIT),TRUE)
++
+ $(eval $(call gb_Module_add_targets,testtools,\
+       CustomTarget_bridgetest \
+       InternalUnoApi_bridgetest \
+@@ -41,4 +43,6 @@ $(eval $(call gb_Module_add_check_targets,testtools,\
+ endif
++endif
++
+ # vim:set noet sw=4 ts=4:
+diff --git a/Repository.mk b/Repository.mk
+index dbb628f2a6b3..4387e665624e 100644
+--- a/Repository.mk
++++ b/Repository.mk
+@@ -799,8 +805,12 @@ endif
+ # 'test_unittest' is only package delivering to workdir.
+ # Other packages could be potentially autoinstalled.
++ifeq ($(ENABLE_CPPUNIT),TRUE)
+ $(eval $(call gb_Helper_register_packages, \
+       test_unittest \
++))
++endif
++$(eval $(call gb_Helper_register_packages, \
+       cli_basetypes_copy \
+       extras_wordbook \
+       instsetoo_native_setup \
diff --git a/debian/patches/debian-debug.diff b/debian/patches/debian-debug.diff
new file mode 100644 (file)
index 0000000..8a5efdd
--- /dev/null
@@ -0,0 +1,47 @@
+diff --git a/solenv/gbuild/platform/com_GCC_defs.mk b/solenv/gbuild/platform/com_GCC_defs.mk
+index 9de88a2..9161a4e 100644
+--- a/solenv/gbuild/platform/com_GCC_defs.mk
++++ b/solenv/gbuild/platform/com_GCC_defs.mk
+@@ -170,6 +170,8 @@ gb_COMPILERNOOPTFLAGS := -O0 -fstrict-aliasing -fstrict-overflow
+ ifeq ($(OS),ANDROID)
+ gb_DEBUGINFO_FLAGS=-glldb
+ # Clang does not know -ggdb2 or some other options
++else ifeq ($(enable_symbols),SMALL)
++gb_DEBUGINFO_FLAGS=-g1
+ else ifeq ($(HAVE_GCC_GGDB2),TRUE)
+ gb_DEBUGINFO_FLAGS=-ggdb2
+ else
+diff --git a/configure.ac b/configure.ac
+index 2d62af9981a9..b1ad5a970700 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -4056,6 +4056,9 @@ fi
+ if test "$enable_symbols" = yes; then
+     ENABLE_SYMBOLS_FOR=all
+     AC_MSG_RESULT([yes])
++elif test "$enable_symbols" = "SMALL" -o "$enable_symbols" = "small"; then
++    ENABLE_SYMBOLS_FOR=all
++    AC_MSG_RESULT([yes, small ones])
+ elif test "$enable_symbols" = no; then
+     ENABLE_SYMBOLS_FOR=
+     AC_MSG_RESULT([no])
+@@ -4064,6 +4067,7 @@ else
+     ENABLE_SYMBOLS_FOR="$enable_symbols"
+     AC_MSG_RESULT([for "$enable_symbols"])
+ fi
++AC_SUBST(enable_symbols)
+ AC_SUBST(ENABLE_SYMBOLS_FOR)
+ if test -n "$with_android_ndk" -a \( -n "$ENABLE_SYMBOLS" -o -n "$ENABLE_DEBUG" -o -n "$ENABLE_DBGUTIL" \) -a "$ENABLE_DEBUGINFO_FOR" = "all"; then
+diff --git a/config_host.mk.in b/config_host.mk.in
+index 7df26713a1dd..174c4e50466c 100644
+--- a/config_host.mk.in
++++ b/config_host.mk.in
+@@ -208,6 +209,7 @@ export ENABLE_SDREMOTE_BLUETOOTH=@ENABLE_SDREMOTE_BLUETOOTH@
+ export ENABLE_SILENT_MSI=@ENABLE_SILENT_MSI@
+ export ENABLE_SKIA=@ENABLE_SKIA@
+ export ENABLE_SKIA_DEBUG=@ENABLE_SKIA_DEBUG@
++export enable_symbols=@enable_symbols@
+ export ENABLE_SYMBOLS_FOR=@ENABLE_SYMBOLS_FOR@
+ export ENABLE_VALGRIND=@ENABLE_VALGRIND@
+ export ENABLE_WASM_EXCEPTIONS=@ENABLE_WASM_EXCEPTIONS@
diff --git a/debian/patches/debian-hardened-buildflags-CPPFLAGS.diff b/debian/patches/debian-hardened-buildflags-CPPFLAGS.diff
new file mode 100644 (file)
index 0000000..26061d6
--- /dev/null
@@ -0,0 +1,37 @@
+--- a/configure.ac-old 2012-03-02 21:48:47.000000000 +0000
++++ b/configure.ac     2012-03-02 21:51:29.000000000 +0000
+@@ -10225,6 +10225,11 @@ else
+ AC_SUBST(GSTREAMER_1_0_LIBS)
+ AC_SUBST(ENABLE_GSTREAMER_1_0)
++if test -x /usr/bin/dpkg-buildflags; then
++       HARDEN_CPPFLAGS=`dpkg-buildflags --get CPPFLAGS 2>/dev/null`
++fi
++AC_SUBST(HARDEN_CPPFLAGS)
++
+ ENABLE_OPENGL_TRANSITIONS=
+ ENABLE_OPENGL_CANVAS=
+ if test $_os = iOS -o $_os = Android -o "$ENABLE_FUZZERS" = "TRUE"; then
+--- a/config_host.mk.in-old    2012-04-06 14:17:55.164239390 +0200
++++ b/config_host.mk.in        2012-04-06 14:18:55.440239065 +0200
+@@ -76,6 +76,7 @@
+ export CPPUNIT_LIBS=$(gb_SPACE)@CPPUNIT_LIBS@
+ export CPUNAME=@CPUNAME@
+ export CDEFAULTOPT=@CDEFAULTOPT@
++export HARDEN_CPPFLAGS=@HARDEN_CPPFLAGS@
+ export CROSS_COMPILING=@CROSS_COMPILING@
+ export CURL=@CURL@
+ export CURL_CFLAGS=$(gb_SPACE)@CURL_CFLAGS@
+diff --git a/solenv/gbuild/gbuild.mk b/solenv/gbuild/gbuild.mk
+index c71cb40..f826d65 100644
+--- a/solenv/gbuild/gbuild.mk
++++ b/solenv/gbuild/gbuild.mk
+@@ -259,6 +259,8 @@ gb_GLOBALDEFS += \
+               DISABLE_DYNLOADING \
+       )
++gb_GLOBALDEFS += $(HARDEN_CPPFLAGS)
++
+ gb_GLOBALDEFS := $(sort $(gb_GLOBALDEFS))
+ # Common environment variables passed into all gb_*Test classes:
diff --git a/debian/patches/debian-hardened-buildflags-no-LO-fstack-protector-strong.diff b/debian/patches/debian-hardened-buildflags-no-LO-fstack-protector-strong.diff
new file mode 100644 (file)
index 0000000..00ae5c5
--- /dev/null
@@ -0,0 +1,32 @@
+don't hardcode -fstack-protector-strong in configure.ac/gbuild. We get the
+hardening flags from dpkg-buildflags anyway.
+
+diff --git a/solenv/gbuild/platform/com_GCC_defs.mk b/solenv/gbuild/platform/com_GCC_defs.mk
+index 712a61df544f..0d50f538ba7b 100644
+--- a/solenv/gbuild/platform/com_GCC_defs.mk
++++ b/solenv/gbuild/platform/com_GCC_defs.mk
+@@ -67,7 +67,6 @@ gb_CFLAGS_COMMON := \
+       -fmessage-length=0 \
+       -fno-common \
+       -pipe \
+-      $(if $(filter EMSCRIPTEN,$(OS)),-fno-stack-protector,-fstack-protector-strong) \
+ gb_CXXFLAGS_COMMON := \
+       -Wall \
+@@ -82,7 +81,6 @@ gb_CXXFLAGS_COMMON := \
+       -fmessage-length=0 \
+       -fno-common \
+       -pipe \
+-      $(if $(filter EMSCRIPTEN,$(OS)),-fno-stack-protector,-fstack-protector-strong) \
+ ifeq ($(HAVE_WDEPRECATED_COPY_DTOR),TRUE)
+ gb_CXXFLAGS_COMMON += -Wdeprecated-copy-dtor
+@@ -136,8 +134,6 @@ endif
+ gb_VISIBILITY_FLAGS_CXX := -fvisibility-inlines-hidden
+ gb_CXXFLAGS_COMMON += $(gb_VISIBILITY_FLAGS_CXX)
+-gb_LinkTarget_LDFLAGS += $(if $(filter EMSCRIPTEN,$(OS)),-fno-stack-protector,-fstack-protector-strong)
+-
+ ifneq ($(gb_ENABLE_PCH),)
+ ifeq ($(COM_IS_CLANG),TRUE)
+ # Clang by default includes in the PCH timestamps of the files it was
diff --git a/debian/patches/debian-opt.diff b/debian/patches/debian-opt.diff
new file mode 100644 (file)
index 0000000..e1a8153
--- /dev/null
@@ -0,0 +1,26 @@
+diff --git a/configure.ac b/configure.ac
+index f06ef8e..91ce612 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -12776,6 +12776,9 @@ fi
+ AC_SUBST(SYSTEMD_RUN)
+ AC_SUBST(WITH_COREDUMPCTL)
++CDEFAULTOPT=`echo $CFLAGS 2>/dev/null | grep -E -o "\-O[[0-3]]"`
++AC_SUBST(CDEFAULTOPT)
++
+ dnl ===================================================================
+ dnl Setting up the environment.
+ dnl ===================================================================
+diff --git a/config_host.mk.in b/config_host.mk.in
+index 1ec3268..abb45b1 100644
+--- a/config_host.mk.in
++++ b/config_host.mk.in
+@@ -69,6 +69,7 @@ export CPP_LIBRARY=@CPP_LIBRARY@
+ export CPPUNIT_CFLAGS=$(gb_SPACE)@CPPUNIT_CFLAGS@
+ export CPPUNIT_LIBS=$(gb_SPACE)@CPPUNIT_LIBS@
+ export CPUNAME=@CPUNAME@
++export CDEFAULTOPT=@CDEFAULTOPT@
+ export CROSS_COMPILING=@CROSS_COMPILING@
+ export CURL=@CURL@
+ export CURL_CFLAGS=$(gb_SPACE)@CURL_CFLAGS@
diff --git a/debian/patches/disable-flaky-tests.diff b/debian/patches/disable-flaky-tests.diff
new file mode 100644 (file)
index 0000000..12f98da
--- /dev/null
@@ -0,0 +1,120 @@
+14:13 < mst__> _rene_, the toolkit unoapi tests are known to be flaky (in some 
+               system dependent way) e.g. on the Win@6 tinderbox it always 
+               crashes
+14:14 < mst__> _rene_, sc.ScAccessible* tests also fail on some systems some of 
+               the time
+
+diff --git a/toolkit/Module_toolkit.mk b/toolkit/Module_toolkit.mk
+index 25db0b6..14e507c 100644
+--- a/toolkit/Module_toolkit.mk
++++ b/toolkit/Module_toolkit.mk
+@@ -26,11 +26,11 @@ $(eval $(call gb_Module_add_targets,toolkit,\
+ ifneq ($(OOO_JUNIT_JAR),)
+ $(eval $(call gb_Module_add_subsequentcheck_targets,toolkit,\
+     JunitTest_toolkit_complex \
+-    JunitTest_toolkit_unoapi_1 \
+-    JunitTest_toolkit_unoapi_2 \
+-    JunitTest_toolkit_unoapi_3 \
+-    JunitTest_toolkit_unoapi_4 \
+ ))
+ endif
++#    JunitTest_toolkit_unoapi_1 \
++#    JunitTest_toolkit_unoapi_2 \
++#    JunitTest_toolkit_unoapi_3 \
++#    JunitTest_toolkit_unoapi_4 \
+ # vim: set noet sw=4 ts=4:
+diff --git a/sc/qa/unoapi/sc_1.sce b/sc/qa/unoapi/sc_1.sce
+index fa1684c..cc8e1a5 100644
+--- a/sc/qa/unoapi/sc_1.sce
++++ b/sc/qa/unoapi/sc_1.sce
+@@ -24,10 +24,3 @@
+ # i84554 -o sc.AccessibleEditableTextPara_PreviewNote
+ # i88241 -o sc.AccessibleEditableTextPara_HeaderFooter
+ -o sc.AccessibleEditableTextPara_PreviewCell
+--o sc.ScAccessibleCell
+-# i91044 -o sc.ScAccessibleCsvCell
+-# i91044 -o sc.ScAccessibleCsvGrid
+-# i84641 -o sc.ScAccessibleCsvRuler
+-# i88330 -o sc.ScAccessibleDocument
+-# i91045 -o sc.ScAccessibleDocumentPagePreview
+--o sc.ScAccessiblePageHeader
+diff --git a/sc/qa/unoapi/sc_2.sce b/sc/qa/unoapi/sc_2.sce
+index dbfc3e1..d235c5d 100644
+--- a/sc/qa/unoapi/sc_2.sce
++++ b/sc/qa/unoapi/sc_2.sce
+@@ -15,11 +15,6 @@
+ #   except in compliance with the License. You may obtain a copy of
+ #   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ #
+-# fdo#FOO -o sc.ScAccessiblePageHeaderArea
+--o sc.ScAccessiblePreviewCell
+--o sc.ScAccessiblePreviewHeaderCell
+--o sc.ScAccessiblePreviewTable
+-# fdo#45337 -o sc.ScAccessibleSpreadsheet
+ # FIXME_REMOVE_WHEN_RE_BASE_COMPLETE
+ # -o sc.ScAnnotationShapeObj
+ -o sc.ScAutoFormatFieldObj
+
+diff --git a/svx/qa/unoapi/svx.sce b/svx/qa/unoapi/svx.sce
+index 1c3925f..a16f001 100644
+--- a/svx/qa/unoapi/svx.sce
++++ b/svx/qa/unoapi/svx.sce
+@@ -25,7 +25,7 @@
+ #i111216 -o svx.AccessiblePresentationGraphicShape
+ #i111216 -o svx.AccessiblePresentationOLEShape
+ #i85539 -o svx.AccessiblePresentationShape
+--o svx.AccessibleShape
++#-o svx.AccessibleShape
+ #i90294 -o svx.GraphicExporter
+ -o svx.SvxDrawPage
+ #i85501 -o svx.SvxGraphCtrlAccessibleContext
+
+19:26 <@x1sc0> _rene_, since that test is using exact dimensions, it seems it 
+               fails on your side probably because the paragraph style is 
+               different. 1. I will change the test to avoid the exact 
+               dimensions. 2. meantime you can skip that test: 
+https://cgit.freedesktop.org/libreoffice/core/commit/?id=e05f16e6bf36efbaab16dd2ed1427a750ce7cafd
+19:26 < IZBot> core - disable UI test that does exact comparison
+19:27 < _rene_> mmh, ok, saw that but that was for a different test, so.. :)
+19:27 -!- jacobo [~jaragunde@fanzine.igalia.com] has quit [Quit: Leaving.]
+19:27 < _rene_> thanks, will do
+
+diff --git a/uitest/writer_tests/tdf79236.py b/uitest/writer_tests/tdf79236.py
+index 8585e48d8c64..704f42c009a1 100644
+--- a/sw/qa/uitest/writer_tests3/tdf79236.py
++++ b/sw/qa/uitest/writer_tests3/tdf79236.py
+@@ -8,8 +8,11 @@ from uitest.framework import UITestCase
+ from uitest.framework import UITestCase
+ from uitest.uihelper.common import type_text
++import unittest
++
+ class tdf79236(UITestCase):
++    @unittest.skip("Currently broken")
+     def test_paragraph(self):
+         with self.ui_test.create_doc_in_start_center("writer") as document:
+
+14:39 < ztamas> _rene_: chart2dump is used to fail because of font size differences, just use a bigger delta or disable it if it 
+                fails for you.
+14:40 <@sberg_> noelgrandin, no
+14:40 < noelgrandin> sberg_, sure seems that way both in the debugger and in the resulting SAL_WARN output
+14:42 < ztamas> _rene_: there were some work on making font rendering consistent on different platforms, but it's not finished 
+                yet, I guess
+diff --git a/chart2/Module_chart2.mk b/chart2/Module_chart2.mk
+index 37acfdc3730f..7d26342f179f 100644
+--- a/chart2/Module_chart2.mk
++++ b/chart2/Module_chart2.mk
+@@ -33,9 +33,9 @@ $(eval $(call gb_Module_add_slowcheck_targets,chart2,\
+     CppunitTest_chart2_import2 \
+     CppunitTest_chart2_trendcalculators \
+-    CppunitTest_chart2_dump \
+     CppunitTest_chart2_pivot_chart_test \
+     CppunitTest_chart2_geometry \
+     CppunitTest_chart2_uichart \
+ ))
++#    CppunitTest_chart2_dump \
+ ifeq ($(WITH_FONTS), TRUE)
diff --git a/debian/patches/disable-java-in-odk-build-examples-on-zero-vm.diff b/debian/patches/disable-java-in-odk-build-examples-on-zero-vm.diff
new file mode 100644 (file)
index 0000000..d8309ba
--- /dev/null
@@ -0,0 +1,58 @@
+diff --git a/config_host.mk.in b/config_host.mk.in
+index 6cea6ccf795e..d08fac922239 100644
+--- a/config_host.mk.in
++++ b/config_host.mk.in
+@@ -324,6 +324,7 @@ export JAVACFLAGS=@JAVACFLAGS@
+ export JAVAIFLAGS=@JAVAIFLAGS@
+ export JAVAIFLAGS_FOR_BUILD=@JAVAIFLAGS_FOR_BUILD@
+ export JAVAINTERPRETER=@JAVAINTERPRETER@
++export JAVA_HAS_ZERO_VM=@JAVA_HAS_ZERO_VM@
+ export JAVA_HOME=@JAVA_HOME@
+ export JAVA_HOME_FOR_BUILD=@JAVA_HOME_FOR_BUILD@
+ export JAVA_SOURCE_VER=@JAVA_SOURCE_VER@
+diff --git a/configure.ac b/configure.ac
+index 06398bfa99a7..06835ae884c4 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -7826,6 +7826,14 @@ if test "$ENABLE_JAVA" != "" -a "$cross_compiling" != "yes"; then
+             JAVAIFLAGS=-Xmx64M
+             # set to limit VM usage for javac
+             JAVACFLAGS=-J-Xmx128M
++
++            AC_MSG_CHECKING([whether $JAVAINTERPRETER is using the Zero VM])
++            if $JAVAINTERPRETER -version 2>&1 | grep -q Zero; then
++               JAVA_HAS_ZERO_VM=y
++               AC_MSG_RESULT([yes])
++            else
++               AC_MSG_RESULT([no])
++            fi
+         fi
+     else
+         AC_MSG_ERROR([Java not found. You need at least JDK 8])
+@@ -7841,6 +7849,7 @@ else
+         JAVAIFLAGS=$JAVAIFLAGS_FOR_BUILD
+     fi
+ fi
++AC_SUBST(JAVA_HAS_ZERO_VM)
+ dnl ===================================================================
+ dnl Checks for javac
+diff --git a/odk/Module_odk.mk b/odk/Module_odk.mk
+index 410f8cf8ef1e..bd05d4bba200 100644
+--- a/odk/Module_odk.mk
++++ b/odk/Module_odk.mk
+@@ -60,10 +62,14 @@ $(eval $(call gb_Module_add_check_targets,odk,\
+ ifneq ($(filter $(OS),LINUX MACOSX),)
+ $(eval $(call gb_Module_add_subsequentcheck_targets,odk, \
+     CustomTarget_build-examples \
++))
++ifneq ($(JAVA_HAS_ZERO_VM),y)
++$(eval $(call gb_Module_add_subsequentcheck_targets,odk, \
+     $(if $(ENABLE_JAVA),\
+         CustomTarget_build-examples_java \
+     ) \
+ ))
+ endif
++endif
+ # vim: set noet sw=4 ts=4:
diff --git a/debian/patches/disable-shortcuts_tab_navigation-uitest.diff b/debian/patches/disable-shortcuts_tab_navigation-uitest.diff
new file mode 100644 (file)
index 0000000..c4eacc9
--- /dev/null
@@ -0,0 +1,42 @@
+--- a/cui/qa/uitest/dialogs/shortcuts.py       2021-07-02 21:00:52.565424890 +0200
++++ /dev/null  2021-06-19 15:31:01.435382997 +0200
+@@ -1,39 +0,0 @@
+-# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
+-#
+-# This Source Code Form is subject to the terms of the Mozilla Public
+-# License, v. 2.0. If a copy of the MPL was not distributed with this
+-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+-#
+-
+-from uitest.framework import UITestCase
+-from uitest.uihelper.common import select_pos
+-from libreoffice.uno.propertyvalue import mkPropertyValues
+-from uitest.uihelper.common import get_state_as_dict
+-
+-class Test(UITestCase):
+-
+-    def test_tab_navigation(self):
+-        with self.ui_test.create_doc_in_start_center("writer"):
+-            xWriterDoc = self.xUITest.getTopFocusWindow()
+-            xWriterEdit = xWriterDoc.getChild("writer_edit")
+-
+-            with self.ui_test.execute_dialog_through_command(".uno:EditStyle") as xDialog:
+-
+-                xTabs = xDialog.getChild("tabcontrol")
+-                select_pos(xTabs, "0")
+-
+-                for i in range(16):
+-                    self.assertEqual(get_state_as_dict(xTabs)["CurrPagePos"], str(i))
+-
+-                    xTabs.executeAction("TYPE", mkPropertyValues({"KEYCODE":"CTRL+PAGEDOWN"}))
+-
+-                self.assertEqual(get_state_as_dict(xTabs)["CurrPagePos"], "0")
+-
+-                for i in reversed(range(16)):
+-                    xTabs.executeAction("TYPE", mkPropertyValues({"KEYCODE":"CTRL+PAGEUP"}))
+-
+-                    self.assertEqual(get_state_as_dict(xTabs)["CurrPagePos"], str(i))
+-
+-
+-
+-# vim: set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/debian/patches/disable-unused-test-programs.diff b/debian/patches/disable-unused-test-programs.diff
new file mode 100644 (file)
index 0000000..c1402c6
--- /dev/null
@@ -0,0 +1,70 @@
+diff --git a/vcl/Module_vcl.mk b/vcl/Module_vcl.mk
+index a5e4bf5d68d2..3e9e1bf9fe27 100644
+--- a/vcl/Module_vcl.mk
++++ b/vcl/Module_vcl.mk
+@@ -28,28 +28,9 @@ $(eval $(call gb_Module_add_targets,vcl,\
+         StaticLibrary_vclmain \
+               $(if $(ENABLE_MACOSX_SANDBOX),, \
+                       $(if $(DISABLE_GUI),, \
+-                              Executable_ui-previewer)) \
+-              $(if $(filter LINUX MACOSX SOLARIS WNT %BSD,$(OS)), \
+-                      Executable_outdevgrind \
+-                      $(if $(DISABLE_GUI),, \
+-                              Executable_vcldemo \
+-                              Executable_icontest \
+-                              Executable_visualbackendtest \
+-                              Executable_mtfdemo ))) \
++                              Executable_ui-previewer))) \
+ ))
+-ifeq ($(CROSS_COMPILING)$(DISABLE_DYNLOADING),)
+-
+-$(eval $(call gb_Module_add_targets,vcl,\
+-    $(if $(filter-out ANDROID iOS WNT,$(OS)), \
+-        Executable_svdemo \
+-        Executable_fftester \
+-        Executable_svptest \
+-        Executable_svpclient) \
+-))
+-
+-endif
+-
+ $(eval $(call gb_Module_add_l10n_targets,vcl,\
+     AllLangMoTarget_vcl \
+ ))
+diff --git a/xmlsecurity/Module_xmlsecurity.mk b/xmlsecurity/Module_xmlsecurity.mk
+index d3fafeb7e4ec..87b8c067903e 100644
+--- a/xmlsecurity/Module_xmlsecurity.mk
++++ b/xmlsecurity/Module_xmlsecurity.mk
+@@ -45,14 +45,6 @@ $(eval $(call gb_Module_add_screenshot_targets,xmlsecurity,\
+     CppunitTest_xmlsecurity_dialogs_test \
+ ))
+-ifneq (,$(filter DESKTOP,$(BUILD_TYPE)))
+-
+-$(eval $(call gb_Module_add_targets,xmlsecurity,\
+-    Executable_pdfverify \
+-))
+-
+-endif
+-
+ endif
+ # vim: set noet sw=4 ts=4:
+diff --git a/libreofficekit/Module_libreofficekit.mk b/libreofficekit/Module_libreofficekit.mk
+index 351f89a33e48..defe0b14a681 100644
+--- a/libreofficekit/Module_libreofficekit.mk
++++ b/libreofficekit/Module_libreofficekit.mk
+@@ -23,12 +23,10 @@ $(eval $(call gb_Module_add_check_targets,libreofficekit, \
+ ifneq ($(ENABLE_GTK3),)
+ $(eval $(call gb_Module_add_targets,libreofficekit,\
+     Library_libreofficekitgtk \
+-    Executable_gtktiledviewer \
+ ))
+ endif # ($(ENABLE_GTK3),)
+ $(eval $(call gb_Module_add_targets,libreofficekit,\
+-    Executable_tilebench \
+     Package_selectionhandles \
+     UIConfig_libreofficekit \
+ ))
diff --git a/debian/patches/disableClassPathURLCheck.diff b/debian/patches/disableClassPathURLCheck.diff
new file mode 100644 (file)
index 0000000..89ae9a1
--- /dev/null
@@ -0,0 +1,10 @@
+--- a/configure.ac-old 2020-09-13 14:08:41.553174902 +0200
++++ b/configure.ac     2020-09-13 14:08:54.365300591 +0200
+@@ -7833,6 +7833,7 @@
+             # set to limit VM usage for JunitTests
+             JAVAIFLAGS=-Xmx64M
++          JAVAIFLAGS="$JAVAIFLAGS -Djdk.net.URLClassPath.disableClassPathURLCheck=true"
+             # set to limit VM usage for javac
+             JAVACFLAGS=-J-Xmx128M
diff --git a/debian/patches/do-not-abort-on-NON_APPLICATION_FONT_USE.diff b/debian/patches/do-not-abort-on-NON_APPLICATION_FONT_USE.diff
new file mode 100644 (file)
index 0000000..bcacd73
--- /dev/null
@@ -0,0 +1,14 @@
+diff --git a/solenv/gbuild/CppunitTest.mk b/solenv/gbuild/CppunitTest.mk
+index b16e3d0e5417..33bdde04b072 100644
+--- a/solenv/gbuild/CppunitTest.mk
++++ b/solenv/gbuild/CppunitTest.mk
+@@ -132,9 +132,6 @@ else
+               $(if $(gb_CppunitTest__vcl_no_svp), \
+                       $(filter-out SAL_USE_VCLPLUGIN=svp,$(gb_TEST_ENV_VARS)),$(gb_TEST_ENV_VARS)) \
+               $(EXTRA_ENV_VARS) \
+-              $(if $(filter allow,$(NON_APPLICATION_FONT_USE)),, \
+-                      $(if $(filter abort,$(NON_APPLICATION_FONT_USE)),SAL_NON_APPLICATION_FONT_USE=abort, \
+-                      $(if $(filter deny,$(NON_APPLICATION_FONT_USE)),SAL_NON_APPLICATION_FONT_USE=deny))) \
+               $(if $(filter gdb,$(gb_CppunitTest_GDBTRACE)),,$(gb_CppunitTest_CPPTESTPRECOMMAND)) \
+               $(if $(G_SLICE),G_SLICE=$(G_SLICE)) \
+               $(if $(GLIBCXX_FORCE_NEW),GLIBCXX_FORCE_NEW=$(GLIBCXX_FORCE_NEW)) \
diff --git a/debian/patches/do-not-hide-test-output.diff b/debian/patches/do-not-hide-test-output.diff
new file mode 100644 (file)
index 0000000..8484bd5
--- /dev/null
@@ -0,0 +1,99 @@
+diff --git a/odk/build-examples_common.mk b/odk/build-examples_common.mk
+index abcb3a3e2593..35d45ad23413 100644
+--- a/odk/build-examples_common.mk
++++ b/odk/build-examples_common.mk
+@@ -49,12 +49,7 @@ else
+               && printf 'yes\n' | LANGUAGE= LC_ALL=C make -j1 \
+                       CC="$(CXX) $(gb_CXX03FLAGS)" LINK="$(CXX)" LIB="$(CXX)" \
+                   $(if $(MACOSX_SHELL_HACK), SHELL="$$$$ODK_BUILD_SHELL", ))) \
+-      $(if $(MACOSX_SHELL_HACK),&& rm -f "$$$$ODK_BUILD_SHELL")) \
+-          >$(call gb_CustomTarget_get_workdir,$(1))/log 2>&1 \
+-      || (RET=$$$$? \
+-          $(if $(MACOSX_SHELL_HACK), && rm -f "$$$$ODK_BUILD_SHELL" , ) \
+-          && cat $(call gb_CustomTarget_get_workdir,$(1))/log \
+-          && exit $$$$RET)
++      2>&1 )
+ endif
+ $(call gb_CustomTarget_get_workdir,$(1))/setsdkenv: \
+diff --git a/solenv/gbuild/CppunitTest.mk b/solenv/gbuild/CppunitTest.mk
+index 45af5c9b25a7..7933fc84c8b2 100644
+--- a/solenv/gbuild/CppunitTest.mk
++++ b/solenv/gbuild/CppunitTest.mk
+@@ -139,12 +139,7 @@ else
+               $(call gb_CppunitTest__make_args) "-env:CPPUNITTESTTARGET=$@" \
+               $(if $(gb_CppunitTest_localized),|| exit $$?; done) \
+               ) \
+-              $(if $(gb_CppunitTest__interactive),, \
+-                      > $@.log 2>&1 \
+-                      || ($(if $(value gb_CppunitTest_postprocess), \
+-                                      RET=$$?; \
+-                                      $(call gb_CppunitTest_postprocess,$(gb_CppunitTest_CPPTESTCOMMAND),$@.core,$$RET) >> $@.log 2>&1;) \
+-                              cat $@.log; $(gb_CppunitTest_UNITTESTFAILED) Cppunit $*)))
++              2>&1)
+       $(call gb_Trace_EndRange,$*,CUT)
+ endif
+diff --git a/solenv/gbuild/JunitTest.mk b/solenv/gbuild/JunitTest.mk
+index 36f29b50ef28..3ac4603ff6a0 100644
+--- a/solenv/gbuild/JunitTest.mk
++++ b/solenv/gbuild/JunitTest.mk
+@@ -44,17 +44,7 @@ else
+             -classpath "$(T_CP)" \
+             $(DEFS) \
+             org.junit.runner.JUnitCore \
+-            $(CLASSES) > $@.log 2>&1 || \
+-              (cat $@.log \
+-              && echo "to rerun just this failed test without all others, run:" \
+-              && echo && echo "    make JunitTest_$*" && echo \
+-              && echo "cd into the module dir to run the tests faster" \
+-              && echo "Or to do interactive debugging, run two shells with:" \
+-              && echo \
+-              && echo "    make debugrun" \
+-              && echo "    make gb_JunitTest_DEBUGRUN=T JunitTest_$*" \
+-              && echo \
+-              && false)))
++            $(CLASSES) 2>&1))
+       $(CLEAN_CMD)
+       $(call gb_Trace_EndRange,$*,JUT)
+ endif
+diff --git a/solenv/gbuild/UITest.mk b/solenv/gbuild/UITest.mk
+index 03d30448ef7b..5628e47866f8 100644
+--- a/solenv/gbuild/UITest.mk
++++ b/solenv/gbuild/UITest.mk
+@@ -77,16 +77,7 @@ else
+               --userdir=$(call gb_Helper_make_url,$(dir $(call gb_UITest_get_target,$*))user) \
+               --dir=$(strip $(MODULES)) \
+               $(gb_UITest_GDBTRACE) \
+-              $(if $(gb_UITest__interactive),, \
+-                  > $@.log 2>&1 \
+-                  || ($(if $(value gb_CppunitTest_postprocess), \
+-                                  RET=$$?; \
+-                                  $(call gb_CppunitTest_postprocess,$(gb_UITest_EXECUTABLE_GDB),$@.core,$$RET) >> $@.log 2>&1;) \
+-                $(if $(filter WNT,$(OS)), \
+-                    printf '%s: <<<\n' $(dir $(call gb_UITest_get_target,$*))/soffice.out.log; \
+-                    cat $(dir $(call gb_UITest_get_target,$*))/soffice.out.log; \
+-                    printf ' >>>\n\n';) \
+-                          cat $@.log; $(gb_UITest_UNITTESTFAILED) UI $*))))
++              2>&1))
+       $(call gb_Trace_EndRange,$*,UIT)
+ endif
+diff --git a/solenv/gbuild/PythonTest.mk b/solenv/gbuild/PythonTest.mk
+index bc404d4fb817..f605634d3d07 100644
+--- a/solenv/gbuild/PythonTest.mk
++++ b/solenv/gbuild/PythonTest.mk
+@@ -67,12 +67,7 @@ else
+                       $(gb_PythonTest_COMMAND) \
+                       $(if $(PYTHON_TEST_NAME),$(PYTHON_TEST_NAME),$(MODULES)) \
+               ; } \
+-              $(if $(gb_CppunitTest__interactive),, \
+-                      > $@.log 2>&1 \
+-                      || ($(if $(value gb_CppunitTest_postprocess), \
+-                                      RET=$$?; \
+-                                      $(call gb_CppunitTest_postprocess,$(gb_PythonTest_EXECUTABLE_GDB),$@.core,$$RET) >> $@.log 2>&1;) \
+-                              cat $@.log; $(gb_PythonTest_UNITTESTFAILED) Python $*)))
++              2>&1)
+       $(call gb_Trace_EndRange,$*,PYT)
+ endif
diff --git a/debian/patches/dont-touch-urd.diff b/debian/patches/dont-touch-urd.diff
new file mode 100644 (file)
index 0000000..f19ef5d
--- /dev/null
@@ -0,0 +1,80 @@
+18:43 <@_rene_> hmm. /me wonders why after a rm config.status autogen.lastrun 
+                and a re-configure (and make clean for odk/scp2/scripting) LO 
+                master tries to rebuild offapi/udkapi again?
+18:44 <@_rene_> this a) takes with cpp instead of ucpp and b) causes all kind 
+                of stuff "down" to be rebuilt.... :(
+18:44 <@_rene_> which is extremely bad.
+18:44 <@_rene_> if it isn't solvable easily: what to touch to prevent it from 
+                doing that? :-)
+18:45 < loirkerbot> LibreOffice (core) mstahl * desktop/source/app/main.c: 
+                    desktop: tweak xmlCleanupParser hack: disable on return 
+                    from main
+18:46 < mst__> _rene_, did you switch between --with-system-ucpp and without? 
+               that should rebuild IDL file...
+18:47 <@_rene_> nah, first run is just --disable-help, --disable-scripting etc
+18:47 <@_rene_> and the second run does that
+18:47 <@_rene_> (first pass to "just" build what is needed for arch-specific 
+                stuff)
+18:48 <@_rene_> (and I am not using ucpp at all, but cpp ;))
+18:51 < mst__> _rene_, hmm don't know why that would happen then... you could 
+               try running second make with -d and redirect to a file, but 
+               beware that file will be huge... then grep for "Must 
+               remake.*urd" or something should give you the problem area
+18:59 -!- reisi007 [~chatzilla@cpe90-146-226-33.liwest.at] has quit [Quit: 
+          ChatZilla 0.9.89 [Firefox 14.0.1/20120713134347]]
+19:00 -!- crossmanith_ [~cr@p3E9EAEF6.dip.t-dialin.net] has joined 
+          #libreoffice-dev
+19:00 -!- erAck_away is now known as erAck
+19:05 -!- cbosdonnat [~cbosdo@ALyon-651-1-309-127.w90-14.abo.wanadoo.fr] has 
+          quit [Quit: Leaving]
+19:07 <@_rene_> mst__: ok, starting a new build, let's see
+[...]
+10:36 <@_rene_> mst__: nothing interesting there instead of the loads of 
+                touch'es...
+10:36 <@_rene_> mst__: butI just removed the touch from the UnoApiTarget and 
+                let's see now :)
+10:36 -!- erAck [~erathke@f054050047.adsl.alicedsl.de] has joined 
+          #libreoffice-dev
+10:36 -!- mode/#libreoffice-dev [+o erAck] by ChanServ
+10:36 <@_rene_>  $(call gb_UnoApiPartTarget_get_target,%.urd) :
+10:36 <@_rene_> -       touch $@
+10:36 <@_rene_> +       
+[...]
+10:38 < mst__> _rene_, there must be something interesting there: preceding the 
+               "Must remake.*urd" line there must be some line that says target 
+               "foo" is "newer" than the .urd and therefor it will be rebuilt
+[...]
+10:40 <@_rene_> mst__: I didn't see anything there, no ".*urd*muss neu"
+10:41 < mst__> _rene_, there must be a message like that immediately preceding 
+               running the touch command
+10:41 -!- pepp [~pierre-er@vaf26-6-78-248-2-61.fbx.proxad.net] has joined 
+          #libreoffice-dev
+10:42 <@vmiklos> mst__: makes sense.
+10:42 -!- matus [~ubuntu@adsl-dyn17.78-98-107.t-com.sk] has joined 
+          #libreoffice-dev
+10:42 <@_rene_> as said, there was done. I don't think I oversaw it
+10:43 <@_rene_> but can try again later, for now I will just keep removing the 
+                touch. according to the comment this shoudln't do harm
+10:43 < mst__> _rene_, removing it will break incremental builds iirc
+10:44 <@_rene_> but only if you change idl stuff inbetween
+10:44 <@_rene_> which won't happen that often in package builds ;)
+10:44 < mst__> _rene_, exactly
+10:44 -!- Fridrich [~fridrich@71-99.199-178.cust.bluewin.ch] has joined 
+          #libreoffice-dev
+10:44 -!- mode/#libreoffice-dev [+o Fridrich] by ChanServ
+10:45 <@_rene_> (when I am out of "use git", only when there's a new 
+                (pre-)release"
+
+diff --git a/solenv/gbuild/UnoApiTarget.mk b/solenv/gbuild/UnoApiTarget.mk
+index 98734ab..b281a84 100644
+--- a/solenv/gbuild/UnoApiTarget.mk
++++ b/solenv/gbuild/UnoApiTarget.mk
+@@ -46,7 +46,7 @@ $(dir $(call gb_UnoApiPartTarget_get_target,))%/.dir :
+       $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
+ $(call gb_UnoApiPartTarget_get_target,%.urd) :
+-      touch $@
++      
+ # TODO:
+ # - get idlc switch "-P" (generate .urd into package dir)
diff --git a/debian/patches/fix-flaky-bridgetest.diff b/debian/patches/fix-flaky-bridgetest.diff
new file mode 100644 (file)
index 0000000..d113f55
--- /dev/null
@@ -0,0 +1,38 @@
+Description: Add safer float comparisons to bridgetest equals()
+Author: Marcus Tomlinson <marcus.tomlinson@canonical.com>
+Bug-Ubuntu: https://launchpad.net/bugs/1832360
+
+--- a/testtools/source/bridgetest/bridgetest.cxx
++++ b/testtools/source/bridgetest/bridgetest.cxx
+@@ -124,6 +125,9 @@ public:
+ static bool equals( const TestElement & rData1, const TestElement & rData2 )
+ {
++    const float epsilon_f = 0.00001f;
++    const double epsilon_d = 0.000000000001;
++
+     check( rData1.Bool == rData2.Bool, "### bool does not match!" );
+     check( rData1.Char == rData2.Char, "### char does not match!" );
+     check( rData1.Byte == rData2.Byte, "### byte does not match!" );
+@@ -133,8 +137,8 @@ static bool equals( const TestElement & rData1, const TestElement & rData2 )
+     check( rData1.ULong == rData2.ULong, "### unsigned long does not match!" );
+     check( rData1.Hyper == rData2.Hyper, "### hyper does not match!" );
+     check( rData1.UHyper == rData2.UHyper, "### unsigned hyper does not match!" );
+-    check( rData1.Float == rData2.Float, "### float does not match!" );
+-    check( rData1.Double == rData2.Double, "### double does not match!" );
++    check( fabs( rData1.Float - rData2.Float ) < epsilon_f, "### float does not match!" );
++    check( fabs( rData1.Double - rData2.Double ) < epsilon_d, "### double does not match!" );
+     check( rData1.Enum == rData2.Enum, "### enum does not match!" );
+     check( rData1.String == rData2.String, "### string does not match!" );
+     check( rData1.Byte2 == rData2.Byte2, "### byte2 does not match!" );
+@@ -149,8 +153,8 @@ static bool equals( const TestElement & rData1, const TestElement & rData2 )
+             rData1.ULong == rData2.ULong &&
+             rData1.Hyper == rData2.Hyper &&
+             rData1.UHyper == rData2.UHyper &&
+-            rData1.Float == rData2.Float &&
+-            rData1.Double == rData2.Double &&
++            fabs( rData1.Float - rData2.Float ) < epsilon_f &&
++            fabs( rData1.Double - rData2.Double ) < epsilon_d &&
+             rData1.Enum == rData2.Enum &&
+             rData1.String == rData2.String &&
+             rData1.Byte2 == rData2.Byte2 &&
diff --git a/debian/patches/fix-internal-hsqldb-build.diff b/debian/patches/fix-internal-hsqldb-build.diff
new file mode 100644 (file)
index 0000000..101da5e
--- /dev/null
@@ -0,0 +1,45 @@
+diff -urN hsqldb.old/patches/use-system-servlet-api.jar.diff hsqldb/patches/use-system-servlet-api.jar.diff
+--- a/external/hsqldb/patches/use-system-servlet-api.jar.diff  1970-01-01 01:00:00.000000000 +0100
++++ b/external/hsqldb/patches/use-system-servlet-api.jar.diff  2013-03-19 15:09:42.137801521 +0100
+@@ -0,0 +1,29 @@
++--- misc/hsqldb/build/build.xml
+++++ misc/build/hsqldb/build/build.xml
++@@ -356,7 +356,7 @@
++                  optimize="${build.optimize}"
++        >
++          <classpath>
++-            <pathelement location="lib/servlet.jar"/>
+++            <pathelement location="/usr/share/java/servlet-api-3.1.jar"/>
++          </classpath>
++          <include name="*.java"/>
++          <include name="org/hsqldb/*.java"/>
++@@ -818,7 +818,7 @@
++                                              ${src}/org/hsqldb/util/RCData.java,
++                                              ${src}/org/hsqldb/util/SqlTool.java"
++            destdir="${basedir}/doc/src"
++-           classpath="${basedir}/lib/servlet.jar;${basedir}/lib/junit.jar"
+++           classpath="/usr/share/java/servlet-api-3.1.jar;${basedir}/lib/junit.jar"
++            author="true"
++            version="false"
++            use="true"
++@@ -839,7 +839,7 @@
++       <javadoc packagenames="org.hsqldb.*,org.hsqldb.jdbc.*,org.hsqldb.lib.*,org.hsqldb.util.*"
++            sourcepath="${src}"
++            destdir="${basedir}/doc/src"
++-           classpath="${basedir}/lib/servlet.jar;${basedir}/lib/junit.jar"
+++           classpath="/usr/share/java/servlet-api-3.1.jar;${basedir}/lib/junit.jar"
++            author="true"
++            version="false"
++            use="true"
+diff --git a/external/hsqldb/UnpackedTarball_hsqldb.mk b/external/hsqldb/UnpackedTarball_hsqldb.mk
+index 389572377fa6..d43d1418049d 100644
+--- a/external/hsqldb/UnpackedTarball_hsqldb.mk
++++ b/external/hsqldb/UnpackedTarball_hsqldb.mk
+@@ -27,6 +27,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,hsqldb,\
+       external/hsqldb/patches/jdbc-4.1.patch \
+       external/hsqldb/patches/multipleResultSets.patch \
+       external/hsqldb/patches/disable-dump-script.patch \
++      external/hsqldb/patches/use-system-servlet-api.jar.diff \
+ ))
+ # vim: set noet sw=4 ts=4:
diff --git a/debian/patches/fix-riscv64-bridge.diff b/debian/patches/fix-riscv64-bridge.diff
new file mode 100644 (file)
index 0000000..c6b9190
--- /dev/null
@@ -0,0 +1,820 @@
+From 7363478c5be8a16c23228fdd85ed4ef5582b09db Mon Sep 17 00:00:00 2001
+From: Sakura286 <sakura286@outlook.com>
+Date: Tue, 19 Dec 2023 08:21:33 +0000
+Subject: [PATCH] (riscv64) Fix Java bridgetest failure
+
+* Refactor the code related to struct processing. Fix Java bridge-
+  test failure. Fixed test list:
+  * bridgetest-javaserver
+  * [CUT] smoketest
+  * [JUT] forms_unoapi_1
+  * [JUT] forms_unoapi_2
+  * [JUT] forms_unoapi_3
+  * [JUT] forms_unoapi_4
+* Clean higher bit to prevent compiler generate wrong code when
+  pyuno calls functions through UNO environment. This fixes some
+  weired uitest failure.
+* Reorder the datatype list. Optimize the inserting args section in
+  uno2cpp.cxx.
+* Remove some unused code.
+
+Change-Id: I74330126d31d847485b1d81fc34376b1d020f886
+---
+ .../source/cpp_uno/gcc3_linux_riscv64/abi.cxx | 263 ++++++++++++++++--
+ .../source/cpp_uno/gcc3_linux_riscv64/abi.hxx |  19 +-
+ .../cpp_uno/gcc3_linux_riscv64/cpp2uno.cxx    | 107 ++++---
+ .../cpp_uno/gcc3_linux_riscv64/uno2cpp.cxx    | 181 +++++-------
+ 4 files changed, 370 insertions(+), 200 deletions(-)
+
+diff --git a/bridges/source/cpp_uno/gcc3_linux_riscv64/abi.cxx b/bridges/source/cpp_uno/gcc3_linux_riscv64/abi.cxx
+index b090953efde9..29b1975a316e 100644
+--- a/bridges/source/cpp_uno/gcc3_linux_riscv64/abi.cxx
++++ b/bridges/source/cpp_uno/gcc3_linux_riscv64/abi.cxx
+@@ -19,7 +19,22 @@
\r
+ namespace abi_riscv64\r
+ {\r
+-void countnGreg(sal_Int32& nGreg, sal_Int32& nFreg,\r
++/*\r
++   F: floating point reg\r
++   G: general purpose reg\r
++*/\r
++enum class ReturnKind\r
++{\r
++    FF_Align4,\r
++    FF_Align8,\r
++    FG_Align4,\r
++    FG_Align8,\r
++    GF_Align4,\r
++    GF_Align8,\r
++    DEFAULT\r
++};\r
++\r
++void countnGreg(sal_Int32& nGreg, sal_Int32& nFreg, bool& firstIsGreg, sal_Int32& align,\r
+                 const typelib_CompoundTypeDescription* pTypeDescr)\r
+ {\r
+     for (int i = 0; i < pTypeDescr->nMembers; i++)\r
+@@ -33,63 +48,257 @@ void countnGreg(sal_Int32& nGreg, sal_Int32& nFreg,
+                 typelib_TypeDescription* childTypeDescr = nullptr;\r
+                 TYPELIB_DANGER_GET(&childTypeDescr, pTypeInStruct);\r
+                 countnGreg(\r
+-                    nGreg, nFreg,\r
++                    nGreg, nFreg, firstIsGreg, align,\r
+                     reinterpret_cast<typelib_CompoundTypeDescription const*>(childTypeDescr));\r
+                 TYPELIB_DANGER_RELEASE(childTypeDescr);\r
+             }\r
+             break;\r
+-            case typelib_TypeClass_FLOAT:\r
+             case typelib_TypeClass_DOUBLE:\r
++                // Align to the larger type\r
++                align = 8;\r
++                [[fallthrough]];\r
++            case typelib_TypeClass_FLOAT:\r
+                 nFreg++;\r
+                 break;\r
++            case typelib_TypeClass_HYPER:\r
++            case typelib_TypeClass_UNSIGNED_HYPER:\r
++                align = 8;\r
++                [[fallthrough]];\r
+             default:\r
++                if (nFreg > 0)\r
++                {\r
++                    firstIsGreg = false;\r
++                }\r
+                 nGreg++;\r
+                 break;\r
+         }\r
+     }\r
+ }\r
\r
+-void fillStruct(const typelib_TypeDescription* pTypeDescr, sal_Int64* gret, double* fret,\r
+-                void* pRegisterReturn)\r
++ReturnKind getReturnKind(const typelib_TypeDescription* pTypeDescr)\r
+ {\r
+-#ifdef BRIDGE_DEBUG\r
+-    printf("In fillStruct, pTypeDescr = %p, gret = %p, fret = %p, pRegisterReturn = %p\n",\r
+-           pTypeDescr, gret, fret, pRegisterReturn);\r
+-#endif\r
+     sal_Int32 nGreg = 0;\r
+     sal_Int32 nFreg = 0;\r
+-    countnGreg(nGreg, nFreg, reinterpret_cast<typelib_CompoundTypeDescription const*>(pTypeDescr));\r
+-    char* pAdjust = reinterpret_cast<char*>(pRegisterReturn);\r
+-    if (nGreg == 0 && nFreg <= 2)\r
++    sal_Int32 align = 4;\r
++    bool firstIsGreg = true;\r
++    countnGreg(nGreg, nFreg, firstIsGreg, align,\r
++               reinterpret_cast<typelib_CompoundTypeDescription const*>(pTypeDescr));\r
++    if (nGreg == 0 && nFreg == 2)\r
+     {\r
+-        if (pTypeDescr->nSize <= 8 && nFreg == 2)\r
+-        {\r
+-            std::memcpy(pAdjust, fret, 4);\r
+-            std::memcpy(pAdjust + 4, fret + 1, 4);\r
+-        }\r
++        if (align == 4)\r
++            return ReturnKind::FF_Align4;\r
+         else\r
+-        {\r
+-            std::memcpy(pAdjust, fret, 16);\r
+-        }\r
++            return ReturnKind::FF_Align8;\r
+     }\r
+-    else if (nFreg == 1 && nGreg == 1)\r
++    else if (nGreg == 1 && nFreg == 1)\r
+     {\r
+-        if (pTypeDescr->nSize > 8)\r
++        if (firstIsGreg)\r
+         {\r
+-            std::memcpy(pAdjust, gret, 8);\r
+-            std::memcpy(pAdjust + 8, fret, 8);\r
++            if (align == 4)\r
++                return ReturnKind::GF_Align4;\r
++            else\r
++                return ReturnKind::GF_Align8;\r
+         }\r
+         else\r
+         {\r
+-            std::memcpy(pAdjust, gret, 4);\r
+-            std::memcpy(pAdjust + 4, fret, 4);\r
++            if (align == 4)\r
++                return ReturnKind::FG_Align4;\r
++            else\r
++                return ReturnKind::FG_Align8;\r
+         }\r
+     }\r
+     else\r
+     {\r
+-        std::memcpy(pAdjust, gret, 16);\r
++        return ReturnKind::DEFAULT;\r
++    }\r
++}\r
++\r
++/*\r
++    Transform the returned cpp data to uno.\r
++    This happens at the end of uno2cpp, when callee cpp func finished.\r
++\r
++                  |    returned data saved in\r
++    default cases |     gret[0] and gret[1]\r
++    2 float       |     fret[0] and fret[1]\r
++    1 float 1 int |     gret[0] and fret[0]\r
++\r
++    There is a complex problem -- alignment. For example, 4 byte float and 8 byte\r
++    integer take 16 bytes rather than 12 bytes.\r
++\r
++    There is also another complex problem. e.g. Two 4 byte integer is compacted\r
++    in a0, but two 4 byte float is seperately set in fa0 and fa1. However, return\r
++    size is 8 bytes. We need to cut the lower 32bit of fa0 and fa1 seperately and\r
++    combine them in 8 bytes.\r
++*/\r
++void fillUNOStruct(const typelib_TypeDescription* pTypeDescr, sal_Int64* gret, double* fret,\r
++                   void* pRegisterReturn)\r
++{\r
++#ifdef BRIDGE_DEBUG\r
++    printf("In fillStruct, pTypeDescr = %p, gret = %p, fret = %p, pRegisterReturn = %p\n",\r
++           pTypeDescr, gret, fret, pRegisterReturn);\r
++#endif\r
++    ReturnKind returnKind = getReturnKind(pTypeDescr);\r
++    switch (returnKind)\r
++    {\r
++        case ReturnKind::FF_Align4:\r
++            memcpy(reinterpret_cast<char*>(pRegisterReturn), &(fret[0]), 4);\r
++            memcpy(reinterpret_cast<char*>(pRegisterReturn) + 4, &(fret[1]), 4);\r
++            break;\r
++        case ReturnKind::FF_Align8:\r
++            reinterpret_cast<double*>(pRegisterReturn)[0] = fret[0];\r
++            reinterpret_cast<double*>(pRegisterReturn)[1] = fret[1];\r
++            break;\r
++        case ReturnKind::FG_Align4:\r
++            memcpy(reinterpret_cast<char*>(pRegisterReturn), &(fret[0]), 4);\r
++            memcpy(reinterpret_cast<char*>(pRegisterReturn) + 4, &(gret[0]), 4);\r
++            break;\r
++        case ReturnKind::FG_Align8:\r
++            reinterpret_cast<double*>(pRegisterReturn)[0] = fret[0];\r
++            reinterpret_cast<sal_Int64*>(pRegisterReturn)[1] = gret[0];\r
++            break;\r
++        case ReturnKind::GF_Align4:\r
++            memcpy(reinterpret_cast<char*>(pRegisterReturn), &(gret[0]), 4);\r
++            memcpy(reinterpret_cast<char*>(pRegisterReturn) + 4, &(fret[0]), 4);\r
++            break;\r
++        case ReturnKind::GF_Align8:\r
++            reinterpret_cast<sal_Int64*>(pRegisterReturn)[0] = gret[0];\r
++            reinterpret_cast<double*>(pRegisterReturn)[1] = fret[0];\r
++            break;\r
++        default:\r
++            reinterpret_cast<sal_Int64*>(pRegisterReturn)[0] = gret[0];\r
++            reinterpret_cast<sal_Int64*>(pRegisterReturn)[1] = gret[1];\r
++            break;\r
+     }\r
+ }\r
++\r
++/*\r
++    Split zipped unoreturn to cpp func. This happens at the end of cpp2uno.\r
++\r
++    The data in pTarget will be extrat to return regs in privateSnippetExecutor:\r
++                  |  pTarget[0]  |  pTarget[1]  | return type |\r
++    default cases |     $a0      |     $a1      |      0      |\r
++    2 float       |     $fa0     |     $fa1     |      0      |\r
++    1 float 1 int |     $a0      |     $fa0     |      1      |\r
++\r
++    This looks like a reverse version of fillUNOStruct. The reason for such\r
++    "meaningless" effort is that java return a compact struct, but cpp not.\r
++*/\r
++void splitUNOStruct(const typelib_TypeDescription* pTypeDescr, sal_uInt64* pTarget,\r
++                    sal_uInt64* pSource, sal_Int32& returnType)\r
++{\r
++#ifdef BRIDGE_DEBUG\r
++    printf("In splitUNOStruct, pTypeDescr = %p, pTarget = %p, pSource = %p\n", pTypeDescr, pTarget,\r
++           pSource);\r
++#endif\r
++    sal_uInt64* pTemp = (sal_uInt64*)calloc(2, sizeof(sal_uInt64));\r
++    ReturnKind returnKind = getReturnKind(pTypeDescr);\r
++    switch (returnKind)\r
++    {\r
++        case ReturnKind::FF_Align4:\r
++            memcpy(reinterpret_cast<char*>(pTemp), reinterpret_cast<char*>(pSource), 4);\r
++            memset(reinterpret_cast<char*>(pTemp) + 4, 0xFF, 4);\r
++            memcpy(reinterpret_cast<char*>(pTemp) + 8, reinterpret_cast<char*>(pSource) + 4, 4);\r
++            memset(reinterpret_cast<char*>(pTemp) + 12, 0xFF, 4);\r
++            returnType = 0;\r
++            break;\r
++        case ReturnKind::FF_Align8:\r
++            pTemp[0] = pSource[0];\r
++            pTemp[1] = pSource[1];\r
++            returnType = 0;\r
++            break;\r
++        case ReturnKind::FG_Align4:\r
++            memcpy(reinterpret_cast<char*>(pTemp), reinterpret_cast<char*>(pSource) + 4, 4);\r
++            memcpy(reinterpret_cast<char*>(pTemp) + 8, reinterpret_cast<char*>(pSource), 4);\r
++            memset(reinterpret_cast<char*>(pTemp) + 12, 0xFF, 4);\r
++            returnType = 1;\r
++            break;\r
++        case ReturnKind::FG_Align8:\r
++            pTemp[0] = pSource[1];\r
++            pTemp[1] = pSource[0];\r
++            returnType = 1;\r
++            break;\r
++        case ReturnKind::GF_Align4:\r
++            memcpy(reinterpret_cast<char*>(pTemp), reinterpret_cast<char*>(pSource), 4);\r
++            memcpy(reinterpret_cast<char*>(pTemp) + 8, reinterpret_cast<char*>(pSource) + 4, 4);\r
++            memset(reinterpret_cast<char*>(pTemp) + 12, 0xFF, 4);\r
++            returnType = 1;\r
++            break;\r
++        case ReturnKind::GF_Align8:\r
++            pTemp[0] = pSource[0];\r
++            pTemp[1] = pSource[1];\r
++            returnType = 1;\r
++            break;\r
++        default:\r
++            pTemp[0] = pSource[0];\r
++            pTemp[1] = pSource[1];\r
++            returnType = 0;\r
++            break;\r
++    }\r
++    pTarget[0] = pTemp[0];\r
++    pTarget[1] = pTemp[1];\r
++    free(pTemp);\r
++}\r
++\r
++/*\r
++    Extend higher bits for integer types.\r
++\r
++    According to\r
++    https://github.com/riscv-non-isa/riscv-elf-psabi-doc/blob/master/riscv-cc.adoc#integer-calling-convention\r
++\r
++    > When passed in registers or on the stack, integer scalars narrower than XLEN bits\r
++    > are widened according to the sign of their type up to 32 bits, then sign-extended\r
++    > to XLEN bits.\r
++*/\r
++void extIntBits(sal_uInt64* outData, const sal_uInt64* inData, bool isSigned, sal_uInt32 dataBytes)\r
++{\r
++    if (dataBytes > 8)\r
++    {\r
++        //SAL_WARN("bridges", "illegal dataBytes in dataBytes, please check the bridge.");\r
++        return;\r
++    }\r
++\r
++    sal_uInt64 data = *inData;\r
++    char* dataPointer = reinterpret_cast<char*>(&data);\r
++\r
++    // Clear bits which are not data\r
++    sal_uInt64* dataMask = (sal_uInt64*)calloc(1, 8);\r
++    memset(dataMask, 0xFF, dataBytes);\r
++    data = data & *dataMask;\r
++    free(dataMask);\r
++\r
++    // extend to 32 bit\r
++    if (dataBytes < 4)\r
++    {\r
++        if (isSigned)\r
++        {\r
++            // Detect the highest bit of the data.\r
++            // For example, if a one-byte integer data passed in, we need to detect the 8th bit(8 x 1)\r
++            // So left shift 1 three-times(8-1) we can get mask 1000 0000\r
++            sal_uInt64 detectMask = 1 << (dataBytes * 8 - 1);\r
++\r
++            if (detectMask & data)\r
++                // Is negative\r
++                memset(dataPointer + dataBytes, 0xFF, 4 - dataBytes);\r
++            else\r
++                // Is positive\r
++                memset(dataPointer + dataBytes, 0x0, 4 - dataBytes);\r
++        }\r
++        else\r
++            memset(dataPointer + dataBytes, 0x0, 4 - dataBytes);\r
++\r
++        // The highest data bit turns into 8 * 4 = 32 bit\r
++        dataBytes = 4;\r
++    }\r
++\r
++    // Sign extend to 64 bit\r
++    sal_uInt64 detectMask = 1 << (dataBytes * 8 - 1);\r
++    if (detectMask & data)\r
++        memset(dataPointer + dataBytes, 0xFF, 8 - dataBytes);\r
++    else\r
++        memset(dataPointer + dataBytes, 0x00, 8 - dataBytes);\r
++\r
++    *outData = data;\r
++}\r
+ }\r
\r
+ /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */\r
+diff --git a/bridges/source/cpp_uno/gcc3_linux_riscv64/abi.hxx b/bridges/source/cpp_uno/gcc3_linux_riscv64/abi.hxx
+index 081e578150e1..ea5236220a07 100644
+--- a/bridges/source/cpp_uno/gcc3_linux_riscv64/abi.hxx
++++ b/bridges/source/cpp_uno/gcc3_linux_riscv64/abi.hxx
+@@ -11,13 +11,24 @@
+ #include <uno/data.h>\r
+ #include <typelib/typedescription.hxx>\r
\r
++//#define BRI_DEBUG\r
++\r
++#ifdef BRI_DEBUG\r
++#include <cstdio>\r
++#define BRIDGE_LOG(...) fprintf(stdout, __VA_ARGS__)\r
++#else\r
++#define BRIDGE_LOG(format, args...)\r
++#endif\r
++\r
+ namespace abi_riscv64\r
+ {\r
+-void countnGreg(sal_Int32& nGreg, sal_Int32& nFreg,\r
+-                const typelib_CompoundTypeDescription* pTypeDescr);\r
++void fillUNOStruct(const typelib_TypeDescription* pTypeDescr, sal_Int64* gret, double* fret,\r
++                   void* pRegisterReturn);\r
++\r
++void splitUNOStruct(const typelib_TypeDescription* pTypeDescr, sal_uInt64* pTarget,\r
++                    sal_uInt64* pSource, sal_Int32& returnType);\r
\r
+-void fillStruct(const typelib_TypeDescription* pTypeDescr, sal_Int64* gret, double* fret,\r
+-                void* pRegisterReturn);\r
++void extIntBits(sal_uInt64* outData, const sal_uInt64* inData, bool isSigned, sal_uInt32 dataBytes);\r
+ }\r
\r
+ /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */\r
+diff --git a/bridges/source/cpp_uno/gcc3_linux_riscv64/cpp2uno.cxx b/bridges/source/cpp_uno/gcc3_linux_riscv64/cpp2uno.cxx
+index 99965c570081..6754f23fde16 100644
+--- a/bridges/source/cpp_uno/gcc3_linux_riscv64/cpp2uno.cxx
++++ b/bridges/source/cpp_uno/gcc3_linux_riscv64/cpp2uno.cxx
+@@ -34,8 +34,6 @@
+ #include <cstring>
+ #include <typeinfo>
+-using namespace com::sun::star::uno;
+-
+ //#define BRIDGE_DEBUG
+ #ifdef BRIDGE_DEBUG
+@@ -46,6 +44,8 @@ using namespace ::osl;
+ using namespace ::rtl;
+ #endif
++using namespace com::sun::star::uno;
++
+ namespace CPPU_CURRENT_NAMESPACE
+ {
+ bool is_complex_struct(const typelib_TypeDescription* type)
+@@ -110,12 +110,10 @@ cpp2uno_call(bridges::cpp_uno::shared::CppInterfaceProxy* pThis,
+            pRegisterReturn);
+     printf("In cpp2uno_call, gpreg = %p, fpreg = %p, ovrflw = %p\n", gpreg, fpreg, ovrflw);
+ #endif
++
+     unsigned int nr_gpr = 0;
+     unsigned int nr_fpr = 0;
+-    char* gpreg_t = reinterpret_cast<char*>(gpreg);
+-    char* fpreg_t = reinterpret_cast<char*>(fpreg);
+-
+ #ifdef BRIDGE_DEBUG
+     fprintf(stdout, "cpp2uno_call:begin\n");
+ #endif
+@@ -151,6 +149,7 @@ cpp2uno_call(bridges::cpp_uno::shared::CppInterfaceProxy* pThis,
+     }
+     // pop this
++    // TODO: Is it really essential to pop?
+     gpreg++;
+     nr_gpr++;
+@@ -344,28 +343,19 @@ cpp2uno_call(bridges::cpp_uno::shared::CppInterfaceProxy* pThis,
+             TYPELIB_DANGER_RELEASE(pParamTypeDescr);
+         }
+-        void* retout = nullptr; // avoid false -Werror=maybe-uninitialized
++        //void* retout = nullptr; // avoid false -Werror=maybe-uninitialized
+         // return
+         sal_Int32 returnType = 0;
+         if (pReturnTypeDescr)
+         {
+-            char* pReturn = reinterpret_cast<char*>(pRegisterReturn);
+             if (!bridges::cpp_uno::shared::relatesToInterfaceType(pReturnTypeDescr))
+             {
++                const bool isSigned = true;
+                 switch (pReturnTypeDescr == nullptr ? typelib_TypeClass_VOID
+                                                     : pReturnTypeDescr->eTypeClass)
+                 {
+-                    case typelib_TypeClass_HYPER:
+-                    case typelib_TypeClass_UNSIGNED_HYPER:
+-                    case typelib_TypeClass_ENUM:
+-                    case typelib_TypeClass_CHAR:
+-                    case typelib_TypeClass_SHORT:
+-                    case typelib_TypeClass_UNSIGNED_SHORT:
+-                    case typelib_TypeClass_BOOLEAN:
+-                    case typelib_TypeClass_BYTE:
+-                        std::memcpy(pReturn, pUnoReturn, 8);
+-                        break;
+-                    // Sometimes we need to return a 32 bit integer into a 64 bit integer.
++                    // Sometimes we need to return a smaller type into a larger type.
++                    //
+                     // For example, in pyuno.cxx:PyUNO_bool(), an int(32bit) is returned
+                     // in type Py_ssize_t(64bit)
+                     // We assume that this 32bit int was put in low 32 bit of register a0.
+@@ -375,52 +365,57 @@ cpp2uno_call(bridges::cpp_uno::shared::CppInterfaceProxy* pThis,
+                     // This bug occurs when build pyuno with gcc-12 with -O2.
+                     // https://bugs.documentfoundation.org/show_bug.cgi?id=155937
+                     //
+-                    // So we need to clean the high 32 bit in bridge.
++                    // So we need to clean the higher bits in bridge.
++                    case typelib_TypeClass_BOOLEAN:
++                        abi_riscv64::extIntBits(pRegisterReturn,
++                                                reinterpret_cast<sal_uInt64*>(pUnoReturn),
++                                                !isSigned, 1);
++                        break;
++                    case typelib_TypeClass_BYTE:
++                        abi_riscv64::extIntBits(pRegisterReturn,
++                                                reinterpret_cast<sal_uInt64*>(pUnoReturn), isSigned,
++                                                1);
++                        break;
++                    case typelib_TypeClass_CHAR:
++                    case typelib_TypeClass_UNSIGNED_SHORT:
++                        abi_riscv64::extIntBits(pRegisterReturn,
++                                                reinterpret_cast<sal_uInt64*>(pUnoReturn),
++                                                !isSigned, 2);
++                        break;
++                    case typelib_TypeClass_SHORT:
++                        abi_riscv64::extIntBits(pRegisterReturn,
++                                                reinterpret_cast<sal_uInt64*>(pUnoReturn), isSigned,
++                                                2);
++                        break;
+                     case typelib_TypeClass_UNSIGNED_LONG:
+-                        std::memset(pReturn + 4, 0x0, 4);
+-                        std::memcpy(pReturn, pUnoReturn, 4);
++                        abi_riscv64::extIntBits(pRegisterReturn,
++                                                reinterpret_cast<sal_uInt64*>(pUnoReturn),
++                                                !isSigned, 4);
+                         break;
+                     case typelib_TypeClass_LONG:
+-                        if (*reinterpret_cast<sal_uInt32*>(pUnoReturn) & 0x80000000)
+-                            std::memset(pReturn + 4, 0xFF, 4);
+-                        else
+-                            std::memset(pReturn + 4, 0x0, 4);
+-                        std::memcpy(pReturn, pUnoReturn, 4);
++                        abi_riscv64::extIntBits(pRegisterReturn,
++                                                reinterpret_cast<sal_uInt64*>(pUnoReturn), isSigned,
++                                                4);
++                        break;
++                    // TODO: check the source of the enum type.
++                    case typelib_TypeClass_ENUM:
++                    case typelib_TypeClass_UNSIGNED_HYPER:
++                    case typelib_TypeClass_HYPER:
++                        std::memcpy(reinterpret_cast<char*>(pRegisterReturn), pUnoReturn, 8);
+                         break;
+                     case typelib_TypeClass_FLOAT:
+-                        std::memcpy(pReturn, pUnoReturn, 4);
+-                        std::memset(pReturn + 4, 0xFF, 4);
++                        std::memcpy(reinterpret_cast<char*>(pRegisterReturn), pUnoReturn, 4);
++                        std::memset(reinterpret_cast<char*>(pRegisterReturn) + 4, 0xFF, 4);
+                         break;
+                     case typelib_TypeClass_DOUBLE:
+-                        std::memcpy(pReturn, pUnoReturn, 8);
++                        std::memcpy(reinterpret_cast<char*>(pRegisterReturn), pUnoReturn, 8);
+                         break;
+                     case typelib_TypeClass_STRUCT:
+                     case typelib_TypeClass_EXCEPTION:
+-                    {
+-                        std::memcpy(pReturn, pUnoReturn, 16);
+-                        sal_Int32 nGreg = 0;
+-                        sal_Int32 nFreg = 0;
+-                        abi_riscv64::countnGreg(
+-                            nGreg, nFreg,
+-                            reinterpret_cast<typelib_CompoundTypeDescription const*>(
+-                                pReturnTypeDescr));
+-                        if (pReturnTypeDescr->nSize <= 8 && nFreg == 2 && nGreg == 0)
+-                        {
+-                            std::memcpy(pReturn + 8, pReturn + 4, 4);
+-                            std::memset(pReturn + 4, 0xFF, 4);
+-                            std::memset(pReturn + 12, 0xFF, 4);
+-                        }
+-                        else if (nGreg == 1 && nFreg == 1)
+-                        {
+-                            returnType = 1;
+-                            if (pReturnTypeDescr->nSize <= 8)
+-                            {
+-                                std::memcpy(pReturn + 8, pReturn + 4, 4);
+-                                std::memset(pReturn + 12, 0xFF, 4);
+-                            }
+-                        }
+-                    }
+-                    break;
++                        abi_riscv64::splitUNOStruct(
++                            pReturnTypeDescr, reinterpret_cast<sal_uInt64*>(pRegisterReturn),
++                            reinterpret_cast<sal_uInt64*>(pUnoReturn), returnType);
++                        break;
+                     case typelib_TypeClass_VOID:
+                         break;
+                     default:
+@@ -595,6 +590,7 @@ sal_Int32 cpp_vtable_call(sal_Int32 nFunctionIndex, sal_Int32 nVtableOffset, voi
+                         }
+                         TYPELIB_DANGER_RELEASE(pTD);
+                     }
++                    [[fallthrough]];
+                 } // else perform queryInterface()
+                 default:
+ #ifdef BRIDGE_DEBUG
+@@ -722,8 +718,7 @@ unsigned char* codeSnippet(unsigned char* code, sal_Int32 functionIndex, sal_Int
+ }
+ }
+-void bridges::cpp_uno::shared::VtableFactory::flushCode(unsigned char const* bptr,
+-                                                        unsigned char const* eptr)
++void bridges::cpp_uno::shared::VtableFactory::flushCode(unsigned char const*, unsigned char const*)
+ {
+     asm volatile("fence" :::);
+ }
+diff --git a/bridges/source/cpp_uno/gcc3_linux_riscv64/uno2cpp.cxx b/bridges/source/cpp_uno/gcc3_linux_riscv64/uno2cpp.cxx
+index a23bcc3e8cec..495fefa4d173 100644
+--- a/bridges/source/cpp_uno/gcc3_linux_riscv64/uno2cpp.cxx
++++ b/bridges/source/cpp_uno/gcc3_linux_riscv64/uno2cpp.cxx
+@@ -43,105 +43,16 @@
+ #include <stdio.h>
+ #endif
+-// FP reg -> GP reg -> stack
+-#define INSERT_FLOAT_DOUBLE(pSV, nfr, pFPR, ngr, pGPR, pDS)                                        \
+-    if (nfr < MAX_FP_REGS)                                                                         \
+-        pFPR[nfr++] = *reinterpret_cast<double*>(pSV);                                             \
+-    else if (ngr < MAX_FP_REGS)                                                                    \
+-        pGPR[ngr++] = *reinterpret_cast<sal_Int64*>(pSV);                                          \
+-    else                                                                                           \
+-        *pDS++ = *reinterpret_cast<sal_uInt64*>(pSV); // verbatim!
+-
+-#define INSERT_INT64(pSV, nr, pGPR, pDS)                                                           \
+-    if (nr < MAX_GP_REGS)                                                                          \
+-        pGPR[nr++] = *reinterpret_cast<sal_Int64*>(pSV);                                           \
+-    else                                                                                           \
+-        *pDS++ = *reinterpret_cast<sal_Int64*>(pSV);
+-
+-#define INSERT_INT32(pSV, nr, pGPR, pDS)                                                           \
+-    if (nr < MAX_GP_REGS)                                                                          \
+-        pGPR[nr++] = *reinterpret_cast<sal_Int32*>(pSV);                                           \
+-    else                                                                                           \
+-        *pDS++ = *reinterpret_cast<sal_Int32*>(pSV);
+-
+-#define INSERT_INT16(pSV, nr, pGPR, pDS)                                                           \
+-    if (nr < MAX_GP_REGS)                                                                          \
+-        pGPR[nr++] = *reinterpret_cast<sal_Int16*>(pSV);                                           \
+-    else                                                                                           \
+-        *pDS++ = *reinterpret_cast<sal_Int16*>(pSV);
+-
+-#define INSERT_UINT16(pSV, nr, pGPR, pDS)                                                          \
+-    if (nr < MAX_GP_REGS)                                                                          \
+-        pGPR[nr++] = *reinterpret_cast<sal_uInt16*>(pSV);                                          \
+-    else                                                                                           \
+-        *pDS++ = *reinterpret_cast<sal_uInt16*>(pSV);
+-
+-#define INSERT_INT8(pSV, nr, pGPR, pDS)                                                            \
+-    if (nr < MAX_GP_REGS)                                                                          \
+-        pGPR[nr++] = *reinterpret_cast<sal_Int8*>(pSV);                                            \
+-    else                                                                                           \
+-        *pDS++ = *reinterpret_cast<sal_Int8*>(pSV);
+-
+ using namespace ::com::sun::star::uno;
+ namespace
+ {
+-bool isReturnInFPR(const typelib_TypeDescription* pTypeDescr, sal_uInt32& nSize)
+-{
+-#ifdef BRIDGE_DEBUG
+-    printf("In isReturnInFPR, pTypeDescr = %p, nSize = %d\n", pTypeDescr, nSize);
+-#endif
+-    const typelib_CompoundTypeDescription* p
+-        = reinterpret_cast<const typelib_CompoundTypeDescription*>(pTypeDescr);
+-
+-    for (sal_Int32 i = 0; i < p->nMembers; ++i)
+-    {
+-        typelib_TypeDescriptionReference* pTypeInStruct = p->ppTypeRefs[i];
+-
+-        switch (pTypeInStruct->eTypeClass)
+-        {
+-            case typelib_TypeClass_STRUCT:
+-            case typelib_TypeClass_EXCEPTION:
+-            {
+-                typelib_TypeDescription* t = 0;
+-                TYPELIB_DANGER_GET(&t, pTypeInStruct);
+-                bool isFPR = isReturnInFPR(t, nSize);
+-                TYPELIB_DANGER_RELEASE(t);
+-                if (!isFPR)
+-                    return false;
+-            }
+-            break;
+-            case typelib_TypeClass_FLOAT:
+-            case typelib_TypeClass_DOUBLE:
+-                if (nSize >= 16)
+-                    return false;
+-                nSize += 8;
+-                break;
+-            default:
+-                return false;
+-        }
+-    }
+-    return true;
+-}
+-
+-void fillReturn(const typelib_TypeDescription* pTypeDescr, sal_Int64* gret, double* fret,
+-                void* pRegisterReturn)
++void insertArgs(sal_uInt64 value, sal_uInt64& nGPR, sal_uInt64* pGPR, sal_uInt64*& sp)
+ {
+-#ifdef BRIDGE_DEBUG
+-    printf("In fillReturn, pTypeDescr = %p, gret = %p, fret = %p, pRegisterReturn = %p\n",
+-           pTypeDescr, gret, fret, pRegisterReturn);
+-#endif
+-    sal_uInt32 nSize = 0;
+-    if (isReturnInFPR(pTypeDescr, nSize))
+-    {
+-        reinterpret_cast<double*>(pRegisterReturn)[0] = fret[0];
+-        reinterpret_cast<double*>(pRegisterReturn)[1] = fret[1];
+-    }
++    if (nGPR < MAX_GP_REGS)
++        pGPR[nGPR++] = value;
+     else
+-    {
+-        reinterpret_cast<sal_Int64*>(pRegisterReturn)[0] = gret[0];
+-        reinterpret_cast<sal_Int64*>(pRegisterReturn)[1] = gret[1];
+-    }
++        *(sp++) = value;
+ }
+ static void callVirtualMethod(void* pAdjustedThisPtr, sal_Int32 nVtableIndex, void* pRegisterReturn,
+@@ -249,7 +160,7 @@ static void callVirtualMethod(void* pAdjustedThisPtr, sal_Int32 nVtableIndex, vo
+             {
+                 typelib_TypeDescription* pTypeDescr = 0;
+                 TYPELIB_DANGER_GET(&pTypeDescr, pReturnTypeRef);
+-                abi_riscv64::fillStruct(pTypeDescr, gret, fret, pRegisterReturn);
++                abi_riscv64::fillUNOStruct(pTypeDescr, gret, fret, pRegisterReturn);
+                 TYPELIB_DANGER_RELEASE(pTypeDescr);
+             }
+             break;
+@@ -279,7 +190,7 @@ static void cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy* pThis,
+     sal_uInt64* pStackStart = pStack;
+     sal_uInt64 pGPR[MAX_GP_REGS];
+-    sal_uInt64 nREG = 0;
++    sal_uInt64 nGPR = 0;
+     double pFPR[MAX_FP_REGS];
+     sal_uInt32 nFPR = 0;
+@@ -304,7 +215,7 @@ static void cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy* pThis,
+             pCppReturn = bridges::cpp_uno::shared::relatesToInterfaceType(pReturnTypeDescr)
+                              ? __builtin_alloca(pReturnTypeDescr->nSize)
+                              : pUnoReturn;
+-            INSERT_INT64(&pCppReturn, nREG, pGPR, pStack);
++            pGPR[nGPR++] = reinterpret_cast<sal_uInt64>(pCppReturn);
+         }
+         else
+         {
+@@ -314,7 +225,7 @@ static void cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy* pThis,
+     // push this
+     void* pAdjustedThisPtr = reinterpret_cast<void**>(pThis->getCppI()) + aVtableSlot.offset;
+-    INSERT_INT64(&pAdjustedThisPtr, nREG, pGPR, pStack);
++    pGPR[nGPR++] = reinterpret_cast<sal_uInt64>(pAdjustedThisPtr);
+     // args
+     void** pCppArgs = (void**)alloca(3 * sizeof(void*) * nParams);
+@@ -351,29 +262,72 @@ static void cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy* pThis,
+ #endif
+             switch (pParamTypeDescr->eTypeClass)
+             {
+-                case typelib_TypeClass_LONG:
+-                case typelib_TypeClass_UNSIGNED_LONG:
+-                case typelib_TypeClass_ENUM:
+-                    INSERT_INT32(pCppArgs[nPos], nREG, pGPR, pStack);
++                // In types.h:
++                // typedef unsigned char sal_Bool
++                case typelib_TypeClass_BOOLEAN:
++                    insertArgs(*static_cast<sal_Bool*>(pCppArgs[nPos]), nGPR, pGPR, pStack);
+                     break;
++                case typelib_TypeClass_BYTE:
++                    insertArgs(*static_cast<sal_Int8*>(pCppArgs[nPos]), nGPR, pGPR, pStack);
++                    break;
++                // typedef sal_uInt16 sal_Unicode
+                 case typelib_TypeClass_CHAR:
+-                case typelib_TypeClass_SHORT:
+-                    INSERT_INT16(pCppArgs[nPos], nREG, pGPR, pStack);
++                    insertArgs(*static_cast<sal_Unicode*>(pCppArgs[nPos]), nGPR, pGPR, pStack);
+                     break;
+                 case typelib_TypeClass_UNSIGNED_SHORT:
+-                    INSERT_UINT16(pCppArgs[nPos], nREG, pGPR, pStack);
++                    insertArgs(*static_cast<sal_uInt16*>(pCppArgs[nPos]), nGPR, pGPR, pStack);
+                     break;
+-                case typelib_TypeClass_BOOLEAN:
+-                case typelib_TypeClass_BYTE:
+-                    INSERT_INT8(pCppArgs[nPos], nREG, pGPR, pStack);
++                case typelib_TypeClass_SHORT:
++                    insertArgs(*static_cast<sal_Int16*>(pCppArgs[nPos]), nGPR, pGPR, pStack);
+                     break;
+-                case typelib_TypeClass_FLOAT:
+-                case typelib_TypeClass_DOUBLE:
+-                    INSERT_FLOAT_DOUBLE(pCppArgs[nPos], nFPR, pFPR, nREG, pGPR, pStack);
++                case typelib_TypeClass_UNSIGNED_LONG:
++                    insertArgs(*static_cast<sal_uInt32*>(pCppArgs[nPos]), nGPR, pGPR, pStack);
+                     break;
+-                case typelib_TypeClass_HYPER:
++                case typelib_TypeClass_LONG:
++                    insertArgs(*static_cast<sal_Int32*>(pCppArgs[nPos]), nGPR, pGPR, pStack);
++                    break;
++                // Todo: what type is enum?
++                case typelib_TypeClass_ENUM:
+                 case typelib_TypeClass_UNSIGNED_HYPER:
+-                    INSERT_INT64(pCppArgs[nPos], nREG, pGPR, pStack);
++                    insertArgs(*static_cast<sal_uInt64*>(pCppArgs[nPos]), nGPR, pGPR, pStack);
++                    break;
++                case typelib_TypeClass_HYPER:
++                    insertArgs(*static_cast<sal_Int64*>(pCppArgs[nPos]), nGPR, pGPR, pStack);
++                    break;
++                // Floating point register -> General purpose register -> Stack
++                case typelib_TypeClass_FLOAT:
++                    char* higher32Bit;
++                    if (nFPR < MAX_FP_REGS)
++                    {
++                        higher32Bit = reinterpret_cast<char*>(&pFPR[nFPR]) + 4;
++                        std::memcpy(&(pFPR[nFPR++]), pCppArgs[nPos], 4);
++                    }
++                    else if (nGPR < MAX_GP_REGS)
++                    {
++                        higher32Bit = reinterpret_cast<char*>(&pGPR[nGPR]) + 4;
++                        std::memcpy(&(pGPR[nGPR++]), pCppArgs[nPos], 4);
++                    }
++                    else
++                    {
++                        higher32Bit = reinterpret_cast<char*>(pStack) + 4;
++                        std::memcpy(pStack++, pCppArgs[nPos], 4);
++                    }
++                    // Assure that the higher 32 bits are set to 1
++                    std::memset(higher32Bit, 0xFF, 4);
++                    break;
++                case typelib_TypeClass_DOUBLE:
++                    if (nFPR < MAX_FP_REGS)
++                    {
++                        std::memcpy(&(pFPR[nFPR++]), pCppArgs[nPos], 8);
++                    }
++                    else if (nGPR < MAX_GP_REGS)
++                    {
++                        std::memcpy(&(pGPR[nGPR++]), pCppArgs[nPos], 8);
++                    }
++                    else
++                    {
++                        std::memcpy(pStack++, pCppArgs[nPos], 8);
++                    }
+                     break;
+                 default:
+                     break;
+@@ -409,7 +363,7 @@ static void cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy* pThis,
+                 // no longer needed
+                 TYPELIB_DANGER_RELEASE(pParamTypeDescr);
+             }
+-            INSERT_INT64(&(pCppArgs[nPos]), nREG, pGPR, pStack);
++            insertArgs(reinterpret_cast<sal_uInt64>(pCppArgs[nPos]), nGPR, pGPR, pStack);
+         }
+     }
+@@ -587,6 +541,7 @@ void unoInterfaceProxyDispatch(uno_Interface* pUnoI, const typelib_TypeDescripti
+                         }
+                         TYPELIB_DANGER_RELEASE(pTD);
+                     }
++                    [[fallthrough]];
+                 } // else perform queryInterface()
+                 default:
+                     // dependent dispatch
+-- 
+2.39.2
+
diff --git a/debian/patches/fix-system-abseil-build.diff b/debian/patches/fix-system-abseil-build.diff
new file mode 100644 (file)
index 0000000..2cfb63b
--- /dev/null
@@ -0,0 +1,130 @@
+From 61a6811906d48bb3d92384a6aef6cabcfe4fdcca Mon Sep 17 00:00:00 2001
+From: Rene Engelhard <rene@rene-engelhard.de>
+Date: Fri, 15 Dec 2023 23:45:04 +0100
+Subject: [PATCH] fix system-abseil build even with 2022 version
+
+actually it seems it was a internal abseil header from pdfium vs. system
+header mismatch. Include proper absl/container/inlined_vector.h if using
+system-abseil.
+
+While at it we can also just use pkg-config, no idea why I did it
+without back then. Also gets the advantage that it knows that the libs
+needed for absl_inlined_vector is actually
+-labsl_throw_delegate -labsl_raw_logging_internal -labsl_log_severity
+
+This effectively reverts e89723103313ec4366ee58144c47d7a5c16bf838
+
+Change-Id: Ide4f79860b4e0673c5c6587d503058bdd2930744
+---
+ configure.ac                              | 19 +------------------
+ external/pdfium/Library_pdfium.mk         |  5 +++++
+ external/pdfium/UnpackedTarball_pdfium.mk |  2 ++
+ external/pdfium/system-abseil.diff        | 15 +++++++++++++++
+ 4 files changed, 23 insertions(+), 18 deletions(-)
+ create mode 100644 external/pdfium/system-abseil.diff
+
+diff --git a/configure.ac b/configure.ac
+index 97de2b514d3a..586e31f8bae5 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -12231,15 +12231,7 @@ if test "$ENABLE_PDFIUM" = "TRUE"; then
+         AC_MSG_RESULT([external])
+         SYSTEM_ABSEIL=TRUE
+         AC_LANG_PUSH([C++])
+-        AC_CHECK_HEADER(absl/types/bad_optional_access.h, [],
+-                        [AC_MSG_ERROR(abseil headers not found.)], [])
+-        AC_CHECK_HEADER(absl/types/bad_variant_access.h, [],
+-                        [AC_MSG_ERROR(abseil headers not found.)], [])
+-        AC_CHECK_LIB([absl_bad_optional_access], [main], [],
+-                     [AC_MSG_ERROR([libabsl_bad_optional_access library not found.])])
+-        AC_CHECK_LIB([absl_bad_variant_access], [main], [],
+-                     [AC_MSG_ERROR([libabsl_bad_variant_access library not found.])])
+-        ABSEIL_LIBS="-labsl_bad_optional_access -labsl_bad_variant_access"
++      PKG_CHECK_MODULES(ABSEIL, absl_bad_optional_access absl_bad_variant_access absl_inlined_vector )
+         AC_LANG_POP([C++])
+         ABSEIL_CFLAGS=$(printf '%s' "$ABSEIL_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
+         FilterLibs "${ABSEIL_LIBS}"
+diff --git a/external/pdfium/Library_pdfium.mk b/external/pdfium/Library_pdfium.mk
+index fc0903d873d1..85f9d953b752 100644
+--- a/external/pdfium/Library_pdfium.mk
++++ b/external/pdfium/Library_pdfium.mk
+@@ -40,6 +40,11 @@ $(eval $(call gb_Library_add_defs,pdfium,\
+     -DUSE_SYSTEM_LIBOPENJPEG2 \
+ ))
+ endif
++ifeq ($(SYSTEM_ABSEIL),TRUE)
++$(eval $(call gb_Library_add_defs,pdfium,\
++    -DUSE_SYSTEM_ABSEIL \
++))
++endif
+ $(eval $(call gb_Library_set_generated_cxx_suffix,pdfium,cpp))
+diff --git a/external/pdfium/UnpackedTarball_pdfium.mk b/external/pdfium/UnpackedTarball_pdfium.mk
+index 924bbe23a8b8..f8d95d2785c7 100644
+--- a/external/pdfium/UnpackedTarball_pdfium.mk
++++ b/external/pdfium/UnpackedTarball_pdfium.mk
+@@ -16,6 +16,8 @@ pdfium_patches += c++20-comparison.patch
+ pdfium_patches += annot.patch.1
++pdfium_patches += system-abseil.diff
++
+ $(eval $(call gb_UnpackedTarball_UnpackedTarball,pdfium))
+ $(eval $(call gb_UnpackedTarball_set_tarball,pdfium,$(PDFIUM_TARBALL)))
+diff --git a/external/pdfium/system-abseil.diff b/external/pdfium/system-abseil.diff
+new file mode 100644
+index 000000000000..841bc8ce9468
+--- /dev/null
++++ b/external/pdfium/system-abseil.diff
+@@ -0,0 +1,15 @@
++--- core/fpdfapi/page/cpdf_sampledfunc.cpp    2023-12-15 23:27:10.955659091 +0100
+++++ core/fpdfapi/page/cpdf_sampledfunc.cpp    2023-12-15 23:27:43.420136476 +0100
++@@ -16,8 +16,11 @@
++ #include "core/fxcrt/cfx_bitstream.h"
++ #include "core/fxcrt/fx_memory_wrappers.h"
++ #include "core/fxcrt/fx_safe_types.h"
+++#ifdef USE_SYSTEM_ABSEIL
+++#include <absl/container/inlined_vector.h>
+++#else
++ #include "third_party/abseil-cpp/absl/container/inlined_vector.h"
++-
+++#endif
++ namespace {
++ 
++ // See PDF Reference 1.7, page 170, table 3.36.
+-- 
+2.39.2
+
+diff --git a/external/pdfium/annot.patch.1 b/external/pdfium/annot.patch.1
+index 330685962b4e..9ecd07643480 100644
+--- a/external/pdfium/annot.patch.1
++++ b/external/pdfium/annot.patch.1
+@@ -2,6 +2,17 @@ diff --git a/fpdfsdk/fpdf_annot.cpp b/fpdfsdk/fpdf_annot.cpp
+ index bc1f7f7eb..075baf1df 100644
+ --- a/fpdfsdk/fpdf_annot.cpp
+ +++ b/fpdfsdk/fpdf_annot.cpp
++@@ -8,6 +8,10 @@
++ #include <sstream>
++ #include <utility>
++ #include <vector>
+++#ifdef USE_SYSTEM_ABSEIL
+++#include <optional>
+++#include <absl/types/optional.h>
+++#endif
++ 
++ #include "constants/annotation_common.h"
++ #include "core/fpdfapi/edit/cpdf_pagecontentgenerator.h"
+ @@ -1366,6 +1366,42 @@ FPDFAnnot_GetFontSize(FPDF_FORMHANDLE hHandle,
+    return true;
+  }
+@@ -32,7 +40,7 @@ index bc1f7f7eb..075baf1df 100644
+ +  if (!pWidget)
+ +    return false;
+ +
+-+  std::optional<FX_COLORREF> text_color = pWidget->GetTextColor();
+++  absl::optional<FX_COLORREF> text_color = pWidget->GetTextColor();
+ +  if (!text_color)
+ +    return false;
+ +
diff --git a/debian/patches/fix-system-lpsolve-build.diff b/debian/patches/fix-system-lpsolve-build.diff
new file mode 100644 (file)
index 0000000..fb3cc57
--- /dev/null
@@ -0,0 +1,31 @@
+diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
+index 16eb38a..8983376 100644
+--- a/RepositoryExternal.mk
++++ b/RepositoryExternal.mk
+@@ -2392,7 +2392,7 @@ ifneq ($(ENABLE_LPSOLVE),)
+ ifneq ($(SYSTEM_LPSOLVE),)
+ define gb_LinkTarget__use_lpsolve
+-$(call gb_LinkTarget_add_libs,$(1),-llpsolve55)
++$(call gb_LinkTarget_add_ldflags,$(1),-llpsolve55_pic)
+ $(call gb_LinkTarget_add_defs,$(1),\
+       -DSYSTEM_LPSOLVE \
+ )
+diff --git a/configure.ac b/configure.ac
+index df7cb4c..9eb5bad 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -9790,10 +9812,11 @@ if test "$ENABLE_LPSOLVE" = TRUE; then
+         # some systems need this. Like Ubuntu....
+         AC_CHECK_LIB(m, floor)
+         AC_CHECK_LIB(dl, dlopen)
+-        AC_CHECK_LIB([lpsolve55], [make_lp], [:],
++        AC_CHECK_LIB(colamd, colamd)
++        AC_CHECK_LIB([lpsolve55_pic], [make_lp], [:],
+             [ AC_MSG_ERROR(lpsolve library not found or too old.)], [])
+         LIBS=$save_LIBS
+-        libo_MINGW_CHECK_DLL([lpsolve55])
++        libo_MINGW_CHECK_DLL([lpsolve55_pic])
+     else
+         AC_MSG_RESULT([internal])
+         SYSTEM_LPSOLVE=
diff --git a/debian/patches/help-msg-add-package-info.diff b/debian/patches/help-msg-add-package-info.diff
new file mode 100644 (file)
index 0000000..dbfb32a
--- /dev/null
@@ -0,0 +1,13 @@
+diff --git a/include/sfx2/strings.hrc b/include/sfx2/strings.hrc
+index 1b0ea6ccb2ff..630f4330552a 100644
+--- a/include/sfx2/strings.hrc
++++ b/include/sfx2/strings.hrc
+@@ -132,7 +132,7 @@
+ #define STR_GID_CONTROLS                        NC_("STR_GID_CONTROLS", "Controls")
+ #define STR_QUITAPP                             NC_("STR_QUITAPP", "E~xit %PRODUCTNAME")
+ #define RID_STR_HELP                            NC_("RID_STR_HELP", "Help")
+-#define RID_STR_HLPFILENOTEXIST                 NC_("RID_STR_HLPFILENOTEXIST", "The help file for this topic is not installed.")
++#define RID_STR_HLPFILENOTEXIST                 NC_("RID_STR_HLPFILENOTEXIST", "The help file for this topic is not installed. Please install the libreoffice-help-en-us package or the locale specific help package libreoffice-help-<language-code>.")
+ #define STR_QUICKSTART_EXIT                     NC_("STR_QUICKSTART_EXIT", "Exit Quickstarter")
+ #define STR_QUICKSTART_TIP                      NC_("STR_QUICKSTART_TIP", "%PRODUCTNAME %PRODUCTVERSION Quickstarter")
+ #define STR_QUICKSTART_FILEOPEN                 NC_("STR_QUICKSTART_FILEOPEN", "Open Document...")
diff --git a/debian/patches/hide-math-desktop-file.patch b/debian/patches/hide-math-desktop-file.patch
new file mode 100644 (file)
index 0000000..56aaa83
--- /dev/null
@@ -0,0 +1,15 @@
+Description: Hide startcenter and math from the shell
+Author: Olivier Tilloy <olivier.tilloy@canonical.com>
+Bug-Ubuntu: https://launchpad.net/bugs/1696250
+Forwarded: not-needed
+
+--- a/sysui/desktop/menus/math.desktop
++++ b/sysui/desktop/menus/math.desktop
+@@ -33,6 +33,7 @@ Keywords=Equation;OpenDocument Formula;F
+ InitialPreference=5
+ StartupWMClass=libreoffice-math
+ X-KDE-Protocols=file,http,webdav,webdavs
++NotShowIn=GNOME;
+ Actions=NewDocument;
+ [Desktop Action NewDocument]
diff --git a/debian/patches/icu-74.1.diff b/debian/patches/icu-74.1.diff
new file mode 100644 (file)
index 0000000..4cbd69c
--- /dev/null
@@ -0,0 +1,71 @@
+From ae182240328f20508c7a8936daf74a088627540b Mon Sep 17 00:00:00 2001
+From: Taichi Haradaguchi <20001722@ymail.ne.jp>
+Date: Tue, 31 Oct 2023 19:46:23 +0900
+Subject: Update to ICU 74.1
+
+https://icu.unicode.org/download/74
+
+Unicode 15.1
+https://blog.unicode.org/2023/09/announcing-unicode-standard-version-151.html
+
+CLDR 44
+https://cldr.unicode.org/index/downloads/cldr-44
+
+New Unicode blocks:
+UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_I
+
+Change-Id: Ic9196e10138663d07235f5ebd9cc4bf3a9750824
+Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158749
+Tested-by: Eike Rathke <erack@redhat.com>
+Reviewed-by: Eike Rathke <erack@redhat.com>
+---
+ configure.ac                                | 4 ++--
+ download.lst                                | 8 ++++----
+ external/icu/icu4c-khmerbreakengine.patch.1 | 1 -
+ include/svx/strings.hrc                     | 1 +
+ svx/source/dialog/charmap.cxx               | 5 +++++
+ 5 files changed, 12 insertions(+), 7 deletions(-)
+
+diff --git a/external/icu/icu4c-khmerbreakengine.patch.1 b/external/icu/icu4c-khmerbreakengine.patch.1
+index 605914014e96..db8ac50e6f75 100644
+--- a/external/icu/icu4c-khmerbreakengine.patch.1
++++ b/external/icu/icu4c-khmerbreakengine.patch.1
+@@ -796,7 +796,6 @@ diff -ur icu.org/source/common/dictionarydata.cpp icu/source/common/dictionaryda
+              if (wordCount < limit) {
+                  if (values != nullptr) {
+                      values[wordCount] = bt.getValue();
+-
+ diff -ur icu.org/source/common/dictionarydata.h icu/source/common/dictionarydata.h
+ --- icu.org/source/common/dictionarydata.h    2023-06-14 06:23:55.000000000 +0900
+ +++ icu/source/common/dictionarydata.h        2023-06-26 17:43:53.097724900 +0900
+diff --git a/include/svx/strings.hrc b/include/svx/strings.hrc
+index 13f896f04eeb..b8e69dc3dbe1 100644
+--- a/include/svx/strings.hrc
++++ b/include/svx/strings.hrc
+@@ -1790,6 +1790,7 @@
+ #define RID_SUBSETSTR_KAKTOVIK_NUMERALS                     NC_("RID_SUBSETMAP", "Kaktovik Numerals")
+ #define RID_SUBSETSTR_KAWI                                  NC_("RID_SUBSETMAP", "Kawi")
+ #define RID_SUBSETSTR_NAG_MUNDARI                           NC_("RID_SUBSETMAP", "Nag Mundari")
++#define RID_SUBSETSTR_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_I    NC_("RID_SUBSETMAP", "CJK Unified Ideographs Extension I")
+ #define RID_SVXSTR_FRAMEDIR_LTR                             NC_("RID_SVXSTR_FRAMEDIR_LTR", "Left-to-right (LTR)")
+ #define RID_SVXSTR_FRAMEDIR_RTL                             NC_("RID_SVXSTR_FRAMEDIR_RTL", "Right-to-left (RTL)")
+diff --git a/svx/source/dialog/charmap.cxx b/svx/source/dialog/charmap.cxx
+index ed0c626b59c6..a73b0e263d60 100644
+--- a/svx/source/dialog/charmap.cxx
++++ b/svx/source/dialog/charmap.cxx
+@@ -1923,6 +1923,11 @@ void SubsetMap::InitList()
+                 case UBLOCK_NAG_MUNDARI:
+                     aAllSubsets.emplace_back( 0x1E4D0, 0x1E4FF, SvxResId(RID_SUBSETSTR_NAG_MUNDARI) );
+                     break;
++#endif
++#if (U_ICU_VERSION_MAJOR_NUM >= 74)
++                case UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_I:
++                    aAllSubsets.emplace_back( 0x2EBF0, 0x2EE5F, SvxResId(RID_SUBSETSTR_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_I) );
++                    break;
+ #endif
+             }
+-- 
+cgit v1.2.3
+
diff --git a/debian/patches/install-fixes.diff b/debian/patches/install-fixes.diff
new file mode 100644 (file)
index 0000000..891bb32
--- /dev/null
@@ -0,0 +1,166 @@
+diff --git a/bin/distro-install-file-lists b/bin/distro-install-file-lists
+index eaabf9c..c1b1ec6 100755
+--- libreoffice-3.5.0/bin/distro-install-file-lists
++++ libreoffice-3.5.0/bin/distro-install-file-lists
+@@ -8,6 +8,8 @@
+     exit 1
+ fi
++export OOO_VENDOR=Debian
++
+ BUILDDIR=`pwd`
+ FILELISTSDIR="$BUILDDIR/file-lists"
+@@ -351,152 +351,6 @@ if test "z$OOO_VENDOR" != "zDebian" ; then
+     remove_duplicity_from_flists common_list.txt lang_bg_list.txt $INSTALLDIR/presets/config/styles.sod
+     # the British fixes can be removed after the issue #54113 is fixed
+     remove_duplicity_from_flists common_list.txt lang_en-GB_list.txt $INSTALLDIR/presets/config/standard.sog
+-
+-else
+-
+-    echo "Creating package directories..."
+-
+-    test -d pkg && rm -r pkg || :
+-
+-    # Create package tree (needed by Debian's dpkg)
+-    # create_package_directory <list_file> <directory_name>
+-    create_package_directory()
+-    {
+-        listfile=$1
+-        directory="$2"
+-        perl -nl \
+-            -e " if(/^%dir (.*)/)
+-                    {system('mkdir', '-p', '-m', '755', \"$directory\".\$1);}
+-                else
+-                    {rename('./'.\$_, \"$directory\".\$_);}
+-                " \
+-            $listfile
+-    }
+-
+-    create_package_directory gid_Module_Root_Ure_Hidden        pkg/ure
+-
+-    create_package_directory gid_Module_Root                        pkg/libreoffice-common
+-    create_package_directory gid_Module_Root_Brand                  pkg/libreoffice-common
+-    create_package_directory gid_Module_Root_Files_Images           pkg/libreoffice-common
+-    create_package_directory gid_Module_Oo_Linguistic               pkg/libreoffice-common
+-    create_package_directory gid_Module_Optional_Xsltfiltersamples  pkg/libreoffice-common
+-    create_package_directory gid_Module_Optional_Grfflt             pkg/libreoffice-draw
+-    create_package_directory gid_Module_Prg_Calc_Bin                pkg/libreoffice-calc
+-    create_package_directory gid_Module_Prg_Math_Bin                pkg/libreoffice-math
+-    create_package_directory gid_Module_Prg_Draw_Bin                pkg/libreoffice-draw
+-    create_package_directory gid_Module_Prg_Wrt_Bin                 pkg/libreoffice-writer
+-    create_package_directory gid_Module_Prg_Impress_Bin             pkg/libreoffice-impress
+-    create_package_directory gid_Module_Prg_Base_Bin                pkg/libreoffice-base
+-    create_package_directory gid_Module_Brand_Prg_Calc              pkg/libreoffice-calc
+-    create_package_directory gid_Module_Brand_Prg_Math              pkg/libreoffice-math
+-    create_package_directory gid_Module_Brand_Prg_Draw              pkg/libreoffice-draw
+-    create_package_directory gid_Module_Brand_Prg_Wrt               pkg/libreoffice-writer
+-    create_package_directory gid_Module_Brand_Prg_Impress           pkg/libreoffice-impress
+-    create_package_directory gid_Module_Brand_Prg_Base              pkg/libreoffice-base
+-    create_package_directory gid_Module_Pyuno                       pkg/python-uno
+-    create_package_directory gid_Module_Optional_Gnome              pkg/libreoffice-gnome
+-
+-    create_package_directory gid_Module_Root_Files_2                pkg/libreoffice-common
+-    create_package_directory gid_Module_Root_Files_3                pkg/libreoffice-common
+-    create_package_directory gid_Module_Root_Files_4                pkg/libreoffice-common
+-    create_package_directory gid_Module_Root_Files_5                pkg/libreoffice-common
+-    create_package_directory gid_Module_Root_Files_6                pkg/libreoffice-common
+-    create_package_directory gid_Module_Root_Files_7                pkg/libreoffice-common
+-    if [ -e gid_Module_Optional_Pymailmerge ]; then
+-        create_package_directory gid_Module_Optional_Pymailmerge    pkg/libreoffice-emailmerge
+-    else # post m26
+-        mkdir -p pkg/libreoffice-emailmerge/$INSTALLDIR/program
+-        mv pkg/libreoffice-common/$INSTALLDIR/program/mailmerge.py \
+-            pkg/libreoffice-emailmerge/$INSTALLDIR/program/mailmerge.py
+-    fi
+-    create_package_directory gid_Module_Optional_OGLTrans           pkg/libreoffice-ogltrans
+-
+-    create_package_directory gid_Module_Root_SDK                    pkg/libreoffice-dev
+-
+-    for l in `echo $WITH_LANG_LIST`; do
+-        for p in Impress Draw Math Calc Base Writer; do
+-            create_package_directory  gid_Module_Langpack_${p}_`echo $l | sed -e s/-/_/g` pkg/libreoffice-l10n-$l
+-        done
+-        create_package_directory gid_Module_Langpack_Basis_`echo $l | sed -e s/-/_/g`     pkg/libreoffice-l10n-$l
+-        create_package_directory gid_Module_Langpack_Brand_`echo $l | sed -e s/-/_/g`     pkg/libreoffice-l10n-$l
+-        create_package_directory gid_Module_Langpack_Resource_`echo $l | sed -e s/-/_/g`  pkg/libreoffice-l10n-$l
+-        create_package_directory gid_Module_Helppack_Help_`echo $l | sed -e s/-/_/g`      pkg/libreoffice-help-$l
+-
+-        # some help files are in _Langpack_{Writer,Impress,...}_<lang>
+-        # move them from -l10n to -help
+-        if [ "$l" = "en-US" ]; then d=en; else d=$l; fi
+-        mv pkg/libreoffice-l10n-$l/$INSTALLDIR/help/$d/* \
+-            pkg/libreoffice-help-$l/$INSTALLDIR/help/$d && \
+-        rmdir pkg/libreoffice-l10n-$l/$INSTALLDIR/help/$d
+-    done
+-
+-    # move_wrappers <directory_name> <name> [...]
+-    move_wrappers()
+-    {
+-        directory=$1
+-        shift
+-        mkdir -m755 -p "$directory"/usr/bin
+-        while test -n "$1"; do
+-            mv usr/*bin/"$1$BINSUFFIX" "$directory"/usr/bin
+-            shift
+-        done
+-    }
+-    move_wrappers pkg/libreoffice-common soffice unopkg
+-    if test "$COMPAT_OOWRAPPERS" = "YES" ; then
+-        move_wrappers pkg/libreoffice-common ooffice oofromtemplate
+-        move_wrappers pkg/libreoffice-base oobase
+-        move_wrappers pkg/libreoffice-writer oowriter ooweb
+-        move_wrappers pkg/libreoffice-calc oocalc
+-        move_wrappers pkg/libreoffice-impress ooimpress
+-        move_wrappers pkg/libreoffice-math oomath
+-        move_wrappers pkg/libreoffice-draw oodraw
+-    fi
+-    move_wrappers pkg/libreoffice-common libreoffice lofromtemplate
+-    move_wrappers pkg/libreoffice-base lobase
+-    move_wrappers pkg/libreoffice-writer lowriter loweb
+-    move_wrappers pkg/libreoffice-calc localc
+-    move_wrappers pkg/libreoffice-impress loimpress
+-    move_wrappers pkg/libreoffice-math lomath
+-    move_wrappers pkg/libreoffice-draw lodraw
+-
+-    # Move all libraries, binaries, *.rdb from -common to -core
+-    for d in $INSTALLDIR/program $INSTALLDIR/program; do \
+-      if [ ! -d $DESTDIR/pkg/libreoffice-core/$d ]; then \
+-      mkdir -p $DESTDIR/pkg/libreoffice-core/$d; \
+-      fi &&
+-      ( cd pkg/libreoffice-common/$d
+-        find -maxdepth 1 \
+-           -regex '\./\(.*\.so.*\|.*\.bin\|pagein\|msfontextract\|.*\.rdb\|javaldx\|uri-encode\)' \
+-           -exec mv {} $DESTDIR/pkg/libreoffice-core/$d \;
+-      ); \
+-    done
+-
+-    # install additional ooo-build scripts & misc stuff
+-    mkdir -p pkg/libreoffice-common/usr/share/man/man1
+-    if test "$COMPAT_OOWRAPPERS" = "YES" ; then
+-        mv usr/share/man/man1/openoffice$BINSUFFIX.1 \
+-            pkg/libreoffice-common/usr/share/man/man1
+-    fi
+-    mv usr/share/man/man1/libreoffice$BINSUFFIX.1 \
+-        pkg/libreoffice-common/usr/share/man/man1
+-    mkdir -p pkg/libreoffice-common/etc/bash_completion.d
+-    if test "$COMPAT_OOWRAPPERS" = "YES" ; then
+-        mv etc/bash_completion.d/ooffice$BINSUFFIX.sh \
+-            pkg/libreoffice-common/etc/bash_completion.d
+-    fi
+-    mv etc/bash_completion.d/libreoffice$BINSUFFIX.sh \
+-        pkg/libreoffice-common/etc/bash_completion.d
+-    mv .$INSTALLDIR/program/java-set-classpath \
+-        pkg/libreoffice-common/$INSTALLDIR/program
+-    if echo $WITH_LANG_LIST | grep -q en-US; then
+-        for i in forms/resume.ott officorr/project-proposal.ott; do \
+-            mkdir -p pkg/libreoffice-common/$INSTALLDIR/share/template/en-US/`dirname $i`; \
+-            mv .$INSTALLDIR/share/template/en-US/$i \
+-                pkg/libreoffice-common/$INSTALLDIR/share/template/en-US/$i; \
+-        done; \
+-    fi
+-    # Warn for any remaining files
+-    find . -path './pkg' -prune -o -not -name 'gid_Module_*' -not -type d -exec echo "File not packaged: {}" \;
+ fi
+ # mark the config files
diff --git a/debian/patches/javadoc-optional.diff b/debian/patches/javadoc-optional.diff
new file mode 100644 (file)
index 0000000..b68ea63
--- /dev/null
@@ -0,0 +1,151 @@
+Gemeinsame Unterverzeichnisse: odk-old/config und odk/config.
+Gemeinsame Unterverzeichnisse: odk-old/docs und odk/docs.
+Gemeinsame Unterverzeichnisse: odk-old/examples und odk/examples.
+diff --git a/odk/Module_odk.mk b/odk/Module_odk.mk
+index 693885322115..5fcb39306a0b 100644
+--- a/odk/Module_odk.mk
++++ b/odk/Module_odk.mk
+@@ -42,8 +42,10 @@ endif
+ ifneq ($(ENABLE_JAVA),)
+ $(eval $(call gb_Module_add_targets,odk,\
+       CustomTarget_classes \
+-      CustomTarget_javadoc \
+-      GeneratedPackage_odk_javadoc \
++      $(if $(JAVADOC),\
++              CustomTarget_javadoc \
++              GeneratedPackage_odk_javadoc \
++      ) \
+       GeneratedPackage_uno_loader_classes \
+ ))
+ endif
+
+Gemeinsame Unterverzeichnisse: odk-old/pack und odk/pack.
+Gemeinsame Unterverzeichnisse: odk-old/qa und odk/qa.
+Gemeinsame Unterverzeichnisse: odk-old/settings und odk/settings.
+Gemeinsame Unterverzeichnisse: odk-old/source und odk/source.
+Gemeinsame Unterverzeichnisse: odk-old/util und odk/util.
+--- a/configure.ac-old 2013-05-27 18:32:42.187305241 +0200
++++ b/configure.ac     2013-05-27 18:44:29.131286710 +0200
+@@ -2057,6 +2057,18 @@ AC_ARG_WITH(doxygen,
+          documentation. Not relevant in the --disable-odk case.]),
+ ,with_doxygen=yes)
++AC_ARG_WITH(
++    [javadoc],
++    AS_HELP_STRING(
++        [--with-javadoc],
++        [Specifies the javadoc executable to use when generating ODK Java
++         documentation. --without-javadoc disables generation of ODK Java
++         documentation. Not relevant in the --disable-odk case.])
++    [
++                          Usage:     --with-javadoc=<absolute path to doxygen executable>
++    ],,
++    [with_javadoc=yes])
++
+ AC_ARG_WITH(visual-studio,
+     AS_HELP_STRING([--with-visual-studio=<2019/2022/2022preview>],
+         [Specify which Visual Studio version to use in case several are
+@@ -7872,34 +7872,43 @@ fi
+ dnl ===================================================================
+ dnl Checks for javadoc
+ dnl ===================================================================
+-if test "$ENABLE_JAVA" != "" -a "$cross_compiling" != "yes"; then
++if test "$ENABLE_JAVA" != "" -a "$enable_odk" != no -a "$cross_compiling" != "yes"; then
+     if test -z "$with_jdk_home"; then
+         AC_PATH_PROG(JAVADOC, javadoc)
+     else
+-        _javadoc_path="$with_jdk_home/bin/javadoc"
+-        dnl Check if there is a javadoc at all.
+-        if test -x "$_javadoc_path"; then
+-            JAVADOC=$_javadoc_path
+-        else
+-            AC_PATH_PROG(JAVADOC, javadoc)
+-        fi
+-    fi
+-    if test -z "$JAVADOC"; then
+-        AC_MSG_ERROR([$_javadoc_path not found set with_jdk_home])
+-    fi
+-    if test "$build_os" = "cygwin"; then
+-        if test x`echo "$JAVADOC" | $GREP -i '\.exe$'` = x; then
+-            JAVADOC="${JAVADOC}.exe"
+-        fi
+-        JAVADOC=`win_short_path_for_make "$JAVADOC"`
+-    fi
++      if test "$with_javadoc" = "yes"; then
++            _javadoc_path="$with_jdk_home/bin/javadoc"
++            dnl Check if there is a javadoc at all.
++            if test -x "$_javadoc_path"; then
++                JAVADOC=$_javadoc_path
++            else
++                AC_PATH_PROG(JAVADOC, javadoc)
++            fi
++            if test -z "$JAVADOC"; then
++                AC_MSG_ERROR([$_javadoc_path not found set with_jdk_home])
++            fi
++            if test "$build_os" = "cygwin"; then
++                if test x`echo "$JAVADOC" | $GREP -i '\.exe$'` = x; then
++                    JAVADOC="${JAVADOC}.exe"
++                fi
++                JAVADOC=`win_short_path_for_make "$JAVADOC"`
++            fi
+-    if test `$JAVADOC --version 2>&1 | $GREP -c "gjdoc"` -gt 0; then
+-    JAVADOCISGJDOC="yes"
++            if test `$JAVADOC --version 2>&1 | $GREP -c "gjdoc"` -gt 0; then
++            JAVADOCISGJDOC="yes"
++            fi
++       else
++               unset JAVADOC
++       fi
+     fi
++else
++    unset JAVADOC
+ fi
+-AC_SUBST(JAVADOC)
+ AC_SUBST(JAVADOCISGJDOC)
++if test "$JAVADOCISGJDOC" = "yes"; then
++       unset JAVADOC
++fi
++AC_SUBST(JAVADOC)
+ if test "$ENABLE_JAVA" != "" -a \( "$cross_compiling" != "yes" -o -n "$with_jdk_home" \); then
+     # check if JAVA_HOME was (maybe incorrectly?) set automatically to /usr
+diff --git a/odk/CustomTarget_check.mk b/odk/CustomTarget_check.mk
+index 74331955be9b..3415b0193cf9 100644
+--- a/odk/CustomTarget_check.mk
++++ b/odk/CustomTarget_check.mk
+@@ -36,7 +36,7 @@ $(call gb_CustomTarget_get_workdir,odk/check)/checkbin : \
+               $(if $(filter WNT,$(OS)),$(call gb_Package_get_target,odk_config_win)) \
+               $(call gb_Package_get_target,odk_docs) \
+               $(call gb_Package_get_target,odk_html) \
+-              $(if $(ENABLE_JAVA),$(call gb_GeneratedPackage_get_target,odk_javadoc)) \
++              $(if $(JAVADOC),$(call gb_GeneratedPackage_get_target,odk_javadoc)) \
+               $(call gb_Package_get_target,odk_settings) \
+               $(call gb_Package_get_target,odk_settings_generated)
+ ifneq ($(gb_SUPPRESS_TESTS),)
+diff --git a/odk/util/check.pl b/odk/util/check.pl
+index 899b42c..2c7a780 100644
+--- a/odk/util/check.pl
++++ b/odk/util/check.pl
+@@ -188,7 +188,7 @@ if (-d "$SdkDir") {
+     # improvement required
+     my $solar_java = $ENV{"ENABLE_JAVA"};
+     my $JDK = $ENV{"JDK"};
+-    if (defined($solar_java) && $solar_java ne "" && (!defined($JDK) || $JDK ne "gcj")) {
++    if (defined($solar_java) && $solar_java ne "" && $ENV{"JAVADOC"} ne "") {
+     print "check java docu: ";
+     if (check_dir("docs/java/ref")) {
+         if (!check_file("docs/java/ref/index.html")) {
+diff --git a/Repository.mk b/Repository.mk
+index 5f2654b..471210f 100644
+--- a/Repository.mk
++++ b/Repository.mk
+@@ -834,7 +841,7 @@ $(eval $(call gb_Helper_register_packages_for_install,sdk,\
+       odk_settings \
+       odk_settings_generated \
+       $(if $(ENABLE_JAVA), \
+-              odk_javadoc \
++              $(if $(JAVADOC),odk_javadoc) \
+               odk_uno_loader_classes \
+       ) \
+ ))
diff --git a/debian/patches/jdbc-driver-classpaths.diff b/debian/patches/jdbc-driver-classpaths.diff
new file mode 100644 (file)
index 0000000..8f4a166
--- /dev/null
@@ -0,0 +1,35 @@
+diff --git a/officecfg/registry/data/org/openoffice/Office/DataAccess.xcu b/officecfg/registry/data/org/openoffice/Office/DataAccess.xcu
+index 9be30a2..59c87cb 100644
+--- a/officecfg/registry/data/org/openoffice/Office/DataAccess.xcu
++++ b/officecfg/registry/data/org/openoffice/Office/DataAccess.xcu
+@@ -147,6 +147,30 @@
+       </node>
+     </node>
+   </node>
++  <node oor:name="JDBC">
++    <node oor:name="DriverClassPaths">
++      <node oor:name="org.mariadb.jdbc.Driver" oor:op="replace">
++        <prop oor:name="Path">
++          <value>file:///usr/share/java/mariadb-java-client.jar</value>
++        </prop>
++      </node>
++      <node oor:name="com.mysql.jdbc.Driver" oor:op="replace">
++        <prop oor:name="Path">
++          <value>file:///usr/share/java/mysql.jar</value>
++        </prop>
++      </node>
++      <node oor:name="org.postgresql.Driver" oor:op="replace">
++        <prop oor:name="Path">
++          <value>file:///usr/share/java/posgresql.jar</value>
++        </prop>
++      </node>
++      <node oor:name="net.sourceforge.jtds.jdbc.Driver" oor:op="replace">
++        <prop oor:name="Path">
++          <value>file:///usr/share/java/jtds.jar</value>
++        </prop>
++      </node>
++    </node>
++  </node>
+   <node oor:name="RegisteredNames">
+     <node oor:name="EvolutionLocal" oor:op="replace" install:module="evoab2">
+       <prop oor:name="Location" oor:type="xs:string">
diff --git a/debian/patches/jurt-soffice-location.diff b/debian/patches/jurt-soffice-location.diff
new file mode 100644 (file)
index 0000000..aa334d8
--- /dev/null
@@ -0,0 +1,20 @@
+commit b71107fb12e3c3125e0cb62c5a4f6636a80c6408
+Author:     Bjoern Michaelsen <bjoern.michaelsen@canonical.com>
+AuthorDate: Tue Jun 7 11:52:37 2011 +0200
+Commit:     Bjoern Michaelsen <bjoern.michaelsen@canonical.com>
+CommitDate: Tue Jun 7 11:52:37 2011 +0200
+
+    on debian-based systems, we know where our soffice binary is
+
+diff --git a/jurt/com/sun/star/lib/util/NativeLibraryLoader.java b/jurt/com/sun/star/lib/util/NativeLibraryLoader.jav
+index da22980..36664ca 100644
+--- libreoffice-3.5.0/ridljar/com/sun/star/lib/util/NativeLibraryLoader.java
++++ libreoffice-3.5.0/ridljar/com/sun/star/lib/util/NativeLibraryLoader.java
+@@ -111,6 +111,8 @@ public final class NativeLibraryLoader {
+                 }
+             }
+         }
++        if (name.equals("soffice"))
++            return new File("/usr/lib/libreoffice/program/soffice");
+         return null;
+     }
diff --git a/debian/patches/make-package-modules-not-suck.diff b/debian/patches/make-package-modules-not-suck.diff
new file mode 100644 (file)
index 0000000..9ba9445
--- /dev/null
@@ -0,0 +1,210 @@
+diff --git a/scp2/InstallModule_draw.mk b/scp2/InstallModule_draw.mk
+index a7c02be..d48edf2 100644
+--- a/scp2/InstallModule_draw.mk
++++ b/scp2/InstallModule_draw.mk
+@@ -10,6 +10,7 @@
+ $(eval $(call gb_InstallModule_InstallModule,scp2/draw))
+ $(eval $(call gb_InstallModule_use_auto_install_libs,scp2/draw,\
++      draw \
+       draw_brand \
+ ))
+diff --git a/scp2/source/draw/module_draw.scp b/scp2/source/draw/module_draw.scp
+index 8737579..0913c61 100644
+--- a/scp2/source/draw/module_draw.scp
++++ b/scp2/source/draw/module_draw.scp
+@@ -18,6 +18,7 @@
+ #include "macros.inc"
++#include "AutoInstall/draw"
+ #include "AutoInstall/draw_brand"
+ Module gid_Module_Prg_Draw
+@@ -34,7 +35,8 @@ Module gid_Module_Prg_Draw_Bin
+     Sortkey = "100";
+     Default = YES;
+     Styles = (HIDDEN_ROOT);
+-    Files = (gid_File_Extra_Urldesktop_Draw,gid_File_Extra_Urlnew_Draw,gid_File_Extra_Urlstart_Draw,gid_File_Extra_Urltasks_Draw,
++    Files = (auto_draw_ALL,
++    gid_File_Extra_Urldesktop_Draw,gid_File_Extra_Urlnew_Draw,gid_File_Extra_Urlstart_Draw,gid_File_Extra_Urltasks_Draw,
+     gid_File_Share_Registry_Draw_Xcd,
+     gid_File_Tmp_Userinstall_Draw_Inf);
+ End
+diff --git a/scp2/AutoInstall.mk b/scp2/AutoInstall.mk
+index 7d2a347..a15ac52 100644
+--- a/scp2/AutoInstall.mk
++++ b/scp2/AutoInstall.mk
+@@ -17,6 +17,7 @@ $(eval $(call gb_AutoInstall_add_module,base_brand,,LIBO_EXECUTABLE,,PACKAGE_FIL
+ $(eval $(call gb_AutoInstall_add_module,brand,,LIBO_EXECUTABLE,,PACKAGE_FILELIST))
+ $(eval $(call gb_AutoInstall_add_module,calc,LIBO_LIB_FILE,,,PACKAGE_FILELIST))
+ $(eval $(call gb_AutoInstall_add_module,calc_brand,,LIBO_EXECUTABLE,,PACKAGE_FILELIST))
++$(eval $(call gb_AutoInstall_add_module,draw,LIBO_LIB_FILE))
+ $(eval $(call gb_AutoInstall_add_module,draw_brand,,LIBO_EXECUTABLE,,PACKAGE_FILELIST))
+ $(eval $(call gb_AutoInstall_add_module,extensions_bsh,,,LIBO_JAR_FILE))
+ $(eval $(call gb_AutoInstall_add_module,extensions_numbertext,,,,PACKAGE_FILELIST))
+diff --git a/Repository.mk b/Repository.mk
+index f386b8aa7c05..7c337f23891b 100644
+--- a/Repository.mk
++++ b/Repository.mk
+@@ -244,13 +244,29 @@ $(eval $(call gb_Helper_register_executables_for_install,UREBIN,ure,\
+ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,base, \
+       abp \
++      calc \
++      dba \
++      dbahsql \
++      $(call gb_Helper_optional,DBCONNECTIVITY, \
++              dbase \
++              dbaxml) \
+       dbp \
+       dbu \
++       $(call gb_Helper_optional,DBCONNECTIVITY,flat) \
++       $(if $(ENABLE_JAVA),jdbc) \
++      $(call gb_Helper_optional,DBCONNECTIVITY,mysql_jdbc) \
++      $(call gb_Helper_optional,MARIADBC,$(call gb_Helper_optional,DBCONNECTIVITY,mysqlc)) \
++       odbc \
++))
++
++$(eval $(call gb_Helper_register_libraries_for_install,PLAINLIBS_OOO,base, \
++      $(call gb_Helper_optional,DBCONNECTIVITY,dbpool2) \
++       $(if $(ENABLE_JAVA),hsqldb) \
++       sdbc2 \
+ ))
+ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,calc, \
+       analysis \
+-      $(call gb_Helper_optional,DBCONNECTIVITY,calc) \
+       date \
+       pricing \
+       sc \
+@@ -265,6 +281,12 @@ $(eval $(call gb_Helper_register_plugins_for_install,OOOLIBS,calc, \
+     scui \
+ ))
++$(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,draw, \
++      animcore \
++      sd \
++      sdd \
++))
++
+ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,graphicfilter, \
+       svgfilter \
+       wpftdraw \
+@@ -272,10 +295,10 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,graphicfilter, \
+ ))
+ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,impress, \
+-      animcore \
+       PresentationMinimizer \
+       wpftimpress \
++      slideshow \
+ ))
+ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,onlineupdate, \
+       $(if $(ENABLE_ONLINE_UPDATE), \
+@@ -355,11 +378,6 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,ooo, \
+       $(if $(filter $(OS),WNT),,cmdmail) \
+       configmgr \
+       ctl \
+-      dba \
+-      dbahsql \
+-      $(call gb_Helper_optional,DBCONNECTIVITY, \
+-              dbase \
+-              dbaxml) \
+       dbtools \
+       deploymentmisc \
+       $(if $(filter-out MACOSX WNT,$(OS)),desktopbe1) \
+@@ -373,7 +391,6 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,ooo, \
+       $(if $(filter WNT,$(OS)),emser) \
+       evtatt \
+       $(call gb_Helper_optional,DBCONNECTIVITY, \
+-              flat \
+               file) \
+       filterconfig \
+       fps_office \
+@@ -412,7 +412,6 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,ooo, \
+     $(call gb_Helper_optionals_or,HELPTOOLS XMLHELP,helplinker) \
+       i18npool \
+       i18nsearch \
+-      $(if $(ENABLE_JAVA),jdbc) \
+       $(if $(filter WNT,$(OS)),jumplist) \
+       $(if $(ENABLE_LDAP),ldapbe2) \
+       $(if $(filter WNT,$(OS)),WinUserInfoBe) \
+@@ -403,10 +419,7 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,ooo, \
+       msfilter \
+       $(call gb_Helper_optional,SCRIPTING,msforms) \
+       mtfrenderer \
+-      $(call gb_Helper_optional,DBCONNECTIVITY,mysql_jdbc) \
+-      $(call gb_Helper_optional,MARIADBC,$(call gb_Helper_optional,DBCONNECTIVITY,mysqlc)) \
+       numbertext \
+-      odbc \
+       odfflatxml \
+       offacc \
+       oox \
+@@ -443,10 +443,7 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,ooo, \
+       sb \
+       $(call gb_Helper_optional,DBCONNECTIVITY,sdbt) \
+       scn \
+-      sd \
+-      sdd \
+       sfx \
+-      slideshow \
+       sot \
+       $(if $(or $(DISABLE_GUI),$(ENABLE_WASM_STRIP_SPLASH)),,spl) \
+       storagefd \
+@@ -436,7 +445,6 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,ooo, \
+       svt \
+       svx \
+       svxcore \
+-      sw \
+       syssh \
+       textconversiondlgs \
+       textfd \
+@@ -506,12 +501,15 @@ $(eval $(call gb_Helper_register_plugins_for_install,OOOLIBS,ooo, \
+     cui \
+     $(if $(USING_X11),desktop_detector) \
+     icg \
+-    sdui \
+     $(if $(ENABLE_GEN),vclplug_gen) \
+     $(if $(filter $(OS),WNT),vclplug_win) \
+     $(if $(filter $(OS),MACOSX),vclplug_osx) \
+ ))
++$(eval $(call gb_Helper_register_plugins_for_install,OOOLIBS,draw, \
++    sdui \
++))
++
+ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,postgresqlsdbc, \
+       $(if $(BUILD_POSTGRESQL_SDBC), \
+               postgresql-sdbc \
+@@ -529,6 +540,7 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,writer, \
+       hwp \
+       $(if $(ENABLE_LWP),lwpft) \
+       msword \
++      sw \
+       swd \
+       t602filter \
+       $(call gb_Helper_optional,SCRIPTING,vbaswobj) \
+@@ -622,12 +634,10 @@ $(eval $(call gb_Helper_register_libraries_for_install,PLAINLIBS_OOO,ooo, \
+     ) \
+       cached1 \
+       comphelper \
+-      $(call gb_Helper_optional,DBCONNECTIVITY,dbpool2) \
+       $(call gb_Helper_optional,BREAKPAD,crashreport) \
+       deployment \
+       deploymentgui \
+       embobj \
+-      $(if $(ENABLE_JAVA),hsqldb) \
+       i18nutil \
+       $(if $(and $(ENABLE_GTK3), $(filter LINUX %BSD SOLARIS,$(OS))), libreofficekitgtk) \
+       $(if $(and $(ENABLE_GTKTILEDVIEWER), $(filter WNT,$(OS))), libreofficekitgtk) \
+@@ -636,7 +646,6 @@ $(eval $(call gb_Helper_register_libraries_for_install,PLAINLIBS_OOO,ooo, \
+       emboleobj \
+       package2 \
+       $(call gb_Helper_optional,SCRIPTING,scriptframe) \
+-      sdbc2 \
+       sofficeapp \
+       srtrs1 \
+       ucb1 \
diff --git a/debian/patches/mediwiki-oor-replace.diff b/debian/patches/mediwiki-oor-replace.diff
new file mode 100644 (file)
index 0000000..ed04c91
--- /dev/null
@@ -0,0 +1,51 @@
+diff --git a/swext/mediawiki/src/registry/data/org/openoffice/Office/OptionsDialog.xcu b/swext/mediawiki/src/registry/data/org/openoffice/Office/OptionsDialog.xcu
+index 2b35ced08f31..0c96070dd4f0 100644
+--- a/swext/mediawiki/src/registry/data/org/openoffice/Office/OptionsDialog.xcu
++++ b/swext/mediawiki/src/registry/data/org/openoffice/Office/OptionsDialog.xcu
+@@ -18,9 +18,9 @@
+  -->
+ <oor:component-data oor:name="OptionsDialog" oor:package="org.openoffice.Office" xmlns:oor="http://openoffice.org/2001/registry">
+     <node oor:name="Nodes">
+-        <node oor:name="Internet" oor:op="fuse">
++        <node oor:name="Internet" oor:op="replace">
+             <node oor:name="Leaves">
+-                <node oor:name="com.sun.star.wiki.options" oor:op="fuse">
++                <node oor:name="com.sun.star.wiki.options" oor:op="replace">
+                     <prop oor:name="Id">
+                         <value>com.sun.wiki-publisher</value>
+                     </prop>
+diff --git a/swext/mediawiki/src/registry/data/org/openoffice/TypeDetection/Filter.xcu b/swext/mediawiki/src/registry/data/org/openoffice/TypeDetection/Filter.xcu
+index 3309b503824c..261e470b253b 100644
+--- a/swext/mediawiki/src/registry/data/org/openoffice/TypeDetection/Filter.xcu
++++ b/swext/mediawiki/src/registry/data/org/openoffice/TypeDetection/Filter.xcu
+@@ -19,7 +19,7 @@
+ <!DOCTYPE oor:component-data SYSTEM "../../../../../../../../officecfg/registry/component-update.dtd">
+ <oor:component-data xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" oor:package="org.openoffice.TypeDetection" oor:name="Filter">
+     <node oor:name="Filters">
+-        <node oor:name="MediaWiki" oor:op="fuse">
++        <node oor:name="MediaWiki" oor:op="replace">
+             <prop oor:name="FileFormatVersion"><value>0</value></prop>
+                 <prop oor:name="Type"><value>MediaWiki</value></prop>
+             <prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop>
+@@ -31,7 +31,7 @@
+             </prop>
+             <prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop>
+         </node>
+-        <node oor:name="MediaWiki_Web" oor:op="fuse">
++        <node oor:name="MediaWiki_Web" oor:op="replace">
+             <prop oor:name="FileFormatVersion"><value>0</value></prop>
+                 <prop oor:name="Type"><value>MediaWiki</value></prop>
+                 <prop oor:name="DocumentService"><value>com.sun.star.text.WebDocument</value></prop>
+diff --git a/swext/mediawiki/src/registry/data/org/openoffice/TypeDetection/Types.xcu b/swext/mediawiki/src/registry/data/org/openoffice/TypeDetection/Types.xcu
+index 15e4f850041a..ce7cd0763b79 100644
+--- a/swext/mediawiki/src/registry/data/org/openoffice/TypeDetection/Types.xcu
++++ b/swext/mediawiki/src/registry/data/org/openoffice/TypeDetection/Types.xcu
+@@ -19,7 +19,7 @@
+ <!DOCTYPE oor:component-data SYSTEM "../../../../../../../../officecfg/registry/component-update.dtd">
+ <oor:component-data xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" oor:package="org.openoffice.TypeDetection" oor:name="Types">
+     <node oor:name="Types">
+-        <node oor:name="MediaWiki" oor:op="fuse">
++        <node oor:name="MediaWiki" oor:op="replace">
+             <prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop>
+             <prop oor:name="URLPattern"/>
+             <prop oor:name="Extensions"><value>txt</value></prop>
diff --git a/debian/patches/mention-java-common-package.diff b/debian/patches/mention-java-common-package.diff
new file mode 100644 (file)
index 0000000..f9b5078
--- /dev/null
@@ -0,0 +1,35 @@
+diff --git a/jvmfwk/plugins/sunmajor/javaenvsetup/javaldx.cxx b/jvmfwk/plugins/sunmajor/javaenvsetup/javaldx.cxx
+index 718902caba6f..3c8499b5a42c 100644
+--- a/jvmfwk/plugins/sunmajor/javaenvsetup/javaldx.cxx
++++ b/jvmfwk/plugins/sunmajor/javaenvsetup/javaldx.cxx
+@@ -141,6 +141,9 @@ static bool findAndSelect(JavaInfo ** ppInfo)
+     if (errcode == JFW_E_NO_JAVA_FOUND)
+     {
+         fprintf(stderr,"javaldx: Could not find a Java Runtime Environment!\n");
++        fprintf(stderr,"Please ensure that a JVM and the package libreoffice-java-common\n");
++        fprintf(stderr,"is installed.\n");
++        fprintf(stderr,"If it is already installed then try removing ~/.config/libreoffice/4/user/config/javasettings_Linux_*.xml\n");
+         return false;
+     }
+     else if (errcode != JFW_E_NONE && errcode != JFW_E_DIRECT_MODE)
+diff --git a/include/svtools/strings.hrc b/include/svtools/strings.hrc
+index f9dc617f4313..874b0400cbc5 100644
+--- a/include/svtools/strings.hrc
++++ b/include/svtools/strings.hrc
+@@ -267,13 +267,13 @@
+ #define STR_WARNING_EXTERNAL_LINK_EDIT_DISABLED NC_("STR_ERROR_EXTERNAL_LINK_EDIT_DISABLED", "It is not possible to edit external links. Active content is disabled in the security settings.")
+ #define STR_SVT_DEFAULT_SERVICE_LABEL           NC_("STR_SVT_DEFAULT_SERVICE_LABEL", "$user$'s $service$")
+-#define STR_WARNING_JAVANOTFOUND                NC_("STR_WARNING_JAVANOTFOUND", "%PRODUCTNAME requires a Java runtime environment (JRE) to perform this task. Please install a JRE and restart %PRODUCTNAME. %FAQLINK")
++#define STR_WARNING_JAVANOTFOUND                NC_("STR_WARNING_JAVANOTFOUND", "%PRODUCTNAME requires a Java runtime environment (JRE) to perform this task. Please install a JRE (and libreoffice-java-common) and restart %PRODUCTNAME. %FAQLINK")
+ #define STR_WARNING_JAVANOTFOUND_WIN            NC_("STR_WARNING_JAVANOTFOUND_WIN", "%PRODUCTNAME requires a %BITNESS-bit Java runtime environment (JRE) to perform this task. Please install a JRE and restart %PRODUCTNAME. %FAQLINK")
+ #define STR_WARNING_JAVANOTFOUND_MAC            NC_("STR_WARNING_JAVANOTFOUND_MAC", "%PRODUCTNAME requires Oracle's Java Development Kit (JDK) on macOS 10.10 or greater to perform this task. Please install them and restart %PRODUCTNAME. %FAQLINK")
+ #define STR_WARNING_INVALIDJAVASETTINGS_MAC     NC_("STR_WARNING_INVALIDJAVASETTINGS_MAC", "The %PRODUCTNAME configuration has been changed. Under %PRODUCTNAME - Preferences - %PRODUCTNAME - Advanced, select the Java runtime environment you want to have used by %PRODUCTNAME.")
+-#define STR_WARNING_INVALIDJAVASETTINGS         NC_("STR_WARNING_INVALIDJAVASETTINGS", "The %PRODUCTNAME configuration has been changed. Under Tools - Options - %PRODUCTNAME - Advanced, select the Java runtime environment you want to have used by %PRODUCTNAME.")
++#define STR_WARNING_INVALIDJAVASETTINGS         NC_("STR_WARNING_INVALIDJAVASETTINGS", "The %PRODUCTNAME configuration has been changed. Under Tools - Options - %PRODUCTNAME - Advanced, select the Java runtime environment you want to have used by %PRODUCTNAME. Maybe you also need to install libreoffice-java-common.")
+ #define STR_ERROR_JVMCREATIONFAILED_MAC         NC_("STR_ERROR_JVMCREATIONFAILED_MAC", "%PRODUCTNAME requires a Java runtime environment (JRE) to perform this task. The selected JRE is defective. Please select another version or install a new JRE and select it under %PRODUCTNAME - Preferences - %PRODUCTNAME - Advanced.")
+-#define STR_ERROR_JVMCREATIONFAILED             NC_("STR_ERROR_JVMCREATIONFAILED", "%PRODUCTNAME requires a Java runtime environment (JRE) to perform this task. The selected JRE is defective. Please select another version or install a new JRE and select it under Tools - Options - %PRODUCTNAME - Advanced.")
++#define STR_ERROR_JVMCREATIONFAILED             NC_("STR_ERROR_JVMCREATIONFAILED", "%PRODUCTNAME requires a Java runtime environment (JRE) to perform this task. The selected JRE is defective. Please select another version or install a new JRE and select it under Tools - Options - %PRODUCTNAME - Advanced or install libreoffice-java-common if not already installed.")
+ #define STR_WARNING_JAVANOTFOUND_TITLE          NC_("STR_WARNING_JAVANOTFOUND_TITLE", "JRE Required")
+ #define STR_WARNING_INVALIDJAVASETTINGS_TITLE   NC_("STR_WARNING_INVALIDJAVASETTINGS_TITLE", "Select JRE")
+ #define STR_ERROR_JVMCREATIONFAILED_TITLE       NC_("STR_ERROR_JVMCREATIONFAILED_TITLE", "JRE is Defective")
diff --git a/debian/patches/moreIconsDialog-accesses-internet.diff b/debian/patches/moreIconsDialog-accesses-internet.diff
new file mode 100644 (file)
index 0000000..9a8f185
--- /dev/null
@@ -0,0 +1,21 @@
+diff --git a/cui/source/dialogs/AdditionsDialog.cxx b/cui/source/dialogs/AdditionsDialog.cxx
+index f0dedf626acf..ec330b584acd 100644
+--- a/cui/source/dialogs/AdditionsDialog.cxx
++++ b/cui/source/dialogs/AdditionsDialog.cxx
+@@ -276,9 +276,13 @@ SearchAndParseThread::SearchAndParseThread(AdditionsDialog* pDialog, const bool
+     , m_bIsFirstLoading(isFirstLoading)
+ {
+     // if we are running a UITest, e.g. UITest_sw_options then
+-    // don't attempt to downloading anything
+-    static const bool bUITest = getenv("LIBO_TEST_UNIT");
+-
++    // don't attempt to downloading anything. Use AUTOPKGTEST_TMP in Debian
++    // so that the test actually is run in autopkgtest where we are sure
++    // we have internet (needs-internet)
++    static bool bUITest;
++    if (getenv("AUTOPKGTEST_TMP")) { bUITest = true; }
++    else { bUITest = false; }
++ 
+     m_bUITest = bUITest;
+ }
diff --git a/debian/patches/no-check-if-root.diff b/debian/patches/no-check-if-root.diff
new file mode 100644 (file)
index 0000000..1fc9b19
--- /dev/null
@@ -0,0 +1,30 @@
+--- a/Makefile.in      2017-07-28 06:09:37.072183489 +0000
++++ b/Makefile.in      2017-10-18 12:43:59.215567467 +0000
+@@ -58,18 +58,6 @@ else # MAKE_RESTARTS
+ .DEFAULT_GOAL := build
+-# Nested test is to check if the systemd-detect-virt command doesn't exist or it reports we're not
+-# in a container:
+-check-if-root:
+-      @if test ! `uname` = 'Haiku' -a `id -u` = 0; then \
+-              if test ! -x "$$(command -v systemd-detect-virt)" || ! systemd-detect-virt -c -q; then \
+-                      echo; \
+-                      echo 'Building LibreOffice as root is a very bad idea, use a regular user.'; \
+-                      echo; \
+-                      exit 1; \
+-              fi \
+-      fi
+-
+ gb_Side ?= host
+ include $(BUILDDIR)/config_$(gb_Side).mk
+@@ -252,7 +244,7 @@ endif
+ #
+ # Bootstrap
+ #
+-bootstrap: check-if-root compilerplugins
++bootstrap: compilerplugins
+ #
+ # Build
diff --git a/debian/patches/no-opencl-per-default.diff b/debian/patches/no-opencl-per-default.diff
new file mode 100644 (file)
index 0000000..5a5b085
--- /dev/null
@@ -0,0 +1,26 @@
+From b54cfe9d3d22fdd40f7015bd343df8620c983779 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
+Date: Mon, 27 Mar 2017 11:47:01 +0100
+Subject: [PATCH] Resolves: rhbz#1432468 disable opencl by default
+
+Change-Id: Ie037fcabdd219f195425979dd721501fb5527573
+---
+ officecfg/registry/schema/org/openoffice/Office/Common.xcs | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
+index 946bd32..284d694 100644
+--- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs
++++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
+@@ -5670,7 +5670,7 @@
+           <desc>Determines whether OpenCL can be used, when available, to speed up
+           some operations.</desc>
+         </info>
+-        <value>true</value>
++        <value>false</value>
+       </prop>
+       <prop oor:name="OpenCLDenyList" oor:type="oor:string-list" oor:nillable="false">
+         <!-- UIHints: Tools - Options General OpenCL -->
+-- 
+2.9.3
+
diff --git a/debian/patches/no-packagekit-per-default.diff b/debian/patches/no-packagekit-per-default.diff
new file mode 100644 (file)
index 0000000..a496c70
--- /dev/null
@@ -0,0 +1,21 @@
+diff --git a/officecfg/registry/data/org/openoffice/Office/Common.xcu b/officecfg/registry/data/org/openoffice/Office/Common.xcu
+index 3d138551b593..9cb9831f3236 100644
+--- a/officecfg/registry/data/org/openoffice/Office/Common.xcu
++++ b/officecfg/registry/data/org/openoffice/Office/Common.xcu
+@@ -551,13 +551,13 @@
+   </node>
+   <node oor:name="PackageKit">
+       <prop oor:name="EnableFontInstallation" oor:type="xs:boolean">
+-        <value install:module="unx">true</value>
++        <value install:module="unx">false</value>
+       </prop>
+       <prop oor:name="EnableLangpackInstallation" oor:type="xs:boolean">
+-        <value install:module="unx">true</value>
++        <value install:module="unx">false</value>
+       </prop>
+       <prop oor:name="EnableBaseInstallation" oor:type="xs:boolean">
+-        <value install:module="unx">true</value>
++        <value install:module="unx">false</value>
+       </prop>
+   </node>
+   <node oor:name="Classification">
diff --git a/debian/patches/pdfium-ports.diff b/debian/patches/pdfium-ports.diff
new file mode 100644 (file)
index 0000000..2f450f5
--- /dev/null
@@ -0,0 +1,42 @@
+--- a/external/pdfium/debian-ports.diff        2024-03-04 21:33:17.133064736 +0100
++++ b/external/pdfium/debian-ports.diff        2024-03-05 16:52:13.688932548 +0100
+@@ -0,0 +1,28 @@
++--- build/build_config.h      2024-03-05 16:50:08.624785549 +0100
+++++ build/build_config.h      2024-03-05 16:50:55.616839071 +0100
++@@ -350,6 +350,25 @@
++ #define ARCH_CPU_RISCV64 1
++ #define ARCH_CPU_64_BITS 1
++ #define ARCH_CPU_LITTLE_ENDIAN 1
+++#elif defined(__sparc__)
+++#define ARCH_CPU_BIG_ENDIAN 1
+++#if defined(__arch64__)
+++#define ARCH_CPU_64_BITS 1
+++#else
+++#define ARCH_CPU_32_BITS 1
+++#endif
+++#elif defined(__m68k__)
+++#define ARCH_CPU_32_BITS 1
+++#define ARCH_CPU_BIG_ENDIAN 1
+++#elif defined(__hppa__)
+++#define ARCH_CPU_32_BITS 1
+++#define ARCH_CPU_BIG_ENDIAN 1
+++#elif defined(__alpha__)
+++#define ARCH_CPU_64_BITS 1
+++#define ARCH_CPU_LITTLE_ENDIAN 1
+++#elif defined(__ia64__)
+++#define ARCH_CPU_64_BITS 1
+++#define ARCH_CPU_LITTLE_ENDIAN 1
++ #else
++ #error Please add support for your architecture in build/build_config.h
++ #endif
+--- a/external/pdfium/UnpackedTarball_pdfium.mk        2024-03-05 16:54:17.425089179 +0100
++++ b/external/pdfium/UnpackedTarball_pdfium.mk        2024-03-05 16:54:31.949108078 +0100
+@@ -18,6 +18,8 @@
+ pdfium_patches += system-abseil.diff
++pdfium_patches += debian-ports.diff
++
+ $(eval $(call gb_UnpackedTarball_UnpackedTarball,pdfium))
+ $(eval $(call gb_UnpackedTarball_set_tarball,pdfium,$(PDFIUM_TARBALL)))
diff --git a/debian/patches/reportdesign-mention-package.diff b/debian/patches/reportdesign-mention-package.diff
new file mode 100644 (file)
index 0000000..f85471b
--- /dev/null
@@ -0,0 +1,13 @@
+diff --git a/dbaccess/inc/strings.hrc b/dbaccess/inc/strings.hrc
+index 47068f43d09e..1f8b9a2331b6 100644
+--- a/dbaccess/inc/strings.hrc
++++ b/dbaccess/inc/strings.hrc
+@@ -349,7 +349,7 @@
+ #define STR_WARNINGS_DURING_CONNECT                 NC_("STR_WARNINGS_DURING_CONNECT", "Warnings were encountered while connecting to the data source. Press \"$buttontext$\" to view them.")
+ #define STR_NAMED_OBJECT_ALREADY_EXISTS             NC_("STR_NAMED_OBJECT_ALREADY_EXISTS", "The name '$#$' already exists.\nPlease enter another name." )
+ // #i96130# use hard coded name
+-#define RID_STR_EXTENSION_NOT_PRESENT               NC_("RID_STR_EXTENSION_NOT_PRESENT", "The report, \"$file$\", requires the Report Builder feature.")
++#define RID_STR_EXTENSION_NOT_PRESENT               NC_("RID_STR_EXTENSION_NOT_PRESENT", "The report, \"$file$\", requires the Report Builder feature. For this, install the package 'libreoffice-report-builder'.")
+ #define STR_COULDNOTCREATE_DRIVERMANAGER            NC_("STR_COULDNOTCREATE_DRIVERMANAGER", "Cannot connect to the SDBC driver manager (#servicename#).")
+ #define STR_NOREGISTEREDDRIVER                      NC_("STR_NOREGISTEREDDRIVER", "A driver is not registered for the URL #connurl#.")
diff --git a/debian/patches/reviewed-breakIterator-customizations.diff b/debian/patches/reviewed-breakIterator-customizations.diff
new file mode 100644 (file)
index 0000000..80f9bd8
--- /dev/null
@@ -0,0 +1,1269 @@
+From fb94cc0d1348140d03c2826771c57255ff74a94a Mon Sep 17 00:00:00 2001
+From: Jonathan Clark <jonathan@libreoffice.org>
+Date: Thu, 11 Apr 2024 16:42:39 -0600
+Subject: [PATCH] tdf#49885 Reviewed BreakIterator customizations
+
+This change completes the review of BreakIterator rule customizations,
+and adds unit tests for relevant customizations.
+
+Change-Id: I06678fcccfc48d020aac64dd9f58ff36a763af30
+Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166017
+Tested-by: Jenkins
+Reviewed-by: Eike Rathke <erack@redhat.com>
+---
+ i18npool/qa/cppunit/test_breakiterator.cxx | 559 +++++++++++++++++++
+ i18npool/source/breakiterator/data/README  | 612 ++++-----------------
+ 2 files changed, 668 insertions(+), 503 deletions(-)
+
+diff --git a/i18npool/qa/cppunit/test_breakiterator.cxx b/i18npool/qa/cppunit/test_breakiterator.cxx
+index 0f2629fe05ec..b33466bee46d 100644
+--- a/i18npool/qa/cppunit/test_breakiterator.cxx
++++ b/i18npool/qa/cppunit/test_breakiterator.cxx
+@@ -31,6 +31,7 @@ public:
+     void testLineBreaking();
+     void testWordBoundaries();
++    void testSentenceBoundaries();
+     void testGraphemeIteration();
+     void testWeak();
+     void testAsian();
+@@ -43,9 +44,18 @@ public:
+     void testJapanese();
+     void testChinese();
++    void testLegacyDictWordPrepostDash_de_DE();
++    void testLegacyDictWordPrepostDash_nds_DE();
++    void testLegacyDictWordPrepostDash_nl_NL();
++    void testLegacyDictWordPrepostDash_sv_SE();
++    void testLegacyHebrewQuoteInsideWord();
++    void testLegacySurrogatePairs();
++    void testLegacyWordCountCompat();
++
+     CPPUNIT_TEST_SUITE(TestBreakIterator);
+     CPPUNIT_TEST(testLineBreaking);
+     CPPUNIT_TEST(testWordBoundaries);
++    CPPUNIT_TEST(testSentenceBoundaries);
+     CPPUNIT_TEST(testGraphemeIteration);
+     CPPUNIT_TEST(testWeak);
+     CPPUNIT_TEST(testAsian);
+@@ -57,6 +67,13 @@ public:
+ #endif
+     CPPUNIT_TEST(testJapanese);
+     CPPUNIT_TEST(testChinese);
++    CPPUNIT_TEST(testLegacyDictWordPrepostDash_de_DE);
++    CPPUNIT_TEST(testLegacyDictWordPrepostDash_nds_DE);
++    CPPUNIT_TEST(testLegacyDictWordPrepostDash_nl_NL);
++    CPPUNIT_TEST(testLegacyDictWordPrepostDash_sv_SE);
++    CPPUNIT_TEST(testLegacyHebrewQuoteInsideWord);
++    CPPUNIT_TEST(testLegacySurrogatePairs);
++    CPPUNIT_TEST(testLegacyWordCountCompat);
+     CPPUNIT_TEST_SUITE_END();
+ private:
+@@ -118,6 +135,173 @@ void TestBreakIterator::testLineBreaking()
+         }
+     }
++    // i#22602: writer breaks word after dot immediately followed by a letter
++    {
++        aLocale.Language = "en";
++        aLocale.Country = "US";
++
++        {
++            //Here we want the line break to leave ./bar/baz clumped together on the next line
++            i18n::LineBreakResults aResult = m_xBreak->getLineBreak(
++                "foo ./bar/baz", strlen("foo ./bar/ba"), aLocale, 0, aHyphOptions, aUserOptions);
++            CPPUNIT_ASSERT_EQUAL_MESSAGE("Expected a break at the first period",
++                                         static_cast<sal_Int32>(4), aResult.breakIndex);
++        }
++    }
++
++    // i#81448: slash and backslash make non-breaking spaces of preceding spaces
++    {
++        aLocale.Language = "en";
++        aLocale.Country = "US";
++
++        {
++            // Per the bug, the line break should leave ...BE clumped together on the next line.
++            // However, the current behavior does not wrap the string at all. This test asserts the
++            // current behavior as a point of reference.
++            i18n::LineBreakResults aResult = m_xBreak->getLineBreak(
++                "THIS... ...BE", strlen("THIS... ...B"), aLocale, 0, aHyphOptions, aUserOptions);
++            CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0), aResult.breakIndex);
++        }
++    }
++
++    // i#81448: slash and backslash make non-breaking spaces of preceding spaces
++    {
++        aLocale.Language = "en";
++        aLocale.Country = "US";
++
++        {
++            // The line break should leave /BE clumped together on the next line.
++            i18n::LineBreakResults aResult = m_xBreak->getLineBreak(
++                "THIS... /BE", strlen("THIS... /B"), aLocale, 0, aHyphOptions, aUserOptions);
++            CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(8), aResult.breakIndex);
++        }
++    }
++
++    // i#80548: Bad word wrap between dash and word
++    {
++        aLocale.Language = "fi";
++        aLocale.Country = "FI";
++
++        {
++            // Per the bug, the line break should leave -bar clumped together on the next line.
++            // However, this change was reverted at some point. This test asserts the new behavior.
++            i18n::LineBreakResults aResult = m_xBreak->getLineBreak(
++                "foo -bar", strlen("foo -ba"), aLocale, 0, aHyphOptions, aUserOptions);
++            CPPUNIT_ASSERT_EQUAL_MESSAGE("Expected a break at the first dash",
++                                         static_cast<sal_Int32>(5), aResult.breakIndex);
++        }
++    }
++
++    // i#80645: Line erroneously breaks at backslash
++    {
++        aLocale.Language = "en";
++        aLocale.Country = "US";
++
++        {
++            // Here we want the line break to leave C:\Program Files\ on the first line
++            i18n::LineBreakResults aResult = m_xBreak->getLineBreak(
++                "C:\\Program Files\\LibreOffice", strlen("C:\\Program Files\\Libre"), aLocale, 0,
++                aHyphOptions, aUserOptions);
++            CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(17), aResult.breakIndex);
++        }
++    }
++
++    // i#80841: Words separated by hyphens will always break to next line
++    {
++        aLocale.Language = "en";
++        aLocale.Country = "US";
++
++        {
++            // Here we want the line break to leave toll- on the first line
++            i18n::LineBreakResults aResult = m_xBreak->getLineBreak(
++                "toll-free", strlen("toll-fr"), aLocale, 0, aHyphOptions, aUserOptions);
++            CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(5), aResult.breakIndex);
++        }
++    }
++
++    // i#83464: Line break between letter and $
++    {
++        aLocale.Language = "en";
++        aLocale.Country = "US";
++
++        {
++            // Here we want the line break to leave US$ clumped on the next line.
++            i18n::LineBreakResults aResult = m_xBreak->getLineBreak(
++                "word US$ 123", strlen("word U"), aLocale, 0, aHyphOptions, aUserOptions);
++            CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(5), aResult.breakIndex);
++        }
++    }
++
++    // Unknown bug number: "fix line break problem of dot after letter and before number"
++    {
++        aLocale.Language = "en";
++        aLocale.Country = "US";
++
++        {
++            // Here we want the line break to leave US$ clumped on the next line.
++            i18n::LineBreakResults aResult = m_xBreak->getLineBreak(
++                "word L.5 word", strlen("word L"), aLocale, 0, aHyphOptions, aUserOptions);
++            CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(5), aResult.breakIndex);
++        }
++    }
++
++    // i#83229: Wrong line break when word contains a hyphen
++    {
++        aLocale.Language = "en";
++        aLocale.Country = "US";
++
++        {
++            // Here we want the line break to leave 100- clumped on the first line.
++            i18n::LineBreakResults aResult = m_xBreak->getLineBreak(
++                "word 100-199 word", strlen("word 100-1"), aLocale, 0, aHyphOptions, aUserOptions);
++            CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(9), aResult.breakIndex);
++        }
++    }
++
++    // i#83649: Line break should be between typographical quote and left bracket
++    {
++        aLocale.Language = "de";
++        aLocale.Country = "DE";
++
++        {
++            // Here we want the line break to leave »angetan werden« on the first line
++            const OUString str = u"»angetan werden« [Passiv]"_ustr;
++            i18n::LineBreakResults aResult = m_xBreak->getLineBreak(
++                str, strlen("Xangetan werdenX ["), aLocale, 0, aHyphOptions, aUserOptions);
++            CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(17), aResult.breakIndex);
++        }
++    }
++
++    // i#72868: Writer/Impress line does not break after Chinese punctuation and Latin letters
++    {
++        aLocale.Language = "zh";
++        aLocale.Country = "HK";
++
++        {
++            // Per the bug, this should break at the ideographic comma. However, this change has
++            // been reverted at some point. This test only verifies current behavior.
++            const OUString str = u"word word、word word"_ustr;
++            i18n::LineBreakResults aResult = m_xBreak->getLineBreak(
++                str, strlen("word wordXwor"), aLocale, 0, aHyphOptions, aUserOptions);
++            CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(13), aResult.breakIndex);
++        }
++    }
++
++    // i#80891: Character in the forbidden list sometimes appears at the start of line
++    {
++        aLocale.Language = "zh";
++        aLocale.Country = "HK";
++
++        {
++            // Per the bug, the ideographic two-dot leader should be a forbidden character. However,
++            // this change seems to have been reverted or broken at some point.
++            const OUString str = u"電話︰電話"_ustr;
++            i18n::LineBreakResults aResult
++                = m_xBreak->getLineBreak(str, 2, aLocale, 0, aHyphOptions, aUserOptions);
++            CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(2), aResult.breakIndex);
++        }
++    }
++
+     //See https://bz.apache.org/ooo/show_bug.cgi?id=19716
+     {
+         aLocale.Language = "en";
+@@ -160,6 +344,20 @@ void TestBreakIterator::testLineBreaking()
+             CPPUNIT_ASSERT_EQUAL_MESSAGE("Expected a break don't split the Korean word!", static_cast<sal_Int32>(5), aResult.breakIndex);
+         }
+     }
++
++    // i#65267: Comma is badly broken at end of line
++    // - The word should be wrapped along with the comma
++    {
++        aLocale.Language = "de";
++        aLocale.Country = "DE";
++
++        {
++            auto res = m_xBreak->getLineBreak("Wort -prinzessinnen, wort",
++                                              strlen("Wort -prinzessinnen,"), aLocale, 0,
++                                              aHyphOptions, aUserOptions);
++            CPPUNIT_ASSERT_EQUAL(sal_Int32{ 6 }, res.breakIndex);
++        }
++    }
+ }
+ //See https://bugs.libreoffice.org/show_bug.cgi?id=49629
+@@ -601,6 +799,174 @@ void TestBreakIterator::testWordBoundaries()
+         CPPUNIT_ASSERT_EQUAL(sal_Int32(4), aBounds.startPos);
+         CPPUNIT_ASSERT_EQUAL(sal_Int32(5), aBounds.endPos);
+     }
++
++    // i#55778: Words containing numbers get broken up
++    {
++        aLocale.Language = "en";
++        aLocale.Country = "US";
++
++        static constexpr OUString aTest = u"first i18n third"_ustr;
++
++        aBounds
++            = m_xBreak->getWordBoundary(aTest, 8, aLocale, i18n::WordType::DICTIONARY_WORD, false);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(6), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(10), aBounds.endPos);
++    }
++
++    // i#56347: "BreakIterator patch for Hungarian"
++    // Rules for Hungarian affixes after numbers and certain symbols
++    {
++        auto mode = i18n::WordType::DICTIONARY_WORD;
++        aLocale.Language = "hu";
++        aLocale.Country = "HU";
++
++        OUString aTest = u"szavak 15 15-tel 15%-kal €-val szavak"_ustr;
++
++        aBounds = m_xBreak->getWordBoundary(aTest, 2, aLocale, mode, true);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(0), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(6), aBounds.endPos);
++
++        aBounds = m_xBreak->getWordBoundary(aTest, 7, aLocale, mode, true);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(7), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(9), aBounds.endPos);
++
++        aBounds = m_xBreak->getWordBoundary(aTest, 11, aLocale, mode, true);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(10), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(16), aBounds.endPos);
++
++        aBounds = m_xBreak->getWordBoundary(aTest, 18, aLocale, mode, true);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(17), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(24), aBounds.endPos);
++
++        aBounds = m_xBreak->getWordBoundary(aTest, 25, aLocale, mode, true);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(25), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(30), aBounds.endPos);
++
++        aBounds = m_xBreak->getWordBoundary(aTest, 27, aLocale, mode, true);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(25), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(30), aBounds.endPos);
++
++        aBounds = m_xBreak->getWordBoundary(aTest, 34, aLocale, mode, true);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(31), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(37), aBounds.endPos);
++    }
++
++    // i#56348: Special chars in first pos not handled by spell checking in Writer (Hungarian)
++    // Rules for Hungarian affixes after numbers and certain symbols in edit mode.
++    // The patch was merged, but the original bug was never closed and the current behavior seems
++    // identical to the ICU default behavior. Added this test to ensure that doesn't change.
++    {
++        auto mode = i18n::WordType::ANY_WORD;
++        aLocale.Language = "hu";
++        aLocale.Country = "HU";
++
++        OUString aTest = u"szavak 15 15-tel 15%-kal €-val szavak"_ustr;
++
++        aBounds = m_xBreak->getWordBoundary(aTest, 2, aLocale, mode, true);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(0), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(6), aBounds.endPos);
++
++        aBounds = m_xBreak->getWordBoundary(aTest, 7, aLocale, mode, true);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(7), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(9), aBounds.endPos);
++
++        aBounds = m_xBreak->getWordBoundary(aTest, 11, aLocale, mode, true);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(10), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(12), aBounds.endPos);
++
++        aBounds = m_xBreak->getWordBoundary(aTest, 11, aLocale, mode, true);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(10), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(12), aBounds.endPos);
++
++        aBounds = m_xBreak->getWordBoundary(aTest, 12, aLocale, mode, true);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(12), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(13), aBounds.endPos);
++
++        aBounds = m_xBreak->getWordBoundary(aTest, 13, aLocale, mode, true);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(13), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(16), aBounds.endPos);
++
++        aBounds = m_xBreak->getWordBoundary(aTest, 16, aLocale, mode, true);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(16), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(17), aBounds.endPos);
++
++        aBounds = m_xBreak->getWordBoundary(aTest, 17, aLocale, mode, true);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(17), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(19), aBounds.endPos);
++
++        aBounds = m_xBreak->getWordBoundary(aTest, 19, aLocale, mode, true);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(19), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(20), aBounds.endPos);
++
++        aBounds = m_xBreak->getWordBoundary(aTest, 20, aLocale, mode, true);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(20), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(21), aBounds.endPos);
++
++        aBounds = m_xBreak->getWordBoundary(aTest, 21, aLocale, mode, true);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(21), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(24), aBounds.endPos);
++
++        aBounds = m_xBreak->getWordBoundary(aTest, 24, aLocale, mode, true);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(24), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(25), aBounds.endPos);
++
++        aBounds = m_xBreak->getWordBoundary(aTest, 25, aLocale, mode, true);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(25), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(26), aBounds.endPos);
++
++        aBounds = m_xBreak->getWordBoundary(aTest, 26, aLocale, mode, true);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(26), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(27), aBounds.endPos);
++
++        aBounds = m_xBreak->getWordBoundary(aTest, 27, aLocale, mode, true);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(27), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(30), aBounds.endPos);
++
++        aBounds = m_xBreak->getWordBoundary(aTest, 30, aLocale, mode, true);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(30), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(31), aBounds.endPos);
++
++        aBounds = m_xBreak->getWordBoundary(aTest, 31, aLocale, mode, true);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(31), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(37), aBounds.endPos);
++    }
++}
++
++void TestBreakIterator::testSentenceBoundaries()
++{
++    lang::Locale aLocale;
++    aLocale.Language = "en";
++    aLocale.Country = "US";
++
++    // Trivial characteristic test for sentence boundary detection
++    {
++        OUString aTest("This is a sentence. This is a different sentence.");
++
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(0), m_xBreak->beginOfSentence(aTest, 5, aLocale));
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(19), m_xBreak->endOfSentence(aTest, 5, aLocale));
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(20), m_xBreak->beginOfSentence(aTest, 31, aLocale));
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(49), m_xBreak->endOfSentence(aTest, 31, aLocale));
++    }
++
++    // i#24098: i18n API beginOfSentence/endOfSentence
++    // fix beginOfSentence, ... when cursor is on the beginning of the sentence
++    {
++        OUString aTest("This is a sentence. This is a different sentence.");
++
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(20), m_xBreak->beginOfSentence(aTest, 20, aLocale));
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(49), m_xBreak->endOfSentence(aTest, 20, aLocale));
++    }
++
++    // i#24098: i18n API beginOfSentence/endOfSentence
++    // "skip preceding space for beginOfSentence"
++    {
++        OUString aTest("This is a sentence.     This is a different sentence.");
++
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(0), m_xBreak->beginOfSentence(aTest, 20, aLocale));
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(19), m_xBreak->endOfSentence(aTest, 20, aLocale));
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(24), m_xBreak->beginOfSentence(aTest, 26, aLocale));
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(53), m_xBreak->endOfSentence(aTest, 26, aLocale));
++    }
+ }
+ //See https://bugs.libreoffice.org/show_bug.cgi?id=40292
+@@ -1043,6 +1409,199 @@ void TestBreakIterator::testChinese()
+         CPPUNIT_ASSERT_EQUAL(sal_Int32(6), aBounds.endPos);
+     }
+ }
++
++void TestBreakIterator::testLegacyDictWordPrepostDash_de_DE()
++{
++    lang::Locale aLocale;
++    aLocale.Language = "de";
++    aLocale.Country = "DE";
++
++    {
++        auto aTest = u"Arbeits- -nehmer"_ustr;
++
++        i18n::Boundary aBounds
++            = m_xBreak->getWordBoundary(aTest, 3, aLocale, i18n::WordType::DICTIONARY_WORD, false);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(0), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(8), aBounds.endPos);
++
++        aBounds
++            = m_xBreak->getWordBoundary(aTest, 13, aLocale, i18n::WordType::DICTIONARY_WORD, false);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(9), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(16), aBounds.endPos);
++    }
++}
++
++void TestBreakIterator::testLegacyDictWordPrepostDash_nds_DE()
++{
++    lang::Locale aLocale;
++    aLocale.Language = "nds";
++    aLocale.Country = "DE";
++
++    {
++        auto aTest = u"Arbeits- -nehmer"_ustr;
++
++        i18n::Boundary aBounds
++            = m_xBreak->getWordBoundary(aTest, 3, aLocale, i18n::WordType::DICTIONARY_WORD, false);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(0), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(8), aBounds.endPos);
++
++        aBounds
++            = m_xBreak->getWordBoundary(aTest, 13, aLocale, i18n::WordType::DICTIONARY_WORD, false);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(9), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(16), aBounds.endPos);
++    }
++}
++
++void TestBreakIterator::testLegacyDictWordPrepostDash_nl_NL()
++{
++    lang::Locale aLocale;
++    aLocale.Language = "nl";
++    aLocale.Country = "NL";
++
++    {
++        auto aTest = u"Arbeits- -nehmer"_ustr;
++
++        i18n::Boundary aBounds
++            = m_xBreak->getWordBoundary(aTest, 3, aLocale, i18n::WordType::DICTIONARY_WORD, false);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(0), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(8), aBounds.endPos);
++
++        aBounds
++            = m_xBreak->getWordBoundary(aTest, 13, aLocale, i18n::WordType::DICTIONARY_WORD, false);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(9), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(16), aBounds.endPos);
++    }
++}
++
++void TestBreakIterator::testLegacyDictWordPrepostDash_sv_SE()
++{
++    lang::Locale aLocale;
++    aLocale.Language = "sv";
++    aLocale.Country = "SE";
++
++    {
++        auto aTest = u"Arbeits- -nehmer"_ustr;
++
++        i18n::Boundary aBounds
++            = m_xBreak->getWordBoundary(aTest, 3, aLocale, i18n::WordType::DICTIONARY_WORD, false);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(0), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(8), aBounds.endPos);
++
++        aBounds
++            = m_xBreak->getWordBoundary(aTest, 13, aLocale, i18n::WordType::DICTIONARY_WORD, false);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(9), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(16), aBounds.endPos);
++    }
++}
++
++void TestBreakIterator::testLegacyHebrewQuoteInsideWord()
++{
++    lang::Locale aLocale;
++
++    aLocale.Language = "he";
++    aLocale.Country = "IL";
++
++    {
++        auto aTest = u"פַּרְדּ״ס פַּרְדּ\"ס"_ustr;
++
++        i18n::Boundary aBounds
++            = m_xBreak->getWordBoundary(aTest, 3, aLocale, i18n::WordType::DICTIONARY_WORD, false);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(0), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(9), aBounds.endPos);
++
++        aBounds
++            = m_xBreak->getWordBoundary(aTest, 13, aLocale, i18n::WordType::DICTIONARY_WORD, false);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(10), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(19), aBounds.endPos);
++    }
++}
++
++void TestBreakIterator::testLegacySurrogatePairs()
++{
++    lang::Locale aLocale;
++
++    aLocale.Language = "ja";
++    aLocale.Country = "JP";
++
++    // i#75632: [surrogate pair] Japanese word break does not work properly for surrogate pairs.
++    // and many others to address bugs: i#75631 i#75633 i#75412 etc.
++    //
++    // BreakIterator supports surrogate pairs (UTF-16). This is a simple characteristic test.
++    {
++        const sal_Unicode buf[] = { u"X 𠮟 X" };
++        OUString aTest(buf, SAL_N_ELEMENTS(buf));
++
++        auto aBounds
++            = m_xBreak->getWordBoundary(aTest, 1, aLocale, i18n::WordType::DICTIONARY_WORD, false);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(0), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(1), aBounds.endPos);
++
++        aBounds
++            = m_xBreak->getWordBoundary(aTest, 2, aLocale, i18n::WordType::DICTIONARY_WORD, false);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(2), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(5), aBounds.endPos);
++
++        aBounds
++            = m_xBreak->getWordBoundary(aTest, 5, aLocale, i18n::WordType::DICTIONARY_WORD, false);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(5), aBounds.startPos);
++        CPPUNIT_ASSERT_EQUAL(sal_Int32(6), aBounds.endPos);
++    }
++}
++
++void TestBreakIterator::testLegacyWordCountCompat()
++{
++    lang::Locale aLocale;
++
++    aLocale.Language = "en";
++    aLocale.Country = "US";
++
++    // i#80815: "Word count differs from MS Word"
++    // This is a characteristic test for word count using test data from the linked bug.
++    {
++        const OUString str = u""
++                             "test data for word count issue #80815\n"
++                             "fo\\\'sforos\n"
++                             "archipi\\\'elago\n"
++                             "do\\^me\n"
++                             "f**k\n"
++                             "\n"
++                             "battery-driven\n"
++                             "and/or\n"
++                             "apple(s)\n"
++                             "money+opportunity\n"
++                             "Micro$oft\n"
++                             "\n"
++                             "300$\n"
++                             "I(not you)\n"
++                             "a****n\n"
++                             "1+3=4\n"
++                             "\n"
++                             "aaaaaaa.aaaaaaa\n"
++                             "aaaaaaa,aaaaaaa\n"
++                             "aaaaaaa;aaaaaaa\n"_ustr;
++
++        int num_words = 0;
++        sal_Int32 next_pos = 0;
++        int iter_guard = 0;
++        while (true)
++        {
++            CPPUNIT_ASSERT_MESSAGE("Tripped infinite loop check", ++iter_guard < 100);
++
++            auto aBounds = m_xBreak->nextWord(str, next_pos, aLocale, i18n::WordType::WORD_COUNT);
++
++            if (aBounds.endPos < next_pos)
++            {
++                break;
++            }
++
++            next_pos = aBounds.endPos;
++            ++num_words;
++        }
++
++        CPPUNIT_ASSERT_EQUAL(23, num_words);
++    }
++}
++
+ void TestBreakIterator::setUp()
+ {
+     BootstrapFixtureBase::setUp();
+diff --git a/i18npool/source/breakiterator/data/README b/i18npool/source/breakiterator/data/README
+index 6246b80ae77f..76e3e37c3faf 100644
+--- a/i18npool/source/breakiterator/data/README
++++ b/i18npool/source/breakiterator/data/README
+@@ -9,411 +9,108 @@ At various stages these copies have been customized and are now horribly out of
+ sync. It unclear which diffs from the base versions are deliberate and which
+ are now accidental :-(
+-We need to review the various issues referenced in the commits that caused
+-customizations and see if they're still relevant or not, write regression tests
+-for them, if any are still relevant then apply the changes back on top of the
+-latest versions.
++The various issues and customizations have been reviewed, with tests written for
++customizations that are still relevant. However, these files are still extremely
++out-of-date and need to be refreshed. Relevant customizations should be reapplied
++on top of a current version.
+-to-review, later are ok:
+-
+-commit e1ad946ef5db3f7c0a540207d0f0fd85799e3b66
+-Author: Release Engineers <releng@openoffice.org>
+-Date:   Thu Aug 6 18:13:57 2009 +0000
+-
+-    CWS-TOOLING: integrate CWS tl73
+-    2009-07-31 15:29:33 +0200 tl  r274535 : #i64400# dash/hyphen should not break words
+-
+-commit 9964a76ef58786bba47d409970512d7ded6c8889
+-Author: Rüdiger Timm <rt@openoffice.org>
+-Date:   Wed Jul 2 07:53:05 2008 +0000
+-
+-    INTEGRATION: CWS i18n41 (1.1.2); FILE ADDED
+-    2008/04/25 17:06:26 khong 1.1.2.3: i55063, make period a sentence delimiter
+-    2008/04/25 06:40:50 khong 1.1.2.2: i55063, make space as Thai sentence delimiter
+-    2008/04/24 03:19:10 khong 1.1.2.1: i55063, set Thai letters as sentence delimiter for Thai and English mixed text
+-
+-commit e4a6e4284dae1ca6fbfa7d1e43690dbf87d796cd
+-Author: Rüdiger Timm <rt@openoffice.org>
+-Date:   Wed Jul 2 07:52:44 2008 +0000
+-
+-    INTEGRATION: CWS i18n41 (1.9.12); FILE MERGED
+-    2008/06/17 20:22:30 khong 1.9.12.2: i83229 fix the problem of leading hyphen for numbers
+-    2008/04/23 06:20:16 khong 1.9.12.1: i72868, i80891, i83229, fix Chinese punctuations and hyphen for line breakiterator
+-
+-commit 55dff22611659a1567c968fbf9e512a2765ab62e
+-Author: Rüdiger Timm <rt@openoffice.org>
+-Date:   Wed Jul 2 07:52:07 2008 +0000
+-
+-    INTEGRATION: CWS i18n41 (1.33.36); FILE MERGED
+-    2008/06/05 22:18:29 khong 1.33.36.2: RESYNC: (1.33-1.35); FILE MERGED
+-    2008/04/23 06:11:55 khong 1.33.36.1: i55063, enable language specific sentence breakiterator
+-
+-commit 1c2b8095631a3c2d2f396bf50a8f0c62f49be65c
+-Author: Rüdiger Timm <rt@openoffice.org>
+-Date:   Wed Jul 2 07:51:12 2008 +0000
+-
+-    INTEGRATION: CWS i18n41 (1.12.140); FILE MERGED
+-    2008/06/05 22:18:26 khong 1.12.140.2: RESYNC: (1.12-1.13); FILE MERGED
+-    2008/04/23 06:04:53 khong 1.12.140.1: i87530 avoid breaking line before un-completed cell
+-
+-commit 9bbdb52df370c69c0f7eba387a2068ee80bd7994
+-Author: Rüdiger Timm <rt@openoffice.org>
+-Date:   Wed Jul 2 07:50:43 2008 +0000
+-
+-    INTEGRATION: CWS i18n41 (1.25.2); FILE MERGED
+-    2008/06/05 22:18:23 khong 1.25.2.2: RESYNC: (1.25-1.26); FILE MERGED
+-    2008/04/23 06:09:02 khong 1.25.2.1: i88041: avoid startPos goes back to nStartPos when switching between Latin and CJK scripts
+-
+-commit 8dcdd3ca268f78295731b86797c2b8cd447ba667
+-Author: Kurt Zenker <kz@openoffice.org>
+-Date:   Tue May 20 13:36:01 2008 +0000
+-
+-    INTEGRATION: CWS i18n43_DEV300 (1.33.38); FILE MERGED
+-    2008/04/29 21:51:51 khong 1.33.38.1: #i88411# apply the patch from Coleman Kane to fix icu setBreakType issue
+-
+-commit bedef98c24ef9ada6aaffe9bc5284d9759a31a9a
+-Author: Kurt Zenker <kz@openoffice.org>
+-Date:   Wed Apr 2 08:49:09 2008 +0000
+-
+-    INTEGRATION: CWS i18n40 (1.2.314); FILE MERGED
+-    2008/03/19 06:30:23 khong 1.2.314.2: #i80815# count dash like MS Word
+-    2008/03/15 07:32:44 khong 1.2.314.1: #i80815# count punctuation as word
+-
+-commit 59144104b3f91a2e6ed816f0bde0fdb91ea218d7
+-Author: Kurt Zenker <kz@openoffice.org>
+-Date:   Wed Apr 2 08:48:53 2008 +0000
+-
+-    INTEGRATION: CWS i18n40 (1.24.44); FILE MERGED
+-    2008/03/19 18:56:42 khong 1.24.44.2: i80815 make word count feature like MS Word
+-    2008/03/15 07:31:38 khong 1.24.44.1: #i80815# count punctuation as word
+-
+-commit 3f0b51776602c45e8aca991450fcbb30f2484ae5
+-Author: Vladimir Glazounov <vg@openoffice.org>
+-Date:   Mon Jan 28 14:33:46 2008 +0000
+-
+-    INTEGRATION: CWS i18n39 (1.8.4); FILE MERGED
+-    2007/12/12 17:45:45 khong 1.8.4.3: b6634800# fix line break problem of dot after letter and before number
+-    2007/12/08 01:05:52 khong 1.8.4.2: #i83649# fixed the problem of line break between quotation mark and open bracket
+-    2007/12/07 23:44:30 khong 1.8.4.1: #i83464# fix the problem of line break between letter and 1326
+-
+-commit 5d8ef209b1f63d1c8ea5014bdbef96660b355423
+-Author: Vladimir Glazounov <vg@openoffice.org>
+-Date:   Tue Oct 23 08:09:00 2007 +0000
+-
+-    INTEGRATION: CWS i18n38 (1.7.4); FILE MERGED
+-    2007/09/19 00:08:04 khong 1.7.4.3: i81448 fixed dot line break issue
+-    2007/09/10 23:57:12 khong 1.7.4.2: i81440 fix the problem of line break on punctuations
+-    2007/09/10 22:55:46 khong 1.7.4.1: i81448 fix problem of line break on symbols
+-
+-commit a2f3b48cacfcef338ca5e37acde34c83876e082e
+-Author: Vladimir Glazounov <vg@openoffice.org>
+-Date:   Tue Oct 23 08:08:47 2007 +0000
+-
+-    INTEGRATION: CWS i18n38 (1.32.10); FILE MERGED
+-    2007/09/18 20:32:39 khong 1.32.10.1: i81519 set break type icu breakiterator
+-
+-commit 1967d8fb182b3101dee4f715e78be384400bc1e8
+-Author: Kurt Zenker <kz@openoffice.org>
+-Date:   Wed Sep 5 16:37:28 2007 +0000
+-
+-    INTEGRATION: CWS i18n37 (1.22.6); FILE MERGED
+-    2007/09/03 18:27:39 khong 1.22.6.2: i8132 fixed a problem in skipping space for word breakiterator
+-    2007/08/31 21:30:30 khong 1.22.6.1: i81158 fix skipping space problem
+-
+-commit d2c2baf1a31d281d20e8b4d4c806dda027b2d5a3
+-Author: Vladimir Glazounov <vg@openoffice.org>
+-Date:   Tue Aug 28 11:46:45 2007 +0000
+-
+-    INTEGRATION: CWS i18n36_SRC680 (1.5.20.1.2); FILE MERGED
+-    2007/08/22 17:12:36 khong 1.5.20.1.2.1: i80841 fix hyphen line break problem
+-
+-commit d56bedfb425cf77f176f143455e4a9fb6ce65540
+-Author: Vladimir Glazounov <vg@openoffice.org>
+-Date:   Tue Aug 28 11:46:34 2007 +0000
+-
+-    INTEGRATION: CWS i18n36_SRC680 (1.21.2.1.2); FILE MERGED
+-    2007/08/22 20:02:28 khong 1.21.2.1.2.2: i80923 fix infinite loop problem
+-    2007/08/22 17:11:44 khong 1.21.2.1.2.1: i80923 fix a infinite loop
+-
+-commit 8a36b196925a5561eabde0a0ef293c73fcb5add3
+-Author: Ivo Hinkelmann <ihi@openoffice.org>
+-Date:   Fri Aug 17 13:58:48 2007 +0000
+-
+-    INTEGRATION: CWS i18n34 (1.5.22); FILE MERGED
+-    2007/08/13 22:26:12 khong 1.5.22.1: i80548 i80645 fix dash and backslash issues in line breakiterator
+-
+-commit c00b2b49bad765144f90552139e63d87d520d1cf
+-Author: Ivo Hinkelmann <ihi@openoffice.org>
+-Date:   Fri Aug 17 13:58:36 2007 +0000
+-
+-    INTEGRATION: CWS i18n34 (1.15.4); FILE MERGED
+-    2007/08/13 22:33:38 khong 1.15.4.1: i86439 fix surrogate characters handling issues
+-
+-commit 3fc5fbc71d4c244d7c8002aa530481741e585bd4
+-Author: Ivo Hinkelmann <ihi@openoffice.org>
+-Date:   Fri Aug 17 13:58:23 2007 +0000
+-
+-    INTEGRATION: CWS i18n34 (1.31.4); FILE MERGED
+-    2007/08/13 22:33:37 khong 1.31.4.1: i86439 fix surrogate characters handling issues
+-
+-commit ee44b43881e7c82c379931f111c452a477b73341
+-Author: Ivo Hinkelmann <ihi@openoffice.org>
+-Date:   Fri Aug 17 13:58:11 2007 +0000
+-
+-    INTEGRATION: CWS i18n34 (1.21.4); FILE MERGED
+-    2007/08/14 08:38:53 khong 1.21.4.2: i86439 fix surrogate characters handling issues
+-    2007/08/13 22:33:37 khong 1.21.4.1: i86439 fix surrogate characters handling issues
+-
+-commit f47369dbbc385f8968ad43e43cba293a29a4c2df
+-Author: Jens-Heiner Rechtien <hr@openoffice.org>
+-Date:   Tue Jul 31 16:09:13 2007 +0000
+-
+-    INTEGRATION: CWS i18n32 (1.29.14); FILE MERGED
+-    2007/07/24 20:39:44 khong 1.29.14.1: #i79148# fix a local word breakiterator rules loading issue
+-
+-commit 2791553b4e3fc5e04b96d0b2fd119d9fba1946bc
+-Author: Rüdiger Timm <rt@openoffice.org>
+-Date:   Thu Jul 26 08:08:51 2007 +0000
+-
+-    INTEGRATION: CWS i18n31 (1.14.60); FILE MERGED
+-    2007/07/16 22:18:44 khong 1.14.60.4: i75631 i75632 i75633 i75412 handle surrogate pair characters
+-    2007/07/13 20:37:32 khong 1.14.60.3: #i75632# use ICU characters properties
+-    2007/07/04 01:17:22 khong 1.14.60.2: i75631 i75632 i75633 i75412 handle surrogate pair characters
+-    2007/06/27 04:33:11 khong 1.14.60.1: i75631 i75632 i75633 i75412 handle surrogate pair characters
+-
+-commit 1c79a2bf1e89ac4eb409922ab7eb8ad3cacc688a
+-Author: Rüdiger Timm <rt@openoffice.org>
+-Date:   Thu Jul 26 08:08:39 2007 +0000
+-
+-    INTEGRATION: CWS i18n31 (1.8.60); FILE MERGED
+-    2007/06/27 04:33:11 khong 1.8.60.1: i75631 i75632 i75633 i75412 handle surrogate pair characters
+-
+-commit 517bbaddbaf81a5a6bb00979944cad13a1575d50
+-Author: Rüdiger Timm <rt@openoffice.org>
+-Date:   Thu Jul 26 08:08:27 2007 +0000
+-
+-    INTEGRATION: CWS i18n31 (1.28.14); FILE MERGED
+-    2007/07/13 20:37:32 khong 1.28.14.5: #i75632# use ICU characters properties
+-    2007/07/04 01:17:22 khong 1.28.14.4: i75631 i75632 i75633 i75412 handle surrogate pair characters
+-    2007/06/27 23:25:58 khong 1.28.14.3: i75412 handle surrogate pair characters
+-    2007/06/27 05:33:20 khong 1.28.14.2: RESYNC: (1.28-1.29); FILE MERGED
+-    2007/06/27 04:33:11 khong 1.28.14.1: i75631 i75632 i75633 i75412 handle surrogate pair characters
+-
+-commit 0154e3492f2527535c0d648274e7ff674674318b
+-Author: Rüdiger Timm <rt@openoffice.org>
+-Date:   Thu Jul 26 08:08:14 2007 +0000
+-
+-    INTEGRATION: CWS i18n31 (1.14.42); FILE MERGED
+-    2007/06/27 05:33:03 khong 1.14.42.2: RESYNC: (1.14-1.15); FILE MERGED
+-    2007/06/27 04:33:11 khong 1.14.42.1: i75631 i75632 i75633 i75412 handle surrogate pair characters
+-
+-commit e2a5a2532ee187669980adb7bfa747c7803c330a
+-Author: Rüdiger Timm <rt@openoffice.org>
+-Date:   Thu Jul 26 08:08:02 2007 +0000
+-
+-    INTEGRATION: CWS i18n31 (1.19.60); FILE MERGED
+-    2007/07/13 20:37:32 khong 1.19.60.4: #i75632# use ICU characters properties
+-    2007/07/04 01:17:22 khong 1.19.60.3: i75631 i75632 i75633 i75412 handle surrogate pair characters
+-    2007/06/27 05:00:48 khong 1.19.60.2: i75231 handle surrogate pair characters
+-    2007/06/27 04:33:11 khong 1.19.60.1: i75631 i75632 i75633 i75412 handle surrogate pair characters
+-
+-commit 80a26a7d4720b5b8cfa0acc624b28014c96d9948
+-Author: Jens-Heiner Rechtien <hr@openoffice.org>
+-Date:   Tue Jun 26 16:41:02 2007 +0000
+-
+-    INTEGRATION: CWS ause081 (1.2.332); FILE MERGED
+-    2007/06/21 10:53:19 hjs 1.2.332.1: #i78393# remove component_getDescriptionFunc from exports
+-
+-commit c2801db6b04bf6f0dbb07727c91b2c66e7e027b8
+-Author: Ivo Hinkelmann <ihi@openoffice.org>
+-Date:   Wed Jun 6 11:17:38 2007 +0000
+-
+-    INTEGRATION: CWS i18n30 (1.4.24); FILE MERGED
+-    2007/05/08 21:32:18 khong 1.4.24.1: #i73903# update line breakiterator rule to icu3.6 style
+-
+-commit ea290668f78475c3b277c9e44bf5622ccb4dcec8
+-Author: Ivo Hinkelmann <ihi@openoffice.org>
+-Date:   Wed Jun 6 11:17:25 2007 +0000
+-
+-    INTEGRATION: CWS i18n30 (1.28.4); FILE MERGED
+-    2007/05/08 21:47:00 khong 1.28.4.3: #i75412# remove fix from cws i18n30, move it to other cws to fix with other Japanese surrogate issues
+-    2007/03/20 18:39:58 khong 1.28.4.2: #i72589# fixed BS problem for surrogate characters
+-    2007/03/13 19:11:44 khong 1.28.4.1: #i75319# fixed ANY_WORD rule loading problem
+-
+-commit b6308a6e322fd4eaa7845793beb70900624f351c
+-Author: Ivo Hinkelmann <ihi@openoffice.org>
+-Date:   Wed Jun 6 11:17:12 2007 +0000
+-
+-    INTEGRATION: CWS i18n30 (1.14.32); FILE MERGED
+-    2007/05/08 21:44:15 khong 1.14.32.1: #i76706# fix infinite loop for CJK word breakiterator for text mixed with Latin and CJK characters
+-
+-commit e068e0e9aa9405ea4016ad19e9a963129adfed79
+-Author: Rüdiger Timm <rt@openoffice.org>
+-Date:   Thu Jan 25 08:35:42 2007 +0000
+-
+-    INTEGRATION: CWS i18n28 (1.1.2); FILE ADDED
+-    2006/12/06 05:52:39 khong 1.1.2.1: #i64400# add an optional breakiterator entry in localedata
+-
+-commit 8d6f35a46085bb420e8896505504b376d17b842a
+-Author: Rüdiger Timm <rt@openoffice.org>
+-Date:   Thu Jan 25 08:35:31 2007 +0000
+-
+-    INTEGRATION: CWS i18n28 (1.24.36); FILE MERGED
+-    2006/12/19 17:27:58 khong 1.24.36.2: RESYNC: (1.24-1.25); FILE MERGED
+-    2006/12/06 05:52:38 khong 1.24.36.1: #i64400# add an optional breakiterator entry in localedata
+-
+-commit 633d34fa33330339ab6795ce3703477216e0062e
+-Author: Kurt Zenker <kz@openoffice.org>
+-Date:   Tue Dec 12 15:14:36 2006 +0000
+-
+-    INTEGRATION: CWS icuupgrade (1.9.24); FILE MERGED
+-    2006/10/11 06:11:11 khong 1.9.24.4: RESYNC: (1.10-1.11); FILE MERGED
+-    2006/07/07 10:57:40 hdu 1.9.24.3: RESYNC: (1.9-1.10); FILE MERGED
+-    2006/06/30 01:31:40 khong 1.9.24.2: #i53388# upgrade icu to 3.4.1
+-    2006/06/15 19:16:55 khong 1.9.24.1: #i60645# upgrade icu to 3.4.1
+-
+-commit 5d46dabe95271c846601a2575d3304fd5b4b24f1
+-Author: Kurt Zenker <kz@openoffice.org>
+-Date:   Tue Dec 12 15:14:05 2006 +0000
+-
+-    INTEGRATION: CWS icuupgrade (1.22.20); FILE MERGED
+-    2006/11/11 07:12:47 khong 1.22.20.6: #142664# fix breakiterator crash problem
+-    2006/10/11 06:10:51 khong 1.22.20.5: RESYNC: (1.23-1.24); FILE MERGED
+-    2006/09/06 01:00:31 khong 1.22.20.4: #i60645# upgrade to icu 3.6
+-    2006/07/07 10:57:32 hdu 1.22.20.3: RESYNC: (1.22-1.23); FILE MERGED
+-    2006/06/30 01:31:40 khong 1.22.20.2: #i53388# upgrade icu to 3.4.1
+-    2006/06/20 14:27:26 hdu 1.22.20.1: #i60645# fix crash when udata_open failed
+-
+-commit 7431d816cdfc47b08978c0afd1f6503644bb11b8
+-Author: Kurt Zenker <kz@openoffice.org>
+-Date:   Mon Nov 6 13:40:05 2006 +0000
+-
+-    INTEGRATION: CWS i18n27 (1.3.142); FILE MERGED
+-    2006/10/10 21:10:57 khong 1.3.142.1: #i65267# fix line break rule
+-
+-commit d7471e1462ffd9baeb3449eb86ccbb649e32b233
+-Author: Kurt Zenker <kz@openoffice.org>
+-Date:   Mon Nov 6 13:39:52 2006 +0000
+-
+-    INTEGRATION: CWS i18n27 (1.1.2); FILE ADDED
+-    2006/10/10 21:08:55 khong 1.1.2.1: #i56348# add Hungarian word break rule for edit mode
+-
+-commit 1b65b0b886e2cb16382bc11770230fb6a140f33b
+-Author: Jens-Heiner Rechtien <hr@openoffice.org>
+-Date:   Tue Oct 24 12:53:13 2006 +0000
+-
+-    INTEGRATION: CWS tl29 (1.12.24); FILE MERGED
+-    2006/09/20 01:24:53 khong 1.12.24.1: #i69482# fixed mismatch of nextWord and getWordBoundary
+-
+-commit 97d89862a2285071202cc8010d888ffcbf96279a
+-Author: Jens-Heiner Rechtien <hr@openoffice.org>
+-Date:   Thu Nov 17 19:30:35 2005 +0000
+-
+-    INTEGRATION: CWS i18n23 (1.20.22); FILE MERGED
+-    2005/11/17 20:00:37 khong 1.20.22.3: RESYNC: (1.20-1.21); FILE MERGED
+-    2005/11/17 19:45:05 khong 1.20.22.2: #i57866# merge cws i18n23 and thaiissues
+-    2005/11/15 21:10:24 khong 1.20.22.1: #i57866# fix line breakiterator problem
+-
+-commit 05fadde6f025bcaafca4f3093e88be3cc1bb6836
+-Author: Oliver Bolte <obo@openoffice.org>
+-Date:   Wed Nov 16 09:18:37 2005 +0000
+-
+-    INTEGRATION: CWS thaiissues (1.20.6); FILE MERGED
+-    2005/10/26 20:42:40 khong 1.20.6.2: use icu thai linke break algorithm for thai breakiterator
+-    2005/10/26 13:36:24 fme 1.20.6.1: #i55716# Handling of WORDJOINER
+-
+-commit a10b0e70c641d7438c557ef718c6942b3abffaec
+-Author: Oliver Bolte <obo@openoffice.org>
+-Date:   Wed Nov 16 09:18:25 2005 +0000
+-
+-    INTEGRATION: CWS thaiissues (1.8.6); FILE MERGED
+-    2005/10/26 20:42:39 khong 1.8.6.1: use icu thai linke break algorithm for thai breakiterator
+-
+-commit 4a1f1586173839d532f90507c72306bc9e2aec56
+-Author: Oliver Bolte <obo@openoffice.org>
+-Date:   Wed Nov 16 09:18:11 2005 +0000
+-
+-    INTEGRATION: CWS thaiissues (1.9.4); FILE MERGED
+-    2005/10/28 17:54:39 khong 1.9.4.1: Fix a bug in ctl line break when there is word joiner character
+-
+-commit beb2a536738ba761a92f8266570f1859c85f94ae
+-Author: Rüdiger Timm <rt@openoffice.org>
+-Date:   Tue Nov 8 15:59:16 2005 +0000
+-
+-    INTEGRATION: CWS siloch (1.3.50); FILE MERGED
+-    2005/10/26 10:55:05 er 1.3.50.1: #i56347# apply patch to recognize suffixes of numbers in Hungarian spellchecking; contributed by Nemeth Laszlo <nemeth@ooo>
+-
+-commit 939e7c2bc93c13b6740051beeb08c5883b65ffce
+-Author: Kurt Zenker <kz@openoffice.org>
+-Date:   Fri Nov 4 14:33:30 2005 +0000
+-
+-    INTEGRATION: CWS i18n21 (1.3.46); FILE MERGED
+-    2005/10/21 00:35:09 khong 1.3.46.1: #i55778 reverse back last change, treat letter and number combination as one word.
+-
+-commit 51594ef552a872b9868e5c7a025a68665488a016
+-Author: Kurt Zenker <kz@openoffice.org>
+-Date:   Fri Nov 4 14:33:16 2005 +0000
+-
+-    INTEGRATION: CWS i18n21 (1.2.2); FILE MERGED
+-    2005/10/21 00:35:08 khong 1.2.2.1: #i55778 reverse back last change, treat letter and number combination as one word.
+-
+-commit f4fe39909c7ed645a8b387cf66de249572226ad6
+-Author: Kurt Zenker <kz@openoffice.org>
+-Date:   Fri Nov 4 14:33:03 2005 +0000
+-
+-    INTEGRATION: CWS i18n21 (1.3.46); FILE MERGED
+-    2005/10/21 00:35:08 khong 1.3.46.1: #i55778 reverse back last change, treat letter and number combination as one word.
+-
+-commit 7f8af14611e66655ea7354083eafd71afc9703e3
+-Author: Kurt Zenker <kz@openoffice.org>
+-Date:   Fri Nov 4 14:32:41 2005 +0000
+-
+-    INTEGRATION: CWS i18n21 (1.4.46); FILE MERGED
+-    2005/10/21 00:35:07 khong 1.4.46.1: #i55778 reverse back last change, treat letter and number combination as one word.
+-
+-commit 924e158b9d871fbf7500e9215540e26aa95b3b20
+-Author: Rüdiger Timm <rt@openoffice.org>
+-Date:   Mon Oct 17 14:43:17 2005 +0000
+-
+-    INTEGRATION: CWS i18n20 (1.1.2); FILE ADDED
+-    2005/09/22 23:47:49 khong 1.1.2.1: #i51661# add quotation mark as middle letter for Hebrew in word breakiterator rule.
+-
+-commit a428a8927006a10ccfe7182e6fe5a8b677281eca
+-Author: Rüdiger Timm <rt@openoffice.org>
+-Date:   Mon Oct 17 14:42:30 2005 +0000
+-
+-    INTEGRATION: CWS i18n20 (1.18.32); FILE MERGED
+-    2005/09/23 15:59:13 khong 1.18.32.6: #i51661# add quotation mark as middle letter for Hebrew in word breakiterator rule.
+-    2005/09/23 08:09:54 khong 1.18.32.5: #i51661# add quotation mark as middle letter for Hebrew in word breakiterator rule.
+-    2005/09/23 07:38:03 khong 1.18.32.4: #i51661# add quotation mark as middle letter for Hebrew in word breakiterator rule
+-    2005/09/22 23:47:48 khong 1.18.32.3: #i51661# add quotation mark as middle letter for Hebrew in word breakiterator rule.
+-    2005/08/26 23:34:37 khong 1.18.32.2: #i50172# add cell breakiterator rule for Tamil
+-    2005/08/26 23:31:59 khong 1.18.32.1: #i50172# add cell breakiterator rule for Tamil
+-
+-commit f518f78557931b81e06fd7b31bb22c6639e5e553
+-Author: Rüdiger Timm <rt@openoffice.org>
+-Date:   Mon Oct 17 14:42:14 2005 +0000
+-
+-    INTEGRATION: CWS i18n20 (1.6.32); FILE MERGED
+-    2005/09/23 15:59:13 khong 1.6.32.3: #i51661# add quotation mark as middle letter for Hebrew in word breakiterator rule.
+-    2005/09/23 07:38:02 khong 1.6.32.2: #i51661# add quotation mark as middle letter for Hebrew in word breakiterator rule
+-    2005/09/22 23:47:48 khong 1.6.32.1: #i51661# add quotation mark as middle letter for Hebrew in word breakiterator rule.
+-
+-commit 9b870055ecd043d1d4fadeacd351f8739e1979a0
+-Author: Vladimir Glazounov <vg@openoffice.org>
+-Date:   Fri Feb 25 09:08:13 2005 +0000
+-
+-    INTEGRATION: CWS i18n16 (1.16.22); FILE MERGED
+-    2005/02/04 19:05:45 khong 1.16.22.3: #i41671# use ICU rules for Thai breakiterator
+-    2005/01/24 21:56:34 khong 1.16.22.2: #i35285# merge cws i18n16 with top version 1.17
+-    2005/01/12 01:12:41 khong 1.16.22.1: #i35285# remove uprv_malloc, use udata_open for loading icu rule breakiterator
+-
+-commit 29b9e86f5dac388d7aaced24d3826ac9331b03e3
+-Author: Vladimir Glazounov <vg@openoffice.org>
+-Date:   Fri Feb 25 09:07:59 2005 +0000
++done, regression tests added:
+-    INTEGRATION: CWS i18n16 (1.5.22); FILE MERGED
+-    2005/02/04 19:05:45 khong 1.5.22.1: #i41671# use ICU rules for Thai breakiterator
++#112623# update Japanese word breakiterator dictionary
++#i50172# add cell breakiterator rule for Tamil
++#i80412# indic cursoring
++#i107843# em-dash/en-dash breakiterator fix for spell checking
++#i103552# Japanese word for 'shutdown' added to ja.dic
++#i113785# ligatures for spell checking will no longer break words
++An opening quote should not be counted as a word by word count tool (regression test in writer)
++fdo#31271 wrong line break with (
++#i89042# word count fix (regression test is in writer)
++#i58513# add break iterator rules for Finish
++#i19716# fix wrong line break on bracket characters
++#i21290# extend Greek script type
++#i21907# fix isBeginWord and isEndWord problem
++#i85411# Apply patch for ZWSP
++#i17155# fix line breakiterator rule to make slash and hyphen as part of word when doing line break
++#i13451# add '-' as midLetter for Catalan dictionary word breakiterator
++#i13494# fix word breakiterator rule to handle punctuations and signs correctly
++#i29548# Fix Thai word breakiterator problem
++#i11993# #i14904# fix word breakiterator issues
++#i64400# dash/hyphen should not break words (de/nds/nl/sv)
++#i22602# make dot stick on beginning of a word when doing line break
++#i24098# skip preceding space for beginOfSentence
++#i24098# fix beginOfSentence, which did not work correctly when cursor is on the beginning of the sentence
++#i51661# add quotation mark as middle letter for Hebrew in word breakiterator rule.
++#i50172# add cell breakiterator rule for Tamil
++#i55778# reverse back last change, treat letter and number combination as one word.
++#i56347# apply patch to recognize suffixes of numbers in Hungarian spellchecking
++#i56348# add Hungarian word break rule for edit mode
++#i65267# fix line break rule
++#i86439# many changes to implement, tweak, debug UTF-16 surrogate pair handling
++#i75631#         "
++#i75632#         "
++#i75633#         "
++#i75412#         "
++#i80645# fix backslash issues in line breakiterator
++#i80841# fix hyphen line break problem
++#i81448# fixed dot line break issue
++#i81448# fix the problem of line break on punctuations (commit message says i81440)
++#i81448# fix problem of line break on symbols
++#i83649# fixed the problem of line break between quotation mark and open bracket
++#i83464# fix the problem of line break between letter and 1326
++b6634800# fix line break problem of dot after letter and before number
++#i83229# fix the problem of leading hyphen for numbers
++#i80815# count words like MS Word
++
++likely superseded:
++
++#i21392# Obscure line break behavior mismatch in string of symbols between MSO and LO.
++#i80548# "fix dash issues in line breakiterator" - fix no longer works
++#i72868# "fix Chinese punctuation for line breakiterator" - fix no longer works
++#i80891# "fix Chinese punctuation for line breakiterator" - fix no longer works
++
++#i27711# Adding/tweaking/removing languages later added to ICU.
++#i33756#         "
++#i41671#         "
++#i41671#         "
++#i55063#         "
++#i24850# ICU upgrades, internal bug fixes, or other work-arounds.
++#i24098#         "
++#112772#         "
++#i35285#         "
++4a1f1586173839d532f90507c72306bc9e2aec56        "
++a10b0e70c641d7438c557ef718c6942b3abffaec        "
++05fadde6f025bcaafca4f3093e88be3cc1bb6836        "
++#i57866#         "
++#i57866#         "
++#i69482#         "
++#142664#         "
++#i60645#         "
++#i53388#         "
++#i60645#         "
++#i78393#         "
++#i73903#         "
++#i75412#         "
++#i72589#         "
++#i75319#         "
++#i76706#         "
++#i64400#         "
++#i64400#         "
++#i79148#         "
++#i55063#         "
++#i87530#         "
++#i88041#         "
++#i88411#         "
++#i80923#         "
++#i80923#         "
++#i81519#         "
++
++
++suspect:
++
++
++- The intentions behind the following commits are unclear, as the referenced bugs were in the
++StarOffice internal bug tracker. These changes are contemporaneous with TR14 Revision 17, and seem
++to be part of an effort to backport upstream rule changes across multiple language customizations.
+ commit 746ea3d8c29b27b23af3433446f66db0ad3096d6
+ Author: Oliver Bolte <obo@openoffice.org>
+@@ -436,108 +133,17 @@ Date:   Tue Jan 11 10:18:51 2005 +0000
+     INTEGRATION: CWS i18n15 (1.3.36); FILE MERGED
+     2004/09/04 02:03:53 khong 1.3.36.1: #117685# make dictionary word contain only letter or only number, dot can be in middle or end of a word, but only one.
+-commit e5a62ce85bebcc9fb2bf0e5b9aced5fc7748055b
+-Author: Oliver Bolte <obo@openoffice.org>
+-Date:   Tue Jan 11 10:18:37 2005 +0000
+-
+-    INTEGRATION: CWS i18n15 (1.16.4); FILE MERGED
+-    2004/10/07 18:19:11 khong 1.16.4.1: #i33756# update Hungarian breakiterator
+-
+-commit d2a6a31e6981800c2a920f8c6ff901c341a0466e
+-Author: Kurt Zenker <kz@openoffice.org>
+-Date:   Fri Jul 30 13:38:57 2004 +0000
+-
+-    INTEGRATION: CWS i18n13 (1.8.92); FILE MERGED
+-    2004/06/14 23:24:16 khong 1.8.92.2: #112772# Japanese word breakiterator is not correct
+-    2004/06/11 19:23:04 khong 1.8.92.1: #112772# Japanese word breakiterator is not correct
+-commit d6b8dabc3dc4811e1152d411a8428ccb334d16ab
+-Author: Kurt Zenker <kz@openoffice.org>
+-Date:   Fri Jul 30 13:38:17 2004 +0000
+-
+-    INTEGRATION: CWS i18n13 (1.7.162); FILE MERGED
+-    2004/06/11 19:23:04 khong 1.7.162.1: #112772# Japanese word breakiterator is not correct
+-
+-commit 9ea4c16a699ac7cf5e255a19653651ac993f022b
+-Author: Kurt Zenker <kz@openoffice.org>
+-Date:   Fri Jul 30 13:38:05 2004 +0000
+-
+-    INTEGRATION: CWS i18n13 (1.9.92); FILE MERGED
+-    2004/06/11 19:23:04 khong 1.9.92.1: #112772# Japanese word breakiterator is not correct
++- The intention behind the following commit is unclear, as the bug references are incorrect and no
++good candidates were immediately apparent. Based on the text of the commit, however, it appears to
++be a simple bug fix for skipSpace(). This function has also had a great deal of churn since this
++commit, further suggesting it is no longer pertinent.
+-commit 2887ecb5554eee699e1dce4ffbc2dfcf71a54a41
++commit 1967d8fb182b3101dee4f715e78be384400bc1e8
+ Author: Kurt Zenker <kz@openoffice.org>
+-Date:   Fri Jul 30 13:37:54 2004 +0000
+-
+-    INTEGRATION: CWS i18n13 (1.15.18); FILE MERGED
+-    2004/06/17 20:29:38 khong 1.15.18.2: #
+-    2004/06/02 04:54:24 khong 1.15.18.1: #i11993# fix getWordBoundary problem when position is on the end of the word.
+-
+-commit 606556eed208d1218f950df2200510a7e19af1d9
+-Author: Oliver Bolte <obo@openoffice.org>
+-Date:   Fri May 28 15:33:28 2004 +0000
+-
+-    INTEGRATION: CWS i18n12 (1.1.2); FILE ADDED
+-    2004/04/30 14:37:52 er 1.1.2.1: #i27711# Hungarian breakiterator (provided by Timar Andras)
+-
+-commit 9710ca90166c18c0a92f7f0246a7c2f7dae87ebc
+-Author: Oliver Bolte <obo@openoffice.org>
+-Date:   Fri May 28 15:33:17 2004 +0000
+-
+-    INTEGRATION: CWS i18n12 (1.4.22); FILE MERGED
+-    2004/04/13 11:55:32 er 1.4.22.1: #i27711# Hungarian breakiterator
+-
+-commit b138663ef4f4ade38fb42f8a2f567527cf15949b
+-Author: Oliver Bolte <obo@openoffice.org>
+-Date:   Fri May 28 15:33:02 2004 +0000
+-
+-    INTEGRATION: CWS i18n12 (1.13.22); FILE MERGED
+-    2004/04/30 11:25:47 er 1.13.22.2: RESYNC: (1.13-1.14); FILE MERGED
+-    2004/04/13 11:55:32 er 1.13.22.1: #i27711# Hungarian breakiterator
+-
+-commit f5bc5f04e4de8fa502d498a99f4ef6a340d796c0
+-Author: Oliver Bolte <obo@openoffice.org>
+-Date:   Wed Mar 17 08:02:14 2004 +0000
+-
+-    INTEGRATION: CWS i18n11 (1.13.14); FILE MERGED
+-    2004/02/04 02:09:04 khong 1.13.14.2: #i24098# skip preceding space for beginOfSentence
+-    2004/01/06 19:41:49 khong 1.13.14.1: #i24098# fix beginOfSentence, which did not work correctly when cursor is on the beginning of the sentence
+-
+-commit 16401a5b865b5da8a2dd70057e8b048e9b797d5a
+-Author: Oliver Bolte <obo@openoffice.org>
+-Date:   Wed Mar 17 08:02:01 2004 +0000
+-
+-    INTEGRATION: CWS i18n11 (1.12.14); FILE MERGED
+-    2004/02/10 14:21:13 er 1.12.14.3: RESYNC: (1.12-1.13); FILE MERGED
+-    2004/02/05 16:45:30 khong 1.12.14.2: #i24850# fix the problem in previousCharBlock, when target char block is in position 1
+-    2004/02/04 02:13:48 khong 1.12.14.1: #i24098# check boundary condition for Sentence, Script, CharBlock breakiterator
+-
+-commit 4da98b648497af30de0fcf1a16e649ce18b0564f
+-Author: Jens-Heiner Rechtien <hr@openoffice.org>
+-Date:   Mon Mar 8 16:17:05 2004 +0000
+-
+-    INTEGRATION: CWS i18n09 (1.2.2); FILE MERGED
+-    2003/12/04 23:45:37 khong 1.2.2.3: #i22602# make dot stick on beginning of a word when doing line break
+-    2003/12/04 23:12:37 khong 1.2.2.2: #i21392# change line break rule to match with MS office
++Date:   Wed Sep 5 16:37:28 2007 +0000
+-done, regression tests added:
++    INTEGRATION: CWS i18n37 (1.22.6); FILE MERGED
++    2007/09/03 18:27:39 khong 1.22.6.2: i8132 fixed a problem in skipping space for word breakiterator
++    2007/08/31 21:30:30 khong 1.22.6.1: i81158 fix skipping space problem
+-#112623# update Japanese word breakiterator dictionary
+-#i50172# add cell breakiterator rule for Tamil
+-#i80412# indic cursoring
+-#i107843# em-dash/en-dash breakiterator fix for spell checking
+-#i103552# Japanese word for 'shutdown' added to ja.dic
+-#i113785# ligatures for spell checking will no longer break words
+-An opening quote should not be counted as a word by word count tool (regression test in writer)
+-fdo#31271 wrong line break with (
+-#i89042# word count fix (regression test is in writer)
+-#i58513# add break iterator rules for Finish
+-#i19716# fix wrong line break on bracket characters
+-#i21290# extend Greek script type
+-#i21907# fix isBeginWord and isEndWord problem
+-#i85411# Apply patch for ZWSP
+-#i17155# fix line breakiterator rule to make slash and hyphen as part of word when doing line break
+-#i13451# add '-' as midLetter for Catalan dictionary word breakiterator
+-#i13494# fix word breakiterator rule to handle punctuations and signs correctly
+-#i29548# Fix Thai word breakiterator problem
+-#i11993# #i14904# fix word breakiterator issues
+-- 
+2.39.2
+
diff --git a/debian/patches/search-usr-share-for-images.diff b/debian/patches/search-usr-share-for-images.diff
new file mode 100644 (file)
index 0000000..6b91fcc
--- /dev/null
@@ -0,0 +1,137 @@
+diff --git a/vcl/inc/impimagetree.hxx b/vcl/inc/impimagetree.hxx
+index 41c4f56..93d80f1 100644
+--- a/vcl/inc/impimagetree.hxx
++++ b/vcl/inc/impimagetree.hxx
+@@ -85,6 +85,10 @@ private:
+     typedef boost::unordered_map<
+         rtl::OUString, std::pair< bool, BitmapEx >, rtl::OUStringHash > IconCache;
++    // we want to search zip files (icons) also in /usr/share/
++    ::rtl::OUString m_datadir; // /usr/share/
++    ::rtl::OUString m_libdir;   // /usr/lib or /usr/lib64
++
+     rtl::OUString m_style;
+     Zips m_zips;
+     CheckStyleCache m_checkStyleCache;
+@@ -92,6 +96,7 @@ private:
+
+     void setStyle(rtl::OUString const & style );
+
++    void addUrlToZips(const rtl::OUString &url);
+     void resetZips();
+
+     bool checkStyleCacheLookup( rtl::OUString const & style, bool &exists );
+diff --git a/vcl/source/gdi/impimagetree.cxx b/vcl/source/gdi/impimagetree.cxx
+index 03442fc..cfe6c45 100644
+--- a/vcl/source/gdi/impimagetree.cxx
++++ b/vcl/source/gdi/impimagetree.cxx
+@@ -121,7 +121,11 @@ void loadFromStream(
+ }
+-ImplImageTree::ImplImageTree() {}
++ImplImageTree::ImplImageTree()
++{
++    m_datadir = ::rtl::OUString::createFromAscii ( "/usr/share/" );
++    m_libdir = ::rtl::OUString::createFromAscii ( "/usr/lib/" ); 
++}
+ ImplImageTree::~ImplImageTree() {}
+@@ -259,6 +263,22 @@ void ImplImageTree::setStyle(rtl::OUString const & style) {
+     }
+ }
++void ImplImageTree::addUrlToZips(const rtl::OUString &url) {
++    if ( url.getLength() == 0 ) 
++        return; 
++    m_zips.push_back(
++        std::make_pair(
++        url,
++        css::uno::Reference< css::container::XNameAccess >()));
++    sal_Int32 nLibDirPos = url.indexOf( m_libdir ); 
++    if ( nLibDirPos >= 0 ) {
++    m_zips.push_back(
++            std::make_pair(
++            url.replaceAt( nLibDirPos, m_libdir.getLength(), m_datadir ),
++            css::uno::Reference< css::container::XNameAccess >()));
++    }
++} 
++
+ void ImplImageTree::resetZips() {
+     m_zips.clear();
+     {
+@@ -284,19 +304,14 @@ void ImplImageTree::resetZips() {
+         b.appendAscii(RTL_CONSTASCII_STRINGPARAM("_brand.zip"));
+         bool ok = u.Append(b.makeStringAndClear(), INetURLObject::ENCODE_ALL);
+         OSL_ASSERT(ok); (void) ok;
+-        m_zips.push_back(
+-            std::make_pair(
+-                u.GetMainURL(INetURLObject::NO_DECODE),
+-                css::uno::Reference< css::container::XNameAccess >()));
++        addUrlToZips(u.GetMainURL(INetURLObject::NO_DECODE));
+     }
+     {
+         rtl::OUString url(
+             RTL_CONSTASCII_USTRINGPARAM(
+                 "$BRAND_BASE_DIR/share/config/images_brand.zip"));
+         rtl::Bootstrap::expandMacros(url);
+-        m_zips.push_back(
+-            std::make_pair(
+-                url, css::uno::Reference< css::container::XNameAccess >()));
++        addUrlToZips(url);
+     }
+     {
+         rtl::OUString url(
+@@ -310,10 +310,7 @@
+         b.appendAscii(RTL_CONSTASCII_STRINGPARAM(".zip"));
+         bool ok = u.Append(b.makeStringAndClear(), INetURLObject::ENCODE_ALL);
+         OSL_ASSERT(ok); (void) ok;
+-        m_zips.push_back(
+-            std::make_pair(
+-                u.GetMainURL(INetURLObject::NO_DECODE),
+-                css::uno::Reference< css::container::XNameAccess >()));
++      addUrlToZips(u.GetMainURL(INetURLObject::NO_DECODE));
+     }
+     if ( m_style == "default" )
+     {
+@@ -321,9 +333,7 @@ void ImplImageTree::resetZips() {
+             RTL_CONSTASCII_USTRINGPARAM(
+                 "$BRAND_BASE_DIR/share/config/images.zip"));
+         rtl::Bootstrap::expandMacros(url);
+-        m_zips.push_back(
+-            std::make_pair(
+-                url, css::uno::Reference< css::container::XNameAccess >()));
++        addUrlToZips(url);
+     }
+ }
+diff --git a/xmlhelp/source/cxxhelp/provider/provider.cxx b/xmlhelp/source/cxxhelp/provider/provider.cxx
+index e55fe5d..848bed7 100644
+--- a/xmlhelp/source/cxxhelp/provider/provider.cxx
++++ b/xmlhelp/source/cxxhelp/provider/provider.cxx
+@@ -335,7 +335,7 @@ void ContentProvider::init()
+         rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( " " )) +
+         setupextension );
+-    uno::Sequence< rtl::OUString > aImagesZipPaths( 2 );
++    uno::Sequence< rtl::OUString > aImagesZipPaths( 3 );
+     xHierAccess = getHierAccess( sProvider,  "org.openoffice.Office.Common" );
+     rtl::OUString aPath( getKey( xHierAccess, "Path/Current/UserConfig" ) );
+@@ -344,6 +344,15 @@ void ContentProvider::init()
+     aPath = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("$BRAND_BASE_DIR/share/config"));
+     rtl::Bootstrap::expandMacros(aPath);
++    aImagesZipPaths[ 2 ] = aPath;
++
++    // try also /usr/share and even before /usr/lib
++    ::rtl::OUString aDataDir = ::rtl::OUString::createFromAscii ( "/usr/share/" ); 
++    ::rtl::OUString aLibDir = ::rtl::OUString::createFromAscii ( "/usr/lib/" ); 
++    sal_Int32 nLibDirPos = aPath.indexOf( aLibDir ); 
++ 
++    if ( nLibDirPos >= 0 ) 
++        aPath = aPath.replaceAt( nLibDirPos, aLibDir.getLength(), aDataDir ); 
+     aImagesZipPaths[ 1 ] = aPath;
+     uno::Reference< uno::XComponentContext > xContext;
diff --git a/debian/patches/sensible-lomua.diff b/debian/patches/sensible-lomua.diff
new file mode 100644 (file)
index 0000000..6b98bbc
--- /dev/null
@@ -0,0 +1,50 @@
+Index: libreoffice-3.6.2~rc1/officecfg/registry/data/org/openoffice/Office/Common.xcu
+===================================================================
+--- libreoffice-3.6.2~rc1.orig/officecfg/registry/data/org/openoffice/Office/Common.xcu        2012-10-07 21:03:17.662850386 -0400
++++ libreoffice-3.6.2~rc1/officecfg/registry/data/org/openoffice/Office/Common.xcu     2012-10-07 21:03:57.174850591 -0400
+@@ -655,7 +655,7 @@
+   </node>
+   <node oor:name="ExternalMailer" install:module="unixdesktop">
+     <prop oor:name="Program">
+-      <value oor:external="com.sun.star.configuration.backend.DesktopBackend ExternalMailer"/>
++      <value>sensible-lomua</value>
+     </prop>
+   </node>
+   <node oor:name="Font">
+Index: libreoffice-3.6.2~rc1/shell/source/unix/misc/senddoc.sh
+===================================================================
+--- libreoffice-3.6.2~rc1.orig/shell/source/unix/misc/senddoc.sh       2012-10-07 21:03:17.662850386 -0400
++++ libreoffice-3.6.2~rc1/shell/source/unix/misc/senddoc.sh    2012-10-07 21:29:13.074858447 -0400
+@@ -59,6 +59,32 @@
+     shift
+ fi
++case `basename "$MAILER"` in
++    sensible-lomua)
++        if [ -x /usr/bin/xdg-email ] ; then
++            MAILER=/usr/bin/xdg-email
++        elif [ -n "$KDE_FULL_SESSION" -a -x /usr/bin/kde-open ] \
++           || [ -x /usr/bin/gnome-open ] \
++           || [ -x /usr/bin/xdg-open ]; then
++            # use an undefined mailer, to trigger the default handling
++            MAILER=undefined
++        elif [ -n "$GNOME_DESKTOP_SESSION_ID" -a -x /usr/bin/evolution ]; then
++            MAILER=/usr/bin/evolution
++        elif [ -n "$KDE_FULL_SESSION" -a -x /usr/bin/kmail ]; then
++            MAILER=/usr/bin/kmail
++        elif [ -x /usr/bin/evolution ]; then
++            # default
++            MAILER=/usr/bin/evolution
++        elif [ -x /usr/bin/icedove ]; then
++            # fallback
++            MAILER=/usr/bin/icedove
++        elif [ -x /usr/bin/thunderbird ]; then
++            # fallback
++            MAILER=/usr/bin/thunderbird
++        fi
++        ;;
++esac
++
+ # autodetect mail client from executable name
+ case $(basename "$MAILER" | sed 's/-.*$//') in
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644 (file)
index 0000000..65bdb5d
--- /dev/null
@@ -0,0 +1,56 @@
+no-check-if-root.diff
+debian-opt.diff
+jurt-soffice-location.diff
+split-evoab.diff
+debian-debug.diff
+#fix-system-lpsolve-build.diff
+build-against-shared-lpsolve.diff
+install-fixes.diff
+mention-java-common-package.diff
+help-msg-add-package-info.diff
+sensible-lomua.diff
+reportdesign-mention-package.diff
+jdbc-driver-classpaths.diff
+#search-usr-share-for-images.diff
+make-package-modules-not-suck.diff
+mediwiki-oor-replace.diff
+debian-hardened-buildflags-CPPFLAGS.diff
+debian-hardened-buildflags-no-LO-fstack-protector-strong.diff
+disable-flaky-tests.diff
+#dont-touch-urd.diff
+fix-internal-hsqldb-build.diff
+javadoc-optional.diff
+no-packagekit-per-default.diff
+system-officeotron-and-odfvalidator.diff
+cppunit-optional.diff
+#disable-unused-test-programs.diff
+apparmor-complain.diff
+hide-math-desktop-file.patch
+appstream-ignore-startcenter.diff
+disable-java-in-odk-build-examples-on-zero-vm.diff
+do-not-hide-test-output.diff
+apparmor-allow-java.security.diff
+apparmor-cleanups.diff
+apparmor-mesa.diff
+disableClassPathURLCheck.diff
+use-mariadb-java-instead-of-mysql-java.diff
+apparmor-opencl.diff
+fix-flaky-bridgetest.diff
+add-access2base-doc.diff
+disable-shortcuts_tab_navigation-uitest.diff
+no-opencl-per-default.diff
+apparmor-updates.diff
+apparmor-gnupg-tofu.diff
+arm-fp-mode.diff
+moreIconsDialog-accesses-internet.diff
+do-not-abort-on-NON_APPLICATION_FONT_USE.diff
+we-dont-have-the-needed-fonts.diff
+adapt-for-new-carlito.diff
+fix-system-abseil-build.diff
+fix-riscv64-bridge.diff
+pdfium-ports.diff
+split-sdbc-firebird-mariadb.diff
+use-PyConfig.diff
+reviewed-breakIterator-customizations.diff
+breakiterator-updates.diff
+icu-74.1.diff
diff --git a/debian/patches/split-evoab.diff b/debian/patches/split-evoab.diff
new file mode 100644 (file)
index 0000000..48b8b36
--- /dev/null
@@ -0,0 +1,59 @@
+diff --git a/scp2/source/gnome/file_gnome.scp b/scp2/source/gnome/file_gnome.scp
+index c7a13c8..a3f59a6 100644
+--- a/scp2/source/gnome/file_gnome.scp
++++ b/scp2/source/gnome/file_gnome.scp
+@@ -25,3 +25,13 @@ File gid_File_Share_Registry_Gnome_Xcd
+     Name = "gnome.xcd";
+ End
+ #endif
++
++#ifdef ENABLE_EVOAB2
++File gid_File_Share_Registry_Evoab_Xcd
++    TXT_FILE_BODY;
++    Styles = (PACKED);
++    Dir = gid_Brand_Dir_Share_Registry;
++    Name = "evoab.xcd";
++End
++#endif
++
+diff --git a/scp2/source/gnome/module_gnome.scp b/scp2/source/gnome/module_gnome.scp
+index 08d9efe..492e274 100644
+--- a/scp2/source/gnome/module_gnome.scp
++++ b/scp2/source/gnome/module_gnome.scp
+@@ -31,6 +31,9 @@ Module gid_Module_Optional_Gnome
+ #if ENABLE_GIO
+       ,gid_File_Share_Registry_Gnome_Xcd
+ #endif
++#ifdef ENABLE_EVOAB2
++      ,gid_File_Share_Registry_Evoab_Xcd
++#endif
+     );
+ End
+diff --git a/postprocess/CustomTarget_registry.mk b/postprocess/CustomTarget_registry.mk
+index 37de50bcbe56..1e0f37957ebf 100644
+--- a/postprocess/CustomTarget_registry.mk
++++ b/postprocess/CustomTarget_registry.mk
+@@ -453,7 +453,8 @@ postprocess_FILES_calc += \
+ postprocess_DRIVERS += calc
+ ifeq ($(ENABLE_EVOAB2),TRUE)
+-postprocess_FILES_main += \
++postprocess_XCDS += evoab.xcd
++postprocess_FILES_evoab += \
+     $(call gb_XcuModuleTarget_get_target,connectivity/registry/evoab2)/org/openoffice/Office/DataAccess/Drivers-evoab2.xcu \
+     $(postprocess_MOD)/org/openoffice/Office/DataAccess-evoab2.xcu
+ postprocess_DRIVERS += evoab
+diff --git a/scp2/InstallModule_gnome.mk b/scp2/InstallModule_gnome.mk
+index c33f4f52d67b..8f06c0273eff 100644
+--- a/scp2/InstallModule_gnome.mk
++++ b/scp2/InstallModule_gnome.mk
+@@ -19,4 +19,8 @@ $(eval $(call gb_InstallModule_add_localized_scpfiles,scp2/gnome,\
+     scp2/source/gnome/module_gnome \
+ ))
++$(eval $(call gb_InstallModule_define_if_set,scp2/gnome,\
++    ENABLE_EVOAB2 \
++))
++
+ # vim: set shiftwidth=4 tabstop=4 noexpandtab:
diff --git a/debian/patches/split-sdbc-firebird-mariadb.diff b/debian/patches/split-sdbc-firebird-mariadb.diff
new file mode 100644 (file)
index 0000000..020a3f5
--- /dev/null
@@ -0,0 +1,58 @@
+diff --git a/postprocess/CustomTarget_registry.mk b/postprocess/CustomTarget_registry.mk
+index 1e2e473e0b4d..3741e94fd729 100644
+--- a/postprocess/CustomTarget_registry.mk
++++ b/postprocess/CustomTarget_registry.mk
+@@ -466,13 +467,17 @@ postprocess_DRIVERS += hsqldb jdbc mysql_jdbc
+ endif
+ ifeq ($(ENABLE_FIREBIRD_SDBC),TRUE)
+-postprocess_FILES_main += \
++postprocess_XCDS += firebird_sdbc.xcd
++postprocess_DEPS_firebird_sdbc := main
++postprocess_FILES_firebird_sdbc += \
+       $(call gb_XcuModuleTarget_get_target,connectivity/registry/firebird)/org/openoffice/Office/DataAccess/Drivers-firebird.xcu
+ postprocess_DRIVERS += firebird_sdbc
+ endif
+ ifeq ($(ENABLE_MARIADBC),TRUE)
+-postprocess_FILES_main += \
++postprocess_XCDS += mysqlc.xcd
++postprocess_DEPS_mysqlc := main
++postprocess_FILES_mysqlc += \
+       $(call gb_XcuModuleTarget_get_target,connectivity/registry/mysqlc)/org/openoffice/Office/DataAccess/Drivers-mysqlc.xcu
+ postprocess_DRIVERS += mysqlc
+ endif
+diff --git a/scp2/source/base/firebird.scp b/scp2/source/base/firebird.scp
+index 61cfff9cc496..0fdb2ffc6e66 100644
+--- a/scp2/source/base/firebird.scp
++++ b/scp2/source/base/firebird.scp
+@@ -20,15 +20,27 @@
+ #include "AutoInstall/firebirdsdbc"
+-#if defined( ENABLE_FIREBIRD_SDBC ) && !defined( SYSTEM_FIREBIRD )
++#if defined( ENABLE_FIREBIRD_SDBC )
++
++#if !defined( SYSTEM_FIREBIRD )
+ Module gid_Module_Optional_Firebird
+     Name = "Firebird";
+     Description = "Firebird embedded database";
+     PackageInfo = "packinfo_office.txt";
+     ParentID = gid_Module_Root_Brand;
+-    Files = (auto_firebirdsdbc_ALL);
++    Files = (auto_firebirdsdbc_ALL,
++             gid_File_FirebirdSdbc_Xcd);
+     Styles = (HIDDEN_ROOT);
+ End
+ #endif
++
++File gid_File_FirebirdSdbc_Xcd
++    TXT_FILE_BODY;
++    Dir = gid_Brand_Dir_Share_Registry;
++    Name = "firebird_sdbc.xcd";
++    Styles = (PACKED);
++End
++
++#endif
diff --git a/debian/patches/system-officeotron-and-odfvalidator.diff b/debian/patches/system-officeotron-and-odfvalidator.diff
new file mode 100644 (file)
index 0000000..971608e
--- /dev/null
@@ -0,0 +1,16 @@
+diff --git a/bin/odfvalidator.sh.in b/bin/odfvalidator.sh.in
+index 56e2f29..9415ef6 100644
+--- a/bin/odfvalidator.sh.in
++++ b/bin/odfvalidator.sh.in
+@@ -1,2 +1,2 @@
+ #!/usr/bin/env bash
+-java -Djavax.xml.validation.SchemaFactory:http://relaxng.org/ns/structure/1.0=org.iso_relax.verifier.jaxp.validation.RELAXNGSchemaFactoryImpl -Dorg.iso_relax.verifier.VerifierFactoryLoader=com.sun.msv.verifier.jarv.FactoryLoaderImpl -jar @TARFILE_LOCATION@/@ODFVALIDATOR_JAR@ "$@"
++java -Djavax.xml.validation.SchemaFactory:http://relaxng.org/ns/structure/1.0=org.iso_relax.verifier.jaxp.validation.RELAXNGSchemaFactoryImpl -Dorg.iso_relax.verifier.VerifierFactoryLoader=com.sun.msv.verifier.jarv.FactoryLoaderImpl -jar /usr/share/java/odfvalidator.jar "$@"
+diff --git a/bin/officeotron.sh.in b/bin/officeotron.sh.in
+index 7281f1b..6eab5b5 100644
+--- a/bin/officeotron.sh.in
++++ b/bin/officeotron.sh.in
+@@ -1,2 +1,2 @@
+ #!/usr/bin/env bash
+-java -jar @TARFILE_LOCATION@/@OFFICEOTRON_JAR@ "$@"
++java -jar /usr/share/java/officeotron.jar "$@"
diff --git a/debian/patches/use-PyConfig.diff b/debian/patches/use-PyConfig.diff
new file mode 100644 (file)
index 0000000..2cf1270
--- /dev/null
@@ -0,0 +1,80 @@
+From da0e9240bf6505ac3a67ff985705950566c66144 Mon Sep 17 00:00:00 2001
+From: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
+Date: Thu, 21 Dec 2023 12:01:50 +0200
+Subject: tdf#158447 Use PyConfig for setting Python home directory with Python
+ >= 3.8
+
+Change-Id: Ic5b7c60613b22f5215cb1a2a13fecf3e0946ca49
+Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161089
+Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
+Tested-by: Jenkins
+Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
+Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
+---
+ pyuno/source/loader/pyuno_loader.cxx | 22 +++++++++++++++++++---
+ 1 file changed, 19 insertions(+), 3 deletions(-)
+
+diff --git a/pyuno/source/loader/pyuno_loader.cxx b/pyuno/source/loader/pyuno_loader.cxx
+index 008d58634947..1e00773761e7 100644
+--- a/pyuno/source/loader/pyuno_loader.cxx
++++ b/pyuno/source/loader/pyuno_loader.cxx
+@@ -114,7 +114,11 @@ static PyRef getObjectFromLoaderModule( const char * func )
+     return object;
+ }
++#if PY_VERSION_HEX >= 0x03080000
++static void setPythonHome ( const OUString & pythonHome, PyConfig * config )
++#else
+ static void setPythonHome ( const OUString & pythonHome )
++#endif
+ {
+     OUString systemPythonHome;
+     osl_getSystemPathFromFileURL( pythonHome.pData, &(systemPythonHome.pData) );
+@@ -138,9 +142,11 @@ static void setPythonHome ( const OUString & pythonHome )
+         PyErr_SetString(PyExc_SystemError, "python home path is too long");
+         return;
+     }
+-SAL_WNODEPRECATED_DECLARATIONS_PUSH
+-    Py_SetPythonHome(wide); // deprecated since python 3.11
+-SAL_WNODEPRECATED_DECLARATIONS_POP
++#if PY_VERSION_HEX >= 0x03080000
++    config->home = wide;
++#else
++    Py_SetPythonHome(wide);
++#endif
+ }
+ static void prependPythonPath( std::u16string_view pythonPathBootstrap )
+@@ -192,11 +198,17 @@ void pythonInit() {
+     if ( Py_IsInitialized()) // may be inited by getComponentContext() already
+         return;
++#if PY_VERSION_HEX >= 0x03080000
++    PyConfig config;
++#endif
+     OUString pythonPath;
+     OUString pythonHome;
+     OUString path( "$BRAND_BASE_DIR/" LIBO_ETC_FOLDER "/" SAL_CONFIGFILE("pythonloader.uno" ));
+     rtl::Bootstrap::expandMacros(path); //TODO: detect failure
+     rtl::Bootstrap bootstrap(path);
++#if PY_VERSION_HEX >= 0x03080000
++    PyConfig_InitPythonConfig( &config );
++#endif
+     // look for pythonhome
+     bootstrap.getFrom( "PYUNO_LOADER_PYTHONHOME", pythonHome );
+@@ -205,7 +217,11 @@ void pythonInit() {
+     // pythonhome+pythonpath must be set before Py_Initialize(), otherwise there appear warning on the console
+     // sadly, there is no api for setting the pythonpath, we have to use the environment variable
+     if( !pythonHome.isEmpty() )
++#if PY_VERSION_HEX >= 0x03080000
++        setPythonHome( pythonHome, &config );
++#else
+         setPythonHome( pythonHome );
++#endif
+     if( !pythonPath.isEmpty() )
+         prependPythonPath( pythonPath );
+-- 
+cgit v1.2.3
+
diff --git a/debian/patches/use-mariadb-java-instead-of-mysql-java.diff b/debian/patches/use-mariadb-java-instead-of-mysql-java.diff
new file mode 100644 (file)
index 0000000..070dfe0
--- /dev/null
@@ -0,0 +1,59 @@
+>From 1172166889764ae0e77488e5d173f33961b9859b Mon Sep 17 00:00:00 2001
+From: Markus Koschany <apo@debian.org>
+Date: Fri, 9 Nov 2018 23:06:15 +0100
+Subject: [PATCH] mariadb
+
+---
+ connectivity/qa/complex/connectivity/JdbcLongVarCharTest.java | 4 ++--
+ .../mysql/org/openoffice/Office/DataAccess/Drivers.xcu        | 2 +-
+ connectivity/source/drivers/mysql/YDriver.cxx                 | 4 ++--
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/connectivity/qa/complex/connectivity/JdbcLongVarCharTest.java b/connectivity/qa/complex/connectivity/JdbcLongVarCharTest.java
+index 3817add48da6..ace57bd35d98 100644
+--- a/connectivity/qa/complex/connectivity/JdbcLongVarCharTest.java
++++ b/connectivity/qa/complex/connectivity/JdbcLongVarCharTest.java
+@@ -64,7 +64,7 @@ public class JdbcLongVarCharTest extends ComplexTestCase
+             */
+             String url = System.getenv("CONNECTIVITY_TEST_MYSQL_DRIVER_JDBC");
+             com.sun.star.beans.PropertyValue prop[] = new PropertyValue[1];
+-            prop[0] = new PropertyValue("JavaDriverClass", 0, "com.mysql.jdbc.Driver", PropertyState.DIRECT_VALUE);
++            prop[0] = new PropertyValue("JavaDriverClass", 0, "org.mariadb.jdbc.Driver", PropertyState.DIRECT_VALUE);
+             // get the remote office component context
+             XMultiServiceFactory xServiceManager = param.getMSF();
+diff --git a/connectivity/registry/mysql/org/openoffice/Office/DataAccess/Drivers.xcu b/connectivity/registry/mysql/org/openoffice/Office/DataAccess/Drivers.xcu
+index 77988448f..acd8bfdaf 100644
+--- a/connectivity/registry/mysql_jdbc/org/openoffice/Office/DataAccess/Drivers.xcu
++++ b/connectivity/registry/mysql_jdbc/org/openoffice/Office/DataAccess/Drivers.xcu
+@@ -33,7 +33,7 @@
+         </node>
+         <node oor:name="JavaDriverClass" oor:op="replace">
+           <prop oor:name="Value" oor:type="xs:string">
+-            <value>com.mysql.jdbc.Driver</value>
++            <value>org.mariadb.jdbc.Driver</value>
+           </prop>
+         </node>
+         <node oor:name="AddIndexAppendix" oor:op="replace">
+diff --git a/connectivity/source/drivers/mysql/YDriver.cxx b/connectivity/source/drivers/mysql/YDriver.cxx
+index 95094265e..c0ad7802e 100644
+--- a/connectivity/source/drivers/mysql_jdbc/YDriver.cxx
++++ b/connectivity/source/drivers/mysql_jdbc/YDriver.cxx
+@@ -54,7 +54,7 @@ namespace
+ OUString getJavaDriverClass(css::uno::Sequence<css::beans::PropertyValue> const& info)
+ {
+     return comphelper::NamedValueCollection::getOrDefault(info, u"JavaDriverClass",
+-                                                          OUString("com.mysql.jdbc.Driver"));
++                                                          OUString("org.mariadb.jdbc.Driver"));
+ }
+ }
+@@ -170,7 +170,7 @@ Sequence<PropertyValue> lcl_convertProperties(T_DRIVERTYPE _eType,
+         if (!jdc)
+         {
+             aProps.push_back(PropertyValue("JavaDriverClass", 0,
+-                                           Any(OUString("com.mysql.jdbc.Driver")),
++                                           Any(OUString("org.mariadb.jdbc.Driver")),
+                                            PropertyState_DIRECT_VALUE));
+         }
+     }
diff --git a/debian/patches/we-dont-have-the-needed-fonts.diff b/debian/patches/we-dont-have-the-needed-fonts.diff
new file mode 100644 (file)
index 0000000..0c70297
--- /dev/null
@@ -0,0 +1,30 @@
+diff --git a/sw/qa/core/text/text.cxx b/sw/qa/core/text/text.cxx
+index a4d4540ab228..46d262f6f0b8 100644
+--- a/sw/qa/core/text/text.cxx
++++ b/sw/qa/core/text/text.cxx
+@@ -9,6 +9,8 @@
+ #include <swmodeltestbase.hxx>
++#include <config_fonts.h>
++
+ #include <memory>
+ #include <com/sun/star/text/BibliographyDataField.hpp>
+@@ -1363,6 +1365,8 @@ CPPUNIT_TEST_FIXTURE(SwCoreTextTest, testParaUpperMarginFlyIntersect)
+     CPPUNIT_ASSERT_EQUAL(521, nHeight);
+ }
++/* needs Source Han Serif SC*/
++#if HAVE_MORE_FONTS
+ CPPUNIT_TEST_FIXTURE(SwCoreTextTest, testTdf129810)
+ {
+     // Load the document.
+@@ -1394,6 +1398,7 @@ CPPUNIT_TEST_FIXTURE(SwCoreTextTest, testTdf129810)
+         }
+     }
+ }
++#endif
+ CPPUNIT_TEST_FIXTURE(SwCoreTextTest, testScriptinfosurrogatePairs)
+ {
diff --git a/debian/python3-access2base.links b/debian/python3-access2base.links
new file mode 100644 (file)
index 0000000..f76ba1c
--- /dev/null
@@ -0,0 +1 @@
+usr/share/doc/libreoffice-common/access2base.html usr/share/doc/python3-access2base/access2base.html
diff --git a/debian/python3-uno.NEWS b/debian/python3-uno.NEWS
new file mode 100644 (file)
index 0000000..e731bbc
--- /dev/null
@@ -0,0 +1,11 @@
+libreoffice (1:3.5.2-2) unstable; urgency=low
+
+  * The script provider for python (which was in python3-uno before) has been
+    split out into libreoffice-script-provider-python as it's the same in both
+    variants and python3-uno should contain just the module anyway.
+
+    If you relied on python3-uno for the script provider, install the new
+    package in addition.
+
+ -- Rene Engelhard <rene@debian.org>  Sat, 07 Apr 2012 14:30:41 +0200
+
diff --git a/debian/python3-uno.lintian-overrides b/debian/python3-uno.lintian-overrides
new file mode 100644 (file)
index 0000000..41bb77c
--- /dev/null
@@ -0,0 +1,5 @@
+# "aged out" due to debhelpers changelog trimming (see #1021502)
+python3-uno: debian-news-entry-has-unknown-version 1:3.5.2-2 [usr/share/doc/python3-uno/NEWS.Debian.gz:1]
+# see comment in control(.in)
+python3-uno: virtual-package-depends-without-real-package-depends Pre-Depends: awk
+python3-uno: needlessly-depends-on-awk Pre-Depends
\ No newline at end of file
diff --git a/debian/python3-uno.preinst.in b/debian/python3-uno.preinst.in
new file mode 100644 (file)
index 0000000..4cf03bd
--- /dev/null
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+set -e
+
+# https://cgit.freedesktop.org/libreoffice/core/commit/?id=968166ba4ee96f7c9053c8f4c88ac82381ff7cf4
+if [ "$1" = "upgrade" ] && dpkg --compare-versions "$2" lt "4:24.2.0~beta1"; then
+       echo "Removing obsolete configuration file /etc/libreoffice/registry/pyuno.xcd ..."
+       # It was unused anyway and thus no need to keep any (noop) adaptions here. But do it this
+       # way for policy sake...
+       if [ `ucfq -w /etc/libreoffice/registry/pyuno.xcd | cut -d: -f4` = "Yes" ]; then
+               mv /etc/libreoffice/registry/pyuno.xcd /etc/libreoffice/registry/pyuno.xcd.dpkg-bak
+       else
+               rm -f /etc/libreoffice/registry/pyuno.xcd
+       fi
+       ucf --purge /etc/libreoffice/registry/pyuno.xcd
+       ucfr --purge python3-uno /etc/libreoffice/registry/pyuno.xcd
+fi
+
+#DEBHELPER#
diff --git a/debian/rules b/debian/rules
new file mode 100755 (executable)
index 0000000..4a063b7
--- /dev/null
@@ -0,0 +1,4577 @@
+#!/usr/bin/make -f
+################################################################################
+# LibreOffice source package rules file
+#
+# Please see debian/README for detailed documentation about the build system, and
+# how to build LibreOffice.
+################################################################################
+# Authors:
+# Chris Halls <halls@debian.org>
+# Rene Engelhard <rene@debian.org>
+# Copyright 2002-2023 Software in the Public Interest, Inc.
+# Portions Copyright 2010 Canonical Ltd. Author: Matthias Klose
+# Portions Copyright 2011-2013 Canonical Ltd. Author: Bjoern Michaelsen
+# Licensed under the GNU General Public License, version 2.  See the file
+# /usr/share/common-licenses/GPL or <http://www.gnu.org/copyleft/gpl.txt>.
+################################################################################
+
+vafilt = $(subst $(2)=,,$(filter $(2)=%,$(1)))
+
+include /usr/share/dpkg/pkg-info.mk
+CURDIR ?= $(realpath $(dir $(firstword $(MAKEFILE_LIST)))/..)
+BASE_VERSION:=$(shell echo $(DEB_VERSION) | cut -d: -f1):$(DEB_VERSION_UPSTREAM)
+BINARY_VERSION=$(DEB_VERSION)
+OOVER:=24.2
+HELP_L10N_VIRTUAL_VERSION:=$(OOVER)
+ifeq "$(shell echo $(OOVER) | cut -d. -f2)" "2"
+# 24.2 + .6 -> 24.8 -> OK
+NEXT_OOVER=$(shell echo "$(OOVER) + .6" | bc)
+else
+# 24.8 + .6 = 25.4 -> wrong (doesn't take into account that the year
+# has 12 months)so subtract 2 (so effectively + .4) to get back to February (25.2),
+# which is supposed to be the schedule.
+NEXT_OOVER=$(shell echo "$(OOVER) + .4" | bc)
+endif
+
+ARCH_INDEP_PACKAGES := $(shell dh_listpackages -i)
+ARCH_DEP_PACKAGES := $(shell dh_listpackages -a)
+PACKAGES := $(ARCH_INDEP_PACKAGES) $(ARCH_DEP_PACKAGES)
+
+ifneq (,$(shell pwd | grep autopkgtest))
+AUTOPKGTEST_BUILD=y
+$(warning Build for autopkgtest)
+endif
+AUTOPKGTEST_CPPUNIT_PACKAGES := $(shell dh_listpackages | grep -v help | grep -v l10n | grep -v dev-doc | grep -v "nogui$$")
+
+include /usr/share/dpkg/architecture.mk
+include /usr/share/dpkg/vendor.mk
+SHELL:=/bin/bash
+
+SYSTEM_GCC_VERSION = $(shell gcc --version | sed -n '/^gcc/s/.*\(..\..\)\../\1/p' | cut -d" " -f1 | cut -d. -f1)
+SYSTEM_CLANG_VERSION = $(shell clang -v 2>&1 | head -n1 | awk '{ print $$4 }' | cut -d. -f1)
+
+PKGDIR:=debian/libreoffice
+OODIRNAME=libreoffice
+OODIR:=usr/lib/$(OODIRNAME)
+OOSDKDIR:=$(OODIR)/sdk
+
+# Figure out who's building this package.
+ifneq "$(DEB_VENDOR)" "Debian"
+OOO_VENDOR:=The Document Foundation, $(DEB_PARENT_VENDOR) and $(DEB_VENDOR)
+else
+OOO_VENDOR=The Document Foundation/$(DEB_VENDOR)
+endif
+export OOO_VENDOR
+
+# debhelper
+export DH_OPTIONS
+export DH_ALWAYS_EXCLUDE=CVS:.svn:.bzr:.git
+#export DH_VERBOSE=1
+# quilt
+export QUILT_PATCHES=debian/patches
+export QUILT_OPTIONS="-p1 -F0"
+
+SOURCE_TREE=.
+STAMP_DIR=debian/stampdir
+TARFILE_LOCATION=$(CURDIR)/tarballs
+export TARFILE_LOCATION
+USE_SOURCE_TARBALLS=y
+USE_GIT_TARBALLS=n
+ifeq "$(USE_GIT_TARBALLS)" "y"
+GIT_BASEURL:=git://anongit.freedesktop.org/libreoffice
+lo_sources_ver=$(shell grep AC_INIT $(SOURCE_TREE)/configure.ac | grep documentfoundation | cut -d, -f2 | sed -e 's,\[,,' -e 's,\],,')
+# NOT in proper libreoffice-3-6 branch
+# use ./g checkout -b tag-libreoffice-3.6.2.1 libreoffice-3.6.2.1
+GIT_TAG=libreoffice-$(lo_sources_ver)
+GIT_BRANCH=libreoffice-24-2-5
+endif
+ifeq "$(USE_SOURCE_TARBALLS)" "y"
+lo_sources_ver=$(shell cat $(CURDIR)/sources.ver | cut -d= -f2)
+endif
+
+#########
+# Default package configuration
+#
+# FIXME: Should riscv64 be here at all given it doesn't support NaN payload propagation which LO (at least Calc) needs?
+# see https://bugs.documentfoundation.org/show_bug.cgi?id=152943 and https://lists.debian.org/debian-riscv/2024/01/msg00018.html
+OOO_ARCHS = alpha amd64 arm64 armel armhf hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 loong64 m68k mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
+DEBIAN_MAIN_ARCHITECTURES = amd64 arm64 armel armhf i386 mipsel mips64el ppc64el riscv64 s390x
+PATCHSET=$(DEB_VENDOR)
+BUILD_DEPS=\
+    autoconf,\
+    automake,\
+    bc,\
+    bison,\
+    bzip2,\
+    flex, \
+    gperf,\
+    libfreetype-dev,\
+    libfontconfig-dev,\
+    pkgconf,\
+    unzip,\
+    xsltproc,\
+    zip,\
+    zlib1g-dev\
+
+BUILD_DEPS_INDEP += rdfind, symlinks
+
+# These are components which can be built from internal copies, or used from the
+# distribution. See configure --help for valid values (--with-system-<value>).
+SYSTEM_STUFF = dicts
+
+ENABLE_GUI=y
+
+ifeq ($(filter nopython,$(DEB_BUILD_PROFILES)),)
+ENABLE_PYTHON=y
+ifeq "$(ENABLE_PYTHON)" "y"
+  CONFIGURE_FLAGS += --enable-python=system
+  ENABLE_SCRIPT_PROVIDER_PYTHON=y
+  PACKAGE_LIBRELOGO=y
+endif
+# THIS IS ONLY FOR TESTING. When building against a specified pythonX.Y
+# this will work inside OOo but *not* from outside OOo unless the user
+# uses pythonX.Y directly (and the dh_pycentral-created dependencies allow
+# also the non-working default python then) - see e.g. #587402. Also
+# note we are NOT working with python < 2.6 anymore!
+PYTHON_VERSION=current
+ifeq "$(PYTHON_VERSION)" "current"
+  PYTHON=python3
+  export PYTHON
+else
+  # somehow configure insists on using python3 "for pyuno". The only way to
+  # override this (afaics) is this...
+  PYTHON=python$(PYTHON_VERSION)
+  PYTHON_CFLAGS=$(shell pkg-config --cflags python-$(PYTHON_VERSION))
+  PYTHON_LIBS=$(shell pkg-config --libs python-$(PYTHON_VERSION))
+  export PYTHON PYTHON_VERSION PYTHON_CFLAGS PYTHON_LIBS
+endif
+endif
+BUILD_ONLY_EN_US=n
+ifeq ($(filter nojava,$(DEB_BUILD_PROFILES)),)
+  include /usr/share/java/java_defaults.mk
+  ifneq "$(BOOKWORM_BACKPORT)" "y"
+    ifneq ($(DEB_HOST_ARCH),$(filter-out $(DEB_HOST_ARCH),$(java_unsupported_architectures)))
+      ENABLE_JAVA=y
+    endif
+   else
+      ENABLE_JAVA=y
+   endif
+  ifeq "$(ENABLE_JAVA)" "y"
+    JDK=default
+    ifneq "$(JDK)" "default"
+      JAVA_MAINVER=17
+    endif
+  endif
+else
+  ENABLE_JAVA=n
+endif
+#JAVAHELPER_MIN_VERSION=
+SYSTEM_STUFF += hunspell
+SYSTEM_STUFF += altlinuxhyph
+SYSTEM_STUFF += boost
+BOOST_VERSION=default
+# libmdds-dev depends on libboost-dev, which will be removed
+# when you install a non-default libboostX.Y-dev
+ifeq "$(BOOST_VERSION)" "default"
+SYSTEM_STUFF += mdds
+endif
+USE_EXTERNAL_CXXLIBS=y
+SYSTEM_STUFF += mythes
+SYSTEM_STUFF += icu
+SYSTEM_STUFF += librevenge
+SYSTEM_STUFF += libwpd libwpg libwps
+SYSTEM_STUFF += libvisio
+SYSTEM_STUFF += libcdr
+SYSTEM_STUFF += libmspub
+SYSTEM_STUFF += libmwaw
+SYSTEM_STUFF += libodfgen
+SYSTEM_STUFF += libepubgen
+SYSTEM_STUFF += libetonyek
+SYSTEM_STUFF += libfreehand
+# this is libe-book, NOT evolutions libebook (which is
+# dlopen()'ed anyway and whose headers we need from the
+# system anyways if enabled
+SYSTEM_STUFF += libebook
+SYSTEM_STUFF += libabw
+SYSTEM_STUFF += libpagemaker
+SYSTEM_STUFF += libzmf
+SYSTEM_STUFF += libstaroffice
+SYSTEM_STUFF += libqxp
+ENABLE_ZXING=y
+SYSTEM_STUFF += zxing
+BUILD_CAIROCANVAS=y
+SYSTEM_STUFF += cairo
+ENABLE_GPGMEPP=y
+ifeq "$(ENABLE_GUI)" "y"
+BUILD_PLASMA=y
+# let's assume we won't ship two plasmas parallel..
+PLASMA_VERSION=5
+PLASMA_KF_VERSION=$(PLASMA_VERSION)
+ENABLE_QT5=n
+#QT5_MINVER=
+ENABLE_KF5=y
+ENABLE_QT6=y
+ENABLE_KF6=n
+endif
+# go sure. if we want plasma, we want kfX, too and if we want that
+# one we want qtX, too.
+ifeq "$(BUILD_PLASMA)" "y"
+   ifeq "$(PLASMA_VERSION)" "5"
+     ENABLE_KF5=y
+   endif
+   ifeq "$(PLASMA_VERSION)" "6"
+       ENABLE_KF6=y
+  endif
+endif
+# KF5 depends on Qt5
+ifeq "$(ENABLE_KF5)" "y"
+  ENABLE_QT5=y
+  KF5_QT5_DEPENDS := libreoffice-qt5 (= $${binary:Version})
+endif
+# KF6 depends on Qt6
+ifeq "$(ENABLE_KF6)" "y"
+  ENABLE_QT6=y
+  KF6_QT6_DEPENDS := libreoffice-qt6 (= $${binary:Version})
+endif
+# https://www.debian.org/doc/debian-policy/ says this is not defined and must
+# be ignored, but dh_strip mentions (and honours) it, so...
+ifneq (noautodbgsym,$(findstring noautodbgsym,$(DEB_BUILD_OPTIONS)))
+BUILD_DBGSYM_PACKAGES=y
+ifeq "$(DEB_HOST_ARCH)" "amd64"
+USE_DWZ=y
+DWZ_ARGS:=-L 100000000
+endif
+endif
+SYSTEM_STUFF += xmlsec
+SYSTEM_STUFF += zxcvbn
+
+ifeq ($(filter noinsttest,$(DEB_BUILD_PROFILES)),)
+ # this changes the packages built/contents of packages (-subsequentcheckbase)
+ # This is not exactly allowed in https://wiki.debian.org/BuildProfileSpec#Registered_profile_names
+ # but it doesn't have real practical difference, does it?
+  ifneq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
+    BUILD_TEST_PACKAGES=y
+  endif
+endif
+
+ifneq ($(MAKECMDGOALS),binary-indep)
+ENABLE_SYMBOLS=y
+SMALL_SYMBOLS=y
+endif
+ifeq ($(MAKECMDGOALS),binary-indep)
+# no need to do a double build...
+BUILD_NOGUI_PACKAGES=n
+# go sure
+  ifeq "$(BUILD_TEST_PACKAGES)" "y"
+    ENABLE_JUNIT4=y
+  endif
+endif
+
+ifeq "$(ENABLE_JAVA)" "y"
+  SYSTEM_STUFF += beanshell
+  SYSTEM_STUFF += hsqldb
+endif
+ENABLE_LPSOLVE=y
+SYSTEM_STUFF += lpsolve
+USE_SHARED_LPSOLVE=y
+#LPSOLVE_MIN_VERSION=
+ENABLE_COINMP=y
+SYSTEM_STUFF += coinmp
+USE_DBUS=y
+ifeq "$(USE_DBUS)" "y"
+  ifeq (,$(findstring linux,$(DEB_HOST_ARCH_OS)))
+    ENABLE_BLUETOOTH=n
+  else
+    ENABLE_BLUETOOTH=y
+    SYSTEM_STUFF += bluez
+  endif
+    ENABLE_PACKAGEKIT=n
+endif
+ENABLE_AVAHI=y
+ifeq "$(ENABLE_GUI)" "y"
+USE_GSTREAMER=y
+endif
+ENABLE_CURL=y
+ENABLE_WEBDAV=y
+ifeq "$(ENABLE_WEBDAV)" "y"
+  ENABLE_CURL=y
+endif
+ifeq "$(ENABLE_CURL)" "y"
+SYSTEM_STUFF += curl
+endif
+SYSTEM_STUFF += redland
+PACKAGE_SDK=y
+ifneq ($(filter nodoc,$(DEB_BUILD_PROFILES)),)
+PACKAGE_SDK_DOCS=n
+else
+PACKAGE_SDK_DOCS=y
+endif
+PACKAGE_LOKIT=y
+# will not work, uses schema/ stripped in the tarballs
+ifeq "$(USE_SOURCE_TARBALLS)" "y"
+ENABLE_EXPORT_VALIDATION_TESTS=n
+endif
+#JUNIT_MIN_VER=
+PARALLEL_BUILD=y
+ENABLE_LDAP=y
+SYSTEM_STUFF += openldap
+SYSTEM_STUFF += epoxy
+ifeq "$(ENABLE_JAVA)" "y"
+  ENABLE_REPORTBUILDER=y
+  SYSTEM_STUFF += jfreereport
+  ENABLE_MEDIAWIKI=y
+  ENABLE_SCRIPT_PROVIDER_BSH=y
+  ENABLE_SCRIPT_PROVIDER_JS=y
+  ENABLE_NLPSOLVER=y
+else
+  ENABLE_REPORTBUILDER=n
+  ENABLE_MEDIAWIKI=n
+  ENABLE_SCRIPT_PROVIDER_BSH=n
+  ENABLE_SCRIPT_PROVIDER_JS=n
+  ENABLE_NLPSOLVER=n
+endif
+ENABLE_SDBC_POSTGRESQL=y
+ifeq "$(ENABLE_GUI)" "y"
+BUILD_GTK3=y
+  # introspection needs GTK3
+  ifeq "$(BUILD_GTK3)" "y"
+    ifeq ($(filter nogir,$(DEB_BUILD_PROFILES)),)
+      ENABLE_INTROSPECTION=y
+    endif
+  endif
+endif
+BUILD_GTK4=y
+ENABLE_EVO2=y
+ENABLE_GIO=y
+ENABLE_DCONF=y
+ENABLE_RANDR=y
+PACKAGE_BASE=y
+SYSTEM_STUFF += graphite
+SYSTEM_STUFF += harfbuzz
+SYSTEM_STUFF += libexttextcat
+SYSTEM_STUFF += cppunit
+SYSTEM_STUFF += dragonbox
+SYSTEM_STUFF += libfixmath
+DEFAULT_IMAGE=colibre
+IMAGES:=$(DEFAULT_IMAGE) colibre_dark colibre_svg colibre_dark_svg sifr sifr_svg sifr_dark sifr_dark_svg breeze breeze_dark breeze_dark_svg breeze_svg elementary elementary_svg karasa_jaga karasa_jaga_svg sukapura sukapura_svg sukapura_dark sukapura_dark_svg
+CONFIGURE_FLAGS_INDEP += --with-theme="$(IMAGES)"
+ENABLE_MARIADB=y
+ifeq "$(ENABLE_MARIADB)" "y"
+# FIXME: the mysql test doesn't get really tested since it is only ran/built
+# with CONNECTIVITY_TEST_MYSQL_DRIVER set - and doesn't build on 32bit... The
+# test is run in autopkgtest on OOO_CHECK_FATAL_ARCHS (aka 64bit archs!) only for
+# now anyway so let's just hack around here for now and disable the build of it
+# alltogether when not used and just set CONNECTIVITY_TEST_MYSQL_DRIVER on those
+# OOO_CHECK_FATAL_ARCHS
+  ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),$(OOO_CHECK_FATAL_ARCHS)))
+export CONNECTIVITY_TEST_MYSQL_DRIVER=dummy
+  endif
+endif
+  MYSQL_FLAVOUR=mariadb
+# set this also to y for system-mysql..
+SYSTEM_STUFF += mariadb
+SYSTEM_STUFF += postgresql
+DICT_DIR=/usr/share/hunspell
+HYPH_DIR=/usr/share/hyphen
+THES_DIR=/usr/share/mythes
+ENABLE_LIBCMIS=y
+ifeq "$(ENABLE_LIBCMIS)" "y"
+SYSTEM_STUFF += libcmis
+endif
+SYSTEM_STUFF += jpeg
+SYSTEM_STUFF += libxml
+SYSTEM_STUFF += expat
+SYSTEM_STUFF += odbc
+SYSTEM_STUFF += sane
+ENABLE_PDFIMPORT=y
+ENABLE_POPPLER=y
+SYSTEM_STUFF += poppler
+ENABLE_PDFIUM=y
+PACKAGE_GEN=y
+ifeq "$(PACKAGE_GEN)" "y"
+  # keep packaging gen (s390x is a release arch...), just disable skia. In contrast for
+  # alpha and ia64 (ports-only) where skia also is disabled we set PACKAGE_GEN=n later in
+  # the architecture specific settings
+  ifneq (big,$(DEB_HOST_ARCH_ENDIAN))
+  ENABLE_SKIA=y
+  endif
+else
+  ENABLE_SKIA=n
+endif
+SYSTEM_STUFF += libpng
+ENABLE_NSS=y
+ifeq "$(ENABLE_NSS)" "y"
+SYSTEM_STUFF += nss
+endif
+ENABLE_HELP=y
+ifeq "$(ENABLE_HELP)" "y"
+  ENABLE_HTML_HELP=y
+  ENABLE_XMLHELP=y
+  ifeq "$(ENABLE_HTML_HELP)" "y"
+  HELP_DEPENDS := libreoffice-help-common (= $${binary:Version}),
+  HELP_RECOMMENDS := firefox-esr | epiphany-browser | konqueror | chromium | firefox
+  HELP_COMMON_DEPENDS := node-normalize.css
+  BUILD_DEPS_INDEP += , node-normalize.css
+  HELP_COMMON_DEPENDS += , node-prismjs
+  BUILD_DEPS_INDEP += , node-prismjs
+  else
+  HELP_DEPENDS := libreoffice-writer
+  DEBHELPER_OPTIONS += -Nlibreoffice-help-common
+  endif
+  ifeq "$(ENABLE_XMLHELP)" "y"
+    SYSTEM_STUFF += clucene
+  endif
+endif
+SYSTEM_STUFF += lcms2
+SYSTEM_STUFF += liblangtag
+SYSTEM_STUFF += orcus
+# kfreebsd runs into SIZE_MAX problems, and the rest might
+# get OOM (mips(el)...) so enable mergelibs only for 64bit
+# archs
+ifeq (,$(filter kfreebsd,$(DEB_HOST_ARCH)))
+  ifeq "$(DEB_HOST_ARCH_BITS)" "64"
+       ENABLE_MERGELIBS=y
+  endif
+endif
+ifeq "$(ENABLE_MERGELIBS)" "y"
+  ENABLE_LTO=y
+else
+  ENABLE_LTO=n
+endif
+USE_OPENCL=y
+ENABLE_FIREBIRD=y
+ifeq "$(ENABLE_FIREBIRD)" "y"
+  SYSTEM_STUFF += firebird
+  ifeq (,$(filter firebird, $(SYSTEM_STUFF)))
+  SYSTEM_STUFF += libatomic-ops
+  SYSTEM_STUFF += libtommath
+  endif
+endif
+ENABLE_EOT=y
+ifeq "$(ENABLE_EOT)" "y"
+SYSTEM_STUFF += libeot
+endif
+SYSTEM_STUFF += glm
+BUILD_PPC64EL=y
+BUILD_ARM64=y
+SYSTEM_STUFF += gpgmepp
+INSTALL_APPARMOR_PROFILES=y
+ENABLE_APPARMOR_PROFILES=y
+ifneq "$(AUTOPKGTEST_BUILD)" "y"
+  CHECK_APPARMOR_PROFILES=true
+endif
+SYSTEM_STUFF += libnumbertext
+SYSTEM_STUFF += box2d
+SYSTEM_STUFF += libwebp
+SYSTEM_STUFF += libtiff
+SYSTEM_STUFF += frozen
+SYSTEM_STUFF += argon2
+
+# override stuff for indep builds to save build dependencies
+ifeq ($(MAKECMDGOALS),binary-indep)
+ENABLE_EVOAB=n
+BUILD_GTK3=n
+ENABLE_INTROSPECTION=n
+ENABLE_GIO=n
+BUILD_GTK4=n
+ENABLE_QT5=n
+ENABLE_QT6=n
+# libgpgmepp-dev depends on Qt, too, see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863149
+ENABLE_GPGMEPP=n
+ENABLE_KF5=n
+ENABLE_KF6=n
+BUILD_PLASMA=n
+ENABLE_MARIADB=n
+ENABLE_FIREBIRD=n
+ENABLE_SDBC_POSTGRESQL=n
+ENABLE_SKIA=n
+ENABLE_COINMP=n
+ENABLE_LPSOLVE=n
+USE_GSTREAMER=n
+ENABLE_LDAP=n
+ENABLE_PDFIUM=n
+USE_DBUS=n
+ENABLE_AVAHI=n
+endif
+
+# Default flags to pass to configure
+CONFIGURE_FLAGS+= \
+               --with-vendor='$(OOO_VENDOR)' \
+               --with-extra-buildid='$(DEB_VENDOR) package version: $(BINARY_VERSION)' \
+                --prefix=/usr --mandir=/usr/share/man \
+                --docdir=/usr/share/doc/libreoffice \
+               --libdir=/usr/lib \
+               --bindir=/usr/bin \
+               --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) \
+               --disable-online-update \
+               --disable-fetch-external \
+               --without-fonts \
+               --without-myspell-dicts \
+               --with-branding=$(CURDIR)/debian/branding \
+               --without-coredumpctl
+
+# don't rebuild the font anywhere, we just really need it in indep builds.
+# please put https://dev-www.libreoffice.org/extern/f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf
+# into $(SOURCE_TREE)/tarballs if you don't rebuild the font.
+BUILD_DEPS_INDEP += , fontforge-nox | fontforge <!pkg.libreoffice.noopensymbolbuild>
+ifeq ($(filter pkg.libreoffice.noopensymbolbuild,$(DEB_BUILD_PROFILES)),)
+ENABLE_OPENSYMBOL_BUILD=y
+endif
+
+# we get a fonts-opensymbol build-dep -b builds (_ARCH also affects -b), too anyway but it's still lesser
+# dependencies than fontforge-nox | fontforge...
+# But this can get a problem for bootstrapping if we ever needed a newer fonts-opensymbol for
+# tests to pass...
+# Allow building it nevertheless if wanted
+BUILD_DEPS_ARCH += , fonts-opensymbol <!pkg.libreoffice.opensymbolbuild>
+ifneq ($(MAKECMDGOALS),build-arch)
+ifneq ($(filter pkg.libreoffice.opensymbolbuild,$(DEB_BUILD_PROFILES)),)
+ENABLE_OPENSYMBOL_BUILD=y
+endif
+ifeq "$(ENABLE_OPENSYMBOL_BUILD)" "y"
+CONFIGURE_FLAGS_INDEP += --enable-build-opensymbol 
+endif
+endif
+
+ifeq "$(ENABLE_GUI)" "y"
+BUILD_DEPS += ,\
+    libcups2-dev,\
+    libgl-dev,\
+    libice-dev,\
+    libsm-dev,\
+    libx11-dev,\
+    libx11-xcb-dev, \
+    libxaw7-dev,\
+    libxext-dev,\
+    libxinerama-dev,\
+    libxkbfile-dev,\
+    libxrender-dev,\
+    libxt-dev,\
+    libxtst-dev,\
+    x11proto-render-dev
+endif
+
+ifeq "$(ENABLE_HELP)" "y"
+CONFIGURE_FLAGS_INDEP+= --with-help
+  ifeq "$(ENABLE_HTML_HELP)" "y"
+       CONFIGURE_FLAGS_INDEP+= --with-help=html
+  endif
+  ifneq "$(ENABLE_XMLHELP)" "y"
+       CONFIGURE_FLAGS += --disable-xmlhelp
+  endif
+else
+       CONFIGURE_FLAGS += --without-helppack-integration --without-help
+endif
+
+
+ifeq "$(shell echo $(DEB_VERSION_UPSTREAM) | grep -E '(alpha|beta)'; echo $$?)" "1"
+CONFIGURE_FLAGS += --enable-release-build
+RELEASE_BUILD := y
+endif
+
+ifeq "$(DEB_DISTRIBUTION)" "UNRELEASED"
+BUGS=mailto:debian-openoffice@lists.debian.org
+endif
+
+ifneq (terse,$(findstring terse,$(DEB_BUILD_OPTIONS)))
+export verbose=t
+endif
+
+#############
+# Architecture-specific changes
+
+# helper to generate no_archs macros (pass name of source macro)
+define gen_no_archs
+  _no_arch_macro = $(subst OOO_,OOO_NO_,$1)
+  _no_arch_tmp_$1 = $$(foreach _a,$$(filter-out $$(call $1),$(OOO_ARCHS)),!$$(_a))
+  $$(_no_arch_macro) = $$(if $$(_no_arch_tmp_$1),$$(_empty) [$$(_no_arch_tmp_$1)])
+endef
+
+PLATFORMID := $(shell grep PLATFORMID debian/vars.$(DEB_HOST_ARCH) | cut -d"=" -f2)
+RTL_OS := $(shell grep RTL_OS debian/vars.$(DEB_HOST_ARCH) | cut -d"=" -f2)
+RTL_ARCH := $(shell grep RTL_ARCH debian/vars.$(DEB_HOST_ARCH) | cut -d"=" -f2)
+
+OOO_64BIT_ARCHS = $(filter alpha amd64 arm64 ia64 kfreebsd-amd64 loong64 mips64 mips64el ppc64 ppc64el riscv64 s390x sparc64, $(OOO_ARCHS))
+$(eval $(call gen_no_archs,OOO_64BIT_ARCHS))
+OOO_32BIT_ARCHS = $(filter-out $(OOO_64BIT_ARCHS),$(OOO_ARCHS))
+$(eval $(call gen_no_archs,OOO_32BIT_ARCHS))
+OOO_BE_ARCHS = $(filter hppa m68k mips mips64 powerpc powerpcspe ppc64 s390 s390x sparc sparc64,$(OOO_ARCHS))
+$(eval $(call gen_no_archs,OOO_BE_ARCHS))
+OOO_LE_ARCHS = $(filter-out $(OOO_BE_ARCHS),$(OOO_ARCHS))
+$(eval $(call gen_no_archs,OOO_LE_ARCHS))
+# s390x: bigendian, so no skia at all
+# ppc64el: see https://git.launchpad.net/~libreoffice/ubuntu/+source/libreoffice/patch/?id=be47aa72aad414537d27f0a18af7d067f1398666 and
+#          https://github.com/llvm/llvm-project/issues/63214
+OOO_CLANG_ARCHS := $(filter-out alpha ia64 ppc64el mipsel mips64el,$(OOO_LE_ARCHS))
+$(eval $(call gen_no_archs,OOO_CLANG_ARCHS))
+
+# supported upstream (upstream does aarch64 flatpak builds)
+OOO_CHECK_ARCHS := amd64 arm64
+$(eval $(call gen_no_archs,OOO_CHECK_ARCHS))
+OOO_JUNIT_ARCHS := amd64 arm64
+$(eval $(call gen_no_archs,OOO_JUNIT_ARCHS))
+
+OOO_CHECK_FATAL_ARCHS := amd64 arm64
+
+# original idea was without armhf, but since --disable-cve-tests for 32bit archs (see below)
+# this now also passes. and the autopkgtests also pass (also the junit ones).
+# So let's include armhf in the above
+OOO_CHECK_ARCHS += armhf
+#OOO_JUNIT_ARCHS += armhf
+OOO_CHECK_FATAL_ARCHS += armhf
+
+# if bridgetest and smoketest fail this is surely not working in a way
+# we would want in the archive
+OOO_SMOKETEST_FATAL_ARCHS := $(OOO_ARCHS)
+
+# archs where the archive/ci runs autopkgtests
+OOO_AUTOPKGTEST_ARCHS := $(OOO_CHECK_ARCHS) armel i386 ppc64el s390x riscv64
+
+ifeq (alpha,$(findstring $(DEB_HOST_ARCH),$(OOO_ARCHS)))
+PACKAGE_GEN=n
+endif
+ifeq (ia64,$(findstring $(DEB_HOST_ARCH),$(OOO_ARCHS)))
+PACKAGE_GEN=n
+endif
+
+BUILD_TESTS=y
+ifeq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
+  BUILD_TESTS=n
+endif
+
+ifeq "$(DEB_HOST_ARCH_BITS)" "32"
+       # consistently crash in vcl_filters_test when
+       # Testing load file:///<<PKGBUILDDIR>>//vcl/qa/cppunit/graphicfilter/data/tiff/fail/CVE-2017-9936-1.tiff:
+       # CVE-2017-9936 is a memory leak and even a expected failure.
+       # And we are not supposed to test for others' packages CVEs anyway, especially since this is fixed in libtiff
+       # in 4.0.8-3(see https://security-tracker.debian.org/tracker/CVE-2017-9936) so ages ago
+       CONFIGURE_FLAGS += --disable-cve-tests
+endif
+
+RUN_MAKE_CHECK=n
+ifneq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
+  ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),$(OOO_CHECK_ARCHS)))
+        RUN_MAKE_CHECK=y
+  endif
+  ifeq "$(RUN_MAKE_CHECK)" "y"
+    ifeq "$(ENABLE_JAVA)" "y"
+      ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),$(OOO_JUNIT_ARCHS)))
+        ENABLE_JUNIT4=y
+      endif
+    endif
+    # run the atspi tests
+    ifeq "$(BUILD_GTK3)" "y"
+      ENABLE_ATSPI_TESTS=y
+    endif
+  endif
+  IGNORE_MAKE_FAILURES=-
+  TEST_TIMEOUT := timeout --foreground --preserve-status -v -k 250m 200m
+  ifeq "$(RUN_MAKE_CHECK)" "y"
+    ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),$(OOO_CHECK_FATAL_ARCHS)))
+       IGNORE_MAKE_FAILURES:=
+       TEST_TIMEOUT:=
+    endif
+  else
+    ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),$(OOO_SMOKETEST_FATAL_ARCHS)))
+       IGNORE_MAKE_FAILURES:=
+       TEST_TIMEOUT:=
+    endif
+  endif
+endif
+ifeq "$(RUN_MAKE_CHECK)" "y"
+  BUILD_TESTS=y
+else
+  BUILD_TESTS=n
+endif
+
+# Java...
+# upstream says --source=1.8 / --target=1.8 so 1.8 is fine in runtime
+JAVA_RUNTIME_BASELINE=8
+JAVA_BRIDGE_BROKEN_ARCHS:=ppc64el s390x armhf
+ifeq "$(JDK)" "default"
+OOO_JAVA_ARCHS = $(filter-out $(JAVA_BRIDGE_BROKEN_ARCHS),$(filter $(OOO_ARCHS),$(java$(JAVA_RUNTIME_BASELINE)_architectures)))
+else
+OOO_JAVA_ARCHS = $(OOO_ARCHS)
+endif
+$(eval $(call gen_no_archs,OOO_JAVA_ARCHS))
+
+OOO_ARCH_DEP_EXTENSIONS_ARCHS := $(OOO_ARCHS)
+OOO_EXTENSIONS_ARCHS := $(OOO_ARCH_DEP_EXTENSIONS_ARCHS)
+
+OOO_BASE_ARCHS := $(OOO_ARCHS)
+$(eval $(call gen_no_archs,OOO_BASE_ARCHS))
+OOO_REPORTBUILDER_ARCHS := $(OOO_JAVA_ARCHS)
+$(eval $(call gen_no_archs,OOO_REPORTBUILDER_ARCHS))
+OOO_FIREBIRD_ARCHS := $(filter-out m68k,$(OOO_BASE_ARCHS))
+$(eval $(call gen_no_archs,OOO_FIREBIRD_ARCHS))
+OOO_NOGUI_ARCHS := $(filter amd64 i386 arm64 armhf s390x ppc64 ppc64el,$(OOO_ARCHS))
+$(eval $(call gen_no_archs,OOO_NOGUI_ARCHS))
+OOO_PDFIUM_ARCHS := $(OOO_ARCHS)
+$(eval $(call gen_no_archs,OOO_PDFIUM_ARCHS))
+
+ifneq (,$(filter $(DEB_HOST_ARCH),$(OOO_NO_BASE_ARCHS)))
+  ifneq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),$(OOO_BASE_ARCHS)))
+       PACKAGE_BASE=n
+       ENABLE_SDBC_POSTGRESQL=n
+       ENABLE_EVO2=n
+       ENABLE_REPORTBUILDER=n
+       DEBHELPER_OPTIONS += -Nlibreoffice-base libreoffice-base-core -Nlibreoffice-base-drivers
+       DEBHELPER_OPTIONS += -Nlibreoffice-evolution
+       DEBHELPER_OPTIONS += -Nlibreoffice-sdbc-postgresql -Nlibreoffice-sdbc-mysql
+       DEBHELPER_OPTIONS += -Nlibreoffice-sdbc-hsqldb -Nlibreoffice-sdbc-firebird
+       DEBHELPER_OPTIONS += -Nlibreoffice-report-builder-bin -Nlibreoffice-report-builder
+       DEBHELPER_OPTIONS += -Npython3-access2base
+#      CONFIGURE_FLAGS += --disable-database-connectivity
+  endif
+endif
+
+ifeq (,$(filter $(DEB_HOST_ARCH),$(OOO_EXTENSIONS_ARCHS)))
+       ENABLE_MEDIAWIKI=n
+       ENABLE_NLPSOLVER=n
+       DEBHELPER_OPTIONS += -Nlibreoffice-wiki-publisher -Nlibreoffice-nlpsolver
+       CONFIGURE_FLAGS += --disable-extension-integration --disable-extensions
+endif
+
+ifeq (,$(filter $(DEB_HOST_ARCH),$(OOO_JAVA_ARCHS)))
+       ENABLE_JAVA=n
+       ENABLE_REPORTBUILDER=n
+       ENABLE_MEDIAWIKI=n
+       ENABLE_NLPSOLVER=n
+endif
+
+ifneq "$(BUILD_TEST_PACKAGES)" "y"
+       DEBHELPER_OPTIONS += -Nlibreoffice-subsequentcheckbase -Nlibreoffice-smoketest-data
+else
+       BUILD_DEPS_INDEP += , junit4 $(JUNIT_MIN_VER) <!nojava>
+endif
+
+ifeq "$(ENABLE_GUI)" "y"
+  ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),$(OOO_NOGUI_ARCHS)))
+    BUILD_NOGUI_PACKAGES=y
+  endif
+else
+CONFIGURE_FLAGS += --disable-gui
+DEBHELPER_OPTIONS += -Nlibreoffice-core -Nlibreoffice-calc -Nlibreoffice-writer -Nlibreoffice-draw -Nlibreoffice-report-builder-bin -Nlibreoffice-base -Nlibreoffice-impress -Nlibreoffice-math
+endif
+ifneq "$(BUILD_NOGUI_PACKAGES)" "y"
+DEBHELPER_OPTIONS += -Nlibreoffice-core-nogui -Nlibreoffice-calc-nogui -Nlibreoffice-writer-nogui -Nlibreoffice-draw-nogui -Nlibreoffice-report-builder-bin-nogui -Nlibreoffice-base-nogui -Nlibreoffice-impress-nogui -Nlibreoffice-math-nogui
+endif
+
+ifeq "$(AUTOPKGTEST_BUILD)" "y"
+# as above (for binary-indep), no need to do two builds here...
+# needs to be here since there is arch-specific rules before
+BUILD_NOGUI_PACKAGES=n
+# go sure
+BUILD_TESTS=y
+BUILD_TEST_PACKAGES=y
+ENABLE_JUNIT4=y
+endif
+
+#############
+# Distro-specific overrides
+
+# Debian Bookworm
+ifeq "$(DEB_DISTRIBUTION)" "bookworm-backports"
+  BUGS=mailto:debian-backports@lists.debian.org
+  SYSTEM_STUFF := $(filter-out frozen mdds orcus libcmis,$(SYSTEM_STUFF))
+  BOOKWORM_BACKPORT=y
+  ENABLE_KF6=n
+endif
+
+ifeq "$(BOOKWORM_BACKPORT)" "y"
+  ifneq (,$(shell grep t64 debian/control))
+$(error Revert t64 rename 6f794ba67d113395d7662c2ebf5f67b37eddff09 for bookworm-backports!)
+  endif
+else
+  BUILD_DEPS += , dpkg-dev (>= 1.22.5) [$(filter-out i386,$(OOO_32BIT_ARCHS))]
+endif
+
+CONFIGURE_FLAGS += $(foreach i, $(SYSTEM_STUFF),--with-system-$(i))
+
+CC_PREFIX:=$(shell gcc -dumpmachine)-
+
+# generally use clang
+USE_CLANG=n
+# allow clang for skia?
+ALLOW_CLANG=y
+
+CLANG_VERSION=default
+
+ifneq "$(shell echo $(USE_CLANG)$(ALLOW_CLANG) | grep y)" ""
+  # /usr/bin/ld: /usr/lib/llvm-11/bin/../lib/LLVMgold.so: error loading plugin: /usr/lib/llvm-11/bin/../lib/LLVMgold.so: cannot open shared object file: No such file or directory
+  # for mips64el and riscv64 that doesn't exist so disable LTO there...
+  ifeq "$(ENABLE_LTO)" "y"
+    ifeq "$(DEB_HOST_ARCH)" "mips64el"
+       ENABLE_LTO=n
+    endif
+    # we apparently also need --disable-split-debug (see below) since according to configure.ac both are
+    # "Inherently incompatible, since no debug info is created while compiling, GCC complains."
+    # so make it explicit
+    ifeq "$(DEB_HOST_ARCH)" "riscv64"
+       ENABLE_LTO=n
+    endif
+    # probably...
+    ifeq "$(DEB_HOST_ARCH)" "loong64"
+       ENABLE_LTO=n
+    endif
+       # since the llvm-defaults packages pointing to llvm 13(?) it apparently doesn't
+       # automatically pull in llvm-xx-linker-tools anymore which contains the needed LLVMgold.so
+       # (see above).
+       # So build-depend on llvm, too.
+       # We shouldn't depend on llvm-xx-linker-tools since this probably should be
+       # version-agnostic when the default changes (unless explicitely specified of course).
+    ifeq "$(USE_CLANG)" "y"
+      ifeq "$(CLANG_VERSION)" "default"
+       BUILD_DEPS += , llvm
+      else
+       BUILD_DEPS += , llvm-$(CLANG_VERSION)-linker-tools
+      endif
+    else
+      ifeq "$(ALLOW_CLANG)" "y"
+        ifeq "$(CLANG_VERSION)" "default"
+         BUILD_DEPS_ARCH += , llvm$(OOO_NO_CLANG_ARCHS)
+        else
+         BUILD_DEPS_ARCH += , llvm-$(CLANG_VERSION)-linker-tools$(OOO_NO_CLANG_ARCHS)
+        endif
+      endif
+    endif
+  endif
+endif
+ifeq "$(USE_DWZ)" "y"
+  # dwz errors out with
+  # dwz: debian/libreoffice-core/usr/lib/libreoffice/program/libskialo.so: Unknown debugging section .debug_addr
+  # since clang 14
+  ifeq "$(USE_CLANG)" "y"
+       USE_DWZ := n
+  endif
+  ifeq "$(ENABLE_SKIA)" "y"
+    ifneq "$(shell echo $(ALLOW_CLANG) | grep y)" ""
+      ifeq "$(shell dpkg --compare-versions $(SYSTEM_CLANG_VERSION) ge 14 && echo true)" "true"
+       DH_DWZ_ARGS += -Xskia
+      endif
+    endif
+  endif
+endif
+
+ifeq "$(USE_CLANG)" "y"
+  ENABLE_COMPILER_PLUGINS=n
+endif
+
+ifneq "$(USE_CLANG)" "y"
+  ifneq "$(GCC_VERSION)" ""
+  ifneq "$(SYSTEM_GCC_VERSION)" "$(GCC_VERSION)"
+    BUILD_DEPS += , gcc-$(GCC_VERSION), g++-$(GCC_VERSION)
+    CONFIGURE_FLAGS+= \
+      CC=$(CC_PREFIX)gcc-$(GCC_VERSION) \
+      CXX=$(CC_PREFIX)g++-$(GCC_VERSION)
+    endif
+  else
+       BUILD_DEPS += , gcc (>= 4:12), g++ (>= 4:12)
+  endif
+  # Use -O0 for gcc 10 on armhf to avoid build/test failure with gcc 10
+  # https://bugs.launchpad.net/ubuntu/+bug/1891623
+  # In Debian this never appeared to be an actual build failure but
+  # this also helps for the test timeout on armv8 machines/buildds.
+  # (armv7 "works"). So make it conditional on whether we run checks.
+  # With g++-10 there also appear SIGSEGVs in/with openjdk-11 and it
+  # hangs at RunMacros, which also tries to use Java "Macros".
+  # A --without-java build passes.
+ifeq "$(DEB_HOST_ARCH)" "armhf"
+  ifeq ($(ENABLE_JAVA),y)
+    ifneq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
+      ifneq (noopt,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+       DEB_BUILD_OPTIONS += noopt
+      endif
+    endif
+  endif
+endif
+  # and also on s390x since it otherwise gets miscompiled.
+  # Upstream tracked it down to a gcc bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106355
+  # but
+  # 16:37 <@sberg> _rene_, I couldn't reproduce the issue with an -O0 (--enable-dbgutil) build, and can with a -O2 (no --enable-debug etc.) one
+ifeq "$(DEB_HOST_ARCH)" "s390x"
+  ifneq (noopt,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+       DEB_BUILD_OPTIONS += noopt
+  endif
+endif
+# bridgetest fails when built with gcc 13, works with 12
+ifneq "$(BOOKWORM_BACKPORT)" "y"
+  BUILD_DEPS += , gcc-12 [i386], g++-12 [i386]
+endif
+ifeq "$(DEB_HOST_ARCH)" "i386"
+  ifneq "$(BOOKWORM_BACKPORT)" "y"
+    CONFIGURE_FLAGS+= \
+      CC=$(CC_PREFIX)gcc-12 \
+      CXX=$(CC_PREFIX)g++-12
+  endif
+endif
+ifeq "$(DEB_HOST_ARCH)" "riscv64"
+  # see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1039906#26 (fixed)
+  # and it seems it the payloadNaN test actually passes with -O2 where it's
+  # unclear whether it actually is on hardware supporting it. Let's keep at
+  # -O0 for now and be sure it fails before shipping something broken
+  ifneq (noopt,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+       DEB_BUILD_OPTIONS += noopt
+  endif
+  # see https://lists.debian.org/debian-riscv/2024/01/msg00018.html
+  CONFIGURE_FLAGS += --disable-split-debug
+endif
+  # skia build picks up clang if present (for performance reasons,
+  # at least on Windows...). See the thread starting at
+  # https://lists.freedesktop.org/archives/libreoffice/2020-April/084929.html
+  # Make it a explicit build-dependency so we don't have builds
+  # "randomly" using gcc or clang depending on whether clang is installed
+  # or not
+  ifeq "$(ENABLE_SKIA)" "y"
+    ifeq "$(ALLOW_CLANG)" "y"
+      ifeq (ccache,$(findstring ccache,$(DEB_BUILD_OPTIONS)))
+        export CCACHE_CPP2=1
+      endif
+      ifeq "$(CLANG_VERSION)" "default"
+       export LO_CLANG_CC=clang
+       export LO_CLANG_CXX=clang++
+       BUILD_DEPS_ARCH += , clang$(OOO_NO_CLANG_ARCHS)
+      else
+       export LO_CLANG_CC=clang-$(CLANG_VERSION)
+       export LO_CLANG_CXX=clang++-$(CLANG_VERSION)
+       BUILD_DEPS_ARCH += , clang-$(CLANG_VERSION) [$(OOO_LE_ARCHS)]
+      endif
+    endif
+  endif
+else
+  ifeq "$(CLANG_VERSION)" "default"
+       BUILD_DEPS += , clang
+       CONFIGURE_FLAGS+= CC=clang CXX=clang++
+  else
+       BUILD_DEPS += , clang-$(CLANG_VERSION)
+       CONFIGURE_FLAGS+= CC=clang-$(CLANG_VERSION) CXX=clang++-$(CLANG_VERSION)
+  endif
+  ifeq "$(ENABLE_COMPILER_PLUGINS)" "y"
+       CONFIGURE_FLAGS += --enable-compiler-plugins
+       CLANGDIR := /usr/lib/llvm-$(shell $(CLANG) --version | head -n 1 | awk '{ print $$3 }' | cut -d. -f1)
+    ifeq "$(CLANG_VERSION)" "default"
+       BUILD_DEPS += , clang (>= 1:12.0.1), libclang-dev (>= 1:12.0.1), llvm-dev (>= 1:12.0.1)
+    else
+       BUILD_DEPS += , libclang-$(CLANG_VERSION)-dev, llvm-$(CLANG_VERSION)-dev
+    endif
+  endif
+endif
+USE_GOLD=n
+ALLOW_GOLD=n
+# leaves cruft around after building because it runs update_pch.sh..
+ENABLE_PCH=n
+
+ifeq "$(PACKAGE_SDK)" "y"
+       CONFIGURE_FLAGS += --enable-odk
+  ifeq "$(PACKAGE_SDK_DOCS)" "y"
+       BUILD_DEPS_INDEP += , doxygen <!nodoc>, graphviz <!nodoc>
+  else
+       CONFIGURE_FLAGS += --without-doxygen --without-javadoc
+  endif
+endif
+
+ifeq "$(ENABLE_PDFIMPORT)" "y"
+  ifeq "$(ENABLE_POPPLER)" "y"
+       BUILD_DEPS += , libpoppler-dev, libpoppler-private-dev, libpoppler-cpp-dev
+    ifeq "$(RUN_MAKE_CHECK)" "y"
+       BUILD_DEPS_ARCH += , poppler-data$(OOO_NO_CHECK_ARCHS) <!nocheck>
+    endif
+  else
+       CONFIGURE_FLAGS += --disable-poppler
+  endif
+  ifeq "$(ENABLE_PDFIUM)" "n"
+       CONFIGURE_FLAGS += --disable-pdfium
+  else
+       SYSTEM_STUFF += abseil
+       SYSTEM_STUFF += openjpeg
+    ifneq (,$(filter openjpeg, $(SYSTEM_STUFF)))
+       BUILD_DEPS_ARCH += , libopenjp2-7-dev [$(OOO_PDFIUM_ARCHS)]
+    endif
+    ifneq (,$(filter abseil, $(SYSTEM_STUFF)))
+       BUILD_DEPS_ARCH += , libabsl-dev [$(OOO_PDFIUM_ARCHS)]
+    endif
+  endif
+endif
+
+ifneq (,$(filter graphite, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libgraphite2-dev
+endif
+
+ifneq (,$(filter harfbuzz, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libharfbuzz-dev (>= 5.1.0)
+endif
+
+ifneq (,$(filter libexttextcat, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libexttextcat-dev
+       TEXTCAT_DATA_RECOMMENDS := libexttextcat-data
+endif
+
+ifneq "$(ENABLE_LDAP)" "y"
+       CONFIGURE_FLAGS += --disable-ldap
+endif
+
+ifneq (,$(filter libnumbertext, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libnumbertext-dev
+    ifeq "$(RUN_MAKE_CHECK)" "y"
+       # https://cgit.freedesktop.org/libreoffice/core/commit/?h=libreoffice-7-3&id=09dfe214a30f58ddcd7a857db8f5eee68d4cef2a
+       BUILD_DEPS_ARCH += , libnumbertext-data (>= 1.0.11) <!nocheck>
+    endif
+       NUMBERTEXT_DATA_RECOMMENDS := libnumbertext-data
+endif
+
+ifneq (,$(filter jpeg, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libjpeg-dev
+endif
+ifneq (,$(filter libxml, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libxml2-dev, libxml2-utils
+       BUILD_DEPS += , libxslt1-dev
+else
+       CONFIGURE_FLAGS += --without-system-libxml
+endif
+ifneq (,$(filter xmlsec, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libxmlsec1-dev (>= 1.2.35)
+  ifneq ($(BOOKWORM_BACKPORT),y)
+    ifneq (,$(filter $(OOO_CHECK_ARCHS),$(filter-out i386,$(OOO_32BIT_ARCHS))))
+       BUILD_DEPS_ARCH += , libxmlsec1-dev (>= 1.2.39-5) [$(filter $(OOO_CHECK_ARCHS),$(filter-out i386,$(OOO_32BIT_ARCHS)))] <!nocheck>
+    endif
+  endif
+endif
+ifneq (,$(filter expat, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libexpat1-dev
+endif
+ifneq (,$(filter odbc, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , unixodbc-dev
+endif
+ifneq (,$(filter sane, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libsane-dev
+endif
+ifneq (,$(filter libpng, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libpng-dev
+endif
+
+# otherwise librdf0-dev (which we also need)  is uninstallable... 
+ifeq ($(BOOKWORM_BACKPORT),y)
+CURL_SECTYPE=gnutls
+else
+# ... from trixie onwards it seems it has an alternative which allows openssl
+CURL_SECTYPE=openssl
+endif
+ifeq "$(ENABLE_CURL)" "y"
+  ifneq (,$(filter curl, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libcurl4-$(CURL_SECTYPE)-dev
+  endif
+else
+       CONFIGURE_FLAGS += --disable-curl
+endif
+
+ifneq (,$(filter box2d, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libbox2d-dev
+endif
+
+ifneq (,$(filter libwebp, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libwebp-dev
+endif
+
+ifneq (,$(filter libtiff, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libtiff-dev
+endif
+
+ifneq ($(ENABLE_COINMP),y)
+       CONFIGURE_FLAGS += --disable-coinmp
+else
+  ifneq (,$(filter coinmp, $(SYSTEM_STUFF)))
+       BUILD_DEPS_ARCH += , coinor-libcoinmp-dev $(COINMP_MINVER), coinor-libcoinutils-dev $(COINUTILS_MINVER)
+  endif
+endif
+
+ifneq (,$(filter amd64,$(DEB_HOST_ARCH)))
+  ifneq "$(AUTOPKGTEST_BUILD)" "y"
+       SMALL_SYMBOLS = n
+  endif
+endif
+
+# silence long-obsolete warnings. Should probably be in
+# upstreams makefiles but I failed to get it actually appear...
+ifeq "$(DEB_HOST_ARCH)" "armel"
+       DEB_CXXFLAGS_MAINT_APPEND = -Wno-psabi
+endif
+ifeq "$(DEB_HOST_ARCH)" "armhf"
+       DEB_CXXFLAGS_MAINT_APPEND = -Wno-psabi
+endif
+
+# see https://lists.freedesktop.org/archives/libreoffice/2023-September/090877.html
+ifneq (,$(filter ppc64el s390x,$(DEB_HOST_ARCH)))
+       DEB_CFLAGS_MAINT_APPEND = -ffp-contract=off
+       DEB_CXXFLAGS_MAINT_APPEND = -ffp-contract=off
+endif
+
+ifneq (,$(filter s390x,$(DEB_HOST_ARCH)))
+  ifeq (,$(shell gcc -v 2>&1 | grep disable-s390-excess-float-precision))
+       DEB_CFLAGS_MAINT_APPEND = -fexcess-precision=fast
+       # the gcc manpage says
+       # "-fexcess-precision=standard is not implemented for languages other than C"
+       # but it works with this and fails without, so probably has some effect after all
+       DEB_CXXFLAGS_MAINT_APPEND = -fexcess-precision=fast
+  endif
+endif
+
+ifeq "$(ENABLE_SYMBOLS)" "y"
+  # Small symbols?
+  ifeq "$(SMALL_SYMBOLS)" "y"
+       CONFIGURE_FLAGS += --enable-symbols=SMALL
+       DEB_CFLAGS_MAINT_STRIP += -g
+       DEB_CXXFLAGS_MAINT_STRIP += -g
+       DEB_CFLAGS_MAINT_PREPEND += -g1
+       DEB_CXXFLAGS_MAINT_PREPEND += -g1
+export DEB_CFLAGS_MAINT_STRIP DEB_CXXFLAGS_MAINT_STRIP
+export DEB_CFLAGS_MAINT_PREPEND DEB_CXXFLAGS_MAINT_PREPEND
+  else
+       CONFIGURE_FLAGS += --enable-symbols
+  endif
+else
+       DEB_CFLAGS_MAINT_STRIP := -g
+       DEB_CXXFLAGS_MAINT_STRIP := -g
+export DEB_CFLAGS_MAINT_STRIP DEB_CXXFLAGS_MAINT_STRIP
+endif
+export DPKG_EXPORT_BUILDFLAGS=y
+include /usr/share/dpkg/buildflags.mk
+ifeq (debug,$(findstring debug,$(DEB_BUILD_OPTIONS)))
+       CONFIGURE_FLAGS += --enable-debug
+endif
+ifeq (noopt,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+       CONFIGURE_FLAGS += --disable-optimized
+endif
+
+ifeq "$(ENABLE_PYTHON)" "y"
+PYMAJOR:=$(shell $(PYTHON) -c "import sys; print (sys.version_info[0])")
+PYMINOR:=$(shell $(PYTHON) -c "import sys; print (sys.version_info[1])")
+PYMINORPLUS1:=$(shell $(PYTHON) -c "import sys; print (sys.version_info[1]+1)")
+PYTHON_SITE:=$(shell $(PYTHON) -c 'from distutils import sysconfig; print(sysconfig.get_python_lib())')
+endif
+
+       BUILD_DEPS += , $(PYTHON)
+ifeq "$(ENABLE_PYTHON)" "y"
+       BUILD_DEPS += , $(PYTHON)-dev <!nopython>
+       BUILD_DEPS += , $(PYTHON)-setuptools <!nopython>
+       BUILD_DEPS += , dh-python <!nopython>
+  ifeq "$(RUN_MAKE_CHECK)" "y"
+    ifneq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
+       BUILD_DEPS_ARCH += , $(PYTHON)-lxml$(OOO_NO_CHECK_ARCHS) <!nocheck !nopython>
+    else
+       CONFIGURE_FLAGS += --without-lxml
+    endif
+  endif
+endif
+
+       BUILD_DEPS += , debhelper-compat (= 12)
+
+  ifeq "$(RUN_MAKE_CHECK)" "y"
+       BUILD_DEPS_ARCH += , locales$(OOO_NO_CHECK_ARCHS) <!nocheck>
+       BUILD_DEPS_ARCH += , gdb$(OOO_NO_CHECK_ARCHS) <!nocheck>
+       BUILD_DEPS_ARCH += , fontconfig [$(OOO_AUTOPKGTEST_ARCHS)] <!nocheck>
+ifeq ($(BOOKWORM_BACKPORT),y)
+       BUILD_DEPS_ARCH += , fonts-liberation2 [$(OOO_AUTOPKGTEST_ARCHS)] <!nocheck>
+else
+       BUILD_DEPS_ARCH += , fonts-liberation (>= 1:2) [$(OOO_AUTOPKGTEST_ARCHS)] <!nocheck>
+endif
+    ifneq "$(BOOKWORM_BACKPORT)" "y"
+       BUILD_DEPS_ARCH += , fonts-crosextra-carlito (>= 20230309) [$(OOO_AUTOPKGTEST_ARCHS)] <!nocheck>
+    else
+       BUILD_DEPS_ARCH += , fonts-crosextra-carlito (<< 20230309) [$(OOO_AUTOPKGTEST_ARCHS)] <!nocheck>
+    endif
+       # porrst.cxx:85:Assertion
+       #Test name: (anonymous namespace)::testFloattableAnchorHeight::TestBody
+       #equality assertion failed
+       #- Expected: 1
+       #- Actual  : 2
+       BUILD_DEPS_ARCH += , fonts-crosextra-caladea [$(OOO_AUTOPKGTEST_ARCHS)] <!nocheck>
+       # https://lists.freedesktop.org/archives/libreoffice/2017-May/077764.html
+       BUILD_DEPS_ARCH += , fonts-dejavu [$(OOO_AUTOPKGTEST_ARCHS)] <!nocheck>
+       # used in vcl/qa/cppunit/text.cxx:void VclTextTest::testImplLayoutArgs_PrepareFallback_precalculatedglyphs()
+       BUILD_DEPS_ARCH += , fonts-hosny-amiri [$(OOO_AUTOPKGTEST_ARCHS)] <!nocheck>
+       # sdext/source/pdfimport/test/tests.cxx (the test PDF uses NaskhArabic) and the result of the import is
+       # checked which fails without the font. Also used in /vcl/qa/cppunit/complextext.cxx (VclComplexTextTest::testCaching())
+       BUILD_DEPS_ARCH += , fonts-noto-core [$(OOO_AUTOPKGTEST_ARCHS)] <!nocheck>
+       # FIXME: Linux Libertine G (does fonts-linuxlibertine even contain it?, I don't see the _G files?)
+       # now is used in test documents.
+       # now we get a abort if fonts is not found and replaced in layout tests (even though
+       # https://cgit.freedesktop.org/libreoffice/core/commit/?id=172270a8f04388a8f8062f672f9c3f3144a01a1f suggests that
+       # it isn't the case in --without-fonts) but... And while we disable that abort via patch having this
+       # to be sure there is no other failure mode makes sense (as with the other fonts above)
+       BUILD_DEPS_ARCH += , fonts-linuxlibertine [$(OOO_AUTOPKGTEST_ARCHS)] <!nocheck>
+       # 17:35 <@sberg_> vmiklos, oh, what kind of poor test is that? "warn:sal.osl:3785:2:sal/osl/unx/process.cxx:344: ChildStatusProc : starting 'pstoedit' failed" etc. is what I see in workdir/CppunitTest/filter_eps_test.test.log...
+       BUILD_DEPS_ARCH += , pstoedit$(OOO_NO_CHECK_ARCHS) <!nocheck>
+       BUILD_DEPS_ARCH += , imagemagick$(OOO_NO_CHECK_ARCHS) <!nocheck>
+       BUILD_DEPS_ARCH += , ghostscript$(OOO_NO_CHECK_ARCHS) <!nocheck>
+
+       BUILD_DEPS_ARCH += , hunspell-en-us$(OOO_NO_CHECK_ARCHS) <!nocheck>
+       BUILD_DEPS_ARCH += , hyphen-en-us$(OOO_NO_CHECK_ARCHS) <!nocheck>
+       # for test_tdf159102_smart_justify_with_automatic_hyphenation.
+       # The test itself claims the test must not depend on the installed hyphenation patterns
+       # but installing this (which is suggested by writer as missing even after
+       # opening the .fodt) fixes it
+       BUILD_DEPS_ARCH += , hyphen-es$(OOO_NO_CHECK_ARCHS) <!nocheck>
+  endif
+  # we don't run any cppunit check in all builds
+  ifneq "$(AUTOPKGTEST_BUILD)" "y"
+    ifneq (,$(filter cppunit, $(SYSTEM_STUFF)))
+       BUILD_DEPS_ARCH += , libcppunit-dev <!nocheck>
+      # without the deterministic order patch the xmlsecurity_signing test fails. See
+      # https://cgit.freedesktop.org/libreoffice/core/commit/external/cppunit/order.patch.0?id=2f2246d22e2a8ccbc1dc3e6f5243734a61edf270
+      ifeq "$(ENABLE_LTO)" "y"
+        BUILD_DEPS_ARCH += , libcppunit-dev (>= 1.15.1-4) [$(filter $(OOO_CHECK_ARCHS),$(OOO_ARCHS))] <!nocheck>
+      endif
+    endif
+    ifeq ($(MAKECMDGOALS),binary-indep)
+       CONFIGURE_FLAGS_INDEP += --without-cppunit
+    endif
+  endif
+  ifeq "$(ENABLE_JUNIT4)" "y"
+       BUILD_DEPS += , junit4 $(JUNIT_MIN_VER) [$(OOO_JUNIT_ARCHS)] <!nocheck !nojava>
+  else
+       CONFIGURE_FLAGS += --without-junit
+  endif
+  ifeq "$(ENABLE_EXPORT_VALIDATION_TESTS)" "y"
+       BUILD_DEPS += , libofficeotron-java$(OOO_NO_CHECK_ARCHS) <!nocheck !nojava>, libodfvalidator-java$(OOO_NO_CHECK_ARCHS) <!nocheck !nojava>
+  else
+       CONFIGURE_FLAGS += --without-export-validation
+  endif
+ifneq "$(BUILD_ONLY_EN_US)" "y"
+  ifeq (lang=,$(findstring lang=,$(DEB_BUILD_OPTIONS)))
+       ISOS=$(shell echo "$(DEB_BUILD_OPTIONS) " | sed -n 's/^.*lang=\([^\s].*\)\s.*/\1/p' | awk '{ print $$1 }' | sed -e 's/,/ /g')
+    ifeq "$(ENABLE_HELP)" "n"
+       HELPISOS=
+    else
+       HELPISOS=$(shell echo "$(DEB_BUILD_OPTIONS) " | sed -n 's/^.*lang=\([^\s].*\)\s.*/\1/p' | awk '{ print $$1 }' | sed -e 's/,/ /g')
+    endif
+       LANGPACKISOS=$(shell echo "$(DEB_BUILD_OPTIONS) " | sed -n 's/^.*lang=\([^\s].*\)\s.*/\1/p' | awk '{ print $$1 }' | sed -e 's/,/ /g')
+  else
+       # Note that the first one here *has to be* en-US. the first one gets
+       # gid_Module_Root as filelist later and the rest gid_Module_Root.$iso
+       # but we can't/shouldn't do dynamic switching, so let en-US be the first
+       # one to that gid_Module_Root always is english and the other langpacks
+       # have gid_Module_Root.$iso
+       #ISOS=$(shell $(SOURCE_TREE)/bin/lo-xlate-lang -i all')
+       ISOS:=en-US af am ar as ast be bg bn bn-IN br bs ca ca-valencia cs cy da de dz el \
+         en-GB en-ZA eo es et eu fa fi fr ga gd gl gu gug he hi hr hu hy id is it ja \
+         ka kk km kmr-Latn kn ko lt lv mk mn ml mr nb ne nl nn nr nso oc om or \
+         pa-IN pl pt pt-BR ro ru rw si sk sl sr sr-Latn ss st sv szl \
+         ta te tg th tn tr ts ug uk uz ve vi xh zh-CN zh-TW zu
+    ifeq "$(ENABLE_HELP)" "n"
+       HELPISOS:=
+    else
+       #HELPISOS:=$(shell $(SOURCE_TREE)/bin/lo-xlate-lang -i all')
+       HELPISOS:=en-US ca ca-valencia cs da de dz el en-GB es et eu fi fr gl hi hu id it \
+         ja km ko nl om pl pt pt-BR ru sk sl sv tr vi zh-CN zh-TW
+    endif
+       #LANGPACKISOS:=$(shell $(SOURCE_TREE)/bin/lo-xlate-lang -i all')
+       LANGPACKISOS:=en-US af am ar as ast be bg bn bn-IN br bs ca ca-valencia cs cy da de dz el \
+         en-GB en-ZA eo es et eu fa fi fr ga gd gl gu gug he hi hr hu hy id is it ja \
+         ka kk km kmr-Latn kn ko lt lv mk mn ml mr nb ne nl nn nr nso oc om or \
+         pa-IN pl pt pt-BR ro ru rw si sk sl sr sr-Latn ss st sv szl \
+         ta te tg th tn tr ts ug uk uz ve vi xh zh-CN zh-TW zu
+  endif
+else
+       ISOS=en-US
+    ifeq "$(ENABLE_HELP)" "n"
+       HELPISOS=
+    else
+       HELPISOS=en-US
+    endif
+       LANGPACKISOS=en-US
+endif
+BUILD_ISOS = $(ISOS)
+
+ifneq "$(BUILD_ONLY_EN_US)" "y"
+  ifneq "$(BUILD_ISOS)" "en-US"
+       CONFIGURE_FLAGS_LANG += --with-lang="$(BUILD_ISOS)"
+       CONFIGURE_FLAGS_INDEP += $(CONFIGURE_FLAGS_LANG)
+       BUILD_DEPS_INDEP += , gettext
+  endif
+endif
+
+ifeq "$(ENABLE_JAVA)" "y"
+  ifeq ($(BOOKWORM_BACKPORT),y)
+       BUILD_DEPS += , java-common <!nojava>
+  else
+       BUILD_DEPS += , java-common (>= 0.75) <!nojava>
+  endif
+  BUILD_DEPS += , maven-repo-helper$(OOO_NO_JAVA_ARCHS) <!nojava>
+  ifeq "$(JDK)" "default"
+       JAVA_HOME=/usr/lib/jvm/default-java
+       DEFAULT_JDK := $(call java_dependency, default-jdk)
+       # build-depend on 1.9 (upstream needs it anyway for module-info support)
+       BUILD_DEPS += , $(shell echo $(DEFAULT_JDK) | sed -e 's/default-jdk/default-jdk (>= 2:1.9)/' | sed -e 's/\]/$(foreach i,$(JAVA_BRIDGE_BROKEN_ARCHS), !$(i))\]/') <!nojava>
+  endif
+  ifeq "$(JDK)" "openjdk"
+       BUILD_DEPS += , openjdk-$(JAVA_MAINVER)-jdk <!nojava>
+       JAVA_HOME=/usr/lib/jvm/java-$(JAVA_MAINVER)-openjdk-$(DEB_HOST_ARCH)
+  endif
+        TEST_JAVA_HOME=$(JAVA_HOME)
+  ifeq "$(ENABLE_MEDIAWIKI)" "y"
+       BUILD_DEPS_INDEP += , ant$(OOO_NO_JAVA_ARCHS) <!nojava>, ant-optional$(OOO_NO_JAVA_ARCHS) <!nojava>
+  else
+    # report-builder is done in build-arch already
+    ifneq (,$(filter jfreereport, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , ant$(OOO_NO_JAVA_ARCHS) <!nojava>
+    else
+       BUILD_DEPS_INDEP += , ant$(OOO_NO_JAVA_ARCHS) <!nojava>
+    endif
+  endif
+       JAVA_RUNTIME_DEPENDS = default-jre (>= 2:1.$(JAVA_RUNTIME_BASELINE))
+       JAVA_RUNTIME_DEPENDS += | java-runtime (>= $(JAVA_RUNTIME_BASELINE)) | java$(JAVA_RUNTIME_BASELINE)-runtime
+       # Suns Java "packages"
+       JAVA_RUNTIME_DEPENDS += | jre
+export JAVA_HOME
+       CONFIGURE_FLAGS += --with-jdk-home=$(JAVA_HOME)
+       JAVA_COMMON_DEPENDS= , libreoffice-java-common
+       JAVA_COMMON_DEPENDS_VERSION:= (>= $(BASE_VERSION)~)
+  ifeq "$(ENABLE_MEDIAWIKI)" "y"
+       CONFIGURE_FLAGS_INDEP += --enable-ext-wiki-publisher
+  endif
+  ifeq "$(ENABLE_REPORTBUILDER)" "y"
+       # report-builder
+    ifneq (,$(filter jfreereport, $(SYSTEM_STUFF)))
+       REPORT_BUILDER_BUILD_DEPS += , libbase-java$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava>, libsac-java$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava>, libxml-java$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava>, libflute-java$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava>, libpentaho-reporting-flow-engine-java$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava>, liblayout-java$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava>, libloader-java$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava>, libformula-java$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava>, librepository-java$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava>, libfonts-java$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava>, libserializer-java$(OOO_NO_REPORTBUILDER_ARCHS) <!nojava>
+       REPORT_BUILDER_JAR_DEPENDS := , libbase-java, libsac-java, libxml-java, libflute-java, libpentaho-reporting-flow-engine-java, liblayout-java, libloader-java, libformula-java, librepository-java, libfonts-java, libserializer-java
+       CONFIGURE_FLAGS += --with-libbase-jar=/usr/share/java/libbase.jar --with-libxml-jar=/usr/share/java/libxml.jar --with-flute-jar=/usr/share/java/flute.jar --with-jfreereport-jar=/usr/share/java/flow-engine.jar --with-liblayout-jar=/usr/share/java/liblayout.jar --with-libloader-jar=/usr/share/java/libloader.jar --with-libformula-jar=/usr/share/java/libformula.jar --with-librepository-jar=/usr/share/java/librepository.jar --with-libfonts-jar=/usr/share/java/libfonts.jar --with-libserializer-jar=/usr/share/java/libserializer.jar
+    endif
+       BUILD_DEPS += $(REPORT_BUILDER_BUILD_DEPS)
+  else
+       CONFIGURE_FLAGS += --disable-report-builder
+  endif
+  ifeq "$(ENABLE_NLPSOLVER)" "y"
+       CONFIGURE_FLAGS_INDEP += --enable-ext-nlpsolver
+  endif
+       OOO_OFFICEBEAN_DEP = libofficebean-java
+       BUILD_DEPS += , javahelper $(JAVAHELPER_MIN_VERSION)$(OOO_NO_JAVA_ARCHS) <!nojava>
+else
+       CONFIGURE_FLAGS += --without-java
+       DEBHELPER_OPTIONS += -Nlibofficebean-java -Nlibreoffice-java-common -Nlibreoffice-script-provider-bsh -Nlibreoffice-script-provider-js -Nlibreoffice-subsequentcheckbase -Nlibunoloader-java -Nliblibreoffice-java -Nlibreoffice-sdbc-hsqldb -Nure-java
+endif
+
+ifeq "$(ENABLE_JAVA)" "y"
+       ifeq "$(shell $(JAVA_HOME)/bin/java -version 2>&1 | grep -q Zero && echo true)" "true"
+               RUN_MAKE_CHECK:=n
+               ENABLE_JUNIT4=n
+       endif
+endif
+
+ifeq "$(ENABLE_NSS)" "y"
+  ifneq (,$(filter nss, $(SYSTEM_STUFF)))
+       BUILD_DEPS+= , libnss3-dev
+       BUILD_DEPS+= , libnspr4-dev
+  else
+       CONFIGURE_FLAGS += --without-system-nss
+  endif
+else
+       CONFIGURE_FLAGS += --disable-nss
+endif
+
+ifneq (,$(filter hunspell, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libhunspell-dev
+endif
+       CONFIGURE_FLAGS += --with-external-dict-dir=$(DICT_DIR)
+
+ifneq (,$(filter altlinuxhyph, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libhyphen-dev
+endif
+       CONFIGURE_FLAGS += --with-external-hyph-dir=$(HYPH_DIR)
+
+ifneq (,$(filter boost, $(SYSTEM_STUFF)))
+  ifneq "$(BOOST_VERSION)" "default"
+       BUILD_DEPS += , libboost$(BOOST_VERSION)-dev $(BOOST_MINVER), libboost-date-time$(BOOST_VERSION)-dev $(BOOST_MINVER), libboost-iostreams$(BOOST_VERSION)-dev, libboost-filesystem$(BOOST_VERSION)-dev, libboost-locale$(BOOST_VERSION)-dev
+       #BUILD_DEPS += , libboost-thread$(BOOST_VERSION)-dev, libboost-program-options$(BOOST_VERSION)-dev
+    ifeq (,$(filter orcus, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libboost-system$(BOOST_VERSION)-dev $(BOOST_MINVER), libboost-iostreams$(BOOST_VERSION)-dev $(BOOST_MINVER), libboost-program-options$(BOOST_VERSION)-dev $(BOOST_MINVER), libboost-filesystem$(BOOST_VERSION)-dev $(BOOST_MINVER)
+    endif
+  else
+       BUILD_DEPS += , libboost-dev $(BOOST_MINVER), libboost-date-time-dev $(BOOST_MINVER), libboost-iostreams-dev $(BOOST_MINVER), libboost-filesystem-dev $(BOOST_MINVER), libboost-locale-dev $(BOOST_MINVER)
+       #BUILD_DEPS += , libboost-thread-dev, libboost-program-options-dev
+    ifeq (,$(filter orcus, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libboost-system-dev $(BOOST_MINVER), libboost-iostreams-dev $(BOOST_MINVER), libboost-program-options-dev $(BOOST_MINVER), libboost-filesystem-dev $(BOOST_MINVER)
+    endif
+  endif
+  ifeq "$(shell if [ -e /usr/lib/$(DEB_HOST_MULTIARCH)/libboost_date_time.so ]; then echo true; fi)" "true"
+       CONFIGURE_FLAGS += --with-boost-libdir=/usr/lib/$(DEB_HOST_MULTIARCH)
+  endif
+  ifneq (,$(filter dragonbox, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libdragonbox-dev
+  endif
+  ifneq (,$(filter libfixmath, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libfixmath-dev
+  endif
+endif
+
+ifneq "$(ENABLE_SKIA)" "y"
+       CONFIGURE_FLAGS += --disable-skia
+endif
+
+ifneq (,$(filter mdds, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libmdds-dev (>= 2.1), libmdds-dev (<< 2.2~)
+endif
+
+ifneq (,$(filter orcus, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , liborcus-dev (>= 0.19.1), liborcus-dev (<< 0.20~)
+  ifneq ($(BOOKWORM_BACKPORT),y)
+    ifneq (,$(filter $(OOO_CHECK_ARCHS),$(filter-out i386,$(OOO_32BIT_ARCHS))))
+       BUILD_DEPS_ARCH += , liborcus-dev (>> 0.19.2-3+b1) [$(filter $(OOO_CHECK_ARCHS),$(filter-out i386,$(OOO_32BIT_ARCHS)))] <!nocheck>
+    endif
+  endif
+endif
+
+ifeq "$(ENABLE_XMLHELP)" "y"
+  ifneq (,$(filter clucene, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libclucene-dev
+  endif
+endif
+
+ifeq "$(USE_EXTERNAL_CXXLIBS)" "y"
+  ifneq (,$(filter librevenge, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , librevenge-dev, librevenge-dev (<< 0.1~)
+  endif
+  ifneq (,$(filter libwpd, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libwpd-dev (>= 0.10), libwpd-dev (<< 0.11~)
+  endif
+  ifneq (,$(filter mythes, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libmythes-dev
+  endif
+  ifneq (,$(filter libwps, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libwps-dev (>= 0.4), libwps-dev (<< 0.5~)
+  endif
+  ifneq (,$(filter libwpg, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libwpg-dev (>= 0.3), libwpg-dev (<< 0.4~)
+  endif
+  ifneq (,$(filter libvisio, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libvisio-dev (>= 0.1), libvisio-dev (<< 0.2~)
+  endif
+  ifneq (,$(filter libcdr, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libcdr-dev (>= 0.1), libcdr-dev (<< 0.2~)
+  endif
+  ifneq (,$(filter libmspub, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libmspub-dev (>= 0.1), libmspub-dev (<< 0.2~)
+  endif
+  ifneq (,$(filter libmwaw, $(SYSTEM_STUFF)))
+#      BUILD_DEPS += , libmwaw-dev (>= 0.3.1), libmwaw-dev (<< 0.4~)
+# configure.ac checks for >= 0.3.21
+       BUILD_DEPS += , libmwaw-dev (>= 0.3.21), libmwaw-dev (<< 0.4~)
+#    ifeq "$(RUN_MAKE_CHECK)" "y"
+#      BUILD_DEPS_ARCH += , libmwaw-dev (>= 0.3.21)$(OOO_NO_CHECK_ARCHS) <!nocheck>
+#    endif
+  endif
+  ifneq (,$(filter libodfgen, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libodfgen-dev (>= 0.1), libodfgen-dev (<< 0.2~)
+  endif
+  ifneq (,$(filter libepubgen, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libepubgen-dev (>= 0.1.0), libepubgen-dev (<< 0.2~)
+  endif
+  ifneq (,$(filter libetonyek, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libetonyek-dev, libetonyek-dev (<< 0.2~)
+  endif
+  ifneq (,$(filter libfreehand, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libfreehand-dev (>= 0.1), libfreehand-dev (<< 0.2~)
+  endif
+  ifneq (,$(filter libabw, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libabw-dev (>= 0.1), libabw-dev (<< 0.2~)
+  endif
+  ifneq (,$(filter libpagemaker, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libpagemaker-dev, libpagemaker-dev (<< 0.1~)
+  endif
+  ifneq (,$(filter libzmf, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libzmf-dev, libzmf-dev (<< 0.1~)
+  endif
+  ifneq (,$(filter libstaroffice, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libstaroffice-dev, libstaroffice-dev (<< 0.1~)
+  endif
+  ifneq (,$(filter libqxp, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libqxp-dev, libqxp-dev (<< 0.1~)
+  endif
+  ifneq (,$(filter libebook, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libe-book-dev (>= 0.1), libe-book-dev (<< 0.2~)
+  endif
+  ifeq "$(ENABLE_LIBCMIS)" "y"
+    ifneq (,$(filter libcmis, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libcmis-dev (>= 0.6.1~), libcmis-dev (<< 0.7~)
+    endif
+  else
+       CONFIGURE_FLAGS += --disable-libcmis
+  endif
+  ifeq "$(ENABLE_ZXING)" "y"
+    ifneq (,$(filter zxing, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libzxing-dev
+    endif
+  else
+       CONFIGURE_FLAGS += --disable-zxing
+  endif
+endif
+       CONFIGURE_FLAGS += --with-external-thes-dir=$(THES_DIR)
+       
+ifneq (,$(filter zxcvbn, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libzxcvbn-dev
+endif
+
+ifeq "$(INSTALL_APPARMOR_PROFILES)" "y"
+  BUILD_DEPS_INDEP += , dh-apparmor
+  ifeq "$(CHECK_APPARMOR_PROFILES)" "true"
+    BUILD_DEPS_INDEP += , apparmor <!nocheck>
+  endif
+endif
+
+ifeq "$(ENABLE_EOT)" "y"
+ CONFIGURE_FLAGS += --enable-eot
+ ifneq (,$(filter libeot, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libeot-dev
+ endif
+endif
+
+ifneq (,$(filter lcms2, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , liblcms2-dev
+endif
+
+ifneq (,$(filter openldap, $(SYSTEM_STUFF)))
+       BUILD_DEPS_ARCH += , libldap-dev
+endif
+
+ifneq (,$(filter liblangtag, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , liblangtag-dev
+endif
+
+ifneq (,$(filter icu, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libicu-dev
+endif
+
+
+ifeq "$(BUILD_CAIROCANVAS)" "y"
+  ifneq (,$(filter cairo, $(SYSTEM_STUFF)))
+       BUILD_DEPS+= , libcairo2-dev
+  endif
+else
+       CONFIGURE_FLAGS+= --disable-cairo
+endif
+
+ifeq "$(ENABLE_KF5)" "y"
+       CONFIGURE_FLAGS += --enable-kf5
+       BUILD_DEPS_ARCH += , libkf5coreaddons-dev, libkf5i18n-dev, libkf5config-dev, libkf5windowsystem-dev, libkf5kio-dev
+endif
+ifeq "$(ENABLE_KF6)" "y"
+       CONFIGURE_FLAGS += --enable-kf6
+       BUILD_DEPS_ARCH += , libkf6coreaddons-dev, libkf6i18n-dev, libkf6config-dev, libkf6windowsystem-dev, libkf6kio-dev
+endif
+       PLASMA_ICONSET_DEP=libreoffice-style-breeze
+ifeq "$(ENABLE_QT5)" "y"
+       CONFIGURE_FLAGS += --enable-qt5
+       BUILD_DEPS_ARCH += , qtbase5-dev $(QT5_MINVER), qt5-qmake $(QT5_MINVER), qtbase5-dev-tools $(QT5_MINVER)
+       BUILD_DEPS_ARCH += , libqt5x11extras5-dev $(QT5_MINVER)
+       BUILD_DEPS_ARCH += , libglib2.0-dev
+       BUILD_DEPS_ARCH += , libxcb1-dev
+endif
+ifeq "$(ENABLE_QT6)" "y"
+       CONFIGURE_FLAGS += --enable-qt6
+       BUILD_DEPS_ARCH += , qt6-base-dev $(QT6_MINVER), qmake6 $(QT6_MINVER), qt6-base-dev-tools $(QT6_MINVER)
+       BUILD_DEPS_ARCH += , libxcb1-dev
+endif
+
+ifeq "$(ENABLE_MARIADB)" "y"
+  ifeq "$(MYSQL_FLAVOUR)" "default"
+       BUILD_DEPS_ARCH += , default-libmysqlclient-dev
+  else
+    ifeq "$(MYSQL_FLAVOUR)" "mysql"
+        ifneq (,$(filter mariadb, $(SYSTEM_STUFF)))
+        BUILD_DEPS_ARCH += , libmysqlclient-dev
+        endif
+      MARIADBCONFIG=/usr/bin/mysql_config
+    endif
+    ifeq "$(MYSQL_FLAVOUR)" "mariadb"
+      ifneq (,$(filter mariadb, $(SYSTEM_STUFF)))
+       BUILD_DEPS_ARCH += , libmariadb-dev
+      endif
+    MARIADBCONFIG=/usr/bin/mariadb_config
+    endif
+  endif
+else
+  CONFIGURE_FLAGS += --disable-mariadb-sdbc
+  DEBHELPER_OPTIONS += -Nlibreoffice-sdbc-mysql
+endif
+
+ifeq "$(ENABLE_FIREBIRD)" "y"
+       BASE_FIREBIRD_RECOMMENDS = libreoffice-sdbc-firebird [$(OOO_FIREBIRD_ARCHS)]
+  ifneq (,$(filter libatomic-ops, $(SYSTEM_STUFF)))
+       BUILD_DEPS_ARCH += , libatomic-ops-dev$(OOO_NO_FIREBIRD_ARCHS)
+  endif
+  ifneq (,$(filter libtommath, $(SYSTEM_STUFF)))
+       BUILD_DEPS_ARCH += , libtommath-dev$(OOO_NO_FIREBIRD_ARCHS)
+  endif
+  ifneq (,$(filter firebird, $(SYSTEM_STUFF)))
+       BUILD_DEPS_ARCH += , firebird-dev$(OOO_NO_FIREBIRD_ARCHS)
+       # we need libEngine12.so
+  ifeq "$(RUN_MAKE_CHECK)" "y"
+       BUILD_DEPS_ARCH += , firebird3.0-server-core $(OOO_NO_FIREBIRD_ARCHS) <!nocheck>
+  endif
+       FIREBIRD_ENGINE_DEPENDS += firebird3.0-server-core
+  endif
+else
+       CONFIGURE_FLAGS += --disable-firebird-sdbc
+       DEBHELPER_OPTIONS += -Nlibreoffice-sdbc-firebird
+endif
+
+ifeq "$(BUILD_GTK3)" "y"
+       BUILD_DEPS_ARCH += , libgtk-3-dev, libglib2.0-dev
+  ifneq (cairo,$(findstring cairo,$(SYSTEM_STUFF)))
+  $(error GTK3 build fails without system-cairo!!)
+  endif
+  ifeq (,$(filter epoxy, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libegl1-mesa-dev
+  endif
+       GNOME_GTK_RECOMMENDS += libreoffice-gtk3
+  ifeq "$(ENABLE_INTROSPECTION)" "y"
+       BUILD_DEPS_ARCH += , gobject-introspection <!nogir>, libgirepository1.0-dev <!nogir>
+       CONFIGURE_FLAGS += --enable-introspection
+  else
+       DEBHELPER_OPTIONS+= -Ngir1.2-lokdocview-0.1
+  endif
+  ifeq "$(ENABLE_ATSPI_TESTS)" "y"
+       # make sure it is enabled; it is auto-enabled if the below is there, though
+       CONFIGURE_FLAGS_TESTS += --enable-atspi-tests
+       BUILD_DEPS_ARCH += , libatspi2.0-dev$(OOO_NO_CHECK_ARCHS) <!nocheck>, at-spi2-core$(OOO_NO_CHECK_ARCHS) <!nocheck>
+       BUILD_DEPS_ARCH += , xvfb$(OOO_NO_CHECK_ARCHS) <!nocheck>, xauth$(OOO_NO_CHECK_ARCHS) <!nocheck>, dbus-x11$(OOO_NO_CHECK_ARCHS) <!nocheck>
+  else
+       # explicitely disable it if not wanted as t is auto-enabled if the above is there
+       CONFIGURE_FLAGS += --disable-atspi-tests
+  endif
+else
+       CONFIGURE_FLAGS += --disable-gtk3
+endif
+
+ifeq "$(BUILD_GTK4)" "y"
+ifneq "$(BOOKWORM_BACKPORT)" "y"
+       # go sure, needed for e.g. accessibility
+       GTK4_MINVER := (>= 4.10)
+endif
+       BUILD_DEPS_ARCH += , libgtk-4-dev $(GTK4_MINVER), libglib2.0-dev, libcairo2-dev, libatk1.0-dev
+       CONFIGURE_FLAGS += --enable-gtk4
+endif
+
+ifeq "$(ENABLE_EVO2)" "n"
+       CONFIGURE_FLAGS += --disable-evolution2
+       #DEBHELPER_OPTIONS += -Nlibreoffice-evolution
+else
+       CONFIGURE_FLAGS += --enable-evolution2
+       BUILD_DEPS_ARCH += , libebook1.2-dev
+       LIBEBOOK_DEP = $(shell debian/scripts/get_libebook_dep.sh)
+endif
+
+ifeq "$(ENABLE_SDBC_POSTGRESQL)" "y"
+  ifneq (,$(filter postgresql, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libkrb5-dev
+       BUILD_DEPS_ARCH += , libpq-dev
+  else
+       BUILD_DEPS += , libkrb5-dev
+  endif
+else
+       CONFIGURE_FLAGS += --disable-postgresql-sdbc
+       DEBHELPER_OPTIONS += -Nlibreoffice-sdbc-postgresql
+endif
+
+ifeq "$(ENABLE_RANDR)" "y"
+       BUILD_DEPS += , libxrandr-dev
+else
+       CONFIGURE_FLAGS += --disable-randr
+endif
+
+ifneq "$(ENABLE_PYTHON)" "y"
+       DEBHELPER_OPTIONS+= -Npython3-uno -Nlibreoffice-script-provider-python -Npython3-access2base -Npython3-scriptforge
+       CONFIGURE_FLAGS += --disable-python
+else
+       PYUNO_DEPENDS = python3-uno
+  CONFIGURE_FLAGS += --enable-python=system
+endif
+
+ifneq "$(PACKAGE_LIBRELOGO)" "y"
+       DEBHELPER_OPTIONS+= -Nlibreoffice-librelogo
+       CONFIGURE_FLAGS += --disable-librelogo
+endif
+
+ifeq "$(ENABLE_JAVA)" "y"
+  ifneq (,$(filter hsqldb, $(SYSTEM_STUFF)))
+       #HSQLDB_MINVER=
+       HSQLDB_JAR=/usr/share/java/hsqldb1.8.0.jar
+       BUILD_DEPS += , libhsqldb1.8.0-java $(HSQLDB_MINVER)$(OOO_NO_JAVA_ARCHS) <!nojava>, libarchive-zip-perl$(OOO_NO_JAVA_ARCHS) <!nojava>
+       BASE_HSQLDB_DEPENDS = libhsqldb1.8.0-java $(HSQLDB_MINVER)
+       CONFIGURE_FLAGS += --with-hsqldb-jar=$(HSQLDB_JAR)
+  else
+       BUILD_DEPS += , libservlet3.1-java <!nojava>
+  endif
+  ifeq "$(ENABLE_SCRIPT_PROVIDER_BSH)" "y"
+    ifneq (,$(filter beanshell, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libbsh-java <!nojava>
+    endif
+       CONFIGURE_FLAGS += --enable-scripting-beanshell
+  else
+       CONFIGURE_FLAGS += --disable-scripting-beanshell
+       DEBHELPER_OPTIONS += -Nlibreoffice-script-provider-bsh
+  endif
+  ifeq "$(ENABLE_SCRIPT_PROVIDER_JS)" "y"
+       CONFIGURE_FLAGS += --enable-scripting-javascript
+  else
+       CONFIGURE_FLAGS += --disable-scripting-javascript
+       DEBHELPER_OPTIONS += -Nlibreoffice-script-provider-js
+  endif
+endif
+
+ifeq ($(ENABLE_LPSOLVE),y)
+  ifneq (,$(filter lpsolve, $(SYSTEM_STUFF)))
+    ifeq "$(USE_SHARED_LPSOLVE)" "y"
+       BUILD_DEPS_ARCH += , liblpsolve55-dev $(LPSOLVE_MIN_VERSION), lp-solve $(LPSOLVE_MIN_VERSION)
+       LPSOLVE_DEP = lp-solve $(LPSOLVE_MIN_VERSION)
+    else
+       BUILD_DEPS += , liblpsolve55-dev $(LPSOLVE_MIN_VERSION)
+    endif
+       BUILD_DEPS += , libsuitesparse-dev $(SUITESPARSE_MIN_VERSION)
+  endif
+else
+       CONFIGURE_FLAGS += --disable-lpsolve
+endif
+
+ifeq "$(USE_DBUS)" "y"
+       BUILD_DEPS_ARCH += , libdbus-1-dev
+  ifeq "$(ENABLE_BLUETOOTH)" "y"
+       BUILD_DEPS += , libglib2.0-dev
+    ifneq (,$(filter bluez, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libbluetooth-dev [linux-any]
+    endif
+  else
+       CONFIGURE_FLAGS += --disable-sdremote-bluetooth
+  endif
+  ifeq "$(ENABLE_PACKAGEKIT)" "y"
+       CONFIGURE_FLAGS += --enable-packagekit
+  endif
+else
+       CONFIGURE_FLAGS += --disable-dbus
+endif
+
+ifeq "$(ENABLE_AVAHI)" "y"
+       BUILD_DEPS_ARCH += , libavahi-client-dev
+       CONFIGURE_FLAGS += --enable-avahi
+endif
+
+ifeq "$(USE_GSTREAMER)" "y"
+       BUILD_DEPS_ARCH += , libgstreamer1.0-dev
+       CONFIGURE_FLAGS += --enable-gstreamer-1-0
+       BUILD_DEPS_ARCH += , libgstreamer-plugins-base1.0-dev
+       GSTREAMER_PLUGINS_SUGGESTS += , gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, gstreamer1.0-plugins-ugly, gstreamer1.0-plugins-bad, gstreamer1.0-libav
+else
+       CONFIGURE_FLAGS += --disable-gstreamer-1-0
+endif
+
+ifeq "$(ENABLE_WEBDAV)" "y"
+    ifneq (,$(filter curl, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libcurl4-$(CURL_SECTYPE)-dev
+    endif
+    ENABLE_CURL=y
+else
+  CONFIGURE_FLAGS += --with-webdav=no
+endif
+
+ENABLE_SAL_OPENSSL_BACKEND=n
+ifneq "$(ENABLE_SAL_OPENSSL_BACKEND)" "y"
+    ifneq (,$(filter mariadb, $(SYSTEM_STUFF)))
+      ifneq (,$(filter postgresql, $(SYSTEM_STUFF)))
+       CONFIGURE_FLAGS += --disable-openssl
+      endif
+   endif
+else
+       CONFIGURE_FLAGS += --enable-cipher-openssl-backend
+       SYSTEM_STUFF += openssl
+       BUILD_DEPS += , libssl-dev
+endif
+
+SYSTEM_STUFF += lockfile
+ifneq (,$(filter lockfile, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , liblockfile-bin
+endif
+
+ifneq (,$(filter frozen, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libfrozen-dev 
+endif
+
+ifneq (,$(filter argon2, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libargon2-dev 
+endif
+
+ifneq (,$(filter redland, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , librdf0-dev 
+endif
+
+ifeq "$(ENABLE_GUI)" "y"
+  ifneq (,$(filter epoxy, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libepoxy-dev
+  else
+       BUILD_DEPS += , libegl1-mesa-dev
+  endif
+endif
+ifneq (,$(filter glm, $(SYSTEM_STUFF)))
+       BUILD_DEPS += , libglm-dev
+endif
+
+ifeq "$(ENABLE_GPGMEPP)" "y"
+ifneq (,$(filter gpgmepp, $(SYSTEM_STUFF)))
+       BUILD_DEPS_ARCH+= , libgpgmepp-dev, libgpgme-dev, libgpg-error-dev
+endif
+ifeq "$(RUN_MAKE_CHECK)" "y"
+       BUILD_DEPS_ARCH += , gpg$(OOO_NO_CHECK_ARCHS) <!nocheck>
+       BUILD_DEPS_ARCH += , gpgconf$(OOO_NO_CHECK_ARCHS) <!nocheck>
+       BUILD_DEPS_ARCH += , gpg-agent$(OOO_NO_CHECK_ARCHS) <!nocheck>
+endif
+else
+       CONFIGURE_FLAGS += --disable-gpgmepp
+endif
+
+ifeq "$(ENABLE_GIO)" "y"
+  ifneq "$(BUILD_GTK3)" "y"
+       BUILD_DEPS_ARCH += , libglib2.0-dev
+  endif
+else
+       CONFIGURE_FLAGS += --disable-gio
+endif
+
+ifeq "$(ENABLE_DCONF)" "y"
+       BUILD_DEPS += , libdconf-dev (>= 0.40)
+else
+       CONFIGURE_FLAGS += --disable-dconf
+endif
+
+ifeq ($(ENABLE_MERGELIBS),y)
+       CONFIGURE_FLAGS += --enable-mergelibs
+endif
+
+ifeq ($(ENABLE_LTO),y)
+       CONFIGURE_FLAGS += --enable-lto
+       # see https://lists.debian.org/debian-devel-changes/2021/11/msg02548.html
+       BUILD_DEPS += , binutils (>= 2.37-9) [ppc64]
+endif
+
+ifeq ($(BOOKWORM_BACKPORT),y)
+       LIBERATION_FONT_RECOMMENDS += , fonts-liberation
+       LIBERATION2_FONT_RECOMMENDS += , fonts-liberation2
+else
+       LIBERATION_FONT_RECOMMENDS += , fonts-liberation-sans-narrow
+       LIBERATION2_FONT_RECOMMENDS += , fonts-liberation (>= 1:2)
+endif
+LIBERATION_FONTS_RECOMMENDS += $(LIBERATION2_FONT_RECOMMENDS) $(LIBERATION_FONT_RECOMMENDS)
+
+# go sure. if we explicitely disable LTO when it is enabled we don't want it to sneak in
+# (and vice-versa). See https://lists.debian.org/debian-devel/2022/06/msg00092.html
+ifeq ($(ENABLE_LTO),y)
+export DEB_BUILD_MAINT_OPTIONS=optimize=+lto
+# honour parallel=X. We can just remove the auto here (coming from dpkg-buildflags)
+# since upstream already adds -flto=jobserver (honouring PARALLEL already).
+# Replacing -flto=auto doesn't work since clang doesn't understand -flto=X (except thin)
+DEB_CFLAGS_MAINT_STRIP += -flto=auto
+DEB_CXXFLAGS_MAINT_STRIP += -flto=auto
+DEB_LDFLAGS_MAINT_STRIP += -flto=auto
+# save space
+ifeq "$(SMALL_SYMBOLS)" "y"
+DEB_CFLAGS_MAINT_STRIP += -ffat-lto-objects
+DEB_CXXFLAGS_MAINT_STRIP += -ffat-lto-objects
+DEB_LDFLAGS_MAINT_STRIP += -ffat-lto-objects
+endif
+export DEB_CFLAGS_MAINT_STRIP DEB_CXXFLAGS_MAINT_STRIP DEB_LDFLAGS_MAINT_STRIP
+export DEB_CFLAGS_MAINT_APPEND DEB_CXXFLAGS_MAINT_APPEND DEB_LDFLAGS_MAINT_APPEND
+else
+export DEB_BUILD_MAINT_OPTIONS=optimize=-lto 
+endif
+
+ifeq ($(USE_GOLD),y)
+       CONFIGURE_FLAGS += --enable-ld=gold
+else
+  # --enable-ld=gold is default for debug builds if found
+  # FIXME: Should we allow gold here nevertheless? configure
+  # prints the following with --disable-ld:
+  # * WARNING : Linker is not capable of creating gdb index, debugger startup will be slow
+  ifeq (debug,$(findstring debug,$(DEB_BUILD_OPTIONS)))
+    ifneq "$(ALLOW_GOLD)" "y"
+       CONFIGURE_FLAGS += --disable-ld
+    endif
+  endif
+endif
+ifneq (,$(findstring mips,$(DEB_HOST_ARCH)))
+#10:46 < _rene_> can anyone shed a light on /<<PKGBUILDDIR>>/workdir/LinkTarget/Executable/bestreversemap: error while loading shared libraries:
+#                /<<PKGBUILDDIR>>/instdir/program/libuno_sal.so.3: ELF file ABI version invalid? both were built in the same LO build
+#10:47 < _rene_> mips64el, apparently since gcc9 or new(er) binutils?
+#10:47 < _rene_> on an other binary:
+#10:47 < _rene_> file /home/rene/libreoffice-6.3.1~rc2/instdir/program/libunoidllo.so
+#                /home/rene/libreoffice-6.3.1~rc2/instdir/program/libunoidllo.so: ELF 64-bit LSB shared object, MIPS, MIPS64 rel2 version 1 (SYSV),
+#                dynamically linked, BuildID[sha1]=82f15433db9000b9dfee24ed07e2082ffb439dfd, with debug_info, not stripped
+#10:47 < _rene_> (eller, mips64el chroot)
+#[...]
+#13:49 < aurel32> _rene_: the problem is the ABI version, ie those library have Version ABI: 5 instead of 0 for normal binaries
+#13:50 < aurel32> the ABI version 5 will be used for gnu hash support in mips
+#13:51 < aurel32> support has been added to binutils trunk recently, although the default is still sysv hash style
+#13:51 < aurel32> and glibc support is still being reviewed, it might land in 2.31
+#13:51 < aurel32> previous version of libreoffice used -Wl,--hash-style=sysv
+#13:52 < aurel32> now it seems it autodetect that binutils has gnu hash support and it passes -Wl,--hash-style=gnu
+#13:52 < aurel32> but there is no support for the full toolchain yet
+#13:54 < _rene_> so I need to force -Wl,--hash-style=sysv?
+#13:54 < aurel32>   --with-linker-hash-style
+#13:54 < aurel32>                           Use linker with --hash-style=<style> when linking
+#13:54 < aurel32>                           shared objects. Possible values: "sysv", "gnu",
+#13:54 < aurel32>                           "both". The default value is "gnu" if supported on
+#13:55 < aurel32>                           the build system, and "sysv" otherwise.
+#13:55 < aurel32> it looks like that the hash style detection is not perfect
+#13:55 < aurel32> _rene_: that should work indeed
+#13:55 < _rene_> ok, thanks
+#[...]
+#14:01 < _rene_> aurel32: only mips64el affected or also mipsel?
+#14:01 < _rene_> (mipsel is still building, though, so I assume it isn't)
+#14:02 < aurel32> afaiu both should be affected
+#14:03 < _rene_> ok, so I will make it $(findstring mips
+#14:04 < aurel32> on mipsel: checking for --hash-style gcc linker support... sysv
+#14:04 < aurel32> maybe the detection works better, anyway forcing it on both looks safer
+       CONFIGURE_FLAGS += --with-linker-hash-style=sysv
+endif
+
+ifeq "$(ENABLE_PCH)" "y"
+       CONFIGURE_FLAGS += --enable-pch
+endif
+
+# Use compiler cache?  Include ccache in DEB_BUILD_OPTIONS for much faster rebuild times
+# A complete build uses about 9G of compiler cache.
+ifneq (ccache,$(findstring ccache,$(DEB_BUILD_OPTIONS)))
+       CONFIGURE_FLAGS += --disable-ccache
+else
+       CONFIGURE_FLAGS += --enable-ccache=nodepend
+endif
+
+## Build n projects in parallel?
+## DEB_BUILD_OPTIONS=parallel=<n>
+## if not specified LibreOffices configure tries to find it out itself
+include /usr/share/dpkg/buildopts.mk
+NUM_CPUS=$(DEB_BUILD_OPTION_PARALLEL)
+AVAIL_CPUS := $(shell getconf _NPROCESSORS_ONLN 2>/dev/null || echo 1)
+ifeq "$(PARALLEL_BUILD)" "y"
+  # we need to specify it only if it differs, otherwise configure autodetects
+  # it.
+  ifneq "$(NUM_CPUS)" "$(AVAIL_CPUS)"
+       CONFIGURE_FLAGS += --with-parallelism=$(NUM_CPUS)
+  endif
+else
+       CONFIGURE_FLAGS += --without-parallelism
+endif
+
+ifeq ($(GCC_VERSION),snapshot)
+       BUILD_PATH = /usr/lib/gcc-snapshot/bin:$$PATH
+       BUILD_LD_LIBRARY_PATH = /usr/lib/gcc-snapshot/lib:$$LD_LIBRARY_PATH
+       BUILD_DEPS += , gcc-snapshot
+else
+       BUILD_PATH = $(CURDIR)/debian/usr/bin:$$PATH
+endif
+BUILD_PATH := $(CURDIR)/debian/usr/bin:$(BUILD_PATH)
+
+# Because of the stampdir magic, when you actually want to run a rule
+# over, you would have to remove the stamp manually.  Now, just do
+# 'debian/rules <target> <target> ... FORCE=1', and the stamp files
+# that match the given targets will be removed automagically.
+stampdir_targets+=prepare
+stampdir_targets+=build build-arch build-indep maintscripts
+stampdir_targets+=install-common install-arch install-indep langpacks
+stampdir_targets+=binary-arch binary-indep
+ifdef FORCE
+ DUMMY:=$(shell rm -f $(patsubst %,$(STAMP_DIR)/%,$(filter $(stampdir_targets),$(MAKECMDGOALS))))
+endif
+
+# If this is defined, then none of the 'long' commands will be run.  Useful
+# for testing.
+# test_rules=1
+
+# Since the final stages use up a large amount of diskspace, provide targets to
+# remove them without needing a full rebuild
+
+# Clean up the package directories (about 830M)
+clean-debdir:
+       dh_testdir
+       # remove generated symlinks / java wrappers
+       rm -rf debian/usr
+
+       find debian -name "*.links" ! -name "libreoffice-dev-doc.links" \
+               ! -name "libreoffice-java-common.links" \
+               ! -name "liblibreofficekitgtk.links" \
+               ! -name "libreoffice-help-common.links" \
+               ! -name "python3-access2base.links" -exec rm {} \;
+       rm -f debian/libreoffice-l10n-*.ucf
+       if [ -d "$(STAMP_DIR)" ]; then rm -rf "$(STAMP_DIR)"; fi
+       rm -f debian/*.bug-script
+
+       rm -f debian/shlibs.local
+
+       rm -f debian/libreoffice-help-*.lintian-overrides
+       rm -f debian/*.install debian/*.dirs debian/*.changelog
+       rm -f debian/*.postinst debian/*.postrm debian/*.preinst debian/*.prerm debian/*.triggers
+       rm -f debian/pom*.xml
+
+       rm -rf $(CURDIR)/debian/locales
+
+       dh_clean
+
+clean:
+       dh_testroot
+       dh_testdir
+
+       if [ -f config.status ]; then \
+               $(MAKE) distclean; \
+               rm -f config.status; \
+       fi
+       rm -rf instdir-nogui
+       find $(SOURCE_TREE) -name "*.pyc" -exec rm {} \;
+       rm -rf */*.pro.obsolete
+
+       rm -rf $(SOURCE_TREE)/file-lists
+       rm -rf $(SOURCE_TREE)/pyuno-for*
+       rm -f autogen.lastrun
+       rm -f build_error.log
+       rm -f config/config_version.h
+
+ifeq "$(HELPISOS)" ""
+       rm -rf images*
+endif
+
+       rm -f download.list
+
+       # obsolete lock file not cleaned up....
+       rm -f dbaccess/qa/extras/testdocuments/fdo84315.odb.lck
+
+       cd $(SOURCE_TREE)/helpcontent2/help3xsl && \
+               rm -f normalize.css
+       cd $(SOURCE_TREE)/helpcontent2/help3xsl && \
+               rm -f prism.js && \
+               rm -f prism.css
+
+       # remove only if we linked it over. otherwise we remove the one
+       # intentionally added there if so
+       cd $(SOURCE_TREE)/tarballs && \
+               if [ -L f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf ]; then \
+                       rm f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf; \
+               fi
+
+       # Files created in debian directory
+       $(MAKE) -f debian/rules clean-debdir
+
+       #$(MAKE) -f debian/rules control
+
+
+# Generate control files, because we have so many different languages
+# and need to run autopkgtests based on Architectures
+control: debian/control.new debian/tests/control.new
+
+# Based on script by Martin Quinson <Martin.Quinson@tuxfamily.org>
+debian/control.new: $(wildcard debian/control*in) $(SOURCE_TREE)/bin/lo-xlate-lang  debian/rules
+       echo "#" > debian/control.new
+       echo "# NOTE: This file is autogenerated. DO NOT manually edit it! " >> debian/control.new
+       echo "# Edit debian/control*in and rules (whatever applicable), run debian/rules control" >> debian/control.new
+       echo "# and move control.new to control if the difference is sane." >> debian/control.new
+       echo "#" >> debian/control.new
+       chmod 755 $(SOURCE_TREE)/bin/lo-xlate-lang
+       sed -e "s#%$(DEB_VENDOR)=\([^%]*\)%#, \1#g#" \
+           -e "s#%[A-Za-z]*=[^%]*%##g#" \
+           -e "s#%BUILD_DEPS_ARCH%#$(strip $(BUILD_DEPS_ARCH))#g" \
+           -e "s#%BUILD_DEPS_INDEP%#$(strip $(BUILD_DEPS_INDEP))#g" \
+           -e "s#@BUGS@#$(BUGS)#g" \
+           < debian/control.in >> debian/control.new
+
+       for LNUM in $(filter-out en-US,$(LANGPACKISOS)) ; do \
+           LNAME=`$(SOURCE_TREE)/bin/lo-xlate-lang -l $$LNUM | perl -e 'print ucfirst(<STDIN>);'`; \
+           LCODE=`$(SOURCE_TREE)/bin/lo-xlate-lang -i $$LNUM | tr A-Z a-z`; \
+           [ "$$LNUM" = bn-IN ] && continue; \
+           [ "$$LNUM" = ca-valencia ] && continue; \
+           [ "$$LNUM" = sr-Latn ] && continue; \
+           [ "$$LCODE" = kmr-latn ] && LCODE=kmr; \
+           CCODE=`echo $$LCODE | sed 's/-.*//'`; \
+           case "$$LCODE" in \
+               bn) \
+                       FONT_RECOMMENDS=", fonts-beng"; \
+                       ;; \
+               gu) \
+                       FONT_RECOMMENDS=", fonts-gujr"; \
+                       ;; \
+               pa-in) \
+                       FONT_RECOMMENDS=", fonts-guru"; \
+                       ;; \
+               ml) \
+                       FONT_RECOMMENDS=", fonts-mlym"; \
+                       ;; \
+               or) \
+                       FONT_RECOMMENDS=", fonts-orya"; \
+                       ;; \
+               te) \
+                       FONT_RECOMMENDS=", fonts-telu"; \
+                       ;; \
+               ta) \
+                       FONT_RECOMMENDS=", fonts-taml"; \
+                       ;; \
+               hi-in|ne|mr) \
+                       FONT_RECOMMENDS=", fonts-deva"; \
+                       ;; \
+               he) \
+                       FONT_RECOMMENDS=", culmus"; \
+                       ;; \
+               km) \
+                       FONT_RECOMMENDS=", fonts-khmeros"; \
+                       ;; \
+               ar) \
+                       FONT_RECOMMENDS=", fonts-hosny-amiri, fonts-sil-scheherazade, fonts-hosny-thabit"; \
+                       ;; \
+               fa) \
+                       FONT_RECOMMENDS=", fonts-farsiweb"; \
+                       ;; \
+               dz) \
+                       FONT_RECOMMENDS=", fonts-dzongkha"; \
+                       ;; \
+               th) \
+                       FONT_RECOMMENDS=", fonts-thai-tlwg"; \
+                       ;; \
+               *) \
+                       FONT_RECOMMENDS= ;; \
+           esac; \
+           LOCALES_DEPENDS="locales | locales-all"; \
+           sed -e "s|@LNAME@|$$LNAME|g" -e "s|@LCODE@|$$LCODE|g" \
+               -e "s|@CCODE@|$$CCODE|g" \
+               -e "s|@FONT_RECOMMENDS@|$$FONT_RECOMMENDS|g" \
+               -e "s:@LOCALES_DEPENDS@:$$LOCALES_DEPENDS:g" \
+               -e "s|@LDAP_LIB@|$(LDAP_LIB)|g" \
+               >> debian/control.new < debian/control.lang.in; \
+       done
+
+ifneq "$(ENABLE_HELP)" "n"
+       for LNUM in $(HELPISOS) ; do \
+           LNAME=`$(SOURCE_TREE)/bin/lo-xlate-lang -l $$LNUM | perl -e 'print ucfirst(<STDIN>);'`; \
+           LCODE=`$(SOURCE_TREE)/bin/lo-xlate-lang -i $$LNUM | tr A-Z a-z`; \
+           [ "$$LNUM" = ca-valencia ] && continue; \
+           CCODE=`echo $$LCODE | sed 's/-.*//'`; \
+           sed -e "s|@LNAME@|$$LNAME|g" -e "s|@LCODE@|$$LCODE|g" \
+               -e "s|@CCODE@|$$CCODE|g" \
+               >> debian/control.new < debian/control.help.in; \
+       done
+       # en_US is in -common
+       perl -pi -e 's|(Depends: libreoffice-writer \| language-support-translations-en), libreoffice-l10n-en-us|\1|' \
+               debian/control.new
+       perl -pi -e 's|(Depends: libreoffice-writer, libreoffice-l10n-en-us)|\1, fonts-deva|' \
+               debian/control.new
+endif
+       cat debian/control.ure.in >> debian/control.new
+ifeq "$(ENABLE_JAVA)" "y"
+  ifeq "$(ENABLE_MEDIAWIKI)" "y"
+       cat debian/control.mediawiki.in >> debian/control.new
+  endif
+  ifeq "$(ENABLE_REPORTBUILDER)" "y"
+       cat debian/control.reportbuilder.in >> debian/control.new
+  endif
+  ifeq "$(ENABLE_NLPSOLVER)" "y"
+       cat debian/control.nlpsolver.in >> debian/control.new
+  endif
+endif
+       cat debian/control.fonts.in >> debian/control.new
+ifeq "$(PACKAGE_SDK)" "y"
+       cat debian/control.sdk.in >> debian/control.new
+endif
+ifeq "$(PACKAGE_LOKIT)" "y"
+       cat debian/control.lokit.in >> debian/control.new
+endif
+ifeq "$(BUILD_GTK3)" "y"
+       cat debian/control.gtk3.in >> debian/control.new
+endif
+ifeq "$(BUILD_GTK4)" "y"
+       cat debian/control.gtk4.in >> debian/control.new
+endif
+ifeq "$(ENABLE_KF5)" "y"
+       cat debian/control.kf5.in >> debian/control.new
+  ifneq "$(BOOKWORM_BACKPORT)" "y"
+       perl -pi -e 's/plasma-iconset-dep}/plasma-iconset-dep}, kio (>> 5.115.0-5)/' debian/control.new
+  else
+       perl -pi -e 's/plasma-iconset-dep}/plasma-iconset-dep}, kio (>> 5.103.0-1)' debian/control.new
+  endif
+endif
+ifeq "$(ENABLE_KF6)" "y"
+       cat debian/control.kf6.in >> debian/control.new
+endif
+ifeq "$(ENABLE_QT5)" "y"
+       cat debian/control.qt5.in >> debian/control.new
+endif
+ifeq "$(ENABLE_QT6)" "y"
+       cat debian/control.qt6.in >> debian/control.new
+endif
+ifeq "$(BUILD_PLASMA)" "y"
+       sed -e "s|@PLASMA_VERSION@|$(PLASMA_VERSION)|g" \
+               -e "s|@PLASMA_KF_VERSION@|$(PLASMA_KF_VERSION)|g" \
+               >> debian/control.new < debian/control.plasma.in
+       # no kf6be here
+ifeq "$(PLASMA_VERSION)" "6"
+       sed -i "s/and a KDE\/KF$(PLASMA_KF_VERSION) configuration backend//" \
+               debian/control.new
+endif
+endif
+       cat debian/control.postgresql.in >> debian/control.new
+ifeq "$(ENABLE_EVO2)" "y"
+       cat debian/control.evolution.in >> debian/control.new
+endif
+       cat debian/control.test-packages.in >> debian/control.new
+ifeq "$(PACKAGE_LIBRELOGO)" "y"
+       cat debian/control.librelogo.in >> debian/control.new
+endif
+ifeq "$(ENABLE_FIREBIRD)" "y"
+       cat debian/control.firebird.in >> debian/control.new
+endif
+
+       perl -pi -e "s,%OOO_ARCHS%,$(OOO_ARCHS),g" debian/control.new
+       perl -pi -e "s,%OOO_NOGUI_ARCHS%,$(OOO_NOGUI_ARCHS),g" debian/control.new
+       perl -pi -e "s,%OOO_64BIT_ARCHS%,$(OOO_64BIT_ARCHS),g" debian/control.new
+       perl -pi -e "s,%OOO_BE_ARCHS%,$(OOO_BE_ARCHS),g" debian/control.new
+       perl -pi -e "s,%OOO_LE_ARCHS%,$(OOO_LE_ARCHS),g" debian/control.new
+       perl -pi -e "s,%OOO_BASE_ARCHS%,$(OOO_BASE_ARCHS),g" debian/control.new
+       perl -pi -e "s,%OOO_NO_BASE_ARCHS%,$(OOO_NO_BASE_ARCHS),"g debian/control.new
+       perl -pi -e "s,%OOO_JAVA_ARCHS%,$(OOO_JAVA_ARCHS),g" debian/control.new
+       perl -pi -e "s,%OOO_ARCH_DEP_EXTENSIONS_ARCHS%,$(OOO_ARCH_DEP_EXTENSIONS_ARCHS),g" debian/control.new
+       perl -pi -e "s,%OOO_REPORTBUILDER_ARCHS%,$(OOO_REPORTBUILDER_ARCHS),g" debian/control.new
+       perl -pi -e "s,%OOO_NO_REPORTBUILDER_ARCHS%,$(OOO_NO_REPORTBUILDER_ARCHS),g" debian/control.new
+       perl -pi -e "s,%OOO_FIREBIRD_ARCHS%,$(OOO_FIREBIRD_ARCHS),g" debian/control.new
+       perl -pi -e "s,%OOO_NO_FIREBIRD_ARCHS%,$(OOO_NO_FIREBIRD_ARCHS),g" debian/control.new
+       perl -pi -e "s#%BUILD_DEPS%#$(strip $(BUILD_DEPS))#g" debian/control.new
+       perl -pi -e "s#%JUNIT_MIN_VER%#$(JUNIT_MIN_VER)#g" debian/control.new
+ifeq "$(BUILD_PLASMA)" "y"
+       perl -pi -e 's/%LO-DESKTOP-INTEGRATION%/libreoffice-gnome | libreoffice-plasma/' debian/control.new
+else
+       perl -pi -e 's/%LO-DESKTOP-INTEGRATION%/libreoffice-gnome/' debian/control.new
+endif
+
+ifeq (sk,$(findstring sk,$(HELPISOS)))
+       perl -pi -e 's/(Depends:.*)libreoffice-l10n-sk(.*)$$/\1libreoffice-l10n-sk, libreoffice-help-cs\2/' debian/control.new
+endif
+ifeq (pt-BR,$(findstring pt-BR,$(LANGPACKISOS)))
+       perl -pi -e 's/libreoffice2-l10n-pt-br$$/libreoffice2-l10n-pt-br, broffice/' debian/control.new
+       perl -pi -e 's/libreoffice2-l10n-pt-br$$/libreoffice2-l10n-pt-br, broffice/' debian/control.new
+       perl -pi -e 's/libreoffice2-l10n-pt-br$$/libreoffice2-l10n-pt-br, broffice/' debian/control.new
+endif
+
+ifeq "$(MYSQL_FLAVOUR)" "mysql"
+       perl -pi -e "s/(Build-Conflicts: .*)/\1,libmariadbclient-dev,/" debian/control.new
+endif
+
+ifneq "$(ALLOW_CLANG)" "y"
+       perl -pi -e "s/(Build-Conflicts: .*)/\1,clang,/" debian/control.new
+else
+       perl -pi -e "s/(Build-Conflicts: .*)/\1,clang [$(filter-out $(OOO_CLANG_ARCHS),$(OOO_ARCHS))],/" debian/control.new
+endif
+
+       $(PYTHON) debian/scripts/joinctrl.py < debian/control.new > debian/control.tmp
+       mv debian/control.tmp debian/control.new
+
+ifeq "$(USE_DBUS)" "y"
+  ifeq "$(ENABLE_BLUETOOTH)" "y"
+       perl -pi -e 's/paperconf$$/paperconf\n  * bluez: Bluetooth support for Impress (slideshow remote control)/' debian/control.new
+  endif
+       perl -pi -e 's/Description: office productivity suite -- presentation/Suggests: bluez\nDescription: office productivity suite -- presentation/' debian/control.new
+endif
+
+ifneq "$(DICT_DIR)" "/usr/share/hunspell"
+       perl -pi -e 's/^Breaks:.*myspell.*\n//' debian/control.new
+endif
+
+ifeq "$(ENABLE_APPARMOR_PROFILES)" "y"
+       perl -pi -e 's/ttf-mscorefonts-installer/ttf-mscorefonts-installer, apparmor/' debian/control.new
+endif
+
+       diff -u debian/control debian/control.new && rm -f debian/control.new || (\
+               echo "Generated control file differs! Check the result!"; \
+               echo "Note: Edit control*.in and rules instead of control!"; \
+               echo "If the difference is correct move control.new to control"; \
+               exit 1)
+
+#.DELETE_ON_ERROR: debian/control.new
+
+debian/tests/control.new: debian/tests/control.in debian/rules
+       echo "#" > debian/tests/control.new
+       echo "# NOTE: This file is autogenerated. DO NOT manually edit it! " >> debian/tests/control.new
+       echo "# Edit debian/tests/control*in and rules (whatever applicable), run debian/rules control" >> debian/tests/control.new
+       echo "# and move control.new to control if the difference is sane." >> debian/tests/control.new
+       echo "#" >> debian/tests/control.new
+       sed -e "s|%OOO_JAVA_ARCHS%|$(OOO_JAVA_ARCHS)|g" \
+           -e "s|%OOO_JUNIT_ARCHS%|$(OOO_JUNIT_ARCHS)|g" \
+           -e "s|%OOO_NOGUI_ARCHS%|$(OOO_NOGUI_ARCHS)|g" \
+           -e "s|%OOO_JAVA_AND_NOGUI_ARCHS%|$(filter $(OOO_JAVA_ARCHS),$(OOO_NOGUI_ARCHS))|g" \
+           -e "s|%OOO_CHECK_FATAL_ARCHS%|$(OOO_CHECK_FATAL_ARCHS)|g" \
+           -e "s|%AUTOPKGTEST_CPPUNIT_PACKAGES%|$(shell echo $(AUTOPKGTEST_CPPUNIT_PACKAGES) | sed -e "s/\ /,/g")|g" \
+           >> debian/tests/control.new < debian/tests/control.in
+       # otherwise Architecture: is empty (and empty means "any" in autopgktest,
+       # cf. https://salsa.debian.org/ci-team/autopkgtest/-/blob/master/lib/testdesc.py#L546)
+ifneq (,$(OOO_JUNIT_ARCHS))
+       sed -e "s|%OOO_JUNIT_ARCHS%|$(OOO_JUNIT_ARCHS)|g" \
+               >> debian/tests/control.new < debian/tests/control.junit.in
+endif      
+
+       diff -u debian/tests/control debian/tests/control.new && rm -f debian/tests/control.new || (\
+               echo "Generated control file differs! Check the result!"; \
+               echo "Note: Edit tests/control*.in and rules instead of control!"; \
+               echo "If the difference is correct move control.new to control"; \
+               exit 1)
+
+#.DELETE_ON_ERROR: debian/tests/control.new
+
+# All 'important' targets have 2 lines.  The one that is run by
+# dpkg-buildpackage or the user, and the one that does the actual work.  This
+# indirection is needed so that the 'stamp' files that signify when a rule is
+# done can be located in a separate 'stampdir'.  Recall that make has no way to
+# know when a goal has been met for a phony target (like "build" or "install").
+#
+# At the end of each stampdir target, be sure to run the command 'touch $@'
+# so that the target will not be run again.  Removing the file will make
+# make run the target over.
+
+prepare: $(STAMP_DIR)/prepare
+$(STAMP_DIR)/prepare:
+       dh_testdir
+
+       # Make sure needed scripts are executable
+       set -e;\
+       for FILE in debian/scripts/move-if-change \
+                   debian/scripts/get_libebook_dep.sh \
+                   debian/scripts/locale-gen \
+                   autogen.sh; \
+       do \
+         chmod 755 $$FILE ;\
+       done
+
+       mkdir -p $(STAMP_DIR)
+
+       # Make sure we have /proc mounted.
+       # Otherwise configure will fail since java -version fails without /proc...
+       test -r /proc/version
+
+ifneq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
+ifeq (terse,$(findstring terse,$(DEB_BUILD_OPTIONS)))
+       if [ -d .pc/do-not-hide-test-output.diff ]; then \
+               patch -p1 -R < debian/patches/do-not-hide-test-output.diff; \
+               TMP=`mktemp -q`; grep -v do-not-hide-test-output .pc/applied-patches \
+                       > $$TMP && mv $$TMP .pc/applied-patches; \
+               rm -rf .pc/do-not-hide-test-output.diff; \
+       fi
+endif
+endif
+
+ifeq "$(ENABLE_PCH)" "y"
+       # regen PCHs to go sure...
+       bin/update_pch.sh
+endif
+
+       cd $(SOURCE_TREE)/helpcontent2/help3xsl && \
+               ln -sf /usr/share/javascript/normalize.css/normalize.css
+       cd $(SOURCE_TREE)/helpcontent2/help3xsl && \
+               ln -sf /usr/share/nodejs/prismjs/prism.js && \
+               ln -sf /usr/share/nodejs/prismjs/themes/prism-coy.css prism.css
+
+ifeq ($(filter pkg.libreoffice.opensymbolbuild,$(DEB_BUILD_PROFILES)),)
+       # link to already-rebuilt opens___.ttf (fonts-opensymbol) form the arch indep build.
+       # Thankfully the sha256sum is only checked in Makefile.fetch (which we don't do)
+       cd $(SOURCE_TREE)/tarballs && \
+               ln -sf /usr/share/fonts/truetype/libreoffice/opens___.ttf \
+                       f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf
+endif
+
+       touch $@
+
+.PHONY: config_host.mk
+config_host.mk:
+       rm -f config.status autogen.lastrun
+       PATH=$(BUILD_PATH) LD_LIBRARY_PATH=$(BUILD_LD_LIBRARY_PATH) \
+       CLANGDIR=$(CLANGDIR) \
+       MARIADBCONFIG=$(MARIADBCONFIG) \
+       FIREBIRD_CFLAGS=$(FIREBIRD_CFLAGS) FIREBIRD_LIBS=$(FIREBIRD_LIBS) \
+       ./autogen.sh $(CONFIGURE_FLAGS)
+
+build: $(STAMP_DIR)/prepare $(STAMP_DIR)/build-arch $(STAMP_DIR)/build-indep
+       touch $(STAMP_DIR)/$@
+
+build-arch: $(STAMP_DIR)/prepare $(STAMP_DIR)/build-arch
+$(STAMP_DIR)/build-arch:
+#build-arch: ENABLE_HELP = n PACKAGE_SDK_DOCS = n ENABLE_MEDIAWIKI = n ENABLE_SCRIPT_PROVIDER_BSH = n ENABLE_SCRIPT_PROVIDER_JS = n
+       dh_testdir
+
+ifeq "$(BUILD_NOGUI_PACKAGES)" "y"
+       # build with --disable-gui first
+       PATH=$(BUILD_PATH) LD_LIBRARY_PATH=$(BUILD_LD_LIBRARY_PATH) \
+       CLANGDIR=$(CLANGDIR) \
+       MARIADBCONFIG=$(MARIADBCONFIG) \
+       FIREBIRD_CFLAGS=$(FIREBIRD_CFLAGS) FIREBIRD_LIBS=$(FIREBIRD_LIBS) \
+       ./autogen.sh $(CONFIGURE_FLAGS) \
+               --without-junit --without-cppunit \
+               --disable-ext-wiki-publisher \
+               --without-doxygen --without-javadoc \
+               --with-galleries=no --with-theme="$(DEFAULT_IMAGE)" \
+               --disable-gui --disable-introspection --disable-qt5 --disable-kf5
+
+       PATH=$(BUILD_PATH) LD_LIBRARY_PATH=$(BUILD_LD_LIBRARY_PATH) ARCH_FLAGS=$(ARCH_FLAGS) TMP=`mktemp -q -d` $(MAKE) build-non-l10n-only
+
+       rm -rf instdir-nogui
+       cp -r instdir instdir-nogui
+
+       # clean. cleaning up only potentially affected ones was not really
+       # maintainable and broke running the uitests since something apparently was not rebuilt
+       # for "use UI" as it should.
+       # Better safe than sorry, even though that increases build time for a magnitude...
+       $(MAKE) clean
+endif
+
+       PATH=$(BUILD_PATH) LD_LIBRARY_PATH=$(BUILD_LD_LIBRARY_PATH) \
+       CLANGDIR=$(CLANGDIR) \
+       MARIADBCONFIG=$(MARIADBCONFIG) \
+       FIREBIRD_CFLAGS=$(FIREBIRD_CFLAGS) FIREBIRD_LIBS=$(FIREBIRD_LIBS) \
+       QT5DIR=/usr/lib/$(DEB_HOST_MULTIARCH)/qt5 QT6DIR=/usr/lib/qt6 \
+       ./autogen.sh $(CONFIGURE_FLAGS) \
+               --without-junit --without-cppunit \
+               --disable-ext-wiki-publisher \
+               --without-doxygen --without-javadoc \
+               --with-galleries=no --with-theme="$(DEFAULT_IMAGE)"
+
+       PATH=$(BUILD_PATH) LD_LIBRARY_PATH=$(BUILD_LD_LIBRARY_PATH) ARCH_FLAGS=$(ARCH_FLAGS) TMP=`mktemp -q -d` $(MAKE) build-non-l10n-only
+
+ifneq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
+       $(CURDIR)/debian/rules check
+endif
+
+ifneq "$(BUILD_ISOS)" "en-US"
+       # build sysui again with all languages; as it contains language-specific help and/or descriptions...
+       $(MAKE) sysui.clean
+       make cmd cmd="cd sysui; export WITH_LANG='$(LANGPACKISOS)'; export WITH_LANG_LIST='$(LANGPACKISOS)'; $(MAKE)"
+endif
+
+       touch $@
+
+build-indep: $(STAMP_DIR)/prepare $(STAMP_DIR)/build-indep
+$(STAMP_DIR)/build-indep:
+       dh_testdir
+
+ifeq "$(PACKAGE_SDK)" "y"
+       if [ -f Makefile ]; then $(MAKE) odk.clean; fi
+endif
+       if [ -f Makefile ]; then $(MAKE) scp2.clean; fi
+
+       rm -f config.status autogen.lastrun
+
+ifeq "$(ENABLE_HELP)" "y"
+  ifeq (pt,$(findstring pt,$(HELPISOS)))
+       # this somehow is missing. let's assume pt-BR is sufficiently ok for "original" pt
+       if [ ! -f helpcontent2/source/media/screenshots/modules/simpress/ui/prntopts/pt/prntopts.png ]; then \
+               mkdir -p helpcontent2/source/media/screenshots/modules/simpress/ui/prntopts/pt; \
+               cp helpcontent2/source/media/screenshots/modules/simpress/ui/prntopts/pt-BR/prntopts.png \
+                       helpcontent2/source/media/screenshots/modules/simpress/ui/prntopts/pt; \
+       fi
+  endif
+endif
+
+       # now build with the indep stuff (javadoc, languages, ....)
+       PATH=$(BUILD_PATH) LD_LIBRARY_PATH=$(BUILD_LD_LIBRARY_PATH) \
+       MARIADBCONFIG=$(MARIADBCONFIG) \
+       FIREBIRD_CFLAGS=$(FIREBIRD_CFLAGS) FIREBIRD_LIBS=$(FIREBIRD_LIBS) \
+       QT5DIR=/usr/lib/$(DEB_HOST_MULTIARCH)/qt5 QT6DIR=/usr/lib/qt6 \
+       ./autogen.sh $(CONFIGURE_FLAGS) $(CONFIGURE_FLAGS_INDEP)
+
+       PATH=$(BUILD_PATH) LD_LIBRARY_PATH=$(BUILD_LD_LIBRARY_PATH) ARCH_FLAGS=$(ARCH_FLAGS) TMP=`mktemp -q -d` $(MAKE) build
+ifeq "$(ENABLE_JAVA)" "y"
+  ifeq "$(BUILD_TEST_PACKAGES)" "y"
+    ifeq "$(ENABLE_JUNIT4)" "y"
+       PATH=$(BUILD_PATH) LD_LIBRARY_PATH=$(BUILD_LD_LIBRARY_PATH) ARCH_FLAGS=$(ARCH_FLAGS) TMP=`mktemp -q -d` $(MAKE) Jar_{OOoRunner,test,ConnectivityTools}
+    endif
+  endif
+endif
+
+ifeq "$(BUILD_TEST_PACKAGES)" "y"
+       find workdir/Zip -name "smoketestdoc*" | xargs rm; \
+       patch -p0 < $(CURDIR)/debian/tests/patches/smoketest-disable-extension-tests.diff; \
+       cd smoketest && $(MAKE) Zip_smoketestdoc; cd ..; \
+       patch -p0 -R < $(CURDIR)/debian/tests/patches/smoketest-disable-extension-tests.diff; \
+       cp workdir/Zip/smoketestdoc.zip workdir/Zip/smoketestdoc.sxw
+endif
+
+ifneq "$(AUTOPKGTEST_BUILD)" "y"
+  ifneq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
+       $(CURDIR)/debian/rules check-indep
+  endif
+endif
+
+       touch $@
+
+check:
+ifneq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
+ifneq (,$(filter $(DEB_HOST_ARCH),$(OOO_NO_BASE_ARCHS)))
+       patch -p1 < $(CURDIR)/debian/tests/patches/disable-db-tests.diff
+endif
+  ifeq (,$(filter $(DEB_HOST_ARCH),$(OOO_EXTENSIONS_ARCHS)))
+       cd $(SOURCE_TREE)/smoketest && \
+               patch -p1 < $(CURDIR)/debian/tests/patches/smoketest-disable-extension-tests.diff
+  endif
+  ifeq "$(BOOKWORM_BACKPORT)" "y"
+       patch -p1 -R < debian/patches/adapt-for-new-carlito.diff
+  endif
+       # enable cppunit etc.
+       PATH=$(BUILD_PATH) LD_LIBRARY_PATH=$(BUILD_LD_LIBRARY_PATH) \
+       CLANGDIR=$(CLANGDIR) \
+       MARIADBCONFIG=$(MARIADBCONFIG) \
+       FIREBIRD_CFLAGS=$(FIREBIRD_CFLAGS) FIREBIRD_LIBS=$(FIREBIRD_LIBS) \
+       QT5DIR=/usr/lib/$(DEB_HOST_MULTIARCH)/qt5 QT6DIR=/usr/lib/qt6 \
+       ./autogen.sh $(CONFIGURE_FLAGS) $(CONFIGURE_FLAGS_TESTS) \
+               --disable-ext-wiki-publisher \
+               --without-doxygen --without-javadoc \
+               --with-galleries=no --with-theme="$(DEFAULT_IMAGE)"
+
+ifeq "$(BUILD_TESTS)" "y"
+       # build the tests (first)
+       export gb_SUPPRESS_TESTS=true; \
+               $(MAKE) check
+endif
+
+ifneq "$(AUTOPKGTEST_BUILD)" "y"
+ifeq "$(RUN_MAKE_CHECK)" "y"
+       # generate the needed en_US.UTF-8 locale
+       mkdir -p $(CURDIR)/debian/locales
+       USE_CPUS=$(NUM_CPUS) debian/scripts/locale-gen
+
+        # and now run them
+       $(IGNORE_MAKE_FAILURES)t=`mktemp -q -d`; \
+       cd $(SOURCE_TREE) && \
+               export PATH=$(BUILD_PATH); \
+               export TMPDIR=$$t; \
+               export HOME=$$t; \
+               export LOCPATH=$(CURDIR)/debian/locales; \
+               export LANG=en_US.UTF-8; \
+               export TZ=UTC; \
+               unset DISPLAY; \
+               unset CONNECTIVITY_TEST_MYSQL_DRIVER; \
+               export PARALLELISM=1; \
+               if [ -x /usr/bin/gdb ]; then ulimit -c unlimited || true; fi && \
+               $(TEST_TIMEOUT) $(MAKE) -k check || $(TEST_TIMEOUT) $(MAKE) check && \
+       rm -rf $$t
+else
+       # don't run make check but *do* run selected tests here which are deemed too important
+       # to fail
+       # - "bridgetest"
+       # - the public libraries (sal, cppu(helper), comphelper)
+       # - "smoketest" as a smoketest
+       # - pyuno (as we ship python3-uno..)
+       # - unoidl for the SDK
+       $(IGNORE_MAKE_FAILURES)\
+       cd $(SOURCE_TREE) && \
+               $(TEST_TIMEOUT) make testtools.allcheck
+       # build smoketest prerequisites
+       # and it only builds unotest but not test so build that manually...
+       # sal only builds cppunittester on make check due to cppunit-optional.diff
+       # smoketest.allcheck actually does NOT run it... Do it manually later..
+       cd $(SOURCE_TREE) && \
+               ( \
+                       make unotest.allbuild && \
+                       make test.allbuild && \
+                       gb_SUPPRESS_TESTS=true make sal.allcheck && \
+                       make smoketest.allcheck \
+               )
+       # build some more tests
+       for i in cppu cppuhelper comphelper unoidl; do \
+               gb_SUPPRESS_TESTS=true make $$i.allcheck; \
+       done
+       # run the sal tests. We built them anyways and it does make sense to test
+       # the system abstraction layer anyways. And it contains system-operating tests
+       # and types test which might become relevant for new architectures
+       $(IGNORE_MAKE_FAILURES)t=`mktemp -q -d`; \
+       cd $(SOURCE_TREE)/sal && \
+               export PATH=$(BUILD_PATH); \
+               export TMPDIR=$$t; \
+               export HOME=$$t; \
+               export PARALLELISM=1; \
+               $(TEST_TIMEOUT) make check
+       # more public library checks
+       $(IGNORE_MAKE_FAILURES)\
+       for i in cppu cppuhelper comphelper; do \
+               export PARALLELISM=1; \
+               $(TEST_TIMEOUT) make $$i.allcheck; \
+       done
+       # run the smoketest
+       $(IGNORE_MAKE_FAILURES)\
+       cd $(SOURCE_TREE)/smoketest && \
+               export PARALLELISM=1; \
+               $(TEST_TIMEOUT) make subsequentcheck
+  ifeq "$(ENABLE_PYTHON)" "y"
+       # does pyuno work?
+       $(IGNORE_MAKE_FAILURES)\
+       cd $(SOURCE_TREE)/pyuno && \
+               export PARALLELISM=1; \
+               $(TEST_TIMEOUT) make check subsequentcheck 
+  endif
+       # shipped in the SDK
+  ifeq "$(PACKAGE_SDK)" "y"
+       $(IGNORE_MAKE_FAILURES)\
+       cd $(SOURCE_TREE)/unoidl && \
+               export PARALLELISM=1; \
+               $(TEST_TIMEOUT) make check
+  endif
+endif
+endif
+
+ifeq "$(BUILD_TESTS)" "y"
+  ifneq (,$(filter $(DEB_HOST_ARCH),$(OOO_NO_BASE_ARCHS)))
+       patch -p1 -R < $(CURDIR)/debian/tests/patches/disable-db-tests.diff
+  endif
+  ifeq (,$(filter $(DEB_HOST_ARCH),$(OOO_EXTENSIONS_ARCHS)))
+       cd $(SOURCE_TREE)/smoketest && \
+               patch -p1 -R < $(CURDIR)/debian/tests/patches/smoketest-disable-extension-tests.diff
+  endif
+  ifeq "$(BOOKWORM_BACKPORT)" "y"
+       patch -p1 < debian/patches/adapt-for-new-carlito.diff
+  endif
+endif
+
+check-indep:
+ifneq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
+  ifeq "$(ENABLE_JAVA)" "y"
+       # since the gb_SUPPRESS_CHECK stuff in build this isn't checked.
+       # probably should, so do it here manually.
+       $(IGNORE_MAKE_FAILURES)cd odk && \
+               $(MAKE) CustomTarget_odk/check
+    ifneq (,$(findstring -indep,$(MAKECMDGOALS)))
+       # was already checked in check
+       $(IGNORE_MAKE_FAILURES)if [ ! -e $(STAMP_DIR)/build-arch ]; then \
+               cd odk && $(MAKE) CustomTarget_odk/build-examples && \
+                       $(MAKE) CustomTarget_odk/build-examples_java; \
+       fi
+    endif
+  endif
+endif
+endif
+
+install: $(STAMP_DIR)/install-common $(STAMP_DIR)/install-arch $(STAMP_DIR)/install-indep
+
+install-common: $(STAMP_DIR)/install-common
+ifeq ($(MAKECMDGOALS),binary)
+$(STAMP_DIR)/install-common: $(STAMP_DIR)/build-arch $(STAMP_DIR)/build-indep
+else
+ifeq ($(MAKECMDGOALS),binary-indep)
+$(STAMP_DIR)/install-common: $(STAMP_DIR)/build-indep
+endif
+ifeq ($(MAKECMDGOALS),binary-arch)
+$(STAMP_DIR)/install-common: $(STAMP_DIR)/build-arch
+endif
+endif
+       dh_testdir
+       dh_testroot
+
+       dh_prep
+       rm -f debian/*.install debian/*.dirs
+
+       # remove those for safety in case the languages might change on
+       # testbuilds. then the /*/ in dh_installdocs in binary-* won't work
+       # anymore (different dirs)
+       rm -rf $(SOURCE_TREE)/instsetoo_native/util/LibreOffice
+
+       rm -rf $(SOURCE_TREE)/file-lists
+
+       # install LibreOffice.
+       cd $(SOURCE_TREE)/; \
+                PATH=$(BUILD_PATH) \
+                DESTDIR=$(CURDIR)/debian/tmp \
+                $(MAKE) distro-pack-install
+       export DESTDIR=$(CURDIR)/debian/tmp ;\
+       export VERSION=$(OOVER); \
+       export OOINSTBASE=$(OODIR); \
+       export OOO_LANGS_LIST="$(ISOS)"; \
+       $(CURDIR)/debian/scripts/gid2pkgdirs.sh
+ifeq "$(BUILD_DBGSYM_PACKAGES)" "y"
+       make cmd cmd="export DESTDIR=$(CURDIR)/debian/tmp; $(CURDIR)/solenv/bin/install-gdb-printers -a /usr/share/gdb/auto-load/$(OODIR) -c -i /$(OODIR) -p /usr/share/libreoffice/gdb"
+endif
+
+       # FIXME
+       cd $(CURDIR)/debian/tmp/pkg && rm -rf \*
+
+       # we need to do it here. If -kf5 isn't built
+       # there's no -kf5.install generated, so dh_missing complains later
+ifeq "$(ENABLE_QT5)" "y"
+       mkdir -p debian/tmp/pkg/libreoffice-qt5/$(OODIR)/program
+       mv debian/tmp/pkg/libreoffice-kde/$(OODIR)/program/libvclplug_qt5lo.so\
+               debian/tmp/pkg/libreoffice-qt5/$(OODIR)/program
+endif
+ifeq "$(ENABLE_QT6)" "y"
+       mkdir -p debian/tmp/pkg/libreoffice-qt6/$(OODIR)/program
+       mv debian/tmp/pkg/libreoffice-kde/$(OODIR)/program/libvclplug_qt6lo.so\
+               debian/tmp/pkg/libreoffice-qt6/$(OODIR)/program
+endif
+ifeq "$(shell echo $(ENABLE_KF5)$(ENABLE_KF6) | grep -q y && echo true)" "true"
+ifeq "$(BUILD_PLASMA)" "y"
+       if [ -f debian/tmp/pkg/libreoffice-kde/$(OODIR)/program/libkf$(PLASMA_VERSION)be1lo.so ]; then \
+               mkdir -p debian/tmp/pkg/libreoffice-plasma/$(OODIR)/program; \
+               mv debian/tmp/pkg/libreoffice-kde/$(OODIR)/program/libkf$(PLASMA_VERSION)be1lo.so \
+                       debian/tmp/pkg/libreoffice-plasma/$(OODIR)/program; \
+       fi
+       # remove other ones maybe built by --enable-kfX
+       rm -f debian/tmp/pkg/libreoffice-kde/$(OODIR)/program/libkf*be1lo.so 
+else
+       rm -f debian/tmp/pkg/libreoffice-kde/$(OODIR)/program/libkf*be1lo.so
+endif
+ifeq "$(ENABLE_KF5)" "y"
+       mkdir -p debian/tmp/pkg/libreoffice-kf5/$(OODIR)/program
+       mv debian/tmp/pkg/libreoffice-kde/$(OODIR)/program/libvclplug_kf5lo.so \
+               debian/tmp/pkg/libreoffice-kf5/$(OODIR)/program
+endif
+ifeq "$(ENABLE_KF6)" "y"
+       mkdir -p debian/tmp/pkg/libreoffice-kf6/$(OODIR)/program
+       mv debian/tmp/pkg/libreoffice-kde/$(OODIR)/program/libvclplug_kf6lo.so \
+               debian/tmp/pkg/libreoffice-kf6/$(OODIR)/program
+endif
+endif
+
+ifeq "$(ENABLE_HELP)" "y"
+ifeq "$(ENABLE_HTML_HELP)" "y"
+       mkdir -p debian/tmp/pkg/libreoffice-help-common/$(OODIR); \
+       mv debian/tmp/pkg/libreoffice-common/$(OODIR)/help \
+               debian/tmp/pkg/libreoffice-help-common/$(OODIR)
+endif
+endif
+
+       # prepare install/dir files for dh
+       for i in `cd $(CURDIR)/debian/tmp/pkg; ls -1 | xargs`; do \
+               echo "$${i}/usr/* usr" > debian/$$i.install; \
+               (cd debian/tmp/pkg/$$i; find . -type d | sed -e "s,\./,,") \
+                       > debian/$$i.dirs; \
+       done
+       echo "/etc/libreoffice/registry/res" >> debian/libreoffice-common.dirs
+
+       # the english resources should be in -common
+       cat debian/libreoffice-l10n-en-US.dirs >> debian/libreoffice-common.dirs
+       cat debian/libreoffice-l10n-en-US.install >> debian/libreoffice-common.install
+       rm -f debian/libreoffice-l10n-en-US.dirs debian/libreoffice-l10n-en-US.install
+
+       # and bn-IN in -bn...
+ifeq (bn-IN,$(findstring bn-IN,$(LANGPACKISOS)))
+       if [ -f debian/libreoffice-l10n-bn-IN.dirs -a -f debian/libreoffice-l10n-bn-IN.install ]; then \
+               cat debian/libreoffice-l10n-bn-IN.dirs >> debian/libreoffice-l10n-bn.dirs; \
+               cat debian/libreoffice-l10n-bn-IN.install >> debian/libreoffice-l10n-bn.install; \
+               rm -f debian/libreoffice-l10n-bn-IN.dirs debian/libreoffice-l10n-bn-IN.install; \
+       fi
+endif
+       # and ca-valencia in -ca...
+ifeq (ca-valencia,$(findstring ca-valencia,$(LANGPACKISOS)))
+       if [ -f debian/libreoffice-l10n-ca-valencia.dirs -a -f debian/libreoffice-l10n-ca-valencia.install ]; then \
+               cat debian/libreoffice-l10n-ca-valencia.dirs >> debian/libreoffice-l10n-ca.dirs; \
+               cat debian/libreoffice-l10n-ca-valencia.install >> debian/libreoffice-l10n-ca.install; \
+               rm -f debian/libreoffice-l10n-ca-valencia.dirs debian/libreoffice-l10n-ca-valencia.install; \
+       fi
+endif
+ifeq "$(ENABLE_HELP)" "y"
+ifeq (ca-valencia,$(findstring ca-valencia,$(HELPISOS)))
+       if [ -f debian/libreoffice-help-ca-valencia.dirs -a -f debian/libreoffice-help-ca-valencia.install ]; then \
+               cat debian/libreoffice-help-ca-valencia.dirs >> debian/libreoffice-help-ca.dirs; \
+               cat debian/libreoffice-help-ca-valencia.install >> debian/libreoffice-help-ca.install; \
+               rm -f debian/libreoffice-help-ca-valencia.dirs debian/libreoffice-help-ca-valencia.install; \
+       fi
+endif
+endif
+       # and sr-Latn should be in -sr
+ifeq (sr-Latn,$(findstring sr-Latn,$(LANGPACKISOS)))
+       if [ -f debian/libreoffice-l10n-sr-Latn.dirs -a -f debian/libreoffice-l10n-sr-Latn.install ]; then \
+               cat debian/libreoffice-l10n-sr-Latn.dirs >> debian/libreoffice-l10n-sr.dirs; \
+               cat debian/libreoffice-l10n-sr-Latn.install >> debian/libreoffice-l10n-sr.install; \
+               rm -f debian/libreoffice-l10n-sr-Latn.dirs debian/libreoffice-l10n-sr-Latn.install; \
+       fi
+endif
+
+       # This should be in -kmr... This is different like the above where
+       # we move different "variants" into the "base" but there's only kmr-Latn
+       # for Kurmanji, but I don't really want to have that -latn suffix in
+       # the packages
+ifeq (kmr-Latn,$(findstring kmr-Latn,$(LANGPACKISOS)))
+       if [ -f debian/libreoffice-l10n-kmr-Latn.dirs -a -f debian/libreoffice-l10n-kmr-Latn.install ]; then \
+               cat debian/libreoffice-l10n-kmr-Latn.dirs >> debian/libreoffice-l10n-kmr.dirs; \
+               cat debian/libreoffice-l10n-kmr-Latn.install >> debian/libreoffice-l10n-kmr.install; \
+               rm -f debian/libreoffice-l10n-kmr-Latn.dirs debian/libreoffice-l10n-kmr-Latn.install; \
+       fi
+endif
+
+       # fixup case (-l10n-pt-BR -> l10n-pt-br etc.)
+       for iso in $(ISOS); do \
+               pkgiso=`echo $$iso | tr A-Z a-z`; \
+               if [ "$$iso" != "$$pkgiso" ]; then \
+                       if [ "$$iso" != "en-US" -a \
+                         -e debian/libreoffice-l10n-$$iso.dirs -a \
+                         -e debian/libreoffice-l10n-$$iso.install ]; then \
+                               mv debian/libreoffice-l10n-$$iso.dirs \
+                                       debian/libreoffice-l10n-$$pkgiso.dirs; \
+                               mv debian/libreoffice-l10n-$$iso.install \
+                                       debian/libreoffice-l10n-$$pkgiso.install; \
+                       fi; \
+                       if [ -e debian/libreoffice-help-$$iso.dirs -a \
+                         -e debian/libreoffice-help-$$iso.install ]; then \
+                               mv debian/libreoffice-help-$$iso.dirs \
+                                       debian/libreoffice-help-$$pkgiso.dirs; \
+                               mv debian/libreoffice-help-$$iso.install \
+                                       debian/libreoffice-help-$$pkgiso.install; \
+                       fi; \
+               fi; \
+       done
+
+       # fix up still sneaking in ./. They break dh_install (it installs
+       # but wrongly complains about it as not-installed files)
+       perl -pi -e 's,\./,,' debian/libreoffice-common.install
+       perl -pi -e 's,\./,,' debian/ure.install
+
+ifneq "$(ENABLE_HELP)" "n"
+       # remove non-packaged localized help. This a) saves space
+       # and b) we need this for the following dh_install as there will be
+       # no .install files created and dh_install will warn/fail due
+       # to non-installed files.
+       for iso in $(filter-out en-US,$(LANGPACKISOS)); do \
+               if ! `echo $(HELPISOS) | grep -q $$iso` || [ "$$iso" = "sk" ] ; then \
+                       pkgiso=`echo $$iso | tr A-Z a-z`; \
+                       rm -rf debian/tmp/pkg/libreoffice-help-$$iso; \
+                       rm -f debian/libreoffice-help-$$pkgiso.dirs; \
+                       rm -f debian/libreoffice-help-$$pkgiso.install; \
+               fi; \
+       done
+endif
+
+ifneq "$(PACKAGE_LIBRELOGO)" "y"
+       rm -rf debian/tmp/pkg/libreoffice-librelogo
+endif
+
+       # FIXME; hack: somehow there only the dirs are there (dh_installdirs). they *are* in the install phase and gid2pkgdirs also
+       # is supposed to install it to the dir but apparently doesn't. They are in instdir though, so let's use it from
+       # there..
+ifeq "$(ENABLE_NLPSOLVER)" "y"
+       if [ -d instdir/share/extensions/nlpsolver ]; then \
+               rm -rf debian/tmp/pkg/libreoffice-nlpsolver; \
+               mkdir -p debian/tmp/pkg/libreoffice-nlpsolver/$(OODIR)/share/extensions; \
+               cp -ra instdir/share/extensions/nlpsolver \
+                       debian/tmp/pkg/libreoffice-nlpsolver/$(OODIR)/share/extensions; \
+       fi
+endif
+ifeq "$(ENABLE_MEDIAWIKI)" "y"
+       if [ -d instdir/share/extensions/wiki-publisher ]; then \
+               rm -rf debian/tmp/pkg/libreoffice-wiki-publisher; \
+               mkdir -p debian/tmp/pkg/libreoffice-wiki-publisher/$(OODIR)/share/extensions; \
+               cp -ra instdir/share/extensions/wiki-publisher \
+                       debian/tmp/pkg/libreoffice-wiki-publisher/$(OODIR)/share/extensions; \
+       fi
+endif
+
+       for i in calc impress draw base writer; do \
+               echo "../usr/share/metainfo/libreoffice-$$i.appdata.xml /usr/share/metainfo/" >> $(PKGDIR)-$$i.install; \
+       done
+
+ifeq "$(BUILD_PLASMA)" "y"
+       echo "../usr/share/metainfo/org.libreoffice.kde.metainfo.xml /usr/share/metainfo/" >> $(PKGDIR)-plasma.install
+endif
+
+ifneq "$(ENABLE_GUI)" "y"
+       rm -rf debian/tmp/pkg/libreofficekit-data
+endif
+
+       dh_installdirs -A
+       dh_install -A --sourcedir=debian/tmp/pkg && dh_missing -A --sourcedir=debian/tmp/pkg --fail-missing
+
+       # somehow this isn't installed anymore on -B builds...
+       if [ ! -f debian/libreoffice-report-builder/$(OODIR)/program/librptlo.so ]; then \
+               mkdir -p debian/libreoffice-report-builder/$(OODIR)/program/; \
+               for i in librptlo.so librptuilo.so librptxmllo.so; do \
+                       cp $(CURDIR)/instdir/program/$$i \
+                                debian/libreoffice-report-builder/$(OODIR)/program/; \
+               done; \
+       fi
+
+       rm -rf debian/tmp/pkg
+
+       # fix the desktop files....
+       cd $(PKGDIR)-common/$(OODIR)/share/xdg/ && \
+               for i in *.desktop; do \
+                       sed -i -e "s/$(OOVER)//" $$i; \
+       done
+ifneq "$(RELEASE_BUILD)" "y"
+       cd $(PKGDIR)-common/$(OODIR)/share/xdg/ && \
+               for i in *.desktop; do \
+                       sed -i -e "s/libreofficedev/libreoffice/" $$i; \
+                       sed -i -e "s/LibreOfficeDev/LibreOffice/" $$i; \
+       done
+endif
+
+       # move desktop files to their correct packages (and correct dir)
+       # looks like it's pretty nonstandard to have symlinks; this breaks
+       # e.g. the  generation from the appdata files. So get rid of those
+       # and move them to the libreoffice-* names after all.
+       for i in base calc draw impress math writer; do \
+               mkdir -p $(PKGDIR)-$$i/usr/share/applications; \
+               rm -f $(PKGDIR)-$$i/usr/share/applications/libreoffice-$$i.desktop; \
+               mv $(PKGDIR)-common/$(OODIR)/share/xdg/$$i.desktop \
+                       $(PKGDIR)-$$i/usr/share/applications/libreoffice-$$i.desktop; \
+       done
+
+       # move pagein files
+       for i in calc draw impress writer; do \
+               mv $(PKGDIR)-core/$(OODIR)/program/pagein-$$i \
+                       $(PKGDIR)-$$i/$(OODIR)/program; \
+       done
+
+ifeq "$(ENABLE_HELP)" "y"
+       # move help to /usr/share
+  ifeq "$(ENABLE_HTML_HELP)" "y"
+       mv $(PKGDIR)-help-common/usr/lib \
+               $(PKGDIR)-help-common/usr/share
+  endif
+       for iso in $(HELPISOS); do \
+               pkgiso=`echo $$iso | tr A-Z a-z`; \
+               if [ -e $(PKGDIR)-help-$$pkgiso/usr ]; then \
+                       mv $(PKGDIR)-help-$$pkgiso/usr/lib \
+                               $(PKGDIR)-help-$$pkgiso/usr/share; \
+               fi; \
+       done
+
+ifeq (sk,$(findstring sk,$(HELPISOS)))
+       # add fake sk help
+       mkdir -p $(PKGDIR)-help-sk/$(shell echo $(OODIR) | sed -e s/lib/share/)/help
+       ln -s cs \
+               $(PKGDIR)-help-sk/$(shell echo $(OODIR) | sed -e s/lib/share/)/help/sk
+endif
+endif
+
+ifeq "$(ENABLE_JAVA)" "y"
+  ifeq "$(PACKAGE_BASE)" "y"
+       # move sdbc_hsqldb.jar into -base (do the move
+       # to /usr/share/java here directly, we do it for the "rest"
+       # later
+       mkdir -p $(PKGDIR)-base/$(shell echo $(OODIR) | sed -e s/lib/share/)/program/classes; \
+       mkdir -p $(PKGDIR)-base/$(OODIR)/program/classes; \
+       mv $(PKGDIR)-common/$(OODIR)/program/classes/sdbc_hsqldb.jar \
+               $(PKGDIR)-base/$(shell echo $(OODIR) | sed -e s/lib/share/)/program/classes; \
+       ln -s $(shell echo /$(OODIR) | sed -e s/lib/share/)/program/classes/sdbc_hsqldb.jar \
+               $(PKGDIR)-base/$(OODIR)/program/classes/sdbc_hsqldb.jar
+    ifneq (,$(filter hsqldb, $(SYSTEM_STUFF)))
+       # fix the classpath (file:// breaks javahelper)
+       jh_classpath --classpath="$(HSQLDB_JAR) .." \
+               $(PKGDIR)-base/$(shell echo /$(OODIR) | sed -e s/lib/share/)/program/classes/sdbc_hsqldb.jar
+    endif
+    ifeq (,$(filter hsqldb, $(SYSTEM_STUFF)))
+       # we need this in -base. Otherwise we get unwanted package differences
+       # in the unstable version and backports which might use internal hsqldb
+       mkdir -p $(PKGDIR)-base/$(OODIR)/program/classes
+       mv $(PKGDIR)-common/$(OODIR)/program/classes/hsqldb.jar \
+               $(PKGDIR)-base/$(OODIR)/program/classes
+    endif
+  else
+       # remove sdbc_hsqldb.jar. otherwise ends up in -java-common
+       rm -f $(PKGDIR)-common/$(OODIR)/program/classes/sdbc_hsqldb.jar
+  endif
+endif
+
+ifeq "$(ENABLE_FIREBIRD)" "y"
+       mkdir -p $(PKGDIR)-sdbc-firebird/$(OODIR)/share/registry
+       mv $(PKGDIR)-common/$(OODIR)/share/registry/firebird_sdbc.xcd \
+               $(PKGDIR)-sdbc-firebird/$(OODIR)/share/registry
+endif
+
+ifeq "$(PACKAGE_SDK)" "y"
+       # move arch-indep stuff into a libreoffice-dev-common
+       mkdir -p $(PKGDIR)-dev-common/usr/include
+       mv $(PKGDIR)-dev/usr/include/libreoffice \
+               $(PKGDIR)-dev-common/usr/include
+       # except include/sal/typesizes.h
+       mkdir -p $(PKGDIR)-dev/usr/include/$(DEB_HOST_MULTIARCH)/libreoffice/sal
+       mkdir -p $(PKGDIR)-dev/usr/include/libreoffice/sal
+       mv $(PKGDIR)-dev-common/usr/include/libreoffice/sal/typesizes.h \
+               $(PKGDIR)-dev/usr/include/$(DEB_HOST_MULTIARCH)/libreoffice/sal
+       cd $(PKGDIR)-dev/usr/include/libreoffice/sal/ && \
+               ln -s /usr/include/$(DEB_HOST_MULTIARCH)/libreoffice/sal/typesizes.h
+       mkdir -p $(PKGDIR)-dev-common/$(OOSDKDIR)
+       mv $(PKGDIR)-dev/$(OOSDKDIR)/classes \
+               $(PKGDIR)-dev-common/$(OOSDKDIR)
+       mv $(PKGDIR)-dev/$(OOSDKDIR)/set* \
+               $(PKGDIR)-dev-common/$(OOSDKDIR)
+       # settings/dk.mk is not arch-indep
+       mkdir -p $(PKGDIR)-dev/$(OOSDKDIR)/settings
+       mv $(PKGDIR)-dev-common/$(OOSDKDIR)/settings/dk.mk \
+               $(PKGDIR)-dev/$(OOSDKDIR)/settings
+       mv $(PKGDIR)-dev/$(OOSDKDIR)/config* \
+               $(PKGDIR)-dev-common/$(OOSDKDIR)
+       mv $(PKGDIR)-dev/$(OOSDKDIR)/index.html* \
+               $(PKGDIR)-dev-common/$(OOSDKDIR)
+  ifeq "$(ENABLE_JAVA)" "y"
+       mkdir -p $(PKGDIR)-dev-common/usr/share/libreoffice/sdk
+       mv $(PKGDIR)-dev/usr/share/libreoffice/sdk/classes \
+               $(PKGDIR)-dev-common/usr/share/libreoffice/sdk
+  endif
+       mkdir -p $(PKGDIR)-dev-common/$(OODIR)/share/glade
+       mv $(PKGDIR)-common/$(OODIR)/share/glade/libreoffice-catalog.xml \
+               $(PKGDIR)-dev-common/$(OODIR)/share/glade
+else
+       rm -rf $(PKGDIR)-common/$(OODIR)/share/glade
+endif
+
+ ifeq "$(PACKAGE_SDK_DOCS)" "y"
+       # move SDK documentation into own package
+       rm -rf $(PKGDIR)-dev-doc
+       mkdir -p $(PKGDIR)-dev-doc/usr/share/doc/libreoffice
+       mv $(PKGDIR)-dev/usr/share/doc/libreoffice/sdk \
+               $(PKGDIR)-dev-doc/usr/share/doc/libreoffice
+       mkdir -p $(PKGDIR)-dev-doc/$(OOSDKDIR)
+       ln -sf /usr/share/doc/libreoffice/sdk/docs \
+               $(PKGDIR)-dev-doc/$(OOSDKDIR)/docs
+       mv $(PKGDIR)-dev/$(OOSDKDIR)/examples \
+               $(PKGDIR)-dev-doc/$(OOSDKDIR)
+       rm -f $(PKGDIR)-dev-doc/usr/share/doc/libreoffice/sdk/readme/LICENSE*
+       # and fix the symlink now dangling due to the move above
+       cd $(PKGDIR)-dev-common/$(OOSDKDIR) && \
+               ln -sf /usr/share/doc/libreoffice/sdk/index.html
+  endif
+
+ifeq "$(PACKAGE_SDK)" "y"
+  ifeq "$(ENABLE_JAVA)" "y"
+       # compat/safety symlink for SDK Java stuff moved to /usr/share
+       rm -f $(PKGDIR)-dev-common/$(OOSDKDIR)/classes
+       mkdir -p $(PKGDIR)-dev-common/$(OOSDKDIR)/classes/com/sun/star/lib/loader
+       cd $(PKGDIR)-dev-common/$(OOSDKDIR)/classes/com/sun/star/lib/loader && \
+               for i in $(CURDIR)/$(PKGDIR)-dev-common/$(shell echo $(OOSDKDIR) | sed -e s/lib/share/)/classes/com/sun/star/lib/loader/*.class; do \
+                       ln -s `echo $$i | sed -e 's,$(CURDIR)/$(PKGDIR)-dev-common,,'` `basename $$i`; \
+               done
+  endif
+       chmod 644 $(PKGDIR)-dev-common/$(OOSDKDIR)/configure.pl
+       chmod 755 $(PKGDIR)-dev-common/$(OOSDKDIR)/setsdkenv_unix
+endif
+
+ifeq "$(ENABLE_EVO2)" "y"
+       mkdir -p $(PKGDIR)-evolution/$(OODIR)/presets/database
+       mkdir -p $(PKGDIR)-evolution/$(OODIR)/share/registry
+       mv $(PKGDIR)-common/$(OODIR)/presets/database/evolocal.odb \
+               $(PKGDIR)-evolution/$(OODIR)/presets/database
+else
+       rm -f $(PKGDIR)-common/$(OODIR)/presets/database/evolocal.odb
+endif
+
+ifeq "$(PACKAGE_BASE)" "y"
+       mkdir -p debian/python3-access2base/$(PYTHON_SITE)
+       mv $(PKGDIR)-common/$(OODIR)/program/access2base.py \
+               debian/python3-access2base/$(PYTHON_SITE)
+else
+       rm -rf $(PKGDIR)-common/$(OODIR)/share/basic/Access2Base
+       t=`mktemp -q`; grep -v Access2Base $(PKGDIR)-common/$(OODIR)/share/basic/dialog.xlc > \
+               $$t && mv $$t $(PKGDIR)-common/$(OODIR)/share/basic/dialog.xlc && rm -f $$t
+       t=`mktemp -q`; grep -v Access2Base $(PKGDIR)-common/$(OODIR)/share/basic/script.xlc > \
+               $$t && mv $$t $(PKGDIR)-common/$(OODIR)/share/basic/script.xlc && rm -f $$t
+       rm -f $(PKGDIR)-common/$(OODIR)/program/access2base.py
+endif
+
+       # ScriptForge
+       mkdir -p debian/python3-scriptforge/$(PYTHON_SITE)
+       mv $(PKGDIR)-common/$(OODIR)/program/scriptforge.py \
+               debian/python3-scriptforge/$(PYTHON_SITE)
+
+ifeq "$(PACKAGE_SDK)" "y"
+       # move gengal stuff into -dev-gui
+       mkdir -p $(PKGDIR)-dev-gui/$(OODIR)/program
+       mv $(PKGDIR)-core/$(OODIR)/program/gengal.bin \
+               $(PKGDIR)-dev-gui/$(OODIR)/program
+       mv $(PKGDIR)-common/$(OODIR)/program/gengal \
+               $(PKGDIR)-dev-gui/$(OODIR)/program
+else
+       rm -f $(PKGDIR)-core/$(OODIR)/program/gengal.bin
+       rm -f $(PKGDIR)-common/$(OODIR)/program/gengal
+endif
+
+ifneq "$(ENABLE_REPORTBUILDER)" "y"
+       # unneeded. a no-Java arch, so the report-builder can't work anyway.
+       # (and we need to remove it here anyway as it otherwise would end up
+       # in -base/-core)
+       rm -rf $(PKGDIR)-report-builder
+       rm -f $(PKGDIR)-core/$(OODIR)/program/librpt*
+else
+  ifeq "$(PACKAGE_BASE)" "y"
+       # move rpt stuff into -report-builder-bin
+       rm -rf $(PKGDIR)-report-builder-bin
+       mkdir -p $(PKGDIR)-report-builder-bin/$(OODIR)/program
+       # it seems that --enable/--disable-reportbuiler affects the install
+       # location. sigh.
+       if [ -e $(PKGDIR)-core/$(OODIR)/program/librptlo.so ]; then \
+               i=core; else i=report-builder; fi; \
+       mv $(PKGDIR)-$$i/$(OODIR)/program/librpt* \
+               $(PKGDIR)-report-builder-bin/$(OODIR)/program
+  endif
+endif
+
+       # move uno_packages/cache to /var and create symlink for for
+       # documentation referencing it...
+       rm -rf $(PKGDIR)-common/$(OODIR)/share/uno_packages
+       mkdir -p $(PKGDIR)-core/var/spool/$(OODIRNAME)/uno_packages/cache
+       mkdir -p $(PKGDIR)-core/$(OODIR)/share/uno_packages
+       ln -s /var/spool/$(OODIRNAME)/uno_packages/cache \
+               $(PKGDIR)-core/$(OODIR)/share/uno_packages/cache
+       perl -pi -e \
+             's,\$$UNO_SHARED_PACKAGES/cache,file:///var/spool/$(OODIRNAME)/uno_packages/cache,g' \
+               $(PKGDIR)-common/$(OODIR)/program/unorc
+       # What is this? unorc per default only mentiones
+       # share/uno_packages/cache...
+       rm -rf $(PKGDIR)-common/$(OODIR)/presets/uno_packages
+
+ifeq "$(ENABLE_FIREBIRD)" "y"
+  ifeq (,$(filter firebird, $(SYSTEM_STUFF)))
+       mkdir -p $(PKGDIR)-sdbc-firebird/$(OODIR)/share
+       mv $(PKGDIR)-common/$(OODIR)/share/firebird \
+               $(PKGDIR)-sdbc-firebird/$(OODIR)/share
+  endif
+endif
+
+       # move soffice.cfg files into the "correct" packages
+       for i in base calc draw impress math writer; do \
+               mkdir -p $(PKGDIR)-uiconfig-$$i/$(OODIR)/share/config/soffice.cfg/modules; \
+               mv $(PKGDIR)-common/$(OODIR)/share/config/soffice.cfg/modules/s$$i \
+                       $(PKGDIR)-uiconfig-$$i/$(OODIR)/share/config/soffice.cfg/modules; \
+               if [ $$i = writer ]; then \
+                       for i in sweb swform swreport swxform; do \
+                       mv $(PKGDIR)-common/$(OODIR)/share/config/soffice.cfg/modules/$$i \
+                               $(PKGDIR)-uiconfig-writer/$(OODIR)/share/config/soffice.cfg/modules; \
+                       done; \
+               fi; \
+               if [ $$i = base ]; then \
+                       for i in dbapp dbbrowser dbquery dbrelation dbtable dbtdata \
+                               sabpilot sbibliography; do \
+                               mv $(PKGDIR)-common/$(OODIR)/share/config/soffice.cfg/modules/$$i \
+                                       $(PKGDIR)-uiconfig-base/$(OODIR)/share/config/soffice.cfg/modules; \
+                       done; \
+               fi; \
+       done
+       mv $(PKGDIR)-common/$(OODIR)/share/config/soffice.cfg/dbaccess \
+               $(PKGDIR)-uiconfig-base/$(OODIR)/share/config/soffice.cfg
+       mv $(PKGDIR)-common/$(OODIR)/share/config/soffice.cfg/writerperfect \
+               $(PKGDIR)-uiconfig-writer/$(OODIR)/share/config/soffice.cfg
+       mkdir -p $(PKGDIR)-uiconfig-report-builder/$(OODIR)/share/config/soffice.cfg/modules
+ifeq "$(ENABLE_REPORTBUILDER)" "y"
+       mv $(PKGDIR)-common/$(OODIR)/share/config/soffice.cfg/modules/dbreport \
+               $(PKGDIR)-uiconfig-report-builder/$(OODIR)/share/config/soffice.cfg/modules
+else
+       rm -rf $(PKGDIR)-common/$(OODIR)/share/config/soffice.cfg/modules/dbreport
+endif
+       mkdir -p $(PKGDIR)-uiconfig-common/$(OODIR)/share/config/
+       mv $(PKGDIR)-common/$(OODIR)/share/config/soffice.cfg \
+               $(PKGDIR)-uiconfig-common/$(OODIR)/share/config
+       mkdir -p $(PKGDIR)-uiconfig-impress/$(OODIR)/share/config/soffice.cfg
+       mv $(PKGDIR)-impress/$(OODIR)/share/config/soffice.cfg/simpress \
+               $(PKGDIR)-uiconfig-impress/$(OODIR)/share/config/soffice.cfg
+
+       find debian/tmp ! -perm -200 | xargs -r chmod u+w
+
+       touch $@
+
+#
+# Generate maintainer scripts
+maintscripts: $(STAMP_DIR)/maintscripts
+$(STAMP_DIR)/maintscripts: $(wildcard debian/shell-lib*.sh) $(wildcard debian/*.preinst.in) $(wildcard debian/*.postinst.in) $(wildcard debian/*.prerm.in) $(wildcard debian/*.postrm.in) debian/control
+       dh_testdir
+
+       rm -f debian/*.{pre,post}{inst,rm}
+
+       # generate maintainer scripts from *.in
+       for PKG in $(PACKAGES); do \
+         for FILE in postinst postrm preinst prerm triggers; do \
+           MAINTSCRIPT=debian/$$PKG.$$FILE ; \
+           if [ -e $$MAINTSCRIPT.in ]; then \
+             sed -n '1,/^#INCLUDE_SHELL_LIB#$$/p' < $$MAINTSCRIPT.in | sed -e '/^#INCLUDE_SHELL_LIB#$$/d' > $$MAINTSCRIPT; \
+             if grep -q "lool" $$MAINTSCRIPT.in; then \
+               cat debian/shell-lib-lool.sh >> $$MAINTSCRIPT; \
+             fi; \
+             if grep -E -q "(validate_extension|sync_extension)" $$MAINTSCRIPT.in; then \
+                cat debian/shell-lib-extensions.sh >> $$MAINTSCRIPT; \
+             fi; \
+             sed -n '/^#INCLUDE_SHELL_LIB#$$/,$$p' < $$MAINTSCRIPT.in | sed -e '/^#INCLUDE_SHELL_LIB#$$/d' >> $$MAINTSCRIPT; \
+             perl -pi -e "s/\@LANGPACKISOS\@/$(LANGPACKISOS)/" $$MAINTSCRIPT; \
+             perl -pi -e "s,\@OODIR\@,$(OODIR),g" $$MAINTSCRIPT; \
+           fi; \
+         done; \
+       done
+       # create .ucf files for libreoffice-l10n-*. First generic ones
+       # libreoffice-l10n.ucf.in, but there also are CJK/CTL specific
+       # files, too...
+       rm -f debian/libreoffice-l10n-*.ucf
+       for iso in $(filter-out en-US,$(LANGPACKISOS)); do \
+           if [ "$$iso" = "bn-IN" ]; then pkgiso=bn; \
+           elif [ "$$iso" = "ca-valencia" ]; then pkgiso=ca; \
+           elif [ "$$iso" = "sr-Latn" ]; then pkgiso=sr; \
+           elif [ "$$iso" = "kmr-Latn" ]; then pkgiso=kmr; \
+           else pkgiso=`echo $$iso | tr \[:upper:\] \[:lower:\]`; \
+           fi; \
+           cat debian/libreoffice-l10n.ucf.in \
+               | sed -e "s/\@ISO\@/$$iso/g" \
+               >> debian/libreoffice-l10n-$$pkgiso.ucf; \
+           if [ -f instdir/share/registry/ctl_$$iso.xcd ]; then \
+               echo "/usr/lib/libreoffice/share/.registry/ctl_$$iso.xcd /etc/libreoffice/registry/ctl_$$iso.xcd" \
+                       >> debian/libreoffice-l10n-$$pkgiso.ucf; \
+           fi; \
+           if [ -f instdir/share/registry/ctlseqcheck_$$iso.xcd ]; then \
+               echo "/usr/lib/libreoffice/share/.registry/ctlseqcheck_$$iso.xcd /etc/libreoffice/registry/ctlseqcheck_$$iso.xcd" \
+                       >> debian/libreoffice-l10n-$$pkgiso.ucf; \
+           fi; \
+           if [ -f instdir/share/registry/cjk_$$iso.xcd ]; then \
+               echo "/usr/lib/libreoffice/share/.registry/cjk_$$iso.xcd /etc/libreoffice/registry/cjk_$$iso.xcd" \
+                       >> debian/libreoffice-l10n-$$pkgiso.ucf; \
+           fi; \
+       done
+
+       touch $@
+
+# Install files generated by setup into package directories
+langpacks: $(STAMP_DIR)/langpacks
+$(STAMP_DIR)/langpacks: $(STAMP_DIR)/build-indep $(STAMP_DIR)/install-indep $(SOURCE_TREE)/bin/lo-xlate-lang
+
+       # remove empty uno_packages dirs somehow in the langpacks(?)
+       for iso in `echo $(LANGPACKISOS) | tr A-Z a-z`; do \
+               rm -rf $(PKGDIR)-l10n-$$iso/$(OODIR)/share/uno_packages; \
+       done
+
+       # remove ooo dirs somehow in the langpacks(?)
+       for iso in `echo $(LANGPACKISOS) | tr A-Z a-z`; do \
+               rm -rf $(PKGDIR)-l10n-$$iso/$(OODIR)/share/dict/ooo; \
+       done
+
+       # remove extra license files
+       for iso in `echo $(LANGPACKISOS) | tr A-Z a-z`; do \
+               rm -rf $(PKGDIR)-l10n-$$iso/$(OODIR)/licenses; \
+               rm -f $(PKGDIR)-l10n-$$iso/$(OODIR)/share/readme/LICENSE*; \
+       done
+
+       # remove extra readme files
+       for iso in `echo $(LANGPACKISOS) | tr A-Z a-z`; do \
+               rm -rf $(PKGDIR)-l10n-$$iso/$(OODIR)/readmes; \
+               rm -f $(PKGDIR)-l10n-$$iso/$(OODIR)/share/readme/README*; \
+       done
+
+       # remove empty help directories
+       for iso in `echo $(LANGPACKISOS) | tr A-Z a-z`; do \
+               rm -rf $(PKGDIR)-l10n-$$iso/$(shell echo $(OODIR) | sed -e s/lib/share/)/help; \
+               rm -rf $(PKGDIR)-l10n-$$iso/$(OODIR)/help; \
+       done
+
+       # install technical.dic
+       for iso in $(LANGPACKISOS); do \
+               if [ "$$iso" = "en-US" ]; then pkg=common; \
+               elif [ "$$iso" = "bn-IN" ]; then pkg=l10n-bn; \
+               elif [ "$$iso" = "ca-valencia" ]; then pkg=l10n-ca; \
+               elif [ "$$iso" = "sr-Latn" ]; then pkg=l10n-sr; \
+               elif [ "$$iso" = "kmr-Latn" ]; then pkg=l10n-kmr; \
+               else pkg=l10n-`echo $$iso | tr A-Z a-z`; \
+               fi; \
+               mkdir -p $(PKGDIR)-$$pkg/$(OODIR)/share/wordbook/$$iso; \
+               install -m644 $(SOURCE_TREE)/extras/source/wordbook/technical.dic \
+                       $(PKGDIR)-$$pkg/$(OODIR)/share/wordbook/$$iso/technical.dic; \
+       done
+
+ifeq "$(DEB_VENDOR)" "Debian"
+       # install Debian presentation template
+       otps=`cd debian/templates; echo *.otp`; \
+       for iso in $(LANGPACKISOS); do \
+         [ "$$iso" = "en-US" ] && continue; \
+         pkgiso=`echo $$iso | tr \[:upper:\] \[:lower:\]`; \
+         [ "$$pkgiso" = "bn-in" ] && pkgiso=bn; \
+         [ "$$pkgiso" = "ca-valencia" ] && pkgiso=ca; \
+         [ "$$pkgiso" = "sr-latn" ] && pkgiso=sr; \
+         [ "$$pkgiso" = "kmr-latn" ] && pkgiso=kmr; \
+         mkdir -p $(PKGDIR)-l10n-$$pkgiso/$(OODIR)/share/template/$$iso/presnt; \
+         for otp in $$otps; do \
+           ln -sf ../../en-US/presnt/$$otp \
+           $(PKGDIR)-l10n-$$pkgiso/$(OODIR)/share/template/$$iso/presnt/$$odt; \
+         done; \
+       done
+endif
+
+ifeq (he,$(findstring he,$(LANGPACKISOS)))
+       perl -pi -e 's#<prop oor:name="CTLSequenceChecking"><value>true</value></prop>#<prop oor:name="CTLSequenceChecking"><value>false</value></prop>#' $(PKGDIR)-l10n-he/$(OODIR)/share/registry/ctl_he.xcd
+endif
+
+       touch $@
+
+# Install files generated by setup into arch-dependent package directories
+install-arch: $(STAMP_DIR)/install-arch
+$(STAMP_DIR)/install-arch: $(STAMP_DIR)/build-arch $(STAMP_DIR)/install-common
+       dh_testdir
+       dh_testroot
+       umask 022
+
+ifeq "$(ENABLE_JAVA)" "y"
+       mkdir -p debian/ure-java/usr/share/java
+       mkdir -p debian/ure-java/$(OODIR)/program/classes
+       for i in java_uno.jar java_websocket.jar; do \
+               mv debian/ure/$(OODIR)/program/classes/$$i \
+                       debian/ure-java/usr/share/java; \
+               ln -sf /usr/share/java/$$i debian/ure-java/$(OODIR)/program/classes/$$i; \
+       done
+       # remove libraries split out to extra packages
+       # will be installed using mh_* or jh_* in install-indep
+       for i in juh jurt ridl unoloader libreoffice; do \
+               rm debian/ure/$(OODIR)/program/classes/$$i.jar; \
+       done
+       for i in libjuh.so javaldx libjpipe.so libjuhx.so \
+               javavendors.xml JREProperties.class \
+               jvmfwk3rc libjava_uno.so; do \
+               mv debian/ure/$(OODIR)/program/$$i \
+                       debian/ure-java/$(OODIR)/program; \
+       done
+endif
+       # and the public libs to their respective packages
+       for i in sal cppu; do \
+               mkdir -p debian/libuno-$${i}3t64/$(OODIR)/program; \
+               mkdir -p debian/libuno-$${i}3t64/usr/lib/$(DEB_HOST_MULTIARCH); \
+               mv debian/ure/$(OODIR)/program/libuno_$${i}.so.3 \
+                       debian/libuno-$${i}3t64/$(OODIR)/program; \
+               ln -sf /$(OODIR)/program/`basename libuno_$$i.so.3` debian/libuno-$${i}3t64/usr/lib/$(DEB_HOST_MULTIARCH)/`basename libuno_$$i.so.3`; \
+       done
+       for i in salhelpergcc3 cppuhelpergcc3 purpenvhelpergcc3; do \
+               mkdir -p debian/libuno-$${i}-3t64/$(OODIR)/program; \
+               mkdir -p debian/libuno-$${i}-3t64/usr/lib/$(DEB_HOST_MULTIARCH); \
+               mv debian/ure/$(OODIR)/program/libuno_$${i}.so.3 \
+                       debian/libuno-$${i}-3t64/$(OODIR)/program; \
+               ln -sf /$(OODIR)/program/`basename libuno_$$i.so.3` debian/libuno-$${i}-3t64/usr/lib/$(DEB_HOST_MULTIARCH)/`basename libuno_$$i.so.3`; \
+       done
+       # we also need libxmlreaderlo.so, libreglo.so and libunoidllo.so (libuno_cppuhelpergcc3.so.3
+        # needs it) and libstorelo.so (libreglo.so needs it)
+       mkdir -p debian/uno-libs-private/$(OODIR)/program
+       for i in libxmlreaderlo.so libreglo.so libstorelo.so libunoidllo.so; do \
+               mv debian/ure/$(OODIR)/program/$$i \
+                       debian/uno-libs-private/$(OODIR)/program; \
+       done
+
+
+ifeq "$(BUILD_PLASMA)" "y"
+       # install files for "create new" ...
+       mkdir -p $(PKGDIR)-plasma/usr/share/templates/.source
+       for i in $(SOURCE_TREE)/extras/source/shellnew/*; do \
+               cp $$i $(PKGDIR)-plasma/usr/share/templates/.source/`basename $$i`; \
+       done
+       cat debian/templates/soffice-template.desktop.in \
+               | sed -e "s/@APP@/Writer/" \
+               | sed -e "s/@EXT@/odt/" \
+               | sed -e "s/@TYPE@/text/" \
+               > $(PKGDIR)-plasma/usr/share/templates/soffice.odt.desktop
+       cat debian/templates/soffice-template.desktop.in \
+               | sed -e "s/@APP@/Calc/" \
+               | sed -e "s/@EXT@/ods/" \
+               | sed -e "s/@TYPE@/spreadsheet/" \
+               > $(PKGDIR)-plasma/usr/share/templates/soffice.ods.desktop
+       cat debian/templates/soffice-template.desktop.in \
+               | sed -e "s/@APP@/Impress/" \
+               | sed -e "s/@EXT@/odp/" \
+               | sed -e "s/@TYPE@/presentation/" \
+               > $(PKGDIR)-plasma/usr/share/templates/soffice.odp.desktop
+       cat debian/templates/soffice-template.desktop.in \
+               | sed -e "s/@APP@/Draw/" \
+               | sed -e "s/@EXT@/odg/" \
+               | sed -e "s/@TYPE@/drawing/" \
+               > $(PKGDIR)-plasma/usr/share/templates/soffice.odg.desktop
+endif
+
+ifeq "$(ENABLE_EVO2)" "y"
+       mkdir -p -m755 $(PKGDIR)-evolution/$(OODIR)/program
+       mv $(PKGDIR)-gnome/$(OODIR)/program/libevoab*.so $(PKGDIR)-evolution/$(OODIR)/program
+       mv $(PKGDIR)-gnome/$(OODIR)/share/registry/evoab.xcd \
+               $(PKGDIR)-evolution/$(OODIR)/share/registry
+endif
+
+ifeq "$(ENABLE_GUI)" "y"
+  ifneq "$(PACKAGE_GEN)" "y"
+       rm -f $(PKGDIR)-core/$(OODIR)/program/libvclplug_genlo.so
+  endif
+
+  ifeq "$(BUILD_GTK3)" "y"
+       # split out gtk stuff
+       mkdir -p $(PKGDIR)-gtk3/$(OODIR)/program/
+       mkdir -p debian/liblibreofficekitgtk/$(OODIR)/program
+       mv $(PKGDIR)-gnome/$(OODIR)/program/*gtk3* $(PKGDIR)-gtk3/$(OODIR)/program/
+  ifeq "$(ENABLE_PACKAGEKIT)" "y"
+       # FIXME: ended up in -gtk3 due to a bug. should it stay there or be in -gnome?
+       mv $(PKGDIR)-gnome/$(OODIR)/program/liblosessioninstalllo.so \
+               $(PKGDIR)-gtk3/$(OODIR)/program/
+  endif
+       mv $(PKGDIR)-core/$(OODIR)/program/liblibreofficekitgtk.so \
+               debian/liblibreofficekitgtk/$(OODIR)/program
+  endif
+  ifeq "$(BUILD_GTK4)" "y"
+       mkdir -p $(PKGDIR)-gtk4/$(OODIR)/program/
+       mv $(PKGDIR)-gnome/$(OODIR)/program/*gtk4* $(PKGDIR)-gtk4/$(OODIR)/program
+       mv $(PKGDIR)-core/$(OODIR)/program/libavmediagtk.so $(PKGDIR)-gtk4/$(OODIR)/program
+  endif
+endif
+
+ifeq "$(ENABLE_INTROSPECTION)" "y"
+       echo "workdir/CustomTarget/sysui/share/libreoffice/LOKDocView-0.1.typelib /usr/lib/$(DEB_HOST_MULTIARCH)/girepository-1.0" >> debian/gir1.2-lokdocview-0.1.install
+       dh_install -pgir1.2-lokdocview-0.1
+endif
+ifeq "$(PACKAGE_LOKIT)" "y"
+       echo "include/LibreOfficeKit usr/include" > debian/libreofficekit-dev.install
+ifeq "$(ENABLE_INTROSPECTION)" "y"
+       echo "workdir/CustomTarget/sysui/share/libreoffice/LOKDocView-0.1.gir /usr/share/gir-1.0/" >> debian/libreofficekit-dev.install
+endif
+       dh_install -plibreofficekit-dev
+endif
+
+ifeq "$(PACKAGE_BASE)" "y"
+       mkdir -p $(PKGDIR)-base-core/$(OODIR)/program
+       mv $(PKGDIR)-base/$(OODIR)/program/libdbalo.so \
+               $(PKGDIR)-base-core/$(OODIR)/program
+       mv $(PKGDIR)-base/$(OODIR)/program/libdbahsqllo.so \
+               $(PKGDIR)-base-core/$(OODIR)/program
+endif
+
+ifeq "$(ENABLE_JAVA)" "y"
+  ifneq (,$(filter hsqldb, $(SYSTEM_STUFF)))
+       # link to system hsqldb
+       mkdir -p $(PKGDIR)-base/$(OODIR)/program/classes
+       ln -sf $(HSQLDB_JAR) \
+               $(PKGDIR)-base/$(OODIR)/program/classes/hsqldb.jar
+  endif
+endif
+
+ifeq "$(ENABLE_JAVA)" "y"
+       # move the officebean so into libofficebean-java (into the arch-dep
+       # JNI paths). the jar will be installed using mh_ ...
+       rm -rf debian/libofficebean-java
+       mkdir -p -m755 debian/libofficebean-java/usr/lib/jni
+       mkdir -p -m755 debian/libofficebean-java/$(OODIR)/program
+       mv $(PKGDIR)-core/$(OODIR)/program/libofficebean.so \
+               debian/libofficebean-java/usr/lib/jni
+       cd debian/libofficebean-java/$(OODIR)/program && \
+               ln -s /usr/lib/jni/libofficebean.so libofficebean.so
+       sed -e s/@version@/$(shell echo $(DEB_VERSION_UPSTREAM) | cut -d~ -f1)/ \
+               < $(SOURCE_TREE)/bean/pom.officebean.xml > debian/pom.officebean.xml
+       # ... here.
+       mh_installpoms -plibofficebean-java
+       mh_installjar -plibofficebean-java -l debian/pom.officebean.xml instdir/program/classes/officebean.jar
+       # create symlink where LO expects it
+       mkdir -p $(CURDIR)/debian/libofficebean-java/$(OODIR)/program/classes
+       cd $(CURDIR)/debian/libofficebean-java/$(OODIR)/program/classes && \
+               ln -s /usr/share/java/officebean.jar officebean.jar
+       # fix up Class-Path
+       jh_classpath --classpath="libreoffice.jar" \
+               debian/libofficebean-java/usr/share/java/officebean.jar
+endif
+
+       mkdir -p -m755 $(PKGDIR)-base/usr/share/applications \
+                      $(PKGDIR)-core/usr/share/applications
+
+       sed -i -e 's/Education;Science;//' $(PKGDIR)-math/usr/share/applications/libreoffice-math.desktop
+       # invalid, according to lintian. make it shut up.
+       for i in writer calc impress draw math base; do \
+               perl -pi -e 's/Application;//; s/X-Red-Hat-Base;//; s/X-SuSE-Core-Office;//; s/X-MandrivaLinux-.*;//;' $(PKGDIR)-$$i/usr/share/applications/libreoffice-$$i.desktop; \
+       done
+
+ifeq "$(ENABLE_PYTHON)" "y"
+       # PyUNO packaging
+       install -d debian/python3-uno/$(PYTHON_SITE)
+       # prepend stuff so that it works when the module is not in LOs
+       # directories but in $(PYTHON_SITE). Can't be a patch (anymore)
+       # as otherwise the python-based unittests fail miserably.
+       echo "import sys, os" > debian/python3-uno/$(PYTHON_SITE)/uno.py
+       echo "sys.path.append('/$(OODIR)/program')" >> debian/python3-uno/$(PYTHON_SITE)/uno.py
+       echo "os.putenv('URE_BOOTSTRAP', 'vnd.sun.star.pathname:/$(OODIR)/program/fundamentalrc')" >> debian/python3-uno/$(PYTHON_SITE)/uno.py
+       cat debian/python3-uno/$(OODIR)/program/uno.py >> debian/python3-uno/$(PYTHON_SITE)/uno.py
+       rm -f debian/python3-uno/$(OODIR)/program/uno.py
+       mv debian/python3-uno/$(OODIR)/program/unohelper.py debian/python3-uno/$(PYTHON_SITE)
+       touch debian/python3-uno/$(OODIR)/program/pythonloader.unorc
+       chmod u+w debian/python3-uno/$(OODIR)/program/pythonloader.unorc
+       ( echo 'PYTHONHOME=file:///usr/lib/python$(PYMAJOR).$(PYMINOR)' ;\
+         echo 'PYTHONPATH=$$PYTHONHOME $$PYTHONHOME/site-packages $$PYTHONHOME/lib-dynload $$PYTHONHOME/lib-tk $$ORIGIN' \
+       ) >> debian/python3-uno/$(OODIR)/program/pythonloader.unorc
+       chmod u-w debian/python3-uno/$(OODIR)/program/pythonloader.unorc
+  ifeq "$(ENABLE_SCRIPT_PROVIDER_PYTHON)" "y"
+       rm -f debian/libreoffice-script-provider-python/$(OODIR)/share/extensions/script-provider-for-python/registration/LICENSE
+  endif
+
+       mkdir -p debian/python3-uno/usr/share/doc/python3-uno
+       cp -r $(SOURCE_TREE)/pyuno/demo \
+         debian/python3-uno/usr/share/doc/python3-uno; \
+       for i in $(SOURCE_TREE)/pyuno/doc/*; do \
+               cp $$i debian/python3-uno/usr/share/doc/python3-uno; \
+       done
+       cd debian/python3-uno/usr/share/doc/python3-uno && \
+               find . -type d -name "CVS" | xargs -r rm -rf
+endif
+
+       # should be empty now, remove if there
+       rm -rf $(PKGDIR)-core/$(OODIR)/ure
+
+ifeq "$(PACKAGE_SDK)" "y"
+       # create wrapper scripts
+       cd $(PKGDIR)-dev/$(OOSDKDIR)/bin && \
+       for i in *; do \
+               mv $$i $$i.bin && \
+               ( \
+                 echo "#!/bin/sh"; \
+                 echo "# wrapper script for OOos SDK programs"; \
+                 echo ""; \
+                 echo 'LD_LIBRARY_PATH=/$(OODIR)/program /$(OOSDKDIR)/bin/`basename $$0`.bin "$$@"'; \
+               ) > $$i; \
+               chmod 755 $$i; \
+       done
+        # remove symlink, it should be in -dev-doc
+       cd $(PKGDIR)-dev/$(OOSDKDIR) && \
+               rm docs
+
+       rm -f $(PKGDIR)-dev/usr/share/doc/libreoffice/sdk/readme/LICENSE.gz
+endif
+
+       # remove empty resource directories
+       for i in draw base writer impress calc math; do \
+               rm -rf $(PKGDIR)-$$i/$(OODIR)/program/resource; \
+       done
+
+ifeq "$(ENABLE_JAVA)" "y"
+       mkdir -p $(PKGDIR)-sdbc-hsqldb/$(OODIR)/program
+       mkdir -p $(PKGDIR)-sdbc-hsqldb/usr/lib/libreoffice/program/classes
+       mkdir -p $(PKGDIR)-sdbc-hsqldb/usr/share/libreoffice/program/classes
+       mv $(PKGDIR)-base/$(OODIR)/program/libhsqldb.so \
+               $(PKGDIR)-sdbc-hsqldb/$(OODIR)/program
+  ifneq (,$(filter hsqldb, $(SYSTEM_STUFF)))
+       mv $(PKGDIR)-base/usr/lib/libreoffice/program/classes/hsqldb.jar \
+               $(PKGDIR)-sdbc-hsqldb/usr/lib/libreoffice/program/classes
+  endif
+       for i in lib share; do \
+               mv $(PKGDIR)-base/usr/$$i/libreoffice/program/classes/sdbc_hsqldb.jar \
+                       $(PKGDIR)-sdbc-hsqldb/usr/$$i/libreoffice/program/classes; \
+       done
+endif
+ifeq "$(ENABLE_FIREBIRD)" "y"
+       mkdir -p $(PKGDIR)-sdbc-firebird/$(OODIR)/program
+       mv $(PKGDIR)-core/$(OODIR)/program/libfirebird_sdbclo.so \
+               $(PKGDIR)-sdbc-firebird/$(OODIR)/program
+  ifeq (,$(filter firebird, $(SYSTEM_STUFF)))
+       for i in libEngine12.so libfbclient.so.2; do \
+               mv $(PKGDIR)-core/$(OODIR)/program/$$i \
+                       $(PKGDIR)-sdbc-firebird/$(OODIR)/program; \
+       done
+  endif
+endif
+ifeq "$(ENABLE_MARIADB)" "y"
+       mkdir -p $(PKGDIR)-sdbc-mysql/$(OODIR)/program
+       mv $(PKGDIR)-base/$(OODIR)/program/libmysqlclo.so \
+               $(PKGDIR)-sdbc-mysql/$(OODIR)/program
+       # FIXME. Do in scp2
+       mkdir -p $(PKGDIR)-sdbc-mysql/$(OODIR)/share/registry
+       install -m644 instdir/share/registry/mysqlc.xcd \
+               $(PKGDIR)-sdbc-mysql/$(OODIR)/share/registry
+endif
+
+       mkdir -p $(PKGDIR)-base-drivers/$(OODIR)/program
+       for i in `find $(PKGDIR)-base/$(OODIR)/program/ -name "*.so" \
+               -a \! -name "libdbulo*" -a \! -name "libdbaxml*" -a \! -name "libdbp*" -a \! -name "libabplo.so"`; do \
+               mv $$i \
+                       $(PKGDIR)-base-drivers/$(OODIR)/program; \
+       done
+
+ifeq "$(BUILD_NOGUI_PACKAGES)" "y"
+       # create no-GUI packages
+       for p in $(shell dh_listpackages -a | grep nogui | grep -v libreoffice-nogui | cut -d- -f2- | sed -e s/-nogui// | xargs); do \
+               rm -rf $(PKGDIR)-$$p-nogui; \
+               cp -ra $(PKGDIR)-$$p $(PKGDIR)-$$p-nogui; \
+               for i in $(PKGDIR)-$$p-nogui/$(OODIR)/program/*; do \
+                       if [ -e instdir-nogui/program/`basename $$i` ]; then \
+                               cp -v instdir-nogui/program/`basename $$i` \
+                                       $(PKGDIR)-$$p-nogui/$(OODIR)/program; \
+                       else \
+                               rm -fv $(PKGDIR)-$$p-nogui/$(OODIR)/program/`basename $$i`; \
+                       fi; \
+               done; \
+       done
+       # remove lib*uilo.so in -nogui
+       find debian/libreoffice-*-nogui/$(OODIR)/program -name "lib*uilo.so" -a ! -name "libuuilo.so" \
+               -a ! -name "libforuilo.so" -exec rm {} \;
+       rm -f debian/libreoffice-base-nogui/$(OODIR)/program/libdbulo.so
+       # no need to have the Extension Manager GUI
+       rm -f debian/libreoffice-core-nogui/$(OODIR)/program/libdeploymentgui.so
+       # and (no UI, so not needed) not needed .desktop files. .ui files are needed though because otherwise
+       # it obscurely fails (#1028290) or just crashes (https://lists.debian.org/debian-backports/2023/06/msg00000.html) :(
+       find debian/libreoffice-*-nogui/usr/share/applications/*.desktop -exec rm {} \;
+       # unneeded launchers
+       find debian/libreoffice-*-nogui/usr/bin/lo* -exec rm {} \;
+       # otherwise we get errors since the launchers are missing
+       find debian/libreoffice-*-nogui/usr/share/metainfo/libreoffice-*.appdata.xml -exec rm {} \;
+
+       # OGLTrans.so is not in -impress-nogui so we don't need this either
+       rm -f debian/libreoffice-impress-nogui/$(OODIR)/share/registry/ogltrans.xcd
+       rm -f debian/libreoffice-impress-nogui/$(OODIR)/share/config/soffice.cfg/simpress/transitions-ogl.xml
+       rm -rf debian/libreoffice-impress-nogui/$(OODIR)/opengl
+endif
+
+       rm -f *.bug-script
+       for i in $(ARCH_DEP_PACKAGES); do \
+               if [ -e debian/$$i.bug-script.in ]; then \
+                       cat debian/$$i.bug-script.in \
+                               | sed -e "s/@PLATFORMID@/$(PLATFORMID)/" \
+                               | sed -e "s/@RTL_OS@/$(RTL_OS)/" \
+                               | sed -e "s/@RTL_ARCH@/$(RTL_ARCH)/" \
+                               | sed -e "s/@OOVER@/$(OOVER)/" \
+                               > debian/$$i.bug-script; \
+               fi ;\
+               if [ -e debian/$$i.ucf ]; then \
+                       if [ ! -e debian/$$i.bug-script.in ]; then \
+                               printf "#!/bin/sh\n\n" > debian/$$i.bug-script; \
+                       fi ;\
+                       echo "ucfq $$i >&3" >>  debian/$$i.bug-script; \
+               fi ;\
+       done
+       for i in $(ARCH_DEP_PACKAGES); do \
+               if [ -e debian/$$i.bug-control ]; then \
+                       if grep -q "^report-with:" debian/$$i.bug-control; then \
+                               extra_packages=`grep "^report-with:" debian/$$i.bug-control | sed -e "s/^report-with: //"`; \
+                               for p in $$extra_packages; do \
+                                       if [ $$i != $$p ] && [ -f debian/$$p.bug-script ] && ! echo $$added_packages | grep -q $$p && \
+                                               ! grep -q bug\/$$p\/script debian/$$i.bug-script; then \
+                                                       printf "#!/bin/sh\n" >> debian/$$i.bug-script; \
+                                                       printf "if [ -x /usr/share/bug/$$p/script ]; then /usr/share/bug/$$p/script; fi\n" >> debian/$$i.bug-script; \
+                                                       added_packages="$$added_packages $$p"; \
+                                       fi; \
+                               done; \
+                               added_packages=; \
+                       fi; \
+               fi; \
+       done
+       # generate .links files from *.in
+       for PKG in $(ARCH_DEP_PACKAGES); do \
+         LINKS=debian/$$PKG.links ; \
+         if [ -e $$LINKS.in ]; then \
+           sed -e "s#\@OODIR\@#$(OODIR)#g" \
+               < $$LINKS.in > $$LINKS ; \
+         fi; \
+       done
+
+       # make config xml "pretty" to make ucf --three-way work.
+       for p in $(ARCH_DEP_PACKAGES); do \
+               for i in `find debian/$$p/$(OODIR)/share/registry -name "*.xcd"`; do \
+                       t=`mktemp -q`; \
+                       xmllint --pretty 1 $$i > $$t; \
+                       mv $$t $$i; \
+               done; \
+       done
+       # and "hide" the ucf source registry; makes it less confusing for
+       # people who do know /usr/lib/libreoffice/share/registry.
+       for p in $(ARCH_DEP_PACKAGES); do \
+               for i in `find debian/$$p -type d -wholename "*$(OODIR)/share/registry"`; do \
+                       mv $$i `echo $$i | sed -e s/registry/.registry/`; \
+               done; \
+       done
+
+ifeq (,$(findstring $(DEB_HOST_ARCH),$(OOO_EXTENSIONS_ARCHS)))
+       rm -f $(PKGDIR)-core/$(OODIR)/program/libunopkgapp.so
+       rm -f $(PKGDIR)-core/$(OODIR)/program/unopkg.bin
+       rm -f $(PKGDIR)-core/$(OODIR)/program/libdeploymentgui.so
+endif
+
+       touch $@
+
+# Install files generated by setup into arch-independent package directories
+install-indep: $(STAMP_DIR)/install-indep
+#$(STAMP_DIR)/install-indep: debian/libreoffice.install
+#$(STAMP_DIR)/install-indep: debian/libreoffice.dirs
+$(STAMP_DIR)/install-indep: $(STAMP_DIR)/build-indep $(STAMP_DIR)/install-common
+       dh_testdir
+       dh_testroot
+
+ifneq "$(shell echo $(USE_GSTREAMER) | grep -q y && echo 0)" "0"
+       # sound doesn't work anyway, remove the .wav files to save space
+       rm -rf $(PKGDIR)-common/$(OODIR)/share/gallery/sounds
+       rm -f $(PKGDIR)-common/$(OODIR)/share/gallery/sg9.*
+endif
+
+       rm -f $(PKGDIR)-common/$(OODIR)/program/oo_product.bmp
+
+       # install openoffice-xlate-lang
+       install -d -m755 $(PKGDIR)-common/usr/share/$(OODIRNAME)/bin
+       install -m755 $(SOURCE_TREE)/bin/lo-xlate-lang \
+               $(PKGDIR)-common/usr/share/$(OODIRNAME)/bin
+
+ifeq "$(ENABLE_HELP)" "n"
+       # when we don't build helpcontent2 here we are missing helpxsl.zip so
+       # this file doesn't get installed either. Do it manually..
+       mkdir -p -m755 $(PKGDIR)-common/$(shell echo $(OODIR) | sed -e s/lib/share/)/help && \
+       cp $(SOURCE_TREE)/xmlhelp/util/main_transform.xsl \
+               $(PKGDIR)-common/$(shell echo $(OODIR) | sed -e s/lib/share/)/help
+       cp $(SOURCE_TREE)/xmlhelp/util/idxcaption.xsl \
+               $(PKGDIR)-common/$(shell echo $(OODIR) | sed -e s/lib/share/)/help
+       cp $(SOURCE_TREE)/xmlhelp/util/idxcontent.xsl \
+               $(PKGDIR)-common/$(shell echo $(OODIR) | sed -e s/lib/share/)/help
+endif
+
+ifeq "$(PACKAGE_SDK)" "y"
+  ifeq "$(PACKAGE_SDK_DOCS)" "y"
+       rm -f $(PKGDIR)-dev-doc/usr/share/doc/libreoffice-dev-doc/LICENSE
+       perl -pi -e 's,license.html,http://www.gnu.org/licenses/lgpl.html,' \
+               $(PKGDIR)-dev-doc/$(OOSDKDIR)/index.html
+       find $(PKGDIR)-dev-doc/$(OODIR)/sdk/examples -type f -exec chmod 644 {} \;
+  endif
+endif
+
+ifeq "$(ENABLE_JAVA)" "y"
+       # move common Java stuff to -java-common
+       rm -rf $(PKGDIR)-java-common
+       mkdir -p $(PKGDIR)-java-common/$(OODIR)/program/classes
+       mkdir -p $(PKGDIR)-java-common/$(OODIR)/share/Scripts
+       mkdir -p $(PKGDIR)-java-common/$(shell echo $(OODIR) | sed -e s/lib/share/)/program/classes
+       mv $(PKGDIR)-common/$(OODIR)/share/Scripts/java \
+               $(PKGDIR)-java-common/$(OODIR)/share/Scripts
+       # remove unoil and officebean; installed later/in install-arch by mh_* and in extra packages anyway
+       rm -f $(PKGDIR)-common/$(OODIR)/program/classes/unoil.jar
+       rm -f $(PKGDIR)-common/$(OODIR)/program/classes/officebean.jar
+       # and move the rest
+       mv $(PKGDIR)-common/$(OODIR)/program/classes/* \
+               $(PKGDIR)-java-common/$(shell echo $(OODIR) | sed -e s/lib/share/)/program/classes
+       cd $(PKGDIR)-java-common/$(OODIR)/program/classes && \
+               for i in $(CURDIR)/$(PKGDIR)-java-common/$(shell echo $(OODIR) | sed -e s/lib/share/)/program/classes/*; do \
+                       case "`basename $$i`" in aportisdoc.jar|pexcel.jar|pocketword.jar) continue ;; \
+                       *) ln -s `echo $$i | sed -e 's,$(CURDIR)/$(PKGDIR)-java-common,,'` `basename $$i` ;; esac; \
+       done
+
+ifeq "$(BUILD_TEST_PACKAGES)" "y"
+  ifeq "$(ENABLE_JUNIT4)" "y"
+       rm -rf $(PKGDIR)-subsequentcheckbase
+       mkdir -p $(PKGDIR)-subsequentcheckbase/$(OODIR)/program/classes/
+       for jar in OOoRunner test test-tools ConnectivityTools; do \
+               cp workdir/Jar/$$jar.jar $(PKGDIR)-subsequentcheckbase/$(OODIR)/program/classes/; \
+       done
+       # fix Class-Path: to not include build path
+       jh_classpath --classpath="libreoffice.jar OOoRunner.jar file:///usr/share/java/junit4.jar "\
+                $(PKGDIR)-subsequentcheckbase/$(OODIR)/program/classes/test.jar
+  endif
+
+       rm -rf $(PKGDIR)-smoketest-data
+       mkdir -p $(PKGDIR)-smoketest-data/$(shell echo $(OODIR) | sed -e s/lib/share/)/program/classes
+       mkdir -p $(PKGDIR)-smoketest-data/$(OODIR)/program/classes
+       mv $(PKGDIR)-java-common/$(shell echo $(OODIR) | sed -e s/lib/share/)/program/classes/smoketest.jar \
+               $(PKGDIR)-smoketest-data/$(shell echo $(OODIR) | sed -e s/lib/share/)/program/classes
+       mv $(PKGDIR)-java-common/$(OODIR)/program/classes/smoketest.jar \
+               $(PKGDIR)-smoketest-data/$(OODIR)/program/classes
+       rm -f $(PKGDIR)-java-common/$(OODIR)/program/classes/smoketest.jar
+
+       mkdir -p $(PKGDIR)-smoketest-data/usr/share/libreoffice
+       cp workdir/Extension/TestExtension.oxt \
+               $(PKGDIR)-smoketest-data/usr/share/libreoffice
+       cp workdir/Zip/smoketestdoc.sxw \
+               $(PKGDIR)-smoketest-data/usr/share/libreoffice
+endif
+endif
+
+       # fix permissions
+       chmod 644 $(PKGDIR)-common/$(OODIR)/CREDITS.fodt
+       # Do we really need this (ALV2 mandating it) or can this go?
+       chmod 644 $(PKGDIR)-common/$(OODIR)/NOTICE
+
+       # set PYTHONPATH in unopkg
+       perl -pi -e 's,unset XENVIRONMENT,unset XENVIRONMENT\n\nexport PYTHONPATH=\"/$(OODIR)/program\"\n\n,' \
+               $(PKGDIR)-common/$(OODIR)/program/unopkg
+
+       mkdir -p debian/fonts-opensymbol/usr/share/fonts/truetype/libreoffice
+       mv $(PKGDIR)-common/$(OODIR)/share/fonts/truetype/opens___.ttf \
+               debian/fonts-opensymbol/usr/share/fonts/truetype/libreoffice
+       # this is double-installed since https://cgit.freedesktop.org/libreoffice/core/commit/?id=25f4cc12fb59284392914c93a0ae6ad199ecc069
+       rm -f $(PKGDIR)-common/$(OODIR)/program/resource/common/fonts/opens___.ttf
+       mkdir -p debian/fonts-opensymbol/etc/fonts/conf.d
+       mkdir -p debian/fonts-opensymbol/usr/share/fontconfig/conf.avail
+       # this only works with --without-fonts. Otherwise we get all stuff here,
+       # not only the Symbol->OpenSymbol part... But we don't support --with-fonts
+       # build here right now anyway.
+       mv $(PKGDIR)-common/$(OODIR)/share/fonts/truetype/fc_local.conf \
+               debian/fonts-opensymbol/usr/share/fontconfig/conf.avail/30-opensymbol.conf
+       cd debian/fonts-opensymbol/etc/fonts/conf.d/ && \
+               ln -s /usr/share/fontconfig/conf.avail/30-opensymbol.conf
+
+       # remove extra license files
+       rm -rf $(PKGDIR)-common/$(OODIR)/licenses
+       rm -f $(PKGDIR)-common/$(OODIR)/share/readme/LICENSE*
+       rm -f $(PKGDIR)-common/$(OODIR)/THIRDPARTYLICENSEREADME.html
+       rm -f $(PKGDIR)-common/$(OODIR)/LICENSE
+
+       # remove extra readme files
+       rm -rf $(PKGDIR)-common/$(OODIR)/readmes
+       rm -f $(PKGDIR)-common/$(OODIR)/share/readme/README*
+       rm -f $(PKGDIR)-common/$(OODIR)/README.html
+       rm -f $(PKGDIR)-common/$(OODIR)/README
+
+       # URE got moved to /usr/lib, so this is obsolete
+       for i in ure/lib ure; do \
+               if [ -e $(PKGDIR)-common/$(OODIR)/$$i ]; then \
+                       rmdir $(PKGDIR)-common/$(OODIR)/$$i; \
+               fi; \
+       done
+
+       # move psprint.conf into /etc. for non-GUI it somehow is not installed
+       # do do it manually. FIXME: is psprint.conf still a thing?
+ifeq "$(ENABLE_GUI)" "y"
+       mkdir -p $(PKGDIR)-common/etc/$(OODIRNAME)
+       mv $(PKGDIR)-common/$(OODIR)/share/psprint/psprint.conf \
+               $(PKGDIR)-common/etc/$(OODIRNAME)
+else
+       mkdir -p $(PKGDIR)-common/etc/$(OODIRNAME)
+       mkdir -p $(PKGDIR)-common/$(OODIR)/share/psprint
+       install -m644 vcl/unx/generic/printer/configuration/psprint.conf \
+               $(PKGDIR)-common/etc/$(OODIRNAME)
+endif
+       ln -s /etc/$(OODIRNAME)/psprint.conf \
+               $(PKGDIR)-common/$(OODIR)/share/psprint/psprint.conf
+
+       # prepare a fake sofficerc in the place where OOo expects it
+       # which does nothing except reference the "normal" one
+       # which we put into /etc
+       mkdir -p $(PKGDIR)-common/etc/$(OODIRNAME)
+       mv $(PKGDIR)-common/$(OODIR)/program/sofficerc \
+               $(PKGDIR)-common/etc/$(OODIRNAME)/sofficerc
+       ( \
+         echo "# *DO NOT* CHANGE THIS FILE. IT ONLY TAKES THE SETTINGS FROM"; \
+         echo "# /etc/$(OODIRNAME)/sofficerc. CHANGE THAT FILE IF YOU"; \
+         echo "# REALLY WANT TO CHANGE SOMETHING."; \
+         echo "FHS_CONFIG_FILE=file:///etc/$(OODIRNAME)/sofficerc"; \
+         echo "" >> $(PKGDIR)-common/$(OODIR)/program/sofficerc; \
+       ) > $(PKGDIR)-common/$(OODIR)/program/sofficerc
+       cat $(PKGDIR)-common/etc/$(OODIRNAME)/sofficerc \
+               | perl -p -e 's/(.*)=(.*)/$$1=\$${\$$FHS_CONFIG_FILE:Bootstrap:$$1}/' \
+               >> $(PKGDIR)-common/$(OODIR)/program/sofficerc
+       # except for URE_BOOTSTRAP...
+       TMP=`mktemp -q`; \
+               grep -v URE_BOOTSTRAP $(PKGDIR)-common/$(OODIR)/program/sofficerc > $$TMP && mv $$TMP $(PKGDIR)-common/$(OODIR)/program/sofficerc && \
+               grep URE_BOOTSTRAP $(PKGDIR)-common/etc/$(OODIRNAME)/sofficerc >> $(PKGDIR)-common/$(OODIR)/program/sofficerc && \
+               grep -v URE_BOOTSTRAP $(PKGDIR)-common/etc/$(OODIRNAME)/sofficerc > $$TMP && mv $$TMP $(PKGDIR)-common/etc/$(OODIRNAME)/sofficerc
+
+       install -m 644 debian/soffice.sh \
+         $(PKGDIR)-common/etc/$(OODIRNAME)/soffice.sh
+
+       set -e; \
+       for i in $(IMAGES); do \
+               z=images_$$i.zip; p=$$i; \
+               case "$$i" in \
+                       breeze*) p=breeze; ;; \
+                       colibre*) p=colibre; ;; \
+                       elementary*) p=elementary; ;; \
+                       karasa_jaga*) p=karasa-jaga; ;; \
+                       sifr*) p=sifr; ;; \
+                       sukapura*) p=sukapura; ;; \
+                       *) ;; \
+               esac; \
+               mkdir -p $(PKGDIR)-style-$$p/$(shell echo $(OODIR) | sed -e s/lib/share/)/share/config; \
+               mv $(PKGDIR)-common/$(OODIR)/share/config/$$z \
+                       $(PKGDIR)-style-$$p/$(shell echo $(OODIR) | sed -e s/lib/share/)/share/config/; \
+               mkdir -p $(PKGDIR)-style-$$p/$(OODIR)/share/config; \
+               ln -s /$(shell echo $(OODIR) | sed -e s/lib/share/)/share/config/$$z \
+                       $(PKGDIR)-style-$$p/$(OODIR)/share/config/$$z; \
+       done
+       mkdir -p $(PKGDIR)-help-common/$(shell echo $(OODIR) | sed -e s/lib/share/)/share/config; \
+       mv $(PKGDIR)-common/$(OODIR)/share/config/images_helpimg.zip \
+               $(PKGDIR)-help-common/$(shell echo $(OODIR) | sed -e s/lib/share/)/share/config/; \
+       mkdir -p $(PKGDIR)-help-common/$(OODIR)/share/config; \
+       ln -s /$(shell echo $(OODIR) | sed -e s/lib/share/)/share/config/images_helpimg.zip \
+               $(PKGDIR)-help-common/$(OODIR)/share/config/images_helpimg.zip; \
+
+ifeq "$(DEB_VENDOR)" "Debian"
+       # install Debian presentation template
+       mkdir -p $(PKGDIR)-common/$(OODIR)/share/template/en-US/presnt
+       install -m644 debian/templates/*.otp $(PKGDIR)-common/$(OODIR)/share/template/en-US/presnt/
+endif
+
+ifeq "$(PACKAGE_SDK_DOCS)" "y"
+       # add symlinks for docs and examples
+       cd $(PKGDIR)-dev-doc/$(OOSDKDIR) && \
+               rm -rf docs && \
+               ln -sf /usr/share/doc/libreoffice/sdk/docs docs
+endif
+
+ifeq "$(ENABLE_JAVA)" "y"
+  ifeq "$(ENABLE_SCRIPT_PROVIDER_BSH)" "y"
+       mkdir -p $(PKGDIR)-script-provider-bsh/$(OODIR)/share/Scripts
+       mv $(PKGDIR)-common/$(OODIR)/share/Scripts/beanshell \
+               $(PKGDIR)-script-provider-bsh/$(OODIR)/share/Scripts
+  endif
+
+  ifeq "$(ENABLE_SCRIPT_PROVIDER_JS)" "y"
+       mkdir -p $(PKGDIR)-script-provider-js/$(OODIR)/share/Scripts
+       mv $(PKGDIR)-common/$(OODIR)/share/Scripts/javascript \
+               $(PKGDIR)-script-provider-js/$(OODIR)/share/Scripts
+  endif
+
+  ifeq "$(ENABLE_MEDIAWIKI)" "y"
+       rm -f $(PKGDIR)-wiki-publisher/$(OODIR)/share/extensions/wiki-publisher/registration/LICENSE
+       rm -f $(PKGDIR)-wiki-publisher/$(OODIR)/share/extensions/wiki-publisher/license/THIRDPARTYLICENSEREADME.html
+  endif
+
+  ifeq "$(ENABLE_NLPSOLVER)" "y"
+       rm -f $(PKGDIR)-nlpsolver/$(OODIR)/share/extensions/nlpsolver/registration/LICENSE
+  endif
+endif
+
+       # unopkg creates stuff in there.
+       mkdir -p $(PKGDIR)-common/$(OODIR)/share/prereg
+       mkdir -p $(PKGDIR)-common/$(shell echo $(OODIR) | sed -e s/usr/var/)/share/prereg/bundled
+       ln -s /$(shell echo $(OODIR) | sed -e s/usr/var/)/share/prereg/bundled \
+               $(PKGDIR)-common/$(OODIR)/share/prereg/bundled
+
+       # dedup
+       cd $(PKGDIR)-common/usr/share/icons && \
+               rdfind -outputname /dev/null -makesymlinks true hicolor gnome
+       # should happen on dh_link, apparently didn't fix the /home/... symlinks
+       # so do this...
+       symlinks -r -s -c $(PKGDIR)-common
+
+       # looks like it's pretty nonstandard to have symlinks; this breaks
+       # e.g. thegeneration from the appdata files. So get rid of those
+       # and move them to the libreoffice-* names after all.
+       mkdir -p $(PKGDIR)-common/usr/share/applications
+       for i in startcenter xsltfilter; do \
+               rm -f $(PKGDIR)-common/usr/share/applications/libreoffice-$$i.desktop; \
+       mv $(PKGDIR)-common/$(OODIR)/share/xdg/$$i.desktop \
+               $(PKGDIR)-common/usr/share/applications/libreoffice-$$i.desktop; \
+       done
+
+       # fix the shebangs to make lintian happy
+       sed -i "s,/usr/bin/env perl,/usr/bin/perl,g" \
+               $(PKGDIR)-common/usr/share/$(OODIRNAME)/bin/lo-xlate-lang
+
+       for i in $(ARCH_INDEP_PACKAGES); do \
+               if [ -e debian/$$i.bug-script.in ]; then \
+                       cat debian/$$i.bug-script.in \
+                               | sed -e "s/@PLATFORMID@/$(PLATFORMID)/" \
+                               > debian/$$i.bug-script; \
+               fi ;\
+               if [ -e debian/$$i.ucf ]; then \
+                       if [ ! -e debian/$$i.bug-script.in ]; then \
+                               printf "#!/bin/sh\n\n" > debian/$$i.bug-script; \
+                       fi ;\
+                       echo "ucfq $$i >&3" >>  debian/$$i.bug-script; \
+               fi ;\
+       done
+       for i in $(ARCH_INDEP_PACKAGES); do \
+               if [ -e debian/$$i.bug-control ]; then \
+                       if grep -q "^report-with:" debian/$$i.bug-control; then \
+                               extra_packages=`grep "^report-with:" debian/$$i.bug-control | sed -e "s/^report-with: //"`; \
+                               for p in $$extra_packages; do \
+                                       if [ $$i != $$p ] && [ -f debian/$$p.bug-script ] && ! echo $$added_packages | grep -q $$p && \
+                                               ! grep -q bug\/$$p\/script debian/$$i.bug-script; then \
+                                                       printf "#!/bin/sh\n" >> debian/$$i.bug-script; \
+                                                       printf "if [ -x /usr/share/bug/$$p/script ]; then /usr/share/bug/$$p/script; fi\n" >> debian/$$i.bug-script; \
+                                                       added_packages="$$added_packages $$p"; \
+                                       fi; \
+                               done; \
+                               added_packages=; \
+                       fi; \
+               fi; \
+       done
+       # generate .links files from *.in
+       for PKG in $(ARCH_INDEP_PACKAGES); do \
+         LINKS=debian/$$PKG.links ; \
+         if [ -e $$LINKS.in ]; then \
+           sed -e "s#\@OODIR\@#$(OODIR)#g" \
+               < $$LINKS.in > $$LINKS ; \
+         fi; \
+       done
+
+       # install extension shell lib for use by extensions not from here
+       install -D -m644 debian/shell-lib-extensions.sh \
+               $(PKGDIR)-common/usr/share/$(OODIRNAME)/shell-lib-extensions.sh
+
+ifneq "$(ENABLE_HELP)" "n"
+  ifneq "$(ENABLE_HTML_HELP)" "y"
+       # those are needed in /usr/share, too
+       mkdir -p $(PKGDIR)-common/$(shell echo $(OODIR) | sed -e s/lib/share/)
+       mv $(PKGDIR)-common/$(OODIR)/help \
+               $(PKGDIR)-common/$(shell echo $(OODIR) | sed -e s/lib/share/)
+  endif
+endif
+       # help is in /usr/share
+       sed -i 's,$$(instpath)/help,/$(shell echo $(OODIR) | sed -e s/lib/share/)/help,' \
+               $(PKGDIR)-common/$(OODIR)/share/registry/main.xcd
+
+       # compat dirs, the split icons thing need it
+       mkdir -p $(PKGDIR)-common/$(shell echo $(OODIR) | sed -e s/lib/share/)/program
+       mkdir -p $(PKGDIR)-common/$(shell echo $(OODIR) | sed -e s/lib/share/)/program
+
+       # enable session handling and recovery
+       perl -pi -e 's,<prop oor:name="DocumentStoreUIEnabled" oor:type="xs:boolean"><value>false</value></prop>,<prop oor:name="DocumentStoreUIEnabled" oor:type="xs:boolean"><value>true</value></prop>,' $(PKGDIR)-common/$(OODIR)/share/registry/main.xcd
+
+       # examples. move where they belong
+       mkdir -p $(PKGDIR)-common/usr/share/doc/libreoffice-common/examples
+       for i in oo-ldap.xcd.sample oo-ad-ldap.xcd.sample; do \
+               mv $(PKGDIR)-common/$(OODIR)/share/registry/$$i \
+                       $(PKGDIR)-common/usr/share/doc/libreoffice-common/examples; \
+               ln -s /usr/share/doc/libreoffice-common/examples/$$i $(PKGDIR)-common/etc/libreoffice/registry/$$i; \
+       done
+
+       # register technical.dic
+       perl -pi -e 's/standard.dic;/standard.dic;technical.dic;/' $(PKGDIR)-common/$(OODIR)/share/registry/main.xcd
+
+#ifeq "$(PACKAGE_SDK)" "y"
+#      # install gengal stuff into -dev-gui
+#      mkdir -p $(PKGDIR)-dev-gui/$(OODIR)/program
+#      install -m644 $(SOURCE_TREE)/svx/$(shell .  $(SOURCE_TREE)/bin/get_config_variables OUTPATH PROEXT; echo $$OUTPATH$$PROEXT)/bin/gengalrc \
+#              $(PKGDIR)-dev-gui/$(OODIR)/program/gengalrc
+#endif
+
+       # package the Java public libraries...
+ifeq "$(ENABLE_JAVA)" "y"
+       # somehow --has-package-version doesn't overwrite version and without <version>...</version>
+       # we get a NullPointerException when calling mh_installjar
+       for i in ridl unoloader libreoffice; do \
+               sed -e s/@version@/$(shell echo $(DEB_VERSION_UPSTREAM) | cut -d~ -f1)/ \
+                       < $(SOURCE_TREE)/ridljar/pom.$$i.xml > debian/pom.$$i.xml; \
+       done
+       sed -e s/@version@/$(shell echo $(DEB_VERSION_UPSTREAM) | cut -d~ -f1)/ \
+               < $(SOURCE_TREE)/jurt/pom.jurt.xml > debian/pom.jurt.xml
+       sed -e s/@version@/$(shell echo $(DEB_VERSION_UPSTREAM) | cut -d~ -f1)/ \
+               < $(SOURCE_TREE)/javaunohelper/pom.juh.xml > debian/pom.juh.xml
+       sed -e s/@version@/$(shell echo $(DEB_VERSION_UPSTREAM) | cut -d~ -f1)/ \
+               < $(SOURCE_TREE)/unoil/pom.unoil.xml > debian/pom.unoil.xml
+       for i in juh jurt unoil ridl libreoffice; do \
+               mh_installpoms -pliblibreoffice-java; \
+               mh_installjar -pliblibreoffice-java -l debian/pom.$$i.xml instdir/program/classes/$$i.jar; \
+       done
+       mh_installpoms -plibunoloader-java
+       mh_installjar -plibunoloader-java -l debian/pom.unoloader.xml instdir/program/classes/unoloader.jar
+
+       # create symlinks where LO expects them
+       for i in juh jurt unoil ridl libreoffice; do \
+               mkdir -p $(CURDIR)/debian/liblibreoffice-java/$(OODIR)/program/classes; \
+               cd $(CURDIR)/debian/liblibreoffice-java/$(OODIR)/program/classes; \
+               ln -s /usr/share/java/$$i.jar $$i.jar; \
+       done
+       mkdir -p $(CURDIR)/debian/libunoloader-java/$(OODIR)/program/classes; \
+       cd $(CURDIR)/debian/libunoloader-java/$(OODIR)/program/classes; \
+       ln -s /usr/share/java/unoloader.jar unoloader.jar
+
+       # fix up Class-Path
+       # make libreoffice.jar to be able to find libjpipe.so.
+       # See http://markmail.org/message/yacqa7oowugxwmn2 (for juh.jar back then...)
+       # also: javaunohelper/com/sun/star/comp/helper/Bootstrap.java:                NativeLibraryLoader.loadLibrary( Bootstrap.class.getClassLoader(), "juh" );
+       # seems to work nevertheless (if called from program/classes?) but fix it
+       # nevertheless
+       jh_classpath --classpath="unoloader.jar ../ /$(OODIR)/program" \
+               $(CURDIR)/debian/liblibreoffice-java/usr/share/java/libreoffice.jar
+endif
+
+ifeq "$(INSTALL_APPARMOR_PROFILES)" "y"
+       mkdir -p $(PKGDIR)-common/etc/apparmor.d
+       ./sysui/desktop/share/apparmor.sh /$(OODIR)/ sysui/desktop/apparmor/ \
+                       $(PKGDIR)-common/etc/apparmor.d/ false $(CHECK_APPARMOR_PROFILES)
+  ifneq "$(ENABLE_APPARMOR_PROFILES)" "y"
+       # disable the apparmor files per default
+       mkdir -p $(PKGDIR)-common/etc/apparmor.d/disable
+       cd $(PKGDIR)-common/etc/apparmor.d/disable && \
+       for i in oosplash senddoc soffice.bin xpdfimport; do \
+               ln -sf /etc/apparmor.d/usr.lib.libreoffice.program.$$i \
+                       usr.lib.libreoffice.program.$$i; \
+       done
+  endif
+endif
+
+       # not installed if skia is disabled. Arch-indep builds disable skia for build-dep and
+       # speed reasons and it is supposed to end up in an arch-indep package (libreoffice-common)
+       # So install this manually if skia is disabled
+ifneq "$(ENABLE_SKIA)" "y"
+       mkdir -p $(PKGDIR)-common/$(OODIR)/share/skia
+       install -m644 $(SOURCE_TREE)/vcl/skia/skia_denylist_vulkan.xml \
+               $(PKGDIR)-common/$(OODIR)/share/skia/skia_denylist_vulkan.xml
+endif
+
+       # fix fundamentalrc to not cause
+       # /usr/lib/libreoffice/program/../program/xpdfimport calls
+       # we know the path and the apparmor profiles disallow this...
+       sed -i "s,^BRAND_BASE_DIR=.*,BRAND_BASE_DIR=file:///$(OODIR)," \
+               $(PKGDIR)-common/$(OODIR)/program/fundamentalrc
+
+       # make LO look for its "registry" in /etc (ucf-managed)
+       sed -i "s,^CONFIGURATION_LAYERS=.*\(dconf.*\)$$,CONFIGURATION_LAYERS=xcsxcu:file:///etc/libreoffice/registry res:file:///etc/libreoffice/registry \1," \
+               $(PKGDIR)-common/$(OODIR)/program/fundamentalrc
+
+       # make config xml "pretty" to make ucf --three-way work
+       for p in $(ARCH_INDEP_PACKAGES); do \
+               for i in `find debian/$$p/$(OODIR)/share/registry -name "*.xcd"`; do \
+                       t=`mktemp -q`; \
+                       xmllint --pretty 1 $$i > $$t; \
+                       mv $$t $$i; \
+               done; \
+       done
+       # and "hide" the ucf source registry; makes it less confusing for
+       # people who do know /usr/lib/libreoffice/share/registry. Said path
+       # is a symlink set by libreoffice-common.links
+       for p in $(ARCH_INDEP_PACKAGES); do \
+               for i in `find debian/$$p -type d -wholename "*$(OODIR)/share/registry"`; do \
+                       mv $$i `echo $$i | sed -e s/registry/.registry/`; \
+               done; \
+       done
+
+       # make sure we have a share/extensions dir owned by -common
+       mkdir -p $(PKGDIR)-common/$(OODIR)/share/extensions
+
+       touch $@
+
+binary-arch: $(STAMP_DIR)/binary-arch
+$(STAMP_DIR)/binary-arch: $(STAMP_DIR)/prepare $(STAMP_DIR)/build-arch $(STAMP_DIR)/install-arch debian/control $(STAMP_DIR)/maintscripts
+       dh_testdir
+       dh_testroot
+
+       for pkg in $(ARCH_DEP_PACKAGES) ; do \
+         rm -f debian/$$pkg.*.debhelper;\
+         rm -rf debian/$$pkg/DEBIAN;\
+       done
+
+       dh_installdocs -a -A
+       cp workdir/CustomTarget/readlicense_oo/readme/README_en-US \
+               $(PKGDIR)-core/usr/share/doc/libreoffice-core/README
+ifeq "$(BUILD_NOGUI_PACKAGES)" "y"
+       cp workdir/CustomTarget/readlicense_oo/readme/README_en-US \
+               $(PKGDIR)-core-nogui/usr/share/doc/libreoffice-core-nogui/README
+endif
+       dh_ucf -a
+       for i in $(ARCH_DEP_PACKAGES); do \
+               if [ -e debian/$$i.postinst.debhelper ] && grep -q ucf debian/$$i.postinst.debhelper; then \
+                       sed -i "s/ucf\ /ucf --three-way /" debian/$$i.postinst.debhelper; \
+                       sed -i "s/ucfr\ /ucfr --force /" debian/$$i.postinst.debhelper; \
+               fi ; \
+               if [ -e debian/$$i.postrm.debhelper ] && grep -q ucf debian/$$i.postrm.debhelper; then \
+                       sed -i "s/ucfr\ /ucfr --force /" debian/$$i.postrm.debhelper; \
+               fi ; \
+       done
+       dh_installdebconf -a
+       dh_installman -a
+       for i in writer calc draw base math impress; do \
+               for i in `find $(PKGDIR)-$$i -type l -name "lo*.1"`; do \
+                       mv $$i $$i.gz; \
+                       if [ "`readlink $$i`" != "libreoffice.1.gz" ]; then \
+                               ln -sf libreoffice.1.gz $$i.gz; \
+                       fi; \
+               done; \
+       done
+       dh_installchangelogs -a -XChangeLog -k
+       dh_installmime -a
+ifeq "$(ENABLE_PYTHON)" "y"
+       dh_python3 -ppython3-uno --no-ext-rename --no-guessing-deps
+       dh_python3 -ppython3-uno --no-ext-rename --no-guessing-deps $(OODIR)/program
+endif
+       dh_lintian -a
+       dh_bugfiles -a -A
+       dh_link -a
+ifeq "$(BUILD_DBGSYM_PACKAGES)" "y"
+       for i in libuno-cppu3t64 libuno-sal3t64 libreoffice-core libreoffice-writer; do \
+               rm -rf debian/.debhelper/$$i/dbgsym-root; \
+       done
+  ifeq "$(BUILD_NOGUI_PACKAGES)" "y"
+       for i in libreoffice-core-nogui libreoffice-writer-nogui; do \
+               rm -rf debian/.debhelper/$$i/dbgsym-root; \
+       done
+  endif
+  ifeq "$(USE_DWZ)" "y"
+       dh_dwz -a $(DH_DWZ_ARGS) -- $(DWZ_ARGS)
+  endif
+       dh_strip -a
+       # dh_strip --dbg-package= is not idempotent, force copying of the binaries
+       # again...
+       rm -f $(STAMP_DIR)/install-common
+
+       # install gdb helpers
+       mkdir -p debian/.debhelper/libreoffice-core/dbgsym-root/usr/share/gdb/auto-load/$(OODIR)
+       mv $(CURDIR)/debian/tmp/usr/share/gdb/auto-load/$(OODIR)/program \
+               debian/.debhelper/libreoffice-core/dbgsym-root/usr/share/gdb/auto-load/$(OODIR)
+       mkdir -p debian/.debhelper/libreoffice-core/dbgsym-root/usr/share/libreoffice/gdb
+       mv $(CURDIR)/debian/tmp/usr/share/libreoffice/gdb/libreoffice \
+               debian/.debhelper/libreoffice-core/dbgsym-root/usr/share/libreoffice/gdb
+
+       # move sal and cppu gdb helpers into their respective packages
+       for i in sal cppu; do \
+               mkdir -p debian/.debhelper/libuno-$${i}3t64/dbgsym-root/usr/share/gdb/auto-load/$(OODIR)/program; \
+               mkdir -p debian/.debhelper/libuno-$${i}3t64/dbgsym-root/usr/share/libreoffice/gdb/libreoffice; \
+               mv debian/.debhelper/libreoffice-core/dbgsym-root/usr/share/gdb/auto-load/$(OODIR)/program/libuno_$$i.so.3-gdb.py \
+                       debian/.debhelper/libuno-$${i}3t64/dbgsym-root/usr/share/gdb/auto-load/$(OODIR)/program; \
+               mv debian/.debhelper/libreoffice-core/dbgsym-root/usr/share/libreoffice/gdb/libreoffice/$$i.py \
+                       debian/.debhelper/libuno-$${i}3t64/dbgsym-root/usr/share/libreoffice/gdb/libreoffice; \
+       done
+
+       # move sw and writerfilter gdb helpers to writer-dbgsym
+       mkdir -p debian/.debhelper/libreoffice-writer/dbgsym-root/usr/share/gdb/auto-load/$(OODIR)/program
+       mkdir -p debian/.debhelper/libreoffice-writer/dbgsym-root/usr/share/libreoffice/gdb/libreoffice/
+       for i in sw writerfilter; do \
+               if [ -f debian/.debhelper/libreoffice-core/dbgsym-root/usr/share/gdb/auto-load/$(OODIR)/program/lib$${i}lo.so-gdb.py ]; then \
+               mv debian/.debhelper/libreoffice-core/dbgsym-root/usr/share/gdb/auto-load/$(OODIR)/program/lib$${i}lo.so-gdb.py \
+                               debian/.debhelper/libreoffice-writer/dbgsym-root/usr/share/gdb/auto-load/$(OODIR)/program/; \
+               fi; \
+               mv debian/.debhelper/libreoffice-core/dbgsym-root/usr/share/libreoffice/gdb/libreoffice/$$i.py \
+                       debian/.debhelper/libreoffice-writer/dbgsym-root/usr/share/libreoffice/gdb/libreoffice; \
+       done
+
+       # populate -nogui-dbgsym from the gui counterparts
+ifeq "$(BUILD_NOGUI_PACKAGES)" "y"
+       mkdir -p debian/.debhelper/libreoffice-core-nogui/dbgsym-root/usr/share/gdb/auto-load/
+       mkdir -p debian/.debhelper/libreoffice-core-nogui/dbgsym-root/usr/share/libreoffice/
+       cp -ra debian/.debhelper/libreoffice-core/dbgsym-root/usr/share/gdb/auto-load/$(OODIR) \
+               debian/.debhelper/libreoffice-core-nogui/dbgsym-root/usr/share/gdb/auto-load/
+       cp -ra debian/.debhelper/libreoffice-core/dbgsym-root/usr/share/libreoffice/gdb \
+               debian/.debhelper/libreoffice-core-nogui/dbgsym-root/usr/share/libreoffice
+       mkdir -p debian/.debhelper/libreoffice-writer-nogui/dbgsym-root/usr/share/gdb
+       mkdir -p debian/.debhelper/libreoffice-writer-nogui/dbgsym-root/usr/share/libreoffice/
+       cp -ra debian/.debhelper/libreoffice-writer/dbgsym-root/usr/share/gdb/auto-load/ \
+               debian/.debhelper/libreoffice-writer-nogui/dbgsym-root/usr/share/gdb
+       cp -ra debian/.debhelper/libreoffice-writer/dbgsym-root/usr/share/libreoffice/gdb \
+               debian/.debhelper/libreoffice-writer-nogui/dbgsym-root/usr/share/libreoffice
+endif
+else
+       dh_strip -a --no-automatic-dbgsym
+endif
+       dh_fixperms -a
+ifeq "$(BUILD_DBGSYM_PACKAGES)" "y"
+       # dh_fixperms is not run on -dbgsym. And we get 0775 directories. Fix it
+       # manually
+       #16:29 < nthykier> _rene_: I would recommend a "find debian/.debhelper/libreoffice-core/dbgsym-root
+       #       debian/$(UNO_LIBS_DBG_ROOT) debian/.debhelper/libreoffice-writer/dbgsym-root -exec
+       #       chmod go=rX,u+rw,a-s {} +"
+       #16:29 < nthykier> Should be faster and is the same expression as used by
+       #       dh_fixperms
+       find debian/.debhelper/libreoffice-core/dbgsym-root debian/.debhelper/libuno*/dbgsym-root debian/.debhelper/libreoffice-writer/dbgsym-root ! -type l -exec chmod go=rX,u+rw,a-s {} +
+endif
+       dh_icons -a
+       dh_compress -a -X.py -X.mk -X.sxd
+ifeq "$(ENABLE_INTROSPECTION)" "y"
+       dh_girepository -a debian/liblibreofficekitgtk/$(OODIR)/program
+endif
+       dh_strip_nondeterminism -a
+       for i in sal3 cppu3 salhelpergcc3-3 cppuhelpergcc3-3 purpenvhelpergcc3-3; do \
+               dh_makeshlibs -plibuno-$${i}t64 -V"libuno-$${i}t64 (>= 4:$(shell grep UREPACKAGEVERSION $(SOURCE_TREE)/instsetoo_native/util/openoffice.lst | awk '{ print $$2 }' | cut -d. -f1-3)~)" -- -c2 -V -v$(BINARY_VERSION); \
+       done
+       dh_makeshlibs -n -pure -V"ure (>= 4:$(shell grep UREPACKAGEVERSION $(SOURCE_TREE)/instsetoo_native/util/openoffice.lst | awk '{ print $$2 }' | cut -d. -f1-3)~)" -- -d -V -v$(BINARY_VERSION)
+       dh_installdeb -a
+       rm -f debian/shlibs.local
+ifeq "$(BUILD_KFREEBSD)" "y"
+       cat debian/shlibs.override.libc >> debian/shlibs.local
+endif
+       # no shlibs dependencies on internal libs (which are dynamic)
+ifeq (,$(filter icu, $(SYSTEM_STUFF)))
+       cat debian/shlibs.override.icu >> debian/shlibs.local
+endif
+ifeq (,$(filter libvisio, $(SYSTEM_STUFF)))
+       cat debian/shlibs.override.libvisio >> debian/shlibs.local
+endif
+ifeq (,$(filter libwpd, $(SYSTEM_STUFF)))
+       cat debian/shlibs.override.libwpd >> debian/shlibs.local
+endif
+ifeq (,$(filter libwpg, $(SYSTEM_STUFF)))
+       cat debian/shlibs.override.libwpg >> debian/shlibs.local
+endif
+ifeq (,$(filter libwps, $(SYSTEM_STUFF)))
+       cat debian/shlibs.override.libwps >> debian/shlibs.local
+endif
+ifeq (,$(filter libodfgen, $(SYSTEM_STUFF)))
+       cat debian/shlibs.override.libodfgen >> debian/shlibs.local
+endif
+ifeq (,$(filter libmwaw, $(SYSTEM_STUFF)))
+       cat debian/shlibs.override.libmwaw >> debian/shlibs.local
+endif
+ifeq (,$(filter librevenge, $(SYSTEM_STUFF)))
+       cat debian/shlibs.override.librevenge >> debian/shlibs.local
+endif
+ifeq (,$(filter libetonyek, $(SYSTEM_STUFF)))
+       cat debian/shlibs.override.libetonyek >> debian/shlibs.local
+endif
+ifeq (,$(filter libstaroffice, $(SYSTEM_STUFF)))
+       cat debian/shlibs.override.libstaroffice >> debian/shlibs.local
+endif
+ifeq (,$(filter orcus, $(SYSTEM_STUFF)))
+       cat debian/shlibs.override.orcus >> debian/shlibs.local
+endif
+ifeq (,$(filter liblangtag, $(SYSTEM_STUFF)))
+       cat debian/shlibs.override.liblangtag >> debian/shlibs.local
+endif
+ifeq "$(ENABLE_FIREBIRD)" "y"
+ifneq (,$(filter firebird, $(SYSTEM_STUFF)))
+       # force the values of .shlibs which  gives us a (wanted) (>= 3.0.0~)
+       # instead of .symbols which gives os only a (>= 2.5.0.25784~ReleaseCandidate1.ds2)...
+       cat /var/lib/dpkg/info/libfbclient2*.shlibs >> debian/shlibs.local
+
+endif
+endif
+
+               dh_shlibdeps -a -Nlibreoffice-core-nogui -Nure \
+                       -Lure -Llibuno-sal3t64 -Llibpuno-cppu3t64 -Llibuno-salhelpergcc3-3t64 -Llibcppuhelpergcc3-3t64 -Llibuno-purpenvhelpergcc3-3t64 \
+                       -l$(CURDIR)/debian/libuno-sal3t64/$(OODIR)/program:$(CURDIR)/debian/libuno-cppu3t64/$(OODIR)/program:$(CURDIR)/debian/libuno-salhelpergcc3-3t64/$(OODIR)/program:$(CURDIR)/debian/libuno-cppuhelpergcc3-3t64/$(OODIR)/program:$(CURDIR)/debian/libuno-purpenvhelpergcc3-3t64/$(OODIR)/program:$(CURDIR)/debian/ure/$(OODIR)/program:$(CURDIR)/$(PKGDIR)-core/$(OODIR)/program:$(CURDIR)/$(PKGDIR)-base-core/$(OODIR)/program:$(CURDIR)/$(PKGDIR)-base/$(OODIR)/program:$(CURDIR)/$(PKGDIR)-writer/$(OODIR)/program \
+                       $(SHLIBS_OVERRIDE)
+               dh_shlibdeps -pure \
+                       -Llibuno-sal3t64 -Llibpuno-cppu3t64 -Llibuno-salhelpergcc3-3t64 -Llibcppuhelpergcc3-3t64 -Llibuno-purpenvhelpergcc3-3t64 \
+                       -l$(CURDIR)/debian/libuno-sal3t64/$(OODIR)/program:$(CURDIR)/debian/libuno-cppu3t64/$(OODIR)/program:$(CURDIR)/debian/libuno-salhelpergcc3-3t64/$(OODIR)/program:$(CURDIR)/debian/libuno-cppuhelpergcc3-3t64/$(OODIR)/program:$(CURDIR)/debian/libuno-purpenvhelpergcc3-3t64/$(OODIR)/program:$(CURDIR)/debian/ure/$(OODIR)/program \
+                       -- -xure
+ifeq "$(BUILD_NOGUI_PACKAGES)" "y"
+               dh_shlibdeps -plibreoffice-core-nogui \
+                       -Lure -Llibuno-sal3t64 -Llibpuno-cppu3t64 -Llibuno-salhelpergcc3-3t64 -Llibcppuhelpergcc3-3t64 -Llibuno-purpenvhelpergcc3-3t64 \
+                       -l$(CURDIR)/debian/libuno-sal3t64/$(OODIR)/program:$(CURDIR)/debian/libuno-cppu3t64/$(OODIR)/program:$(CURDIR)/debian/libuno-salhelpergcc3-3t64/$(OODIR)/program:$(CURDIR)/debian/libuno-cppuhelpergcc3-3t64/$(OODIR)/program:$(CURDIR)/debian/libuno-purpenvhelpergcc3-3t64/$(OODIR)/program:$(CURDIR)/debian/ure/$(OODIR)/program:$(CURDIR)/$(PKGDIR)-core-nogui/$(OODIR)/program:$(CURDIR)/$(PKGDIR)-base-core/$(OODIR)/program:$(CURDIR)/$(PKGDIR)-base/$(OODIR)/program:$(CURDIR)/$(PKGDIR)-writer/$(OODIR)/program \
+                       $(SHLIBS_OVERRIDE)
+endif
+  ifneq (,$(filter coinmp, $(SYSTEM_STUFF)))
+       perl -pi -e "s/coinor-libcoinutils3v5/coinor-libcoinutils3v5 $(COINUTILS_MINVER)/" \
+               debian/libreoffice-calc.substvars
+       perl -pi -e "s/coinor-libcoinmp1v5/coinor-libcoinmp1v5 $(COINMP_MINVER)/" \
+               debian/libreoffice-calc.substvars
+  endif
+ifeq "$(ENABLE_JAVA)" "y"
+       for p in $(ARCH_DEP_PACKAGES); do \
+               jh_depends -p$$p -Xure -Xbase-files; \
+       done
+       # jh_depends adds ure (${source:Version}) entries. They are overly strict
+       # and do not fit anyway given ure has a different versioning scheme. Excluded
+       # above, readd here  unversioned
+       perl -pi -e 's/^(java:Depends.*$$)/\1, ure/' \
+               debian/libofficebean-java.substvars
+endif
+       dh_gencontrol -a $(DEBHELPER_OPTIONS) \
+               -- \
+               -V'base-version=$(BASE_VERSION)' \
+               -V'oover=$(OOVER)' \
+               -V'next-oover=$(NEXT_OOVER)' \
+               -V'help-l10n-virtual-version=$(HELP_L10N_VIRTUAL_VERSION)' \
+               -V'base-hsqldb-depends=$(BASE_HSQLDB_DEPENDS)' \
+               -V'base-firebird-recommends=$(BASE_FIREBIRD_RECOMMENDS)' \
+               -V'java-common-depends=$(JAVA_COMMON_DEPENDS) $(JAVA_COMMON_DEPENDS_VERSION)' \
+               -V'java-runtime-depends=$(JAVA_RUNTIME_DEPENDS)' \
+               -V'Binary-Version=$(BINARY_VERSION)' \
+               -V'ooo-officebean-dep=$(OOO_OFFICEBEAN_DEP)' \
+               -V'plasma-iconset-dep=$(PLASMA_ICONSET_DEP)' \
+               -V'kf5-qt5-depends=$(KF5_QT5_DEPENDS)' \
+               -V'kf6-qt6-depends=$(KF6_QT6_DEPENDS)' \
+               -V'lpsolve-dep=$(LPSOLVE_DEP)' \
+               -V'gstreamer-plugins-suggests=$(GSTREAMER_PLUGINS_SUGGESTS)' \
+               -V'libebook-dep=$(LIBEBOOK_DEP)' \
+               -V'pyuno-depends=$(PYUNO_DEPENDS)' \
+               -V'gnome-gtk-recommends=$(GNOME_GTK_RECOMMENDS)' \
+               -V'firebird-engine-depends=$(FIREBIRD_ENGINE_DEPENDS)' \
+               -V'libsane-suggests=$(shell dpkg -S /usr/lib/$(DEB_HOST_MULTIARCH)/libsane.so.1 | cut -d: -f1)' \
+               -V'liberation-fonts-recommends=$(LIBERATION_FONTS_RECOMMENDS)' \
+               -v$(BINARY_VERSION)
+ifeq "$(BUILD_DBGSYM_PACKAGES)" "y"
+       for i in libuno-sal3t64 libuno-cppu3t64 libuno-salhelpergcc3-3t64 libuno-cppuhelpergcc3-3t64 libuno-purpenvhelpergcc3-3t64 \
+               libreoffice-core libreoffice-writer; do \
+               perl -pi -e 's/^(Depends:.*)/\1\nRecommends: gdb, python3-six/' \
+               debian/.debhelper/$$i/dbgsym-root/DEBIAN/control; \
+       done
+       perl -pi -e 's/Recommends: /Recommends: libreoffice-core-dbgsym, /' \
+               debian/.debhelper/libreoffice-writer/dbgsym-root/DEBIAN/control
+  ifeq "$(BUILD_NOGUI_PACKAGES)" "y"
+       for i in libreoffice-core libreoffice-writer; do \
+               perl -pi -e 's/^(Depends:.*)/\1\nRecommends: gdb, python3-six/' \
+                       debian/.debhelper/$$i-nogui/dbgsym-root/DEBIAN/control; \
+       done
+       perl -pi -e 's/Recommends: /Recommends: libreoffice-core-nogui-dbgsym, /' \
+               debian/.debhelper/libreoffice-writer-nogui/dbgsym-root/DEBIAN/control
+       perl -pi -e 's/^(Recommends:.*)/Replaces: libreoffice-core-nogui-dbgsym (<< 1:6.4.3~rc1-3)\n\1/' \
+               debian/.debhelper/libreoffice-writer-nogui/dbgsym-root/DEBIAN/control
+       perl -pi -e 's/^(Replaces:.*)/Breaks: libreoffice-core-nogui-dbgsym (<< 1:6.4.3~rc1-3)\n\1/' \
+               debian/.debhelper/libreoffice-writer-nogui/dbgsym-root/DEBIAN/control
+  endif
+endif
+
+       dh_md5sums -a
+       dh_builddeb -a $(DEBHELPER_OPTIONS)
+
+       touch $@
+
+binary-indep: $(STAMP_DIR)/binary-indep
+$(STAMP_DIR)/binary-indep: $(STAMP_DIR)/prepare $(STAMP_DIR)/build-indep $(STAMP_DIR)/install-indep debian/control $(STAMP_DIR)/maintscripts $(STAMP_DIR)/langpacks
+ifneq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),$(OOO_JAVA_ARCHS)))
+       echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
+       echo "For uploads with binary-all packages, please use arches where Java is enabled"
+       echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
+endif
+       dh_testdir
+ifneq ($(PACKAGE_SDK_DOCS),y)
+       echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
+       echo "For uploads with binary-all packages, please use arches where the SDK docs are enabled!!!!"
+       echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
+endif
+       dh_testdir
+       dh_testroot
+
+       for pkg in $(ARCH_INDEP_PACKAGES) ; do \
+         rm -f debian/$$pkg.*.debhelper;\
+         rm -rf debian/$$pkg/DEBIAN;\
+       done
+
+       dh_installdocs -i -A
+       cp workdir/CustomTarget/readlicense_oo/readme/README_en-US \
+               $(PKGDIR)-common/usr/share/doc/libreoffice-common/README
+       dh_ucf -i
+       for i in $(ARCH_INDEP_PACKAGES); do \
+               if [ -e debian/$$i.postinst.debhelper ] && grep -q ucf debian/$$i.postinst.debhelper; then \
+                       sed -i "s/ucf\ /ucf --three-way /" debian/$$i.postinst.debhelper; \
+                       sed -i "s/ucfr\ /ucfr --force /" debian/$$i.postinst.debhelper; \
+               fi ; \
+               if [ -e debian/$$i.postrm.debhelper ] && grep -q ucf debian/$$i.postrm.debhelper; then \
+                       sed -i "s/ucfr\ /ucfr --force /" debian/$$i.postrm.debhelper; \
+               fi ; \
+       done
+       dh_installman -i
+       for i in `find $(PKGDIR)-common -type l -name "lo*.1"`; do \
+               mv $$i $$i.gz; \
+               if [ "`readlink $$i`" != "libreoffice.1.gz" ]; then \
+                       ln -sf libreoffice.1.gz $$i.gz; \
+               fi; \
+       done
+       dh_installchangelogs -i -XChangeLog -Nlibreoffice-librelogo -k
+ifeq "$(PACKAGE_LIBRELOGO)" "y"
+        dh_installchangelogs -plibreoffice-librelogo -k librelogo/source/ChangeLog
+endif
+ifeq "$(PACKAGE_SDK_DOCS)" "y"
+       dh_doxygen -plibreoffice-dev-doc
+endif
+       dh_installmime -i
+       dh_python3 -ppython3-access2base
+       dh_python3 -ppython3-scriptforge
+       dh_python3 -plibreoffice-script-provider-python
+ifeq "$(ENABLE_HELP)" "y"
+  ifeq "$(ENABLE_HTML_HELP)" "y"
+       for iso in $(shell echo $(HELPISOS) | tr A-Z a-z); do \
+               sed -e s/@LCODE@/$$iso/ < debian/libreoffice-help.lintian-overrides.in \
+                       > debian/libreoffice-help-$$iso.lintian-overrides; \
+       done
+  endif
+endif
+       dh_lintian -i
+       dh_bugfiles -i -A
+       dh_link -i
+       dh_fixperms -i
+       dh_icons -i
+ifeq "$(INSTALL_APPARMOR_PROFILES)" "y"
+       for i in oosplash senddoc soffice.bin xpdfimport; do \
+               dh_apparmor -plibreoffice-common --profile-name=usr.lib.libreoffice.program.$$i; \
+       done
+endif
+       dh_compress -i -X.py -X.mk -X.sxd -X.xcd.sample
+       dh_strip_nondeterminism -i
+       dh_installdeb -i
+ifeq "$(ENABLE_JAVA)" "y"
+       for p in $(ARCH_INDEP_PACKAGES); do \
+                if echo "$$p" | grep -q help; then continue; fi; \
+                jh_depends -p$$p \
+                       -Xlibreoffice-report-builder -Xbase-files; \
+        done
+endif
+       # jh_depends adds a librhino-java Depends where we still use internal rhino
+       perl -pi -e "s/librhino-java//" \
+               debian/libreoffice-script-provider-js.substvars
+ifeq "$(BUILD_TEST_PACKAGES)" "y"
+       perl -pi -e 's/junit4/junit4 $(JUNIT_MIN_VER)/' \
+               debian/libreoffice-subsequentcheckbase.substvars
+endif
+       dh_gencontrol -i $(DEBHELPER_OPTIONS) \
+               -Nfonts-opensymbol -- \
+               -V'base-version=$(BASE_VERSION)' \
+               -V'oover=$(OOVER)' \
+               -V'next-oover=$(NEXT_OOVER)' \
+               -V'help-l10n-virtual-version=$(HELP_L10N_VIRTUAL_VERSION)' \
+               -V'java-common-depends=$(JAVA_COMMON_DEPENDS)' \
+               -V'java-runtime-depends=$(JAVA_RUNTIME_DEPENDS)' \
+               -V'textcat-data-recommends=$(TEXTCAT_DATA_RECOMMENDS)' \
+               -V'numbertext-data-recommends=$(NUMBERTEXT_DATA_RECOMMENDS)' \
+               -V'pyuno-depends=$(PYUNO_DEPENDS)' \
+               -V'help-depends=$(HELP_DEPENDS)' \
+               -V'help-recommends=$(HELP_RECOMMENDS)' \
+               -V'help-common-depends=$(HELP_COMMON_DEPENDS)' \
+               -V'report-builder-jar-depends=$(REPORT_BUILDER_JAR_DEPENDS)' \
+               -V'liberation2-font-recommends=$(LIBERATION2_FONT_RECOMMENDS)' \
+               -V'Binary-Version=$(BINARY_VERSION)' \
+               -v$(BINARY_VERSION)
+       dh_gencontrol -pfonts-opensymbol -- \
+               -v`echo $(BINARY_VERSION) | cut -d: -f1`:$(shell fontforge -lang=ff -c 'Open($$1); Print ($$fontversion); Quit(0);' debian/fonts-opensymbol/usr/share/fonts/truetype/libreoffice/opens___.ttf)+LibO`echo $(BINARY_VERSION) | cut -d: -f2`
+ifeq "$(ENABLE_MEDIAWIKI)" "y"
+       dh_gencontrol -plibreoffice-wiki-publisher -- \
+               -V'java-common-depends=$(JAVA_COMMON_DEPENDS)' \
+               -V'java-runtime-depends=$(JAVA_RUNTIME_DEPENDS)' \
+               -v`echo $(BINARY_VERSION) | cut -d: -f1`:$(shell grep "<version" $(SOURCE_TREE)/swext/mediawiki/src/description.xml | perl -pi -e 's,<version value=\"(.*)\"/>,\1,; s/^\s+//')+LibO`echo $(BINARY_VERSION) | cut -d: -f2`
+endif
+ifeq "$(ENABLE_NLPSOLVER)" "y"
+       dh_gencontrol -plibreoffice-nlpsolver -- \
+               -V'java-common-depends=$(JAVA_COMMON_DEPENDS)' \
+               -V'java-runtime-depends=$(JAVA_RUNTIME_DEPENDS)' \
+               -v`echo $(BINARY_VERSION) | cut -d: -f1`:$(shell grep "<version" $(SOURCE_TREE)/nlpsolver/src/com/sun/star/comp/Calc/NLPSolver/description.xml | perl -pi -e 's,<version value=\"(.*)\"/>,\1,; s/^\s+//')+LibO`echo $(BINARY_VERSION) | cut -d: -f2`
+endif
+       dh_md5sums -i
+       dh_builddeb -i $(DEBHELPER_OPTIONS)
+
+       touch $@
+
+binary: binary-arch binary-indep
+
+ifeq "$(USE_GIT_TARBALLS)" "y"
+# $(1) is the upstream name of the repo
+# $(2) is the name of the tarball
+# $(3) is the path to archive (empty for everything)
+#
+# according to policy get-orig-source has to download to the current dir, thus
+# should not require a dh_testdir. However, like this we can have clean deps
+# from build and download the source, configure, build, pack in on piece. As
+# get-orig-source is an optional target anyway, we stick to support only this
+# case and not random dirs. see also: debian bug 494141
+# also, we need to run configure to create the external tarball anyway
+
+GIT_INSTALLED:=$(shell which git >/dev/null 2>/dev/null && echo "y")
+
+get_orig_tarball=$(CURDIR)/../libreoffice_$(DEB_VERSION_UPSTREAM).orig$(1).tar.xz
+
+define pack_gittarball
+$(if $(GIT_INSTALLED),,$(error You need git.))
+dh_testdir
+TMPD=`mktemp -d $(if $(TMP),-p $(TMP))` && \
+mkdir $${TMPD}/archive && \
+git clone --bare $(GIT_BASEURL)/$(1) $${TMPD}/repo -b $(GIT_BRANCH) && \
+git archive --remote $${TMPD}/repo --format=tar --prefix libreoffice-$(DEB_VERSION_UPSTREAM)/ $(GIT_TAG) |tar x -C $${TMPD}/archive && \
+tar cvJf $(2) -C $${TMPD}/archive/$(3) --transform 's,./,,' . && \
+rm -rf $${TMPD}
+endef
+
+define unpack_gittarball
+dh_testdir
+mkdir -p $(CURDIR)/$(1)
+test -f $(CURDIR)/$(1)/.gitignore || tar xvJf $(2) -C $(CURDIR)/$(1) $(3)
+endef
+
+ifneq ($(filter get-orig-source unpack,$(MAKECMDGOALS)),)
+$(call get_orig_tarball):
+       $(call pack_gittarball,core,$@,)
+
+$(call get_orig_tarball,-helpcontent2):
+       $(call pack_gittarball,help,$@,libreoffice-$(DEB_VERSION_UPSTREAM)/)
+
+$(call get_orig_tarball,-%):
+       $(call pack_gittarball,$*,$@,libreoffice-$(DEB_VERSION_UPSTREAM)/)
+
+# Get upstream external sources
+$(call get_orig_tarball,-tarballs): helpcontent2/makefile.pmk translations/makefile.mk .gitignore
+       dh_testdir
+       rm -rf tarballs
+       mkdir -p tarballs
+       quilt push -a
+       ./autogen.sh $(filter-out --disable-fetch-external,$(CONFIGURE_FLAGS)) --with-all-tarballs
+       $(MAKE) download gb_LO_VER=$(DEB_VERSION_UPSTREAM)
+       tar cvJf $@ -C tarballs --transform 's,./,,' .
+
+# using flag files for unpacking
+.gitignore: $(call get_orig_tarball)
+       $(call unpack_gittarball,,$<,--strip-components=1)
+
+translations/makefile.mk:  $(call get_orig_tarball,-translations)
+       $(call unpack_gittarball,translations,$<,)
+
+helpcontent2/makefile.pmk:  $(call get_orig_tarball,-helpcontent2)
+       $(call unpack_gittarball,helpcontent2,$<,)
+
+tarballs/fetch.log: $(call get_orig_tarball,-tarballs) patched
+       $(call unpack_gittarball,tarballs,$<,)
+
+get-orig-source: $(call get_orig_tarball,-tarballs) tarballs/fetch.log
+       dh_testdir
+
+unpack: tarballs/fetch.log
+       dh_testdir
+endif
+endif
+
+ifeq "$(USE_SOURCE_TARBALLS)" "y"
+get-orig-source:
+       PATH=$(CURDIR)/debian/scripts:$$PATH uscan --watchfile=$(CURDIR)/debian/watch --verbose --force
+       debian/scripts/fix_component_tarballs.sh
+endif
+
+.PHONY: control
+.PHONY: clean-debdir clean-instsetoo clean-objectdirs clean default
+.PHONY: prepare build build-indep build-arch install-arch install-indep
+.PHONY: get-orig-source unpack patched
+.PHONY: $(stampdir_targets)
+
+# vim:set noet ai sts=8 sw=8 tw=0:
diff --git a/debian/scripts/fix_component_tarballs.sh b/debian/scripts/fix_component_tarballs.sh
new file mode 100755 (executable)
index 0000000..be149f2
--- /dev/null
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+set -x
+set -e
+
+pwd=`pwd`
+tmp=`mktemp -q -d`
+
+debianver=`uscan --report --verbose | grep newversion | cut -d= -f2 | awk '{ print $1 }' | head -n 1`
+
+# the main tarball
+t=`uscan --report --verbose | grep newfile | cut -d= -f2 | head -n 1`
+sourcever=`echo $t | cut -d- -f2 | sed -e "s/\.tar\.xz$//"`
+
+files=`uscan --report --verbose | grep newfile | cut -d= -f2 | tail -n +2`
+
+for f in $files; do
+       if echo $f | grep -q help; then
+               c=helpcontent2;
+       else
+               c=`echo $f | cut -d- -f2`;
+       fi
+
+       cd ${tmp}
+       echo "Extracting original $f..."
+       tar --strip-components 1 --extract --verbose --xz --file ${pwd}/../$f
+       echo "Deleting obsolete libreoffice_${debianver}.orig-${c}.tar.xz and it's signatiure...."
+       rm -f ${pwd}/../libreoffice_${debianver}.orig-${c}.tar.xz
+       rm -f ${pwd}/../libreoffice_${debianver}.orig-${c}.tar.xz.asc
+       echo "Creating new libreoffice_${debianver}.orig-${c}.tar.xz..."
+       tar --create --verbose --xz --file ${pwd}/../libreoffice_${debianver}.orig-${c}.tar.xz ${c}
+       rm -rf ${c}
+       cd ${pwd}
+done
+
+rm -rf ${tmp}
diff --git a/debian/scripts/get_libebook_dep.sh b/debian/scripts/get_libebook_dep.sh
new file mode 100755 (executable)
index 0000000..8eb2ef2
--- /dev/null
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+libs=`grep libebook.*\.so connectivity/source/drivers/evoab2/EApi.cxx | perl -pe 's/\s+\"(.*)\".*/$1/'`
+
+for l in $libs; do
+       if [ -e "/usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH`/$l" ]; then
+               p=/usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH`
+       else
+               if [ -e /usr/lib/$l ]; then
+                       p=/usr/lib
+               else
+                       continue
+               fi
+        fi
+       # sanity check: do the libs match with what we would get
+       # for our libebook version if we followed the .so symlink?
+       l1=`readlink $p/$l`
+       l2_tmp=`echo $l | perl -pe 's/(.*)\.\d+$/$1/'`
+       l2=`readlink $p/$l2_tmp`
+       l3=`readlink $p/$l2`
+       if [ "$l1" = "$l2" -o "$l1" = "$l3" ]; then
+               dep=`dpkg -S $p/$l | cut -d: -f1`
+       fi
+done
+
+if [ -n "$dep" ]; then
+       echo $dep
+else
+       echo "Cannot find libebook dependency. None of the following libs found:"
+       echo $libs
+       exit 1
+fi
+
diff --git a/debian/scripts/gid2pkgdirs.sh b/debian/scripts/gid2pkgdirs.sh
new file mode 100755 (executable)
index 0000000..6b630d2
--- /dev/null
@@ -0,0 +1,177 @@
+#!/bin/sh
+
+## create split package dirs out of LibreOffices gid_* files
+## copied from former ooo-build/libreoffice-build package-ooo
+## (c) 2005 Chris Halls <halls@debian.org>
+## (c) 2005-2011 Rene Engelhard <rene@debian.org>
+
+export OODESTDIR=$DESTDIR
+
+cd $DESTDIR
+
+echo "Copying gid files...."
+rm gid_*
+cp $DESTDIR/../../file-lists/orig/gid_* .
+
+echo "Creating package directories..."
+
+test -d pkg && rm -r pkg || :
+
+# Create package tree (needed by Debian's dpkg)
+# create_package_directory <list_file> <directory_name>
+create_package_directory()
+{
+listfile=$1
+directory="$2"
+perl -nl \
+        -e " if(/^%dir (.*)/)
+                        {system('mkdir', '-p', '-m', '755', \"$directory\".\$1);}
+                else
+                        {rename('./'.\$_, \"$directory\".\$_);}
+                " \
+        $listfile
+}
+
+# move_wrappers <directory_name> <name> [...]
+move_wrappers()
+{
+directory=$1
+shift
+mkdir -m755 -p "$directory"/usr/bin
+while test -n "$1"; do
+        mv usr/*bin/"$1$BINSUFFIX" "$directory"/usr/bin
+        shift
+done
+}
+
+create_package_directory gid_Module_Root_Ure_Hidden             pkg/ure
+create_package_directory gid_Module_Root                        pkg/libreoffice-common
+create_package_directory gid_Module_Root_Brand                  pkg/libreoffice-common
+# done by dh_installman
+#mkdir -p pkg/libreoffice-common/usr/share/man/man1
+#mv usr/share/man/man1/libreoffice$BINSUFFIX.1.gz \
+#      pkg/libreoffice-common/usr/share/man/man1
+#for i in ./usr/share/man/man1/*; do \
+#      if [ "$i" = "unopkg.1.gz" -o "$i" = "lofromtemplate.1.gz" \
+#         -o "$i" = "loffice.1.gz" ]; then p=common; \
+#      else p=`basename $i .1.gz | sed -e s/^lo//`; \
+#      fi
+#      mkdir -p pkg/libreoffice-$p/usr/share/man/man1
+#      mv $i \
+#              pkg/libreoffice-$p/usr/share/man/man1
+#done
+for i in ./usr/share/applications/*.desktop; do \
+       if [ "`basename $i`" = "libreoffice-startcenter.desktop" ]; then p=libreoffice-common; \
+       elif [ "`basename $i`" = "libreoffice-xsltfilter.desktop" ]; then p=libreoffice-common; \
+       else p=`basename $i .desktop`; fi
+       mkdir -p pkg/$p/usr/share/applications
+       mv $i \
+               pkg/$p/usr/share/applications
+done
+mkdir -p pkg/libreoffice-common/usr/share
+mv ./usr/share/icons \
+       pkg/libreoffice-common/usr/share
+mv ./usr/share/application-registry \
+       pkg/libreoffice-common/usr/share
+mv ./usr/share/mime* \
+       pkg/libreoffice-common/usr/share
+
+create_package_directory gid_Module_Root_Files_Images           pkg/libreoffice-common
+create_package_directory gid_Module_Oo_Linguistic               pkg/libreoffice-common
+create_package_directory gid_Module_Optional_Xsltfiltersamples  pkg/libreoffice-common
+create_package_directory gid_Module_Filter                      pkg/libreoffice-common
+create_package_directory gid_Module_Optional_Grfflt             pkg/libreoffice-draw
+create_package_directory gid_Module_Prg_Calc_Bin                pkg/libreoffice-calc
+create_package_directory gid_Module_Prg_Math_Bin                pkg/libreoffice-math
+create_package_directory gid_Module_Prg_Draw_Bin                pkg/libreoffice-draw
+create_package_directory gid_Module_Prg_Wrt_Bin                 pkg/libreoffice-writer
+create_package_directory gid_Module_Prg_Impress_Bin             pkg/libreoffice-impress
+create_package_directory gid_Module_Prg_Base_Bin                pkg/libreoffice-base
+create_package_directory gid_Module_Brand_Prg_Calc              pkg/libreoffice-calc
+create_package_directory gid_Module_Brand_Prg_Math              pkg/libreoffice-math
+create_package_directory gid_Module_Brand_Prg_Draw              pkg/libreoffice-draw
+create_package_directory gid_Module_Brand_Prg_Wrt               pkg/libreoffice-writer
+create_package_directory gid_Module_Brand_Prg_Impress           pkg/libreoffice-impress
+create_package_directory gid_Module_Brand_Prg_Base              pkg/libreoffice-base
+create_package_directory gid_Module_Pyuno              pkg/python3-uno
+create_package_directory gid_Module_Optional_Pyuno_LibreLogo   pkg/libreoffice-librelogo
+create_package_directory gid_Module_Script_Provider_For_Python         pkg/libreoffice-script-provider-python
+create_package_directory gid_Module_Optional_Gnome              pkg/libreoffice-gnome
+create_package_directory gid_Module_Optional_Kde                pkg/libreoffice-kde
+create_package_directory gid_Module_Optional_OGLTrans          pkg/libreoffice-impress
+create_package_directory gid_Module_Root_SDK                    pkg/libreoffice-dev
+# WTF? Why is this suddently not installed itself?
+mv usr/lib/libreoffice/sdk/lib \
+       pkg/libreoffice-dev/usr/lib/libreoffice/sdk
+create_package_directory gid_Module_Optional_Extensions_Script_Provider_For_BS pkg/libreoffice-script-provider-bsh
+create_package_directory gid_Module_Optional_Extensions_Script_Provider_For_JS  pkg/libreoffice-script-provider-js
+create_package_directory gid_Module_Optional_Extensions_MEDIAWIKI      pkg/libreoffice-wiki-publisher
+create_package_directory gid_Module_Optional_Extensions_NLPSolver      pkg/libreoffice-nlpsolver
+create_package_directory gid_Module_Pdfimport     pkg/libreoffice-common
+create_package_directory gid_Module_Reportbuilder      pkg/libreoffice-report-builder
+create_package_directory gid_Module_Optional_PostgresqlSdbc     pkg/libreoffice-sdbc-postgresql
+create_package_directory gid_Module_Libreofficekit     pkg/libreofficekit-data
+move_wrappers pkg/libreoffice-common soffice unopkg
+move_wrappers pkg/libreoffice-common libreoffice loffice lofromtemplate
+move_wrappers pkg/libreoffice-base lobase
+move_wrappers pkg/libreoffice-writer lowriter loweb
+move_wrappers pkg/libreoffice-calc localc
+move_wrappers pkg/libreoffice-impress loimpress
+move_wrappers pkg/libreoffice-math lomath
+move_wrappers pkg/libreoffice-draw lodraw
+
+for l in `echo $OOO_LANGS_LIST`; do
+        for p in Impress Draw Math Calc Base Writer; do
+                create_package_directory  gid_Module_Langpack_${p}_`echo $l | sed -e s/-/_/g`   pkg/libreoffice-l10n-$l
+        done
+        create_package_directory gid_Module_Langpack_Basis_`echo $l | sed -e s/-/_/g`   pkg/libreoffice-l10n-$l
+        create_package_directory gid_Module_Langpack_Brand_`echo $l | sed -e s/-/_/g`   pkg/libreoffice-l10n-$l
+        create_package_directory gid_Module_Langpack_Resource_`echo $l | sed -e s/-/_/g`        pkg/libreoffice-l10n-$l
+       if [ -f gid_Module_Helppack_Help_`echo $l | sed -e s/-/_/g` ]; then
+               create_package_directory gid_Module_Helppack_Help_`echo $l | sed -e s/-/_/g`    pkg/libreoffice-help-$l
+       fi
+        # some help files are in _Langpack_{Writer,Impress,...}_<lang>
+        # move them from -l10n to -help
+        if [ "$l" = "en-US" ]; then d=en; else d=$l; fi
+        mv pkg/libreoffice-l10n-$l/$OOINSTBASE/help/$d/* \
+                pkg/libreoffice-help-$l/$OOINSTBASE/help/$d && \
+        rmdir pkg/libreoffice-l10n-$l/$OOINSTBASE/help/$d
+done
+
+# Move all libraries and binaries from -common to -core
+if [ ! -d $OODESTDIR/pkg/libreoffice-core/$OOINSTBASE/program ]; then \
+mkdir -p $OODESTDIR/pkg/libreoffice-core/$OOINSTBASE/program; \
+fi &&
+( cd pkg/libreoffice-common/$OOINSTBASE/program
+  find -maxdepth 1 \
+     -regex '\./\(.*\.so.*\|.*\.bin\|pagein.*\|kdefilepicker\|msfontextract\|.*\.rdb\|javaldx\|oosplash\|uri-encode\|xpdfimport\|ui-previewer\|opencltest\)' \
+     -exec mv {} $OODESTDIR/pkg/libreoffice-core/$OOINSTBASE/program \;
+);
+for i in types services; do \
+       if [ ! -d $OODESTDIR/pkg/libreoffice-core/$OOINSTBASE/program/$i ]; then \
+       mkdir -p $OODESTDIR/pkg/libreoffice-core/$OOINSTBASE/program/$i; \
+       fi &&
+       ( cd pkg/libreoffice-common/$OOINSTBASE/program/$i
+         find -maxdepth 1 \
+         -regex '\./\(.*\.rdb\)' \
+          -exec mv {} $OODESTDIR/pkg/libreoffice-core/$OOINSTBASE/program/$i \;
+       ); \
+done
+
+mkdir -p pkg/libreoffice-common/usr/share/bash-completion/completions
+mv usr/share/bash-completion/completions/libreoffice$BINSUFFIX.sh \
+       pkg/libreoffice-common/usr/share/bash-completion/completions/libreoffice$BINSUFFIX
+
+mv .$OOINSTBASE/program/java-set-classpath \
+       pkg/libreoffice-common/$OOINSTBASE/program
+if echo $OOO_LANGS_LIST | grep -q en-US; then
+        for i in forms/resume.ott officorr/project-proposal.ott; do \
+                mkdir -p pkg/libreoffice-common/$OOINSTBASE/share/template/en-US/`dirname $i`; \
+                mv .$OOINSTBASE/share/template/en-US/$i \
+                        pkg/libreoffice-common/$OOINSTBASE/share/template/en-US/$i; \
+        done; \
+fi
+
+# Warn for any remaining files
+find . -path './pkg' -prune -o -not -name 'gid_Module_*' -not -type d -exec echo "File not packaged: {}" \;
+
diff --git a/debian/scripts/joinctrl.py b/debian/scripts/joinctrl.py
new file mode 100755 (executable)
index 0000000..ce12f09
--- /dev/null
@@ -0,0 +1,66 @@
+#! /usr/bin/python3
+
+import re, sys, fileinput
+
+def splitlines():
+    fields = ('Build-Depends', 'Build-Conflicts', 'Build-Depends-Indep', 'Build-Depends-Arch',
+              'Depends', 'Replaces', 'Provides', 'Conflicts', 'Recommends', 'Suggests', 'Breaks')
+    for line in fileinput.input():
+        line = line[:-1]
+        field = None
+        for f in fields:
+            if line.startswith(f+':'):
+                field = f
+                break
+        if not field:
+            print(line)
+            continue
+        values = [f.strip() for f in line.split(':',1)[1].strip().split(',')]
+        if len(values) > 2:
+            print('%s: %s' % (field, ',\n '.join(values)))
+        else:
+            print('%s: %s' % (field, ', '.join(values)))
+
+def sort_list(unsorted_list):
+    packages = [x for x in unsorted_list if re.match("[a-z0-9]", x)]
+    special = [x for x in unsorted_list if not re.match("[a-z0-9]", x)]
+    return sorted(packages) + sorted(special)
+
+def joinlines():
+    fields = ('Build-Depends', 'Build-Conflicts', 'Build-Depends-Indep', 'Build-Depends-Arch',
+              'Depends', 'Replaces', 'Provides', 'Conflicts', 'Recommends', 'Suggests', 'Breaks')
+    buffer = None
+    for line in fileinput.input():
+        line = line[:-1]
+        if buffer:
+            if line.startswith(' '):
+                buffer = buffer + ' ' + line.strip()
+                continue
+            else:
+                packages = sort_list(set([x.strip() for x in buffer[len(field)+1:].split(",")]))
+                if "" in packages:
+                    packages.remove("")
+                length = len(field) + sum([2 + len(package) for package in packages])
+                if length > 80:
+                    indentation = " " * (len(field) + 2)
+                    packages_with_indention = [indentation + x for x in packages]
+                    packages_with_indention = ",\n".join(packages_with_indention)
+                    print(field + ": " + packages_with_indention.strip())
+                else:
+                    print(field + ": " + ", ".join(packages).strip())
+                buffer = None
+        field = None
+        for f in fields:
+            if line.startswith(f+':'):
+                field = f
+                break
+        if field:
+            buffer = line.strip()
+            continue
+        print(line)
+
+def main():
+    #splitlines()
+    joinlines()
+
+main()
diff --git a/debian/scripts/locale-gen b/debian/scripts/locale-gen
new file mode 100755 (executable)
index 0000000..c7334fd
--- /dev/null
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+# generate locales that uicheck depend on
+# "stolen" from gcc
+
+LOCPATH=`pwd`/debian/locales
+export LOCPATH
+
+[ -d $LOCPATH ] || mkdir -p $LOCPATH
+
+[ -n "$USE_CPUS" ] || USE_CPUS=1
+
+umask 022
+
+echo "Generating locales..."
+xargs -L 1 -P $USE_CPUS -I{} \
+    sh -c '
+       set {}; locale=$1; charset=$2
+       case $locale in \#*) exit;; esac
+       [ -n "$locale" -a -n "$charset" ] || exit
+       echo "  `echo $locale | sed \"s/\([^.\@]*\).*/\1/\"`.$charset`echo $locale | sed \"s/\([^\@]*\)\(\@.*\)*/\2/\"`..."
+        if [ -f $LOCPATH/$locale ]; then
+           input=$locale
+       else
+            input=`echo $locale | sed "s/\([^.]*\)[^@]*\(.*\)/\1\2/"`
+       fi
+       localedef -i $input -c -f $charset $LOCPATH/$locale #-A /etc/locale.alias
+    ' <<EOF
+en_US.UTF-8            UTF-8
+EOF
+
+echo "Generation complete."
diff --git a/debian/scripts/move-if-change b/debian/scripts/move-if-change
new file mode 100755 (executable)
index 0000000..d267e72
--- /dev/null
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+# Copyright (C) 1996 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+if
+test -r $2
+then
+if
+cmp $1 $2 > /dev/null
+then
+echo $2 is unchanged
+rm -f $1
+else
+mv -f $1 $2
+fi
+else
+mv -f $1 $2
+fi
diff --git a/debian/scripts/stat_pos.sh b/debian/scripts/stat_pos.sh
new file mode 100755 (executable)
index 0000000..c0469ad
--- /dev/null
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+set -e
+
+# Quick and dirty script to stat the LO translations/ pos wrt % translated
+# FIXME: maybe use pocount from translate-toolkit
+
+# Author: Rene Engelhard <rene@debian.org>
+# (C) 2017 Software in the Public Interest, Inc.
+
+cd translations/source
+
+for l in `ls -1`; do
+       # 23:36 <@cloph> no - but you can do a brute-force method of just counting msgid and comparing that with »msgstr ""« matches.
+       # 23:37 <@cloph> While that ignores multiline strings, there aren't too many and should work as a rough estimate
+       msgid_count=$(grep msgid `find $l -name "*.po"` | wc -l)
+       msgstr_count=$(grep msgstr `find $l -name "*.po"` | wc -l)
+       empty_msgstr_count=$(grep msgstr\ \"\" `find $l -name "*.po"` | wc -l)
+       p=$((100*$empty_msgstr_count/$msgid_count))
+       echo "$l: $msgid_count strings, $(($msgid_count-$empty_msgstr_count))/$msgid_count translated; $empty_msgstr_count/$msgid_count untranslated"
+       if test $msgid_count -lt 50000; then
+               echo "$l: no help translations"
+       fi
+       echo "$l: $((100-$p))% translated, $p% untranslated"
+
+       if test $p -lt 20; then
+               langs="$langs $l"
+       fi
+done
+
+echo "languages over 80% translated:"
+echo $langs
diff --git a/debian/shell-lib-extensions.sh b/debian/shell-lib-extensions.sh
new file mode 100644 (file)
index 0000000..b7acf0b
--- /dev/null
@@ -0,0 +1,12 @@
+validate_extensions() {
+  INSTDIR=`mktemp -d`
+  if HOME=$INSTDIR /usr/lib/libreoffice/program/unopkg list --bundled >/dev/null 2>/dev/null; then
+       HOME=$INSTDIR /usr/lib/libreoffice/program/unopkg validate -v --bundled
+  fi
+}
+
+make_lo_sync_extensions() {
+       if [ -d /usr/lib/libreoffice/share/extensions ]; then
+               touch /usr/lib/libreoffice/share/extensions
+       fi
+}
diff --git a/debian/shell-lib-lool.sh b/debian/shell-lib-lool.sh
new file mode 100644 (file)
index 0000000..b0afb77
--- /dev/null
@@ -0,0 +1,5 @@
+update_lool_systemplate() {
+        echo -n "Updating LibreOffice Online systemplate... "
+        su lool --shell=/bin/sh -c 'loolwsd-systemplate-setup /var/lib/lool/systemplate /usr/lib/libreoffice >/dev/null 2>&1'
+        echo "done."
+}
diff --git a/debian/shlibs.override.icu b/debian/shlibs.override.icu
new file mode 100644 (file)
index 0000000..f787723
--- /dev/null
@@ -0,0 +1,5 @@
+libicudata     73
+libicui18n     73
+libicule       73
+libicuuc       73
+libicutu       73
diff --git a/debian/shlibs.override.libc b/debian/shlibs.override.libc
new file mode 100644 (file)
index 0000000..0f04116
--- /dev/null
@@ -0,0 +1 @@
+libc 0.1 libc0.1 (>= 2.10.2-7)
diff --git a/debian/shlibs.override.libetonyek b/debian/shlibs.override.libetonyek
new file mode 100644 (file)
index 0000000..eb8ef1c
--- /dev/null
@@ -0,0 +1 @@
+libetonyek-0.1-lo      1
diff --git a/debian/shlibs.override.liblangtag b/debian/shlibs.override.liblangtag
new file mode 100644 (file)
index 0000000..e426070
--- /dev/null
@@ -0,0 +1 @@
+liblangtag-lo  1
diff --git a/debian/shlibs.override.libmwaw b/debian/shlibs.override.libmwaw
new file mode 100644 (file)
index 0000000..b646a88
--- /dev/null
@@ -0,0 +1 @@
+libmwaw-0.3-lo 3
diff --git a/debian/shlibs.override.libodfgen b/debian/shlibs.override.libodfgen
new file mode 100644 (file)
index 0000000..73489e3
--- /dev/null
@@ -0,0 +1 @@
+libodfgen-0.1-lo       1
diff --git a/debian/shlibs.override.librevenge b/debian/shlibs.override.librevenge
new file mode 100644 (file)
index 0000000..f6c3fd1
--- /dev/null
@@ -0,0 +1 @@
+librevenge-0.0-lo      0
diff --git a/debian/shlibs.override.libstaroffice b/debian/shlibs.override.libstaroffice
new file mode 100644 (file)
index 0000000..5ad3eaf
--- /dev/null
@@ -0,0 +1 @@
+libstaroffice-0.0-lo   0
diff --git a/debian/shlibs.override.libvisio b/debian/shlibs.override.libvisio
new file mode 100644 (file)
index 0000000..cba8b67
--- /dev/null
@@ -0,0 +1 @@
+libvisio-0.1   1
diff --git a/debian/shlibs.override.libwpd b/debian/shlibs.override.libwpd
new file mode 100644 (file)
index 0000000..8b6680e
--- /dev/null
@@ -0,0 +1 @@
+libwpd-0.10-lo 10
diff --git a/debian/shlibs.override.libwpg b/debian/shlibs.override.libwpg
new file mode 100644 (file)
index 0000000..207ef90
--- /dev/null
@@ -0,0 +1 @@
+libwpg-0.3-lo  3
diff --git a/debian/shlibs.override.libwps b/debian/shlibs.override.libwps
new file mode 100644 (file)
index 0000000..e6b1d7c
--- /dev/null
@@ -0,0 +1 @@
+libwps-0.4-lo  4
diff --git a/debian/shlibs.override.orcus b/debian/shlibs.override.orcus
new file mode 100644 (file)
index 0000000..c6708a7
--- /dev/null
@@ -0,0 +1,2 @@
+liborcus-0.18          0
+liborcus-parser-0.18           0
diff --git a/debian/soffice.sh b/debian/soffice.sh
new file mode 100644 (file)
index 0000000..bd14b9a
--- /dev/null
@@ -0,0 +1,21 @@
+# configuration file to set up some environment variables for LibreOffice
+
+# File locking; possible values are:
+# - yes:  enable file locking unconditionally
+# - no:   disable file locking
+# - auto: enable file locking, when the document is found on a nfs share
+# If the environment variable SAL_ENABLE_FILE_LOCKING is set,
+# the setting if ENABLE_FILE_LOCKING has no effect.
+
+FILE_LOCKING=auto
+
+# OpenGL support; may cause trouble with the restricted nvidia and fglrx
+# drivers; possible values are:
+# - yes:  enable OpenGL support unconditionally
+# - no:   disable OpenGL support.
+# - auto: only enable OpenGL support, if not running with the restricted
+#   nvidia and fglrx drivers.
+# If the environment variable SAL_NOOPENGL is set,
+# the setting if OPENGL_SUPPORT has no effect.
+
+OPENGL_SUPPORT=no
diff --git a/debian/source/format b/debian/source/format
new file mode 100644 (file)
index 0000000..163aaf8
--- /dev/null
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/debian/source/include-binaries b/debian/source/include-binaries
new file mode 100644 (file)
index 0000000..cdfd478
--- /dev/null
@@ -0,0 +1,9 @@
+debian/templates/debian-presentation.otp
+debian/templates/debian-presentation-background.xcf
+tarballs/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
+tarballs/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
+tarballs/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip
+tarballs/pdfium-6179.tar.bz2
+tarballs/skia-m116-2ddcf183eb260f63698aa74d1bb380f247ad7ccd.tar.xz
+tarballs/dtoa-20180411.tgz
+tarballs/Java-WebSocket-1.5.4.tar.gz
diff --git a/debian/source/lintian-overrides b/debian/source/lintian-overrides
new file mode 100644 (file)
index 0000000..dcfd284
--- /dev/null
@@ -0,0 +1,34 @@
+# This *is* the code. lintian, don't assume every HTML file with long lines is generated, thanks, bye!
+libreoffice source: source-is-missing [odk/index.html]
+libreoffice source: source-is-missing [odk/docs/tools.html]
+libreoffice source: source-is-missing [odk/examples/DevelopersGuide/examples.html]
+libreoffice source: source-is-missing [odk/examples/examples.html]
+libreoffice source: source-is-missing [odk/index_online.html]
+# sw/qa/extras/htmlimport/data/PageAndParagraphFilled.html:    <meta name="generator" content="LibreOfficeDev 5.1.0.0.alpha1 (Windows)"/>
+# sw/qa/extras/htmlimport/data/inlined_image.html:     <meta name="generator" content="LibreOfficeDev 4.4.0.0.alpha0 (Linux)"/>
+# long lines due to inline base64 image
+libreoffice source: source-is-missing [sw/qa/extras/htmlimport/data/PageAndParagraphFilled.html]
+libreoffice source: source-is-missing [sw/qa/extras/htmlimport/data/inlined_image.html]
+# as above, but without generator meta tag
+libreoffice source: source-is-missing [sw/qa/extras/htmlexport/data/clearing-break.html]
+libreoffice source: source-is-missing [sw/qa/extras/htmlimport/data/image-lazy-read.html]
+libreoffice source: source-is-missing [sw/qa/extras/htmlimport/data/tdf142781.html]
+# <META NAME="GENERATOR" CONTENT="OpenOffice.org 2.3  (Linux)">
+libreoffice source: source-is-missing [sw/qa/extras/layout/data/forcepoint94.html]
+# hrmpf. of course they are there
+# $ ls tarballs/*
+# tarballs/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip    tarballs/dtoa-20180411.tgz
+# tarballs/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip    tarballs/pdfium-5058.tar.bz2
+# tarballs/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip  tarballs/skia-m103-b301ff025004c9cd82816c86c547588e6c24b466.tar.xz
+libreoffice source: superfluous-file-pattern tarballs/*rhino* [debian/copyright:135]
+libreoffice source: superfluous-file-pattern tarballs/*swingEx* [debian/copyright:167]
+libreoffice source: superfluous-file-pattern tarballs/*xsltml* [debian/copyright:140]
+libreoffice source: superfluous-file-pattern tarballs/dtoa* [debian/copyright:126]
+libreoffice source: superfluous-file-pattern tarballs/pdfium* [debian/copyright:173]
+libreoffice source: superfluous-file-pattern tarballs/skia* [debian/copyright:131]
+# patched in by us
+libreoffice source: superfluous-file-pattern wizards/source/access2base/access2base.html [debian/copyright:203]
+libreoffice source: source-is-missing [wizards/source/access2base/access2base.html]
+# two licenses..
+libreoffice source: duplicate-globbing-patterns helpcontent2/help3xsl/polyfills.js (lines 232 236) [debian/copyright]
+
diff --git a/debian/templates/debian-presentation-background.xcf b/debian/templates/debian-presentation-background.xcf
new file mode 100644 (file)
index 0000000..5f05232
Binary files /dev/null and b/debian/templates/debian-presentation-background.xcf differ
diff --git a/debian/templates/debian-presentation.otp b/debian/templates/debian-presentation.otp
new file mode 100644 (file)
index 0000000..17fe503
Binary files /dev/null and b/debian/templates/debian-presentation.otp differ
diff --git a/debian/templates/soffice-template.desktop.in b/debian/templates/soffice-template.desktop.in
new file mode 100644 (file)
index 0000000..0f031f9
--- /dev/null
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=LibreOffice @APP@  ...
+Comment=Enter LibreOffice @APP@ filename:
+Comment[de]=Name der LibreOffice @APP@-Datei eingeben:
+Type=Link
+URL=.source/soffice.@EXT@
+Icon=libreoffice-oasis-@TYPE@
+
diff --git a/debian/tests/access2base-import b/debian/tests/access2base-import
new file mode 100755 (executable)
index 0000000..4065aef
--- /dev/null
@@ -0,0 +1,4 @@
+#!/usr/bin/python3
+
+import access2base
+print(access2base)
diff --git a/debian/tests/control b/debian/tests/control
new file mode 100644 (file)
index 0000000..34f64f1
--- /dev/null
@@ -0,0 +1,143 @@
+#
+# NOTE: This file is autogenerated. DO NOT manually edit it! 
+# Edit debian/tests/control*in and rules (whatever applicable), run debian/rules control
+# and move control.new to control if the difference is sane.
+#
+Tests: testtools-bridgetest-without-java
+Depends: @builddeps@, ure
+Restrictions: allow-stderr, rw-build-tree, superficial
+
+Tests: testtools-bridgetest-with-java
+Architecture: alpha amd64 arm64 armel i386 ia64 loong64 m68k mipsel mips64el powerpc ppc64 riscv64 sparc64 mips
+Depends: @builddeps@, ure-java, liblibreoffice-java, default-jdk
+Restrictions: allow-stderr, rw-build-tree, superficial
+
+Tests: pyuno-import, uno-import
+Depends: python3, python3-uno
+Restrictions: superficial
+
+Tests: access2base-import
+Depends: python3, python3-access2base
+Restrictions: superficial
+
+Tests: scriptforge-import
+Depends: python3, python3-scriptforge
+Restrictions: superficial
+
+## Is there a need for this small test given we run the UI tests etc.?
+#Tests: smoketest
+#Architecture: amd64 arm64 armhf
+#Depends: @builddeps@, libreoffice-smoketest-data, libreoffice-dev, libreoffice-core, libreoffice-writer, libreoffice-calc, libreoffice-impress, libreoffice-math, libreoffice-base, libreoffice-sdbc-hsqldb, libreoffice-sdbc-firebird
+#Restrictions: allow-stderr, build-needed, rw-build-tree, superficial
+
+# this is already done by smoketest upstream, but fails when doing it against
+# the installed LO. works standalone, though, so it's patched out of the
+# smoketest. Do it here separately.
+Tests: test-extension
+Architecture: amd64 arm64 i386 ppc64
+Depends: libreoffice-core-nogui, libreoffice-common, libreoffice-java-common, libreoffice-smoketest-data, default-jdk
+Restrictions: allow-stderr, superficial, skippable
+
+Tests: test-extension-shared
+Architecture: amd64 arm64 i386 ppc64
+Depends: libreoffice-core-nogui, libreoffice-common, libreoffice-java-common, libreoffice-smoketest-data, default-jdk
+Restrictions: allow-stderr, needs-root, superficial
+
+# in the following some tests need RTL and CJK language packs installed to pass.
+# he is the example for RTL, zh-tw for CJK (and zh-tw was choosen to also test xx-YY locales)
+
+# Maybe all those tests should be merged into one (especially for the "small" ones like writerperfect or
+# "tiny" ones like sfx2,svx,cui.
+# But it already takes ~1.5 h (though including copy..) for all them to run on amd64 and the overall autopkgtest
+# test timeout is 166 min (a bit over 2.5 hrs.). What are we doing on slow archs?
+# And secondly. one might miss breakage if Java or another package is not installed but is
+# required because everything needed would be in Depends: then for one test...
+# Try to optimize a bit though by not sorting alphabetically but where the  new packages are a superset so
+# we can reuse the testbed
+
+Tests: uicheck-sfx2
+Depends: @builddeps@, libreoffice-core, libreoffice-impress, python3-uno
+Restrictions: allow-stderr
+
+Tests: uicheck-svx
+Depends: @builddeps@, libreoffice-core, libreoffice-impress, python3-uno
+Restrictions: allow-stderr
+
+Tests: uicheck-cui
+Architecture: alpha amd64 arm64 armel i386 ia64 loong64 m68k mipsel mips64el powerpc ppc64 riscv64 sparc64 mips
+Depends: @builddeps@, libreoffice-core, libreoffice-impress, libreoffice-writer, python3-uno, libreoffice-script-provider-python, libreoffice-script-provider-js, libreoffice-script-provider-bsh
+Restrictions: allow-stderr
+
+Tests: uicheck-sd
+Depends: @builddeps@, libreoffice-core, libreoffice-draw, libreoffice-impress, libreoffice-calc, python3-uno
+Restrictions: allow-stderr
+
+Tests: uicheck-writerperfect
+Depends: @builddeps@, libreoffice-core, libreoffice-writer, python3-uno
+Restrictions: allow-stderr
+
+Tests: uicheck-sc
+Architecture: alpha amd64 arm64 armel i386 ia64 loong64 m68k mipsel mips64el powerpc ppc64 riscv64 sparc64 mips
+Depends: @builddeps@, libreoffice-core, libreoffice-calc, libreoffice-draw, libreoffice-impress, python3-uno, libreoffice-l10n-he, libreoffice-l10n-zh-tw, libreoffice-java-common, libreoffice-writer
+Restrictions: allow-stderr
+
+Tests: uicheck-sw
+Architecture: alpha amd64 arm64 armel i386 ia64 loong64 m68k mipsel mips64el powerpc ppc64 riscv64 sparc64 mips
+Depends: @builddeps@, libreoffice-core, libreoffice-writer, libreoffice-draw, libreoffice-calc, libreoffice-impress, libreoffice-base, python3-uno, libreoffice-l10n-he, libreoffice-l10n-zh-tw, libreoffice-librelogo, libreoffice-java-common
+Restrictions: allow-stderr, needs-internet
+
+Tests: uicheck-uitest
+Depends: @builddeps@, libreoffice-core, libreoffice-writer, libreoffice-calc, libreoffice-impress, libreoffice-math, libreoffice-base, python3-uno, libreoffice-l10n-he, libreoffice-l10n-zh-tw
+Restrictions: allow-stderr
+
+Test-Command: export DOXYGEN=`command -v doxygen`; export ENABLE_JAVA=TRUE; export JDK=sun; export JAVADOC=/usr/lib/jvm/default-java/bin/javadoc; perl odk/util/check.pl /usr/lib/libreoffice/sdk
+Features: test-name=sdk-complete
+Architecture: alpha amd64 arm64 armel i386 ia64 loong64 m68k mipsel mips64el powerpc ppc64 riscv64 sparc64 mips
+Depends: libreoffice-dev, libreoffice-dev-doc
+Restrictions: superficial
+
+Tests: odk-build-examples
+Architecture: amd64 arm64 armhf i386 ppc64 ppc64el s390x
+Depends: @builddeps@, libreoffice-core-nogui, libreoffice-dev, libreoffice-dev-doc, python3-uno
+Restrictions: allow-stderr, skippable
+
+Tests: odk-build-examples-java
+Architecture: amd64 arm64 i386 ppc64
+Depends: @builddeps@, libreoffice-core-nogui, libreoffice-dev, libreoffice-dev-doc, libreoffice-java-common, libofficebean-java
+Restrictions: allow-stderr, skippable
+
+#Tests: cppunit-subsequentcheck
+#Architecture: amd64 arm64 armhf
+#Depends: @builddeps@, libreoffice,libreoffice-core,libreoffice-common,libreoffice-java-common,libreoffice-writer,libreoffice-calc,libreoffice-impress,libreoffice-draw,libreoffice-math,libreoffice-base-core,libreoffice-base,libreoffice-style-breeze,libreoffice-style-colibre,libreoffice-style-sifr,libreoffice-style-elementary,libreoffice-style-karasa-jaga,libreoffice-style-sukapura,libreoffice-gnome,python3-uno,libreoffice-script-provider-python,libreoffice-script-provider-bsh,libreoffice-script-provider-js,libreoffice-sdbc-hsqldb,libreoffice-sdbc-mysql,libreoffice-base-drivers,python3-access2base,python3-scriptforge,libofficebean-java,libreoffice-uiconfig-common,libreoffice-uiconfig-base,libreoffice-uiconfig-calc,libreoffice-uiconfig-draw,libreoffice-uiconfig-impress,libreoffice-uiconfig-math,libreoffice-uiconfig-writer,uno-libs-private,libuno-sal3t64,libuno-cppu3t64,ure,ure-java,libunoloader-java,liblibreoffice-java,libreoffice-wiki-publisher,libreoffice-report-builder,libreoffice-report-builder-bin,libreoffice-uiconfig-report-builder,libreoffice-nlpsolver,fonts-opensymbol,libreoffice-dev,libreoffice-dev-gui,libreoffice-dev-common,libreofficekit-dev,libreoffice-gtk3,gir1.2-lokdocview-0.1,liblibreofficekitgtk,libreofficekit-data,libreoffice-gtk4,libreoffice-kf5,libreoffice-qt5,libreoffice-qt6,libreoffice-plasma,libreoffice-sdbc-postgresql,libreoffice-evolution,libreoffice-subsequentcheckbase,libreoffice-smoketest-data,libreoffice-librelogo,libreoffice-sdbc-firebird
+#Restrictions: build-needed, rw-build-tree, allow-stderr
+#
+## Those tests even work when there is no /usr/lib/libreoffice there in any way. @builddeps@ is enough.
+## That strictly violates the autopkgtest stuff thus mark them as superficial. But if a library
+## or whatever update broke it we should know
+#Tests: slowcheck
+#Architecture: amd64 arm64 armhf
+##Depends: @builddeps@, libreoffice,libreoffice-core,libreoffice-common,libreoffice-java-common,libreoffice-writer,libreoffice-calc,libreoffice-impress,libreoffice-draw,libreoffice-math,libreoffice-base-core,libreoffice-base,libreoffice-style-breeze,libreoffice-style-colibre,libreoffice-style-sifr,libreoffice-style-elementary,libreoffice-style-karasa-jaga,libreoffice-style-sukapura,libreoffice-gnome,python3-uno,libreoffice-script-provider-python,libreoffice-script-provider-bsh,libreoffice-script-provider-js,libreoffice-sdbc-hsqldb,libreoffice-sdbc-mysql,libreoffice-base-drivers,python3-access2base,python3-scriptforge,libofficebean-java,libreoffice-uiconfig-common,libreoffice-uiconfig-base,libreoffice-uiconfig-calc,libreoffice-uiconfig-draw,libreoffice-uiconfig-impress,libreoffice-uiconfig-math,libreoffice-uiconfig-writer,uno-libs-private,libuno-sal3t64,libuno-cppu3t64,ure,ure-java,libunoloader-java,liblibreoffice-java,libreoffice-wiki-publisher,libreoffice-report-builder,libreoffice-report-builder-bin,libreoffice-uiconfig-report-builder,libreoffice-nlpsolver,fonts-opensymbol,libreoffice-dev,libreoffice-dev-gui,libreoffice-dev-common,libreofficekit-dev,libreoffice-gtk3,gir1.2-lokdocview-0.1,liblibreofficekitgtk,libreofficekit-data,libreoffice-gtk4,libreoffice-kf5,libreoffice-qt5,libreoffice-qt6,libreoffice-plasma,libreoffice-sdbc-postgresql,libreoffice-evolution,libreoffice-subsequentcheckbase,libreoffice-smoketest-data,libreoffice-librelogo,libreoffice-sdbc-firebird
+#Restrictions: build-needed, rw-build-tree, allow-stderr, superficial
+#
+#Tests: unitcheck
+#Architecture: amd64 arm64 armhf
+#Depends: @builddeps@, libreoffice,libreoffice-core,libreoffice-common,libreoffice-java-common,libreoffice-writer,libreoffice-calc,libreoffice-impress,libreoffice-draw,libreoffice-math,libreoffice-base-core,libreoffice-base,libreoffice-style-breeze,libreoffice-style-colibre,libreoffice-style-sifr,libreoffice-style-elementary,libreoffice-style-karasa-jaga,libreoffice-style-sukapura,libreoffice-gnome,python3-uno,libreoffice-script-provider-python,libreoffice-script-provider-bsh,libreoffice-script-provider-js,libreoffice-sdbc-hsqldb,libreoffice-sdbc-mysql,libreoffice-base-drivers,python3-access2base,python3-scriptforge,libofficebean-java,libreoffice-uiconfig-common,libreoffice-uiconfig-base,libreoffice-uiconfig-calc,libreoffice-uiconfig-draw,libreoffice-uiconfig-impress,libreoffice-uiconfig-math,libreoffice-uiconfig-writer,uno-libs-private,libuno-sal3t64,libuno-cppu3t64,ure,ure-java,libunoloader-java,liblibreoffice-java,libreoffice-wiki-publisher,libreoffice-report-builder,libreoffice-report-builder-bin,libreoffice-uiconfig-report-builder,libreoffice-nlpsolver,fonts-opensymbol,libreoffice-dev,libreoffice-dev-gui,libreoffice-dev-common,libreofficekit-dev,libreoffice-gtk3,gir1.2-lokdocview-0.1,liblibreofficekitgtk,libreofficekit-data,libreoffice-gtk4,libreoffice-kf5,libreoffice-qt5,libreoffice-qt6,libreoffice-plasma,libreoffice-sdbc-postgresql,libreoffice-evolution,libreoffice-subsequentcheckbase,libreoffice-smoketest-data,libreoffice-librelogo,libreoffice-sdbc-firebird
+#Restrictions: build-needed, rw-build-tree, allow-stderr, superficial, skippable
+
+Test-Command: for i in /etc/apparmor.d/usr.lib.libreoffice.program.*; do /sbin/apparmor_parser --add --skip-cache --skip-kernel-load $i; done
+Features: test-name=apparmor-profiles-syntax-check
+Depends: libreoffice-common, apparmor
+Restrictions: allow-stderr, superficial
+
+## This one tests real connection to a MySQL and works by symlinking that one
+## specific library to the one in libreoffice-sdbc-mysql
+## Should probably always be last due to breaks-testbed?
+#Tests: cppunit-connectivity-mysql
+#Architecture: amd64 arm64 armhf
+#Depends: @builddeps@, pwgen, libreoffice-sdbc-mysql, libreoffice-core, default-mysql-server, default-mysql-client
+#Restrictions: build-needed, allow-stderr, needs-root, isolation-container, breaks-testbed, superficial
+
+Tests: junit-subsequentcheck
+Architecture: amd64 arm64
+Depends: @builddeps@, libreoffice-core, libreoffice-writer, libreoffice-calc, libreoffice-impress, libreoffice-math, libreoffice-base, libreoffice-subsequentcheckbase, libreoffice-sdbc-hsqldb, libreoffice-sdbc-firebird
+Restrictions: allow-stderr, skippable
diff --git a/debian/tests/control.in b/debian/tests/control.in
new file mode 100644 (file)
index 0000000..ba40f9b
--- /dev/null
@@ -0,0 +1,134 @@
+Tests: testtools-bridgetest-without-java
+Depends: @builddeps@, ure
+Restrictions: allow-stderr, rw-build-tree, superficial
+
+Tests: testtools-bridgetest-with-java
+Architecture: %OOO_JAVA_ARCHS%
+Depends: @builddeps@, ure-java, liblibreoffice-java, default-jdk
+Restrictions: allow-stderr, rw-build-tree, superficial
+
+Tests: pyuno-import, uno-import
+Depends: python3, python3-uno
+Restrictions: superficial
+
+Tests: access2base-import
+Depends: python3, python3-access2base
+Restrictions: superficial
+
+Tests: scriptforge-import
+Depends: python3, python3-scriptforge
+Restrictions: superficial
+
+## Is there a need for this small test given we run the UI tests etc.?
+#Tests: smoketest
+#Architecture: %OOO_CHECK_FATAL_ARCHS%
+#Depends: @builddeps@, libreoffice-smoketest-data, libreoffice-dev, libreoffice-core, libreoffice-writer, libreoffice-calc, libreoffice-impress, libreoffice-math, libreoffice-base, libreoffice-sdbc-hsqldb, libreoffice-sdbc-firebird
+#Restrictions: allow-stderr, build-needed, rw-build-tree, superficial
+
+# this is already done by smoketest upstream, but fails when doing it against
+# the installed LO. works standalone, though, so it's patched out of the
+# smoketest. Do it here separately.
+Tests: test-extension
+Architecture: %OOO_JAVA_AND_NOGUI_ARCHS%
+Depends: libreoffice-core-nogui, libreoffice-common, libreoffice-java-common, libreoffice-smoketest-data, default-jdk
+Restrictions: allow-stderr, superficial, skippable
+
+Tests: test-extension-shared
+Architecture: %OOO_JAVA_AND_NOGUI_ARCHS%
+Depends: libreoffice-core-nogui, libreoffice-common, libreoffice-java-common, libreoffice-smoketest-data, default-jdk
+Restrictions: allow-stderr, needs-root, superficial
+
+# in the following some tests need RTL and CJK language packs installed to pass.
+# he is the example for RTL, zh-tw for CJK (and zh-tw was choosen to also test xx-YY locales)
+
+# Maybe all those tests should be merged into one (especially for the "small" ones like writerperfect or
+# "tiny" ones like sfx2,svx,cui.
+# But it already takes ~1.5 h (though including copy..) for all them to run on amd64 and the overall autopkgtest
+# test timeout is 166 min (a bit over 2.5 hrs.). What are we doing on slow archs?
+# And secondly. one might miss breakage if Java or another package is not installed but is
+# required because everything needed would be in Depends: then for one test...
+# Try to optimize a bit though by not sorting alphabetically but where the  new packages are a superset so
+# we can reuse the testbed
+
+Tests: uicheck-sfx2
+Depends: @builddeps@, libreoffice-core, libreoffice-impress, python3-uno
+Restrictions: allow-stderr
+
+Tests: uicheck-svx
+Depends: @builddeps@, libreoffice-core, libreoffice-impress, python3-uno
+Restrictions: allow-stderr
+
+Tests: uicheck-cui
+Architecture: %OOO_JAVA_ARCHS%
+Depends: @builddeps@, libreoffice-core, libreoffice-impress, libreoffice-writer, python3-uno, libreoffice-script-provider-python, libreoffice-script-provider-js, libreoffice-script-provider-bsh
+Restrictions: allow-stderr
+
+Tests: uicheck-sd
+Depends: @builddeps@, libreoffice-core, libreoffice-draw, libreoffice-impress, libreoffice-calc, python3-uno
+Restrictions: allow-stderr
+
+Tests: uicheck-writerperfect
+Depends: @builddeps@, libreoffice-core, libreoffice-writer, python3-uno
+Restrictions: allow-stderr
+
+Tests: uicheck-sc
+Architecture: %OOO_JAVA_ARCHS%
+Depends: @builddeps@, libreoffice-core, libreoffice-calc, libreoffice-draw, libreoffice-impress, python3-uno, libreoffice-l10n-he, libreoffice-l10n-zh-tw, libreoffice-java-common, libreoffice-writer
+Restrictions: allow-stderr
+
+Tests: uicheck-sw
+Architecture: %OOO_JAVA_ARCHS%
+Depends: @builddeps@, libreoffice-core, libreoffice-writer, libreoffice-draw, libreoffice-calc, libreoffice-impress, libreoffice-base, python3-uno, libreoffice-l10n-he, libreoffice-l10n-zh-tw, libreoffice-librelogo, libreoffice-java-common
+Restrictions: allow-stderr, needs-internet
+
+Tests: uicheck-uitest
+Depends: @builddeps@, libreoffice-core, libreoffice-writer, libreoffice-calc, libreoffice-impress, libreoffice-math, libreoffice-base, python3-uno, libreoffice-l10n-he, libreoffice-l10n-zh-tw
+Restrictions: allow-stderr
+
+Test-Command: export DOXYGEN=`command -v doxygen`; export ENABLE_JAVA=TRUE; export JDK=sun; export JAVADOC=/usr/lib/jvm/default-java/bin/javadoc; perl odk/util/check.pl /usr/lib/libreoffice/sdk
+Features: test-name=sdk-complete
+Architecture: %OOO_JAVA_ARCHS%
+Depends: libreoffice-dev, libreoffice-dev-doc
+Restrictions: superficial
+
+Tests: odk-build-examples
+Architecture: %OOO_NOGUI_ARCHS%
+Depends: @builddeps@, libreoffice-core-nogui, libreoffice-dev, libreoffice-dev-doc, python3-uno
+Restrictions: allow-stderr, skippable
+
+Tests: odk-build-examples-java
+Architecture: %OOO_JAVA_AND_NOGUI_ARCHS%
+Depends: @builddeps@, libreoffice-core-nogui, libreoffice-dev, libreoffice-dev-doc, libreoffice-java-common, libofficebean-java
+Restrictions: allow-stderr, skippable
+
+#Tests: cppunit-subsequentcheck
+#Architecture: %OOO_CHECK_FATAL_ARCHS%
+#Depends: @builddeps@, %AUTOPKGTEST_CPPUNIT_PACKAGES%
+#Restrictions: build-needed, rw-build-tree, allow-stderr
+#
+## Those tests even work when there is no /usr/lib/libreoffice there in any way. @builddeps@ is enough.
+## That strictly violates the autopkgtest stuff thus mark them as superficial. But if a library
+## or whatever update broke it we should know
+#Tests: slowcheck
+#Architecture: %OOO_CHECK_FATAL_ARCHS%
+##Depends: @builddeps@, %AUTOPKGTEST_CPPUNIT_PACKAGES%
+#Restrictions: build-needed, rw-build-tree, allow-stderr, superficial
+#
+#Tests: unitcheck
+#Architecture: %OOO_CHECK_FATAL_ARCHS%
+#Depends: @builddeps@, %AUTOPKGTEST_CPPUNIT_PACKAGES%
+#Restrictions: build-needed, rw-build-tree, allow-stderr, superficial, skippable
+
+Test-Command: for i in /etc/apparmor.d/usr.lib.libreoffice.program.*; do /sbin/apparmor_parser --add --skip-cache --skip-kernel-load $i; done
+Features: test-name=apparmor-profiles-syntax-check
+Depends: libreoffice-common, apparmor
+Restrictions: allow-stderr, superficial
+
+## This one tests real connection to a MySQL and works by symlinking that one
+## specific library to the one in libreoffice-sdbc-mysql
+## Should probably always be last due to breaks-testbed?
+#Tests: cppunit-connectivity-mysql
+#Architecture: %OOO_CHECK_FATAL_ARCHS%
+#Depends: @builddeps@, pwgen, libreoffice-sdbc-mysql, libreoffice-core, default-mysql-server, default-mysql-client
+#Restrictions: build-needed, allow-stderr, needs-root, isolation-container, breaks-testbed, superficial
+
diff --git a/debian/tests/control.junit.in b/debian/tests/control.junit.in
new file mode 100644 (file)
index 0000000..4fd0ed9
--- /dev/null
@@ -0,0 +1,4 @@
+Tests: junit-subsequentcheck
+Architecture: %OOO_JUNIT_ARCHS%
+Depends: @builddeps@, libreoffice-core, libreoffice-writer, libreoffice-calc, libreoffice-impress, libreoffice-math, libreoffice-base, libreoffice-subsequentcheckbase, libreoffice-sdbc-hsqldb, libreoffice-sdbc-firebird
+Restrictions: allow-stderr, skippable
diff --git a/debian/tests/cppunit-connectivity-mysql b/debian/tests/cppunit-connectivity-mysql
new file mode 100755 (executable)
index 0000000..ba77d88
--- /dev/null
@@ -0,0 +1,121 @@
+#!/bin/bash
+
+# autopkgtest check: Run the connectivity "mysql" test
+#                    and prepare the db needed beforehand
+# (c) 2021 Software in the Public Interest, Inc.
+# Authors: Rene Engelhard <rene@debian.org>
+
+SRCDIR=`pwd`
+CHECK_PARALLELISM=1
+if [ -n "$AUTOPKGTEST_TMP" ]; then
+        WORKDIR=`mktemp -q -d -p $AUTOPKGTEST_TMP`
+else
+        WORKDIR=`mktemp -q -d`
+fi
+
+if [ -x /usr/bin/mariadbd-safe ]; then
+       db=mariadb
+       db_safe_command=mariadbd-safe
+       db_rundir=/run/mysqld
+else
+       db=mysql
+       db_safe_command=mysqld_safe
+       db_rundir=/var/run/mysqld
+fi
+db_user=root
+db_pw=`pwgen -1`
+db_name=test
+db_host=localhost
+db_port=3306
+db_conn_string="$db_user/$db_pw@sdbc:mysql:mysqlc:$db_host:$db_port/$db_name"
+
+trap "cleanup" ERR
+
+function cleanup() {
+       stop_db
+}
+
+function stop_db() {
+       service $db stop || true
+       # in case we are trying in a chroot without running autopkgtest for "quick" testing
+       if ischroot && test -f $db_rundir/mysqld.pid; then
+               kill `cat $db_rundir/mysqld.pid`
+       fi
+}
+
+echo
+echo "====== Enabling core dumps ======"
+# yes, we want core dumps and stack traces
+ulimit -c unlimited || true
+
+echo "====== Resetting $db_user password ======"
+$db_safe_command --skip-grant-tables &
+sleep 5 # wait for startup
+if test "$db" = "mariadb"; then
+       echo "FLUSH PRIVILEGES; SET PASSWORD FOR '$db_user'@'localhost' = PASSWORD('$db_pw');" | \
+               $db -v -u $db_user mysql
+else
+       echo "SET PASSWORD FOR '$db_user'@'localhost' = '$db_pw'; FLUSH PRIVILEGES;" | \
+               $db -v -u $db_user mysql
+fi
+
+stop_db
+
+service $db start
+
+set -e
+
+echo
+echo "====== Creating database "test" ======"
+echo "DROP DATABASE IF EXISTS $db_name; CREATE DATABASE $db_name;" | \
+        $db -v -u $db_user mysql
+
+# ensure we use the version from the package
+echo
+echo "====== Symlinking libraries... ======"
+#rene@frodo:~/LibreOffice/git/master$ objdump -p instdir/program/libmysqlclo.so | grep NEED
+#  NEEDED               libmariadb.so.3
+#  NEEDED               libuno_cppu.so.3
+#  NEEDED               libdbtoolslo.so
+#  NEEDED               libuno_sal.so.3
+#  NEEDED               libuno_salhelpergcc3.so.3
+#  NEEDED               libcomphelper.so
+#  NEEDED               libuno_cppuhelpergcc3.so.3
+#  NEEDED               libstdc++.so.6
+#  NEEDED               libm.so.6
+#  NEEDED               libgcc_s.so.1
+#  NEEDED               libpthread.so.0
+#  NEEDED               libc.so.6
+#  VERNEED              0x0000000000004b28
+#  VERNEEDNUM           0x0000000000000007
+cd $SRCDIR/instdir/program
+LIBS="libuno_cppu.so.3 libuno_sal.so.3 libuno_salhelpergcc3.so.3 libuno_cppuhelpergcc3.so.3 libmysqlclo.so"
+# FIXME: libdbtoolslo.so and libcomphelper.so are in libmerged.so with enable-mergelibs, thus do not
+# exist on 64bit...
+# Maybe until then this test shall only be run on 32bit?
+if [ "`dpkg-architecture -qDEB_HOST_ARCH_BITS`" = "32" ]; then
+       LIBS="$LIBS libdbtoolslo.so libcomphelper.so"
+       # done below
+else
+       LIBS="$LIBS libmergedlo.so"
+       ln -svf /usr/lib/libreoffice/program/libmergedlo.so libdbtoolslo.so
+       # DOESN'T WORK, CAUSES LINK ERROR
+       #ln -svf /usr/lib/libreoffice/program/libmergedlo.so libcomphelper.so
+fi
+for i in $LIBS; do \
+       ln -svf /usr/lib/libreoffice/program/$i; \
+done
+
+echo
+echo "====== Starting MySQL Test with ${CHECK_PARALLELISM} job ======"
+cd $SRCDIR/connectivity && \
+make -rj$CHECK_PARALLELISM CppunitTest_connectivity_mysql_test \
+       CONNECTIVITY_TEST_MYSQL_DRIVER="$db_conn_string" \
+       verbose=t || exit 1
+
+echo
+echo "====== Dropping database "test" ======"
+echo "DROP DATABASE test;" | \
+        $db -v -u $db_user mysql
+
+cleanup
diff --git a/debian/tests/cppunit-subsequentcheck b/debian/tests/cppunit-subsequentcheck
new file mode 100755 (executable)
index 0000000..d0cc94a
--- /dev/null
@@ -0,0 +1,183 @@
+#!/bin/bash
+# autopkgtest check: Run junit base tests against an installed version of LibreOffice
+# (c) 2021 Software in the Public Interest, Inc.
+# Authors: Rene Engelhard <rene@debian.org>
+
+set -e
+set -E
+
+SRCDIR=`pwd`
+CHECK_PARALLELISM=1
+if [ -n "$AUTOPKGTEST_TMP" ]; then
+        WORKDIR=`mktemp -q -d -p $AUTOPKGTEST_TMP`
+else
+        WORKDIR=`mktemp -q -d`
+fi
+
+function unapply() {
+        cd $SRCDIR
+        echo
+        echo "====== Unapplying the patches ======"
+        patch -p1 -R < ./debian/tests/patches/cppunit-standalone.diff
+}
+
+trap "unapply" ERR
+
+echo
+echo "====== Patching the tree to only build the unittests against an existing installation ======"
+patch -p1 < ./debian/tests/patches/cppunit-standalone.diff
+
+echo
+echo "====== Enabling core dumps ======"
+# yes, we want core dumps and stack traces
+ulimit -c unlimited || true
+
+echo
+echo "====== Starting subsequentcheck with ${CHECK_PARALLELISM} job ======"
+
+# hack, otherwise it fails
+mkdir -p $SRCDIR/instdir/program/.dir
+mkdir -p $SRCDIR/instdir/program/services/.dir
+
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/simpress/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/simpress/popupmenu/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/simpress/statusbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/simpress/toolbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/simpress/ui/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/simpress/menubar/.dir
+
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/schart/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/schart/popupmenu/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/schart/statusbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/schart/toolbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/schart/ui/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/schart/menubar/.dir
+
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/dbaccess/ui/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/dbapp/popupmenu/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/dbapp/statusbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/dbapp/toolbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/dbapp/menubar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/dbbrowser/popupmenu/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/dbbrowser/toolbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/dbbrowser/menubar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/dbquery/toolbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/dbquery/menubar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/dbrelation/toolbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/dbrelation/menubar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/dbtable/toolbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/dbtable/menubar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/dbtdata/popupmenu/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/dbtdata/toolbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/dbtdata/menubar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/sabpilot/ui/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/sbibliography/ui/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/sbibliography/menubar/.dir
+
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/scanner/ui/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/spropctrlr/ui/.dir
+
+mkdir -p $SRCDIR/instdir/share/dtd/officedocument/1_0/.dir
+
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/StartModule/menubar/.dir
+
+mkdir -p $SRCDIR/instdir/program/opencl/.dir
+
+mkdir -p $SRCDIR/instdir/share/calc/.dir 
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/scalc/popupmenu/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/scalc/statusbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/scalc/toolbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/scalc/ui/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/scalc/menubar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/simpress/.dir
+
+mkdir -p $SRCDIR/instdir/share/config/webcast/.dir
+mkdir -p $SRCDIR/instdir/share/config/wizard/web/buttons/.dir
+
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/sdraw/popupmenu/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/sdraw/statusbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/sdraw/toolbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/sdraw/ui/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/sdraw/menubar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/simpress/popupmenu/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/simpress/statusbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/simpress/toolbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/simpress/ui/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/simpress/menubar/.dir
+
+mkdir -p $SRCDIR/instdir/share/classification/.dir
+
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/sfx/ui/.dir
+
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/smath/popupmenu/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/smath/statusbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/smath/toolbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/smath/ui/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/smath/menubar/.dir
+
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/svt/ui/.dir 
+
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/svx/ui/.dir 
+
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/sglobal/popupmenu/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/sglobal/statusbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/sglobal/toolbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/sglobal/menubar/.dir
+
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/sweb/popupmenu/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/sweb/statusbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/sweb/toolbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/sweb/menubar/.dir
+
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/swform/popupmenu/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/swform/statusbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/swform/toolbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/swform/menubar/.dir
+
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/swreport/popupmenu/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/swreport/statusbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/swreport/toolbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/swreport/menubar/.dir
+
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/swriter/popupmenu/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/swriter/statusbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/swriter/toolbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/swriter/ui/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/swriter/menubar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/swxform/popupmenu/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/swxform/statusbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/swxform/toolbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/swxform/menubar/.dir
+
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/xmlsec/ui/.dir
+
+mkdir -p $SRCDIR/instdir/share/registry/.dir
+mkdir -p $SRCDIR/instdir/share/registry/res/.dir
+
+mkdir -p $SRCDIR/instdir/share/emojiconfig/.dir
+
+cd $SRCDIR/instdir/program/resource && \
+       for i in `ls -1 | grep -v common`; do touch $i/LC_MESSAGES/.dir;  done
+
+cd $SRCDIR
+
+# all modules containing subsequent(test|check).
+# Filter out:
+# - odk: already tested by odk-build-examples and odk/util/check.pl
+# - the junit tests - which are ran in an own test - by setting OOO_JUNIT_JAR to nothing (as --without-junit would do)
+# - solenv: no need to test gbuild2json...
+# - smoketest: done in the smoketest test
+export PARALLELISM=$CHECK_PARALLELISM
+for i in `grep subsequent */*.mk | cut -d"/" -f1 | grep -E -v '(odk|smoketest|solenv)' | sort | uniq | xargs`; do
+       echo
+       echo "====== Running subsequentcheck in module $i ======"; \
+       cd $i && \
+       make -rk subsequentcheck \
+               OOO_JUNIT_JAR= \
+               INSTDIR=/usr/lib/libreoffice \
+               verbose=t; \
+       cd ..;\
+done
+
+unapply
+
diff --git a/debian/tests/junit-subsequentcheck b/debian/tests/junit-subsequentcheck
new file mode 100755 (executable)
index 0000000..2829f3c
--- /dev/null
@@ -0,0 +1,64 @@
+#!/bin/bash
+# autopkgtest check: Run junit base tests against an installed version of LibreOffice
+# (C) 2013 Canonical Ltd.
+# (c) 2015-2017 Software in the Public Interest, Inc.
+# Authors: Bjoern Michaelsen <bjoern.michaelsen@canonical.com>
+#          Rene Engelhard <rene@debian.org>
+
+set -e
+set -E
+
+# skip on Zero using architectures
+if java -version 2>&1 | grep -q Zero; then
+       echo "Zero-using architecture. Skipping."
+       exit 77
+fi
+
+SRCDIR=`pwd`
+CHECK_PARALLELISM=1
+if [ -n "$AUTOPKGTEST_TMP" ]; then
+        WORKDIR=`mktemp -q -d -p $AUTOPKGTEST_TMP`
+else
+        WORKDIR=`mktemp -q -d`
+fi
+
+function unapply() {
+       echo
+       echo "====== Unapplying the patch ======"
+       patch -p1 -R < ./debian/tests/patches/junit-subsequentcheck-standalone.diff
+}
+
+trap "unapply" ERR
+
+echo
+echo "====== Patching the tree to only build Java-based unittests against an existing installation ======"
+patch -p1 < ./debian/tests/patches/junit-subsequentcheck-standalone.diff
+
+if [ ! -f config_host.mk ]; then
+       echo
+       echo "====== Generating configuration ======="
+       rm -f config_host.mk
+       ./debian/rules config_host.mk enable_report_builder=no
+       sed -i 's/export OOO_JUNIT_JAR=.*/export OOO_JUNIT_JAR=\/usr\/share\/java\/junit4.jar/' config_host.mk
+fi
+
+echo
+echo "====== Enabling core dumps ======"
+# yes, we want core dumps and stack traces
+ulimit -c unlimited || true
+
+OOO_TEST_SOFFICE="${1:-path:/usr/lib/libreoffice/program/soffice}"
+
+echo
+echo "====== Starting subsequentcheck with ${CHECK_PARALLELISM} job against ${OOO_TEST_SOFFICE} ======"
+
+eval `grep PLATFORMID config_host.mk`
+
+export PARALLELISM=$CHECK_PARALLELISM
+make -rk \
+    OOO_TEST_SOFFICE=${OOO_TEST_SOFFICE} \
+    bridges_SELECTED_BRIDGE=gcc3_$PLATFORMID \
+    subsequentcheck verbose=t
+
+unapply
+
diff --git a/debian/tests/odk-build-examples b/debian/tests/odk-build-examples
new file mode 100755 (executable)
index 0000000..6a8e522
--- /dev/null
@@ -0,0 +1,50 @@
+#!/bin/bash
+# autopkgtest check: Run the odk/build-examples check against an installed
+# version of the LibreOffice SDK
+# (c) 2017 Software in the Public Interest, Inc.
+# Authors: Rene Engelhard <rene@debian.org>
+
+set -e
+set -E
+
+SRCDIR=`pwd`
+CHECK_PARALLELISM=1
+
+function unapply() {
+       cd $SRCDIR
+       echo
+       echo "====== Unapplying the patch ======"
+       patch -p1 -R < ./debian/tests/patches/odk-build-examples-standalone.diff
+}
+
+trap "unapply" ERR
+
+# skip if building as root:
+# unopkg errors out with "ERROR: Cannot run unopkg as root without --shared or --bundled option."
+# if ran as root
+if [ `id -u` = "0" ]; then
+        exit 77
+fi
+
+echo
+echo "====== Patching the tree to build the odk build-examples test against an existing installation ======"
+patch -p1 < ./debian/tests/patches/odk-build-examples-standalone.diff
+
+if [ ! -f config_host.mk ]; then
+       echo
+       echo "====== Generating configuration ======="
+       rm -f config_host.mk
+       ./debian/rules config_host.mk
+fi
+
+echo
+echo "====== Starting build with ${CHECK_PARALLELISM} job against /usr/lib/libreoffice/sdk ======"
+
+cd $SRCDIR/odk
+
+export PARALLELISM=$CHECK_PARALLELISM
+make -rk \
+       CustomTarget_odk/build-examples verbose=t
+
+unapply
+
diff --git a/debian/tests/odk-build-examples-java b/debian/tests/odk-build-examples-java
new file mode 100755 (executable)
index 0000000..95d00d5
--- /dev/null
@@ -0,0 +1,56 @@
+#!/bin/bash
+# autopkgtest check: Run the odk/build-examples check against an installed
+# version of the LibreOffice SDK
+# (c) 2017 Software in the Public Interest, Inc.
+# Authors: Rene Engelhard <rene@debian.org>
+
+set -e
+set -E
+
+# skip on Zero using architectures
+if java -version 2>&1 | grep -q Zero; then
+        echo "Zero-using architecture. Skipping."
+        exit 77
+fi
+
+SRCDIR=`pwd`
+CHECK_PARALLELISM=1
+
+function unapply() {
+       cd $SRCDIR
+       echo
+       echo "====== Unapplying the patch ======"
+       patch -p1 -R < ./debian/tests/patches/odk-build-examples-standalone.diff
+}
+
+trap "unapply" ERR
+
+# skip if building as root:
+# unopkg errors out with "ERROR: Cannot run unopkg as root without --shared or --bundled option."
+# if ran as root
+if [ `id -u` = "0" ]; then
+        exit 77
+fi
+
+echo
+echo "====== Patching the tree to build the odk build-examples test against an existing installation ======"
+patch -p1 < ./debian/tests/patches/odk-build-examples-standalone.diff
+
+if [ ! -f config_host.mk ]; then
+       echo
+       echo "====== Generating configuration ======="
+       rm -f config_host.mk
+       ./debian/rules config_host.mk
+fi
+
+echo
+echo "====== Starting build with ${CHECK_PARALLELISM} job against /usr/lib/libreoffice/sdk ======"
+
+cd $SRCDIR/odk
+
+export PARALLELISM=$CHECK_PARALLELISM
+make -rk \
+       CustomTarget_odk/build-examples_java verbose=t
+
+unapply
+
diff --git a/debian/tests/patches/cppunit-standalone.diff b/debian/tests/patches/cppunit-standalone.diff
new file mode 100644 (file)
index 0000000..267b104
--- /dev/null
@@ -0,0 +1,15 @@
+diff --git a/solenv/gbuild/Module.mk b/solenv/gbuild/Module.mk
+index 0d87ccc55379..41c6564d3d7e 100644
+--- a/solenv/gbuild/Module.mk
++++ b/solenv/gbuild/Module.mk
+@@ -338,10 +338,6 @@ define gb_Module_add_subsequentcheck_target
+ $(call gb_Module__read_targetfile,$(1),$(2),subsequentcheck target)
+ $(call gb_Module_get_subsequentcheck_target,$(1)) : $$(gb_Module_CURRENTTARGET)
+-$$(gb_Module_CURRENTTARGET) :| \
+-      $(call gb_Postprocess_get_target,AllModulesButInstsetNative) \
+-    $(call gb_Package_get_target,instsetoo_native_setup) \
+-    $(call gb_Package_get_target,instsetoo_native_setup_ure)
+ $(call gb_Module_get_clean_target,$(1)) : $$(gb_Module_CURRENTCLEANTARGET)
+ endef
diff --git a/debian/tests/patches/disable-db-tests.diff b/debian/tests/patches/disable-db-tests.diff
new file mode 100644 (file)
index 0000000..7d148b9
--- /dev/null
@@ -0,0 +1,130 @@
+diff -urN smoketest-old/data/Test_DB.xml smoketest/data/Test_DB.xml
+--- a/smoketest-old/data/Basic/Standard/Test_DB.xml    2011-12-20 16:05:52.000000000 +0000
++++ b/smoketest/data/Basic/Standard/Test_DB.xml        2011-12-29 23:09:08.000000000 +0000
+@@ -30,9 +30,6 @@
+ const cMessageDatabaseService = &quot;Database Service&quot;
+ const cMessageDatabaseOpen = &quot;Open Database&quot;
+-const cMessageDatabaseInsert = &quot;Insert record into Database&quot;
+-const cMessageDatabaseDelete = &quot;Delete record from Database&quot;
+-const cMessageDatabaseSeek = &quot;Read other record from Database&quot;
+ const cMessageDatabaseClose = &quot;Close Database&quot;
+ Sub TestDB
+@@ -81,48 +78,6 @@
+         LogTestResult( &quot;Database &quot;+ cMessageDatabaseService, TRUE )
+     End If
+-    gCurrentTestCase = cDBInsert
+-    sCurrentMessage = cMessageDatabaseInsert
+-
+-    oRowSet.ActiveConnection = oDBConnection
+-
+-    oRowSet.CommandType = com.sun.star.sdb.CommandType.COMMAND
+-    oRowSet.Command = &quot;SELECT * FROM &quot; + sTable
+-    oRowSet.execute()
+-
+-    oRowSet.moveToInsertRow
+-    oRowSet.updateString(5, sTestString)
+-
+-    oRowSet.insertRow()
+-    nRowCount=oRowSet.RowCount
+-
+-    oRowSet.moveToCurrentRow()
+-
+-    bResult = (oRowSet.getString(5) = sTestString)
+-    LogTestResult( &quot;Database &quot;+ cMessageDatabaseInsert, bResult )
+-
+-    &apos;delete only if insert passed
+-
+-    if (bResult) Then
+-        gCurrentTestCase = cDBDelete
+-        sCurrentMessage = cMessageDatabaseDelete
+-        oRowSet.deleteRow()
+-        bResult = (nRowCount - oRowSet.RowCount = 0)
+-        if ( bResult ) Then
+-            oRowSet.next()
+-            bResult = (nRowCount - oRowSet.RowCount = 1)
+-        End If
+-        LogTestResult( &quot;Database &quot;+ cMessageDatabaseDelete, bResult )
+-    End If
+-
+-    &apos; read other record
+-
+-    gCurrentTestCase = cDBSeek
+-    sCurrentMessage = cMessageDatabaseSeek
+-    oRowSet.first()
+-    bResult = not (oRowSet.getString(5) = sTestString)
+-    LogTestResult( &quot;Database &quot;+ cMessageDatabaseSeek, bResult )
+-
+     gCurrentTestCase = cDBClose
+     sCurrentMessage = cMessageDatabaseClose
+     oDBConnection.Dispose()
+diff --git a/dbaccess/Module_dbaccess.mk b/dbaccess/Module_dbaccess.mk
+index 204854748ec1..992ae1ed17c2 100644
+--- a/dbaccess/Module_dbaccess.mk
++++ b/dbaccess/Module_dbaccess.mk
+@@ -32,63 +32,11 @@ $(eval $(call gb_Module_add_l10n_targets,dbaccess,\
+       AllLangMoTarget_dba \
+ ))
+-ifneq ($(OS),iOS)
+-ifeq ($(ENABLE_FIREBIRD_SDBC),TRUE)
+-# remove if we have a be file for this
+-ifeq ($(ENDIANNESS),little)
+-$(eval $(call gb_Module_add_check_targets,dbaccess,\
+-    CppunitTest_dbaccess_firebird_regression_test \
+-))
+-endif
+-$(eval $(call gb_Module_add_check_targets,dbaccess,\
+-    CppunitTest_dbaccess_firebird_test \
+-))
+-endif
+-
+-$(eval $(call gb_Module_add_check_targets,dbaccess,\
+-      CppunitTest_dbaccess_dialog_save \
+-      CppunitTest_dbaccess_empty_stdlib_save \
+-      CppunitTest_dbaccess_nolib_save \
+-      CppunitTest_dbaccess_macros_test \
+-      CppunitTest_dbaccess_hsqlschema_import \
+-))
+-
+-ifeq ($(ENABLE_JAVA),TRUE)
+-$(eval $(call gb_Module_add_check_targets,dbaccess,\
+-    CppunitTest_dbaccess_hsqldb_test \
+-    CppunitTest_dbaccess_RowSetClones \
+-))
+-endif
+-
+-# This runs a suite of performance tests on embedded firebird and HSQLDB.
+-# Instructions on running the test can be found in qa/unit/embeddedb_performancetest
+-ifeq ($(ENABLE_FIREBIRD_SDBC),TRUE)
+-ifeq ($(ENABLE_JAVA),TRUE)
+-$(eval $(call gb_Module_add_check_targets,dbaccess,\
+-    CppunitTest_dbaccess_embeddeddb_performancetest \
+-))
+-endif
+-endif
+-
+-$(eval $(call gb_Module_add_subsequentcheck_targets,dbaccess,\
+-      JunitTest_dbaccess_complex \
+-    JunitTest_dbaccess_unoapi \
+-))
+-
+-ifneq ($(DISABLE_PYTHON),TRUE)
+-ifneq ($(ENABLE_JAVA),)
+-$(eval $(call gb_Module_add_subsequentcheck_targets,dbaccess,\
+-      PythonTest_dbaccess_python \
+-))
+-endif
+-endif
+-
+ # screenshots
+ $(eval $(call gb_Module_add_screenshot_targets,dbaccess,\
+     CppunitTest_dbaccess_dialogs_test \
+ ))
+-endif
+ endif
+ # vim: set noet sw=4 ts=4:
diff --git a/debian/tests/patches/junit-subsequentcheck-standalone.diff b/debian/tests/patches/junit-subsequentcheck-standalone.diff
new file mode 100644 (file)
index 0000000..ec38c96
--- /dev/null
@@ -0,0 +1,139 @@
+From fef2f669c1e861c685d22c18319514cec9f9f8c3 Mon Sep 17 00:00:00 2001
+From: Bjoern Michaelsen <bjoern.michaelsen@canonical.com>
+Date: Wed, 28 Jan 2015 12:11:16 +0100
+Subject: [PATCH] run subsequentcheck standalone against installed version as
+ integration test
+Last-Update: 2017-05-17
+
+Forwarded: partially, where there is generic use for it
+---
+ jurt/Module_jurt.mk                        |  2 +-
+ postprocess/Module_postprocess.mk          |  4 ++--
+ solenv/gbuild/JavaClassSet.mk              |  2 +-
+ solenv/gbuild/JunitTest.mk                 |  2 +-
+ solenv/gbuild/Module.mk                    |  3 +++
+ solenv/gbuild/extensions/post_SkipBuild.mk | 18 ++++++++++++++++++
+ solenv/gbuild/platform/unxgcc.mk           |  1 +
+ 7 files changed, 27 insertions(+), 5 deletions(-)
+ create mode 100644 solenv/gbuild/extensions/post_SkipBuild.mk
+
+diff --git a/ridljar/Module_ridljar.mk b/ridljar/Module_ridljar.mk
+index daa0f1835be7..c4186e900a87 100644
+--- a/ridljar/Module_ridljar.mk
++++ b/ridljar/Module_ridljar.mk
+@@ -16,7 +16,7 @@ $(eval $(call gb_Module_add_targets,ridljar,\
+     Jar_unoloader \
+ ))
+-$(eval $(call gb_Module_add_check_targets,ridljar,\
++#$(eval $(call gb_Module_add_check_targets,ridljar,\
+     CustomTarget_test_urp \
+     InternalUnoApi_test_urp \
+     JunitTest_bridgefactory \
+diff --git a/postprocess/Module_postprocess.mk b/postprocess/Module_postprocess.mk
+index 0fbede6a9f2b..4c3abc52747c 100644
+--- a/postprocess/Module_postprocess.mk
++++ b/postprocess/Module_postprocess.mk
+@@ -12,19 +12,19 @@ $(eval $(call gb_Module_Module,postprocess))
+ # UGLY: postprocess_XCDS variable from CustomTarget_registry
+ # is reused in Package_registry!
+-$(eval $(call gb_Module_add_targets,postprocess,\
++#$(eval $(call gb_Module_add_targets,postprocess,\
+     $(if $(ENABLE_CUSTOMTARGET_COMPONENTS),CustomTarget_components) \
+       CustomTarget_registry \
+       Rdb_services \
+-))
+-ifeq ($(gb_Side),host)
+-$(eval $(call gb_Module_add_targets,postprocess,\
++#))
++#ifeq ($(gb_Side),host)
++#$(eval $(call gb_Module_add_targets,postprocess,\
+       CustomTarget_images \
+       Package_images \
+-))
+-endif
++#))
++#endif
+-$(eval $(call gb_Module_add_l10n_targets,postprocess,\
++#$(eval $(call gb_Module_add_l10n_targets,postprocess,\
+       Package_registry \
+ ))
+diff --git a/solenv/gbuild/JavaClassSet.mk b/solenv/gbuild/JavaClassSet.mk
+index cff4299bf06e..76765351abdd 100644
+--- a/solenv/gbuild/JavaClassSet.mk
++++ b/solenv/gbuild/JavaClassSet.mk
+@@ -46,7 +46,7 @@ $(call gb_Helper_abbreviate_dirs,\
+                       $(filter-out $(JARDEPS) $(T_JAVA9FILES),$(4))) && \
+               $(if $(3),$(call gb_JavaClassSet_JAVACCOMMAND,$(JAVA_TARGET_VER)) \
+                       $(gb_JavaClassSet_JAVACDEBUG) \
+-                      -classpath "$(T_CP)$(gb_CLASSPATHSEP)$(call gb_JavaClassSet_get_classdir,$(2))" \
++                      -classpath "$(T_CP)$(gb_CLASSPATHSEP)$(call gb_JavaClassSet_get_classdir,$(2))$(gb_CLASSPATHSEP)$(shell echo $(wildcard /usr/lib/libreoffice/program/classes/*.jar) | sed -e s/\ /:/g)" \
+                       -d $(call gb_JavaClassSet_get_classdir,$(2)) \
+                       @$$RESPONSEFILE &&) \
+               rm -f $$RESPONSEFILE &&) \
+@@ -55,7 +55,7 @@ $(call gb_Helper_abbreviate_dirs,\
+                               $(T_JAVA9FILES)) && \
+                       $(if $(3),$(call gb_JavaClassSet_JAVACCOMMAND,9) \
+                               $(gb_JavaClassSet_JAVACDEBUG) \
+-                              -classpath "$(T_CP)$(gb_CLASSPATHSEP)$(call gb_JavaClassSet_get_classdir,$(2))" \
++                              -classpath "$(T_CP)$(gb_CLASSPATHSEP)$(call gb_JavaClassSet_get_classdir,$(2))$(gb_CLASSPATHSEP)$(shell echo $(wildcard /usr/lib/libreoffice/program/classes/*.jar) | sed -e s/\ /:/g)" \
+                               --module-path "$(T_CP)$(gb_CLASSPATHSEP)$(call gb_JavaClassSet_get_classdir,$(2))" \
+                               $(if $(T_MODULENAME),--patch-module $(T_MODULENAME)="$(subst $(WHITESPACE),$(gb_CLASSPATHSEP),$(strip $(dir $(PACKAGEDIRS))))") \
+                               -d $(call gb_JavaClassSet_get_classdir,$(2)) \
+--- a/solenv/gbuild/JunitTest.mk
++++ b/solenv/gbuild/JunitTest.mk
+@@ -55,7 +55,7 @@ $(call gb_JunitTest_get_target,%) :
+ endif
+ define gb_JunitTest_JunitTest
+-$(call gb_JunitTest_get_target,$(1)) : T_CP := $(call gb_JavaClassSet_get_classdir,$(call gb_JunitTest_get_classsetname,$(1)))$$(gb_CLASSPATHSEP)$(OOO_JUNIT_JAR)$(if $(HAMCREST_JAR),$$(gb_CLASSPATHSEP)$(HAMCREST_JAR))$$(gb_CLASSPATHSEP)$(INSTROOT)/$(LIBO_URE_LIB_FOLDER)
++$(call gb_JunitTest_get_target,$(1)) : T_CP := $(call gb_JavaClassSet_get_classdir,$(call gb_JunitTest_get_classsetname,$(1)))$$(gb_CLASSPATHSEP)$(OOO_JUNIT_JAR)$(if $(HAMCREST_JAR),$$(gb_CLASSPATHSEP)$(HAMCREST_JAR))$$(gb_CLASSPATHSEP)$(INSTROOT)/$(LIBO_URE_LIB_FOLDER)$(gb_CLASSPATHSEP)$(shell echo $(wildcard /usr/lib/libreoffice/program/classes/*.jar) | sed -e s/\ /:/g)
+ $(call gb_JunitTest_get_target,$(1)) : CLASSES :=
+ $(eval $(call gb_JunitTest_JunitTest_platform,$(1)))
+--- a/solenv/gbuild/Module.mk
++++ b/solenv/gbuild/Module.mk
+@@ -336,15 +336,16 @@ endef
+ # has order dependency on AllModulesButInstsetNative to be able to run
+ # subsequentcheck in the same make process on "make check"
+ define gb_Module_add_subsequentcheck_target
++ifeq (,$(filter-out JavaClassSet% JunitTest%,$(2)))
+ $(call gb_Module__read_targetfile,$(1),$(2),subsequentcheck target)
+ $(call gb_Module_get_subsequentcheck_target,$(1)) : $$(gb_Module_CURRENTTARGET)
+ $$(gb_Module_CURRENTTARGET) :| \
+-      $(call gb_Postprocess_get_target,AllModulesButInstsetNative) \
+-    $(call gb_Package_get_target,instsetoo_native_setup) \
+-    $(call gb_Package_get_target,instsetoo_native_setup_ure)
++      $(call gb_Postprocess_get_target,AllModulesButInstsetNative)
+ $(call gb_Module_get_clean_target,$(1)) : $$(gb_Module_CURRENTCLEANTARGET)
++endif
++
+ endef
+ define gb_Module_add_stagingcheck_target
+--- /dev/null
++++ b/solenv/gbuild/extensions/post_SkipBuild.mk
+@@ -0,0 +1,18 @@
++# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
++#
++# This file is part of the LibreOffice project.
++#
++# This Source Code Form is subject to the terms of the Mozilla Public
++# License, v. 2.0. If a copy of the MPL was not distributed with this
++# file, You can obtain one at http://mozilla.org/MPL/2.0/.
++#
++
++# we dont want to bother with these for integration tests
++gb_Module_add_target =
++gb_Module_add_l10n_target =
++gb_Module_add_check_target =
++gb_Module_add_slowcheck_target =
++gb_JavaClassSet_use_jar =
++gb_JunitTest_use_jar =
++
++# vim: set noet sw=4 ts=4:
diff --git a/debian/tests/patches/odk-build-examples-standalone.diff b/debian/tests/patches/odk-build-examples-standalone.diff
new file mode 100644 (file)
index 0000000..77089ea
--- /dev/null
@@ -0,0 +1,50 @@
+diff --git a/odk/build-examples_common.mk b/odk/build-examples_common.mk
+index 931d6eea856e..2749b6930079 100644
+--- a/odk/build-examples_common.mk
++++ b/odk/build-examples_common.mk
+@@ -45,7 +45,7 @@ else
+       && export \
+           UserInstallation=$(call gb_Helper_make_url,$(call gb_CustomTarget_get_workdir,$(1))/user) \
+       $(foreach my_dir,$(2), \
+-          && (cd $(INSTDIR)/$(SDKDIRNAME)/examples/$(my_dir) \
++          && (cd /usr/lib/libreoffice/sdk/examples/$(my_dir) \
+               && printf 'yes\n' | LANGUAGE= LC_ALL=C make -j1 \
+                       CC="$(CXX) $(gb_CXX03FLAGS)" LINK="$(CXX)" LIB="$(CXX)" \
+                   $(if $(MACOSX_SHELL_HACK), SHELL="$$$$ODK_BUILD_SHELL", ))) \
+@@ -43,17 +43,17 @@ endif
+ endif
+ $(call gb_CustomTarget_get_workdir,$(1))/setsdkenv: \
+-      $(SRCDIR)/odk/config/setsdkenv_unix.sh.in \
++      /usr/lib/libreoffice/sdk//setsdkenv_unix.sh.in \
+       $(BUILDDIR)/config_$(gb_Side).mk | \
+       $(call gb_CustomTarget_get_workdir,$(1))/.dir
+       $$(call gb_Output_announce,$(subst $(WORKDIR)/,,$(1)),$(true),SED,1)
+       sed -e 's!@OO_SDK_NAME@!sdk!' \
+-      -e 's!@OO_SDK_HOME@!$(INSTDIR)/$(SDKDIRNAME)!' \
+-      -e 's!@OFFICE_HOME@!$(INSTROOTBASE)!' -e 's!@OO_SDK_MAKE_HOME@!!' \
++      -e 's!@OO_SDK_HOME@!/usr/lib/libreoffice/sdk!' \
++      -e 's!@OFFICE_HOME@!/usr/lib/libreoffice!' -e 's!@OO_SDK_MAKE_HOME@!!' \
+       -e 's!@OO_SDK_ZIP_HOME@!!' -e 's!@OO_SDK_CAT_HOME@!!' \
+       -e 's!@OO_SDK_SED_HOME@!!' -e 's!@OO_SDK_CPP_HOME@!!' \
+       -e 's!@OO_SDK_JAVA_HOME@!$(JAVA_HOME)!' \
+-      -e 's!@OO_SDK_OUTPUT_DIR@!$(call gb_CustomTarget_get_workdir,$(1))/out!' \
++      -e 's!@OO_SDK_OUTPUT_DIR@!$(shell mktemp -q -d)/out!' \
+       -e 's!@SDK_AUTO_DEPLOYMENT@!YES!' $$< > $$@
+ .PHONY: $(call gb_CustomTarget_get_target,$(1))
+diff --git a/solenv/gbuild/Module.mk b/solenv/gbuild/Module.mk
+index 4073dcfd9bf5..68c17ce0d1ed 100644
+--- a/solenv/gbuild/Module.mk
++++ b/solenv/gbuild/Module.mk
+@@ -339,10 +339,6 @@ define gb_Module_add_subsequentcheck_target
+ $(call gb_Module__read_targetfile,$(1),$(2),subsequentcheck target)
+ $(call gb_Module_get_subsequentcheck_target,$(1)) : $$(gb_Module_CURRENTTARGET)
+-$$(gb_Module_CURRENTTARGET) :| \
+-      $(call gb_Postprocess_get_target,AllModulesButInstsetNative) \
+-    $(call gb_Package_get_target,instsetoo_native_setup) \
+-    $(call gb_Package_get_target,instsetoo_native_setup_ure)
+ $(call gb_Module_get_clean_target,$(1)) : $$(gb_Module_CURRENTCLEANTARGET)
+ endef
diff --git a/debian/tests/patches/smoketest-disable-extension-tests.diff b/debian/tests/patches/smoketest-disable-extension-tests.diff
new file mode 100644 (file)
index 0000000..48e8fdd
--- /dev/null
@@ -0,0 +1,117 @@
+--- smoketest/data/Basic/Standard/Test_Ext.xml 2012-02-01 13:56:49.000000000 +0100
++++ smoketest/data/Basic/Standard/Test_Ext.xml 2012-02-20 20:15:23.000000000 +0100
+@@ -28,10 +28,6 @@
+ <!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+ <script:module xmlns:script="http://openoffice.org/2000/script" script:name="Test_Ext" script:language="StarBasic">REM  *****  BASIC  *****
+-const cMessageExtensionService = &quot;Extension Service&quot;
+-const cMessageExtensionInstall = &quot;Install Extension&quot;
+-const cMessageExtensionUninstall = &quot;Uninstall Extension&quot;
+-
+ Sub TestExtensions
+     Dim oTestExtension as Object, obj_null as Object
+     Dim sCurrentMessage as String
+@@ -37,9 +37,6 @@
+     Dim sCurrentMessage as String
+     Dim bResult as Boolean
+     Dim sImplementationNameString as String
+-    sImplementationNameString = cUnoSmoketestTestExtension + &quot;$_TestExtension&quot;
+-
+-    On Local Error GoTo EXTERROR
+
+     gCurrentTestCase = cLogfileFailed
+     LocalTestLog% = OpenLogDat (GetLogFileName(gCurrentDocTest))
+@@ -35,74 +35,5 @@
+     gCurrentTestCase = cLogfileFailed
+     LocalTestLog% = OpenLogDat (GetLogFileName(gCurrentDocTest))
+-    sCurrentMessage = &quot;SmokeTestCommandEnvironment (implemented in Java)&quot;
+-    gCurrentTestCase = cEXTService
+-
+-    &apos;Create an implementation of com.sun.star.ucb.XCommandEnvironment which is needed for
+-    &apos;adding the extension. The implementation is in
+-    &apos;smoketest/org/libreoffice/smoketest/SmoketestCommandEnvironment.java and the code is in smoketest.jar
+-    cmdEnv = createUnoService(cUnoSmoketestCommandEnvironment)
+-
+-    &apos;Create the component context and then get the singleton ExtensionManager
+-    &apos;A singleton cannot be created with createUnoService
+-    sCurrentMessage = cMessageExtensionService
+-    ctx = getDefaultContext
+-    ext_mgr = ctx.getValueByName(&quot;/singletons/&quot; + cExtensionManager)
+-
+-    LogTestResult( &quot;Extension &quot;+ cMessageExtensionService, not IsNull (ext_mgr) )
+-    if (IsNull(ext_mgr)) then
+-        Close #LocalTestLog%
+-        LocalTestLog = 0
+-        Exit Sub
+-    End If
+-
+-    sCurrentMessage = cMessageExtensionInstall
+-    gCurrentTestCase = cEXTInstall
+-
+-    &apos;Add the extension. We must provide a file URL here.
+-    &apos;By passing &quot;user&quot; we determine that the actions we perform on
+-    &apos;XExtensionManager only affect the user installation. To modify the share installation one would pass &quot;share&quot;.
+-
+-    Dim props() as Object
+-    ext_mgr.addExtension(sExtensionURL, props, &quot;user&quot;, obj_null, cmdEnv)
+-
+-    &apos;Check if the extension has been added by creating a service which is contained in the extension.
+-    oTestExtension = createUnoService(cUnoSmoketestTestExtension)
+-    bResult = (oTestExtension.getImplementationName = sImplementationNameString)
+-    LogTestResult( &quot;Extension &quot;+ cMessageExtensionInstall, bResult )
+-    if (not bResult) then
+-        Close #LocalTestLog%
+-        LocalTestLog = 0
+-        Exit Sub
+-    End If
+-
+-    sCurrentMessage = cMessageExtensionUninstall
+-    gCurrentTestCase = cEXTUninstall
+-
+-    &apos;Remove the package
+-    ext_mgr.removeExtension(&quot;org.libreoffice.smoketest.TestExtension&quot;, cExtensionFileName, &quot;user&quot;,obj_null, cmdEnv)
+-
+-    &apos;Try to create the service which is contained in the now removed extension.
+-    oTestExtension = createUnoService(cUnoSmoketestTestExtension)
+-
+-    &apos;The service must not be available anymore. Therefore isNull must return true.
+-    LogTestResult( &quot;Extension &quot;+ cMessageExtensionUninstall, IsNull (oTestExtension) )
+-
+-    Print #LocalTestLog, &quot;---&quot;
+-    Close #LocalTestLog%
+-    LocalTestLog = 0
+-    Exit Sub &apos; Without error
+-
+-    EXTERROR:
+-    If ( gCurrentTestCase = cLogfileFailed ) then
+-        LogTestResult( &quot; &quot;, False )
+-        Exit Sub
+-    else
+-        LogTestResult( &quot;Extension &quot;+ sCurrentMessage, False )
+-        Close #LocalTestLog%
+-        LocalTestLog = 0
+-    End If
+-    Exit Sub &apos; With error
+-
+ End Sub
+ </script:module>
+
+run the smoketest also when extensions are disabled; we patch that out of the smoketest anyway
+
+--- smoketest/Module_smoketest.mk-old  2023-07-19 06:46:58.379072423 +0200
++++ smoketest/Module_smoketest.mk      2023-07-19 06:47:09.547147319 +0200
+@@ -34,13 +34,11 @@
+ ifeq ($(ENABLE_CPPUNIT),TRUE)
+ ifneq (MACOSX/TRUE,$(OS)/$(ENABLE_MACOSX_SANDBOX))
+-ifneq ($(filter EXTENSIONS,$(BUILD_TYPE)),)
+ $(eval $(call gb_Module_add_subsequentcheck_targets,smoketest,\
+       CppunitTest_smoketest \
+ ))
+ endif
+ endif
+-endif
+ endif
diff --git a/debian/tests/patches/smoketest-standalone.diff b/debian/tests/patches/smoketest-standalone.diff
new file mode 100644 (file)
index 0000000..e236b94
--- /dev/null
@@ -0,0 +1,17 @@
+diff --git a/smoketest/CppunitTest_smoketest.mk b/smoketest/CppunitTest_smoketest.mk
+index f7d64cae562f..9d47776ffb4b 100644
+--- a/smoketest/CppunitTest_smoketest.mk
++++ b/smoketest/CppunitTest_smoketest.mk
+@@ -34,10 +34,10 @@ userinstallation=$(WORKDIR)/CustomTarget/smoketest
+ endif
+ $(eval $(call gb_CppunitTest_add_arguments,smoketest,\
+-      -env:arg-soffice=$(gb_JunitTest_SOFFICEARG) \
++      -env:arg-soffice=$(OOO_TEST_SOFFICE) \
+       -env:arg-user=$(userinstallation) \
+       -env:arg-env=$(gb_Helper_LIBRARY_PATH_VAR)"$$$${$(gb_Helper_LIBRARY_PATH_VAR)+=$$$$$(gb_Helper_LIBRARY_PATH_VAR)}" \
+-      -env:arg-testarg.smoketest.doc=$(WORKDIR)/Zip/smoketestdoc.sxw \
++      -env:arg-testarg.smoketest.doc=/usr/share/libreoffice/smoketestdoc.sxw \
+ ))
+ $(call gb_CppunitTest_get_target,smoketest): \
diff --git a/debian/tests/patches/testtools-standalone.diff b/debian/tests/patches/testtools-standalone.diff
new file mode 100644 (file)
index 0000000..a1f714a
--- /dev/null
@@ -0,0 +1,214 @@
+diff --git a/testtools/CustomTarget_bridgetest.mk b/testtools/CustomTarget_bridgetest.mk
+index 9e934f03498a..7da8883c8e7c 100644
+--- a/testtools/CustomTarget_bridgetest.mk
++++ b/testtools/CustomTarget_bridgetest.mk
+@@ -28,7 +28,7 @@ $(testtools_BRIDGEDIR)/bridgetest_server$(testtools_BATCHSUFFIX) :| $(testtools_
+       $(call gb_Trace_StartRange,$(subst $(WORKDIR)/,,$@),ECH)
+       $(call gb_Helper_abbreviate_dirs,\
+               echo \
+-              "$(call gb_Executable_get_target_for_build,uno)" \
++              "/usr/lib/libreoffice/program/uno" \
+               "-s com.sun.star.test.bridge.CppTestObject" \
+               "-u 'uno:socket$(COMMA)host=127.0.0.1$(COMMA)port=2002;urp;test'" \
+               "--singleaccept" \
+@@ -63,7 +63,7 @@ $(testtools_BRIDGEDIR)/bridgetest_client$(testtools_BATCHSUFFIX) :| $(testtools_
+       $(call gb_Trace_StartRange,$(subst $(WORKDIR)/,,$@),ECH)
+       $(call gb_Helper_abbreviate_dirs,\
+               echo \
+-              "$(call gb_Executable_get_target_for_build,uno)" \
++              "/usr/lib/libreoffice/program/uno" \
+               "-s com.sun.star.test.bridge.BridgeTest --" \
+               "-u 'uno:socket$(COMMA)host=127.0.0.1$(COMMA)port=2002;urp;test'" \
+               "-env:LO_BUILD_LIB_DIR=$(call gb_Helper_make_url,$(gb_Library_WORKDIR_FOR_BUILD))" \
+diff --git a/testtools/CustomTarget_uno_test.mk b/testtools/CustomTarget_uno_test.mk
+index 04d600b17c64..c3b6069acc42 100644
+--- a/testtools/CustomTarget_uno_test.mk
++++ b/testtools/CustomTarget_uno_test.mk
+@@ -30,14 +30,14 @@ ifneq ($(gb_SUPPRESS_TESTS),)
+       @true
+ else
+       $(call gb_Helper_abbreviate_dirs,\
+-              $(call gb_Executable_get_command,uno) \
++              /usr/lib/libreoffice/program/uno \
+               -s com.sun.star.test.bridge.BridgeTest \
+               -- com.sun.star.test.bridge.CppTestObject \
+               -env:LO_BUILD_LIB_DIR=$(call gb_Helper_make_url,$(gb_Library_WORKDIR_FOR_BUILD)) \
+               -env:URE_MORE_SERVICES=$(call gb_Helper_make_url,$(call gb_Rdb_get_target,uno_services)) \
+               -env:URE_MORE_TYPES=$(call gb_Helper_make_url,$(WORKDIR)/UnoApiTarget/bridgetest.rdb) \
+               $(if $(ENABLE_JAVA), && \
+-                      $(call gb_Executable_get_command,uno) \
++                      /usr/lib/libreoffice/program/uno \
+                       -s com.sun.star.test.bridge.BridgeTest \
+                       -- com.sun.star.test.bridge.JavaTestObject noCurrentContext \
+                       -env:LO_BUILD_LIB_DIR=$(call gb_Helper_make_url,$(gb_Library_WORKDIR_FOR_BUILD)) \
+#diff --git a/testtools/Library_bridgetest-common.mk b/testtools/Library_bridgetest-common.mk
+#index 1ca38bca6b49..cbc793c36d39 100644
+#--- a/testtools/Library_bridgetest-common.mk
+#+++ b/testtools/Library_bridgetest-common.mk
+#@@ -20,16 +20,6 @@ $(eval $(call gb_Library_use_internal_api,testtools_bridgetest-common,\
+#     bridgetest \
+# ))
+# 
+#-$(eval $(call gb_Library_use_libraries,testtools_bridgetest-common, \
+#-    cppu \
+#-    cppuhelper \
+#-    sal \
+#-))
+#-
+#-$(eval $(call gb_Library_use_api,testtools_bridgetest-common,\
+#-    udkapi \
+#-))
+#-
+# $(eval $(call gb_Library_add_exception_objects,testtools_bridgetest-common,\
+#     testtools/source/bridgetest/currentcontextchecker \
+#     testtools/source/bridgetest/multi \
+#diff --git a/testtools/Library_bridgetest.mk b/testtools/Library_bridgetest.mk
+#index 52f335761fdf..f0bafca0998f 100644
+#--- a/testtools/Library_bridgetest.mk
+#+++ b/testtools/Library_bridgetest.mk
+#@@ -15,16 +15,9 @@ $(eval $(call gb_Library_use_internal_api,testtools_bridgetest,\
+#     bridgetest \
+# ))
+# 
+#-$(eval $(call gb_Library_use_api,testtools_bridgetest,\
+#-    udkapi \
+#-))
+#-
+# $(eval $(call gb_Library_use_external,testtools_bridgetest,boost_headers))
+# 
+# $(eval $(call gb_Library_use_libraries,testtools_bridgetest,\
+#-    cppu \
+#-    cppuhelper \
+#-    sal \
+#     testtools_bridgetest-common \
+# ))
+# 
+#diff --git a/testtools/Library_constructors.mk b/testtools/Library_constructors.mk
+#index 516c05d62db8..3a2a4b8bca24 100644
+#--- a/testtools/Library_constructors.mk
+#+++ b/testtools/Library_constructors.mk
+#@@ -22,16 +22,6 @@ $(eval $(call gb_Library_use_internal_api,testtools_constructors,\
+#     bridgetest \
+# ))
+# 
+#-$(eval $(call gb_Library_use_api,testtools_constructors,\
+#-    udkapi \
+#-))
+#-
+#-$(eval $(call gb_Library_use_libraries,testtools_constructors,\
+#-    cppu \
+#-    cppuhelper \
+#-    sal \
+#-))
+#-
+# $(eval $(call gb_Library_add_exception_objects,testtools_constructors,\
+#     testtools/source/bridgetest/constructors \
+# ))
+#diff --git a/testtools/Library_cppobj.mk b/testtools/Library_cppobj.mk
+#index 086b1fa0b6f5..9348254b6da8 100644
+#--- a/testtools/Library_cppobj.mk
+#+++ b/testtools/Library_cppobj.mk
+#@@ -20,16 +20,9 @@ $(eval $(call gb_Library_use_internal_api,testtools_cppobj,\
+#     bridgetest \
+# ))
+# 
+#-$(eval $(call gb_Library_use_api,testtools_cppobj,\
+#-    udkapi \
+#-))
+#-
+# $(eval $(call gb_Library_use_external,testtools_cppobj,boost_headers))
+# 
+# $(eval $(call gb_Library_use_libraries,testtools_cppobj,\
+#-    cppu \
+#-    cppuhelper \
+#-    sal \
+#     testtools_bridgetest-common \
+# ))
+# 
+#diff --git a/unoidl/Executable_unoidl-check.mk b/unoidl/Executable_unoidl-check.mk
+#index 36dfc44de635..a1bb6ed14d80 100644
+#--- a/unoidl/Executable_unoidl-check.mk
+#+++ b/unoidl/Executable_unoidl-check.mk
+#@@ -15,10 +15,13 @@ $(eval $(call gb_Executable_add_exception_objects,unoidl-check, \
+# 
+# $(eval $(call gb_Executable_use_libraries,unoidl-check, \
+#     unoidl \
+#-    $(if $(filter TRUE,$(DISABLE_DYNLOADING)),reg) \
+#-    $(if $(filter TRUE,$(DISABLE_DYNLOADING)),store) \
+#-    salhelper \
+#-    sal \
+#+))
+#+
+#+$(eval $(call gb_Executable_add_ldflags,unoidl-check, \
+#+    $(if $(filter TRUE,$(DISABLE_DYNLOADING)),-L/usr/lib/libreoffice/program/ -lreglo) \
+#+     $(if $(filter TRUE,$(DISABLE_DYNLOADING)),-L/usr/lib/libreoffice/program/ -lstorelo) \
+#+    -L/usr/lib/libreoffice/sdk/lib/ -luno_sal \
+#+    -L/usr/lib/libreoffice/sdk/lib/ -luno_salhelpergcc3 \
+# ))
+# 
+# # vim: set noet sw=4 ts=4:
+#diff --git a/unoidl/Executable_unoidl-read.mk b/unoidl/Executable_unoidl-read.mk
+#index b134c30b1a72..2bfd0ea3057f 100644
+#--- a/unoidl/Executable_unoidl-read.mk
+#+++ b/unoidl/Executable_unoidl-read.mk
+#@@ -15,10 +15,13 @@ $(eval $(call gb_Executable_add_exception_objects,unoidl-read, \
+# 
+# $(eval $(call gb_Executable_use_libraries,unoidl-read, \
+#     unoidl \
+#-    $(if $(filter TRUE,$(DISABLE_DYNLOADING)),reg) \
+#-    $(if $(filter TRUE,$(DISABLE_DYNLOADING)),store) \
+#-    salhelper \
+#-    sal \
+#+))
+#+
+#+$(eval $(call gb_Executable_add_ldflags,unoidl-read, \
+#+    $(if $(filter TRUE,$(DISABLE_DYNLOADING)),-L/usr/lib/libreoffice/program/ -lreglo) \
+#+     $(if $(filter TRUE,$(DISABLE_DYNLOADING)),-L/usr/lib/libreoffice/program/ -lstorelo) \
+#+    -L/usr/lib/libreoffice/sdk/lib/ -luno_sal \
+#+    -L/usr/lib/libreoffice/sdk/lib/ -luno_salhelpergcc3 \
+# ))
+# 
+# # vim: set noet sw=4 ts=4:
+#diff --git a/unoidl/Executable_unoidl-write.mk b/unoidl/Executable_unoidl-write.mk
+#index 9accb31ac14d..f69d78a09c32 100644
+#--- a/unoidl/Executable_unoidl-write.mk
+#+++ b/unoidl/Executable_unoidl-write.mk
+#@@ -15,10 +15,15 @@ $(eval $(call gb_Executable_add_exception_objects,unoidl-write, \
+# 
+# $(eval $(call gb_Executable_use_libraries,unoidl-write, \
+#     unoidl \
+#-    $(if $(filter TRUE,$(DISABLE_DYNLOADING)),reg) \
+#-    $(if $(filter TRUE,$(DISABLE_DYNLOADING)),store) \
+#-    salhelper \
+#-    sal \
+# ))
+# 
+#+$(eval $(call gb_Executable_add_ldflags,unoidl-write, \
+#+    $(if $(filter TRUE,$(DISABLE_DYNLOADING)),-L/usr/lib/libreoffice/program/ -lreglo) \
+#+     $(if $(filter TRUE,$(DISABLE_DYNLOADING)),-L/usr/lib/libreoffice/program/ -lstorelo) \
+#+    -L/usr/lib/libreoffice/sdk/lib/ -luno_sal \
+#+    -L/usr/lib/libreoffice/sdk/lib/ -luno_salhelpergcc3 \
+#+))
+#+
+#+
+#+
+# # vim: set noet sw=4 ts=4:
+#diff --git a/unoidl/Library_unoidl.mk b/unoidl/Library_unoidl.mk
+#index c98fc69f4945..bdc8285fe234 100644
+#--- a/unoidl/Library_unoidl.mk
+#+++ b/unoidl/Library_unoidl.mk
+#@@ -32,10 +32,10 @@ $(eval $(call gb_Library_set_include,unoidl, \
+#     -I$(SRCDIR)/unoidl/source \
+# ))
+# 
+#-$(eval $(call gb_Library_use_libraries,unoidl, \
+#-    reg \
+#-    sal \
+#-    salhelper \
+#+$(eval $(call gb_Library_add_libs,unoidl, \
+#+    -L/usr/lib/libreoffice/program/ -lreglo \
+#+    -L/usr/lib/libreoffice/sdk/lib/ -luno_sal \
+#+    -L/usr/lib/libreoffice/sdk/lib/ -luno_salhelpergcc3 \
+# ))
+# 
+# # vim: set noet sw=4 ts=4:
diff --git a/debian/tests/patches/uicheck-standalone.diff b/debian/tests/patches/uicheck-standalone.diff
new file mode 100644 (file)
index 0000000..4edbdb8
--- /dev/null
@@ -0,0 +1,69 @@
+diff --git a/solenv/gbuild/UITest.mk b/solenv/gbuild/UITest.mk
+index cebb030a12cd..88ec5499dcbd 100644
+--- a/solenv/gbuild/UITest.mk
++++ b/solenv/gbuild/UITest.mk
+@@ -34,7 +34,7 @@ ifneq ($(gb_UITest_DEBUGRUN),)
+ gb_UITest_SOFFICEARG:=connect:pipe,name=$(USER)
+ gb_UITest__interactive := $(true)
+ else
+-gb_UITest_SOFFICEARG:=path:$(INSTROOT)/$(LIBO_BIN_FOLDER)/soffice
++gb_UITest_SOFFICEARG:=$(OOO_TEST_SOFFICE)
+ endif
+ gb_UITest_COMMAND = $(ICECREAM_RUN) $(gb_CppunitTest_RR) $(gb_UITest_EXECUTABLE) $(SRCDIR)/uitest/test_main.py
+@@ -71,8 +71,8 @@ else
+               $(DEFS) \
+               $(if $(filter WNT,$(OS)),SAL_LOG_FILE="$(dir $(call gb_UITest_get_target,$*))/soffice.out.log") \
+               TEST_LIB=$(call gb_Library_get_target,test) \
+-              URE_BOOTSTRAP=vnd.sun.star.pathname:$(call gb_Helper_get_rcfile,$(INSTROOT)/$(LIBO_ETC_FOLDER)/fundamental) \
+-              PYTHONPATH="$(PYPATH)" \
++              URE_BOOTSTRAP=vnd.sun.star.pathname:/usr/lib/libreoffice/program/fundamentalrc \
++              PYTHONPATH="$(filter-out $I/program,$(PYPATH):/usr/lib/libreoffice/program)" \
+               TestUserDir="$(call gb_Helper_make_url,$(dir $(call gb_UITest_get_target,$*)))" \
+               PYTHONDONTWRITEBYTECODE=0 \
+               $(if $(ENABLE_WERROR),PYTHONWARNINGS=error) \
+@@ -101,7 +101,6 @@ define gb_UITest_UITest
+ $(call gb_UITest_get_target,$(1)) : PYPATH := $(SRCDIR)/uitest$$(gb_CLASSPATHSEP)$(SRCDIR)/unotest/source/python$$(gb_CLASSPATHSEP)$(INSTROOT)/$(LIBO_LIB_PYUNO_FOLDER)$(if $(filter-out $(LIBO_LIB_PYUNO_FOLDER),$(LIBO_LIB_FOLDER)),$(gb_CLASSPATHSEP)$(INSTROOT)/$(LIBO_LIB_FOLDER))
+ $(call gb_UITest_get_target,$(1)) : MODULES :=
+-$(eval $(call gb_TestHelpers_use_more_fonts,$(call gb_UITest_get_target,$(1))))
+ $(eval $(call gb_Module_register_target,$(call gb_UITest_get_target,$(1)),$(call gb_UITest_get_clean_target,$(1))))
+ $(call gb_Helper_make_userfriendly_targets,$(1),UITest)
+-- 
+2.20.1
+
+diff --git a/solenv/gbuild/Module.mk b/solenv/gbuild/Module.mk
+index 4073dcfd9bf5..856f5efee988 100644
+--- a/solenv/gbuild/Module.mk
++++ b/solenv/gbuild/Module.mk
+@@ -214,7 +214,7 @@ perfcheck :
+       $(call gb_Output_announce_title,all perftests checked.)
+       $(call gb_Output_announce_bell)
+-uicheck : build
++uicheck :
+       $(if $(gb_VERBOSE),$(call gb_Output_announce,loaded modules: $(sort $(gb_Module_ALLMODULES)),$(true),UIT,6))
+       $(call gb_Output_announce_title,all uicheck checked.)
+       $(call gb_Output_announce_bell)
+@@ -390,11 +390,6 @@ endef
+ define gb_Module_add_uicheck_target
+ $(call gb_Module__read_targetfile,$(1),$(2),uicheck target)
+-$(call gb_Module_get_uicheck_target,$(1)) : $$(gb_Module_CURRENTTARGET)
+-$$(gb_Module_CURRENTTARGET) :| \
+-      $(call gb_Postprocess_get_target,AllModulesButInstsetNative) \
+-    $(call gb_Package_get_target,instsetoo_native_setup) \
+-    $(call gb_Package_get_target,instsetoo_native_setup_ure)
+ $(call gb_Module_get_uicheck_target,$(1)) : $$(gb_Module_CURRENTTARGET)
+ $(call gb_Module_get_clean_target,$(1)) : $$(gb_Module_CURRENTCLEANTARGET)
+@@ -503,7 +498,7 @@ screenshot : $(call gb_CustomTarget_get_workdir,postprocess/signing)/signing.don
+ endif
+ subsequentcheck : $$(firstword $$(gb_Module_SUBSEQUENTCHECKTARGETSTACK))
+ perfcheck : $$(firstword $$(gb_Module_PERFCHECKTARGETSTACK))
+-uicheck : build $$(firstword $$(gb_Module_UICHECKTARGETSTACK))
++uicheck : $$(firstword $$(gb_Module_UICHECKTARGETSTACK))
+ clean : $$(firstword $$(gb_Module_CLEANTARGETSTACK))
+ ifneq ($$(words $$(gb_Module_TARGETSTACK)),1)
diff --git a/debian/tests/pyuno-import b/debian/tests/pyuno-import
new file mode 100755 (executable)
index 0000000..9820a90
--- /dev/null
@@ -0,0 +1,8 @@
+#!/usr/bin/python3
+
+import sys, os
+sys.path.append('/usr/lib/libreoffice/program')
+os.putenv('URE_BOOTSTRAP', 'vnd.sun.star.pathname:/usr/lib/libreoffice/program/fundamentalrc')
+
+import pyuno
+print(pyuno)
diff --git a/debian/tests/scriptforge-import b/debian/tests/scriptforge-import
new file mode 100755 (executable)
index 0000000..29c433c
--- /dev/null
@@ -0,0 +1,4 @@
+#!/usr/bin/python3
+
+import scriptforge
+print(scriptforge)
diff --git a/debian/tests/slowcheck b/debian/tests/slowcheck
new file mode 100755 (executable)
index 0000000..04e8573
--- /dev/null
@@ -0,0 +1,60 @@
+#!/bin/bash
+# autopkgtest check: Run junit base tests against an installed version of LibreOffice
+# (c) 2021 Software in the Public Interest, Inc.
+# Authors: Rene Engelhard <rene@debian.org>
+
+set -e
+set -E
+
+SRCDIR=`pwd`
+CHECK_PARALLELISM=1
+if [ -n "$AUTOPKGTEST_TMP" ]; then
+        WORKDIR=`mktemp -q -d -p $AUTOPKGTEST_TMP`
+else
+        WORKDIR=`mktemp -q -d`
+fi
+
+function unapply() {
+        cd $SRCDIR
+        echo
+        echo "====== Unapplying the patches ======"
+        patch -p1 -R < ./debian/tests/patches/cppunit-standalone.diff
+}
+
+trap "unapply" ERR
+
+echo
+echo "====== Patching the tree to only build the unittests against an existing installation ======"
+patch -p1 < ./debian/tests/patches/cppunit-standalone.diff
+
+echo
+echo "====== Enabling core dumps ======"
+# yes, we want core dumps and stack traces
+ulimit -c unlimited || true
+
+echo
+echo "====== Starting slowcheck with ${CHECK_PARALLELISM} job ======"
+
+# hack, otherwise it fails
+mkdir -p $SRCDIR/instdir/program/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/simpress/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/simpress/popupmenu/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/simpress/statusbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/simpress/toolbar/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/simpress/ui/.dir
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/modules/simpress/menubar/.dir
+
+# all modules containing slowcheck
+export PARALLELISM=$CHECK_PARALLELISM
+for i in `grep slowcheck */*.mk | cut -d"/" -f1 | sort | uniq | xargs`; do
+       echo
+       echo "====== Running slowcheck in module $i ======"; \
+       cd $i && \
+       make -rk slowcheck \
+               INSTDIR=/usr/lib/libreoffice \
+               verbose=t; \
+       cd ..;\
+done
+
+unapply
+
diff --git a/debian/tests/smoketest b/debian/tests/smoketest
new file mode 100755 (executable)
index 0000000..f196ec3
--- /dev/null
@@ -0,0 +1,56 @@
+#!/bin/bash
+# autopkgtest check: Run smoketest against an installed version of LibreOffice
+# (c) 2018 Software in the Public Interest, Inc.
+# Authors: Rene Engelhard <rene@debian.org>
+
+set -e
+set -E
+
+SRCDIR=`pwd`
+CHECK_PARALLELISM=1
+if [ -n "$AUTOPKGTEST_TMP" ]; then
+       TMP=`mktemp -q -p $AUTOPKGTEST_TMP`
+       WORKDIR=`mktemp -q -d -p $AUTOPKGTEST_TMP`
+else
+       TMP=`mktemp -q`
+       WORKDIR=`mktemp -q -d`
+fi
+
+function unapply() {
+       cd $SRCDIR
+       echo
+       echo "====== Unapplying the patches ======"
+       patch -p1 -R < ./debian/tests/patches/cppunit-standalone.diff
+       patch -p1 -R < ./debian/tests/patches/smoketest-standalone.diff
+       patch -p0 -R < ./debian/tests/patches/smoketest-disable-extension-tests.diff
+}
+
+trap "unapply" ERR
+
+echo
+echo "====== Patching the tree to only build the smoketest unittest against an existing installation ======"
+patch -p1 < ./debian/tests/patches/cppunit-standalone.diff
+patch -p1 < ./debian/tests/patches/smoketest-standalone.diff
+patch -p0 < ./debian/tests/patches/smoketest-disable-extension-tests.diff
+
+echo
+echo "====== Enabling core dumps ======"
+# yes, we want core dumps and stack traces
+ulimit -c unlimited || true
+
+OOO_TEST_SOFFICE="${1:-path:/usr/lib/libreoffice/program/soffice}"
+
+echo
+echo "====== Starting smoketest with ${CHECK_PARALLELISM} job against ${OOO_TEST_SOFFICE} ======"
+
+export PARALLELISM=$CHECK_PARALLELISM
+
+export LD_LIBRARY_PATH=/usr/lib/libreoffice/program:$LD_LIBRARY_PATH
+cd smoketest && make \
+    OOO_TEST_SOFFICE=${OOO_TEST_SOFFICE} \
+    subsequentcheck INSTDIR=/usr/lib/libreoffice verbose=t
+
+cd $SRCDIR
+
+unapply
+
diff --git a/debian/tests/test-extension b/debian/tests/test-extension
new file mode 100755 (executable)
index 0000000..460ed0f
--- /dev/null
@@ -0,0 +1,40 @@
+#!/bin/bash
+# autopkgtest check: Install a test extension (as smoketest would do)
+# (c) 2017 Software in the Public Interest, Inc.
+# Authors: Rene Engelhard <rene@debian.org>
+
+set -e
+set -E
+
+if [ -n "$AUTOPKGTEST_TMP" ]; then
+        TMP=`mktemp -q -p $AUTOPKGTEST_TMP`
+else
+        TMP=`mktemp -q`
+fi
+
+# skip if building as root:
+# unopkg errors out with "ERROR: Cannot run unopkg as root without --shared or --bundled option."
+# if ran as root
+if [ `id -u` = "0" ]; then
+       exit 77
+fi
+
+echo
+echo "====== Add the extension ======"
+# does it install fine?
+unopkg add -v /usr/share/libreoffice/TestExtension.oxt
+
+echo
+echo "====== Show extension status ======"
+# does it list? For whatever reason unopkg leaves a stale .lock behind when
+# doing this grep directly on the output so do it on a tmpfile
+unopkg list | tee $TMP
+grep -q org.libreoffice.smoketest.TestExtension $TMP || exit 1
+rm $TMP
+
+echo
+echo "====== Remove the extension ======"
+# does it remove?
+unopkg remove -v org.libreoffice.smoketest.TestExtension
+
+
diff --git a/debian/tests/test-extension-shared b/debian/tests/test-extension-shared
new file mode 100755 (executable)
index 0000000..f9d7941
--- /dev/null
@@ -0,0 +1,34 @@
+#!/bin/bash
+# autopkgtest check: Install a test extension shared
+# (c) 2017 Software in the Public Interest, Inc.
+# Authors: Rene Engelhard <rene@debian.org>
+
+set -e
+set -E
+
+if [ -n "$AUTOPKGTEST_TMP" ]; then
+        TMP=`mktemp -q -p $AUTOPKGTEST_TMP`
+else
+        TMP=`mktemp -q`
+fi
+
+
+echo
+echo "====== Add the extension ======"
+# does it install fine?
+unopkg add --shared -v /usr/share/libreoffice/TestExtension.oxt
+
+echo
+echo "====== Show extension status ======"
+# does it list? For whatever reason unopkg leaves a stale .lock behind when
+# doing this grep directly on the output so do it on a tmpfile
+unopkg list --shared | tee $TMP
+grep -q org.libreoffice.smoketest.TestExtension $TMP || exit 1
+rm $TMP
+
+echo
+echo "====== Remove the extension ======"
+# does it remove?
+unopkg remove --shared -v org.libreoffice.smoketest.TestExtension
+
+
diff --git a/debian/tests/testtools-bridgetest-with-java b/debian/tests/testtools-bridgetest-with-java
new file mode 100755 (executable)
index 0000000..373b395
--- /dev/null
@@ -0,0 +1,57 @@
+#!/bin/bash
+# autopkgtest check: Run UNO tests against an installed version of the URE
+# (c) 2018 Software in the Public Interest, Inc.
+# Authors: Rene Engelhard <rene@debian.org>
+
+set -e
+set -E
+
+SRCDIR=`pwd`
+CHECK_PARALLELISM=1
+if [ -n "$AUTOPKGTEST_TMP" ]; then
+       TMP=`mktemp -q -p $AUTOPKGTEST_TMP`
+       WORKDIR=`mktemp -q -d -p $AUTOPKGTEST_TMP`
+else
+       TMP=`mktemp -q`
+       WORKDIR=`mktemp -q -d`
+fi
+
+function unapply() {
+       cd $SRCDIR
+       echo
+       echo "====== Unapplying the patches ======"
+       patch -p1 -R < ./debian/tests/patches/testtools-standalone.diff
+}
+
+trap "unapply" ERR
+
+echo
+echo "====== Patching the tree to only build the testtools unittest against an existing installation ======"
+patch -p1 < ./debian/tests/patches/testtools-standalone.diff
+
+echo
+echo "====== Enabling core dumps ======"
+# yes, we want core dumps and stack traces
+ulimit -c unlimited || true
+
+if [ ! -f config_host.mk ] || grep -q ENABLE_JAVA=$ config_host.mk; then
+       # this normally shouldn't be needed but otherwise it wants a automatic
+       # re-autogen.
+       echo
+       echo "====== Generating configuration ======="
+       rm -f config_host.mk
+       ./debian/rules config_host.mk ENABLE_PDFIUM=n ENABLE_MERGELIBS=n BUILD_GTK=n BUILD_GTK3=n BUILD_KDE=n
+fi
+
+echo
+echo "====== Starting uno test with ${CHECK_PARALLELISM} job against /usr/lib/libreoffice/program/uno ======"
+
+export PARALLELISM=$CHECK_PARALLELISM
+
+export LD_LIBRARY_PATH=/usr/lib/libreoffice/program:$LD_LIBRARY_PATH
+make testtools.allcheck verbose=t
+
+cd $SRCDIR
+
+unapply
+
diff --git a/debian/tests/testtools-bridgetest-without-java b/debian/tests/testtools-bridgetest-without-java
new file mode 100755 (executable)
index 0000000..c45dfe5
--- /dev/null
@@ -0,0 +1,57 @@
+#!/bin/bash
+# autopkgtest check: Run UNO tests against an installed version of the URE
+# (c) 2018 Software in the Public Interest, Inc.
+# Authors: Rene Engelhard <rene@debian.org>
+
+set -e
+set -E
+
+SRCDIR=`pwd`
+CHECK_PARALLELISM=1
+if [ -n "$AUTOPKGTEST_TMP" ]; then
+       TMP=`mktemp -q -p $AUTOPKGTEST_TMP`
+       WORKDIR=`mktemp -q -d -p $AUTOPKGTEST_TMP`
+else
+       TMP=`mktemp -q`
+       WORKDIR=`mktemp -q -d`
+fi
+
+function unapply() {
+       cd $SRCDIR
+       echo
+       echo "====== Unapplying the patches ======"
+       patch -p1 -R < ./debian/tests/patches/testtools-standalone.diff
+}
+
+trap "unapply" ERR
+
+echo
+echo "====== Patching the tree to only build the testtools unittest against an existing installation ======"
+patch -p1 < ./debian/tests/patches/testtools-standalone.diff
+
+echo
+echo "====== Enabling core dumps ======"
+# yes, we want core dumps and stack traces
+ulimit -c unlimited || true
+
+if [ ! -f config_host.mk ]; then
+       # this normally shouldn't be needed but otherwise it wants a automatic
+       # re-autogen.
+       echo
+       echo "====== Generating configuration ======="
+       rm -f config_host.mk
+       ./debian/rules config_host.mk ENABLE_PDFIUM=n ENABLE_MERGELIBS=n BUILD_GTK=n BUILD_GTK3=n BUILD_KDE=n ENABLE_JAVA=n
+fi
+
+echo
+echo "====== Starting uno test with ${CHECK_PARALLELISM} job against /usr/lib/libreoffice/program/uno ======"
+
+export PARALLELISM=$CHECK_PARALLELISM
+
+export LD_LIBRARY_PATH=/usr/lib/libreoffice/program:$LD_LIBRARY_PATH
+make testtools.allcheck verbose=t
+
+cd $SRCDIR
+
+unapply
+
diff --git a/debian/tests/uicheck-cui b/debian/tests/uicheck-cui
new file mode 100755 (executable)
index 0000000..5295014
--- /dev/null
@@ -0,0 +1,63 @@
+#!/bin/bash
+# autopkgtest check: Run uicheck against an installed version of LibreOffice
+# (c) 2017 Software in the Public Interest, Inc.
+# Authors: Rene Engelhard <rene@debian.org>
+
+set -e
+set -E
+
+SRCDIR=`pwd`
+CHECK_PARALLELISM=1
+if [ -n "$AUTOPKGTEST_TMP" ]; then
+        WORKDIR=`mktemp -q -d -p $AUTOPKGTEST_TMP`
+else
+        WORKDIR=`mktemp -q -d`
+fi
+
+function unapply() {
+       echo
+       echo "====== Unapplying the patch ======"
+       patch -p1 -R < ./debian/tests/patches/uicheck-standalone.diff
+}
+
+trap "unapply" ERR
+
+echo
+echo "====== Patching the tree to build uicheck against an existing installation ======"
+patch -p1 < ./debian/tests/patches/uicheck-standalone.diff
+
+if [ ! -f config_host.mk ]; then
+       # this normally shouldn't be needed but otherwise it wants a automatic
+       # re-autogen.
+       echo
+       echo "====== Generating configuration ======="
+       rm -f config_host.mk
+       ./debian/rules config_host.mk
+fi
+
+echo
+echo "====== Enabling core dumps ======"
+# yes, we want core dumps and stack traces
+ulimit -c unlimited || true
+
+echo
+echo "====== Generating en_US.UTF-8 locale ======"
+cd $WORKDIR
+$SRCDIR/debian/scripts/locale-gen
+
+OOO_TEST_SOFFICE="${1:-path:/usr/lib/libreoffice/program/soffice}"
+
+echo
+echo "====== Starting uicheck with ${CHECK_PARALLELISM} job against ${OOO_TEST_SOFFICE} ======"
+
+cd $SRCDIR
+export PARALLELISM=$CHECK_PARALLELISM
+export LOCPATH=$WORKDIR/debian/locales
+export LANG=en_US.UTF-8
+export LC_ALL=en_US.UTF-8
+make -rk \
+    OOO_TEST_SOFFICE=${OOO_TEST_SOFFICE} \
+    cui.uicheck verbose=t
+
+unapply
+
diff --git a/debian/tests/uicheck-sc b/debian/tests/uicheck-sc
new file mode 100755 (executable)
index 0000000..c89435e
--- /dev/null
@@ -0,0 +1,63 @@
+#!/bin/bash
+# autopkgtest check: Run uicheck against an installed version of LibreOffice
+# (c) 2017 Software in the Public Interest, Inc.
+# Authors: Rene Engelhard <rene@debian.org>
+
+set -e
+set -E
+
+SRCDIR=`pwd`
+CHECK_PARALLELISM=1
+if [ -n "$AUTOPKGTEST_TMP" ]; then
+        WORKDIR=`mktemp -q -d -p $AUTOPKGTEST_TMP`
+else
+        WORKDIR=`mktemp -q -d`
+fi
+
+function unapply() {
+       echo
+       echo "====== Unapplying the patch ======"
+       patch -p1 -R < ./debian/tests/patches/uicheck-standalone.diff
+}
+
+trap "unapply" ERR
+
+echo
+echo "====== Patching the tree to build uicheck against an existing installation ======"
+patch -p1 < ./debian/tests/patches/uicheck-standalone.diff
+
+if [ ! -f config_host.mk ]; then
+       # this normally shouldn't be needed but otherwise it wants a automatic
+       # re-autogen.
+       echo
+       echo "====== Generating configuration ======="
+       rm -f config_host.mk
+       ./debian/rules config_host.mk
+fi
+
+echo
+echo "====== Enabling core dumps ======"
+# yes, we want core dumps and stack traces
+ulimit -c unlimited || true
+
+echo
+echo "====== Generating en_US.UTF-8 locale ======"
+cd $WORKDIR
+$SRCDIR/debian/scripts/locale-gen
+
+OOO_TEST_SOFFICE="${1:-path:/usr/lib/libreoffice/program/soffice}"
+
+echo
+echo "====== Starting uicheck with ${CHECK_PARALLELISM} job against ${OOO_TEST_SOFFICE} ======"
+
+cd $SRCDIR
+export PARALLELISM=$CHECK_PARALLELISM
+export LOCPATH=$WORKDIR/debian/locales
+export LANG=en_US.UTF-8
+export LC_ALL=en_US.UTF-8
+make -rk \
+    OOO_TEST_SOFFICE=${OOO_TEST_SOFFICE} \
+    sc.uicheck verbose=t
+
+unapply
+
diff --git a/debian/tests/uicheck-sd b/debian/tests/uicheck-sd
new file mode 100755 (executable)
index 0000000..42e433f
--- /dev/null
@@ -0,0 +1,63 @@
+#!/bin/bash
+# autopkgtest check: Run uicheck against an installed version of LibreOffice
+# (c) 2017 Software in the Public Interest, Inc.
+# Authors: Rene Engelhard <rene@debian.org>
+
+set -e
+set -E
+
+SRCDIR=`pwd`
+CHECK_PARALLELISM=1
+if [ -n "$AUTOPKGTEST_TMP" ]; then
+        WORKDIR=`mktemp -q -d -p $AUTOPKGTEST_TMP`
+else
+        WORKDIR=`mktemp -q -d`
+fi
+
+function unapply() {
+       echo
+       echo "====== Unapplying the patch ======"
+       patch -p1 -R < ./debian/tests/patches/uicheck-standalone.diff
+}
+
+trap "unapply" ERR
+
+echo
+echo "====== Patching the tree to build uicheck against an existing installation ======"
+patch -p1 < ./debian/tests/patches/uicheck-standalone.diff
+
+if [ ! -f config_host.mk ]; then
+       # this normally shouldn't be needed but otherwise it wants a automatic
+       # re-autogen.
+       echo
+       echo "====== Generating configuration ======="
+       rm -f config_host.mk
+       ./debian/rules config_host.mk
+fi
+
+echo
+echo "====== Enabling core dumps ======"
+# yes, we want core dumps and stack traces
+ulimit -c unlimited || true
+
+echo
+echo "====== Generating en_US.UTF-8 locale ======"
+cd $WORKDIR
+$SRCDIR/debian/scripts/locale-gen
+
+OOO_TEST_SOFFICE="${1:-path:/usr/lib/libreoffice/program/soffice}"
+
+echo
+echo "====== Starting uicheck with ${CHECK_PARALLELISM} job against ${OOO_TEST_SOFFICE} ======"
+
+cd $SRCDIR
+export PARALLELISM=$CHECK_PARALLELISM
+export LOCPATH=$WORKDIR/debian/locales
+export LANG=en_US.UTF-8
+export LC_ALL=en_US.UTF-8
+make -rk \
+    OOO_TEST_SOFFICE=${OOO_TEST_SOFFICE} \
+    sd.uicheck verbose=t
+
+unapply
+
diff --git a/debian/tests/uicheck-sfx2 b/debian/tests/uicheck-sfx2
new file mode 100755 (executable)
index 0000000..2796707
--- /dev/null
@@ -0,0 +1,63 @@
+#!/bin/bash
+# autopkgtest check: Run uicheck against an installed version of LibreOffice
+# (c) 2017 Software in the Public Interest, Inc.
+# Authors: Rene Engelhard <rene@debian.org>
+
+set -e
+set -E
+
+SRCDIR=`pwd`
+CHECK_PARALLELISM=1
+if [ -n "$AUTOPKGTEST_TMP" ]; then
+        WORKDIR=`mktemp -q -d -p $AUTOPKGTEST_TMP`
+else
+        WORKDIR=`mktemp -q -d`
+fi
+
+function unapply() {
+       echo
+       echo "====== Unapplying the patch ======"
+       patch -p1 -R < ./debian/tests/patches/uicheck-standalone.diff
+}
+
+trap "unapply" ERR
+
+echo
+echo "====== Patching the tree to build uicheck against an existing installation ======"
+patch -p1 < ./debian/tests/patches/uicheck-standalone.diff
+
+if [ ! -f config_host.mk ]; then
+       # this normally shouldn't be needed but otherwise it wants a automatic
+       # re-autogen.
+       echo
+       echo "====== Generating configuration ======="
+       rm -f config_host.mk
+       ./debian/rules config_host.mk
+fi
+
+echo
+echo "====== Enabling core dumps ======"
+# yes, we want core dumps and stack traces
+ulimit -c unlimited || true
+
+echo
+echo "====== Generating en_US.UTF-8 locale ======"
+cd $WORKDIR
+$SRCDIR/debian/scripts/locale-gen
+
+OOO_TEST_SOFFICE="${1:-path:/usr/lib/libreoffice/program/soffice}"
+
+echo
+echo "====== Starting uicheck with ${CHECK_PARALLELISM} job against ${OOO_TEST_SOFFICE} ======"
+
+cd $SRCDIR
+export PARALLELISM=$CHECK_PARALLELISM
+export LOCPATH=$WORKDIR/debian/locales
+export LANG=en_US.UTF-8
+export LC_ALL=en_US.UTF-8
+make -rk \
+    OOO_TEST_SOFFICE=${OOO_TEST_SOFFICE} \
+    sfx2.uicheck verbose=t
+
+unapply
+
diff --git a/debian/tests/uicheck-svx b/debian/tests/uicheck-svx
new file mode 100755 (executable)
index 0000000..d6cc7b5
--- /dev/null
@@ -0,0 +1,63 @@
+#!/bin/bash
+# autopkgtest check: Run uicheck against an installed version of LibreOffice
+# (c) 2017 Software in the Public Interest, Inc.
+# Authors: Rene Engelhard <rene@debian.org>
+
+set -e
+set -E
+
+SRCDIR=`pwd`
+CHECK_PARALLELISM=1
+if [ -n "$AUTOPKGTEST_TMP" ]; then
+        WORKDIR=`mktemp -q -d -p $AUTOPKGTEST_TMP`
+else
+        WORKDIR=`mktemp -q -d`
+fi
+
+function unapply() {
+       echo
+       echo "====== Unapplying the patch ======"
+       patch -p1 -R < ./debian/tests/patches/uicheck-standalone.diff
+}
+
+trap "unapply" ERR
+
+echo
+echo "====== Patching the tree to build uicheck against an existing installation ======"
+patch -p1 < ./debian/tests/patches/uicheck-standalone.diff
+
+if [ ! -f config_host.mk ]; then
+       # this normally shouldn't be needed but otherwise it wants a automatic
+       # re-autogen.
+       echo
+       echo "====== Generating configuration ======="
+       rm -f config_host.mk
+       ./debian/rules config_host.mk
+fi
+
+echo
+echo "====== Enabling core dumps ======"
+# yes, we want core dumps and stack traces
+ulimit -c unlimited || true
+
+echo
+echo "====== Generating en_US.UTF-8 locale ======"
+cd $WORKDIR
+$SRCDIR/debian/scripts/locale-gen
+
+OOO_TEST_SOFFICE="${1:-path:/usr/lib/libreoffice/program/soffice}"
+
+echo
+echo "====== Starting uicheck with ${CHECK_PARALLELISM} job against ${OOO_TEST_SOFFICE} ======"
+
+cd $SRCDIR
+export PARALLELISM=$CHECK_PARALLELISM
+export LOCPATH=$WORKDIR/debian/locales
+export LANG=en_US.UTF-8
+export LC_ALL=en_US.UTF-8
+make -rk \
+    OOO_TEST_SOFFICE=${OOO_TEST_SOFFICE} \
+    svx.uicheck verbose=t
+
+unapply
+
diff --git a/debian/tests/uicheck-sw b/debian/tests/uicheck-sw
new file mode 100755 (executable)
index 0000000..c054bd9
--- /dev/null
@@ -0,0 +1,63 @@
+#!/bin/bash
+# autopkgtest check: Run uicheck against an installed version of LibreOffice
+# (c) 2017 Software in the Public Interest, Inc.
+# Authors: Rene Engelhard <rene@debian.org>
+
+set -e
+set -E
+
+SRCDIR=`pwd`
+CHECK_PARALLELISM=1
+if [ -n "$AUTOPKGTEST_TMP" ]; then
+        WORKDIR=`mktemp -q -d -p $AUTOPKGTEST_TMP`
+else
+        WORKDIR=`mktemp -q -d`
+fi
+
+function unapply() {
+       echo
+       echo "====== Unapplying the patch ======"
+       patch -p1 -R < ./debian/tests/patches/uicheck-standalone.diff
+}
+
+trap "unapply" ERR
+
+echo
+echo "====== Patching the tree to build uicheck against an existing installation ======"
+patch -p1 < ./debian/tests/patches/uicheck-standalone.diff
+
+if [ ! -f config_host.mk ]; then
+       # this normally shouldn't be needed but otherwise it wants a automatic
+       # re-autogen.
+       echo
+       echo "====== Generating configuration ======="
+       rm -f config_host.mk
+       ./debian/rules config_host.mk
+fi
+
+echo
+echo "====== Enabling core dumps ======"
+# yes, we want core dumps and stack traces
+ulimit -c unlimited || true
+
+echo
+echo "====== Generating en_US.UTF-8 locale ======"
+cd $WORKDIR
+$SRCDIR/debian/scripts/locale-gen
+
+OOO_TEST_SOFFICE="${1:-path:/usr/lib/libreoffice/program/soffice}"
+
+echo
+echo "====== Starting uicheck with ${CHECK_PARALLELISM} job against ${OOO_TEST_SOFFICE} ======"
+
+cd $SRCDIR
+export PARALLELISM=$CHECK_PARALLELISM
+export LOCPATH=$WORKDIR/debian/locales
+export LANG=en_US.UTF-8
+export LC_ALL=en_US.UTF-8
+make -rk \
+    OOO_TEST_SOFFICE=${OOO_TEST_SOFFICE} \
+    sw.uicheck verbose=t
+
+unapply
+
diff --git a/debian/tests/uicheck-uitest b/debian/tests/uicheck-uitest
new file mode 100755 (executable)
index 0000000..8128b94
--- /dev/null
@@ -0,0 +1,63 @@
+#!/bin/bash
+# autopkgtest check: Run uicheck against an installed version of LibreOffice
+# (c) 2017 Software in the Public Interest, Inc.
+# Authors: Rene Engelhard <rene@debian.org>
+
+set -e
+set -E
+
+SRCDIR=`pwd`
+CHECK_PARALLELISM=1
+if [ -n "$AUTOPKGTEST_TMP" ]; then
+        WORKDIR=`mktemp -q -d -p $AUTOPKGTEST_TMP`
+else
+        WORKDIR=`mktemp -q -d`
+fi
+
+function unapply() {
+       echo
+       echo "====== Unapplying the patch ======"
+       patch -p1 -R < ./debian/tests/patches/uicheck-standalone.diff
+}
+
+trap "unapply" ERR
+
+echo
+echo "====== Patching the tree to build uicheck against an existing installation ======"
+patch -p1 < ./debian/tests/patches/uicheck-standalone.diff
+
+if [ ! -f config_host.mk ]; then
+       # this normally shouldn't be needed but otherwise it wants a automatic
+       # re-autogen.
+       echo
+       echo "====== Generating configuration ======="
+       rm -f config_host.mk
+       ./debian/rules config_host.mk
+fi
+
+echo
+echo "====== Enabling core dumps ======"
+# yes, we want core dumps and stack traces
+ulimit -c unlimited || true
+
+echo
+echo "====== Generating en_US.UTF-8 locale ======"
+cd $WORKDIR
+$SRCDIR/debian/scripts/locale-gen
+
+OOO_TEST_SOFFICE="${1:-path:/usr/lib/libreoffice/program/soffice}"
+
+echo
+echo "====== Starting uicheck with ${CHECK_PARALLELISM} job against ${OOO_TEST_SOFFICE} ======"
+
+cd $SRCDIR
+export PARALLELISM=$CHECK_PARALLELISM
+export LOCPATH=$WORKDIR/debian/locales
+export LANG=en_US.UTF-8
+export LC_ALL=en_US.UTF-8
+make -rk \
+    OOO_TEST_SOFFICE=${OOO_TEST_SOFFICE} \
+    uitest.uicheck verbose=t
+
+unapply
+
diff --git a/debian/tests/uicheck-writerperfect b/debian/tests/uicheck-writerperfect
new file mode 100755 (executable)
index 0000000..14fb409
--- /dev/null
@@ -0,0 +1,63 @@
+#!/bin/bash
+# autopkgtest check: Run uicheck against an installed version of LibreOffice
+# (c) 2017 Software in the Public Interest, Inc.
+# Authors: Rene Engelhard <rene@debian.org>
+
+set -e
+set -E
+
+SRCDIR=`pwd`
+CHECK_PARALLELISM=1
+if [ -n "$AUTOPKGTEST_TMP" ]; then
+        WORKDIR=`mktemp -q -d -p $AUTOPKGTEST_TMP`
+else
+        WORKDIR=`mktemp -q -d`
+fi
+
+function unapply() {
+       echo
+       echo "====== Unapplying the patch ======"
+       patch -p1 -R < ./debian/tests/patches/uicheck-standalone.diff
+}
+
+trap "unapply" ERR
+
+echo
+echo "====== Patching the tree to build uicheck against an existing installation ======"
+patch -p1 < ./debian/tests/patches/uicheck-standalone.diff
+
+if [ ! -f config_host.mk ]; then
+       # this normally shouldn't be needed but otherwise it wants a automatic
+       # re-autogen.
+       echo
+       echo "====== Generating configuration ======="
+       rm -f config_host.mk
+       ./debian/rules config_host.mk
+fi
+
+echo
+echo "====== Enabling core dumps ======"
+# yes, we want core dumps and stack traces
+ulimit -c unlimited || true
+
+echo
+echo "====== Generating en_US.UTF-8 locale ======"
+cd $WORKDIR
+$SRCDIR/debian/scripts/locale-gen
+
+OOO_TEST_SOFFICE="${1:-path:/usr/lib/libreoffice/program/soffice}"
+
+echo
+echo "====== Starting uicheck with ${CHECK_PARALLELISM} job against ${OOO_TEST_SOFFICE} ======"
+
+cd $SRCDIR
+export PARALLELISM=$CHECK_PARALLELISM
+export LOCPATH=$WORKDIR/debian/locales
+export LANG=en_US.UTF-8
+export LC_ALL=en_US.UTF-8
+make -rk \
+    OOO_TEST_SOFFICE=${OOO_TEST_SOFFICE} \
+    writerperfect.uicheck verbose=t
+
+unapply
+
diff --git a/debian/tests/unitcheck b/debian/tests/unitcheck
new file mode 100755 (executable)
index 0000000..a363ec1
--- /dev/null
@@ -0,0 +1,72 @@
+#!/bin/bash
+# autopkgtest check: Run junit base tests against an installed version of LibreOffice
+# (c) 2021 Software in the Public Interest, Inc.
+# Authors: Rene Engelhard <rene@debian.org>
+
+set -e
+set -E
+
+SRCDIR=`pwd`
+CHECK_PARALLELISM=1
+if [ -n "$AUTOPKGTEST_TMP" ]; then
+        WORKDIR=`mktemp -q -d -p $AUTOPKGTEST_TMP`
+else
+        WORKDIR=`mktemp -q -d`
+fi
+
+function unapply() {
+        cd $SRCDIR
+        echo
+        echo "====== Unapplying the patches ======"
+        patch -p1 -R < ./debian/tests/patches/cppunit-standalone.diff
+}
+
+trap "unapply" ERR
+
+# skip if building as root:
+# fails with permission errors (seems to assume it runs as user)
+if [ `id -u` = "0" ]; then
+        exit 77
+fi
+
+echo
+echo "====== Patching the tree to only build the unittests against an existing installation ======"
+patch -p1 < ./debian/tests/patches/cppunit-standalone.diff
+
+echo
+echo "====== Enabling core dumps ======"
+# yes, we want core dumps and stack traces
+ulimit -c unlimited || true
+
+echo
+echo "====== Starting unitcheck with ${CHECK_PARALLELISM} job ======"
+
+# hack, otherwise it fails
+mkdir -p $SRCDIR/instdir/program/.dir
+mkdir -p $SRCDIR/instdir/share/registry/.dir
+mkdir -p $SRCDIR/instdir/share/registry/res/.dir
+
+mkdir -p $SRCDIR/instdir/share/filter/.dir
+
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/vcl/ui/.dir
+
+# all modules containing unitcheck
+export PARALLELISM=$CHECK_PARALLELISM
+# helpcontent2
+# idlc - tries to *write* /usr/lib/libreoffice/sdk/bin/idlc...
+# unoidl - tries to *write* /usr/lib/libreoffice/sdk/bin/unoidl-check (and  more?)...
+# odk - tries to *write* to the SDK dirs and we do test _using_ the ODK
+#       in odk-build-examples anyway
+# testtools - already tested in the "uno" test
+for i in `grep check */*.mk | grep -v helpcontent2 | grep -E -v '(idlc|unoidl)' | grep -v odk | grep -v testtools | cut -d"/" -f1 | sort | uniq | xargs`; do
+       echo
+       echo "====== Running unitcheck in module $i ======"; \
+       cd $i && \
+       make -rk unitcheck \
+               INSTDIR=/usr/lib/libreoffice \
+               verbose=t; \
+       cd ..;\
+done
+
+unapply
+
diff --git a/debian/tests/uno-import b/debian/tests/uno-import
new file mode 100755 (executable)
index 0000000..e36ab16
--- /dev/null
@@ -0,0 +1,4 @@
+#!/usr/bin/python3
+
+import uno
+print(uno)
diff --git a/debian/upstream/metadata b/debian/upstream/metadata
new file mode 100644 (file)
index 0000000..08864a9
--- /dev/null
@@ -0,0 +1,7 @@
+Bug-Database: https://bugs.documentfoundation.org/
+Bug-Submit: https://bugs.documentfoundation.org/enter_bug.cgi
+Donation: https://www.libreoffice.org/donate/
+FAQ: https://www.libreoffice.org/get-help/frequently-asked-questions/
+Repository: git://anongit.freedesktop.org/libreoffice/core
+Repository-Browse: https://cgit.freedesktop.org/libreoffice/core
+Security-Contact: officesecurity@lists.freedesktop.org
diff --git a/debian/upstream/signing-key.asc b/debian/upstream/signing-key.asc
new file mode 100644 (file)
index 0000000..e9169c3
--- /dev/null
@@ -0,0 +1,66 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.12 (GNU/Linux)
+
+mQINBEyzEr0BEADT441wUITsTwDA2nM3kmUhGrzTdxZB5xv/E1ZJCw63qWdmdTdW
+NZDfNDuLs4r2VjlEoA3xGK6jgnQvyAoNj0yiEbW/JedHHgOiVdXDlkgkY58myafT
+FXqDLzTXVrsNnay0GS8XrNjptZJPhEPBvNUdkqpA9B7RTkfaXj779Pf/AeFMZVLl
+UAci5RA0NNF910GHwoXT6SEv2PGoawsphnfmMVdKh9wz7asbtKXEmotCwX3k045x
+LsIVK5ANOi+BI9C3LkrrFJWw2XHqDW2ulwCJ0L5QNSjOuY/v8REODwIXamvvdZOz
+XBKSIzDOalJqFCHls3YlGyFw1knr6BAOmVOm32YtNTCLbVA/iK55fZWnUCjD3a4G
+xz4qpQYWfpxhOmlHpk5JkraSNHzCc7SB43DwcHF5ecXHttMhO8MoN/bAZBgCuLGF
+EwNvwFbDwIWo07mlv7wD8i1rtUCvLywJc5YL2PbjCLfB1Q4YzDX1EWnjKdnAsxxK
+ftrx1DFlxzUF+TaHbLTPttUcsWQaL8wITznoWIwdIWlo2woPgWIpUXMOYwYV31Oo
+fgmroHa3V4NOvkke09uhaZawg5yZCoRFohhfKPqT1ZrJ9SnRbW/WR3VTVY76ht5k
+RuV3eb2VWBmPU9zn56Tbe6dvFkBuzHH1JdECAqy1BzFcmQQFBebFzf1XAQARAQAB
+tEhMaWJyZU9mZmljZSBCdWlsZCBUZWFtIChDT0RFIFNJR05JTkcgS0VZKSA8YnVp
+bGRAZG9jdW1lbnRmb3VuZGF0aW9uLm9yZz6IRgQQEQIABgUCTUFIwgAKCRCL2C5v
+MLlLXHQPAJ9Ssl2o0KRKBZ0JdO3vTyDjWgawogCeOE2WUF7Iu6fdSGWNmJSM/do/
+eu6IRgQQEQIABgUCUMOrVAAKCRB7zW0CA5FQlhpDAJ9sqx4+NcrdGbeBTT1UvAb+
+11qqZgCfetdJ0jqSS2yNSNUDy5ZjItVSv/KIRgQQEQoABgUCTLMWIgAKCRD3Yrgl
+77aU6iOrAJ9qpSADLFuQXVf8hNJTB6QDTVux0gCdEhZq2X77lPA//M80glRMXeiU
+hg+IRgQSEQIABgUCTLMdZwAKCRDRq2cH1AjaHztJAJwO1YQx8Rn4WABrG1UaLmsd
+ggsRbQCgz6AhXw/V+BbmgkwoqpbaBKjA8BqIRgQTEQIABgUCTL7JDQAKCRDZI2G9
+jJphVXoIAJ4urW1aBH7aALefUCM4Kpur+OFdpwCfSMFBph6oo2C+tapy7u3Bdh6u
+mU+JARwEEAECAAYFAlI7JikACgkQWqSgLjzaew6Z8ggAx4pZJf5Rjn/OSHp5JRnz
+TuVAKxCBVdKZzxJ3+dq2I4kcZnxBq/fazO1n4kY4dDIAN0eaDw3c1T8eAzM9ZvHK
+jARwWFM3ges2wRWTFJCSN7kK1w0dNfOUbXamQshwRdip2ESmjHrzY3S0Ipo9ZPRn
+qL678aQzxtghI/xow2vzeDcxBPJyggqE46f/5mDsWEwjpS9Cl8YI6k7YQXwlGfRF
+ohJfvEsegol/eITKUVmTcOOsqEnM6S66eWFVN/Z/s+nWqmkxsWOZGADcocGR4uEK
+uX6mdsX4pdX9nCs58/CqdOtfEssmbwfCSqF6D4ip/TxJMHV6msbO/XtzvKxussw7
+2okCNwQTAQoAIQUCTLMSvQIbAwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAAKCRD0
+NKHvr+6uo5zjD/9f7vhCXJFqVy4s3DegkoHX7XPrHGGGnCDWTDlwwysa7TDRig+8
+sMpqJLTYN2QhpcMQJxBM6gSHv9thtmro60TVbLGodhg48rnK6XkVHBnmTkdnukMV
+woJDvZSBaHP5DOdGGBnSPARaXkufevAmlLKci9NceZCiAh3TGZys1A/JyTPO6AbH
+ipkWKdI6YMbBOAbXg1Te9q3aJ6Tfs+EEuHlXyiGUShxzDA96O0oRZC52DRDwru4G
+6otSGcmhmh0TK2qk6+3Ky4+0bEZeeYPuhe0FUQXdfp4VFcMinzVzHaKwcrgqt/jP
+hP0pSKY0seNZFr5lC2nalksdCVuV+ycJR/pNhnRiL3T0SFwz+HECAFld6WU4JD/x
+TZwmxNTI3kOnXBt/pfS4ri5p53X/TfsQYsA7o8/pZDPqNZ3X+GGxDmgCZ2OTOUwU
+R8o14ggO4ow6NdxO8zz8pFeG5/AgK9IUGVIi94d8MVYK85WCrRWMBjs0UwUpFSdE
+cHnyoFqa3KE7KxxEi9PlAfwdh9QD9g2X0WC5zNhQhCLe34fWGgcjLB22ZG6FjHla
+UhR7wU71APlEw9sGNVuQJiB0d3GCckMoKhEaygqUsHtRlzgCT2PqmVlti0VGiebY
+yNTjPFuUIU24SpVDRX/Lr84gakFgX1hoQC1OAQl306aYMIzd3w7TNkdiZrkCDQRM
+sxK9ARAAwOnQfFINZ37Y539om60IwV7y1/Dv6c/2B8c4JSp6xvzxC9EwmBVjrPVo
+10yWXFMqWzFSK4Dq41ytQCTMOn+pFZHnytYg7rjY8uJ+eDe6snVwNtIoL4rhEelA
+L6FeWUwouqrx3A3LUs7h8+j1J21QXgF6/p6cqajjIKI4a/a2/O0+H2AwZigOdxo6
+xLS3ZQ+vYwxAhVSaYjN8kGR07FtmJY52h41taxgkdBo74CFqXpKM8crOF2N5eFnM
+eXW+p4ORXgxcemus7Bc1fA+ISmRl7Y51zvJoyRBzSTxZGt8ocClufAPHoyLwdhp/
+4u9Grs/R4w72iwPWrjjBBC9XOTX33OkwwdLn+QC/tEE2YM5IlAhnjNPiXNEM4OMx
+/TUuOfTbOifXYZ8mjRZtumYu6W1ru6MeAytRTnhvLxY8UZbR+WNeINfQSmQeHFSx
+Sx9o18GwWcT6xHFCM0X+WO+h+TICkjbU6O0Rr2SvC+AOppewv5rbTvo6ygWk5GVN
+nfRERvR5FLqsS3wz7uzjFNoDsYXGVj835udozyb4i3KB8UcdbgfTAttuBqMN6ihJ
+OBqF5U0XlX0dLQSQ3gw1W+0kfsnp2t2JHVBWFfzufv4m1DNO0I7J94qNoH6RxsCb
+/ZU4U54d2KDn4HKCle3ciLFWrvbGYbOHSOFjnrkyNeuqDk7em8sAEQEAAYkCHwQY
+AQoACQUCTLMSvQIbDAAKCRD0NKHvr+6uo9p6D/9q8jb9r3heVJi1JlvaFV1bepr0
+ATKlC6uq1Wsol8QoVX5lAE9ds9HLwzPkswQfWx8PoHhJUYgYnyilLKJ4mRwoiR74
+Yx6RNa9KoOkU6BjavDt4c2f/fdkmzc7NA7JbPyyYT8Agz/mXKJUa5KVTtGNidx/V
+X1sgFz3Wr0R2qTghhSj/tb7Jp8LRVb/ygdQViMc1q6OI6wSguJeyH1jRH/onGzp+
+8ThdsIA1X95w3lRf70EGs1k03/0Zs2voJgZnnszZ/U+DLDL9e86cQ+cnxpZdTIYu
+qrfgq8w8U9I54CYVuQUSwHiZ0MwVoPCvPOKJkT/NLz+cqIfhfYmCYuAWxp0SKF19
+jF4NwZuFEQr+oDV/dsaevWPTlXTvKSjYUVl2I6vg6CJPnKaDBVRdDYCLP4n8LxRG
+N+lw/F62a4NBP0Bh+CYwo81Vc8Va41B3M3kZlsj4TX9xvn64s2Se+OeDDYbg9H/i
+48dfUcJJ+2U1rAGpbPK6fWT4Hv+7c54V5tZdx2pKZm4tDuXQ+S7P82Wnozpwqlx4
+v73MKBqJHn6/2H3hW+1cp3+bD1ksAJxVw4A2LAK2wk/eW3uNFIe2S5R7q9Sbm0tL
+nzZF9fGgjUGU+M20b3EBDckoEchdtqVPXykAU7e3vhzGDeHSIjUbnUXegvQPAgs/
+YwEGZqt1USnkIycH8w==
+=CCIg
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/debian/ure-java.bug-script.in b/debian/ure-java.bug-script.in
new file mode 100644 (file)
index 0000000..9c95885
--- /dev/null
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+echo "" >&3
+echo "Java (javaldx):" >&3
+/usr/lib/libreoffice/program/javaldx >&3
+
+echo "" >&3
+echo "Java:" >&3
+#_lo_profile_ver=`echo @OOVER@ | cut -d. -f1`
+_lo_profile_ver=4
+RTL_OS=@RTL_OS@
+RTL_ARCH=@RTL_ARCH@
+if [ -d "$HOME/.config/libreoffice/$_lo_profile_ver" ]; then
+       grep -ri java $HOME/.config/libreoffice/$_lo_profile_ver/user/config/javasettings_${RTL_OS}_${RTL_ARCH}.xml >&3
+fi
+
diff --git a/debian/ure-java.lintian-overrides b/debian/ure-java.lintian-overrides
new file mode 100644 (file)
index 0000000..fb97b81
--- /dev/null
@@ -0,0 +1 @@
+ure-java: classpath-contains-relative-path ../ [usr/share/java/java_uno.jar]
diff --git a/debian/vars.alpha b/debian/vars.alpha
new file mode 100644 (file)
index 0000000..5f5c7fa
--- /dev/null
@@ -0,0 +1,3 @@
+PLATFORMID=linux_alpha
+RTL_ARCH=ALPHA
+RTL_OS=Linux
diff --git a/debian/vars.amd64 b/debian/vars.amd64
new file mode 100644 (file)
index 0000000..dca6cc0
--- /dev/null
@@ -0,0 +1,3 @@
+PLATFORMID=linux_x86_64
+RTL_ARCH=X86_64
+RTL_OS=Linux
diff --git a/debian/vars.arm b/debian/vars.arm
new file mode 100644 (file)
index 0000000..4e53e84
--- /dev/null
@@ -0,0 +1,3 @@
+PLATFORMID=linux_arm_oabi
+RTL_ARCH=ARM_OABI
+RTL_OS=Linux
diff --git a/debian/vars.arm64 b/debian/vars.arm64
new file mode 100644 (file)
index 0000000..7c88f38
--- /dev/null
@@ -0,0 +1,3 @@
+PLATFORMID=linux_aarch64
+RTL_ARCH=AARCH64
+RTL_OS=Linux
diff --git a/debian/vars.armel b/debian/vars.armel
new file mode 100644 (file)
index 0000000..e4311a9
--- /dev/null
@@ -0,0 +1,3 @@
+PLATFORMID=linux_arm_eabi
+RTL_ARCH=ARM_EABI
+RTL_OS=Linux
diff --git a/debian/vars.armhf b/debian/vars.armhf
new file mode 100644 (file)
index 0000000..e4311a9
--- /dev/null
@@ -0,0 +1,3 @@
+PLATFORMID=linux_arm_eabi
+RTL_ARCH=ARM_EABI
+RTL_OS=Linux
diff --git a/debian/vars.hppa b/debian/vars.hppa
new file mode 100644 (file)
index 0000000..b58289e
--- /dev/null
@@ -0,0 +1,3 @@
+PLATFORMID=linux_hppa
+RTL_ARCH=HPPA
+RTL_OS=Linux
diff --git a/debian/vars.i386 b/debian/vars.i386
new file mode 100644 (file)
index 0000000..956646c
--- /dev/null
@@ -0,0 +1,3 @@
+PLATFORMID=linux_x86
+RTL_ARCH=x86
+RTL_OS=Linux
diff --git a/debian/vars.ia64 b/debian/vars.ia64
new file mode 100644 (file)
index 0000000..dd3d3b9
--- /dev/null
@@ -0,0 +1,3 @@
+PLATFORMID=linux_ia64
+RTL_ARCH=IA64
+RTL_OS=Linux
diff --git a/debian/vars.kfreebsd-amd64 b/debian/vars.kfreebsd-amd64
new file mode 100644 (file)
index 0000000..7b1c046
--- /dev/null
@@ -0,0 +1,3 @@
+PLATFORMID=kfreebsd_x86_64
+RTL_ARCH=X86_64
+RTL_OS=FreeBSD
diff --git a/debian/vars.kfreebsd-i386 b/debian/vars.kfreebsd-i386
new file mode 100644 (file)
index 0000000..5d1f453
--- /dev/null
@@ -0,0 +1,3 @@
+PLATFORMID=kfreebsd_x86
+RTL_ARCH=x86
+RTL_OS=FreeBSD
diff --git a/debian/vars.loong64 b/debian/vars.loong64
new file mode 100644 (file)
index 0000000..7da92ea
--- /dev/null
@@ -0,0 +1,3 @@
+PLATFORMID=linux_loongarch64
+RTL_ARCH=LOONGARCH64
+RTL_OS=Linux
diff --git a/debian/vars.m68k b/debian/vars.m68k
new file mode 100644 (file)
index 0000000..fddb3f3
--- /dev/null
@@ -0,0 +1,3 @@
+PLATFORMID=linux_m68k
+RTL_ARCH=M68K
+RTL_OS=Linux
diff --git a/debian/vars.mips b/debian/vars.mips
new file mode 100644 (file)
index 0000000..fc2b0c0
--- /dev/null
@@ -0,0 +1,3 @@
+PLATFORMID=linux_mips_eb
+RTL_ARCH=MIPS_EB
+RTL_OS=Linux
diff --git a/debian/vars.mips64 b/debian/vars.mips64
new file mode 100644 (file)
index 0000000..a22a4ba
--- /dev/null
@@ -0,0 +1,3 @@
+PLATFORMID=linux_mips64_eb
+RTL_ARCH=MIPS64_EB
+RTL_OS=Linux
diff --git a/debian/vars.mips64el b/debian/vars.mips64el
new file mode 100644 (file)
index 0000000..bba65a5
--- /dev/null
@@ -0,0 +1,3 @@
+PLATFORMID=linux_mips64_el
+RTL_ARCH=MIPS64_EL
+RTL_OS=Linux
diff --git a/debian/vars.mipsel b/debian/vars.mipsel
new file mode 100644 (file)
index 0000000..874d5a1
--- /dev/null
@@ -0,0 +1,3 @@
+PLATFORMID=linux_mips_el
+RTL_ARCH=MIPS_EL
+RTL_OS=Linux
diff --git a/debian/vars.powerpc b/debian/vars.powerpc
new file mode 100644 (file)
index 0000000..4afdc21
--- /dev/null
@@ -0,0 +1,3 @@
+PLATFORMID=linux_powerpc
+RTL_ARCH=PowerPC
+RTL_OS=Linux
diff --git a/debian/vars.powerpcspe b/debian/vars.powerpcspe
new file mode 100644 (file)
index 0000000..4afdc21
--- /dev/null
@@ -0,0 +1,3 @@
+PLATFORMID=linux_powerpc
+RTL_ARCH=PowerPC
+RTL_OS=Linux
diff --git a/debian/vars.ppc64 b/debian/vars.ppc64
new file mode 100644 (file)
index 0000000..265c516
--- /dev/null
@@ -0,0 +1,3 @@
+PLATFORMID=linux_powerpc64
+RTL_ARCH=PowerPC_64
+RTL_OS=Linux
diff --git a/debian/vars.ppc64el b/debian/vars.ppc64el
new file mode 100644 (file)
index 0000000..27498f5
--- /dev/null
@@ -0,0 +1,3 @@
+PLATFORMID=linux_powerpc64_le
+RTL_ARCH=PowerPC_64_LE
+RTL_OS=Linux
diff --git a/debian/vars.riscv64 b/debian/vars.riscv64
new file mode 100644 (file)
index 0000000..afff5c7
--- /dev/null
@@ -0,0 +1,3 @@
+PLATFORMID=linux_riscv64
+RTL_ARCH=RISCV64
+RTL_OS=Linux
diff --git a/debian/vars.s390x b/debian/vars.s390x
new file mode 100644 (file)
index 0000000..1908ff5
--- /dev/null
@@ -0,0 +1,3 @@
+PLATFORMID=linux_s390x
+RTL_ARCH=S390x
+RTL_OS=Linux
diff --git a/debian/vars.solaris-i386 b/debian/vars.solaris-i386
new file mode 100644 (file)
index 0000000..3b684bc
--- /dev/null
@@ -0,0 +1,3 @@
+PLATFORMID=solaris_x86
+RTL_ARCH=x86
+RTL_OS=Solaris
diff --git a/debian/vars.sparc b/debian/vars.sparc
new file mode 100644 (file)
index 0000000..8a9557a
--- /dev/null
@@ -0,0 +1,3 @@
+PLATFORMID=linux_sparc
+RTL_ARCH=SPARC
+RTL_OS=Linux
diff --git a/debian/vars.sparc64 b/debian/vars.sparc64
new file mode 100644 (file)
index 0000000..876b65e
--- /dev/null
@@ -0,0 +1,3 @@
+PLATFORMID=linux_sparc64
+RTL_ARCH=SPARC64
+RTL_OS=Linux
diff --git a/debian/watch b/debian/watch
new file mode 100644 (file)
index 0000000..3681365
--- /dev/null
@@ -0,0 +1,40 @@
+version=4
+
+# only releases (and the final rc before the release. The last rc simply get renamed
+# so e.g. 6.4.3 final is 6.4.3 rc2 which is 6.4.3.2)
+# FIXME:
+# Unfortunately it seems that download.documentfoundation.org/libreoffice/src gets the rcs too. But
+# download.documentfoundation.org/stable((\d.\d.\d) doesn't work since we then get no tarball information
+# as that doesn't ship the source... And I fail getting parsing of www.libreoffice.org/download to work
+opts="compression=xz,pgpsigurlmangle=s/$/.asc/,uversionmangle=s/(\d\d.\d.\d).(\d)/$1/" \
+  http://download.documentfoundation.org/@PACKAGE@/src/(\d\d.\d.\d)/@PACKAGE@-(\d\d.\d.\d).(\d).tar.xz debian
+
+opts="pgpsigurlmangle=s/$/.asc/,component=helpcontent2,uversionmangle=s/(\d\d.\d.\d).(\d)/$1/" \
+  http://download.documentfoundation.org/@PACKAGE@/src/(\d\d.\d.\d)/@PACKAGE@-help-(\d\d.\d.\d).(\d).tar.xz same
+
+opts="pgpsigurlmangle=s/$/.asc/,component=translations,uversionmangle=s/(\d\d.\d.\d).(\d)/$1/" \
+  http://download.documentfoundation.org/@PACKAGE@/src/(\d\d.\d.\d)/@PACKAGE@-translations-(\d\d.\d.\d).(\d).tar.xz same
+
+# FIXME: Combine those to one part?
+# Problem: 6.4.3.2 -> 6.4.3~rc2 (rc added manually)
+#          7.0.0.0.alpha1 -> 7.0.0~alpha1 (.0. stripped and following value taken as-is)
+
+# rcs (and the last rc which will become final, see above)
+#opts="compression=xz,pgpsigurlmangle=s/$/.asc/,versionmangle=s/(\d\d.\d.\d).(\d)/$1~rc$2/" \
+#   https://dev-builds.libreoffice.org/pre-releases/src/@PACKAGE@-(\d\d.\d.\d).(\d).tar.xz debian
+#
+#opts="pgpsigurlmangle=s/$/.asc/,component=helpcontent2,versionmangle=s/(\d\d.\d.\d).(\d)/$1~rc$2/" \
+#   https://dev-builds.libreoffice.org/pre-releases/src/@PACKAGE@-help-(\d\d.\d.\d).(\d).tar.xz same
+#
+#opts="pgpsigurlmangle=s/$/.asc/,component=translations,versionmangle=s/(\d\d.\d.\d).(\d)/$1~rc$2/" \
+#   https://dev-builds.libreoffice.org/pre-releases/src/@PACKAGE@-translations-(\d\d.\d.\d).(\d).tar.xz same
+
+# alpha, beta
+#opts="compression=xz,pgpsigurlmangle=s/$/.asc/,versionmangle=s/(\d\d.\d.\d).(alpha|beta).(\d)/$1~$2$3/" \
+#   https://dev-builds.libreoffice.org/pre-releases/src/@PACKAGE@-(\d\d.\d.\d).0.(alpha|beta)(\d).tar.xz debian
+#
+#opts="pgpsigurlmangle=s/$/.asc/,versionmangle=s/(\d\d.\d.\d).(alpha|beta).(\d)/$1~$2$3/" \
+#   https://dev-builds.libreoffice.org/pre-releases/src/@PACKAGE@-help-(\d\d.\d.\d).0.(alpha|beta)(\d).tar.xz same
+#
+#opts="pgpsigurlmangle=s/$/.asc/,versionmangle=s/(\d\d.\d.\d).(alpha|beta).(\d)/$1~$2$3/" \
+#   https://dev-builds.libreoffice.org/pre-releases/src/@PACKAGE@-translations-(\d\d.\d.\d).0.(alpha|beta)(\d).tar.xz same
diff --git a/debian/xmerge-javadoc.in b/debian/xmerge-javadoc.in
new file mode 100644 (file)
index 0000000..50a29b8
--- /dev/null
@@ -0,0 +1,7 @@
+Document: xmerge-javadoc
+Title: LibreOffice XMerge API Javadoc
+Author: Oracle
+Section: Apps/Programming
+
+Format: HTML
+Index: /usr/share/doc/libreoffice-dev/docs/xmerge/index.html
diff --git a/tarballs/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip b/tarballs/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
new file mode 100644 (file)
index 0000000..2709644
Binary files /dev/null and b/tarballs/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip differ
diff --git a/tarballs/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip b/tarballs/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
new file mode 100644 (file)
index 0000000..f1fb1db
Binary files /dev/null and b/tarballs/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip differ
diff --git a/tarballs/Java-WebSocket-1.5.4.tar.gz b/tarballs/Java-WebSocket-1.5.4.tar.gz
new file mode 100644 (file)
index 0000000..0d5dd0e
Binary files /dev/null and b/tarballs/Java-WebSocket-1.5.4.tar.gz differ
diff --git a/tarballs/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip b/tarballs/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip
new file mode 100644 (file)
index 0000000..e622cf1
Binary files /dev/null and b/tarballs/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip differ
diff --git a/tarballs/dtoa-20180411.tgz b/tarballs/dtoa-20180411.tgz
new file mode 100644 (file)
index 0000000..5c014da
Binary files /dev/null and b/tarballs/dtoa-20180411.tgz differ
diff --git a/tarballs/pdfium-6179.tar.bz2 b/tarballs/pdfium-6179.tar.bz2
new file mode 100644 (file)
index 0000000..7544016
Binary files /dev/null and b/tarballs/pdfium-6179.tar.bz2 differ
diff --git a/tarballs/skia-m116-2ddcf183eb260f63698aa74d1bb380f247ad7ccd.tar.xz b/tarballs/skia-m116-2ddcf183eb260f63698aa74d1bb380f247ad7ccd.tar.xz
new file mode 100644 (file)
index 0000000..68d5a95
Binary files /dev/null and b/tarballs/skia-m116-2ddcf183eb260f63698aa74d1bb380f247ad7ccd.tar.xz differ