From: Bastien Roucariès Date: Sat, 12 Aug 2023 19:58:29 +0000 (+0100) Subject: Import libreoffice_6.1.5-3+deb10u10.debian.tar.xz X-Git-Tag: archive/raspbian/1%6.1.5-3+rpi1+deb10u10^2~81^4 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=812a29784777ef4c0480124a1ec890d35bf29004;p=libreoffice.git Import libreoffice_6.1.5-3+deb10u10.debian.tar.xz [dgit import tarball libreoffice 1:6.1.5-3+deb10u10 libreoffice_6.1.5-3+deb10u10.debian.tar.xz] --- 812a29784777ef4c0480124a1ec890d35bf29004 diff --git a/debian/README b/debian/README new file mode 100644 index 00000000000..95a01507981 --- /dev/null +++ b/debian/README @@ -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 + 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= + - 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= + - 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 index 00000000000..1493746d015 --- /dev/null +++ b/debian/README.Debian @@ -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- and libreoffice-help- 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- 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- (or, for newer ones improved +for hunspell hunspell-). + +Currently, there are thesauri available for Czech, English (AUS/GB/US), +German (DE/CH), Italian, Polish and Slovak. +Thesauri are packaged as mythes- + +Currently, there are hyphenation patterns available for English (USA), +Croatian, Estonian, German, Hungarian, Italian, Polish, Slovenian and +Lithuanian. +Hyphenation patterns are packaged as hyphen-. + +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-. + +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 : + +- 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 :> + +- 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 index 00000000000..7b9f523b2fd --- /dev/null +++ b/debian/README.Debian-source @@ -0,0 +1,82 @@ +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/ + +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 + diff --git a/debian/README.qa b/debian/README.qa new file mode 100644 index 00000000000..3da75a9fea6 --- /dev/null +++ b/debian/README.qa @@ -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 index 00000000000..59ff72ce41d --- /dev/null +++ b/debian/branding/progress.conf @@ -0,0 +1 @@ +PROGRESSBARCOLOR=215,7,81 diff --git a/debian/bug-presubj b/debian/bug-presubj new file mode 100644 index 00000000000..602de78b9f7 --- /dev/null +++ b/debian/bug-presubj @@ -0,0 +1,60 @@ +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. 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 OOo 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 index 00000000000..7acf546a834 Binary files /dev/null and b/debian/changelog differ diff --git a/debian/compat b/debian/compat new file mode 100644 index 00000000000..f599e28b8ab --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +10 diff --git a/debian/control b/debian/control new file mode 100644 index 00000000000..8587f9afa07 --- /dev/null +++ b/debian/control @@ -0,0 +1,4439 @@ +Source: libreoffice +Section: editors +Priority: optional +Maintainer: Debian LibreOffice Maintainers +Uploaders: Rene Engelhard , Chris Halls +Build-Depends: apparmor , + autoconf, + automake, + bc, + binutils (>= 2.23) [mips mipsel], + bison, + bzip2, + coinor-libcoinmp-dev (>= 1.8.3-2), + coinor-libcoinutils-dev (>= 2.10.14+repack1-1), + debhelper (>= 10), + default-jdk (>= 1:1.6) [!hppa !s390 !sparc !hurd-i386 !i386], + default-jdk (>= 1:1.7-48) [ia64], + default-jdk (>= 2:1.7-52.1) [kfreebsd-any], + default-jdk (>= 2:1.8-55) [sparc64], + default-jdk (>= 2:1.9) [i386], + default-libmysqlclient-dev, + dh-apparmor, + dh-python, + dpkg-dev (>= 1.18.2~), + firebird-dev (>= 3.0.0.32483.ds4-4) [!hppa !mips64 !s390 !sparc], + firebird3.0-server-core [!hppa !mips64 !s390 !sparc] , + flex (>= 2.3.35), + fontconfig [!hppa !kfreebsd-amd64 !kfreebsd-i386 !m68k !mips !mips64 !powerpc !powerpcspe !ppc64 !s390 !s390x !sparc !sparc64] , + fontforge-nox | fontforge, + fonts-crosextra-carlito [!hppa !kfreebsd-amd64 !kfreebsd-i386 !m68k !mips !mips64 !powerpc !powerpcspe !ppc64 !s390 !s390x !sparc !sparc64] , + fonts-dejavu [!hppa !kfreebsd-amd64 !kfreebsd-i386 !m68k !mips !mips64 !powerpc !powerpcspe !ppc64 !s390 !s390x !sparc !sparc64] , + fonts-liberation2 [!hppa !kfreebsd-amd64 !kfreebsd-i386 !m68k !mips !mips64 !powerpc !powerpcspe !ppc64 !s390 !s390x !sparc !sparc64] , + g++ (>= 4:7) [m68k], + gcc (>= 4:7) [m68k], + gdb [!hppa !kfreebsd-amd64 !kfreebsd-i386 !m68k !mips !mips64 !powerpc !powerpcspe !ppc64 !s390 !s390x !sparc !sparc64] , + ghostscript [!hppa !kfreebsd-amd64 !kfreebsd-i386 !m68k !mips !mips64 !powerpc !powerpcspe !ppc64 !s390 !s390x !sparc !sparc64] , + gobject-introspection (>= 1.32.0), + gperf, + gpg , + gpg-agent , + gpgconf , + hunspell-en-us [!hppa !kfreebsd-amd64 !kfreebsd-i386 !m68k !mips !mips64 !powerpc !powerpcspe !ppc64 !s390 !s390x !sparc !sparc64] , + imagemagick [!hppa !kfreebsd-amd64 !kfreebsd-i386 !m68k !mips !mips64 !powerpc !powerpcspe !ppc64 !s390 !s390x !sparc !sparc64] , + java-common (>= 0.61), + javahelper (>= 0.37~), + junit4 (>= 4.8.2-2) [amd64 arm64] , + libabw-dev (>= 0.1), + libarchive-zip-perl [!hppa !mips64 !s390 !sparc], + libavahi-client-dev, + libbase-java [!hppa !mips64 !s390 !sparc], + libbluetooth-dev [linux-any], + libboost-date-time-dev (>= 1.58), + libboost-dev (>= 1.58), + libboost-filesystem-dev (>= 1.58), + libboost-iostreams-dev (>= 1.58), + libboost-locale-dev (>= 1.58), + libboost-system-dev (>= 1.58), + libc0.1 (>= 2.10.2-7) [kfreebsd-any], + libc6 (>= 2.17-6) [mips mipsel], + libcairo2-dev, + libcdr-dev (>= 0.1), + libclucene-dev (>= 2.3.3.4-4.1), + libcmis-dev (>= 0.5.0-3), + libcommons-logging-java [!hppa !mips64 !s390 !sparc], + libcppunit-dev (>= 1.14) [!hppa !kfreebsd-amd64 !kfreebsd-i386 !m68k !mips !mips64 !powerpc !powerpcspe !ppc64 !s390 !s390x !sparc !sparc64] , + libcups2-dev, + libcurl4-gnutls-dev, + libdbus-glib-1-dev (>= 0.70), + libdconf-dev (>= 0.15.2), + libe-book-dev, + libe-book-dev (>= 0.1.2) , + libebook1.2-dev, + libeot-dev, + libepoxy-dev (>= 1.2), + libepubgen-dev (>= 0.1.0), + libetonyek-dev, + libetonyek-dev (>= 0.1.8) , + libexpat1-dev, + libexttextcat-dev (>= 3.4.1), + libflute-java (>= 1.1.6) [!hppa !mips64 !s390 !sparc], + libfontconfig1-dev, + libfonts-java (>= 1.1.6) [!hppa !mips64 !s390 !sparc], + libformula-java (>= 1.1.7) [!hppa !mips64 !s390 !sparc], + libfreehand-dev (>= 0.1), + libfreetype6-dev (>= 2.2.0), + libgirepository1.0-dev (>= 1.32), + libgl1-mesa-dev, + libglib2.0-dev (>= 2.38.0), + libglib2.0-dev (>= 2.4), + libglm-dev (>= 0.9.9~a2), + libgpg-error-dev, + libgpgme-dev, + libgpgmepp-dev, + libgraphite2-dev (>= 0.9.3), + libgstreamer-plugins-base1.0-dev, + libgstreamer1.0-dev, + libgtk-3-dev (>= 3.18.0), + libgtk2.0-dev (>= 2.18.0), + libharfbuzz-dev (>= 0.9.42), + libhsqldb1.8.0-java (>> 1.8.0.10) [!hppa !mips64 !s390 !sparc], + libhunspell-dev (>= 1.1.5-2), + libhyphen-dev (>= 2.4), + libice-dev, + libicu-dev (>= 52), + libjpeg-dev, + libkf5config-dev, + libkf5coreaddons-dev, + libkf5i18n-dev, + libkf5kio-dev, + libkf5windowsystem-dev, + liblangtag-dev (>= 0.4), + liblayout-java (>= 0.2.10) [!hppa !mips64 !s390 !sparc], + liblcms2-dev, + libldap2-dev, + libloader-java (>= 1.1.6) [!hppa !mips64 !s390 !sparc], + liblpsolve55-dev (>= 5.5.0.13-5+b1), + libmdds-dev (>= 1.4.1), + libmspub-dev (>= 0.1), + libmwaw-dev (>= 0.3.1), + libmwaw-dev (>= 0.3.13) , + libmysqlcppconn-dev (>= 1.1.9-4), + libmythes-dev (>= 2:1.2), + libneon27-gnutls-dev, + libnspr4-dev, + libnss3-dev (>= 3.12.3), + libnumbertext-dev, + libodfgen-dev (>= 0.1), + liborcus-dev (>= 0.14.0+really0.14.0), + libpagemaker-dev, + libpentaho-reporting-flow-engine-java (>= 0.9.4) [!hppa !mips64 !s390 !sparc], + libpng-dev, + libpoppler-cpp-dev, + libpoppler-dev (>= 0.12.0), + libpoppler-private-dev, + libpq-dev (>= 9.0~), + libqt5x11extras5-dev (>= 5.6), + libqxp-dev, + librdf0-dev (>= 1.0.16-2), + librepository-java (>= 1.1.6) [!hppa !mips64 !s390 !sparc], + librevenge-dev, + libsac-java [!hppa !mips64 !s390 !sparc], + libsane-dev, + libserializer-java (>= 1.1.6) [!hppa !mips64 !s390 !sparc], + libsm-dev, + libstaroffice-dev, + libstaroffice-dev (>= 0.0.3) , + libsuitesparse-dev (>= 1:3.4.0), + libvisio-dev (>= 0.1), + libvlc5 (>= 2.0.8), + libwpd-dev (>= 0.10), + libwpg-dev (>= 0.3), + libwps-dev (>= 0.4), + libwps-dev (>= 0.4.9) , + libx11-dev, + libxaw7-dev, + libxcb1-dev, + libxext-dev, + libxinerama-dev, + libxkbfile-dev, + libxml-java (>= 1.1.6) [!hppa !mips64 !s390 !sparc], + libxml2-dev (>= 2.8), + libxml2-utils, + libxmlsec1-dev (>= 1.2.24), + libxrandr-dev, + libxrender-dev, + libxslt1-dev, + libxt-dev, + libxtst-dev, + libzmf-dev, + locales [!hppa !kfreebsd-amd64 !kfreebsd-i386 !m68k !mips !mips64 !powerpc !powerpcspe !ppc64 !s390 !s390x !sparc !sparc64] , + lp-solve (>= 5.5.0.13-5+b1), + maven-repo-helper, + pkg-config, + pstoedit [!hppa !kfreebsd-amd64 !kfreebsd-i386 !m68k !mips !mips64 !powerpc !powerpcspe !ppc64 !s390 !s390x !sparc !sparc64] , + python3, + python3-dev (>= 3.3), + python3-distutils, + python3-lxml , + qt5-qmake (>= 5.6), + qtbase5-dev (>= 5.6), + qtbase5-dev-tools (>= 5.6), + qtchooser, + ucpp, + unixodbc-dev (>= 2.2.11), + unzip, + x11proto-render-dev, + xsltproc, + zip, + zlib1g-dev +Build-Depends-Indep: ant (>= 1.7.0) [!hppa !mips64 !s390 !sparc], + ant-optional (>= 1.7.0) [!hppa !mips64 !s390 !sparc], + doxygen (>= 1.8.4) , + g++-mingw-w64-i686, + gettext, + graphviz , + libbsh-java, + rdfind, + symlinks +Build-Conflicts: amd-libopencl1, + fonts-liberation (= 1:1.07.4-3) , + fonts-liberation (= 1:1.07.4-4) , + fonts-liberation (= 1:1.07.4-5) , + fonts-liberation2 (= 2.00.1-4) , + fonts-liberation2 (= 2.00.1-5) , + fonts-opensymbol , + nvidia-glx-dev, + nvidia-glx-legacy-dev, + nvidia-libopencl1 +Standards-Version: 4.0.1 +Vcs-Git: https://salsa.debian.org/libreoffice-team/libreoffice/libreoffice.git +Vcs-Browser: https://salsa.debian.org/libreoffice-team/libreoffice/libreoffice +Bugs: +Homepage: http://www.libreoffice.org + +Package: libreoffice +Architecture: alpha amd64 arm64 armel armhf hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el s390 s390x sparc sparc64 +Section: metapackages +Depends: libreoffice-base [!hppa !mips64 !s390 !sparc], + libreoffice-calc, + libreoffice-core (= ${binary:Version}), + libreoffice-draw, + libreoffice-impress, + libreoffice-math, + libreoffice-report-builder-bin [!hppa !mips64 !s390 !sparc], + libreoffice-writer, + ${avmedia-be-depends}, + ${misc:Depends}, + ${pyuno-depends} +Recommends: fonts-crosextra-caladea, + fonts-crosextra-carlito, + fonts-dejavu, + fonts-liberation, + fonts-liberation2, + fonts-linuxlibertine, + fonts-noto-core, + fonts-noto-mono, + fonts-noto-ui-core, + fonts-sil-gentium-basic, + libreoffice-librelogo, + libreoffice-nlpsolver, + libreoffice-report-builder [!hppa !mips64 !s390 !sparc], + libreoffice-script-provider-bsh, + libreoffice-script-provider-js, + libreoffice-script-provider-python, + libreoffice-sdbc-postgresql, + libreoffice-wiki-publisher, + ${java-common-depends} +Suggests: cups-bsd, + firefox-esr | thunderbird | firefox, + ghostscript, + gnupg, + gpa, + hunspell-dictionary, + hyphen-hyphenation-patterns, + imagemagick | graphicsmagick-imagemagick-compat, + libgl1, + libreoffice-gnome | libreoffice-kde5, + libreoffice-grammarcheck, + libreoffice-help (= ${help-l10n-virtual-version}), + libreoffice-l10n (= ${help-l10n-virtual-version}), + libxrender1, + myspell-dictionary, + mythes-thesaurus, + openclipart2-libreoffice | openclipart-libreoffice, + pstoedit, + unixodbc, + ${gstreamer-plugins-suggests}, + ${java-runtime-depends}, + ${libsane-suggests}, + ${ooo-officebean-dep} +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-9-jre | openjdk-8-jre | openjdk-7-jre | java6-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 + * bluez: Bluetooth support for Impress (slideshow remote control) + +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-ml, + libreoffice-l10n-mr, + 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: alpha amd64 arm64 armel armhf hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el s390 s390x sparc sparc64 +Depends: fontconfig, + fonts-opensymbol, + libreoffice-common (>> ${base-version}), + ure (>= 6.1.1~), + ${misc:Depends}, + ${shlibs:Depends} +Recommends: libpaper-utils +Breaks: browser-plugin-libreoffice, + libreoffice-base (<< ${binary:Version}), + libreoffice-calc (<< ${binary:Version}), + libreoffice-common (<< 1:5.4.1), + 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-kde4 (<< ${binary:Version}), + libreoffice-kde5 (<< ${binary:Version}), + libreoffice-officebean (<< ${binary:Version}), + libreoffice-pdfimport (<< 1:5.4~), + libreoffice-writer (<< ${binary:Version}) +Conflicts: libreoffice-filter-binfilter, libreoffice-unbundled +Provides: libreoffice-bundled +Replaces: libreoffice-common (<< 1:5.4.1), libreoffice-pdfimport (<< 1:5.4~) +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-common +Architecture: all +Depends: libreoffice-style-colibre, + libreoffice-style-tango, + ure, + ${misc:Depends}, + ${numbertext-data-recommends} +Suggests: libreoffice-style +Recommends: fonts-liberation2 | ttf-mscorefonts-installer, apparmor (>= 2.13.1~), + xdg-utils, + ${pyuno-depends}, + ${textcat-data-recommends} +Conflicts: broffice, + libreoffice-filter-mobiledev, + libreoffice-l10n-4.3, + libreoffice-l10n-4.4, + libreoffice-wiki-publisher (<< 1.2.0+LibO5.4.0~rc2), + openoffice-unbundled, apparmor (<< 2.13.1~) +Provides: libreoffice-l10n-en-us +Breaks: libreoffice-core (<< 1:${oover}~), + libreoffice-core (>= 1:${next-oover}~), + libreoffice-help (<< 5.4), + libreoffice-help-5.2, + libreoffice-style-andromeda (<< 1:${oover}~), + libreoffice-style-crystal (<< 1:${oover}~), + libreoffice-style-crystal (>= 1:${next-oover}~), + libreoffice-style-galaxy (<< 1:${oover}~), + libreoffice-style-galaxy (>= 1:${next-oover}~), + libreoffice-style-hicontrast (<< 1:${oover}~), + libreoffice-style-hicontrast (>= 1:${next-oover}~), + libreoffice-style-tango (<< 1:${oover}~), + libreoffice-style-tango (>= 1:${next-oover}~), + libreoffice-writer2latex (<< 1.0.2-9), + libreoffice-writer2xhtml (<< 1.0.2-9) +Replaces: libreoffice-pdfimport (<< 1:5.4~) +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, ${java:Depends}, ${misc:Depends} +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 (<< 1:6.1.0~alpha1-1) +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: alpha amd64 arm64 armel armhf hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el s390 s390x sparc sparc64 +Depends: libreoffice-base-core (= ${binary:Version}) [!hppa !mips64 !s390 !sparc], + libreoffice-core (= ${binary: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:5.4.1) +Breaks: libreoffice-common (<< 1:5.4.1) +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-calc +Architecture: alpha amd64 arm64 armel armhf hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el s390 s390x sparc sparc64 +Depends: libreoffice-base-core (= ${binary:Version}) [!hppa !mips64 !s390 !sparc], + libreoffice-core (= ${binary:Version}), + ${lpsolve-dep}, + ${misc:Depends}, + ${shlibs:Depends} +Suggests: ocl-icd-libopencl1 | mesa-opencl-icd | beignet-opencl-icd +Replaces: libreoffice-common (<< 1:5.4.1) +Breaks: libreoffice-common (<< 1:5.4.1) +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-impress +Architecture: alpha amd64 arm64 armel armhf hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el s390 s390x sparc sparc64 +Depends: libreoffice-core (= ${binary:Version}), + libreoffice-draw (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends} +Replaces: libreoffice-common (<< 1:5.4.1), libreoffice-ogltrans (<< 1:6.1.4-2~) +Conflicts: libreoffice-ogltrans (<< 1:6.1.4-2~) +Provides: libreoffice-ogltrans +Breaks: libreoffice-common (<< 1:5.4.1) +Recommends: ${avmedia-be-depends} +Suggests: bluez +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-draw +Architecture: alpha amd64 arm64 armel armhf hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el s390 s390x sparc sparc64 +Depends: libreoffice-core (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends} +Replaces: libreoffice-common (<< 1:5.4.1), libreoffice-impress (<< 1:5.2.0-2) +Breaks: libreoffice-common (<< 1:5.4.1), libreoffice-impress (<< 1:5.2.0-2) +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-math +Architecture: alpha amd64 arm64 armel armhf hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el s390 s390x sparc sparc64 +Depends: fonts-opensymbol, + libreoffice-core (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends} +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-base-core +Architecture: alpha amd64 arm64 armel armhf i386 ia64 m68k mips mipsel mips64el powerpc ppc64 ppc64el s390x sparc64 powerpcspe kfreebsd-amd64 kfreebsd-i386 +Depends: 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: alpha amd64 arm64 armel armhf i386 ia64 m68k mips mipsel mips64el powerpc ppc64 ppc64el s390x sparc64 powerpcspe kfreebsd-amd64 kfreebsd-i386 +Section: database +Depends: libreoffice-base-core (= ${binary:Version}), + libreoffice-base-drivers (= ${binary:Version}), + libreoffice-core (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends} +Suggests: libreoffice-report-builder, unixodbc +Recommends: libreoffice-writer, ${java-common-depends}, ${java-runtime-depends} +Replaces: libreoffice-common (<< 1:4.3.0~beta1) +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-style-breeze +Architecture: all +Enhances: libreoffice-core +Depends: libreoffice-style-tango, ${misc:Depends} +Suggests: breeze-icon-theme +Provides: libreoffice-style +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 +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-tango +Architecture: all +Enhances: libreoffice-core +Depends: ${misc:Depends} +Suggests: tango-icon-theme +Provides: libreoffice-style +Replaces: libreoffice-common (<= 1:4.3.0~beta2-2) +Description: office productivity suite -- Tango 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 "tango" symbol style. + +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 +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-tango, ${misc:Depends} +Enhances: libreoffice-core +Provides: libreoffice-style +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-gnome +Architecture: alpha amd64 arm64 armel armhf hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el s390 s390x sparc sparc64 +Depends: libreoffice-core (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends} +Recommends: libreoffice-style-elementary, ${gnome-gtk-recommends} +Suggests: libreoffice-evolution, seahorse +Section: gnome +Enhances: libreoffice +Provides: libreoffice-gtk-gnome +Replaces: libreoffice-gtk (<< 1:5.0.0~rc2-1) +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: alpha amd64 arm64 armel armhf hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el s390 s390x sparc sparc64 +Enhances: libreoffice +Depends: libreoffice-core (= ${binary:Version}), + ${misc:Depends}, + ${python3:Depends}, + ${shlibs:Depends} +Conflicts: python-uno +Replaces: libreoffice-common (<< 1:4.4.0~beta2), + libreoffice-core (= 1:4.3.0~beta1-1) +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-officebean +Architecture: alpha amd64 arm64 armel armhf i386 ia64 m68k mips mipsel mips64el powerpc ppc64 ppc64el s390x sparc64 powerpcspe kfreebsd-amd64 kfreebsd-i386 +Section: java +Depends: libreoffice-core (= ${binary:Version}), + ${java-common-depends}, + ${java-runtime-depends}, + ${java:Depends}, + ${misc:Depends}, + ${shlibs:Depends} +Description: office productivity suite -- Java bean + LibreOffice is a full-featured office productivity suite that provides + a near drop-in replacement for Microsoft(R) Office. + . + This package contains the LibreOffice Office Bean for embedding + LibreOffice in custom Java applications. + +Package: libreoffice-script-provider-python +Architecture: all +Section: python +Depends: libreoffice-common, + libreoffice-core, + ${misc:Depends}, + ${python:Depends}, + ${pyuno-depends} +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, + ${java-common-depends}, + ${java-runtime-depends}, + ${java:Depends}, + ${misc:Depends} +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, + ${java-common-depends}, + ${java-runtime-depends}, + ${java:Depends}, + ${misc:Depends} +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-avmedia-backend-gstreamer +Section: misc +Architecture: alpha amd64 arm64 armel armhf hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el s390 s390x sparc sparc64 +Depends: libreoffice-core, ${misc:Depends}, ${shlibs:Depends} +Recommends: gstreamer1.0-plugins-bad +Provides: libreoffice-avmedia-backend +Description: GStreamer backend for LibreOffice + LibreOffice is a full-featured office productivity suite that provides + a near drop-in replacement for Microsoft(R) Office. + . + This package contains a GStreamer backend for LibreOffices avmedia component + to play audio/video. + +Package: libreoffice-avmedia-backend-vlc +Section: misc +Architecture: alpha amd64 arm64 armel armhf hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el s390 s390x sparc sparc64 +Depends: libreoffice-core, ${libvlc-dep}, ${misc:Depends}, ${shlibs:Depends} +Provides: libreoffice-avmedia-backend +Description: VLC backend for LibreOffice + LibreOffice is a full-featured office productivity suite that provides + a near drop-in replacement for Microsoft(R) Office. + . + This package contains a VLC backend for LibreOffices avmedia component + to play audio/video. + +Package: libreoffice-sdbc-hsqldb +Depends: libreoffice-core, + ${java-common-depends}, + ${java-runtime-depends}, + ${java:Depends}, + ${misc:Depends}, + ${shlibs:Depends} +Architecture: alpha amd64 arm64 armel armhf i386 ia64 m68k mips mipsel mips64el powerpc ppc64 ppc64el s390x sparc64 powerpcspe kfreebsd-amd64 kfreebsd-i386 +Section: database +Enhances: libreoffice-base-drivers +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-base-drivers +Depends: libreoffice-core, ${misc:Depends}, ${shlibs:Depends} +Architecture: alpha amd64 arm64 armel armhf i386 ia64 m68k mips mipsel mips64el powerpc ppc64 ppc64el s390x sparc64 powerpcspe kfreebsd-amd64 kfreebsd-i386 +Section: database +Suggests: libjtds-java, + libreoffice-mysql-connector | libmyodbc | libmariadb-java, + libreoffice-sdbc-postgresql | odbc-postgresql | libpg-java, + libsqliteodbc | tdsodbc | mdbtools +Recommends: libreoffice-sdbc-hsqldb [alpha amd64 arm64 armel armhf i386 ia64 m68k mips mipsel mips64el powerpc ppc64 ppc64el s390x sparc64 powerpcspe kfreebsd-amd64 kfreebsd-i386], + ${base-firebird-recommends} +Replaces: libreoffice-base (<< 1:4.3.0-3) +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 + - MySQL + . + You can extend this by installing: + . + * unixodbc: ODBC database support + * libmyodbc | odbc-postgresql | libsqliteodbc | tdsodbc | 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-mysql-connector: "native" MySQL Connector + +Package: libreoffice-l10n-af +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-af | myspell-dictionary-af, + hyphen-af, + libreoffice-grammarcheck-af, + libreoffice-help-af, + mythes-af +Description: office productivity suite -- Afrikaans 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 + Afrikaans. + 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. + +Package: libreoffice-l10n-am +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-am | myspell-dictionary-am, + hyphen-am, + libreoffice-grammarcheck-am, + libreoffice-help-am, + mythes-am +Description: office productivity suite -- Amharic 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 + Amharic. + 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. + +Package: libreoffice-l10n-ar +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: fonts-hosny-amiri, + fonts-hosny-thabit, + fonts-kacst, + fonts-sil-scheherazade, + libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-ar | myspell-dictionary-ar, + hyphen-ar, + libreoffice-grammarcheck-ar, + libreoffice-help-ar, + mythes-ar +Description: office productivity suite -- Arabic 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 + Arabic. + 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. + +Package: libreoffice-l10n-as +Section: localization +Architecture: all +Depends: libreoffice-common, + locales (>= 2.3.6.ds1-1) | locales-all (>= 2.3.6.ds1-1), + ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-as | myspell-dictionary-as, + hyphen-as, + libreoffice-grammarcheck-as, + libreoffice-help-as, + mythes-as +Description: office productivity suite -- Assamese 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 + Assamese. + 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. + +Package: libreoffice-l10n-ast +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-ast | myspell-dictionary-ast, + hyphen-ast, + libreoffice-grammarcheck-ast, + libreoffice-help-ast, + mythes-ast +Description: office productivity suite -- Asturian 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 + Asturian. + 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. + +Package: libreoffice-l10n-be +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-be | myspell-dictionary-be, + hyphen-be, + libreoffice-grammarcheck-be, + libreoffice-help-be, + mythes-be +Description: office productivity suite -- Belarusian 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 + Belarusian. + 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. + +Package: libreoffice-l10n-bg +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-bg | myspell-dictionary-bg, + hyphen-bg, + libreoffice-grammarcheck-bg, + libreoffice-help-bg, + mythes-bg +Description: office productivity suite -- Bulgarian 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 + Bulgarian. + 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. + +Package: libreoffice-l10n-bn +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: fonts-beng, libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-bn | myspell-dictionary-bn, + hyphen-bn, + libreoffice-grammarcheck-bn, + libreoffice-help-bn, + mythes-bn +Description: office productivity suite -- Bengali 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 + Bengali. + 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. + +Package: libreoffice-l10n-br +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-br | myspell-dictionary-br, + hyphen-br, + libreoffice-grammarcheck-br, + libreoffice-help-br, + mythes-br +Description: office productivity suite -- Breton 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 + Breton. + 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. + +Package: libreoffice-l10n-bs +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-bs | myspell-dictionary-bs, + hyphen-bs, + libreoffice-grammarcheck-bs, + libreoffice-help-bs, + mythes-bs +Description: office productivity suite -- Bosnian 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 + Bosnian. + 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. + +Package: libreoffice-l10n-ca +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-ca | myspell-dictionary-ca, + hyphen-ca, + libreoffice-grammarcheck-ca, + libreoffice-help-ca, + mythes-ca +Description: office productivity suite -- Catalan 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 + Catalan. + 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. + +Package: libreoffice-l10n-cs +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-cs | myspell-dictionary-cs, + hyphen-cs, + libreoffice-grammarcheck-cs, + libreoffice-help-cs, + mythes-cs +Description: office productivity suite -- Czech 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 + Czech. + 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. + +Package: libreoffice-l10n-cy +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-cy | myspell-dictionary-cy, + hyphen-cy, + libreoffice-grammarcheck-cy, + libreoffice-help-cy, + mythes-cy +Description: office productivity suite -- Welsh 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 + Welsh. + 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. + +Package: libreoffice-l10n-da +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-da | myspell-dictionary-da, + hyphen-da, + libreoffice-grammarcheck-da, + libreoffice-help-da, + mythes-da +Description: office productivity suite -- Danish 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 + Danish. + 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. + +Package: libreoffice-l10n-de +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-de | myspell-dictionary-de, + hyphen-de, + libreoffice-grammarcheck-de, + libreoffice-help-de, + mythes-de +Description: office productivity suite -- German 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 + German. + 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. + +Package: libreoffice-l10n-dz +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: fonts-dzongkha, libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-dz | myspell-dictionary-dz, + hyphen-dz, + libreoffice-grammarcheck-dz, + libreoffice-help-dz, + mythes-dz +Description: office productivity suite -- Dzongkha 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 + Dzongkha. + 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. + +Package: libreoffice-l10n-el +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-el | myspell-dictionary-el, + hyphen-el, + libreoffice-grammarcheck-el, + libreoffice-help-el, + mythes-el +Description: office productivity suite -- Greek 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 + Greek. + 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. + +Package: libreoffice-l10n-en-gb +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-en-gb | myspell-dictionary-en-gb, + hyphen-en-gb, + libreoffice-grammarcheck-en-gb, + libreoffice-help-en-gb, + mythes-en-gb +Description: office productivity suite -- English_british 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 + English_british. + 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. + +Package: libreoffice-l10n-en-za +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-en-za | myspell-dictionary-en-za, + hyphen-en-za, + libreoffice-grammarcheck-en-za, + libreoffice-help-en-za, + mythes-en-za +Description: office productivity suite -- English_southafrican 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 + English_southafrican. + 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. + +Package: libreoffice-l10n-eo +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-eo | myspell-dictionary-eo, + hyphen-eo, + libreoffice-grammarcheck-eo, + libreoffice-help-eo, + mythes-eo +Description: office productivity suite -- Esperanto 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 + Esperanto. + 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. + +Package: libreoffice-l10n-es +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-es | myspell-dictionary-es, + hyphen-es, + libreoffice-grammarcheck-es, + libreoffice-help-es, + mythes-es +Description: office productivity suite -- Spanish 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 + Spanish. + 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. + +Package: libreoffice-l10n-et +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-et | myspell-dictionary-et, + hyphen-et, + libreoffice-grammarcheck-et, + libreoffice-help-et, + mythes-et +Description: office productivity suite -- Estonian 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 + Estonian. + 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. + +Package: libreoffice-l10n-eu +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-eu | myspell-dictionary-eu, + hyphen-eu, + libreoffice-grammarcheck-eu, + libreoffice-help-eu, + mythes-eu +Description: office productivity suite -- Basque 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 + Basque. + 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. + +Package: libreoffice-l10n-fa +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: fonts-farsiweb, libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-fa | myspell-dictionary-fa, + hyphen-fa, + libreoffice-grammarcheck-fa, + libreoffice-help-fa, + mythes-fa +Description: office productivity suite -- Farsi 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 + Farsi. + 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. + +Package: libreoffice-l10n-fi +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-fi | myspell-dictionary-fi | libreoffice-spellcheck-fi, + hyphen-fi | libreoffice-hyphenation-fi, + libreoffice-grammarcheck-fi, + libreoffice-help-fi, + mythes-fi +Description: office productivity suite -- Finnish 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 + Finnish. + 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. + +Package: libreoffice-l10n-fr +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-fr | myspell-dictionary-fr, + hyphen-fr, + libreoffice-grammarcheck-fr, + libreoffice-help-fr, + mythes-fr +Description: office productivity suite -- French 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 + French. + 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. + +Package: libreoffice-l10n-ga +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-ga | myspell-dictionary-ga, + hyphen-ga, + libreoffice-grammarcheck-ga, + libreoffice-help-ga, + mythes-ga +Description: office productivity suite -- Gaelic 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 + Gaelic. + 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. + +Package: libreoffice-l10n-gd +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-gd | myspell-dictionary-gd, + hyphen-gd, + libreoffice-grammarcheck-gd, + libreoffice-help-gd, + mythes-gd +Description: office productivity suite -- Scottish_gaelic 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 + Scottish_gaelic. + 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. + +Package: libreoffice-l10n-gl +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-gl | myspell-dictionary-gl, + hyphen-gl, + libreoffice-grammarcheck-gl, + libreoffice-help-gl, + mythes-gl +Description: office productivity suite -- Galician 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 + Galician. + 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. + +Package: libreoffice-l10n-gu +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: fonts-gujr, libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-gu | myspell-dictionary-gu, + hyphen-gu, + libreoffice-grammarcheck-gu, + libreoffice-help-gu, + mythes-gu +Description: office productivity suite -- Gujarati 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 + Gujarati. + 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. + +Package: libreoffice-l10n-gug +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-gug | myspell-dictionary-gug, + hyphen-gug, + libreoffice-grammarcheck-gug, + libreoffice-help-gug, + mythes-gug +Description: office productivity suite -- Guarani 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 + Guarani. + 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. + +Package: libreoffice-l10n-he +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: culmus, libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-he | myspell-dictionary-he, + hyphen-he, + libreoffice-grammarcheck-he, + libreoffice-help-he, + mythes-he +Description: office productivity suite -- Hebrew 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 + Hebrew. + 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. + +Package: libreoffice-l10n-hi +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-hi | myspell-dictionary-hi, + hyphen-hi, + libreoffice-grammarcheck-hi, + libreoffice-help-hi, + mythes-hi +Description: office productivity suite -- Hindi 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 + Hindi. + 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. + +Package: libreoffice-l10n-hr +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-hr | myspell-dictionary-hr, + hyphen-hr, + libreoffice-grammarcheck-hr, + libreoffice-help-hr, + mythes-hr +Description: office productivity suite -- Croatian 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 + Croatian. + 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. + +Package: libreoffice-l10n-hu +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-hu | myspell-dictionary-hu, + hyphen-hu, + libreoffice-grammarcheck-hu, + libreoffice-help-hu, + mythes-hu +Description: office productivity suite -- Hungarian 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 + Hungarian. + 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. + +Package: libreoffice-l10n-id +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-id | myspell-dictionary-id, + hyphen-id, + libreoffice-grammarcheck-id, + libreoffice-help-id, + mythes-id +Description: office productivity suite -- Indonesian 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 + Indonesian. + 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. + +Package: libreoffice-l10n-is +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-is | myspell-dictionary-is, + hyphen-is, + libreoffice-grammarcheck-is, + libreoffice-help-is, + mythes-is +Description: office productivity suite -- Icelandic 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 + Icelandic. + 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. + +Package: libreoffice-l10n-it +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-it | myspell-dictionary-it, + hyphen-it, + libreoffice-grammarcheck-it, + libreoffice-help-it, + mythes-it +Description: office productivity suite -- Italian 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 + Italian. + 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. + +Package: libreoffice-l10n-ja +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-ja | myspell-dictionary-ja, + hyphen-ja, + libreoffice-grammarcheck-ja, + libreoffice-help-ja, + mythes-ja +Description: office productivity suite -- Japanese 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 + Japanese. + 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. + +Package: libreoffice-l10n-ka +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-ka | myspell-dictionary-ka, + hyphen-ka, + libreoffice-grammarcheck-ka, + libreoffice-help-ka, + mythes-ka +Description: office productivity suite -- Georgian 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 + Georgian. + 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. + +Package: libreoffice-l10n-kk +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-kk | myspell-dictionary-kk, + hyphen-kk, + libreoffice-grammarcheck-kk, + libreoffice-help-kk, + mythes-kk +Description: office productivity suite -- Kazakh 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 + Kazakh. + 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. + +Package: libreoffice-l10n-km +Section: localization +Architecture: all +Depends: libreoffice-common, + locales (>= 2.3.5-12) | locales-all, + ${misc:Depends} +Recommends: fonts-khmeros, libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-km | myspell-dictionary-km, + hyphen-km, + libreoffice-grammarcheck-km, + libreoffice-help-km, + mythes-km +Description: office productivity suite -- Khmer 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 + Khmer. + 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. + +Package: libreoffice-l10n-kmr +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-kmr | myspell-dictionary-kmr, + hyphen-kmr, + libreoffice-grammarcheck-kmr, + libreoffice-help-kmr, + mythes-kmr +Description: office productivity suite -- Kurmanji 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 + Kurmanji. + 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. + +Package: libreoffice-l10n-kn +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-kn | myspell-dictionary-kn, + hyphen-kn, + libreoffice-grammarcheck-kn, + libreoffice-help-kn, + mythes-kn +Description: office productivity suite -- Kannada 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 + Kannada. + 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. + +Package: libreoffice-l10n-ko +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-ko | myspell-dictionary-ko, + hyphen-ko, + libreoffice-grammarcheck-ko, + libreoffice-help-ko, + mythes-ko +Description: office productivity suite -- Korean 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 + Korean. + 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. + +Package: libreoffice-l10n-lt +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-lt | myspell-dictionary-lt, + hyphen-lt, + libreoffice-grammarcheck-lt, + libreoffice-help-lt, + mythes-lt +Description: office productivity suite -- Lithuanian 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 + Lithuanian. + 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. + +Package: libreoffice-l10n-lv +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-lv | myspell-dictionary-lv, + hyphen-lv, + libreoffice-grammarcheck-lv, + libreoffice-help-lv, + mythes-lv +Description: office productivity suite -- Latvian 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 + Latvian. + 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. + +Package: libreoffice-l10n-mk +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-mk | myspell-dictionary-mk, + hyphen-mk, + libreoffice-grammarcheck-mk, + libreoffice-help-mk, + mythes-mk +Description: office productivity suite -- Macedonian 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 + Macedonian. + 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. + +Package: libreoffice-l10n-mn +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-mn | myspell-dictionary-mn, + hyphen-mn, + libreoffice-grammarcheck-mn, + libreoffice-help-mn, + mythes-mn +Description: office productivity suite -- Mongolian 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 + Mongolian. + 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. + +Package: libreoffice-l10n-ml +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: fonts-mlym, libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-ml | myspell-dictionary-ml, + hyphen-ml, + libreoffice-grammarcheck-ml, + libreoffice-help-ml, + mythes-ml +Description: office productivity suite -- Malayalam 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 + Malayalam. + 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. + +Package: libreoffice-l10n-mr +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: fonts-deva, libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-mr | myspell-dictionary-mr, + hyphen-mr, + libreoffice-grammarcheck-mr, + libreoffice-help-mr, + mythes-mr +Description: office productivity suite -- Marathi 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 + Marathi. + 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. + +Package: libreoffice-l10n-nb +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-nb | myspell-dictionary-nb, + hyphen-nb, + libreoffice-grammarcheck-nb, + libreoffice-help-nb, + mythes-nb +Description: office productivity suite -- Norwegian 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 + Norwegian. + 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. + +Package: libreoffice-l10n-ne +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: fonts-deva, libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-ne | myspell-dictionary-ne, + hyphen-ne, + libreoffice-grammarcheck-ne, + libreoffice-help-ne, + mythes-ne +Description: office productivity suite -- Nepalese 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 + Nepalese. + 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. + +Package: libreoffice-l10n-nl +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-nl | myspell-dictionary-nl, + hyphen-nl, + libreoffice-grammarcheck-nl, + libreoffice-help-nl, + mythes-nl +Description: office productivity suite -- Dutch 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 + Dutch. + 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. + +Package: libreoffice-l10n-nn +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-nn | myspell-dictionary-nn, + hyphen-nn, + libreoffice-grammarcheck-nn, + libreoffice-help-nn, + mythes-nn +Description: office productivity suite -- Norwegian_nynorsk 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 + Norwegian_nynorsk. + 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. + +Package: libreoffice-l10n-nr +Section: localization +Architecture: all +Depends: libreoffice-common, + locales (>= 2.3.6.ds1-1) | locales-all (>= 2.3.6.ds1-1), + ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-nr | myspell-dictionary-nr, + hyphen-nr, + libreoffice-grammarcheck-nr, + libreoffice-help-nr, + mythes-nr +Description: office productivity suite -- Ndebele 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 + Ndebele. + 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. + +Package: libreoffice-l10n-nso +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-nso | myspell-dictionary-nso, + hyphen-nso, + libreoffice-grammarcheck-nso, + libreoffice-help-nso, + mythes-nso +Description: office productivity suite -- Northern_sotho 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 + Northern_sotho. + 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. + +Package: libreoffice-l10n-oc +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-oc | myspell-dictionary-oc, + hyphen-oc, + libreoffice-grammarcheck-oc, + libreoffice-help-oc, + mythes-oc +Description: office productivity suite -- Occitan 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 + Occitan. + 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. + +Package: libreoffice-l10n-om +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-om | myspell-dictionary-om, + hyphen-om, + libreoffice-grammarcheck-om, + libreoffice-help-om, + mythes-om +Description: office productivity suite -- Oromo 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 + Oromo. + 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. + +Package: libreoffice-l10n-or +Section: localization +Architecture: all +Depends: libreoffice-common, + locales (>= 2.3.6.ds1-1) | locales-all (>= 2.3.6.ds1-1), + ${misc:Depends} +Recommends: fonts-orya, libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-or | myspell-dictionary-or, + hyphen-or, + libreoffice-grammarcheck-or, + libreoffice-help-or, + mythes-or +Description: office productivity suite -- Odia 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 + Odia. + 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. + +Package: libreoffice-l10n-pa-in +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: fonts-guru, libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-pa-in | myspell-dictionary-pa-in, + hyphen-pa-in, + libreoffice-grammarcheck-pa-in, + libreoffice-help-pa-in, + mythes-pa-in +Description: office productivity suite -- Punjabi 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 + Punjabi. + 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. + +Package: libreoffice-l10n-pl +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-pl | myspell-dictionary-pl, + hyphen-pl, + libreoffice-grammarcheck-pl, + libreoffice-help-pl, + mythes-pl +Description: office productivity suite -- Polish 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 + Polish. + 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. + +Package: libreoffice-l10n-pt +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-pt | myspell-dictionary-pt, + hyphen-pt, + libreoffice-grammarcheck-pt, + libreoffice-help-pt, + mythes-pt +Description: office productivity suite -- Portuguese 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 + Portuguese. + 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. + +Package: libreoffice-l10n-pt-br +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-pt-br | myspell-dictionary-pt-br, + hyphen-pt-br, + libreoffice-grammarcheck-pt-br, + libreoffice-help-pt-br, + mythes-pt-br +Description: office productivity suite -- Portuguese_brazilian 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 + Portuguese_brazilian. + 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. + +Package: libreoffice-l10n-ro +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-ro | myspell-dictionary-ro, + hyphen-ro, + libreoffice-grammarcheck-ro, + libreoffice-help-ro, + mythes-ro +Description: office productivity suite -- Romanian 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 + Romanian. + 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. + +Package: libreoffice-l10n-ru +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-ru | myspell-dictionary-ru, + hyphen-ru, + libreoffice-grammarcheck-ru, + libreoffice-help-ru, + mythes-ru +Description: office productivity suite -- Russian 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 + Russian. + 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. + +Package: libreoffice-l10n-rw +Section: localization +Architecture: all +Depends: libreoffice-common, + locales (>= 2.3.6) | locales-all (>= 2.3.6), + ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-rw | myspell-dictionary-rw, + hyphen-rw, + libreoffice-grammarcheck-rw, + libreoffice-help-rw, + mythes-rw +Description: office productivity suite -- Kinarwanda 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 + Kinarwanda. + 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. + +Package: libreoffice-l10n-si +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-si | myspell-dictionary-si, + hyphen-si, + libreoffice-grammarcheck-si, + libreoffice-help-si, + mythes-si +Description: office productivity suite -- Sinhala 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 + Sinhala. + 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. + +Package: libreoffice-l10n-sk +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-sk | myspell-dictionary-sk, + hyphen-sk, + libreoffice-grammarcheck-sk, + libreoffice-help-sk, + mythes-sk +Description: office productivity suite -- Slovak 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 + Slovak. + 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. + +Package: libreoffice-l10n-sl +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-sl | myspell-dictionary-sl, + hyphen-sl, + libreoffice-grammarcheck-sl, + libreoffice-help-sl, + mythes-sl +Description: office productivity suite -- Slovenian 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 + Slovenian. + 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. + +Package: libreoffice-l10n-sr +Section: localization +Architecture: all +Depends: libreoffice-common, + locales (>= 2.3.6.ds1-5) | locales-all, + ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-sr | myspell-dictionary-sr, + hyphen-sr, + libreoffice-grammarcheck-sr, + libreoffice-help-sr, + mythes-sr +Description: office productivity suite -- Serbian 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 + Serbian. + 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. + +Package: libreoffice-l10n-ss +Section: localization +Architecture: all +Depends: libreoffice-common, + locales (>= 2.3.5-12) | locales-all, + ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-ss | myspell-dictionary-ss, + hyphen-ss, + libreoffice-grammarcheck-ss, + libreoffice-help-ss, + mythes-ss +Description: office productivity suite -- Swazi 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 + Swazi. + 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. + +Package: libreoffice-l10n-st +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-st | myspell-dictionary-st, + hyphen-st, + libreoffice-grammarcheck-st, + libreoffice-help-st, + mythes-st +Description: office productivity suite -- Southern_sotho 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 + Southern_sotho. + 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. + +Package: libreoffice-l10n-sv +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-sv | myspell-dictionary-sv, + hyphen-sv, + libreoffice-grammarcheck-sv, + libreoffice-help-sv, + mythes-sv +Description: office productivity suite -- Swedish 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 + Swedish. + 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. + +Package: libreoffice-l10n-ta +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: fonts-taml, libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-ta | myspell-dictionary-ta, + hyphen-ta, + libreoffice-grammarcheck-ta, + libreoffice-help-ta, + mythes-ta +Description: office productivity suite -- Tamil 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 + Tamil. + 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. + +Package: libreoffice-l10n-te +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: fonts-telu, libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-te | myspell-dictionary-te, + hyphen-te, + libreoffice-grammarcheck-te, + libreoffice-help-te, + mythes-te +Description: office productivity suite -- Telugu 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 + Telugu. + 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. + +Package: libreoffice-l10n-tg +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-tg | myspell-dictionary-tg, + hyphen-tg, + libreoffice-grammarcheck-tg, + libreoffice-help-tg, + mythes-tg +Description: office productivity suite -- Tajik 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 + Tajik. + 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. + +Package: libreoffice-l10n-th +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: fonts-thai-tlwg, libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-th | myspell-dictionary-th, + hyphen-th, + libreoffice-grammarcheck-th, + libreoffice-help-th, + mythes-th +Description: office productivity suite -- Thai 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 + Thai. + 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. + +Package: libreoffice-l10n-tn +Section: localization +Architecture: all +Depends: libreoffice-common, + locales (>= 2.3.5-12) | locales-all, + ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-tn | myspell-dictionary-tn, + hyphen-tn, + libreoffice-grammarcheck-tn, + libreoffice-help-tn, + mythes-tn +Description: office productivity suite -- Tswana 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 + Tswana. + 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. + +Package: libreoffice-l10n-tr +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-tr | myspell-dictionary-tr, + hyphen-tr, + libreoffice-grammarcheck-tr, + libreoffice-help-tr, + mythes-tr +Description: office productivity suite -- Turkish 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 + Turkish. + 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. + +Package: libreoffice-l10n-ts +Section: localization +Architecture: all +Depends: libreoffice-common, + locales (>= 2.3.5-12) | locales-all, + ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-ts | myspell-dictionary-ts, + hyphen-ts, + libreoffice-grammarcheck-ts, + libreoffice-help-ts, + mythes-ts +Description: office productivity suite -- Tsonga 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 + Tsonga. + 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. + +Package: libreoffice-l10n-ug +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-ug | myspell-dictionary-ug, + hyphen-ug, + libreoffice-grammarcheck-ug, + libreoffice-help-ug, + mythes-ug +Description: office productivity suite -- Uighur 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 + Uighur. + 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. + +Package: libreoffice-l10n-uk +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-uk | myspell-dictionary-uk, + hyphen-uk, + libreoffice-grammarcheck-uk, + libreoffice-help-uk, + mythes-uk +Description: office productivity suite -- Ukrainian 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 + Ukrainian. + 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. + +Package: libreoffice-l10n-uz +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-uz | myspell-dictionary-uz, + hyphen-uz, + libreoffice-grammarcheck-uz, + libreoffice-help-uz, + mythes-uz +Description: office productivity suite -- Uzbek 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 + Uzbek. + 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. + +Package: libreoffice-l10n-ve +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-ve | myspell-dictionary-ve, + hyphen-ve, + libreoffice-grammarcheck-ve, + libreoffice-help-ve, + mythes-ve +Description: office productivity suite -- Venda 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 + Venda. + 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. + +Package: libreoffice-l10n-vi +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-vi | myspell-dictionary-vi, + hyphen-vi, + libreoffice-grammarcheck-vi, + libreoffice-help-vi, + mythes-vi +Description: office productivity suite -- Vietnamese 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 + Vietnamese. + 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. + +Package: libreoffice-l10n-xh +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-xh | myspell-dictionary-xh, + hyphen-xh, + libreoffice-grammarcheck-xh, + libreoffice-help-xh, + mythes-xh +Description: office productivity suite -- Xhosa 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 + Xhosa. + 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. + +Package: libreoffice-l10n-zh-cn +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-zh-cn | myspell-dictionary-zh-cn, + hyphen-zh-cn, + libreoffice-grammarcheck-zh-cn, + libreoffice-help-zh-cn, + mythes-zh-cn +Description: office productivity suite -- Chinese_simplified 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 + Chinese_simplified. + 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. + +Package: libreoffice-l10n-zh-tw +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-zh-tw | myspell-dictionary-zh-tw, + hyphen-zh-tw, + libreoffice-grammarcheck-zh-tw, + libreoffice-help-zh-tw, + mythes-zh-tw +Description: office productivity suite -- Chinese_traditional 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 + Chinese_traditional. + 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. + +Package: libreoffice-l10n-zu +Section: localization +Architecture: all +Depends: libreoffice-common, locales | locales-all, ${misc:Depends} +Recommends: libreoffice-core (>> ${base-version}) +Provides: libreoffice-l10n (= ${help-l10n-virtual-version}) +Suggests: hunspell-dictionary-zu | myspell-dictionary-zu, + hyphen-zu, + libreoffice-grammarcheck-zu, + libreoffice-help-zu, + mythes-zu +Description: office productivity suite -- Zulu 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 + Zulu. + 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. + +Package: libreoffice-help-en-us +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-en-us, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- English_american 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 + English_american. + +Package: libreoffice-help-ca +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-ca, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- Catalan 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 + Catalan. + +Package: libreoffice-help-cs +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-cs, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- Czech 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 + Czech. + +Package: libreoffice-help-da +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-da, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- Danish 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 + Danish. + +Package: libreoffice-help-de +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-de, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- German 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 + German. + +Package: libreoffice-help-dz +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-dz, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- Dzongkha 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 + Dzongkha. + +Package: libreoffice-help-el +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-el, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- Greek 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 + Greek. + +Package: libreoffice-help-en-gb +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-en-gb, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- English_british 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 + English_british. + +Package: libreoffice-help-es +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-es, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- Spanish 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 + Spanish. + +Package: libreoffice-help-et +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-et, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- Estonian 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 + Estonian. + +Package: libreoffice-help-eu +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-eu, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- Basque 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 + Basque. + +Package: libreoffice-help-fi +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-fi, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- Finnish 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 + Finnish. + +Package: libreoffice-help-fr +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-fr, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- French 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 + French. + +Package: libreoffice-help-gl +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-gl, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- Galician 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 + Galician. + +Package: libreoffice-help-hi +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-hi, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- Hindi 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 + Hindi. + +Package: libreoffice-help-hu +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-hu, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- Hungarian 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 + Hungarian. + +Package: libreoffice-help-it +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-it, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- Italian 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 + Italian. + +Package: libreoffice-help-ja +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-ja, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- Japanese 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 + Japanese. + +Package: libreoffice-help-km +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-km, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- Khmer 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 + Khmer. + +Package: libreoffice-help-ko +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-ko, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- Korean 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 + Korean. + +Package: libreoffice-help-nl +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-nl, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- Dutch 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 + Dutch. + +Package: libreoffice-help-om +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-om, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- Oromo 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 + Oromo. + +Package: libreoffice-help-pl +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-pl, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- Polish 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 + Polish. + +Package: libreoffice-help-pt +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-pt, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- Portuguese 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 + Portuguese. + +Package: libreoffice-help-pt-br +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-pt-br, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- Portuguese_brazilian 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 + Portuguese_brazilian. + +Package: libreoffice-help-ru +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-ru, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- Russian 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 + Russian. + +Package: libreoffice-help-sk +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-help-cs, + libreoffice-l10n-sk, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- Slovak 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 + Slovak. + +Package: libreoffice-help-sl +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-sl, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- Slovenian 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 + Slovenian. + +Package: libreoffice-help-sv +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-sv, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- Swedish 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 + Swedish. + +Package: libreoffice-help-tr +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-tr, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- Turkish 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 + Turkish. + +Package: libreoffice-help-vi +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-vi, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- Vietnamese 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 + Vietnamese. + +Package: libreoffice-help-zh-cn +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-zh-cn, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- Chinese_simplified 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 + Chinese_simplified. + +Package: libreoffice-help-zh-tw +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +Depends: libreoffice-common (>= 1:6.1.0~), + libreoffice-l10n-zh-tw, + ${help-depends}, + ${misc:Depends} +Provides: libreoffice-help (= ${help-l10n-virtual-version}) +Replaces: libreoffice-help-common (<< 1:6.1.0~beta1) +Description: office productivity suite -- Chinese_traditional 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 + Chinese_traditional. + +Package: uno-libs3 +Section: libs +Architecture: alpha amd64 arm64 armel armhf hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el s390 s390x sparc sparc64 +Depends: ${misc:Depends}, ${shlibs:Depends} +Replaces: ure (<< 1:5.0.0~rc2-1) +Breaks: libreoffice-core (<< 1:4.3.0~) +Description: LibreOffice UNO runtime environment -- public shared libraries + 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 public libraries: + - libuno_sal: System Abstraction Layer (C Interface) + - libuno_salhelpergcc3: additional C++ functionality for sal + - libuno_cppu: C++ UNO bridge (C Interface) + - libuno_cppuhelpergcc3: additional C++ functionality for cppu + - libuno_purpenvhelpergcc3: "purpose environments" helper + +Package: ure +Section: libs +Architecture: alpha amd64 arm64 armel armhf hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el s390 s390x sparc sparc64 +Depends: uno-libs3 (= ${ure:Version}), ${misc:Depends}, ${shlibs:Depends} +Suggests: java5-runtime +Replaces: libreoffice-common (<< 1:4.5.0), libreoffice-core (<< 1:5.3.0~beta1~) +Breaks: libreoffice-common (<< 1:4.5.0), libreoffice-core (<< 1:5.3.0~beta1~) +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: libreoffice-wiki-publisher +Section: misc +Architecture: all +Depends: libreoffice-core, + ${java-common-depends}, + ${java-runtime-depends}, + ${java:Depends}, + ${misc:Depends} +Enhances: libreoffice-writer +Suggests: mediawiki +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 +Homepage: http://extensions.services.openoffice.org/project/wikipublisher + +Package: libreoffice-report-builder +Section: misc +Architecture: all +Depends: libreoffice-core, + libreoffice-java-common, + libreoffice-report-builder-bin (>= ${base-version}), + ${java:Depends}, + ${misc:Depends}, + ${report-builder-jar-depends} +Provides: libreoffice-reportdesigner +Enhances: libreoffice-base +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: alpha amd64 arm64 armel armhf i386 ia64 m68k mips mipsel mips64el powerpc ppc64 ppc64el s390x sparc64 powerpcspe kfreebsd-amd64 kfreebsd-i386 +Depends: libreoffice-base, libreoffice-core, ${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-nlpsolver +Architecture: all +Depends: libreoffice-calc, + libreoffice-core, + ${java-common-depends}, + ${java-runtime-depends}, + ${misc:Depends} +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. + +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 + +Package: libreoffice-dev +Section: devel +Architecture: alpha amd64 arm64 armel armhf hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el s390 s390x sparc sparc64 +Depends: libreoffice-core (= ${binary:Version}), + libreoffice-dev-common (= ${source:Version}), + ${idlc-cpp-depends}, + ${misc:Depends}, + ${shlibs:Depends} +Recommends: g++, ${java-common-depends}, ${java-runtime-depends} +Suggests: libmythes-dev, libreoffice-dev-doc, libreofficekit-dev +Replaces: libreoffice-dev-common (<< 1:5.4.1~) +Conflicts: libreoffice (<< 1:5.2.5-2~), libreoffice-dev-doc (<< 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, ...). + . + It also contains the gengal and ui-previewer utilities. + +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: libreoffice (<< 1:5.2.5-2~), + libreoffice-dev (<= 1:5.0.3~rc1-2), + openoffice.org-dev-doc +Build-Profiles: +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 + +Package: libreofficekit-dev +Section: libdevel +Architecture: alpha amd64 arm64 armel armhf hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el s390 s390x sparc sparc64 +Depends: gir1.2-lokdocview-0.1 (= ${binary:Version}), ${misc:Depends} +Suggests: libgtk-3-dev +Recommends: libreoffice-core, libreofficekit-data +Replaces: gir1.2-lokdocview-0.1 (<< 1:5.4.0~rc1) +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. + +Package: libreoffice-gtk2 +Architecture: alpha amd64 arm64 armel armhf hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el s390 s390x sparc sparc64 +Depends: libreoffice-core (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends} +Section: gnome +Enhances: libreoffice +Replaces: libreoffice-gtk (<< 1:5.2.0~) +Breaks: libreoffice-gtk (<< 1:5.2.0~) +Description: office productivity suite -- GTK+ 2 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+ 2 and a Gtk/GNOMEish File Picker and print dialog when running + under GNOME. + +Package: libreoffice-gtk3 +Architecture: alpha amd64 arm64 armel armhf hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el s390 s390x sparc sparc64 +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: alpha amd64 arm64 armel armhf hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el s390 s390x sparc sparc64 +Section: introspection +Depends: liblibreofficekitgtk (= ${binary:Version}), + ${gir:Depends}, + ${misc:Depends} +Description: GTK3 widget wrapping LibreOffice functionality - introspection + LOKDocView is the GTK3 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: alpha amd64 arm64 armel armhf hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el s390 s390x sparc sparc64 +Depends: libreofficekit-data, ${misc:Depends}, ${shlibs:Depends} +Replaces: libreoffice-gtk3 (<< 1:5.2.0~) +Breaks: libreoffice-gtk3 (<< 1:5.2.0~) +Recommends: libreoffice-gtk3 +Description: GTK3 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 GTK3 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). + +Package: libreoffice-kde5 +Architecture: alpha amd64 arm64 armel armhf hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el s390 s390x sparc sparc64 +Depends: libreoffice-core (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends} +Recommends: ${kde-iconset-dep} +Replaces: libreoffice-kde (<< 1:6.1.0~alpha1-1) +Section: kde +Enhances: libreoffice +Description: office productivity suite -- KDE 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 KDE plugin for LibreOffice and a KDEish File Picker + when running under KDE. + +Package: libreoffice-sdbc-postgresql +Section: misc +Architecture: alpha amd64 arm64 armel armhf i386 ia64 m68k mips mipsel mips64el powerpc ppc64 ppc64el s390x sparc64 powerpcspe kfreebsd-amd64 kfreebsd-i386 +Depends: libreoffice-core, ${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 + +Package: libreoffice-mysql-connector +Section: misc +Architecture: alpha amd64 arm64 armel armhf i386 ia64 m68k mips mipsel mips64el powerpc ppc64 ppc64el s390x sparc64 powerpcspe kfreebsd-amd64 kfreebsd-i386 +Depends: libreoffice-core, ${misc:Depends}, ${shlibs:Depends} +Suggests: default-mysql-server | virtual-mysql-server +Homepage: http://extensions.services.openoffice.org/en/project/mysql_connector +Description: MariaDB/MySQL Connector extension for LibreOffice + LibreOffice is a full-featured office productivity suite that provides + a near drop-in replacement for Microsoft(R) Office. + . + The MariaDB/MySQL Connector extension allows one to use the MariaDB or MySQL + database from LibreOffice without any wrapper layer such as ODBC or JDBC. + +Package: libreoffice-evolution +Architecture: alpha amd64 arm64 armel armhf i386 ia64 m68k mips mipsel mips64el powerpc ppc64 ppc64el s390x sparc64 powerpcspe kfreebsd-amd64 kfreebsd-i386 +Section: gnome +Depends: libreoffice-base, + libreoffice-common, + libreoffice-core (= ${binary:Version}), + ${libebook-dep}, + ${misc:Depends}, + ${shlibs:Depends} +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. + +Package: libreoffice-subsequentcheckbase +Section: libs +Architecture: all +Depends: ${java:Depends}, ${misc:Depends} +Build-Profiles: +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: +Description: data files for LibreOffices "smoketest" + Data files for the LibreOffice "smoketest". + +Package: libreoffice-librelogo +Section: misc +Architecture: all +Depends: libreoffice-core, + libreoffice-script-provider-python, + libreoffice-writer, + ${misc:Depends} +Homepage: http://librelogo.org +Description: Logo-like progamming 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 progamming + 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 + +Package: libreoffice-sdbc-firebird +Depends: libreoffice-core, + ${firebird-engine-depends}, + ${misc:Depends}, + ${shlibs:Depends} +Architecture: alpha amd64 arm64 armel armhf i386 ia64 m68k mips mipsel mips64el powerpc ppc64 ppc64el s390x sparc64 powerpcspe kfreebsd-amd64 kfreebsd-i386 +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. + +Package: libreoffice-pdfimport +Section: oldlibs +Architecture: all +Depends: libreoffice-common (>= 1:5.4~), + libreoffice-core (>= 1:5.4~), + ${misc:Depends} +Description: transitional package for PDF Import component for LibreOffice + LibreOffice is a full-featured office productivity suite that provides + a near drop-in replacement for Microsoft(R) Office. + . + This package formerly contained a component enabling LibreOffice to import PDF + Documents. This now has been merged back into the "main" packages and this + package thus can be safely removed once installed. + +Package: libreoffice-kde +Section: oldlibs +Architecture: all +Depends: libreoffice-kde5, ${misc:Depends} +Description: transitional package for LibreOffice KDE integration + This package used to contain the LibreOffice KDE 4 backend. The package has + been renamed to libreoffice-kdeX and this package now depends on the new + libreoffice-kde5 packages. + . + You can safely remove this package. + +Package: libreoffice-ogltrans +Section: oldlibs +Architecture: all +Depends: libreoffice-impress (>= 1:6.1.4-2~), ${misc:Depends} +Description: transitional package for libreoffice-ogltrans + This package used to contain the OpenGL slide transitions for LibreOffice + Impress. + That has been merged into libreoffice-impress directly and thus this package + can be safely removed. + diff --git a/debian/control.evolution.in b/debian/control.evolution.in new file mode 100644 index 00000000000..23244bee912 --- /dev/null +++ b/debian/control.evolution.in @@ -0,0 +1,17 @@ +Package: libreoffice-evolution +Architecture: %OOO_BASE_ARCHS% +Section: gnome +Depends: libreoffice-base, + libreoffice-common, + libreoffice-core (= ${binary:Version}), + ${libebook-dep}, + ${misc:Depends}, + ${shlibs:Depends} +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 index 00000000000..16c3763730b --- /dev/null +++ b/debian/control.firebird.in @@ -0,0 +1,12 @@ +Package: libreoffice-sdbc-firebird +Depends: 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 index 00000000000..f52165d404c --- /dev/null +++ b/debian/control.fonts.in @@ -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.gtk2.in b/debian/control.gtk2.in new file mode 100644 index 00000000000..13e4542a040 --- /dev/null +++ b/debian/control.gtk2.in @@ -0,0 +1,17 @@ +Package: libreoffice-gtk2 +Architecture: %OOO_ARCHS% +Depends: libreoffice-core (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends} +Section: gnome +Enhances: libreoffice +Replaces: libreoffice-gtk (<< 1:5.2.0~) +Breaks: libreoffice-gtk (<< 1:5.2.0~) +Description: office productivity suite -- GTK+ 2 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+ 2 and a Gtk/GNOMEish File Picker and print dialog when running + under GNOME. + diff --git a/debian/control.gtk3.in b/debian/control.gtk3.in new file mode 100644 index 00000000000..6dd26771630 --- /dev/null +++ b/debian/control.gtk3.in @@ -0,0 +1,49 @@ +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 +Depends: ${gir:Depends}, ${misc:Depends}, liblibreofficekitgtk (= ${binary:Version}) +Description: GTK3 widget wrapping LibreOffice functionality - introspection + LOKDocView is the GTK3 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: GTK3 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 GTK3 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.help.in b/debian/control.help.in new file mode 100644 index 00000000000..faf21928d16 --- /dev/null +++ b/debian/control.help.in @@ -0,0 +1,17 @@ +Package: libreoffice-help-@LCODE@ +Architecture: all +Section: doc +Recommends: libreoffice-core (>> ${base-version}) +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.1.0~beta1) +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 index 00000000000..04fecab67a7 --- /dev/null +++ b/debian/control.in @@ -0,0 +1,623 @@ +Source: libreoffice +Section: editors +Priority: optional +Maintainer: Debian LibreOffice Maintainers +Uploaders: Rene Engelhard , Chris Halls +Build-Depends: %BUILD_DEPS%, +Build-Depends-Indep: %BUILD_DEPS_INDEP% +Build-Conflicts: nvidia-glx-dev, + nvidia-glx-legacy-dev, + amd-libopencl1, + nvidia-libopencl1 +Standards-Version: 4.0.1 +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, + ${avmedia-be-depends}, + ${misc:Depends}, + ${pyuno-depends} +Recommends: ${java-common-depends}, + fonts-sil-gentium-basic, + fonts-crosextra-caladea, + fonts-crosextra-carlito, + fonts-dejavu, + fonts-liberation, + fonts-liberation2, + fonts-linuxlibertine, + fonts-noto-mono, + libreoffice-script-provider-bsh, + libreoffice-script-provider-js, + libreoffice-script-provider-python, + libreoffice-librelogo, + libreoffice-nlpsolver, + libreoffice-report-builder%OOO_NO_REPORTBUILDER_ARCHS%, + libreoffice-wiki-publisher, + 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, + openclipart2-libreoffice | openclipart-libreoffice, + pstoedit, + unixodbc, + gnupg, + gpa, + ${gstreamer-plugins-suggests}, + ${java-runtime-depends}, + ${ooo-officebean-dep}, + %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-9-jre | openjdk-8-jre | openjdk-7-jre | java6-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-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-ml, + libreoffice-l10n-mr, + 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, + libreoffice-common (>> ${base-version}), + ure (>= 6.1.1~), + ${misc:Depends}, + ${shlibs:Depends} +Recommends: libpaper-utils +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-kde4 (<< ${binary:Version}), + libreoffice-kde5 (<< ${binary:Version}), + libreoffice-officebean (<< ${binary:Version}), + libreoffice-writer (<< ${binary:Version}), + browser-plugin-libreoffice, + libreoffice-pdfimport (<< 1:5.4~), + libreoffice-common (<< 1:5.4.1) +Conflicts: libreoffice-filter-binfilter, libreoffice-unbundled +Provides: libreoffice-bundled +Replaces: libreoffice-pdfimport (<< 1:5.4~), libreoffice-common (<< 1:5.4.1) +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-common +Architecture: all +Depends: libreoffice-style-colibre, libreoffice-style-tango, ure, ${numbertext-data-recommends}, ${misc:Depends} +Suggests: libreoffice-style, +Recommends: ${pyuno-depends}, ${textcat-data-recommends}, xdg-utils, fonts-liberation2 | ttf-mscorefonts-installer +Conflicts: openoffice-unbundled, + broffice, + libreoffice-filter-mobiledev, + libreoffice-l10n-4.3, + libreoffice-l10n-4.4, + libreoffice-wiki-publisher (<< 1.2.0+LibO5.4.0~rc2) +Provides: libreoffice-l10n-en-us +Breaks: libreoffice-core (<< 1:${oover}~), + libreoffice-help-5.2, + libreoffice-help (<< 5.4), + libreoffice-core (>= 1:${next-oover}~), + libreoffice-style-andromeda (<< 1:${oover}~), + libreoffice-style-crystal (<< 1:${oover}~), + libreoffice-style-crystal (>= 1:${next-oover}~), + libreoffice-style-galaxy (<< 1:${oover}~), + libreoffice-style-galaxy (>= 1:${next-oover}~), + libreoffice-style-hicontrast (<< 1:${oover}~), + libreoffice-style-hicontrast (>= 1:${next-oover}~), + libreoffice-style-tango (<< 1:${oover}~), + libreoffice-style-tango (>= 1:${next-oover}~), + libreoffice-writer2latex (<< 1.0.2-9), + libreoffice-writer2xhtml (<< 1.0.2-9) +Replaces: libreoffice-pdfimport (<< 1:5.4~) +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, ${java:Depends}, ${misc:Depends} +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 (<< 1:6.1.0~alpha1-1) +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}), + ${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:5.4.1) +Breaks: libreoffice-common (<< 1:5.4.1) +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-calc +Architecture: %OOO_ARCHS% +Depends: libreoffice-base-core (= ${binary:Version})%OOO_NO_BASE_ARCHS%, + libreoffice-core (= ${binary:Version}), + ${lpsolve-dep}, + ${misc:Depends}, + ${shlibs:Depends} +Suggests: ocl-icd-libopencl1 | mesa-opencl-icd | beignet-opencl-icd +Replaces: libreoffice-common (<< 1:5.4.1) +Breaks: libreoffice-common (<< 1:5.4.1) +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-impress +Architecture: %OOO_ARCHS% +Depends: libreoffice-core (= ${binary:Version}), + libreoffice-draw (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends} +Replaces: libreoffice-common (<< 1:5.4.1), libreoffice-ogltrans (<< 1:6.1.4-2~) +Conflicts: libreoffice-ogltrans (<< 1:6.1.4-2~) +Provides: libreoffice-ogltrans +Breaks: libreoffice-common (<< 1:5.4.1) +Recommends: ${avmedia-be-depends} +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-draw +Architecture: %OOO_ARCHS% +Depends: libreoffice-core (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends} +Replaces: libreoffice-impress (<< 1:5.2.0-2), libreoffice-common (<< 1:5.4.1) +Breaks: libreoffice-impress (<< 1:5.2.0-2), libreoffice-common (<< 1:5.4.1) +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-math +Architecture: %OOO_ARCHS% +Depends: fonts-opensymbol, + libreoffice-core (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends} +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-base-core +Architecture: %OOO_BASE_ARCHS% +Depends: 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}), + ${misc:Depends}, + ${shlibs:Depends} +Suggests: libreoffice-report-builder, + unixodbc +Recommends: libreoffice-writer, ${java-common-depends}, ${java-runtime-depends} +Replaces: libreoffice-common (<< 1:4.3.0~beta1) +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-style-breeze +Architecture: all +Enhances: libreoffice-core +Depends: libreoffice-style-tango, ${misc:Depends} +Suggests: breeze-icon-theme +Provides: libreoffice-style +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 +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-tango +Architecture: all +Enhances: libreoffice-core +Depends: ${misc:Depends} +Suggests: tango-icon-theme +Provides: libreoffice-style +Replaces: libreoffice-common (<= 1:4.3.0~beta2-2) +Description: office productivity suite -- Tango 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 "tango" symbol style. + +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 +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-tango, ${misc:Depends} +Enhances: libreoffice-core +Provides: libreoffice-style +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-gnome +Architecture: %OOO_ARCHS% +Depends: libreoffice-core (= ${binary:Version}), + ${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) +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 (= ${binary:Version}), + ${misc:Depends}, + ${python3:Depends}, + ${shlibs:Depends} +Conflicts: python-uno +Replaces: libreoffice-core (= 1:4.3.0~beta1-1), libreoffice-common (<< 1:4.4.0~beta2) +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-officebean +Architecture: %OOO_JAVA_ARCHS% +Section: java +Depends: libreoffice-core (= ${binary:Version}), + ${java-common-depends}, + ${java-runtime-depends}, + ${java:Depends}, + ${misc:Depends}, + ${shlibs:Depends} +Description: office productivity suite -- Java bean + LibreOffice is a full-featured office productivity suite that provides + a near drop-in replacement for Microsoft(R) Office. + . + This package contains the LibreOffice Office Bean for embedding + LibreOffice in custom Java applications. + +Package: libreoffice-script-provider-python +Architecture: all +Section: python +Depends: libreoffice-common, + libreoffice-core, + ${misc:Depends}, + ${python:Depends}, + ${pyuno-depends} +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, + ${java-common-depends}, + ${java:Depends}, + ${java-runtime-depends}, + ${misc:Depends} +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, + ${java-common-depends}, + ${java:Depends}, + ${java-runtime-depends}, + ${misc:Depends} +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-avmedia-backend-gstreamer +Section: misc +Architecture: %OOO_ARCHS% +Depends: libreoffice-core, ${misc:Depends}, ${shlibs:Depends} +Recommends: gstreamer1.0-plugins-bad +Provides: libreoffice-avmedia-backend +Description: GStreamer backend for LibreOffice + LibreOffice is a full-featured office productivity suite that provides + a near drop-in replacement for Microsoft(R) Office. + . + This package contains a GStreamer backend for LibreOffices avmedia component + to play audio/video. + +Package: libreoffice-avmedia-backend-vlc +Section: misc +Architecture: %OOO_ARCHS% +Depends: libreoffice-core, ${misc:Depends}, ${shlibs:Depends}, ${libvlc-dep} +Provides: libreoffice-avmedia-backend +Description: VLC backend for LibreOffice + LibreOffice is a full-featured office productivity suite that provides + a near drop-in replacement for Microsoft(R) Office. + . + This package contains a VLC backend for LibreOffices avmedia component + to play audio/video. + +Package: libreoffice-sdbc-hsqldb +Depends: libreoffice-core, ${java-common-depends}, ${java:Depends}, ${java-runtime-depends}, ${shlibs:Depends}, ${misc:Depends} +Architecture: %OOO_JAVA_ARCHS% +Section: database +Enhances: libreoffice-base-drivers +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-base-drivers +Depends: libreoffice-core, ${shlibs:Depends}, ${misc:Depends} +Architecture: %OOO_BASE_ARCHS% +Section: database +Suggests: libreoffice-sdbc-postgresql | odbc-postgresql | libpg-java, + libreoffice-mysql-connector | libmyodbc | libmariadb-java, + libsqliteodbc | tdsodbc | mdbtools, + libjtds-java, +Recommends: libreoffice-sdbc-hsqldb [%OOO_JAVA_ARCHS%], ${base-firebird-recommends} +Replaces: libreoffice-base (<< 1:4.3.0-3) +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 + - MySQL + . + You can extend this by installing: + . + * unixodbc: ODBC database support + * libmyodbc | odbc-postgresql | libsqliteodbc | tdsodbc | 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-mysql-connector: "native" MySQL Connector + diff --git a/debian/control.kde4.in b/debian/control.kde4.in new file mode 100644 index 00000000000..438d2241dd9 --- /dev/null +++ b/debian/control.kde4.in @@ -0,0 +1,21 @@ +Package: libreoffice-kde4 +Architecture: %OOO_ARCHS% +Depends: libreoffice-core (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends} +Recommends: ${kde-iconset-dep} +Suggests: kmail, konqueror, kleopatra | kgpg +Replaces: libreoffice-kde (<< 1:6.1.0~alpha1-1) +Section: kde +Enhances: libreoffice +Replaces: libreoffice-core (= 1:4.3.0~beta1-1) +Description: office productivity suite -- KDE 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 KDE plugin for drawing LibreOffices widgets with + KDE/Qt and a KDEish File Picker when running under KDE. + You can extend the functionality of this by installing these packages: + . + * konqueror / kmail + diff --git a/debian/control.kde5.in b/debian/control.kde5.in new file mode 100644 index 00000000000..061db1597ad --- /dev/null +++ b/debian/control.kde5.in @@ -0,0 +1,16 @@ +Package: libreoffice-kde5 +Architecture: %OOO_ARCHS% +Depends: libreoffice-core (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends} +Recommends: ${kde-iconset-dep} +Replaces: libreoffice-kde (<< 1:6.1.0~alpha1-1) +Section: kde +Enhances: libreoffice +Description: office productivity suite -- KDE 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 KDE plugin for LibreOffice and a KDEish File Picker + when running under KDE. + diff --git a/debian/control.lang.in b/debian/control.lang.in new file mode 100644 index 00000000000..cd05d9ec618 --- /dev/null +++ b/debian/control.lang.in @@ -0,0 +1,29 @@ +Package: libreoffice-l10n-@LCODE@ +Section: localization +Architecture: all +Depends: libreoffice-common, ${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@, + hyphen-@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 index 00000000000..8c65b738e6b --- /dev/null +++ b/debian/control.librelogo.in @@ -0,0 +1,20 @@ +Package: libreoffice-librelogo +Section: misc +Architecture: all +Depends: libreoffice-core, + libreoffice-writer, + libreoffice-script-provider-python, + ${misc:Depends} +Homepage: http://librelogo.org +Description: Logo-like progamming 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 progamming + 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 index 00000000000..59dfd57c26f --- /dev/null +++ b/debian/control.lokit.in @@ -0,0 +1,16 @@ +Package: libreofficekit-dev +Section: libdevel +Architecture: %OOO_ARCHS% +Depends: ${misc: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) +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 index 00000000000..8cbcd4d00f0 --- /dev/null +++ b/debian/control.mediawiki.in @@ -0,0 +1,18 @@ +Package: libreoffice-wiki-publisher +Section: misc +Architecture: all +Depends: libreoffice-core, + ${java-common-depends}, + ${java:Depends}, + ${java-runtime-depends}, + ${misc:Depends} +Enhances: libreoffice-writer +Suggests: mediawiki +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 +Homepage: http://extensions.services.openoffice.org/project/wikipublisher + diff --git a/debian/control.mysql.in b/debian/control.mysql.in new file mode 100644 index 00000000000..7d67aaf545f --- /dev/null +++ b/debian/control.mysql.in @@ -0,0 +1,13 @@ +Package: libreoffice-mysql-connector +Section: misc +Architecture: %OOO_BASE_ARCHS% +Depends: libreoffice-core, ${misc:Depends}, ${shlibs:Depends} +Suggests: default-mysql-server | virtual-mysql-server +Homepage: http://extensions.services.openoffice.org/en/project/mysql_connector +Description: MariaDB/MySQL Connector extension for LibreOffice + LibreOffice is a full-featured office productivity suite that provides + a near drop-in replacement for Microsoft(R) Office. + . + The MariaDB/MySQL Connector extension allows one to use the MariaDB or MySQL + database from LibreOffice without any wrapper layer such as ODBC or JDBC. + diff --git a/debian/control.nlpsolver.in b/debian/control.nlpsolver.in new file mode 100644 index 00000000000..ce34ba09ef5 --- /dev/null +++ b/debian/control.nlpsolver.in @@ -0,0 +1,14 @@ +Package: libreoffice-nlpsolver +Architecture: all +Depends: ${misc:Depends}, libreoffice-calc, libreoffice-core, ${java-common-depends}, ${java-runtime-depends} +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.postgresql.in b/debian/control.postgresql.in new file mode 100644 index 00000000000..2421530d131 --- /dev/null +++ b/debian/control.postgresql.in @@ -0,0 +1,16 @@ +Package: libreoffice-sdbc-postgresql +Section: misc +Architecture: %OOO_BASE_ARCHS% +Depends: libreoffice-core, + ${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 index 00000000000..3337094712f --- /dev/null +++ b/debian/control.qt5.in @@ -0,0 +1,13 @@ +Package: libreoffice-qt5 +Architecture: %OOO_64BIT_ARCHS% +Depends: libreoffice-core (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends} +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. + diff --git a/debian/control.reportbuilder.in b/debian/control.reportbuilder.in new file mode 100644 index 00000000000..055b0a66673 --- /dev/null +++ b/debian/control.reportbuilder.in @@ -0,0 +1,35 @@ +Package: libreoffice-report-builder +Section: misc +Architecture: all +Depends: libreoffice-core, + libreoffice-java-common, + libreoffice-report-builder-bin (>= ${base-version}), + ${java:Depends}, + ${misc:Depends}, + ${report-builder-jar-depends} +Provides: libreoffice-reportdesigner +Enhances: libreoffice-base +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. + diff --git a/debian/control.sdk.in b/debian/control.sdk.in new file mode 100644 index 00000000000..b1490280efc --- /dev/null +++ b/debian/control.sdk.in @@ -0,0 +1,55 @@ +Package: libreoffice-dev +Section: devel +Architecture: %OOO_ARCHS% +Depends: libreoffice-core (= ${binary:Version}), + libreoffice-dev-common (= ${source:Version}), + ${idlc-cpp-depends}, + ${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, ...). + . + It also contains the gengal and ui-previewer utilities. + +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: +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 index 00000000000..90235114599 --- /dev/null +++ b/debian/control.test-packages.in @@ -0,0 +1,16 @@ +Package: libreoffice-subsequentcheckbase +Section: libs +Architecture: all +Depends: ${java:Depends}, ${misc:Depends} +Build-Profiles: +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: +Description: data files for LibreOffices "smoketest" + Data files for the LibreOffice "smoketest". + diff --git a/debian/control.transitionals.in b/debian/control.transitionals.in new file mode 100644 index 00000000000..501e0657415 --- /dev/null +++ b/debian/control.transitionals.in @@ -0,0 +1,33 @@ +Package: libreoffice-pdfimport +Section: oldlibs +Architecture: all +Depends: libreoffice-core (>= 1:5.4~), libreoffice-common (>= 1:5.4~), ${misc:Depends} +Description: transitional package for PDF Import component for LibreOffice + LibreOffice is a full-featured office productivity suite that provides + a near drop-in replacement for Microsoft(R) Office. + . + This package formerly contained a component enabling LibreOffice to import PDF + Documents. This now has been merged back into the "main" packages and this + package thus can be safely removed once installed. + +Package: libreoffice-kde +Section: oldlibs +Architecture: all +Depends: libreoffice-kde5, ${misc:Depends} +Description: transitional package for LibreOffice KDE integration + This package used to contain the LibreOffice KDE 4 backend. The package has + been renamed to libreoffice-kdeX and this package now depends on the new + libreoffice-kde5 packages. + . + You can safely remove this package. + +Package: libreoffice-ogltrans +Section: oldlibs +Architecture: all +Depends: libreoffice-impress (>= 1:6.1.4-2~), ${misc:Depends} +Description: transitional package for libreoffice-ogltrans + This package used to contain the OpenGL slide transitions for LibreOffice + Impress. + That has been merged into libreoffice-impress directly and thus this package + can be safely removed. + diff --git a/debian/control.ure.in b/debian/control.ure.in new file mode 100644 index 00000000000..1d47bdee218 --- /dev/null +++ b/debian/control.ure.in @@ -0,0 +1,40 @@ +Package: uno-libs3 +Section: libs +Architecture: %OOO_ARCHS% +Depends: ${misc:Depends}, ${shlibs:Depends} +Replaces: ure (<< 1:5.0.0~rc2-1) +Breaks: libreoffice-core (<< 1:4.3.0~) +Description: LibreOffice UNO runtime environment -- public shared libraries + 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 public libraries: + - libuno_sal: System Abstraction Layer (C Interface) + - libuno_salhelpergcc3: additional C++ functionality for sal + - libuno_cppu: C++ UNO bridge (C Interface) + - libuno_cppuhelpergcc3: additional C++ functionality for cppu + - libuno_purpenvhelpergcc3: "purpose environments" helper + +Package: ure +Section: libs +Architecture: %OOO_ARCHS% +Depends: uno-libs3 (= ${ure:Version}), ${misc:Depends}, ${shlibs:Depends} +Suggests: java5-runtime +Replaces: libreoffice-common (<< 1:4.5.0), libreoffice-core (<< 1:5.3.0~beta1~) +Breaks: libreoffice-core (<< 1:5.3.0~beta1~), libreoffice-common (<< 1:4.5.0) +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. + diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 00000000000..b62f95ec2ca --- /dev/null +++ b/debian/copyright @@ -0,0 +1,254 @@ +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 +# 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: icon-themes/breeze*/* +Copyright: Copyright 2014 Uri Herrera + Copyright 2015 Andreas Kainz and other contributors +License: GPL-2+ + +Files: icon-themes/sifr*/* +Copyright: Jakub Steiner + Lapo Calamandrei + Hylke Bons + Barbara Muraus + Issa Alkurtass + Norah Abanumay + Copyright 2017-2018 Matthias Freund +License: CC-BY-SA-3.0 + +Files: icon-themes/tango*/* +Copyright: Alexander Wilms and Miroslav Mazel +License: CC-BY-SA-3.0 + +Files: icon-themes/tango*/cmd/lc_crop.png +Copyright: Copyright 2014 by Daniel Foré +License: GPL-2+ + +Files: icon_themes/elementary*/* +Copyright: Copyright 2015 by Simon Steinbeiss , Pasi Lallinaho +License: GPL-3+ + +Files: icon-themes/colibre*/* +Copyright: Copyright 2018 Andreas Kainz +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 +License: LGPL-3+ + +Files: helpcontent2/help3xsl/fuse.js +Copyright: Copyright (c) 2012-2017 Kirollos Risk (http://kiro.me) +License: Apache-2.0 + +Files: helpcontent2/help3xsl/paginathing.js +Copyright: (C) 2018 Alfred Crosby +License: Expat + +Files: helpcontent2/help3xsl/normalize.css +Copyright: Copyright © Nicolas Gallagher and Jonathan Neal +License: Expat + +Files: debian/* +Copyright: Copyright (C) 2002-2009 Software in the Public Interest, Inc. +License: GPL-2 + +Files: debian/scripts/get_ttf_version.pl +Copyright: Copyright (C) 2015 Software in the Public Interest, Inc. +License: MPL-2.0 + +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: 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. + +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/liblibreofficekitgtk.links b/debian/liblibreofficekitgtk.links new file mode 100644 index 00000000000..c8017de61d1 --- /dev/null +++ b/debian/liblibreofficekitgtk.links @@ -0,0 +1 @@ +usr/lib/libreoffice/program/liblibreofficekitgtk.so usr/lib/liblibreofficekitgtk.so diff --git a/debian/libreoffice-base-drivers.NEWS b/debian/libreoffice-base-drivers.NEWS new file mode 100644 index 00000000000..0a0b922f8f2 --- /dev/null +++ b/debian/libreoffice-base-drivers.NEWS @@ -0,0 +1,14 @@ +libreoffice (1:6.1.3-2) 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 Fri, 16 Nov 2018 19:35:22 +0100 diff --git a/debian/libreoffice-base.NEWS b/debian/libreoffice-base.NEWS new file mode 100644 index 00000000000..b7a30f1a0e0 --- /dev/null +++ b/debian/libreoffice-base.NEWS @@ -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 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 index 00000000000..31f42c1f1f7 --- /dev/null +++ b/debian/libreoffice-base.bug-control @@ -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 index 00000000000..d1500e8d835 --- /dev/null +++ b/debian/libreoffice-base.lintian-overrides @@ -0,0 +1 @@ +libreoffice-base: desktop-command-not-in-package usr/share/applications/libreoffice-base.desktop libreoffice diff --git a/debian/libreoffice-base.manpages b/debian/libreoffice-base.manpages new file mode 100644 index 00000000000..144eec74763 --- /dev/null +++ b/debian/libreoffice-base.manpages @@ -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 index 00000000000..ce16f8016b8 --- /dev/null +++ b/debian/libreoffice-base.mime @@ -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.postrm.in b/debian/libreoffice-base.postrm.in new file mode 100644 index 00000000000..d17df159b6e --- /dev/null +++ b/debian/libreoffice-base.postrm.in @@ -0,0 +1,26 @@ +#!/bin/sh + +set -e + +#INCLUDE_SHELL_LIB# + +if [ "$1" = remove -o "$1" = abort-install -o "$1" = disappear ]; then + dpkg-divert --remove --rename \ + --divert /usr/lib/libreoffice/share/basic/dialog.xlc.noaccess \ + /usr/lib/libreoffice/share/basic/dialog.xlc + dpkg-divert --remove --rename \ + --divert /usr/lib/libreoffice/share/basic/script.xlc.noaccess \ + /usr/lib/libreoffice/share/basic/script.xlc +fi +if [ "$1" = abort-upgrade ] && dpkg --compare-versions "$2" lt 1:4.3.0~beta1-1; then + dpkg-divert --remove --rename \ + --divert /usr/lib/libreoffice/share/basic/dialog.xlc.noaccess \ + /usr/lib/libreoffice/share/basic/dialog.xlc + dpkg-divert --remove --rename \ + --divert /usr/lib/libreoffice/share/basic/script.xlc.noaccess \ + /usr/lib/libreoffice/share/basic/script.xlc +fi + +#DEBHELPER# + +exit 0 diff --git a/debian/libreoffice-base.preinst.in b/debian/libreoffice-base.preinst.in new file mode 100644 index 00000000000..2d5fcc159d0 --- /dev/null +++ b/debian/libreoffice-base.preinst.in @@ -0,0 +1,18 @@ +#!/bin/sh + +set -e + +#INCLUDE_SHELL_LIB# + +if [ upgrade != "$1" ] || dpkg --compare-versions "$2" lt 1:4.3.0~beta1-1; then + dpkg-divert --add --rename \ + --divert /usr/lib/libreoffice/share/basic/dialog.xlc.noaccess \ + /usr/lib/libreoffice/share/basic/dialog.xlc + dpkg-divert --add --rename \ + --divert /usr/lib/libreoffice/share/basic/script.xlc.noaccess \ + /usr/lib/libreoffice/share/basic/script.xlc +fi + +#DEBHELPER# + +exit 0 diff --git a/debian/libreoffice-calc.bug-control b/debian/libreoffice-calc.bug-control new file mode 100644 index 00000000000..1ac405f9788 --- /dev/null +++ b/debian/libreoffice-calc.bug-control @@ -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 index 00000000000..004fc535988 --- /dev/null +++ b/debian/libreoffice-calc.lintian-overrides @@ -0,0 +1,2 @@ +libreoffice-calc: binary-or-shlib-defines-rpath +libreoffice-calc: desktop-command-not-in-package usr/share/applications/libreoffice-calc.desktop libreoffice diff --git a/debian/libreoffice-calc.manpages b/debian/libreoffice-calc.manpages new file mode 100644 index 00000000000..a4b78ee3406 --- /dev/null +++ b/debian/libreoffice-calc.manpages @@ -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 index 00000000000..4528b17d35d --- /dev/null +++ b/debian/libreoffice-calc.mime @@ -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-common.bug-control b/debian/libreoffice-common.bug-control new file mode 100644 index 00000000000..38da481c1f2 --- /dev/null +++ b/debian/libreoffice-common.bug-control @@ -0,0 +1 @@ +report-with: python-uno python3-uno diff --git a/debian/libreoffice-common.links.in b/debian/libreoffice-common.links.in new file mode 100644 index 00000000000..be8c18d1c5e --- /dev/null +++ b/debian/libreoffice-common.links.in @@ -0,0 +1,36 @@ +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 diff --git a/debian/libreoffice-common.lintian-overrides b/debian/libreoffice-common.lintian-overrides new file mode 100644 index 00000000000..efdaf3d980c --- /dev/null +++ b/debian/libreoffice-common.lintian-overrides @@ -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 index 00000000000..0c3e87dc2dc --- /dev/null +++ b/debian/libreoffice-common.maintscript @@ -0,0 +1,5 @@ +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 + diff --git a/debian/libreoffice-common.manpages b/debian/libreoffice-common.manpages new file mode 100644 index 00000000000..37ce2e86511 --- /dev/null +++ b/debian/libreoffice-common.manpages @@ -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 index 00000000000..ea024a9432e --- /dev/null +++ b/debian/libreoffice-common.postinst.in @@ -0,0 +1,29 @@ +#!/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# + diff --git a/debian/libreoffice-common.postrm.in b/debian/libreoffice-common.postrm.in new file mode 100644 index 00000000000..c4471b59176 --- /dev/null +++ b/debian/libreoffice-common.postrm.in @@ -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.triggers.in b/debian/libreoffice-common.triggers.in new file mode 100644 index 00000000000..274301752fe --- /dev/null +++ b/debian/libreoffice-common.triggers.in @@ -0,0 +1,2 @@ +interest-noawait /@OODIR@/share/extensions +interest-noawait /@OODIR@ diff --git a/debian/libreoffice-core.bug-control b/debian/libreoffice-core.bug-control new file mode 100644 index 00000000000..97439bdec60 --- /dev/null +++ b/debian/libreoffice-core.bug-control @@ -0,0 +1,2 @@ +report-with: libreoffice-common libreoffice-java-common fonts-opensymbol +package-status: libxrender1 libxinerama1 libsane iceweasel firefox icedove iceape-browser libreoffice-filter-binfilter 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 index 00000000000..9300ef4b3dd --- /dev/null +++ b/debian/libreoffice-core.bug-script.in @@ -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-gtk2 libreoffice-gtk3 libreoffice-kde5 >&3 diff --git a/debian/libreoffice-core.lintian-overrides b/debian/libreoffice-core.lintian-overrides new file mode 100644 index 00000000000..3a4d1d8b84d --- /dev/null +++ b/debian/libreoffice-core.lintian-overrides @@ -0,0 +1 @@ +libreoffice-core: embedded-library usr/lib/libreoffice/program/libpdfiumlo.so: openjpeg diff --git a/debian/libreoffice-core.postrm.in b/debian/libreoffice-core.postrm.in new file mode 100755 index 00000000000..95ed9cb4f46 --- /dev/null +++ b/debian/libreoffice-core.postrm.in @@ -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-doc.links b/debian/libreoffice-dev-doc.links new file mode 100644 index 00000000000..7e6fd17fba7 --- /dev/null +++ b/debian/libreoffice-dev-doc.links @@ -0,0 +1 @@ +usr/share/doc/libreoffice/sdk/docs usr/share/doc/libreoffice-dev-doc/api diff --git a/debian/libreoffice-dev.lintian-overrides b/debian/libreoffice-dev.lintian-overrides new file mode 100644 index 00000000000..f1338bb4535 --- /dev/null +++ b/debian/libreoffice-dev.lintian-overrides @@ -0,0 +1 @@ +libreoffice-dev: wrong-section-according-to-package-name libreoffice-dev => libdevel diff --git a/debian/libreoffice-draw.bug-control b/debian/libreoffice-draw.bug-control new file mode 100644 index 00000000000..1ac405f9788 --- /dev/null +++ b/debian/libreoffice-draw.bug-control @@ -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 index 00000000000..12588b54def --- /dev/null +++ b/debian/libreoffice-draw.lintian-overrides @@ -0,0 +1 @@ +libreoffice-draw: desktop-command-not-in-package usr/share/applications/libreoffice-draw.desktop libreoffice diff --git a/debian/libreoffice-draw.manpages b/debian/libreoffice-draw.manpages new file mode 100644 index 00000000000..3267e53d6e2 --- /dev/null +++ b/debian/libreoffice-draw.manpages @@ -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 index 00000000000..e960d67b574 --- /dev/null +++ b/debian/libreoffice-draw.mime @@ -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-evolution.bug-control b/debian/libreoffice-evolution.bug-control new file mode 100644 index 00000000000..aa427dea40d --- /dev/null +++ b/debian/libreoffice-evolution.bug-control @@ -0,0 +1 @@ +report-with: libreoffice-core evolution libreoffice-base diff --git a/debian/libreoffice-gtk2.lintian-overrides b/debian/libreoffice-gtk2.lintian-overrides new file mode 100644 index 00000000000..9c0dd9eb166 --- /dev/null +++ b/debian/libreoffice-gtk2.lintian-overrides @@ -0,0 +1 @@ +libreoffice-gtk2: binary-or-shlib-defines-rpath diff --git a/debian/libreoffice-help-common.links b/debian/libreoffice-help-common.links new file mode 100644 index 00000000000..48ab2acd4ce --- /dev/null +++ b/debian/libreoffice-help-common.links @@ -0,0 +1 @@ +/usr/share/javascript/normalize.css/normalize.css usr/share/libreoffice/help/normalize.css diff --git a/debian/libreoffice-help.doc-base.in b/debian/libreoffice-help.doc-base.in new file mode 100644 index 00000000000..870af5cfe43 --- /dev/null +++ b/debian/libreoffice-help.doc-base.in @@ -0,0 +1,7 @@ +Document: libreoffice-help-@LCODE@ +Title: LibreOffice Help (@HELPISO@) +Author: The Document Foundation +Section: Office + +Format: HTML +Index: /usr/share/libreoffice/help/@HELPISO@/text/shared/main0108.html diff --git a/debian/libreoffice-help.lintian-overrides.in b/debian/libreoffice-help.lintian-overrides.in new file mode 100644 index 00000000000..17fde6dd126 --- /dev/null +++ b/debian/libreoffice-help.lintian-overrides.in @@ -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.bug-control b/debian/libreoffice-impress.bug-control new file mode 100644 index 00000000000..a3a052e7da4 --- /dev/null +++ b/debian/libreoffice-impress.bug-control @@ -0,0 +1 @@ +report-with: libreoffice-core libreoffice-draw diff --git a/debian/libreoffice-impress.lintian-overrides b/debian/libreoffice-impress.lintian-overrides new file mode 100644 index 00000000000..5df0b376ef9 --- /dev/null +++ b/debian/libreoffice-impress.lintian-overrides @@ -0,0 +1 @@ +libreoffice-impress: desktop-command-not-in-package usr/share/applications/libreoffice-impress.desktop libreoffice diff --git a/debian/libreoffice-impress.manpages b/debian/libreoffice-impress.manpages new file mode 100644 index 00000000000..60ab514ba8f --- /dev/null +++ b/debian/libreoffice-impress.manpages @@ -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 index 00000000000..fe758783e6f --- /dev/null +++ b/debian/libreoffice-impress.mime @@ -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-java-common.poms b/debian/libreoffice-java-common.poms new file mode 100644 index 00000000000..fcc4eec6e4c --- /dev/null +++ b/debian/libreoffice-java-common.poms @@ -0,0 +1,28 @@ +# List of POM files for the package +# Format of this file is: +# [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 tag from the POM +# --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=: a list of XML elements to keep in the POM +# during a clean operation with mh_cleanpom or mh_installpom +# --artifact=: 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 to use when installing the library in /usr/share/java +# --usj-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=: the destination for the real jar. +# It will be installed with mh_install. [mh_install] +# --classifier=: Optional, the classifier for the jar. Empty by default. +# --site-xml=: Optional, the location for site.xml if it needs to be installed. +# Empty by default. [mh_install] +# +debian/pom.unoil.xml --no-parent --has-package-version diff --git a/debian/libreoffice-l10n-in.lintian-overrides b/debian/libreoffice-l10n-in.lintian-overrides new file mode 100644 index 00000000000..5b67277e05e --- /dev/null +++ b/debian/libreoffice-l10n-in.lintian-overrides @@ -0,0 +1,2 @@ +# this is a metapackage, so actually "metapackages" is correct, IMHO +libreoffice-l10n-in: wrong-section-according-to-package-name libreoffice-l10n-in => localization diff --git a/debian/libreoffice-l10n-za.lintian-overrides b/debian/libreoffice-l10n-za.lintian-overrides new file mode 100644 index 00000000000..3c1bc8861b3 --- /dev/null +++ b/debian/libreoffice-l10n-za.lintian-overrides @@ -0,0 +1,2 @@ +# this is a metapackage, so actually "metapackages" is correct, IMHO +libreoffice-l10n-za: wrong-section-according-to-package-name libreoffice-l10n-za => localization diff --git a/debian/libreoffice-math.bug-control b/debian/libreoffice-math.bug-control new file mode 100644 index 00000000000..1ac405f9788 --- /dev/null +++ b/debian/libreoffice-math.bug-control @@ -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 index 00000000000..bf3665b50c3 --- /dev/null +++ b/debian/libreoffice-math.lintian-overrides @@ -0,0 +1 @@ +libreoffice-math: desktop-command-not-in-package usr/share/applications/libreoffice-math.desktop libreoffice diff --git a/debian/libreoffice-math.manpages b/debian/libreoffice-math.manpages new file mode 100644 index 00000000000..6798b1e6b4e --- /dev/null +++ b/debian/libreoffice-math.manpages @@ -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 index 00000000000..c9eee478bb3 --- /dev/null +++ b/debian/libreoffice-math.mime @@ -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-mysql-connector.bug-script.in b/debian/libreoffice-mysql-connector.bug-script.in new file mode 100755 index 00000000000..1ce804830f7 --- /dev/null +++ b/debian/libreoffice-mysql-connector.bug-script.in @@ -0,0 +1,2 @@ +#!/bin/sh +/usr/lib/libreoffice/program/unopkg list --bundled com.sun.star.mysql-connector-ooo-@PLATFORMID@ >&3 diff --git a/debian/libreoffice-nlpsolver.lintian-overrides b/debian/libreoffice-nlpsolver.lintian-overrides new file mode 100644 index 00000000000..447d371403f --- /dev/null +++ b/debian/libreoffice-nlpsolver.lintian-overrides @@ -0,0 +1 @@ +libreoffice-nlpsolver: jar-not-in-usr-share usr/lib/libreoffice/share/extensions/nlpsolver/help/*/help.jar diff --git a/debian/libreoffice-officebean.bug-control b/debian/libreoffice-officebean.bug-control new file mode 100644 index 00000000000..1ac405f9788 --- /dev/null +++ b/debian/libreoffice-officebean.bug-control @@ -0,0 +1 @@ +report-with: libreoffice-core diff --git a/debian/libreoffice-officebean.poms b/debian/libreoffice-officebean.poms new file mode 100644 index 00000000000..36e613aa9ae --- /dev/null +++ b/debian/libreoffice-officebean.poms @@ -0,0 +1,28 @@ +# List of POM files for the package +# Format of this file is: +# [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 tag from the POM +# --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=: a list of XML elements to keep in the POM +# during a clean operation with mh_cleanpom or mh_installpom +# --artifact=: 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 to use when installing the library in /usr/share/java +# --usj-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=: the destination for the real jar. +# It will be installed with mh_install. [mh_install] +# --classifier=: Optional, the classifier for the jar. Empty by default. +# --site-xml=: 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-ogltrans.bug-control b/debian/libreoffice-ogltrans.bug-control new file mode 100644 index 00000000000..4df26c74c91 --- /dev/null +++ b/debian/libreoffice-ogltrans.bug-control @@ -0,0 +1 @@ +report-with: libreoffice-impress fglrx-glx ia32-fglrx-glx nvidia-glx nvidia-glx-legacy diff --git a/debian/libreoffice-report-builder.bug-control b/debian/libreoffice-report-builder.bug-control new file mode 100644 index 00000000000..48ef942e313 --- /dev/null +++ b/debian/libreoffice-report-builder.bug-control @@ -0,0 +1 @@ +report-with: libreoffice-base diff --git a/debian/libreoffice-script-provider-python.bug-control b/debian/libreoffice-script-provider-python.bug-control new file mode 100644 index 00000000000..38da481c1f2 --- /dev/null +++ b/debian/libreoffice-script-provider-python.bug-control @@ -0,0 +1 @@ +report-with: python-uno python3-uno diff --git a/debian/libreoffice-sdbc-firebird.NEWS b/debian/libreoffice-sdbc-firebird.NEWS new file mode 100644 index 00000000000..00d810308fa --- /dev/null +++ b/debian/libreoffice-sdbc-firebird.NEWS @@ -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 Mon, 28 Nov 2016 10:27:15 +0200 diff --git a/debian/libreoffice-sdbc-firebird.maintscript b/debian/libreoffice-sdbc-firebird.maintscript new file mode 100644 index 00000000000..8421fc63eb9 --- /dev/null +++ b/debian/libreoffice-sdbc-firebird.maintscript @@ -0,0 +1 @@ +dir_to_symlink /usr/share/doc/libreoffice-sdbc-firebird /usr/share/doc/libreoffice-core 1:5.4.3~rc1-3~ diff --git a/debian/libreoffice-wiki-publisher.bug-script.in b/debian/libreoffice-wiki-publisher.bug-script.in new file mode 100755 index 00000000000..9497e5ca079 --- /dev/null +++ b/debian/libreoffice-wiki-publisher.bug-script.in @@ -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 index 00000000000..82dc8202233 --- /dev/null +++ b/debian/libreoffice-wiki-publisher.lintian-overrides @@ -0,0 +1 @@ +libreoffice-wiki-publisher: jar-not-in-usr-share usr/lib/libreoffice/share/extensions/wiki-publisher/help/*/help.jar diff --git a/debian/libreoffice-writer.bug-control b/debian/libreoffice-writer.bug-control new file mode 100644 index 00000000000..1ac405f9788 --- /dev/null +++ b/debian/libreoffice-writer.bug-control @@ -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 index 00000000000..08563077e14 --- /dev/null +++ b/debian/libreoffice-writer.lintian-overrides @@ -0,0 +1 @@ +libreoffice-writer: desktop-command-not-in-package usr/share/applications/libreoffice-writer.desktop libreoffice diff --git a/debian/libreoffice-writer.manpages b/debian/libreoffice-writer.manpages new file mode 100644 index 00000000000..53c4e248a63 --- /dev/null +++ b/debian/libreoffice-writer.manpages @@ -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 index 00000000000..799dd44f074 --- /dev/null +++ b/debian/libreoffice-writer.mime @@ -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.bug-control b/debian/libreoffice.bug-control new file mode 100644 index 00000000000..21ad6ad79a4 --- /dev/null +++ b/debian/libreoffice.bug-control @@ -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-dev.docs b/debian/libreofficekit-dev.docs new file mode 100644 index 00000000000..d9f2643255b --- /dev/null +++ b/debian/libreofficekit-dev.docs @@ -0,0 +1 @@ +libreofficekit/README diff --git a/debian/lo-cpp-ref.in b/debian/lo-cpp-ref.in new file mode 100644 index 00000000000..b31c746b2d5 --- /dev/null +++ b/debian/lo-cpp-ref.in @@ -0,0 +1,7 @@ +Document: lo-cpp-ref +Title: LibreOffice @lo_sources_ver@ SDK C/C++ API Reference +Author: The Document Foundation +Section: Programming + +Format: HTML +Index: /usr/share/doc/libreoffice/sdk/docs/cpp/ref/index.html diff --git a/debian/lo-idl-ref.in b/debian/lo-idl-ref.in new file mode 100644 index 00000000000..3c9a812f7ef --- /dev/null +++ b/debian/lo-idl-ref.in @@ -0,0 +1,7 @@ +Document: lo-idl-ref +Title: LibreOffice @lo_sources_ver@ SDK API Reference +Author: The Document Foundation +Section: Programming + +Format: HTML +Index: /usr/share/doc/libreoffice/sdk/docs/idl/ref/index.html diff --git a/debian/lo-java-ref.in b/debian/lo-java-ref.in new file mode 100644 index 00000000000..e66337ea9a8 --- /dev/null +++ b/debian/lo-java-ref.in @@ -0,0 +1,7 @@ +Document: lo-java-ref +Title: LibreOffice SDK @lo_sources_ver@ Java API Reference +Author: The Document Foundation +Section: Programming/Java + +Format: HTML +Index: /usr/share/doc/libreoffice/sdk/docs/java/ref/index.html diff --git a/debian/patches/0066-Subject-CVE-2021-25636-only-use-X509Data.patch b/debian/patches/0066-Subject-CVE-2021-25636-only-use-X509Data.patch new file mode 100644 index 00000000000..468ab73dd5b --- /dev/null +++ b/debian/patches/0066-Subject-CVE-2021-25636-only-use-X509Data.patch @@ -0,0 +1,85 @@ +From: Caolan McNamara +Date: Sat, 25 Mar 2023 18:15:47 +0000 +Subject: Subject: CVE-2021-25636: only use X509Data +MIME-Version: 1.0 +Content-Type: text/plain; charset="utf-8" +Content-Transfer-Encoding: 8bit + +LibreOffice supports digital signatures of ODF documents and macros +within documents, presenting visual aids that no alteration of the +document occurred since the last signing and that the signature is +valid. An Improper Certificate Validation vulnerability in LibreOffice +allowed an attacker to create a digitally signed ODF document, by +manipulating the documentsignatures.xml or macrosignatures.xml stream +within the document to contain both "X509Data" and "KeyValue" children +of the "KeyInfo" tag, which when opened caused LibreOffice to verify +using the "KeyValue" but to report verification with the unrelated +"X509Data" value. + +Change-Id: I52e6588f5fac04bb26d77c1f3af470db73e41f72 +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127193 +Tested-by: Jenkins +Reviewed-by: Miklos Vajna +(cherry picked from commit be446d81e07b5499152efeca6ca23034e51ea5ff) +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127178 +Reviewed-by: Adolfo Jayme Barrientos +(cherry picked from commit b0404f80577de9ff69e58390c6f6ef949fdb0139) +Signed-off-by: Bastien Roucariès +bug-debian-security: https://security-tracker.debian.org/tracker/CVE-2021-25636 +bug-redhat: https://bugzilla.redhat.com/show_bug.cgi?id=2056955 +origin: https://gitlab.com/redhat/centos-stream/rpms/libreoffice/-/raw/c8s/0001-CVE-2021-25636.patch +bug: https://www.libreoffice.org/about-us/security/advisories/CVE-2021-25636 +Signed-off-by: Bastien Roucariès +--- + xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx | 6 ++++++ + xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl.cxx | 6 ++++++ + 2 files changed, 12 insertions(+) + +diff --git a/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx b/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx +index dfa9c4a..5251d92 100644 +--- a/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx ++++ b/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx +@@ -20,6 +20,8 @@ + #include + #include + ++#include ++ + #include + #include + +@@ -228,6 +230,10 @@ SAL_CALL XMLSignature_MSCryptImpl::validate( + // We do certificate verification ourselves. + pDsigCtx->keyInfoReadCtx.flags |= XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS; + ++ // limit possible key data to valid X509 certificates only, no KeyValues ++ if (xmlSecPtrListAdd(&(pDsigCtx->keyInfoReadCtx.enabledKeyData), BAD_CAST xmlSecMSCngKeyDataX509GetKlass()) < 0) ++ throw RuntimeException("failed to limit allowed key data"); ++ + //Verify signature + //The documentation says that the signature is only valid if the return value is 0 (that is, not < 0) + //AND pDsigCtx->status == xmlSecDSigStatusSucceeded. That is, we must not make any assumptions, if +diff --git a/xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl.cxx b/xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl.cxx +index f4b1364..c3b6d7a 100644 +--- a/xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl.cxx ++++ b/xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl.cxx +@@ -21,6 +21,8 @@ + #include + + #include ++#include ++ + #include + #include + #include +@@ -242,6 +244,10 @@ SAL_CALL XMLSignature_NssImpl::validate( + // We do certificate verification ourselves. + pDsigCtx->keyInfoReadCtx.flags |= XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS; + ++ // limit possible key data to valid X509 certificates only, no KeyValues ++ if (xmlSecPtrListAdd(&(pDsigCtx->keyInfoReadCtx.enabledKeyData), BAD_CAST xmlSecNssKeyDataX509GetKlass()) < 0) ++ throw RuntimeException("failed to limit allowed key data"); ++ + //Verify signature + int rs = xmlSecDSigCtxVerify( pDsigCtx , pNode ); + diff --git a/debian/patches/0067-CVE-2022-26307-make-hash-encoding-match-decoding.patch b/debian/patches/0067-CVE-2022-26307-make-hash-encoding-match-decoding.patch new file mode 100644 index 00000000000..0f970d22a1f --- /dev/null +++ b/debian/patches/0067-CVE-2022-26307-make-hash-encoding-match-decoding.patch @@ -0,0 +1,207 @@ +From: =?utf-8?q?Caol=C3=A1n_McNamara?= +Date: Mon, 21 Mar 2022 20:58:34 +0000 +Subject: CVE-2022-26307: make hash encoding match decoding +MIME-Version: 1.0 +Content-Type: text/plain; charset="utf-8" +Content-Transfer-Encoding: 8bit + +Seeing as old versions of the hash may be in the users config, add a +StorageVersion field to the office config Passwords section which +defaults to 0 to indicate the old hash is in use. + +Try the old varient when StorageVersion is 0. When a new encoded master +password it set write StorageVersion of 1 to indicate a new hash is in +use and use the new style when StorageVersion is 1. + +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132080 +Tested-by: Jenkins +Reviewed-by: Stephan Bergmann +(cherry picked from commit e890f54dbac57f3ab5acf4fbd31222095d3e8ab6) + +svl: fix crash if user cancels/closes master password dialog + +(regression from d7ba5614d90381d68f880ca7e7c5ef8bbb1b1c43) + +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133932 +Tested-by: Jenkins +Reviewed-by: Michael Stahl +(cherry picked from commit bbb8617ece6d946957c2eb96287081029bce530f) + +Change-Id: I3174c37a5891bfc849984e0ec5c2c392b9c6e7b1 +(cherry picked from commit 7e35d53f51bb89ed3cea5f946214afb7d81e1b1e) +origin: https://github.com/LibreOffice/core/commit/c17ba8306704d6d428d673fb0079c4276f0bc256.patch +bug-debian-security: https://security-tracker.debian.org/tracker/CVE-2022-26307 +bug: https://www.libreoffice.org/about-us/security/advisories/cve-2022-26307 +Signed-off-by: Bastien Roucariès +--- + .../schema/org/openoffice/Office/Common.xcs | 6 +++ + svl/source/passwordcontainer/passwordcontainer.cxx | 48 +++++++++++++++++++++- + svl/source/passwordcontainer/passwordcontainer.hxx | 6 +++ + uui/source/iahndl-authentication.cxx | 5 ++- + 4 files changed, 61 insertions(+), 4 deletions(-) + +diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs +index 97658dc..bb04f7b 100644 +--- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs ++++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs +@@ -904,6 +904,12 @@ + + false + ++ ++ ++ Specifies what version of encoding scheme the password container uses. ++ ++ 0 ++ + + + Specifies if there is a valid master password. +diff --git a/svl/source/passwordcontainer/passwordcontainer.cxx b/svl/source/passwordcontainer/passwordcontainer.cxx +index 514a01e..cc45406 100644 +--- a/svl/source/passwordcontainer/passwordcontainer.cxx ++++ b/svl/source/passwordcontainer/passwordcontainer.cxx +@@ -17,6 +17,8 @@ + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + ++#include ++#include + + #include "passwordcontainer.hxx" + +@@ -36,6 +38,7 @@ + #include + #include + #include ++#include + + using namespace osl; + using namespace utl; +@@ -261,6 +264,23 @@ bool StorageItem::useStorage() + return aResult; + } + ++sal_Int32 StorageItem::getStorageVersion() ++{ ++ Sequence aNodeNames { "StorageVersion" }; ++ ++ Sequence< Any > aPropertyValues = ConfigItem::GetProperties( aNodeNames ); ++ ++ if( aPropertyValues.getLength() != aNodeNames.getLength() ) ++ { ++ OSL_FAIL( "Problems during reading" ); ++ return 0; ++ } ++ ++ sal_Int32 nResult = 0; ++ aPropertyValues[0] >>= nResult; ++ ++ return nResult; ++} + + bool StorageItem::getEncodedMP( OUString& aResult ) + { +@@ -293,15 +313,17 @@ bool StorageItem::getEncodedMP( OUString& aResult ) + + void StorageItem::setEncodedMP( const OUString& aEncoded, bool bAcceptEmpty ) + { +- Sequence< OUString > sendNames(2); +- Sequence< uno::Any > sendVals(2); ++ Sequence< OUString > sendNames(3); ++ Sequence< uno::Any > sendVals(3); + + sendNames[0] = "HasMaster"; + sendNames[1] = "Master"; ++ sendNames[2] = "StorageVersion"; + + bool bHasMaster = ( !aEncoded.isEmpty() || bAcceptEmpty ); + sendVals[0] <<= bHasMaster; + sendVals[1] <<= aEncoded; ++ sendVals[2] <<= nCurrentStorageVersion; + + ConfigItem::SetModified(); + ConfigItem::PutProperties( sendNames, sendVals ); +@@ -803,6 +825,18 @@ OUString PasswordContainer::RequestPasswordFromUser( PasswordRequestMode aRMode, + return aResult; + } + ++// Mangle the key to match an old bug ++static OUString ReencodeAsOldHash(const OUString& rPass) ++{ ++ OUStringBuffer aBuffer; ++ for (int ind = 0; ind < RTL_DIGEST_LENGTH_MD5; ++ind) ++ { ++ unsigned char i = static_cast(rPass.copy(ind * 2, 2).toUInt32(16)); ++ aBuffer.append(static_cast< sal_Unicode >('a' + (i >> 4))); ++ aBuffer.append(static_cast< sal_Unicode >('a' + (i & 15))); ++ } ++ return aBuffer.makeStringAndClear(); ++} + + OUString const & PasswordContainer::GetMasterPassword( const Reference< XInteractionHandler >& aHandler ) + { +@@ -841,6 +875,9 @@ OUString const & PasswordContainer::GetMasterPassword( const Reference< XInterac + } + else + { ++ if (m_pStorageFile->getStorageVersion() == 0) ++ aPass = ReencodeAsOldHash(aPass); ++ + std::vector< OUString > aRM( DecodePasswords( aEncodedMP, aPass, aRMode ) ); + if( aRM.empty() || aPass != aRM[0] ) + { +@@ -1045,6 +1082,13 @@ sal_Bool SAL_CALL PasswordContainer::authorizateWithMasterPassword( const uno::R + + do { + aPass = RequestPasswordFromUser( aRMode, xTmpHandler ); ++ ++ ++ if (!aPass.isEmpty() && m_pStorageFile->getStorageVersion() == 0) ++ { ++ aPass = ReencodeAsOldHash(aPass); ++ } ++ + bResult = ( !aPass.isEmpty() && aPass == m_aMasterPasswd ); + aRMode = PasswordRequestMode_PASSWORD_REENTER; // further questions with error notification + } while( !bResult && !aPass.isEmpty() ); +diff --git a/svl/source/passwordcontainer/passwordcontainer.hxx b/svl/source/passwordcontainer/passwordcontainer.hxx +index 3da1e60..c947c85 100644 +--- a/svl/source/passwordcontainer/passwordcontainer.hxx ++++ b/svl/source/passwordcontainer/passwordcontainer.hxx +@@ -168,6 +168,10 @@ public: + typedef ::std::pair< const OUString, ::std::vector< NamePassRecord > > PairUrlRecord; + typedef ::std::map< OUString, ::std::vector< NamePassRecord > > PassMap; + ++// org.openoffice.Office.Common/Passwords/StorageVersion bump if details of ++// how password details are saved changes. Enables migration from previous ++// schemes. ++constexpr sal_Int32 nCurrentStorageVersion = 1; + + class PasswordContainer; + +@@ -196,6 +200,8 @@ public: + void remove( const OUString& url, const OUString& rec ); + void clear(); + ++ sal_Int32 getStorageVersion(); ++ + bool getEncodedMP( OUString& aResult ); + void setEncodedMP( const OUString& aResult, bool bAcceptEnmpty = false ); + void setUseStorage( bool bUse ); +diff --git a/uui/source/iahndl-authentication.cxx b/uui/source/iahndl-authentication.cxx +index ddaaf10..a4742b5 100644 +--- a/uui/source/iahndl-authentication.cxx ++++ b/uui/source/iahndl-authentication.cxx +@@ -436,8 +436,9 @@ executeMasterPasswordDialog( + OUStringBuffer aBuffer; + for (sal_uInt8 i : aKey) + { +- aBuffer.append(static_cast< sal_Unicode >('a' + (i >> 4))); +- aBuffer.append(static_cast< sal_Unicode >('a' + (i & 15))); ++ // match PasswordContainer::DecodePasswords aMasterPasswd.copy(index * 2, 2).toUInt32(16)); ++ aBuffer.append(OUString::number(i >> 4, 16)); ++ aBuffer.append(OUString::number(i & 15, 16)); + } + rInfo.SetPassword(aBuffer.makeStringAndClear()); + } diff --git a/debian/patches/0068-CVE-2022-26306-CVE-2022-26307-add-infobar-to-prompt-.patch b/debian/patches/0068-CVE-2022-26306-CVE-2022-26307-add-infobar-to-prompt-.patch new file mode 100644 index 00000000000..5cdec943911 --- /dev/null +++ b/debian/patches/0068-CVE-2022-26306-CVE-2022-26307-add-infobar-to-prompt-.patch @@ -0,0 +1,116 @@ +From: =?utf-8?q?Caol=C3=A1n_McNamara?= +Date: Wed, 23 Mar 2022 13:03:30 +0000 +Subject: CVE-2022-26306, + CVE-2022-26307: add infobar to prompt to refresh to replace old format + +This patch ask an user to replace old format thus partially closing CVE-2022-26306, CVE-2022-26307 + +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131976 +Tested-by: Jenkins +Reviewed-by: Michael Stahl +(cherry picked from commit bbd196ff82bda9f66b4ba32a412f10cefe6da60e) +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132307 +Reviewed-by: Sophie Gautier +Reviewed-by: Christian Lohmaier +(cherry picked from commit c5d01b11db3c83cb4a89d3b388d78e20dd3990b5) + +(cherry picked from commit df05d27336927373bf83664a90156fbe505fc546) + +Change-Id: Id99cbf2b50a4ebf289dae6fc67e22e20afcda35b +origin: https://github.com/LibreOffice/core/commit/cedd8063fed50cfd75fa3c69c4c87e2ae79b944d.patch +--- + include/sfx2/strings.hrc | 2 ++ + include/sfx2/viewfrm.hxx | 1 + + sfx2/source/view/viewfrm.cxx | 40 ++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 43 insertions(+) + +diff --git a/include/sfx2/strings.hrc b/include/sfx2/strings.hrc +index e2de56b..6861775 100644 +--- a/include/sfx2/strings.hrc ++++ b/include/sfx2/strings.hrc +@@ -263,6 +263,8 @@ + #define STR_SIGNATURE_NOTVALIDATED_PARTIAL_OK NC_("STR_SIGNATURE_NOTVALIDATED_PARTIAL_OK", "The certificate could not be validated and the document is only partially signed.") + #define STR_SIGNATURE_OK NC_("STR_SIGNATURE_OK", "This document is digitally signed and the signature is valid.") + #define STR_SIGNATURE_SHOW NC_("STR_SIGNATURE_SHOW", "Show Signatures") ++#define STR_REFRESH_MASTER_PASSWORD NC_("STR_REFRESH_MASTER_PASSWORD", "The master password is stored in an outdated format, you should refresh it") ++#define STR_REFRESH_PASSWORD NC_("STR_REFRESH_PASSWORD", "Refresh Password") + + #define STR_CLOSE_PANE NC_("STR_CLOSE_PANE", "Close Pane") + #define STR_SFX_DOCK NC_("STR_SFX_DOCK", "Dock") +diff --git a/include/sfx2/viewfrm.hxx b/include/sfx2/viewfrm.hxx +index 3fafd9e..6a17fa9 100644 +--- a/include/sfx2/viewfrm.hxx ++++ b/include/sfx2/viewfrm.hxx +@@ -79,6 +79,7 @@ protected: + DECL_LINK(GetInvolvedHandler, Button*, void); + DECL_LINK(SwitchReadOnlyHandler, Button*, void); + DECL_LINK(SignDocumentHandler, Button*, void); ++ DECL_DLLPRIVATE_LINK(RefreshMasterPasswordHdl, Button*, void); + SAL_DLLPRIVATE void KillDispatcher_Impl(); + + virtual ~SfxViewFrame() override; +diff --git a/sfx2/source/view/viewfrm.cxx b/sfx2/source/view/viewfrm.cxx +index 510e723..2fc204e 100644 +--- a/sfx2/source/view/viewfrm.cxx ++++ b/sfx2/source/view/viewfrm.cxx +@@ -29,6 +29,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -1228,6 +1229,24 @@ void SfxViewFrame::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint ) + batch->commit(); + } + ++ if (officecfg::Office::Common::Passwords::HasMaster::get() && ++ officecfg::Office::Common::Passwords::StorageVersion::get() == 0) ++ { ++ // master password stored in deprecated format ++ VclPtr pOldMasterPasswordInfoBar = ++ AppendInfoBar("oldmasterpassword", ++ SfxResId(STR_REFRESH_MASTER_PASSWORD), InfoBarType::Danger); ++ if (pOldMasterPasswordInfoBar) ++ { ++ VclPtrInstance const xBtn(&GetWindow()); ++ xBtn->SetText(SfxResId(STR_REFRESH_PASSWORD)); ++ xBtn->SetSizePixel(xBtn->GetOptimalSize()); ++ xBtn->SetClickHdl(LINK(this, ++ SfxViewFrame, RefreshMasterPasswordHdl)); ++ pOldMasterPasswordInfoBar->addButton(xBtn); ++ } ++ } ++ + // read-only infobar if necessary + const SfxViewShell *pVSh; + const SfxShell *pFSh; +@@ -1379,6 +1398,27 @@ IMPL_LINK_NOARG(SfxViewFrame, SignDocumentHandler, Button*, void) + GetDispatcher()->Execute(SID_SIGNATURE); + } + ++IMPL_LINK_NOARG(SfxViewFrame, RefreshMasterPasswordHdl, Button*, void) ++{ ++ bool bChanged = false; ++ try ++ { ++ Reference< task::XPasswordContainer2 > xMasterPasswd( ++ task::PasswordContainer::create(comphelper::getProcessComponentContext())); ++ ++ css::uno::Reference xFrame = GetFrame().GetFrameInterface(); ++ css::uno::Reference xContainerWindow = xFrame->getContainerWindow(); ++ ++ uno::Reference xTmpHandler(task::InteractionHandler::createWithParent(comphelper::getProcessComponentContext(), ++ xContainerWindow)); ++ bChanged = xMasterPasswd->changeMasterPassword(xTmpHandler); ++ } ++ catch (const Exception&) ++ {} ++ if (bChanged) ++ RemoveInfoBar(u"oldmasterpassword"); ++} ++ + void SfxViewFrame::Construct_Impl( SfxObjectShell *pObjSh ) + { + m_pImpl->bResizeInToOut = true; diff --git a/debian/patches/0069-Simplify-Sequence-iterations-in-svl-only-passwordcon.patch b/debian/patches/0069-Simplify-Sequence-iterations-in-svl-only-passwordcon.patch new file mode 100644 index 00000000000..b27c993cb8d --- /dev/null +++ b/debian/patches/0069-Simplify-Sequence-iterations-in-svl-only-passwordcon.patch @@ -0,0 +1,100 @@ +From: Arkadiy Illarionov +Date: Sat, 13 Jul 2019 21:29:10 +0300 +Subject: Simplify Sequence iterations in svl [only passwordcontainer.cxx] + +Needed for fixing CVE-2022-26307 + +Use range-based loops, STL and comphelper functions + +Reviewed-on: https://gerrit.libreoffice.org/75563 +Tested-by: Jenkins +Reviewed-by: Arkadiy Illarionov +(cherry picked from commit c9cce0d931b41ede0eca14b2ed2b84453f048362) + +Change-Id: I1c3dbf194600bec60c0881d2d19ff07b89d8333b +origin: https://github.com/LibreOffice/core/commit/bfec3cf63ef43cc86e9a2fd90600d91b5fefe0c3.patch +--- + svl/source/passwordcontainer/passwordcontainer.cxx | 34 +++++++++------------- + 1 file changed, 14 insertions(+), 20 deletions(-) + +diff --git a/svl/source/passwordcontainer/passwordcontainer.cxx b/svl/source/passwordcontainer/passwordcontainer.cxx +index cc45406..c21f748 100644 +--- a/svl/source/passwordcontainer/passwordcontainer.cxx ++++ b/svl/source/passwordcontainer/passwordcontainer.cxx +@@ -186,22 +186,20 @@ PassMap StorageItem::getInfo() + Sequence< OUString > aNodeNames = ConfigItem::GetNodeNames( "Store" ); + sal_Int32 aNodeCount = aNodeNames.getLength(); + Sequence< OUString > aPropNames( aNodeCount ); +- sal_Int32 aNodeInd; + +- for( aNodeInd = 0; aNodeInd < aNodeCount; ++aNodeInd ) +- { +- aPropNames[aNodeInd] = "Store/Passwordstorage['" + aNodeNames[aNodeInd] + "']/Password"; +- } ++ std::transform(aNodeNames.begin(), aNodeNames.end(), aPropNames.begin(), ++ [](const OUString& rName) -> OUString { ++ return "Store/Passwordstorage['" + rName + "']/Password"; }); + + Sequence< Any > aPropertyValues = ConfigItem::GetProperties( aPropNames ); + +- if( aPropertyValues.getLength() != aNodeNames.getLength() ) ++ if( aPropertyValues.getLength() != aNodeCount ) + { +- OSL_ENSURE( aPropertyValues.getLength() == aNodeNames.getLength(), "Problems during reading" ); ++ OSL_FAIL( "Problems during reading" ); + return aResult; + } + +- for( aNodeInd = 0; aNodeInd < aNodeCount; ++aNodeInd ) ++ for( sal_Int32 aNodeInd = 0; aNodeInd < aNodeCount; ++aNodeInd ) + { + std::vector< OUString > aUrlUsr = getInfoFromInd( aNodeNames[aNodeInd] ); + +@@ -254,7 +252,7 @@ bool StorageItem::useStorage() + + if( aPropertyValues.getLength() != aNodeNames.getLength() ) + { +- OSL_ENSURE( aPropertyValues.getLength() == aNodeNames.getLength(), "Problems during reading" ); ++ OSL_FAIL( "Problems during reading" ); + return false; + } + +@@ -298,7 +296,7 @@ bool StorageItem::getEncodedMP( OUString& aResult ) + + if( aPropertyValues.getLength() != aNodeNames.getLength() ) + { +- OSL_ENSURE( aPropertyValues.getLength() == aNodeNames.getLength(), "Problems during reading" ); ++ OSL_FAIL( "Problems during reading" ); + return false; + } + +@@ -1149,11 +1147,9 @@ sal_Bool SAL_CALL PasswordContainer::changeMasterPassword( const uno::Reference< + m_pStorageFile->setEncodedMP( EncodePasswords( aMaster, m_aMasterPasswd ) ); + + // store all the entries with the new password +- for ( int nURLInd = 0; nURLInd < aPersistent.getLength(); nURLInd++ ) +- for ( int nNameInd = 0; nNameInd< aPersistent[nURLInd].UserList.getLength(); nNameInd++ ) +- addPersistent( aPersistent[nURLInd].Url, +- aPersistent[nURLInd].UserList[nNameInd].UserName, +- aPersistent[nURLInd].UserList[nNameInd].Passwords, ++ for ( const auto& rURL : aPersistent ) ++ for ( const auto& rUser : rURL.UserList ) ++ addPersistent( rURL.Url, rUser.UserName, rUser.Passwords, + uno::Reference< task::XInteractionHandler >() ); + + bResult = true; +@@ -1253,11 +1249,9 @@ sal_Bool SAL_CALL PasswordContainer::useDefaultMasterPassword( const uno::Refere + m_pStorageFile->setEncodedMP( OUString(), true ); + + // store all the entries with the new password +- for ( int nURLInd = 0; nURLInd < aPersistent.getLength(); nURLInd++ ) +- for ( int nNameInd = 0; nNameInd< aPersistent[nURLInd].UserList.getLength(); nNameInd++ ) +- addPersistent( aPersistent[nURLInd].Url, +- aPersistent[nURLInd].UserList[nNameInd].UserName, +- aPersistent[nURLInd].UserList[nNameInd].Passwords, ++ for ( const auto& rURL : aPersistent ) ++ for ( const auto& rUser : rURL.UserList ) ++ addPersistent( rURL.Url, rUser.UserName, rUser.Passwords, + uno::Reference< task::XInteractionHandler >() ); + + bResult = true; diff --git a/debian/patches/0070-CVE-2022-26307-add-Initialization-Vectors-to-passwor.patch b/debian/patches/0070-CVE-2022-26307-add-Initialization-Vectors-to-passwor.patch new file mode 100644 index 00000000000..ca892b8687d --- /dev/null +++ b/debian/patches/0070-CVE-2022-26307-add-Initialization-Vectors-to-passwor.patch @@ -0,0 +1,595 @@ +From: =?utf-8?q?Caol=C3=A1n_McNamara?= +Date: Tue, 22 Mar 2022 17:22:22 +0000 +Subject: CVE-2022-26307: add Initialization Vectors to password storage +MIME-Version: 1.0 +Content-Type: text/plain; charset="utf-8" +Content-Transfer-Encoding: 8bit + +LibreOffice supports the storage of passwords for web connections in +the user’s configuration database. The stored passwords are encrypted +with a single master key provided by the user. A flaw in LibreOffice +existed where master key was poorly encoded resulting in weakening its +entropy from 128 to 43 bits making the stored passwords vulerable to a +brute force attack if an attacker has access to the users stored +config. + +old ones default to the current all zero case and continue to work +as before + +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131974 +Tested-by: Jenkins +Reviewed-by: Michael Stahl +(cherry picked from commit 192fa1e3bfc6269f2ebb91716471485a56074aea) +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132306 +Reviewed-by: Thorsten Behrens +(cherry picked from commit ab77587ec300f5c30084471000663c46ddf25dad) + +(cherry picked from commit 713296ecd30bab02d41fcd23f19afed28d916701) + +Change-Id: I6fe3b02fafcce1b5e7133e77e76a5118177d77af +origin: https://github.com/LibreOffice/core/commit/55d3095f14e98e5d2aadddf392911ca2d2b6dca9.patch +bug: https://www.libreoffice.org/about-us/security/advisories/cve-2022-26307 +bug-debian-security: https://security-tracker.debian.org/tracker/CVE-2022-26307 +--- + .../schema/org/openoffice/Office/Common.xcs | 10 ++ + svl/source/passwordcontainer/passwordcontainer.cxx | 127 ++++++++++++++------- + svl/source/passwordcontainer/passwordcontainer.hxx | 63 ++++++++-- + 3 files changed, 151 insertions(+), 49 deletions(-) + +diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs +index bb04f7b..57ad045 100644 +--- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs ++++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs +@@ -27,6 +27,11 @@ + + Contains a container for passwords. + ++ ++ ++ Contains an initialization vector for the password encryption. ++ ++ + + + Contains a password encoded with the master password. +@@ -916,6 +921,11 @@ + + false + ++ ++ ++ Contains an initialization vector for the master password encryption. ++ ++ + + + Contains the master password encrypted by itself. +diff --git a/svl/source/passwordcontainer/passwordcontainer.cxx b/svl/source/passwordcontainer/passwordcontainer.cxx +index c21f748..6f819fd 100644 +--- a/svl/source/passwordcontainer/passwordcontainer.cxx ++++ b/svl/source/passwordcontainer/passwordcontainer.cxx +@@ -185,15 +185,18 @@ PassMap StorageItem::getInfo() + + Sequence< OUString > aNodeNames = ConfigItem::GetNodeNames( "Store" ); + sal_Int32 aNodeCount = aNodeNames.getLength(); +- Sequence< OUString > aPropNames( aNodeCount ); ++ Sequence< OUString > aPropNames( aNodeCount * 2); + + std::transform(aNodeNames.begin(), aNodeNames.end(), aPropNames.begin(), + [](const OUString& rName) -> OUString { + return "Store/Passwordstorage['" + rName + "']/Password"; }); ++ std::transform(aNodeNames.begin(), aNodeNames.end(), aPropNames.getArray() + aNodeCount, ++ [](const OUString& rName) -> OUString { ++ return "Store/Passwordstorage['" + rName + "']/InitializationVector"; }); + + Sequence< Any > aPropertyValues = ConfigItem::GetProperties( aPropNames ); + +- if( aPropertyValues.getLength() != aNodeCount ) ++ if( aPropertyValues.getLength() != aNodeCount * 2) + { + OSL_FAIL( "Problems during reading" ); + return aResult; +@@ -209,14 +212,16 @@ PassMap StorageItem::getInfo() + OUString aName = aUrlUsr[1]; + + OUString aEPasswd; ++ OUString aIV; + aPropertyValues[aNodeInd] >>= aEPasswd; ++ aPropertyValues[aNodeInd + aNodeCount] >>= aIV; + + PassMap::iterator aIter = aResult.find( aUrl ); + if( aIter != aResult.end() ) +- aIter->second.emplace_back( aName, aEPasswd ); ++ aIter->second.emplace_back( aName, aEPasswd, aIV ); + else + { +- NamePassRecord aNewRecord( aName, aEPasswd ); ++ NamePassRecord aNewRecord( aName, aEPasswd, aIV ); + std::vector< NamePassRecord > listToAdd( 1, aNewRecord ); + + aResult.insert( PairUrlRecord( aUrl, listToAdd ) ); +@@ -280,17 +285,19 @@ sal_Int32 StorageItem::getStorageVersion() + return nResult; + } + +-bool StorageItem::getEncodedMP( OUString& aResult ) ++bool StorageItem::getEncodedMP( OUString& aResult, OUString& aResultIV ) + { + if( hasEncoded ) + { + aResult = mEncoded; ++ aResultIV = mEncodedIV; + return true; + } + +- Sequence< OUString > aNodeNames( 2 ); ++ Sequence< OUString > aNodeNames( 3 ); + aNodeNames[0] = "HasMaster"; + aNodeNames[1] = "Master"; ++ aNodeNames[2] = "MasterInitializationVector"; + + Sequence< Any > aPropertyValues = ConfigItem::GetProperties( aNodeNames ); + +@@ -302,32 +309,37 @@ bool StorageItem::getEncodedMP( OUString& aResult ) + + aPropertyValues[0] >>= hasEncoded; + aPropertyValues[1] >>= mEncoded; ++ aPropertyValues[2] >>= mEncodedIV; + + aResult = mEncoded; ++ aResultIV = mEncodedIV; + + return hasEncoded; + } + + +-void StorageItem::setEncodedMP( const OUString& aEncoded, bool bAcceptEmpty ) ++void StorageItem::setEncodedMP( const OUString& aEncoded, const OUString& aEncodedIV, bool bAcceptEmpty ) + { +- Sequence< OUString > sendNames(3); +- Sequence< uno::Any > sendVals(3); ++ Sequence< OUString > sendNames(4); ++ Sequence< uno::Any > sendVals(4); + + sendNames[0] = "HasMaster"; + sendNames[1] = "Master"; +- sendNames[2] = "StorageVersion"; ++ sendNames[2] = "MasterInitializationVector"; ++ sendNames[3] = "StorageVersion"; + + bool bHasMaster = ( !aEncoded.isEmpty() || bAcceptEmpty ); + sendVals[0] <<= bHasMaster; + sendVals[1] <<= aEncoded; +- sendVals[2] <<= nCurrentStorageVersion; ++ sendVals[2] <<= aEncodedIV; ++ sendVals[3] <<= nCurrentStorageVersion; + + ConfigItem::SetModified(); + ConfigItem::PutProperties( sendNames, sendVals ); + + hasEncoded = bHasMaster; + mEncoded = aEncoded; ++ mEncodedIV = aEncodedIV; + } + + +@@ -363,11 +375,13 @@ void StorageItem::update( const OUString& aURL, const NamePassRecord& aRecord ) + forIndex.push_back( aURL ); + forIndex.push_back( aRecord.GetUserName() ); + +- Sequence< beans::PropertyValue > sendSeq(1); ++ Sequence< beans::PropertyValue > sendSeq(2); + +- sendSeq[0].Name = "Store/Passwordstorage['" + createIndex( forIndex ) + "']/Password"; ++ sendSeq[0].Name = "Store/Passwordstorage['" + createIndex( { aURL, aRecord.GetUserName() } ) + "']/InitializationVector"; ++ sendSeq[0].Value <<= aRecord.GetPersistentIV(); + +- sendSeq[0].Value <<= aRecord.GetPersPasswords(); ++ sendSeq[1].Name = "Store/Passwordstorage['" + createIndex( forIndex ) + "']/Password"; ++ sendSeq[1].Value <<= aRecord.GetPersPasswords(); + + ConfigItem::SetModified(); + ConfigItem::SetSetProperties( "Store", sendSeq ); +@@ -429,7 +443,7 @@ void SAL_CALL PasswordContainer::disposing( const EventObject& ) + } + } + +-std::vector< OUString > PasswordContainer::DecodePasswords( const OUString& aLine, const OUString& aMasterPasswd, css::task::PasswordRequestMode mode ) ++std::vector< OUString > PasswordContainer::DecodePasswords( const OUString& aLine, const OUString& aIV, const OUString& aMasterPasswd, css::task::PasswordRequestMode mode ) + { + if( !aMasterPasswd.isEmpty() ) + { +@@ -444,9 +458,16 @@ std::vector< OUString > PasswordContainer::DecodePasswords( const OUString& aLin + for( int ind = 0; ind < RTL_DIGEST_LENGTH_MD5; ind++ ) + code[ ind ] = static_cast(aMasterPasswd.copy( ind*2, 2 ).toUInt32(16)); + ++ unsigned char iv[RTL_DIGEST_LENGTH_MD5] = {0}; ++ if (!aIV.isEmpty()) ++ { ++ for( int ind = 0; ind < RTL_DIGEST_LENGTH_MD5; ind++ ) ++ iv[ ind ] = static_cast(aIV.copy( ind*2, 2 ).toUInt32(16)); ++ } ++ + rtlCipherError result = rtl_cipher_init ( + aDecoder, rtl_Cipher_DirectionDecode, +- code, RTL_DIGEST_LENGTH_MD5, nullptr, 0 ); ++ code, RTL_DIGEST_LENGTH_MD5, iv, RTL_DIGEST_LENGTH_MD5 ); + + if( result == rtl_Cipher_E_None ) + { +@@ -479,7 +500,7 @@ std::vector< OUString > PasswordContainer::DecodePasswords( const OUString& aLin + "Can't decode!", css::uno::Reference(), mode); + } + +-OUString PasswordContainer::EncodePasswords(const std::vector< OUString >& lines, const OUString& aMasterPasswd ) ++OUString PasswordContainer::EncodePasswords(const std::vector< OUString >& lines, const OUString& aIV, const OUString& aMasterPasswd) + { + if( !aMasterPasswd.isEmpty() ) + { +@@ -496,9 +517,16 @@ OUString PasswordContainer::EncodePasswords(const std::vector< OUString >& lines + for( int ind = 0; ind < RTL_DIGEST_LENGTH_MD5; ind++ ) + code[ ind ] = static_cast(aMasterPasswd.copy( ind*2, 2 ).toUInt32(16)); + ++ unsigned char iv[RTL_DIGEST_LENGTH_MD5] = {0}; ++ if (!aIV.isEmpty()) ++ { ++ for( int ind = 0; ind < RTL_DIGEST_LENGTH_MD5; ind++ ) ++ iv[ ind ] = static_cast(aIV.copy( ind*2, 2 ).toUInt32(16)); ++ } ++ + rtlCipherError result = rtl_cipher_init ( + aEncoder, rtl_Cipher_DirectionEncode, +- code, RTL_DIGEST_LENGTH_MD5, nullptr, 0 ); ++ code, RTL_DIGEST_LENGTH_MD5, iv, RTL_DIGEST_LENGTH_MD5 ); + + if( result == rtl_Cipher_E_None ) + { +@@ -566,7 +594,7 @@ void PasswordContainer::UpdateVector( const OUString& aURL, std::vector< NamePas + + if( aRecord.HasPasswords( PERSISTENT_RECORD ) ) + { +- aNPIter.SetPersPasswords( aRecord.GetPersPasswords() ); ++ aNPIter.SetPersPasswords( aRecord.GetPersPasswords(), aRecord.GetPersistentIV() ); + + if( writeFile ) + { +@@ -599,7 +627,8 @@ UserRecord PasswordContainer::CopyToUserRecord( const NamePassRecord& aRecord, b + { + try + { +- ::std::vector< OUString > aDecodedPasswords = DecodePasswords( aRecord.GetPersPasswords(), GetMasterPassword( aHandler ), css::task::PasswordRequestMode_PASSWORD_ENTER ); ++ ::std::vector< OUString > aDecodedPasswords = DecodePasswords( aRecord.GetPersPasswords(), aRecord.GetPersistentIV(), ++ GetMasterPassword( aHandler ), css::task::PasswordRequestMode_PASSWORD_ENTER ); + aPasswords.insert( aPasswords.end(), aDecodedPasswords.begin(), aDecodedPasswords.end() ); + } + catch( NoMasterException& ) +@@ -644,6 +673,19 @@ void SAL_CALL PasswordContainer::addPersistent( const OUString& Url, const OUStr + PrivateAdd( Url, UserName, Passwords, PERSISTENT_RECORD, aHandler ); + } + ++OUString PasswordContainer::createIV() ++{ ++ rtlRandomPool randomPool = mRandomPool.get(); ++ unsigned char iv[RTL_DIGEST_LENGTH_MD5]; ++ rtl_random_getBytes(randomPool, iv, RTL_DIGEST_LENGTH_MD5); ++ OUStringBuffer aBuffer; ++ for (sal_uInt8 i : iv) ++ { ++ aBuffer.append(OUString::number(i >> 4, 16)); ++ aBuffer.append(OUString::number(i & 15, 16)); ++ } ++ return aBuffer.makeStringAndClear(); ++} + + void PasswordContainer::PrivateAdd( const OUString& Url, const OUString& UserName, const Sequence< OUString >& Passwords, char Mode, const Reference< XInteractionHandler >& aHandler ) + { +@@ -651,7 +693,11 @@ void PasswordContainer::PrivateAdd( const OUString& Url, const OUString& UserNam + ::std::vector< OUString > aStorePass = comphelper::sequenceToContainer< std::vector >( Passwords ); + + if( Mode == PERSISTENT_RECORD ) +- aRecord.SetPersPasswords( EncodePasswords( aStorePass, GetMasterPassword( aHandler ) ) ); ++ { ++ OUString sIV = createIV(); ++ OUString sEncodedPasswords = EncodePasswords( aStorePass, sIV, GetMasterPassword( aHandler ) ); ++ aRecord.SetPersPasswords( sEncodedPasswords, sIV ); ++ } + else if( Mode == MEMORY_RECORD ) + aRecord.SetMemPasswords( aStorePass ); + else +@@ -844,10 +890,10 @@ OUString const & PasswordContainer::GetMasterPassword( const Reference< XInterac + + if( m_aMasterPasswd.isEmpty() && aHandler.is() ) + { +- OUString aEncodedMP; ++ OUString aEncodedMP, aEncodedMPIV; + bool bDefaultPassword = false; + +- if( !m_pStorageFile->getEncodedMP( aEncodedMP ) ) ++ if( !m_pStorageFile->getEncodedMP( aEncodedMP, aEncodedMPIV ) ) + aRMode = PasswordRequestMode_PASSWORD_CREATE; + else if ( aEncodedMP.isEmpty() ) + { +@@ -869,14 +915,15 @@ OUString const & PasswordContainer::GetMasterPassword( const Reference< XInterac + m_aMasterPasswd = aPass; + std::vector< OUString > aMaster( 1, m_aMasterPasswd ); + +- m_pStorageFile->setEncodedMP( EncodePasswords( aMaster, m_aMasterPasswd ) ); ++ OUString sIV = createIV(); ++ m_pStorageFile->setEncodedMP( EncodePasswords( aMaster, sIV, m_aMasterPasswd ), sIV ); + } + else + { + if (m_pStorageFile->getStorageVersion() == 0) + aPass = ReencodeAsOldHash(aPass); + +- std::vector< OUString > aRM( DecodePasswords( aEncodedMP, aPass, aRMode ) ); ++ std::vector< OUString > aRM( DecodePasswords( aEncodedMP, aEncodedMPIV, aPass, aRMode ) ); + if( aRM.empty() || aPass != aRM[0] ) + { + bAskAgain = true; +@@ -1033,7 +1080,8 @@ Sequence< UrlRecord > SAL_CALL PasswordContainer::getAllPersistent( const Refere + { + sal_Int32 oldLen = aUsers.getLength(); + aUsers.realloc( oldLen + 1 ); +- aUsers[ oldLen ] = UserRecord( aNP.GetUserName(), comphelper::containerToSequence( DecodePasswords( aNP.GetPersPasswords(), GetMasterPassword( xHandler ), css::task::PasswordRequestMode_PASSWORD_ENTER ) ) ); ++ aUsers[ oldLen ] = UserRecord( aNP.GetUserName(), comphelper::containerToSequence( DecodePasswords( aNP.GetPersPasswords(), aNP.GetPersistentIV(), ++ GetMasterPassword( xHandler ), css::task::PasswordRequestMode_PASSWORD_ENTER ) ) ); + } + + if( aUsers.getLength() ) +@@ -1050,12 +1098,12 @@ Sequence< UrlRecord > SAL_CALL PasswordContainer::getAllPersistent( const Refere + sal_Bool SAL_CALL PasswordContainer::authorizateWithMasterPassword( const uno::Reference< task::XInteractionHandler >& xHandler ) + { + bool bResult = false; +- OUString aEncodedMP; ++ OUString aEncodedMP, aEncodedMPIV; + uno::Reference< task::XInteractionHandler > xTmpHandler = xHandler; + ::osl::MutexGuard aGuard( mMutex ); + + // the method should fail if there is no master password +- if( m_pStorageFile && m_pStorageFile->useStorage() && m_pStorageFile->getEncodedMP( aEncodedMP ) ) ++ if( m_pStorageFile && m_pStorageFile->useStorage() && m_pStorageFile->getEncodedMP( aEncodedMP, aEncodedMPIV ) ) + { + if ( aEncodedMP.isEmpty() ) + { +@@ -1124,8 +1172,8 @@ sal_Bool SAL_CALL PasswordContainer::changeMasterPassword( const uno::Reference< + + bool bCanChangePassword = true; + // if there is already a stored master password it should be entered by the user before the change happen +- OUString aEncodedMP; +- if( !m_aMasterPasswd.isEmpty() || m_pStorageFile->getEncodedMP( aEncodedMP ) ) ++ OUString aEncodedMP, aEncodedMPIV; ++ if( !m_aMasterPasswd.isEmpty() || m_pStorageFile->getEncodedMP( aEncodedMP, aEncodedMPIV ) ) + bCanChangePassword = authorizateWithMasterPassword( xTmpHandler ); + + if ( bCanChangePassword ) +@@ -1144,7 +1192,8 @@ sal_Bool SAL_CALL PasswordContainer::changeMasterPassword( const uno::Reference< + // store the new master password + m_aMasterPasswd = aPass; + std::vector< OUString > aMaster( 1, m_aMasterPasswd ); +- m_pStorageFile->setEncodedMP( EncodePasswords( aMaster, m_aMasterPasswd ) ); ++ OUString aIV = createIV(); ++ m_pStorageFile->setEncodedMP( EncodePasswords( aMaster, aIV, m_aMasterPasswd ), aIV ); + + // store all the entries with the new password + for ( const auto& rURL : aPersistent ) +@@ -1169,7 +1218,7 @@ void SAL_CALL PasswordContainer::removeMasterPassword() + if ( m_pStorageFile ) + { + m_aMasterPasswd.clear(); +- m_pStorageFile->setEncodedMP( OUString() ); // let the master password be removed from configuration ++ m_pStorageFile->setEncodedMP( OUString(), OUString() ); // let the master password be removed from configuration + } + } + +@@ -1180,8 +1229,8 @@ sal_Bool SAL_CALL PasswordContainer::hasMasterPassword( ) + if ( !m_pStorageFile ) + throw uno::RuntimeException(); + +- OUString aEncodedMP; +- return ( m_pStorageFile->useStorage() && m_pStorageFile->getEncodedMP( aEncodedMP ) ); ++ OUString aEncodedMP, aEncodedMPIV; ++ return ( m_pStorageFile->useStorage() && m_pStorageFile->getEncodedMP( aEncodedMP, aEncodedMPIV ) ); + } + + sal_Bool SAL_CALL PasswordContainer::allowPersistentStoring( sal_Bool bAllow ) +@@ -1228,8 +1277,8 @@ sal_Bool SAL_CALL PasswordContainer::useDefaultMasterPassword( const uno::Refere + + bool bCanChangePassword = true; + // if there is already a stored nondefault master password it should be entered by the user before the change happen +- OUString aEncodedMP; +- if( m_pStorageFile->getEncodedMP( aEncodedMP ) && !aEncodedMP.isEmpty() ) ++ OUString aEncodedMP, aEncodedMPIV; ++ if( m_pStorageFile->getEncodedMP( aEncodedMP, aEncodedMPIV ) && !aEncodedMP.isEmpty() ) + bCanChangePassword = authorizateWithMasterPassword( xTmpHandler ); + + if ( bCanChangePassword ) +@@ -1246,7 +1295,7 @@ sal_Bool SAL_CALL PasswordContainer::useDefaultMasterPassword( const uno::Refere + + // store the empty string to flag the default master password + m_aMasterPasswd = aPass; +- m_pStorageFile->setEncodedMP( OUString(), true ); ++ m_pStorageFile->setEncodedMP( OUString(), OUString(), true ); + + // store all the entries with the new password + for ( const auto& rURL : aPersistent ) +@@ -1270,8 +1319,8 @@ sal_Bool SAL_CALL PasswordContainer::isDefaultMasterPasswordUsed() + if ( !m_pStorageFile ) + throw uno::RuntimeException(); + +- OUString aEncodedMP; +- return ( m_pStorageFile->useStorage() && m_pStorageFile->getEncodedMP( aEncodedMP ) && aEncodedMP.isEmpty() ); ++ OUString aEncodedMP, aEncodedMPIV; ++ return ( m_pStorageFile->useStorage() && m_pStorageFile->getEncodedMP( aEncodedMP, aEncodedMPIV ) && aEncodedMP.isEmpty() ); + } + + +diff --git a/svl/source/passwordcontainer/passwordcontainer.hxx b/svl/source/passwordcontainer/passwordcontainer.hxx +index c947c85..db6cc4a 100644 +--- a/svl/source/passwordcontainer/passwordcontainer.hxx ++++ b/svl/source/passwordcontainer/passwordcontainer.hxx +@@ -36,6 +36,7 @@ + #include + #include + ++#include + #include + #include + +@@ -54,11 +55,12 @@ class NamePassRecord + ::std::vector< OUString > m_aMemPass; + + // persistent passwords are encrypted in one string +- bool m_bHasPersPass; ++ bool m_bHasPersPass; + OUString m_aPersPass; ++ OUString m_aPersistentIV; + + void InitArrays( bool bHasMemoryList, const ::std::vector< OUString >& aMemoryList, +- bool bHasPersistentList, const OUString& aPersistentList ) ++ bool bHasPersistentList, const OUString& aPersistentList, const OUString& aPersistentIV ) + { + m_bHasMemPass = bHasMemoryList; + if ( bHasMemoryList ) +@@ -66,7 +68,10 @@ class NamePassRecord + + m_bHasPersPass = bHasPersistentList; + if ( bHasPersistentList ) ++ { + m_aPersPass = aPersistentList; ++ m_aPersistentIV = aPersistentIV; ++ } + } + + public: +@@ -78,11 +83,12 @@ public: + { + } + +- NamePassRecord( const OUString& aName, const OUString& aPersistentList ) ++ NamePassRecord( const OUString& aName, const OUString& aPersistentList, const OUString& aPersistentIV ) + : m_aName( aName ) + , m_bHasMemPass( false ) + , m_bHasPersPass( true ) + , m_aPersPass( aPersistentList ) ++ , m_aPersistentIV( aPersistentIV ) + { + } + +@@ -91,7 +97,8 @@ public: + , m_bHasMemPass( false ) + , m_bHasPersPass( false ) + { +- InitArrays( aRecord.m_bHasMemPass, aRecord.m_aMemPass, aRecord.m_bHasPersPass, aRecord.m_aPersPass ); ++ InitArrays( aRecord.m_bHasMemPass, aRecord.m_aMemPass, ++ aRecord.m_bHasPersPass, aRecord.m_aPersPass, aRecord.m_aPersistentIV ); + } + + NamePassRecord& operator=( const NamePassRecord& aRecord ) +@@ -100,7 +107,9 @@ public: + + m_aMemPass.clear(); + m_aPersPass.clear(); +- InitArrays( aRecord.m_bHasMemPass, aRecord.m_aMemPass, aRecord.m_bHasPersPass, aRecord.m_aPersPass ); ++ m_aPersistentIV.clear(); ++ InitArrays( aRecord.m_bHasMemPass, aRecord.m_aMemPass, ++ aRecord.m_bHasPersPass, aRecord.m_aPersPass, aRecord.m_aPersistentIV ); + + return *this; + } +@@ -136,15 +145,24 @@ public: + return OUString(); + } + ++ OUString GetPersistentIV() const ++ { ++ if ( m_bHasPersPass ) ++ return m_aPersistentIV; ++ ++ return OUString(); ++ } ++ + void SetMemPasswords( const ::std::vector< OUString >& aMemList ) + { + m_aMemPass = aMemList; + m_bHasMemPass = true; + } + +- void SetPersPasswords( const OUString& aPersList ) ++ void SetPersPasswords( const OUString& aPersList, const OUString& aPersIV ) + { + m_aPersPass = aPersList; ++ m_aPersistentIV = aPersIV; + m_bHasPersPass = true; + } + +@@ -159,6 +177,7 @@ public: + { + m_bHasPersPass = false; + m_aPersPass.clear(); ++ m_aPersistentIV.clear(); + } + } + +@@ -182,6 +201,7 @@ private: + PasswordContainer* mainCont; + bool hasEncoded; + OUString mEncoded; ++ OUString mEncodedIV; + + virtual void ImplCommit() override; + +@@ -202,8 +222,8 @@ public: + + sal_Int32 getStorageVersion(); + +- bool getEncodedMP( OUString& aResult ); +- void setEncodedMP( const OUString& aResult, bool bAcceptEnmpty = false ); ++ bool getEncodedMP( OUString& aResult, OUString& aResultIV ); ++ void setEncodedMP( const OUString& aResult, const OUString& aResultIV, bool bAcceptEmpty = false ); + void setUseStorage( bool bUse ); + bool useStorage(); + +@@ -224,6 +244,29 @@ private: + css::uno::Reference< css::lang::XComponent > mComponent; + SysCredentialsConfig mUrlContainer; + ++ class RandomPool ++ { ++ private: ++ rtlRandomPool m_aRandomPool; ++ public: ++ RandomPool() : m_aRandomPool(rtl_random_createPool()) ++ { ++ } ++ rtlRandomPool get() ++ { ++ return m_aRandomPool; ++ } ++ ~RandomPool() ++ { ++ // Clean up random pool memory ++ rtl_random_destroyPool(m_aRandomPool); ++ } ++ }; ++ ++ RandomPool mRandomPool; ++ ++ OUString createIV(); ++ + /// @throws css::uno::RuntimeException + css::uno::Sequence< css::task::UserRecord > CopyToUserRecordSequence( + const ::std::vector< NamePassRecord >& original, +@@ -274,10 +317,10 @@ css::task::UrlRecord find( + const css::uno::Reference< css::task::XInteractionHandler >& Handler ); + + /// @throws css::uno::RuntimeException +- static ::std::vector< OUString > DecodePasswords( const OUString& aLine, const OUString& aMasterPassword, css::task::PasswordRequestMode mode ); ++ static ::std::vector< OUString > DecodePasswords( const OUString& aLine, const OUString& aIV, const OUString& aMasterPassword, css::task::PasswordRequestMode mode ); + + /// @throws css::uno::RuntimeException +- static OUString EncodePasswords(const std::vector< OUString >& lines, const OUString& aMasterPassword ); ++ static OUString EncodePasswords(const std::vector< OUString >& lines, const OUString& aIV, const OUString& aMasterPassword ); + + public: + PasswordContainer( const css::uno::Reference< css::lang::XMultiServiceFactory >& ); diff --git a/debian/patches/0071-CVE-2022-3140-warn-on-load-when-a-document-binds-an-.patch b/debian/patches/0071-CVE-2022-3140-warn-on-load-when-a-document-binds-an-.patch new file mode 100644 index 00000000000..0ade45da35c --- /dev/null +++ b/debian/patches/0071-CVE-2022-3140-warn-on-load-when-a-document-binds-an-.patch @@ -0,0 +1,1213 @@ +From: =?utf-8?q?Caol=C3=A1n_McNamara?= +Date: Wed, 7 Aug 2019 17:37:11 +0100 +Subject: CVE-2022-3140: warn on load when a document binds an event to a + macro + +a) treat shared/Scripts equivalently to document scripts + +This doesn't automatically warn/block running those scripts when used in a +freshly loaded document on its own however + +because DocumentMacroMode::checkMacrosOnLoading will see at... + +if ( m_xData->m_rDocumentAccess.documentStorageHasMacros() || hasMacroLibrary() ) + +that the document contains no macros and flip the allow macros flag to true so +that potentially new uses of macros added by the user during the edit are +allowed to run + +b) so, add an additional flag to indicate existence of use of macros in a document + +c) for odf import, set it when a script:event-listener tag is encountered +d) for html import when registerScriptEvents or SwFormatINetFormat::SetMacroTable is called +e) for doc import when Read_F_Macro or StoreMacroCmds is called as well for good measure +f) for xls import when registerScriptEvent or ScMacroInfo::SetMacro is called +g) for oox import when VbaProject::attachMacros is called + +Reviewed-on: https://gerrit.libreoffice.org/77387 +Tested-by: Jenkins +Reviewed-by: Christian Lohmaier +(cherry picked from commit 35fe064a67b54b0680b4845477c9b8751edda160) + +Change-Id: Ic1203d8ec7dfc217aa217135033ae9db2888e19b +Reviewed-on: https://gerrit.libreoffice.org/83348 +Reviewed-by: Thorsten Behrens +Tested-by: Thorsten Behrens +origin: https://github.com/LibreOffice/core/commit/96b7887cbfd24bb29e08667b027a86f79c246ce2 +bug-debian-security: https://deb.freexian.com/extended-lts/tracker/CVE-2022-3140 +bug: https://deb.freexian.com/extended-lts/tracker/CVE-2022-3140 +--- + comphelper/source/misc/documentinfo.cxx | 14 ++ + dbaccess/source/core/dataaccess/ModelImpl.cxx | 7 + + .../source/core/dataaccess/databasedocument.cxx | 25 ++- + dbaccess/source/core/inc/ModelImpl.hxx | 2 + + include/comphelper/documentinfo.hxx | 5 +- + include/oox/ole/axcontrol.hxx | 2 + + include/sfx2/docmacromode.hxx | 7 + + include/sfx2/objsh.hxx | 3 + + include/xmloff/xmlimp.hxx | 3 + + oox/source/ole/vbaproject.cxx | 4 + + sc/source/filter/excel/xiescher.cxx | 36 +++- + sc/source/filter/inc/xiescher.hxx | 11 +- + sc/source/ui/vba/vbasheetobject.cxx | 13 +- + sc/source/ui/vba/vbasheetobject.hxx | 4 + + scripting/source/protocolhandler/scripthandler.cxx | 6 +- + sfx2/source/doc/docmacromode.cxx | 2 +- + sfx2/source/doc/objmisc.cxx | 13 +- + sfx2/source/doc/objstor.cxx | 10 ++ + sfx2/source/doc/objxtor.cxx | 1 + + sfx2/source/doc/sfxbasemodel.cxx | 7 + + sfx2/source/inc/objshimp.hxx | 4 +- + sfx2/source/notify/eventsupplier.cxx | 187 ++++++++++++--------- + sw/source/filter/html/htmlform.cxx | 16 +- + sw/source/filter/html/htmlgrin.cxx | 19 +++ + sw/source/filter/html/swhtml.cxx | 1 + + sw/source/filter/html/swhtml.hxx | 4 + + sw/source/filter/ww8/ww8par.cxx | 11 ++ + sw/source/filter/ww8/ww8par.hxx | 2 + + sw/source/filter/ww8/ww8par5.cxx | 2 + + sw/source/filter/ww8/ww8toolbar.cxx | 6 + + xmloff/source/core/xmlimp.cxx | 14 +- + xmloff/source/script/XMLEventImportHelper.cxx | 3 +- + 32 files changed, 330 insertions(+), 114 deletions(-) + +diff --git a/comphelper/source/misc/documentinfo.cxx b/comphelper/source/misc/documentinfo.cxx +index b634505..f0d2840 100644 +--- a/comphelper/source/misc/documentinfo.cxx ++++ b/comphelper/source/misc/documentinfo.cxx +@@ -157,6 +157,20 @@ namespace comphelper { + return sTitle; + } + ++ void DocumentInfo::notifyMacroEventRead(const css::uno::Reference& rModel) ++ { ++ if (!rModel.is()) ++ return; ++ ++ // like BreakMacroSignature of XMLScriptContext use XModel::attachResource ++ // to propagate this notification ++ css::uno::Sequence aMedDescr = rModel->getArgs(); ++ sal_Int32 nNewLen = aMedDescr.getLength() + 1; ++ aMedDescr.realloc(nNewLen); ++ aMedDescr[nNewLen-1].Name = "MacroEventRead"; ++ aMedDescr[nNewLen-1].Value <<= true; ++ rModel->attachResource(rModel->getURL(), aMedDescr); ++ } + + } // namespace comphelper + +diff --git a/dbaccess/source/core/dataaccess/ModelImpl.cxx b/dbaccess/source/core/dataaccess/ModelImpl.cxx +index af71c72..3281d0d 100644 +--- a/dbaccess/source/core/dataaccess/ModelImpl.cxx ++++ b/dbaccess/source/core/dataaccess/ModelImpl.cxx +@@ -376,6 +376,7 @@ ODatabaseModelImpl::ODatabaseModelImpl( const Reference< XComponentContext >& _r + ,m_bSuppressVersionColumns(true) + ,m_bModified(false) + ,m_bDocumentReadOnly(false) ++ ,m_bMacroCallsSeenWhileLoading(false) + ,m_pSharedConnectionManager(nullptr) + ,m_nControllerLockCount(0) + { +@@ -409,6 +410,7 @@ ODatabaseModelImpl::ODatabaseModelImpl( + ,m_bSuppressVersionColumns(true) + ,m_bModified(false) + ,m_bDocumentReadOnly(false) ++ ,m_bMacroCallsSeenWhileLoading(false) + ,m_pSharedConnectionManager(nullptr) + ,m_nControllerLockCount(0) + { +@@ -1274,6 +1276,11 @@ bool ODatabaseModelImpl::documentStorageHasMacros() const + return ( *m_aEmbeddedMacros != eNoMacros ); + } + ++bool ODatabaseModelImpl::macroCallsSeenWhileLoading() const ++{ ++ return m_bMacroCallsSeenWhileLoading; ++} ++ + Reference< XEmbeddedScripts > ODatabaseModelImpl::getEmbeddedDocumentScripts() const + { + return Reference< XEmbeddedScripts >( getModel_noCreate(), UNO_QUERY ); +diff --git a/dbaccess/source/core/dataaccess/databasedocument.cxx b/dbaccess/source/core/dataaccess/databasedocument.cxx +index eee5e84..eb20c56 100644 +--- a/dbaccess/source/core/dataaccess/databasedocument.cxx ++++ b/dbaccess/source/core/dataaccess/databasedocument.cxx +@@ -744,15 +744,24 @@ sal_Bool SAL_CALL ODatabaseDocument::attachResource( const OUString& _rURL, cons + bool ODatabaseDocument::impl_attachResource( const OUString& i_rLogicalDocumentURL, + const Sequence< PropertyValue >& i_rMediaDescriptor, DocumentGuard& _rDocGuard ) + { +- if ( ( i_rLogicalDocumentURL == getURL() ) +- && ( i_rMediaDescriptor.getLength() == 1 ) +- && ( i_rMediaDescriptor[0].Name == "BreakMacroSignature" ) +- ) ++ if (i_rLogicalDocumentURL == getURL()) + { +- // this is a BAD hack of the Basic importer code ... there should be a dedicated API for this, +- // not this bad mis-using of existing interfaces +- return false; +- // (we do not support macro signatures, so we can ignore this call) ++ ::comphelper::NamedValueCollection aArgs(i_rMediaDescriptor); ++ ++ // this misuse of attachresource is a hack of the Basic importer code ++ // repurposing existing interfaces for uses it probably wasn't intended ++ // for ++ ++ // we do not support macro signatures, so we can ignore that request ++ aArgs.remove("BreakMacroSignature"); ++ ++ bool bMacroEventRead = false; ++ if ((aArgs.get( "MacroEventRead" ) >>= bMacroEventRead) && bMacroEventRead) ++ m_pImpl->m_bMacroCallsSeenWhileLoading = true; ++ aArgs.remove( "MacroEventRead" ); ++ ++ if (aArgs.empty()) ++ return false; + } + + // if no URL has been provided, the caller was lazy enough to not call our getURL - which is not allowed anymore, +diff --git a/dbaccess/source/core/inc/ModelImpl.hxx b/dbaccess/source/core/inc/ModelImpl.hxx +index 4a763c5..d7a642a 100644 +--- a/dbaccess/source/core/inc/ModelImpl.hxx ++++ b/dbaccess/source/core/inc/ModelImpl.hxx +@@ -208,6 +208,7 @@ public: + bool m_bSuppressVersionColumns : 1; + bool m_bModified : 1; + bool m_bDocumentReadOnly : 1; ++ bool m_bMacroCallsSeenWhileLoading : 1; + css::uno::Reference< css::beans::XPropertyBag > + m_xSettings; + css::uno::Sequence< OUString > m_aTableFilter; +@@ -436,6 +437,7 @@ public: + virtual void setCurrentMacroExecMode( sal_uInt16 ) override; + virtual OUString getDocumentLocation() const override; + virtual bool documentStorageHasMacros() const override; ++ virtual bool macroCallsSeenWhileLoading() const override; + virtual css::uno::Reference< css::document::XEmbeddedScripts > getEmbeddedDocumentScripts() const override; + virtual SignatureState getScriptingSignatureState() override; + virtual bool hasTrustedScriptingSignature( bool bAllowUIToAddAuthor ) override; +diff --git a/include/comphelper/documentinfo.hxx b/include/comphelper/documentinfo.hxx +index c30d79b..e9c2b15 100644 +--- a/include/comphelper/documentinfo.hxx ++++ b/include/comphelper/documentinfo.hxx +@@ -35,8 +35,11 @@ namespace comphelper { + /** retrieves the UI title of the given document + */ + COMPHELPER_DLLPUBLIC OUString getDocumentTitle( const css::uno::Reference< css::frame::XModel >& _rxDocument ); +- } + ++ /** notify that this document contains a macro event handler ++ */ ++ COMPHELPER_DLLPUBLIC void notifyMacroEventRead( const css::uno::Reference< css::frame::XModel >& _rxDocument ); ++ } + + } // namespace comphelper + +diff --git a/include/oox/ole/axcontrol.hxx b/include/oox/ole/axcontrol.hxx +index a932a7b..434c0c4 100644 +--- a/include/oox/ole/axcontrol.hxx ++++ b/include/oox/ole/axcontrol.hxx +@@ -334,6 +334,8 @@ public: + PropertySet const & rPropSet, + sal_Int32& nOrientation ); + ++ const css::uno::Reference GetDocModel() const { return mxDocModel; } ++ + private: + css::uno::Reference< css::frame::XModel > mxDocModel; + const GraphicHelper& mrGraphicHelper; +diff --git a/include/sfx2/docmacromode.hxx b/include/sfx2/docmacromode.hxx +index f043e36..7e15116 100644 +--- a/include/sfx2/docmacromode.hxx ++++ b/include/sfx2/docmacromode.hxx +@@ -111,6 +111,12 @@ namespace sfx2 + virtual bool + documentStorageHasMacros() const = 0; + ++ /** checks whether the document's contained calls to macros or scripts after loading ++ ++ */ ++ virtual bool ++ macroCallsSeenWhileLoading() const = 0; ++ + /** provides access to the XEmbeddedScripts interface of the document + + Implementations are allowed to return here if and only if they +@@ -272,6 +278,7 @@ namespace sfx2 + + @see isMacroExecutionDisallowed + @see IMacroDocumentAccess::documentStorageHasMacros ++ @see IMacroDocumentAccess::macroCallsSeenWhileLoading + @see hasMacroLibrary + @see IMacroDocumentAccess::checkForBrokenScriptingSignatures + */ +diff --git a/include/sfx2/objsh.hxx b/include/sfx2/objsh.hxx +index ed09fc6..83033e5 100644 +--- a/include/sfx2/objsh.hxx ++++ b/include/sfx2/objsh.hxx +@@ -426,6 +426,9 @@ public: + sal_uInt32 GetModifyPasswordHash() const; + bool SetModifyPasswordHash( sal_uInt32 nHash ); + ++ void SetMacroCallsSeenWhileLoading(); ++ bool GetMacroCallsSeenWhileLoading() const; ++ + const css::uno::Sequence< css::beans::PropertyValue >& GetModifyPasswordInfo() const; + bool SetModifyPasswordInfo( const css::uno::Sequence< css::beans::PropertyValue >& aInfo ); + +diff --git a/include/xmloff/xmlimp.hxx b/include/xmloff/xmlimp.hxx +index f213f21..cfdd00b 100644 +--- a/include/xmloff/xmlimp.hxx ++++ b/include/xmloff/xmlimp.hxx +@@ -241,6 +241,7 @@ class XMLOFF_DLLPUBLIC SvXMLImport : public cppu::WeakImplHelper< + protected: + bool mbIsFormsSupported; + bool mbIsTableShapeSupported; ++ bool mbNotifyMacroEventRead; + + // Create top-level element context. + // This method is called after the namespace map has been updated, but +@@ -577,6 +578,8 @@ public: + bool embeddedFontAlreadyProcessed( const OUString& url ); + + virtual void NotifyEmbeddedFontRead() {}; ++ // something referencing a macro/script was imported ++ void NotifyMacroEventRead(); + + bool needFixPositionAfterZ() const; + }; +diff --git a/oox/source/ole/vbaproject.cxx b/oox/source/ole/vbaproject.cxx +index 5a77994..f7ae54f 100644 +--- a/oox/source/ole/vbaproject.cxx ++++ b/oox/source/ole/vbaproject.cxx +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -515,6 +516,8 @@ void VbaProject::attachMacros() + { + if( !maMacroAttachers.empty() && mxContext.is() ) try + { ++ comphelper::DocumentInfo::notifyMacroEventRead(mxDocModel); ++ + Reference< XMultiComponentFactory > xFactory( mxContext->getServiceManager(), UNO_SET_THROW ); + Sequence< Any > aArgs( 2 ); + aArgs[ 0 ] <<= mxDocModel; +@@ -522,6 +525,7 @@ void VbaProject::attachMacros() + Reference< XVBAMacroResolver > xResolver( xFactory->createInstanceWithArgumentsAndContext( + "com.sun.star.script.vba.VBAMacroResolver", aArgs, mxContext ), UNO_QUERY_THROW ); + maMacroAttachers.forEachMem( &VbaMacroAttacherBase::resolveAndAttachMacro, ::std::cref( xResolver ) ); ++ + } + catch(const Exception& ) + { +diff --git a/sc/source/filter/excel/xiescher.cxx b/sc/source/filter/excel/xiescher.cxx +index c41afaa..a58d8ec 100644 +--- a/sc/source/filter/excel/xiescher.cxx ++++ b/sc/source/filter/excel/xiescher.cxx +@@ -48,6 +48,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -161,7 +162,8 @@ XclImpDrawObjBase::XclImpDrawObjBase( const XclImpRoot& rRoot ) : + mbSimpleMacro( true ), + mbProcessSdr( true ), + mbInsertSdr( true ), +- mbCustomDff( false ) ++ mbCustomDff( false ), ++ mbNotifyMacroEventRead( false ) + { + } + +@@ -497,7 +499,18 @@ SdrObjectPtr XclImpDrawObjBase::CreateSdrObject( XclImpDffConverter& rDffConv, c + return xSdrObj; + } + +-void XclImpDrawObjBase::PreProcessSdrObject( XclImpDffConverter& rDffConv, SdrObject& rSdrObj ) const ++void XclImpDrawObjBase::NotifyMacroEventRead() ++{ ++ if (mbNotifyMacroEventRead) ++ return; ++ SfxObjectShell* pDocShell = GetDocShell(); ++ if (!pDocShell) ++ return; ++ comphelper::DocumentInfo::notifyMacroEventRead(pDocShell->GetModel()); ++ mbNotifyMacroEventRead = true; ++} ++ ++void XclImpDrawObjBase::PreProcessSdrObject( XclImpDffConverter& rDffConv, SdrObject& rSdrObj ) + { + // default: front layer, derived classes may have to set other layer in DoPreProcessSdrObj() + rSdrObj.NbcSetLayer( SC_LAYER_FRONT ); +@@ -524,7 +537,10 @@ void XclImpDrawObjBase::PreProcessSdrObject( XclImpDffConverter& rDffConv, SdrOb + { + if( ScMacroInfo* pInfo = ScDrawLayer::GetMacroInfo( &rSdrObj, true ) ) + { +- pInfo->SetMacro( XclTools::GetSbMacroUrl( maMacroName, GetDocShell() ) ); ++ OUString sMacro = XclTools::GetSbMacroUrl(maMacroName, GetDocShell()); ++ if (!sMacro.isEmpty()) ++ NotifyMacroEventRead(); ++ pInfo->SetMacro(sMacro); + pInfo->SetHlink( maHyperlink ); + } + } +@@ -3271,7 +3287,8 @@ XclImpDffConverter::XclImpDffConverter( const XclImpRoot& rRoot, SvStream& rDffS + XclImpSimpleDffConverter( rRoot, rDffStrm ), + oox::ole::MSConvertOCXControls( rRoot.GetDocShell()->GetModel() ), + maStdFormName( "Standard" ), +- mnOleImpFlags( 0 ) ++ mnOleImpFlags( 0 ), ++ mbNotifyMacroEventRead(false) + { + const SvtFilterOptions& rFilterOpt = SvtFilterOptions::Get(); + if( rFilterOpt.IsMathType2Math() ) +@@ -3328,7 +3345,7 @@ void XclImpDffConverter::InitializeDrawing( XclImpDrawing& rDrawing, SdrModel& r + SetModel( &xConvData->mrSdrModel, 1440 ); + } + +-void XclImpDffConverter::ProcessObject( SdrObjList& rObjList, const XclImpDrawObjBase& rDrawObj ) ++void XclImpDffConverter::ProcessObject( SdrObjList& rObjList, XclImpDrawObjBase& rDrawObj ) + { + if( rDrawObj.IsProcessSdrObj() ) + { +@@ -3378,6 +3395,14 @@ void XclImpDffConverter::FinalizeDrawing() + SetModel( &maDataStack.back()->mrSdrModel, 1440 ); + } + ++void XclImpDffConverter::NotifyMacroEventRead() ++{ ++ if (mbNotifyMacroEventRead) ++ return; ++ comphelper::DocumentInfo::notifyMacroEventRead(mxModel); ++ mbNotifyMacroEventRead = true; ++} ++ + SdrObjectPtr XclImpDffConverter::CreateSdrObject( const XclImpTbxObjBase& rTbxObj, const tools::Rectangle& rAnchorRect ) + { + SdrObjectPtr xSdrObj; +@@ -3400,6 +3425,7 @@ SdrObjectPtr XclImpDffConverter::CreateSdrObject( const XclImpTbxObjBase& rTbxOb + ScriptEventDescriptor aDescriptor; + if( (rConvData.mnLastCtrlIndex >= 0) && rTbxObj.FillMacroDescriptor( aDescriptor ) ) + { ++ NotifyMacroEventRead(); + Reference< XEventAttacherManager > xEventMgr( rConvData.mxCtrlForm, UNO_QUERY_THROW ); + xEventMgr->registerScriptEvent( rConvData.mnLastCtrlIndex, aDescriptor ); + } +diff --git a/sc/source/filter/inc/xiescher.hxx b/sc/source/filter/inc/xiescher.hxx +index 015b7c7..2d42ff6 100644 +--- a/sc/source/filter/inc/xiescher.hxx ++++ b/sc/source/filter/inc/xiescher.hxx +@@ -126,7 +126,7 @@ public: + SdrObjectPtr CreateSdrObject( XclImpDffConverter& rDffConv, const tools::Rectangle& rAnchorRect, bool bIsDff ) const; + /** Additional processing for the passed SdrObject before insertion into + the drawing page (calls virtual DoPreProcessSdrObj() function). */ +- void PreProcessSdrObject( XclImpDffConverter& rDffConv, SdrObject& rSdrObj ) const; ++ void PreProcessSdrObject( XclImpDffConverter& rDffConv, SdrObject& rSdrObj ); + /** Additional processing for the passed SdrObject after insertion into the + drawing page (calls virtual DoPostProcessSdrObj() function). */ + void PostProcessSdrObject( XclImpDffConverter& rDffConv, SdrObject& rSdrObj ) const; +@@ -173,6 +173,9 @@ protected: + virtual void DoPreProcessSdrObj( XclImpDffConverter& rDffConv, SdrObject& rSdrObj ) const; + /** Derived classes may perform additional processing for the passed SdrObject after insertion. */ + virtual void DoPostProcessSdrObj( XclImpDffConverter& rDffConv, SdrObject& rSdrObj ) const; ++ ++ /** Notify that the document contains a macro event handler */ ++ void NotifyMacroEventRead(); + private: + /** Reads the contents of a BIFF3 OBJ record. */ + void ImplReadObj3( XclImpStream& rStrm ); +@@ -203,6 +206,7 @@ private: + bool mbProcessSdr; /// true = Object is valid, do processing and insertion. + bool mbInsertSdr; /// true = Insert the SdrObject into draw page. + bool mbCustomDff; /// true = Recreate SdrObject in DFF import. ++ bool mbNotifyMacroEventRead; /// true == If we have already seen a macro event + }; + + class XclImpDrawObjVector +@@ -929,7 +933,7 @@ public: + /** Initially called before the objects of the passed drawing manager are converted. */ + void InitializeDrawing( XclImpDrawing& rDrawing, SdrModel& rSdrModel, SdrPage& rSdrPage ); + /** Processes BIFF5 drawing objects without DFF data, inserts into the passed object list. */ +- void ProcessObject( SdrObjList& rObjList, const XclImpDrawObjBase& rDrawObj ); ++ void ProcessObject( SdrObjList& rObjList, XclImpDrawObjBase& rDrawObj ); + /** Processes all objects in the passed list. */ + void ProcessDrawing( const XclImpDrawObjVector& rDrawObjs ); + /** Processes a drawing container in the passed DFF stream, converts all objects. */ +@@ -1018,6 +1022,8 @@ private: + void InsertSdrObject( SdrObjList& rObjList, const XclImpDrawObjBase& rDrawObj, SdrObject* pSdrObj ); + /** Initializes the mxCtrlForm referring to the standard controls form. */ + void InitControlForm(); ++ /** Notify that this document contains a macro event handler */ ++ void NotifyMacroEventRead(); + + private: + typedef std::shared_ptr< ScfProgressBar > ScfProgressBarRef; +@@ -1030,6 +1036,7 @@ private: + XclImpDffConvDataStack maDataStack; /// Stack for registered drawing managers. + sal_uInt32 mnOleImpFlags; /// Application OLE import settings. + sal_Int32 mnDefTextMargin; /// Default margin in text boxes. ++ bool mbNotifyMacroEventRead; /// If we have already seen a macro event + }; + + // Drawing manager ============================================================ +diff --git a/sc/source/ui/vba/vbasheetobject.cxx b/sc/source/ui/vba/vbasheetobject.cxx +index ac58ce9..6680952 100644 +--- a/sc/source/ui/vba/vbasheetobject.cxx ++++ b/sc/source/ui/vba/vbasheetobject.cxx +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -296,7 +297,8 @@ ScVbaControlObjectBase::ScVbaControlObjectBase( + ListenerType eListenerType ) : + ScVbaControlObject_BASE( rxParent, rxContext, rxModel, uno::Reference< drawing::XShape >( rxControlShape, uno::UNO_QUERY_THROW ) ), + mxFormIC( rxFormIC, uno::UNO_SET_THROW ), +- mxControlProps( rxControlShape->getControl(), uno::UNO_QUERY_THROW ) ++ mxControlProps( rxControlShape->getControl(), uno::UNO_QUERY_THROW ), ++ mbNotifyMacroEventRead(false) + { + // set listener and event name to be used for OnAction attribute + switch( eListenerType ) +@@ -354,6 +356,14 @@ OUString SAL_CALL ScVbaControlObjectBase::getOnAction() + return OUString(); + } + ++void ScVbaControlObjectBase::NotifyMacroEventRead() ++{ ++ if (mbNotifyMacroEventRead) ++ return; ++ comphelper::DocumentInfo::notifyMacroEventRead(mxModel); ++ mbNotifyMacroEventRead = true; ++} ++ + void SAL_CALL ScVbaControlObjectBase::setOnAction( const OUString& rMacroName ) + { + uno::Reference< script::XEventAttacherManager > xEventMgr( mxFormIC, uno::UNO_QUERY_THROW ); +@@ -373,6 +383,7 @@ void SAL_CALL ScVbaControlObjectBase::setOnAction( const OUString& rMacroName ) + aDescriptor.EventMethod = maEventMethod; + aDescriptor.ScriptType = "Script"; + aDescriptor.ScriptCode = makeMacroURL( aResolvedMacro.msResolvedMacro ); ++ NotifyMacroEventRead(); + xEventMgr->registerScriptEvent( nIndex, aDescriptor ); + } + } +diff --git a/sc/source/ui/vba/vbasheetobject.hxx b/sc/source/ui/vba/vbasheetobject.hxx +index 721bcf9..9bc1895 100644 +--- a/sc/source/ui/vba/vbasheetobject.hxx ++++ b/sc/source/ui/vba/vbasheetobject.hxx +@@ -164,6 +164,9 @@ public: + virtual sal_Bool SAL_CALL getAutoSize() override; + virtual void SAL_CALL setAutoSize( sal_Bool bAutoSize ) override; + ++ /// Notify that the document contains a macro event handler ++ void NotifyMacroEventRead(); ++ + protected: + /// @throws css::uno::RuntimeException + sal_Int32 getModelIndexInForm() const; +@@ -173,6 +176,7 @@ protected: + css::uno::Reference< css::beans::XPropertySet > mxControlProps; + OUString maListenerType; + OUString maEventMethod; ++ bool mbNotifyMacroEventRead; + }; + + typedef ::cppu::ImplInheritanceHelper< ScVbaControlObjectBase, ov::excel::XButton > ScVbaButton_BASE; +diff --git a/scripting/source/protocolhandler/scripthandler.cxx b/scripting/source/protocolhandler/scripthandler.cxx +index e7cd12a..85b9f3e 100644 +--- a/scripting/source/protocolhandler/scripthandler.cxx ++++ b/scripting/source/protocolhandler/scripthandler.cxx +@@ -124,7 +124,6 @@ void SAL_CALL ScriptProtocolHandler::dispatchWithNotification( + const URL& aURL, const Sequence < PropertyValue >& lArgs, + const Reference< XDispatchResultListener >& xListener ) + { +- + bool bSuccess = false; + Any invokeResult; + bool bCaughtException = false; +@@ -161,12 +160,11 @@ void SAL_CALL ScriptProtocolHandler::dispatchWithNotification( + { + xListener->dispatchFinished( aEvent ) ; + } +- catch(RuntimeException & e) ++ catch(const RuntimeException &e) + { + SAL_WARN("scripting", + "ScriptProtocolHandler::dispatchWithNotification: caught RuntimeException" +- "while dispatchFinished with failure of the execution " +- << e ); ++ "while dispatchFinished with failure of the execution" << e); + } + } + return; +diff --git a/sfx2/source/doc/docmacromode.cxx b/sfx2/source/doc/docmacromode.cxx +index c62a5ab..6e01b92 100644 +--- a/sfx2/source/doc/docmacromode.cxx ++++ b/sfx2/source/doc/docmacromode.cxx +@@ -397,7 +397,7 @@ namespace sfx2 + } + else + { +- if ( m_xData->m_rDocumentAccess.documentStorageHasMacros() || hasMacroLibrary() ) ++ if (m_xData->m_rDocumentAccess.documentStorageHasMacros() || hasMacroLibrary() || m_xData->m_rDocumentAccess.macroCallsSeenWhileLoading()) + { + bAllow = adjustMacroMode( rxInteraction ); + } +diff --git a/sfx2/source/doc/objmisc.cxx b/sfx2/source/doc/objmisc.cxx +index 0c9d1a8..248cabf 100644 +--- a/sfx2/source/doc/objmisc.cxx ++++ b/sfx2/source/doc/objmisc.cxx +@@ -1390,13 +1390,7 @@ ErrCode SfxObjectShell::CallXScript( const Reference< XInterface >& _rxScriptCon + Any aException; + try + { +- css::uno::Reference urifac( +- css::uri::UriReferenceFactory::create(comphelper::getProcessComponentContext())); +- css::uno::Reference uri( +- urifac->parse(_rScriptURL), css::uno::UNO_QUERY_THROW); +- auto const loc = uri->getParameter("location"); +- bool bIsDocumentScript = loc == "document"; +- if ( bIsDocumentScript && !lcl_isScriptAccessAllowed_nothrow( _rxScriptContext ) ) ++ if ( !lcl_isScriptAccessAllowed_nothrow( _rxScriptContext ) ) + return ERRCODE_IO_ACCESSDENIED; + + if ( UnTrustedScript(_rScriptURL) ) +@@ -1773,6 +1767,11 @@ bool SfxObjectShell_Impl::documentStorageHasMacros() const + return ::sfx2::DocumentMacroMode::storageHasMacros( m_xDocStorage ); + } + ++bool SfxObjectShell_Impl::macroCallsSeenWhileLoading() const ++{ ++ return rDocShell.GetMacroCallsSeenWhileLoading(); ++} ++ + Reference< XEmbeddedScripts > SfxObjectShell_Impl::getEmbeddedDocumentScripts() const + { + return Reference< XEmbeddedScripts >( rDocShell.GetModel(), UNO_QUERY ); +diff --git a/sfx2/source/doc/objstor.cxx b/sfx2/source/doc/objstor.cxx +index 716455c..0b4b933 100644 +--- a/sfx2/source/doc/objstor.cxx ++++ b/sfx2/source/doc/objstor.cxx +@@ -3562,6 +3562,16 @@ void SfxObjectShell::SetConfigOptionsChecked( bool bChecked ) + pImpl->m_bConfigOptionsChecked = bChecked; + } + ++void SfxObjectShell::SetMacroCallsSeenWhileLoading() ++{ ++ pImpl->m_bMacroCallsSeenWhileLoading = true; ++} ++ ++bool SfxObjectShell::GetMacroCallsSeenWhileLoading() const ++{ ++ return pImpl->m_bMacroCallsSeenWhileLoading; ++} ++ + bool SfxObjectShell::QuerySaveSizeExceededModules_Impl( const uno::Reference< task::XInteractionHandler >& xHandler ) + { + #if !HAVE_FEATURE_SCRIPTING +diff --git a/sfx2/source/doc/objxtor.cxx b/sfx2/source/doc/objxtor.cxx +index 88270d1..b3309ba 100644 +--- a/sfx2/source/doc/objxtor.cxx ++++ b/sfx2/source/doc/objxtor.cxx +@@ -230,6 +230,7 @@ SfxObjectShell_Impl::SfxObjectShell_Impl( SfxObjectShell& _rDocShell ) + ,m_bSharedXMLFlag( false ) + ,m_bAllowShareControlFileClean( true ) + ,m_bConfigOptionsChecked( false ) ++ ,m_bMacroCallsSeenWhileLoading( false ) + ,lErr(ERRCODE_NONE) + ,nEventId ( SfxEventHintId::NONE ) + ,pReloadTimer ( nullptr) +diff --git a/sfx2/source/doc/sfxbasemodel.cxx b/sfx2/source/doc/sfxbasemodel.cxx +index 752bec0..1bbba23 100644 +--- a/sfx2/source/doc/sfxbasemodel.cxx ++++ b/sfx2/source/doc/sfxbasemodel.cxx +@@ -875,8 +875,15 @@ sal_Bool SAL_CALL SfxBaseModel::attachResource( const OUString& + pObjectShell->BreakMacroSign_Impl( bBreakMacroSign ); + } + ++ bool bMacroEventRead = false; ++ if ((aArgs.get("MacroEventRead") >>= bMacroEventRead) && bMacroEventRead) ++ { ++ pObjectShell->SetMacroCallsSeenWhileLoading(); ++ } ++ + aArgs.remove( "WinExtent" ); + aArgs.remove( "BreakMacroSignature" ); ++ aArgs.remove( "MacroEventRead" ); + aArgs.remove( "Stream" ); + aArgs.remove( "InputStream" ); + aArgs.remove( "URL" ); +diff --git a/sfx2/source/inc/objshimp.hxx b/sfx2/source/inc/objshimp.hxx +index 67628d5..0b403e0 100644 +--- a/sfx2/source/inc/objshimp.hxx ++++ b/sfx2/source/inc/objshimp.hxx +@@ -90,7 +90,8 @@ struct SfxObjectShell_Impl : public ::sfx2::IMacroDocumentAccess + bSaveVersionOnClose:1, + m_bSharedXMLFlag:1, // whether the document should be edited in shared mode + m_bAllowShareControlFileClean:1, // whether the flag should be stored in xml file +- m_bConfigOptionsChecked:1; // whether or not the user options are checked after the Options dialog is closed. ++ m_bConfigOptionsChecked:1, // whether or not the user options are checked after the Options dialog is closed. ++ m_bMacroCallsSeenWhileLoading:1; // whether or not the user options are checked after the Options dialog is closed. + + IndexBitSet aBitSet; + ErrCode lErr; +@@ -139,6 +140,7 @@ struct SfxObjectShell_Impl : public ::sfx2::IMacroDocumentAccess + virtual void setCurrentMacroExecMode( sal_uInt16 nMacroMode ) override; + virtual OUString getDocumentLocation() const override; + virtual bool documentStorageHasMacros() const override; ++ virtual bool macroCallsSeenWhileLoading() const override; + virtual css::uno::Reference< css::document::XEmbeddedScripts > getEmbeddedDocumentScripts() const override; + virtual SignatureState getScriptingSignatureState() override; + +diff --git a/sfx2/source/notify/eventsupplier.cxx b/sfx2/source/notify/eventsupplier.cxx +index 2656e9c..3861149 100644 +--- a/sfx2/source/notify/eventsupplier.cxx ++++ b/sfx2/source/notify/eventsupplier.cxx +@@ -19,11 +19,13 @@ + + #include + ++#include ++#include + #include +- + #include + #include + #include ++#include + #include + #include + #include +@@ -46,6 +48,8 @@ + #include + + using namespace css; ++using namespace ::com::sun::star; ++ + + + // --- XNameReplace --- +@@ -167,102 +171,129 @@ sal_Bool SAL_CALL SfxEvents_Impl::hasElements() + return false; + } + ++namespace ++{ ++ bool lcl_isScriptAccessAllowed_nothrow(const uno::Reference& rxScriptContext) ++ { ++ try ++ { ++ uno::Reference xScripts(rxScriptContext, uno::UNO_QUERY); ++ if (!xScripts.is()) ++ { ++ uno::Reference xContext(rxScriptContext, uno::UNO_QUERY_THROW); ++ xScripts.set(xContext->getScriptContainer(), uno::UNO_SET_THROW); ++ } ++ ++ return xScripts->getAllowMacroExecution(); ++ } ++ catch( const uno::Exception& ) ++ { ++ DBG_UNHANDLED_EXCEPTION("sfx.doc"); ++ } ++ return false; ++ } ++} ++ + void SfxEvents_Impl::Execute( uno::Any const & aEventData, const document::DocumentEvent& aTrigger, SfxObjectShell* pDoc ) + { + uno::Sequence < beans::PropertyValue > aProperties; +- if ( aEventData >>= aProperties ) +- { +- OUString aType; +- OUString aScript; +- OUString aLibrary; +- OUString aMacroName; ++ if ( !(aEventData >>= aProperties) ) ++ return; + +- sal_Int32 nCount = aProperties.getLength(); ++ OUString aType; ++ OUString aScript; ++ OUString aLibrary; ++ OUString aMacroName; + +- if ( !nCount ) +- return; ++ sal_Int32 nCount = aProperties.getLength(); + +- sal_Int32 nIndex = 0; +- while ( nIndex < nCount ) +- { +- if ( aProperties[ nIndex ].Name == PROP_EVENT_TYPE ) +- aProperties[ nIndex ].Value >>= aType; +- else if ( aProperties[ nIndex ].Name == PROP_SCRIPT ) +- aProperties[ nIndex ].Value >>= aScript; +- else if ( aProperties[ nIndex ].Name == PROP_LIBRARY ) +- aProperties[ nIndex ].Value >>= aLibrary; +- else if ( aProperties[ nIndex ].Name == PROP_MACRO_NAME ) +- aProperties[ nIndex ].Value >>= aMacroName; +- else { +- OSL_FAIL("Unknown property value!"); +- } +- nIndex += 1; +- } ++ if ( !nCount ) ++ return; + +- if (aType == STAR_BASIC && !aScript.isEmpty()) +- { +- uno::Any aAny; +- SfxMacroLoader::loadMacro( aScript, aAny, pDoc ); ++ sal_Int32 nIndex = 0; ++ while ( nIndex < nCount ) ++ { ++ if ( aProperties[ nIndex ].Name == PROP_EVENT_TYPE ) ++ aProperties[ nIndex ].Value >>= aType; ++ else if ( aProperties[ nIndex ].Name == PROP_SCRIPT ) ++ aProperties[ nIndex ].Value >>= aScript; ++ else if ( aProperties[ nIndex ].Name == PROP_LIBRARY ) ++ aProperties[ nIndex ].Value >>= aLibrary; ++ else if ( aProperties[ nIndex ].Name == PROP_MACRO_NAME ) ++ aProperties[ nIndex ].Value >>= aMacroName; ++ else { ++ OSL_FAIL("Unknown property value!"); + } +- else if (aType == "Service" || +- aType == "Script") +- { +- bool bAllowed = false; +- util::URL aURL; +- if (!aScript.isEmpty()) +- { +- uno::Reference < util::XURLTransformer > xTrans( util::URLTransformer::create( ::comphelper::getProcessComponentContext() ) ); ++ nIndex += 1; ++ } + +- aURL.Complete = aScript; +- xTrans->parseStrict( aURL ); ++ if (aType.isEmpty()) ++ { ++ // Empty type means no active binding for the event. Just ignore do nothing. ++ return; ++ } + +- bAllowed = !SfxObjectShell::UnTrustedScript(aURL.Complete); +- } ++ if (aScript.isEmpty()) ++ return; + +- if (bAllowed) +- { +- SfxViewFrame* pView = pDoc ? +- SfxViewFrame::GetFirst( pDoc ) : +- SfxViewFrame::Current(); ++ if (!pDoc) ++ pDoc = SfxObjectShell::Current(); + +- uno::Reference +- < frame::XDispatchProvider > xProv; ++ if (pDoc && !lcl_isScriptAccessAllowed_nothrow(pDoc->GetModel())) ++ return; + +- if ( pView != nullptr ) +- { +- xProv = uno::Reference +- < frame::XDispatchProvider > ( +- pView->GetFrame().GetFrameInterface(), uno::UNO_QUERY ); +- } +- else +- { +- xProv.set( frame::Desktop::create( ::comphelper::getProcessComponentContext() ), +- uno::UNO_QUERY ); +- } ++ if (aType == STAR_BASIC) ++ { ++ uno::Any aAny; ++ SfxMacroLoader::loadMacro( aScript, aAny, pDoc ); ++ } ++ else if (aType == "Service" || aType == "Script") ++ { ++ util::URL aURL; ++ uno::Reference < util::XURLTransformer > xTrans( util::URLTransformer::create( ::comphelper::getProcessComponentContext() ) ); + +- uno::Reference < frame::XDispatch > xDisp; +- if ( xProv.is() ) +- xDisp = xProv->queryDispatch( aURL, OUString(), 0 ); ++ aURL.Complete = aScript; ++ xTrans->parseStrict( aURL ); + +- if ( xDisp.is() ) +- { ++ bool bAllowed = !SfxObjectShell::UnTrustedScript(aURL.Complete); + +- beans::PropertyValue aEventParam; +- aEventParam.Value <<= aTrigger; +- uno::Sequence< beans::PropertyValue > aDispatchArgs( &aEventParam, 1 ); +- xDisp->dispatch( aURL, aDispatchArgs ); +- } +- } +- } +- else if ( aType.isEmpty() ) +- { +- // Empty type means no active binding for the event. Just ignore do nothing. +- } +- else ++ if (bAllowed) + { +- SAL_WARN( "sfx.notify", "notifyEvent(): Unsupported event type" ); ++ SfxViewFrame* pView = SfxViewFrame::GetFirst(pDoc); ++ ++ uno::Reference ++ < frame::XDispatchProvider > xProv; ++ ++ if ( pView != nullptr ) ++ { ++ xProv = uno::Reference ++ < frame::XDispatchProvider > ( ++ pView->GetFrame().GetFrameInterface(), uno::UNO_QUERY ); ++ } ++ else ++ { ++ xProv.set( frame::Desktop::create( ::comphelper::getProcessComponentContext() ), ++ uno::UNO_QUERY ); ++ } ++ ++ uno::Reference < frame::XDispatch > xDisp; ++ if ( xProv.is() ) ++ xDisp = xProv->queryDispatch( aURL, OUString(), 0 ); ++ ++ if ( xDisp.is() ) ++ { ++ ++ beans::PropertyValue aEventParam; ++ aEventParam.Value <<= aTrigger; ++ uno::Sequence< beans::PropertyValue > aDispatchArgs( &aEventParam, 1 ); ++ xDisp->dispatch( aURL, aDispatchArgs ); ++ } + } + } ++ else ++ { ++ SAL_WARN( "sfx.notify", "notifyEvent(): Unsupported event type" ); ++ } + } + + +diff --git a/sw/source/filter/html/htmlform.cxx b/sw/source/filter/html/htmlform.cxx +index 358cac7..e6d0631 100644 +--- a/sw/source/filter/html/htmlform.cxx ++++ b/sw/source/filter/html/htmlform.cxx +@@ -18,6 +18,7 @@ + */ + + #include ++#include + #include + #include + #include +@@ -735,7 +736,7 @@ void SwHTMLParser::SetControlSize( const uno::Reference< drawing::XShape >& rSha + rShape->setSize( aSz ); + } + +-static void lcl_html_setEvents( ++static bool lcl_html_setEvents( + const uno::Reference< script::XEventAttacherManager > & rEvtMn, + sal_uInt32 nPos, const SvxMacroTableDtor& rMacroTable, + const std::vector& rUnoMacroTable, +@@ -764,7 +765,7 @@ static void lcl_html_setEvents( + } + + if( 0==nEvents ) +- return; ++ return false; + + Sequence aDescs( nEvents ); + script::ScriptEventDescriptor* pDescs = aDescs.getArray(); +@@ -822,6 +823,7 @@ static void lcl_html_setEvents( + } + } + rEvtMn->registerScriptEvents( nPos, aDescs ); ++ return true; + } + + static void lcl_html_getEvents( const OUString& rOption, const OUString& rValue, +@@ -1190,10 +1192,12 @@ uno::Reference< drawing::XShape > SwHTMLParser::InsertControl( + // To prevent previous JavaScript-Events from being called, these events will only be set retroactively + if( !rMacroTable.empty() || !rUnoMacroTable.empty() ) + { +- lcl_html_setEvents( m_pFormImpl->GetControlEventManager(), ++ bool bHasEvents = lcl_html_setEvents( m_pFormImpl->GetControlEventManager(), + rFormComps->getCount() - 1, + rMacroTable, rUnoMacroTable, rUnoMacroParamTable, + GetScriptTypeString(m_pFormImpl->GetHeaderAttrs()) ); ++ if (bHasEvents) ++ NotifyMacroEventRead(); + } + + if( bSetFCompPropSet ) +@@ -1355,10 +1359,14 @@ void SwHTMLParser::NewForm( bool bAppend ) + Any aAny( &xForm, cppu::UnoType::get()); + rForms->insertByIndex( rForms->getCount(), aAny ); + if( !aMacroTable.empty() ) +- lcl_html_setEvents( m_pFormImpl->GetFormEventManager(), ++ { ++ bool bHasEvents = lcl_html_setEvents( m_pFormImpl->GetFormEventManager(), + rForms->getCount() - 1, + aMacroTable, aUnoMacroTable, aUnoMacroParamTable, + rDfltScriptType ); ++ if (bHasEvents) ++ NotifyMacroEventRead(); ++ } + } + + void SwHTMLParser::EndForm( bool bAppend ) +diff --git a/sw/source/filter/html/htmlgrin.cxx b/sw/source/filter/html/htmlgrin.cxx +index 8e61296..9f6f932 100644 +--- a/sw/source/filter/html/htmlgrin.cxx ++++ b/sw/source/filter/html/htmlgrin.cxx +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -866,7 +867,10 @@ IMAGE_SETEVENT: + } + + if( !aMacroItem.GetMacroTable().empty() ) ++ { ++ NotifyMacroEventRead(); + pFlyFormat->SetFormatAttr( aMacroItem ); ++ } + + // tdf#87083 If the graphic has not been loaded yet, then load it now. + // Otherwise it may be loaded during the first paint of the object and it +@@ -1297,7 +1301,10 @@ ANCHOR_SETEVENT: + aINetFormat.SetName( aName ); + + if( !aMacroTable.empty() ) ++ { ++ NotifyMacroEventRead(); + aINetFormat.SetMacroTable( &aMacroTable ); ++ } + + // set the default attribute + InsertAttr(&m_xAttrTab->pINetFormat, aINetFormat, xCntxt.get()); +@@ -1509,4 +1516,16 @@ void SwHTMLParser::StripTrailingPara() + } + } + ++void SwHTMLParser::NotifyMacroEventRead() ++{ ++ if (m_bNotifyMacroEventRead) ++ return; ++ SwDocShell *pDocSh = m_xDoc->GetDocShell(); ++ if (!pDocSh) ++ return; ++ uno::Reference const xModel(pDocSh->GetBaseModel()); ++ comphelper::DocumentInfo::notifyMacroEventRead(xModel); ++ m_bNotifyMacroEventRead = true; ++} ++ + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ +diff --git a/sw/source/filter/html/swhtml.cxx b/sw/source/filter/html/swhtml.cxx +index 508bbc1..85aa9eb 100644 +--- a/sw/source/filter/html/swhtml.cxx ++++ b/sw/source/filter/html/swhtml.cxx +@@ -309,6 +309,7 @@ SwHTMLParser::SwHTMLParser( SwDoc* pD, SwPaM& rCursor, SvStream& rIn, + m_bRemoveHidden( false ), + m_bBodySeen( false ), + m_bReadingHeaderOrFooter( false ), ++ m_bNotifyMacroEventRead( false ), + m_isInTableStructure(false), + m_nTableDepth( 0 ), + m_pTempViewFrame(nullptr) +diff --git a/sw/source/filter/html/swhtml.hxx b/sw/source/filter/html/swhtml.hxx +index d649f4a..34a7260 100644 +--- a/sw/source/filter/html/swhtml.hxx ++++ b/sw/source/filter/html/swhtml.hxx +@@ -496,6 +496,7 @@ class SwHTMLParser : public SfxHTMLParser, public SwClient + + bool m_bBodySeen : 1; + bool m_bReadingHeaderOrFooter : 1; ++ bool m_bNotifyMacroEventRead : 1; + bool m_isInTableStructure; + + sal_Int32 m_nTableDepth; +@@ -963,6 +964,9 @@ public: + } + + void DeregisterHTMLTable(HTMLTable* pOld); ++ ++ void NotifyMacroEventRead(); ++ + }; + + struct SwPendingStackData +diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx +index bcc16ad..f63916d 100644 +--- a/sw/source/filter/ww8/ww8par.cxx ++++ b/sw/source/filter/ww8/ww8par.cxx +@@ -39,6 +39,7 @@ + #include + + #include ++#include + #include + #include + +@@ -4293,6 +4294,7 @@ SwWW8ImplReader::SwWW8ImplReader(sal_uInt8 nVersionPara, SotStorage* pStorage, + , m_aTOXEndCps() + , m_aCurrAttrCP(-1) + , m_bOnLoadingMain(false) ++ , m_bNotifyMacroEventRead(false) + { + m_pStrm->SetEndian( SvStreamEndian::LITTLE ); + m_aApos.push_back(false); +@@ -6563,4 +6565,13 @@ std::unique_ptr SwWW8ImplReader::SetCurrentItemSet(SfxItemSet* pItem + return xRet; + } + ++void SwWW8ImplReader::NotifyMacroEventRead() ++{ ++ if (m_bNotifyMacroEventRead) ++ return; ++ uno::Reference const xModel(m_rDoc.GetDocShell()->GetBaseModel()); ++ comphelper::DocumentInfo::notifyMacroEventRead(xModel); ++ m_bNotifyMacroEventRead = true; ++} ++ + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ +diff --git a/sw/source/filter/ww8/ww8par.hxx b/sw/source/filter/ww8/ww8par.hxx +index b4fbecf..1a1f988 100644 +--- a/sw/source/filter/ww8/ww8par.hxx ++++ b/sw/source/filter/ww8/ww8par.hxx +@@ -1367,6 +1367,7 @@ private: + cp_vector m_aEndParaPos; + WW8_CP m_aCurrAttrCP; + bool m_bOnLoadingMain:1; ++ bool m_bNotifyMacroEventRead:1; + + const SprmReadInfo& GetSprmReadInfo(sal_uInt16 nId) const; + +@@ -1897,6 +1898,7 @@ public: // really private, but can only be done public + + void PostProcessAttrs(); + void ReadEmbeddedData(SvStream& rStrm, SwDocShell const * pDocShell, struct HyperLinksTable& hlStr); ++ void NotifyMacroEventRead(); + }; + + bool CanUseRemoteLink(const OUString &rGrfName); +diff --git a/sw/source/filter/ww8/ww8par5.cxx b/sw/source/filter/ww8/ww8par5.cxx +index 4d1f84a..e592073 100644 +--- a/sw/source/filter/ww8/ww8par5.cxx ++++ b/sw/source/filter/ww8/ww8par5.cxx +@@ -2274,6 +2274,8 @@ eF_ResT SwWW8ImplReader::Read_F_Macro( WW8FieldDesc*, OUString& rStr) + if( aName.isEmpty() ) + return eF_ResT::TAGIGN; // makes no sense without Macro-Name + ++ NotifyMacroEventRead(); ++ + //try converting macro symbol according to macro name + bool bApplyWingdings = ConvertMacroSymbol( aName, aVText ); + aName = "StarOffice.Standard.Modul1." + aName; +diff --git a/sw/source/filter/ww8/ww8toolbar.cxx b/sw/source/filter/ww8/ww8toolbar.cxx +index b7dc69d..2a4242c 100644 +--- a/sw/source/filter/ww8/ww8toolbar.cxx ++++ b/sw/source/filter/ww8/ww8toolbar.cxx +@@ -18,8 +18,10 @@ + #include + #include + #include ++#include + #include + #include ++#include + #include + #include + #include +@@ -718,6 +720,10 @@ bool Tcg255::ImportCustomToolBar( SfxObjectShell& rDocSh ) + SwCTBWrapper* pCTBWrapper = dynamic_cast< SwCTBWrapper* > ( *it ); + if ( pCTBWrapper ) + { ++ // tdf#127048 set this flag if we might import something ++ uno::Reference const xModel(rDocSh.GetBaseModel()); ++ comphelper::DocumentInfo::notifyMacroEventRead(xModel); ++ + if ( !pCTBWrapper->ImportCustomToolBar( rDocSh ) ) + return false; + } +diff --git a/xmloff/source/core/xmlimp.cxx b/xmloff/source/core/xmlimp.cxx +index fdf943d..cf55462 100644 +--- a/xmloff/source/core/xmlimp.cxx ++++ b/xmloff/source/core/xmlimp.cxx +@@ -57,6 +57,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -399,7 +400,8 @@ SvXMLImport::SvXMLImport( + maNamespaceHandler( new SvXMLImportFastNamespaceHandler() ), + mxFastDocumentHandler( nullptr ), + mbIsFormsSupported( true ), +- mbIsTableShapeSupported( false ) ++ mbIsTableShapeSupported( false ), ++ mbNotifyMacroEventRead( false ) + { + SAL_WARN_IF( !xContext.is(), "xmloff.core", "got no service manager" ); + InitCtor_(); +@@ -2177,6 +2179,16 @@ void SvXMLImport::registerNamespaces() + } + } + ++void SvXMLImport::NotifyMacroEventRead() ++{ ++ if (mbNotifyMacroEventRead) ++ return; ++ ++ comphelper::DocumentInfo::notifyMacroEventRead(mxModel); ++ ++ mbNotifyMacroEventRead = true; ++} ++ + SvXMLImportFastNamespaceHandler::SvXMLImportFastNamespaceHandler() + { + } +diff --git a/xmloff/source/script/XMLEventImportHelper.cxx b/xmloff/source/script/XMLEventImportHelper.cxx +index 0e45525..93fd43d 100644 +--- a/xmloff/source/script/XMLEventImportHelper.cxx ++++ b/xmloff/source/script/XMLEventImportHelper.cxx +@@ -36,7 +36,6 @@ XMLEventImportHelper::XMLEventImportHelper() : + { + } + +- + XMLEventImportHelper::~XMLEventImportHelper() + { + // delete factories +@@ -117,6 +116,8 @@ SvXMLImportContext* XMLEventImportHelper::CreateContext( + const OUString& rXmlEventName, + const OUString& rLanguage) + { ++ rImport.NotifyMacroEventRead(); ++ + SvXMLImportContext* pContext = nullptr; + + // translate event name form xml to api diff --git a/debian/patches/0072-CVE-2022-3140-check-IFrame-FrameURL-target.patch b/debian/patches/0072-CVE-2022-3140-check-IFrame-FrameURL-target.patch new file mode 100644 index 00000000000..99b37c9ef97 --- /dev/null +++ b/debian/patches/0072-CVE-2022-3140-check-IFrame-FrameURL-target.patch @@ -0,0 +1,160 @@ +From: =?utf-8?q?Caol=C3=A1n_McNamara?= +Date: Tue, 30 Aug 2022 17:01:08 +0100 +Subject: CVE-2022-3140: check IFrame "FrameURL" target + +similiar to + +commit b3edf85e0fe6ca03dc26e1bf531be82193bc9627 +Date: Wed Aug 7 17:37:11 2019 +0100 + + warn on load when a document binds an event to a macro + +Change-Id: Iea888b1c083d2dc69ec322309ac9ae8c5e5eb315 +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139059 +Tested-by: Jenkins +Reviewed-by: Stephan Bergmann + +Conflicts: + sfx2/source/doc/iframe.cxx + sw/source/filter/html/htmlplug.cxx + sw/source/filter/xml/xmltexti.cxx +bug-debian-security: https://deb.freexian.com/extended-lts/tracker/CVE-2022-3140 +bug: https://deb.freexian.com/extended-lts/tracker/CVE-2022-3140 +--- + sfx2/source/appl/macroloader.cxx | 9 +++++++-- + sfx2/source/doc/iframe.cxx | 20 +++++++++++++++----- + sfx2/source/inc/macroloader.hxx | 2 ++ + sw/source/filter/html/htmlplug.cxx | 7 ++++++- + sw/source/filter/xml/xmltexti.cxx | 9 +++++++-- + 5 files changed, 37 insertions(+), 10 deletions(-) + +diff --git a/sfx2/source/appl/macroloader.cxx b/sfx2/source/appl/macroloader.cxx +index a910138..113a852 100644 +--- a/sfx2/source/appl/macroloader.cxx ++++ b/sfx2/source/appl/macroloader.cxx +@@ -73,10 +73,10 @@ css::uno::Sequence SAL_CALL SfxMacroLoader::getSupportedServiceNames() + return aSeq; + } + +-SfxObjectShell* SfxMacroLoader::GetObjectShell_Impl() ++SfxObjectShell* SfxMacroLoader::GetObjectShell(const Reference & xFrame) + { + SfxObjectShell* pDocShell = nullptr; +- Reference < XFrame > xFrame( m_xFrame.get(), UNO_QUERY ); ++ + if ( xFrame.is() ) + { + SfxFrame* pFrame=nullptr; +@@ -93,6 +93,11 @@ SfxObjectShell* SfxMacroLoader::GetObjectShell_Impl() + return pDocShell; + } + ++SfxObjectShell* SfxMacroLoader::GetObjectShell_Impl() ++{ ++ Reference < XFrame > xFrame( m_xFrame.get(), UNO_QUERY ); ++ return SfxMacroLoader::GetObjectShell(xFrame); ++} + + uno::Reference SAL_CALL SfxMacroLoader::queryDispatch( + const util::URL& aURL , +diff --git a/sfx2/source/doc/iframe.cxx b/sfx2/source/doc/iframe.cxx +index 7d7fdb0..f1e03e7 100644 +--- a/sfx2/source/doc/iframe.cxx ++++ b/sfx2/source/doc/iframe.cxx +@@ -39,10 +39,12 @@ + #include + #include + #include ++#include + #include + #include + #include + #include ++#include + + using namespace ::com::sun::star; + +@@ -158,6 +160,19 @@ sal_Bool SAL_CALL IFrameObject::load( + { + if ( SvtMiscOptions().IsPluginsEnabled() ) + { ++ util::URL aTargetURL; ++ aTargetURL.Complete = maFrmDescr.GetURL().GetMainURL( INetURLObject::DecodeMechanism::NONE ); ++ uno::Reference < util::XURLTransformer > xTrans( util::URLTransformer::create( mxContext ) ); ++ xTrans->parseStrict( aTargetURL ); ++ ++ if (INetURLObject(aTargetURL.Complete).GetProtocol() == INetProtocol::Macro) ++ { ++ uno::Reference xParentFrame = xFrame->getCreator(); ++ SfxObjectShell* pDoc = SfxMacroLoader::GetObjectShell(xParentFrame); ++ if (pDoc && !pDoc->AdjustMacroMode()) ++ return false; ++ } ++ + DBG_ASSERT( !mxFrame.is(), "Frame already existing!" ); + VclPtr pParent = VCLUnoHelper::GetWindow( xFrame->getContainerWindow() ); + VclPtr pWin = VclPtr::Create( pParent, maFrmDescr.IsFrameBorderOn() ); +@@ -180,11 +195,6 @@ sal_Bool SAL_CALL IFrameObject::load( + if ( xFramesSupplier.is() ) + mxFrame->setCreator( xFramesSupplier ); + +- util::URL aTargetURL; +- aTargetURL.Complete = maFrmDescr.GetURL().GetMainURL( INetURLObject::DecodeMechanism::NONE ); +- uno::Reference < util::XURLTransformer > xTrans( util::URLTransformer::create( mxContext ) ); +- xTrans->parseStrict( aTargetURL ); +- + uno::Sequence < beans::PropertyValue > aProps(2); + aProps[0].Name = "PluginMode"; + aProps[0].Value <<= sal_Int16(2); +diff --git a/sfx2/source/inc/macroloader.hxx b/sfx2/source/inc/macroloader.hxx +index 94fa516..e2d5f8f 100644 +--- a/sfx2/source/inc/macroloader.hxx ++++ b/sfx2/source/inc/macroloader.hxx +@@ -81,6 +81,8 @@ public: + virtual void SAL_CALL addStatusListener( const css::uno::Reference< css::frame::XStatusListener >& xControl, const css::util::URL& aURL ) override; + + virtual void SAL_CALL removeStatusListener( const css::uno::Reference< css::frame::XStatusListener >& xControl, const css::util::URL& aURL ) override; ++ ++ static SfxObjectShell* GetObjectShell(const css::uno::Reference& xFrame); + }; + + #endif +diff --git a/sw/source/filter/html/htmlplug.cxx b/sw/source/filter/html/htmlplug.cxx +index 19ef725..955eeab 100644 +--- a/sw/source/filter/html/htmlplug.cxx ++++ b/sw/source/filter/html/htmlplug.cxx +@@ -1006,7 +1006,12 @@ void SwHTMLParser::InsertFloatingFrame() + bool bHasBorder = aFrameDesc.HasFrameBorder(); + Size aMargin = aFrameDesc.GetMargin(); + +- xSet->setPropertyValue("FrameURL", uno::makeAny( aFrameDesc.GetURL().GetMainURL( INetURLObject::DecodeMechanism::NONE ) ) ); ++ OUString sHRef = aFrameDesc.GetURL().GetMainURL( INetURLObject::DecodeMechanism::NONE ); ++ ++ if (INetURLObject(sHRef).GetProtocol() == INetProtocol::Macro) ++ NotifyMacroEventRead(); ++ ++ xSet->setPropertyValue("FrameURL", uno::makeAny( sHRef ) ); + xSet->setPropertyValue("FrameName", uno::makeAny( aName ) ); + + if ( eScroll == ScrollingMode::Auto ) +diff --git a/sw/source/filter/xml/xmltexti.cxx b/sw/source/filter/xml/xmltexti.cxx +index 0cbf9fd..8366f0a 100644 +--- a/sw/source/filter/xml/xmltexti.cxx ++++ b/sw/source/filter/xml/xmltexti.cxx +@@ -854,9 +854,14 @@ uno::Reference< XPropertySet > SwXMLTextImportHelper::createAndInsertFloatingFra + uno::Reference < beans::XPropertySet > xSet( xObj->getComponent(), uno::UNO_QUERY ); + if ( xSet.is() ) + { ++ OUString sHRef = URIHelper::SmartRel2Abs( ++ INetURLObject( GetXMLImport().GetBaseURL() ), rHRef ); ++ ++ if (INetURLObject(sHRef).GetProtocol() == INetProtocol::Macro) ++ GetXMLImport().NotifyMacroEventRead(); ++ + xSet->setPropertyValue("FrameURL", +- makeAny( URIHelper::SmartRel2Abs( +- INetURLObject( GetXMLImport().GetBaseURL() ), rHRef ) ) ); ++ makeAny( sHRef ) ); + + xSet->setPropertyValue("FrameName", + makeAny( rName ) ); diff --git a/debian/patches/0073-CVE-2022-3140-Filter-out-unwanted-command-URIs.patch b/debian/patches/0073-CVE-2022-3140-Filter-out-unwanted-command-URIs.patch new file mode 100644 index 00000000000..a5833e2d6ca --- /dev/null +++ b/debian/patches/0073-CVE-2022-3140-Filter-out-unwanted-command-URIs.patch @@ -0,0 +1,47 @@ +From: Stephan Bergmann +Date: Thu, 1 Sep 2022 17:33:51 +0200 +Subject: CVE-2022-3140: Filter out unwanted command URIs + +Change-Id: I0b7e5329af8cc053d14d5c60ec14fe7f364ef993 +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139225 +Tested-by: Jenkins +Reviewed-by: Stephan Bergmann + +Conflicts: + desktop/source/app/cmdlineargs.cxx + +origin: https://github.com/LibreOffice/core/commit/6f60a85d71f1e160bf48ca4d23cd9c99677961a2.patch +bug-debian-security: https://deb.freexian.com/extended-lts/tracker/CVE-2022-3140 +bug: https://deb.freexian.com/extended-lts/tracker/CVE-2022-3140 +--- + desktop/source/app/cmdlineargs.cxx | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/desktop/source/app/cmdlineargs.cxx b/desktop/source/app/cmdlineargs.cxx +index 490bf18..3280695 100644 +--- a/desktop/source/app/cmdlineargs.cxx ++++ b/desktop/source/app/cmdlineargs.cxx +@@ -29,6 +29,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -163,7 +164,14 @@ CommandLineEvent CheckOfficeURI(/* in,out */ OUString& arg, CommandLineEvent cur + } + if (nURIlen < 0) + nURIlen = rest2.getLength(); +- arg = rest2.copy(0, nURIlen); ++ auto const uri = rest2.copy(0, nURIlen); ++ if (INetURLObject(uri).GetProtocol() == INetProtocol::Macro) { ++ // Let the "Open" machinery process the full command URI (leading to failure, by intention, ++ // as the "Open" machinery does not know about those command URI schemes): ++ curEvt = CommandLineEvent::Open; ++ } else { ++ arg = uri; ++ } + return curEvt; + } + diff --git a/debian/patches/0074-CVE-2022-3140-check-impress-calc-IFrame-FrameURL-tar.patch b/debian/patches/0074-CVE-2022-3140-check-impress-calc-IFrame-FrameURL-tar.patch new file mode 100644 index 00000000000..5a33c0ceb30 --- /dev/null +++ b/debian/patches/0074-CVE-2022-3140-check-impress-calc-IFrame-FrameURL-tar.patch @@ -0,0 +1,42 @@ +From: =?utf-8?q?Caol=C3=A1n_McNamara?= +Date: Tue, 6 Sep 2022 11:38:55 +0100 +Subject: CVE-2022-3140: check impress/calc IFrame "FrameURL" target + +similar to + +commit c7450d0b9d02c64ae3da467d329040787039767e +Date: Tue Aug 30 17:01:08 2022 +0100 + + check IFrame "FrameURL" target + +Conflicts: + xmloff/source/draw/ximpshap.cxx + +Change-Id: Ibf28c29acb4476830431d02772f3ecd4b23a6a27 +origin: https://github.com/LibreOffice/core/commit/50c9ae7573f5d63a7cdbcd2caea0d789e97c3a3f.patch +--- + xmloff/source/draw/ximpshap.cxx | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/xmloff/source/draw/ximpshap.cxx b/xmloff/source/draw/ximpshap.cxx +index 44218ce..6dae1b0 100644 +--- a/xmloff/source/draw/ximpshap.cxx ++++ b/xmloff/source/draw/ximpshap.cxx +@@ -83,6 +83,7 @@ + #include + #include + #include ++#include + #include + + #include +@@ -3249,6 +3250,9 @@ void SdXMLFloatingFrameShapeContext::StartElement( const css::uno::Reference< cs + + if( !maHref.isEmpty() ) + { ++ if (INetURLObject(maHref).GetProtocol() == INetProtocol::Macro) ++ GetImport().NotifyMacroEventRead(); ++ + xProps->setPropertyValue("FrameURL", Any(maHref) ); + } + } diff --git a/debian/patches/0075-From-5e8f64e50f97d39e83a3358697be14db03566878-Mon-Se.patch b/debian/patches/0075-From-5e8f64e50f97d39e83a3358697be14db03566878-Mon-Se.patch new file mode 100644 index 00000000000..4a1c73fafc6 --- /dev/null +++ b/debian/patches/0075-From-5e8f64e50f97d39e83a3358697be14db03566878-Mon-Se.patch @@ -0,0 +1,107 @@ +From: Stephan Bergmann +Date: Mon, 21 Feb 2022 11:55:21 +0100 +Subject: From 5e8f64e50f97d39e83a3358697be14db03566878 Mon Sep 17 00:00:00 + 2001 From: Stephan Bergmann Date: Mon, + 21 Feb 2022 11:55:21 +0100 Subject: CVE-2022-38745 Avoid unnecessary empty + -Djava.class.path= + +Libreoffice may be configured to add an empty entry to the Java class path. +This may lead to run arbitrary Java code from the current directory. + +Debian-backport: use char szSep[] = {SAL_PATHSEPARATOR,0}; for building Ostring +path separator. + +Change-Id: Idcfe7321077b60381c0273910b1faeb444ef1fd8 +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130242 +Tested-by: Jenkins +Reviewed-by: Stephan Bergmann +bug: https://www.libreoffice.org/about-us/security/advisories/CVE-2022-38745 +debian-bug-security: https://security-tracker.debian.org/tracker/CVE-2022-38745 +--- + jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx | 16 +++++++++++++--- + jvmfwk/source/framework.cxx | 8 ++++++-- + jvmfwk/source/fwkbase.cxx | 3 +++ + 3 files changed, 22 insertions(+), 5 deletions(-) +--- + jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx | 19 +++++++++++++++---- + jvmfwk/source/framework.cxx | 8 ++++++-- + jvmfwk/source/fwkbase.cxx | 3 +++ + 3 files changed, 24 insertions(+), 6 deletions(-) + +diff --git a/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx b/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx +index d02a43e..201ce3e 100644 +--- a/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx ++++ b/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx +@@ -717,17 +717,23 @@ javaPluginError jfw_plugin_startJavaVirtualMachine( + // all versions below 1.5.1 + options.emplace_back("abort", reinterpret_cast(abort_handler)); + bool hasStackSize = false; ++#ifdef UNX ++ // Until java 1.5 we need to put a plugin.jar or javaplugin.jar (<1.4.2) ++ // in the class path in order to have applet support: ++ OString sAddPath = getPluginJarPath(pInfo->sVendor, pInfo->sLocation,pInfo->sVersion); ++#endif + for (int i = 0; i < cOptions; i++) + { + OString opt(arOptions[i].optionString); ++ const char szSep[] = {SAL_PATHSEPARATOR,0}; + #ifdef UNX +- // Until java 1.5 we need to put a plugin.jar or javaplugin.jar (<1.4.2) +- // in the class path in order to have applet support: + if (opt.startsWith("-Djava.class.path=")) + { +- OString sAddPath = getPluginJarPath(pInfo->sVendor, pInfo->sLocation,pInfo->sVersion); + if (!sAddPath.isEmpty()) +- opt += OString(SAL_PATHSEPARATOR) + sAddPath; ++ { ++ opt += OString(szSep) + sAddPath; ++ sAddPath.clear(); ++ } + } + #endif + if (opt == "-Xint") { +@@ -772,6 +778,11 @@ javaPluginError jfw_plugin_startJavaVirtualMachine( + } + #endif + } ++#ifdef UNX ++ if (!sAddPath.isEmpty()) { ++ options.emplace_back("-Djava.class.path=" + sAddPath, nullptr); ++ } ++#endif + + std::unique_ptr sarOptions(new JavaVMOption[options.size()]); + for (std::vector + + + Specifies if missing langpack installation should be triggered. + +- true ++ false + + + +diff --git a/postprocess/Rdb_services.mk b/postprocess/Rdb_services.mk +index 20cfc6c..6ad48a1 100644 +--- a/postprocess/Rdb_services.mk ++++ b/postprocess/Rdb_services.mk +@@ -200,9 +200,11 @@ $(eval $(call gb_Rdb_add_components,services,\ + canvas/source/opengl/oglcanvas \ + ) \ + $(if $(ENABLE_GIO), \ +- shell/source/sessioninstall/losessioninstall \ + ucb/source/ucp/gio/ucpgio \ + ) \ ++ $(if $(ENABLE_PACKAGEKIT), \ ++ shell/source/sessioninstall/losessioninstall \ ++ ) \ + $(if $(ENABLE_GSTREAMER_1_0), \ + avmedia/source/gstreamer/avmediagstreamer \ + ) \ +diff --git a/sfx2/source/appl/appserv.cxx b/sfx2/source/appl/appserv.cxx +index 1c19d40..fadfc0e 100644 +--- a/sfx2/source/appl/appserv.cxx ++++ b/sfx2/source/appl/appserv.cxx +@@ -199,6 +199,7 @@ namespace + // make sure we actually can instantiate services from base first + if(!lcl_isBaseAvailable()) + { ++#if defined (ENABLE_PACKAGEKIT) + try + { + using namespace org::freedesktop::PackageKit; +@@ -215,8 +216,16 @@ namespace + SAL_INFO( + "sfx.appl", + "trying to install LibreOffice Base, caught " << e); ++#else ++ SAL_INFO( ++ "sfx.appl", ++ "missing LibreOffice Base"); ++ ++#endif ++#if defined (ENABLE_PACKAGEKIT) + } + return; ++#endif + } + + try // fdo#48775 +diff --git a/shell/Module_shell.mk b/shell/Module_shell.mk +index 6d54617..b8f6772 100644 +--- a/shell/Module_shell.mk ++++ b/shell/Module_shell.mk +@@ -16,11 +16,13 @@ $(eval $(call gb_Module_add_targets,shell,\ + + ifneq ($(filter DRAGONFLY FREEBSD LINUX NETBSD OPENBSD,$(OS)),) + ifeq ($(ENABLE_GIO),TRUE) ++ifeq ($(ENABLE_PACKAGEKIT),TRUE) + $(eval $(call gb_Module_add_targets,shell,\ + Library_losessioninstall \ + )) + endif + endif ++endif + + ifeq ($(OS),SOLARIS) + ifeq ($(ENABLE_GIO),TRUE) +diff --git a/svtools/source/misc/langhelp.cxx b/svtools/source/misc/langhelp.cxx +index 75ce24b..6637dbd 100644 +--- a/svtools/source/misc/langhelp.cxx ++++ b/svtools/source/misc/langhelp.cxx +@@ -139,8 +139,7 @@ OUString getInstalledLocaleForSystemUILanguage(const css::uno::Sequence +Date: Mon, 27 Aug 2018 11:06:17 -0400 +Subject: [PATCH] Update orcus to 0.14.0. + +And make all necessary adjustments for the new version of orcus. + +Change-Id: I0dc207162a3ddfaad6da198a3d13b65f530757d5 +Reviewed-on: https://gerrit.libreoffice.org/59884 +Tested-by: Jenkins +Reviewed-by: Kohei Yoshida +--- + RepositoryExternal.mk | 4 +- + configure.ac | 2 +- + download.lst | 4 +- + .../0001-Missing-header-for-std-tolower.patch | 24 ++ + external/liborcus/ExternalPackage_liborcus.mk | 8 +- + external/liborcus/ExternalProject_liborcus.mk | 4 +- + external/liborcus/Library_orcus.mk | 2 + + external/liborcus/UnpackedTarball_liborcus.mk | 1 + + sc/source/filter/inc/orcusinterface.hxx | 107 +++++-- + sc/source/filter/orcus/interface.cxx | 322 +++++++++++++++------ + sc/source/filter/orcus/xmlcontext.cxx | 5 +- + 11 files changed, 358 insertions(+), 125 deletions(-) + create mode 100644 external/liborcus/0001-Missing-header-for-std-tolower.patch + +diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk +index c7cb009..a9764b1 100644 +--- a/RepositoryExternal.mk ++++ b/RepositoryExternal.mk +@@ -3264,7 +3264,7 @@ $(call gb_LinkTarget_set_include,$(1),\ + ) + + $(call gb_LinkTarget_add_libs,$(1),\ +- -L$(call gb_UnpackedTarball_get_dir,liborcus)/src/liborcus/.libs -lorcus-0.13 \ ++ -L$(call gb_UnpackedTarball_get_dir,liborcus)/src/liborcus/.libs -lorcus-0.14 \ + ) + + $(if $(SYSTEM_BOOST), \ +@@ -3283,7 +3283,7 @@ $(call gb_LinkTarget_set_include,$(1),\ + ) + + $(call gb_LinkTarget_add_libs,$(1),\ +- -L$(call gb_UnpackedTarball_get_dir,liborcus)/src/parser/.libs -lorcus-parser-0.13 \ ++ -L$(call gb_UnpackedTarball_get_dir,liborcus)/src/parser/.libs -lorcus-parser-0.14 \ + ) + + endef +diff --git a/configure.ac b/configure.ac +index 75e2baf..eec41f2 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -9289,7 +9289,7 @@ AC_SUBST(ENABLE_FUZZERS) + dnl =================================================================== + dnl Orcus + dnl =================================================================== +-libo_CHECK_SYSTEM_MODULE([orcus],[ORCUS],[liborcus-0.13 >= 0.13.3]) ++libo_CHECK_SYSTEM_MODULE([orcus],[ORCUS],[liborcus-0.14 >= 0.14.0]) + if test "$with_system_orcus" != "yes"; then + if test "$SYSTEM_BOOST" = "TRUE"; then + # =========================================================== +diff --git a/download.lst b/download.lst +index a00fac0..14ead6a 100644 +--- a/download.lst ++++ b/download.lst +@@ -194,8 +194,8 @@ export OPENLDAP_SHA256SUM := cdd6cffdebcd95161a73305ec13fc7a78e9707b46ca9f84fb89 + export OPENLDAP_TARBALL := openldap-2.4.45.tgz + export OPENSSL_SHA256SUM := 50a98e07b1a89eb8f6a99477f262df71c6fa7bef77df4dc83025a2845c827d00 + export OPENSSL_TARBALL := openssl-1.0.2p.tar.gz +-export ORCUS_SHA256SUM := bc01b1b3e9091416f498840d3c19a1aa2704b448100e7f6b80eefe88aab06d5b +-export ORCUS_TARBALL := liborcus-0.13.4.tar.gz ++export ORCUS_SHA256SUM := 7bcfac3f4f490540292cfc87d3fde7b47eafa8450afa1e1a2c181d8293dcd4ef ++export ORCUS_TARBALL := liborcus-0.14.0.tar.gz + export OWNCLOUD_ANDROID_LIB_SHA256SUM := b18b3e3ef7fae6a79b62f2bb43cc47a5346b6330f6a383dc4be34439aca5e9fb + export OWNCLOUD_ANDROID_LIB_TARBALL := owncloud-android-library-0.9.4-no-binary-deps.tar.gz + export PAGEMAKER_SHA256SUM := 66adacd705a7d19895e08eac46d1e851332adf2e736c566bef1164e7a442519d +diff --git a/external/liborcus/0001-Missing-header-for-std-tolower.patch b/external/liborcus/0001-Missing-header-for-std-tolower.patch +new file mode 100644 +index 0000000..2e00be9 +--- /dev/null ++++ b/external/liborcus/0001-Missing-header-for-std-tolower.patch +@@ -0,0 +1,24 @@ ++From 3a6bb93a382b4d5f1463ee3fdd54cab7048ff996 Mon Sep 17 00:00:00 2001 ++From: Kohei Yoshida ++Date: Fri, 31 Aug 2018 16:07:06 -0400 ++Subject: [PATCH] Missing header for std::tolower. ++ ++--- ++ src/parser/sax_token_parser.cpp | 1 + ++ 1 file changed, 1 insertion(+) ++ ++diff --git a/src/parser/sax_token_parser.cpp b/src/parser/sax_token_parser.cpp ++index 9790b498..44ba5844 100644 ++--- a/src/parser/sax_token_parser.cpp +++++ b/src/parser/sax_token_parser.cpp ++@@ -9,6 +9,7 @@ ++ #include "orcus/tokens.hpp" ++ ++ #include +++#include ++ ++ namespace orcus { ++ ++-- ++2.17.1 ++ +diff --git a/external/liborcus/ExternalPackage_liborcus.mk b/external/liborcus/ExternalPackage_liborcus.mk +index 32382b7..ffa0b38 100644 +--- a/external/liborcus/ExternalPackage_liborcus.mk ++++ b/external/liborcus/ExternalPackage_liborcus.mk +@@ -12,11 +12,11 @@ $(eval $(call gb_ExternalPackage_ExternalPackage,liborcus,liborcus)) + $(eval $(call gb_ExternalPackage_use_external_project,liborcus,liborcus)) + + ifeq ($(OS),MACOSX) +-$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-0.13.0.dylib,src/liborcus/.libs/liborcus-0.13.0.dylib)) +-$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-parser-0.13.0.dylib,src/parser/.libs/liborcus-parser-0.13.0.dylib)) ++$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-0.14.0.dylib,src/liborcus/.libs/liborcus-0.14.0.dylib)) ++$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-parser-0.14.0.dylib,src/parser/.libs/liborcus-parser-0.14.0.dylib)) + else ifeq ($(DISABLE_DYNLOADING),) +-$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-0.13.so.0,src/liborcus/.libs/liborcus-0.13.so.0.0.0)) +-$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-parser-0.13.so.0,src/parser/.libs/liborcus-parser-0.13.so.0.0.0)) ++$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-0.14.so.0,src/liborcus/.libs/liborcus-0.14.so.0.0.0)) ++$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-parser-0.14.so.0,src/parser/.libs/liborcus-parser-0.14.so.0.0.0)) + endif + + # vim: set noet sw=4 ts=4: +diff --git a/external/liborcus/ExternalProject_liborcus.mk b/external/liborcus/ExternalProject_liborcus.mk +index 928c78e..1aa5912 100644 +--- a/external/liborcus/ExternalProject_liborcus.mk ++++ b/external/liborcus/ExternalProject_liborcus.mk +@@ -114,8 +114,8 @@ $(call gb_ExternalProject_get_state_target,liborcus,build) : + $(MAKE) \ + $(if $(filter MACOSX,$(OS)),\ + && $(PERL) $(SRCDIR)/solenv/bin/macosx-change-install-names.pl shl OOO \ +- $(EXTERNAL_WORKDIR)/src/liborcus/.libs/liborcus-0.13.0.dylib \ +- $(EXTERNAL_WORKDIR)/src/parser/.libs/liborcus-parser-0.13.0.dylib \ ++ $(EXTERNAL_WORKDIR)/src/liborcus/.libs/liborcus-0.14.0.dylib \ ++ $(EXTERNAL_WORKDIR)/src/parser/.libs/liborcus-parser-0.14.0.dylib \ + ) \ + ) + +diff --git a/external/liborcus/Library_orcus.mk b/external/liborcus/Library_orcus.mk +index 6457ec4..1f026c4 100644 +--- a/external/liborcus/Library_orcus.mk ++++ b/external/liborcus/Library_orcus.mk +@@ -55,6 +55,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,orcus,\ + UnpackedTarball/liborcus/src/liborcus/detection_result \ + UnpackedTarball/liborcus/src/liborcus/dom_tree \ + UnpackedTarball/liborcus/src/liborcus/format_detection \ ++ UnpackedTarball/liborcus/src/liborcus/formula_result \ + UnpackedTarball/liborcus/src/liborcus/global \ + UnpackedTarball/liborcus/src/liborcus/gnumeric_cell_context \ + UnpackedTarball/liborcus/src/liborcus/gnumeric_context \ +@@ -96,6 +97,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,orcus,\ + UnpackedTarball/liborcus/src/liborcus/orcus_xlsx \ + UnpackedTarball/liborcus/src/liborcus/orcus_xml \ + UnpackedTarball/liborcus/src/liborcus/session_context \ ++ UnpackedTarball/liborcus/src/liborcus/spreadsheet_iface_util \ + UnpackedTarball/liborcus/src/liborcus/spreadsheet_interface \ + UnpackedTarball/liborcus/src/liborcus/spreadsheet_types \ + UnpackedTarball/liborcus/src/liborcus/string_helper \ +diff --git a/external/liborcus/UnpackedTarball_liborcus.mk b/external/liborcus/UnpackedTarball_liborcus.mk +index 3ab387e..00b5e03 100644 +--- a/external/liborcus/UnpackedTarball_liborcus.mk ++++ b/external/liborcus/UnpackedTarball_liborcus.mk +@@ -18,6 +18,7 @@ $(eval $(call gb_UnpackedTarball_update_autoconf_configs,liborcus)) + $(eval $(call gb_UnpackedTarball_add_patches,liborcus,\ + external/liborcus/0001-workaround-a-linking-problem-on-windows.patch \ + external/liborcus/rpath.patch.0 \ ++ external/liborcus/0001-Missing-header-for-std-tolower.patch \ + )) + + ifeq ($(OS),WNT) +diff --git a/sc/source/filter/inc/orcusinterface.hxx b/sc/source/filter/inc/orcusinterface.hxx +index d1b4cfb..8d5c63d 100644 +--- a/sc/source/filter/inc/orcusinterface.hxx ++++ b/sc/source/filter/inc/orcusinterface.hxx +@@ -54,6 +54,7 @@ public: + ScOrcusGlobalSettings(ScDocumentImport& rDoc); + + virtual void set_origin_date(int year, int month, int day) override; ++ virtual void set_character_set(orcus::character_set_t cs) override; + + virtual void set_default_formula_grammar(orcus::spreadsheet::formula_grammar_t grammar) override; + virtual orcus::spreadsheet::formula_grammar_t get_default_formula_grammar() const override; +@@ -181,7 +182,7 @@ public: + + virtual ~ScOrcusAutoFilter() override; + +- virtual void set_range(const char* p_ref, size_t n_ref) override; ++ virtual void set_range(const orcus::spreadsheet::range_t& range) override; + + virtual void set_column(orcus::spreadsheet::col_t col) override; + +@@ -214,22 +215,95 @@ public: + virtual void set_merge_cell_range(const orcus::spreadsheet::range_t& range) override; + }; + ++class ScOrcusSheet; ++ ++class ScOrcusFormula : public orcus::spreadsheet::iface::import_formula ++{ ++ enum class ResultType { NotSet, String, Value, Empty }; ++ ++ friend class ScOrcusSheet; ++ ++ ScOrcusSheet& mrSheet; ++ ++ SCCOL mnCol; ++ SCROW mnRow; ++ OUString maFormula; ++ formula::FormulaGrammar::Grammar meGrammar; ++ size_t mnSharedFormulaIndex; ++ bool mbShared; ++ ++ ResultType meResType; ++ size_t mnResult; // result string index. ++ double mfResult; ++ ++ void reset(); ++ ++public: ++ ScOrcusFormula( ScOrcusSheet& rSheet ); ++ virtual ~ScOrcusFormula() override; ++ ++ virtual void set_position(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col) override; ++ virtual void set_formula(orcus::spreadsheet::formula_grammar_t grammar, const char* p, size_t n) override; ++ virtual void set_shared_formula_index(size_t index) override; ++ virtual void set_result_value(double value) override; ++ virtual void set_result_string(size_t sindex) override; ++ virtual void set_result_empty() override; ++ virtual void set_result_bool(bool value) override; ++ virtual void commit() override; ++}; ++ ++class ScOrcusArrayFormula : public orcus::spreadsheet::iface::import_array_formula ++{ ++ friend class ScOrcusSheet; ++ ++ ScOrcusSheet& mrSheet; ++ ++ SCCOL mnCol; ++ SCROW mnRow; ++ uint32_t mnColRange; ++ uint32_t mnRowRange; ++ OUString maFormula; ++ formula::FormulaGrammar::Grammar meGrammar; ++ ++ void reset(); ++ ++public: ++ ScOrcusArrayFormula( ScOrcusSheet& rSheet ); ++ virtual ~ScOrcusArrayFormula() override; ++ ++ virtual void set_range(const orcus::spreadsheet::range_t& range) override; ++ virtual void set_formula(orcus::spreadsheet::formula_grammar_t grammar, const char* p, size_t n) override; ++ virtual void set_result_value(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, double value) override; ++ virtual void set_result_string(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, size_t sindex) override; ++ virtual void set_result_empty(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col) override; ++ virtual void set_result_bool(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, bool value) override; ++ virtual void commit() override; ++}; ++ + class ScOrcusSheet : public orcus::spreadsheet::iface::import_sheet + { ++ friend class ScOrcusFormula; ++ friend class ScOrcusArrayFormula; ++ + ScDocumentImport& mrDoc; + SCTAB mnTab; + ScOrcusFactory& mrFactory; + ScOrcusStyles& mrStyles; + sc::SharedFormulaGroups maFormulaGroups; ++ + ScOrcusAutoFilter maAutoFilter; + ScOrcusSheetProperties maProperties; + ScOrcusConditionalFormat maConditionalFormat; + ScOrcusNamedExpression maNamedExpressions; ++ ScOrcusFormula maFormula; ++ ScOrcusArrayFormula maArrayFormula; + + int mnCellCount; + + void cellInserted(); + ++ ScDocumentImport& getDoc(); ++ + public: + ScOrcusSheet(ScDocumentImport& rDoc, SCTAB nTab, ScOrcusFactory& rFactory); + +@@ -238,6 +312,8 @@ public: + virtual orcus::spreadsheet::iface::import_sheet_properties* get_sheet_properties() override; + virtual orcus::spreadsheet::iface::import_conditional_format* get_conditional_format() override; + virtual orcus::spreadsheet::iface::import_named_expression* get_named_expression() override; ++ virtual orcus::spreadsheet::iface::import_formula* get_formula() override; ++ virtual orcus::spreadsheet::iface::import_array_formula* get_array_formula() override; + + // Orcus import interface + virtual void set_auto(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, const char* p, size_t n) override; +@@ -251,33 +327,13 @@ public: + virtual void set_format(orcus::spreadsheet::row_t row_start, orcus::spreadsheet::col_t col_start, + orcus::spreadsheet::row_t row_end, orcus::spreadsheet::col_t col_end, size_t xf_index) override; + +- virtual void set_formula(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::formula_grammar_t grammar, const char* p, size_t n) override; +- virtual void set_formula_result(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, const char* p, size_t n) override; +- virtual void set_formula_result(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, double val) override; +- +- virtual void set_shared_formula( +- orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::formula_grammar_t grammar, size_t sindex, +- const char* p_formula, size_t n_formula) override; +- +- virtual void set_shared_formula( +- orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::formula_grammar_t grammar, size_t sindex, +- const char* p_formula, size_t n_formula, const char* p_range, size_t n_range) override; +- +- virtual void set_shared_formula(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, size_t sindex) override; +- +- virtual void set_array_formula( +- orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::formula_grammar_t grammar, +- const char* p, size_t n, orcus::spreadsheet::row_t array_rows, orcus::spreadsheet::col_t array_cols) override; +- +- virtual void set_array_formula( +- orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::formula_grammar_t grammar, +- const char* p, size_t n, const char* p_range, size_t n_range) override; +- + virtual orcus::spreadsheet::range_size_t get_sheet_size() const override; + + SCTAB getIndex() const { return mnTab; } + + const sc::SharedFormulaGroups& getSharedFormulaGroups() const; ++ sc::SharedFormulaGroups& getSharedFormulaGroups(); ++ ScOrcusFactory& getFactory(); + }; + + class ScOrcusStyles : public orcus::spreadsheet::iface::import_styles +@@ -312,7 +368,7 @@ private: + + struct fill + { +- OUString maPattern; ++ orcus::spreadsheet::fill_pattern_t mePattern; + Color maFgColor; + Color maBgColor; + +@@ -446,7 +502,7 @@ public: + // fill + + virtual void set_fill_count(size_t n) override; +- virtual void set_fill_pattern_type(const char* s, size_t n) override; ++ virtual void set_fill_pattern_type(orcus::spreadsheet::fill_pattern_t fp) override; + virtual void set_fill_fg_color(orcus::spreadsheet::color_elem_t alpha, orcus::spreadsheet::color_elem_t red, orcus::spreadsheet::color_elem_t green, orcus::spreadsheet::color_elem_t blue) override; + virtual void set_fill_bg_color(orcus::spreadsheet::color_elem_t alpha, orcus::spreadsheet::color_elem_t red, orcus::spreadsheet::color_elem_t green, orcus::spreadsheet::color_elem_t blue) override; + virtual size_t commit_fill() override; +@@ -581,6 +637,7 @@ public: + + size_t appendString(const OUString& rStr); + size_t addString(const OUString& rStr); ++ const OUString* getString(size_t nIndex) const; + + void pushCellStoreAutoToken( const ScAddress& rPos, const OUString& rVal ); + void pushCellStoreToken( const ScAddress& rPos, uint32_t nStrIndex ); +diff --git a/sc/source/filter/orcus/interface.cxx b/sc/source/filter/orcus/interface.cxx +index 6dcf660..ef85b0f 100644 +--- a/sc/source/filter/orcus/interface.cxx ++++ b/sc/source/filter/orcus/interface.cxx +@@ -100,6 +100,11 @@ void ScOrcusGlobalSettings::set_origin_date(int year, int month, int day) + mrDoc.setOriginDate(year, month, day); + } + ++void ScOrcusGlobalSettings::set_character_set(orcus::character_set_t /*cs*/) ++{ ++ // TODO ++} ++ + void ScOrcusGlobalSettings::set_default_formula_grammar(os::formula_grammar_t grammar) + { + meCalcGrammar = getCalcGrammarFromOrcus(grammar); +@@ -463,6 +468,11 @@ size_t ScOrcusFactory::addString(const OUString& rStr) + return appendString(rStr); + } + ++const OUString* ScOrcusFactory::getString(size_t nIndex) const ++{ ++ return nIndex < maStrings.size() ? &maStrings[nIndex] : nullptr; ++} ++ + void ScOrcusFactory::pushCellStoreAutoToken( const ScAddress& rPos, const OUString& rVal ) + { + maCellStoreTokens.emplace_back(rPos, CellStoreToken::Type::Auto); +@@ -816,10 +826,197 @@ ScOrcusSheet::ScOrcusSheet(ScDocumentImport& rDoc, SCTAB nTab, ScOrcusFactory& r + maProperties(mnTab, mrDoc), + maConditionalFormat(mnTab, rDoc.getDoc()), + maNamedExpressions(rDoc, rFactory.getGlobalSettings(), nTab), ++ maFormula(*this), ++ maArrayFormula(*this), + mnCellCount(0) + { + } + ++void ScOrcusFormula::reset() ++{ ++ mnCol = -1; ++ mnRow = -1; ++ maFormula.clear(); ++ meGrammar = formula::FormulaGrammar::GRAM_UNSPECIFIED; ++ mnSharedFormulaIndex = 0; ++ mbShared = false; ++ meResType = ResultType::NotSet; ++ mnResult = 0; ++ mfResult = 0.0; ++} ++ ++ScOrcusFormula::ScOrcusFormula( ScOrcusSheet& rSheet ) : ++ mrSheet(rSheet), ++ mnCol(-1), ++ mnRow(-1), ++ meGrammar(formula::FormulaGrammar::GRAM_UNSPECIFIED), ++ mnSharedFormulaIndex(0), ++ mbShared(false), ++ meResType(ResultType::NotSet), ++ mnResult(0), ++ mfResult(0.0) {} ++ ++ScOrcusFormula::~ScOrcusFormula() {} ++ ++void ScOrcusFormula::set_position(os::row_t row, os::col_t col) ++{ ++ mnCol = col; ++ mnRow = row; ++} ++ ++void ScOrcusFormula::set_formula(os::formula_grammar_t grammar, const char* p, size_t n) ++{ ++ maFormula = OUString(p, n, RTL_TEXTENCODING_UTF8); ++ meGrammar = getCalcGrammarFromOrcus(grammar); ++} ++ ++void ScOrcusFormula::set_shared_formula_index(size_t index) ++{ ++ mnSharedFormulaIndex = index; ++ mbShared = true; ++} ++ ++void ScOrcusFormula::set_result_value(double value) ++{ ++ meResType = ResultType::Value; ++ mfResult = value; ++} ++ ++void ScOrcusFormula::set_result_string(size_t sindex) ++{ ++ meResType = ResultType::String; ++ mnResult = sindex; ++} ++ ++void ScOrcusFormula::set_result_empty() ++{ ++ meResType = ResultType::Empty; ++} ++ ++void ScOrcusFormula::set_result_bool(bool value) ++{ ++ meResType = ResultType::Value; ++ mfResult = value ? 1.0 : 0.0; ++} ++ ++void ScOrcusFormula::commit() ++{ ++ ScOrcusFactory& rFactory = mrSheet.getFactory(); ++ sc::SharedFormulaGroups& rGroups = mrSheet.getSharedFormulaGroups(); ++ ScAddress aPos(mnCol, mnRow, mrSheet.getIndex()); ++ ++ if (mbShared) ++ { ++ if (maFormula.isEmpty()) ++ { ++ // shared formula that references existing formula token. ++ const ScTokenArray* pArray = rGroups.get(mnSharedFormulaIndex); ++ if (!pArray) ++ return; ++ } ++ else ++ { ++ // topmost shared formula with new formula token. ++ ++ // Compile the formula expression into tokens. ++ ScCompiler aComp(&mrSheet.getDoc().getDoc(), aPos, meGrammar); ++ ScTokenArray* pArray = aComp.CompileString(maFormula); ++ if (!pArray) ++ // Tokenization failed. ++ return; ++ ++ rGroups.set(mnSharedFormulaIndex, pArray); ++ } ++ rFactory.pushSharedFormulaToken(aPos, mnSharedFormulaIndex); ++ } ++ else ++ { ++ // non-shared formula ++ rFactory.pushCellStoreToken(aPos, maFormula, meGrammar); ++ } ++ ++ switch (meResType) ++ { ++ case ResultType::String: ++ { ++ const OUString* pStr = rFactory.getString(mnResult); ++ if (pStr) ++ rFactory.pushFormulaResult(aPos, *pStr); ++ break; ++ } ++ case ResultType::Value: ++ rFactory.pushFormulaResult(aPos, mfResult); ++ break; ++ default: ++ ; ++ } ++ ++ mrSheet.cellInserted(); ++} ++ ++void ScOrcusArrayFormula::reset() ++{ ++ mnCol = -1; ++ mnRow = -1; ++ mnColRange = 0; ++ mnRowRange = 0; ++ ++ maFormula.clear(); ++ meGrammar = formula::FormulaGrammar::GRAM_UNSPECIFIED; ++} ++ ++ScOrcusArrayFormula::ScOrcusArrayFormula( ScOrcusSheet& rSheet ) : ++ mrSheet(rSheet), ++ mnCol(-1), ++ mnRow(-1), ++ mnColRange(0), ++ mnRowRange(0), ++ meGrammar(formula::FormulaGrammar::GRAM_UNSPECIFIED) {} ++ ++ScOrcusArrayFormula::~ScOrcusArrayFormula() {} ++ ++void ScOrcusArrayFormula::set_range(const os::range_t& range) ++{ ++ mnCol = range.first.column; ++ mnRow = range.first.row; ++ ++ mnColRange = range.last.column - range.first.column + 1; ++ mnRowRange = range.last.row - range.first.column + 1; ++} ++ ++void ScOrcusArrayFormula::set_formula(os::formula_grammar_t grammar, const char* p, size_t n) ++{ ++ meGrammar = getCalcGrammarFromOrcus(grammar); ++ maFormula = OUString(p, n, RTL_TEXTENCODING_UTF8); ++} ++ ++void ScOrcusArrayFormula::set_result_value(os::row_t /*row*/, os::col_t /*col*/, double /*value*/) ++{ ++ // TODO : implement result cache for matrix ++} ++ ++void ScOrcusArrayFormula::set_result_string(os::row_t /*row*/, os::col_t /*col*/, size_t /*sindex*/) ++{ ++ // TODO : implement result cache for matrix ++} ++ ++void ScOrcusArrayFormula::set_result_empty(os::row_t /*row*/, os::col_t /*col*/) ++{ ++ // TODO : implement result cache for matrix ++} ++ ++void ScOrcusArrayFormula::set_result_bool(os::row_t /*row*/, os::col_t /*col*/, bool /*value*/) ++{ ++ // TODO : implement result cache for matrix ++} ++ ++void ScOrcusArrayFormula::commit() ++{ ++ ScAddress aPos(mnCol, mnRow, mrSheet.getIndex()); ++ mrSheet.getFactory().pushMatrixFormulaToken(aPos, maFormula, meGrammar, mnRowRange, mnColRange); ++ mrSheet.cellInserted(); ++} ++ + void ScOrcusSheet::cellInserted() + { + ++mnCellCount; +@@ -830,6 +1027,11 @@ void ScOrcusSheet::cellInserted() + } + } + ++ScDocumentImport& ScOrcusSheet::getDoc() ++{ ++ return mrDoc; ++} ++ + os::iface::import_auto_filter* ScOrcusSheet::get_auto_filter() + { + return &maAutoFilter; +@@ -855,6 +1057,18 @@ os::iface::import_named_expression* ScOrcusSheet::get_named_expression() + return &maNamedExpressions; + } + ++os::iface::import_formula* ScOrcusSheet::get_formula() ++{ ++ maFormula.reset(); ++ return &maFormula; ++} ++ ++os::iface::import_array_formula* ScOrcusSheet::get_array_formula() ++{ ++ maArrayFormula.reset(); ++ return &maArrayFormula; ++} ++ + void ScOrcusSheet::set_auto(os::row_t row, os::col_t col, const char* p, size_t n) + { + OUString aVal(p, n, RTL_TEXTENCODING_UTF8); +@@ -921,83 +1135,6 @@ void ScOrcusSheet::set_format(os::row_t row_start, os::col_t col_start, + mrDoc.getDoc().ApplyPatternAreaTab(col_start, row_start, col_end, row_end, mnTab, aPattern); + } + +-void ScOrcusSheet::set_formula( +- os::row_t row, os::col_t col, os::formula_grammar_t grammar, const char* p, size_t n) +-{ +- OUString aFormula(p, n, RTL_TEXTENCODING_UTF8); +- mrFactory.pushCellStoreToken( +- ScAddress(col, row, mnTab), aFormula, getCalcGrammarFromOrcus(grammar)); +- cellInserted(); +-} +- +-void ScOrcusSheet::set_formula_result(os::row_t row, os::col_t col, const char* p, size_t n) +-{ +- OUString aResult( p, n, RTL_TEXTENCODING_UTF8); +- mrFactory.pushFormulaResult(ScAddress(col, row, mnTab), aResult); +-} +- +-void ScOrcusSheet::set_formula_result(os::row_t row, os::col_t col, double val) +-{ +- mrFactory.pushFormulaResult(ScAddress(col, row, mnTab), val); +-} +- +-void ScOrcusSheet::set_shared_formula( +- os::row_t row, os::col_t col, os::formula_grammar_t grammar, size_t sindex, +- const char* p_formula, size_t n_formula) +-{ +- ScAddress aPos(col, row, mnTab); +- OUString aFormula(p_formula, n_formula, RTL_TEXTENCODING_UTF8); +- formula::FormulaGrammar::Grammar eGram = getCalcGrammarFromOrcus(grammar); +- +- // Compile the formula expression into tokens. +- ScCompiler aComp(&mrDoc.getDoc(), aPos, eGram); +- ScTokenArray* pArray = aComp.CompileString(aFormula); +- if (!pArray) +- // Tokenization failed. +- return; +- +- maFormulaGroups.set(sindex, pArray); +- +- mrFactory.pushSharedFormulaToken(aPos, sindex); +- cellInserted(); +-} +- +-void ScOrcusSheet::set_shared_formula( +- os::row_t row, os::col_t col, os::formula_grammar_t grammar, size_t sindex, +- const char* p_formula, size_t n_formula, const char* /*p_range*/, size_t /*n_range*/) +-{ +- set_shared_formula(row, col, grammar, sindex, p_formula, n_formula); +-} +- +-void ScOrcusSheet::set_shared_formula(os::row_t row, os::col_t col, size_t sindex) +-{ +- ScAddress aPos(col, row, mnTab); +- +- const ScTokenArray* pArray = maFormulaGroups.get(sindex); +- if (!pArray) +- return; +- +- mrFactory.pushSharedFormulaToken(aPos, sindex); +- cellInserted(); +-} +- +-void ScOrcusSheet::set_array_formula( +- os::row_t row, os::col_t col, os::formula_grammar_t grammar, +- const char* p, size_t n, os::row_t array_rows, os::col_t array_cols) +-{ +- OUString aFormula(p, n, RTL_TEXTENCODING_UTF8); +- formula::FormulaGrammar::Grammar eGrammar = getCalcGrammarFromOrcus(grammar); +- +- ScAddress aPos(col, row, mnTab); +- mrFactory.pushMatrixFormulaToken(aPos, aFormula, eGrammar, array_rows, array_cols); +-} +- +-void ScOrcusSheet::set_array_formula( +- os::row_t /*row*/, os::col_t /*col*/, os::formula_grammar_t /*grammar*/, +- const char* /*p*/, size_t /*n*/, const char* /*p_range*/, size_t /*n_range*/) +-{ +-} +- + orcus::spreadsheet::range_size_t ScOrcusSheet::get_sheet_size() const + { + orcus::spreadsheet::range_size_t ret; +@@ -1012,6 +1149,16 @@ const sc::SharedFormulaGroups& ScOrcusSheet::getSharedFormulaGroups() const + return maFormulaGroups; + } + ++sc::SharedFormulaGroups& ScOrcusSheet::getSharedFormulaGroups() ++{ ++ return maFormulaGroups; ++} ++ ++ScOrcusFactory& ScOrcusSheet::getFactory() ++{ ++ return mrFactory; ++} ++ + ScOrcusSharedStrings::ScOrcusSharedStrings(ScOrcusFactory& rFactory) : + mrFactory(rFactory) {} + +@@ -1087,7 +1234,7 @@ ScOrcusStyles::font::font(): + } + + ScOrcusStyles::fill::fill(): +- maPattern(""), ++ mePattern(orcus::spreadsheet::fill_pattern_t::none), + maFgColor(COL_WHITE), + maBgColor(COL_WHITE), + mbHasFillAttr(false) +@@ -1143,13 +1290,13 @@ void ScOrcusStyles::font::applyToItemSet(SfxItemSet& rSet) const + + void ScOrcusStyles::fill::applyToItemSet(SfxItemSet& rSet) const + { +- if (maPattern.equalsIgnoreAsciiCase("none")) ++ if (mePattern == orcus::spreadsheet::fill_pattern_t::none) + { + SAL_INFO("sc.orcus.style", "no fill style"); + return; + } + +- if (maPattern.equalsIgnoreAsciiCase("solid")) ++ if (mePattern == orcus::spreadsheet::fill_pattern_t::solid) + rSet.Put(SvxBrushItem(maFgColor, ATTR_BACKGROUND)); + } + +@@ -1575,10 +1722,9 @@ void ScOrcusStyles::set_fill_count(size_t /*n*/) + // needed at all? + } + +-void ScOrcusStyles::set_fill_pattern_type(const char* s, size_t n) ++void ScOrcusStyles::set_fill_pattern_type(orcus::spreadsheet::fill_pattern_t fp) + { +- maCurrentFill.maPattern = OUString(s, n, RTL_TEXTENCODING_UTF8); +- maCurrentFill.mbHasFillAttr = true; ++ maCurrentFill.mePattern = fp; + } + + void ScOrcusStyles::set_fill_fg_color( +@@ -1962,12 +2108,12 @@ ScOrcusAutoFilter::~ScOrcusAutoFilter() + { + } + +-void ScOrcusAutoFilter::set_range(const char* p_ref, size_t n_ref) ++void ScOrcusAutoFilter::set_range(const orcus::spreadsheet::range_t& range) + { +- OUString aRange(p_ref, n_ref, RTL_TEXTENCODING_UTF8); +- SAL_INFO("sc.orcus.autofilter", "set_range: " << aRange); +- +- maRange.Parse(aRange); ++ maRange.aStart.SetRow(range.first.row); ++ maRange.aStart.SetCol(range.first.column); ++ maRange.aEnd.SetRow(range.last.row); ++ maRange.aEnd.SetCol(range.last.column); + } + + void ScOrcusAutoFilter::set_column(orcus::spreadsheet::col_t col) +diff --git a/sc/source/filter/orcus/xmlcontext.cxx b/sc/source/filter/orcus/xmlcontext.cxx +index 5e97db9..29223cb 100644 +--- a/sc/source/filter/orcus/xmlcontext.cxx ++++ b/sc/source/filter/orcus/xmlcontext.cxx +@@ -23,6 +23,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -288,7 +289,9 @@ void ScOrcusXMLContextImpl::importXML(const ScOrcusImportXMLParam& rParam) + } + } + +- filter.read_file(path); ++ std::string content = orcus::load_file_content(path); ++ filter.read_stream(content.data(), content.size()); ++ + aFactory.finalize(); + } + catch (const std::exception&) diff --git a/debian/patches/reportdesign-mention-package.diff b/debian/patches/reportdesign-mention-package.diff new file mode 100644 index 00000000000..e425b6c80b4 --- /dev/null +++ b/debian/patches/reportdesign-mention-package.diff @@ -0,0 +1,22 @@ +From: Debian LibreOffice Maintainers +Date: Sat, 25 Mar 2023 16:21:58 +0000 +Subject: reportdesign-mention-package + +=================================================================== +--- + dbaccess/inc/strings.hrc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dbaccess/inc/strings.hrc b/dbaccess/inc/strings.hrc +index 04b9a75..57c10ca 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/sanitize-LibreLogo-calls.diff b/debian/patches/sanitize-LibreLogo-calls.diff new file mode 100644 index 00000000000..59de36b8fdc --- /dev/null +++ b/debian/patches/sanitize-LibreLogo-calls.diff @@ -0,0 +1,81 @@ +From: Debian LibreOffice Maintainers +Date: Sat, 25 Mar 2023 16:22:16 +0000 +Subject: sanitize-LibreLogo-calls + +=================================================================== +--- + librelogo/source/LibreLogo/LibreLogo.py | 51 ++++++++++++++++++++++++++++++++- + 1 file changed, 50 insertions(+), 1 deletion(-) + +diff --git a/librelogo/source/LibreLogo/LibreLogo.py b/librelogo/source/LibreLogo/LibreLogo.py +index 57d385b..960d48a 100644 +--- a/librelogo/source/LibreLogo/LibreLogo.py ++++ b/librelogo/source/LibreLogo/LibreLogo.py +@@ -145,6 +145,7 @@ __LineStyle_DOTTED__ = 2 + class __Doc__: + def __init__(self, doc): + self.doc = doc ++ self.secure = False + try: + self.drawpage = doc.DrawPage # Writer + except: +@@ -463,10 +464,58 @@ class LogoProgram(threading.Thread): + self.code = code + threading.Thread.__init__(self) + ++ def secure(self): ++ # 0 = secure ++ if _.secure: ++ return 0 ++ ++ # 1 = forms, fields or embedded objects are forbidden ++ if _.doc.DrawPage.Forms.getCount() > 0 or _.doc.getTextFields().createEnumeration().hasMoreElements() or _.doc.getEmbeddedObjects().getCount() > 0: ++ return 1 ++ ++ # 2 = hyperlinks with script events ++ nodes = _.doc.Text.createEnumeration() ++ while nodes.hasMoreElements(): ++ node = nodes.nextElement() ++ if node.supportsService("com.sun.star.text.Paragraph"): ++ portions = node.createEnumeration() ++ while portions.hasMoreElements(): ++ portion = portions.nextElement() ++ if portion.PropertySetInfo.hasPropertyByName("HyperLinkEvents"): ++ events = portion.getPropertyValue("HyperLinkEvents") ++ for event in events.getElementNames(): ++ attributes = events.getByName(event) ++ for attribute in attributes: ++ if attribute.Name == "EventType" and attribute.Value == "Script": ++ return 2 ++ ++ # 2 = images with script events ++ images = _.doc.DrawPage.createEnumeration() ++ while images.hasMoreElements(): ++ image = images.nextElement() ++ try: ++ events = image.Events ++ for event in events.getElementNames(): ++ attributes = events.getByName(event) ++ for attribute in attributes: ++ if attribute.Name == "EventType" and attribute.Value == "Script": ++ return 2 ++ except: ++ pass ++ ++ _.secure = True ++ return 0 ++ + def run(self): + global __thread__ + try: +- exec(self.code) ++ # check document security ++ secid = self.secure() ++ if secid > 0: ++ parent = _.doc.CurrentController.Frame.ContainerWindow ++ MessageBox(parent, "Document objects with%s script events" % [" possible", ""][secid-1], "LibreLogo program can't start", "errorbox") ++ else: ++ exec(self.code) + if _.origcursor[0] and _.origcursor[1]: + __dispatcher__(".uno:Escape") + try: diff --git a/debian/patches/sensible-lomua.diff b/debian/patches/sensible-lomua.diff new file mode 100644 index 00000000000..00d0a9dbc82 --- /dev/null +++ b/debian/patches/sensible-lomua.diff @@ -0,0 +1,60 @@ +From: Debian LibreOffice Maintainers +Date: Sat, 25 Mar 2023 16:21:57 +0000 +Subject: sensible-lomua + +=================================================================== +--- + .../registry/data/org/openoffice/Office/Common.xcu | 2 +- + shell/source/unix/misc/senddoc.sh | 26 ++++++++++++++++++++++ + 2 files changed, 27 insertions(+), 1 deletion(-) + +diff --git a/officecfg/registry/data/org/openoffice/Office/Common.xcu b/officecfg/registry/data/org/openoffice/Office/Common.xcu +index 26d1ba0..ca444c3 100644 +--- a/officecfg/registry/data/org/openoffice/Office/Common.xcu ++++ b/officecfg/registry/data/org/openoffice/Office/Common.xcu +@@ -518,7 +518,7 @@ + + + +- ++ sensible-lomua + + + +diff --git a/shell/source/unix/misc/senddoc.sh b/shell/source/unix/misc/senddoc.sh +index 372cee4..9305661 100755 +--- a/shell/source/unix/misc/senddoc.sh ++++ b/shell/source/unix/misc/senddoc.sh +@@ -77,6 +77,32 @@ if [ "$1" = "--mailclient" ]; then + 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 index 00000000000..cb79bb99285 --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,80 @@ +no-check-if-root.diff +debian-opt.diff +jurt-soffice-location.diff +split-evoab.diff +debian-debug.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 +mysqlcppconn-libmysqlclient-SONAME.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 +fix-internal-hsqldb-build.diff +javadoc-optional.diff +hppa-is-32bit.diff +no-packagekit-per-default.diff +system-officeotron-and-odfvalidator.diff +allow-opensymbol-rebuild.diff +no-openssl.diff +disable-some-sc-tests-with-internal-cppunit.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 +no-ant-check-if-unneeded.diff +test-apparmor-profiles.diff +apparmor-allow-java.security.diff +apparmor-kde.diff +apparmor-cleanups.diff +fix-tests-openjdk11.patch +apparmor-mesa.diff +disableClassPathURLCheck.diff +use-mariadb-java-instead-of-mysql-java.diff +mdds-1.4.1.diff +orcus-0.14.diff +m68k-fix-parameter-type.patch +apparmor-opencl.diff +tdf123077.diff +java.vendor-Debian.diff +jp-JP-Reiwa.diff +sanitize-LibreLogo-calls.diff +explictly-exclude-LibreLogo-from-XScript-usage.diff +More-uses-of-referer-URL-with-SvxBrushItem.diff +expand-LibreLogo-checks-to-global-events.diff +decode-url-escape-codes-and-check-each-path-segment.diff +keep-name-percent-encoded.diff +Properly-obtain-location.diff +expand-pyuno-path-separators.diff +construct-final-url-from-parsed-output.diff +an-absolute-uri-is-invalid-input.diff +Improve-check-for-absolute-URI.diff +Improve-check.diff +allow-link-updates-in-an-intermediate-linked-document.diff +Postgresql-12-no-adsrc.diff +glm-0.9.9-ctor.diff +fix-PYTHONPATH.diff +0066-Subject-CVE-2021-25636-only-use-X509Data.patch +0067-CVE-2022-26307-make-hash-encoding-match-decoding.patch +0068-CVE-2022-26306-CVE-2022-26307-add-infobar-to-prompt-.patch +0069-Simplify-Sequence-iterations-in-svl-only-passwordcon.patch +0070-CVE-2022-26307-add-Initialization-Vectors-to-passwor.patch +0071-CVE-2022-3140-warn-on-load-when-a-document-binds-an-.patch +0072-CVE-2022-3140-check-IFrame-FrameURL-target.patch +0073-CVE-2022-3140-Filter-out-unwanted-command-URIs.patch +0074-CVE-2022-3140-check-impress-calc-IFrame-FrameURL-tar.patch +0075-From-5e8f64e50f97d39e83a3358697be14db03566878-Mon-Se.patch +0076-Subject-CVE-2023-0950-Obtain-actual-0-parameter-coun.patch +0077-1-3-CVE-2023-2255-set-Referer-on-loading-IFrames.patch +0078-Refresh-linked-OLE-representation-when-OLE-updated.patch +0079-2-3-CVE-2023-2255-put-floating-frames-under-managed-.patch +0080-3-3-CVE-2023-2255-assume-IFrame-script-macro-support.patch diff --git a/debian/patches/split-evoab.diff b/debian/patches/split-evoab.diff new file mode 100644 index 00000000000..75c4472db85 --- /dev/null +++ b/debian/patches/split-evoab.diff @@ -0,0 +1,73 @@ +From: Debian LibreOffice Maintainers +Date: Sat, 25 Mar 2023 16:21:54 +0000 +Subject: split-evoab + +=================================================================== +--- + postprocess/CustomTarget_registry.mk | 5 +++-- + scp2/InstallModule_gnome.mk | 4 ++++ + scp2/source/gnome/file_gnome.scp | 10 ++++++++++ + scp2/source/gnome/module_gnome.scp | 3 +++ + 4 files changed, 20 insertions(+), 2 deletions(-) + +diff --git a/postprocess/CustomTarget_registry.mk b/postprocess/CustomTarget_registry.mk +index 7548789..349be16 100644 +--- a/postprocess/CustomTarget_registry.mk ++++ b/postprocess/CustomTarget_registry.mk +@@ -325,8 +325,9 @@ ifneq ($(WITH_WEBDAV),) + postprocess_FILES_main += $(postprocess_MOD)/org/openoffice/ucb/Configuration-webdav.xcu + endif + ifeq ($(ENABLE_EVOAB2),TRUE) +-postprocess_FILES_main += $(call gb_XcuModuleTarget_get_target,connectivity/registry/evoab2)/org/openoffice/Office/DataAccess/Drivers-evoab2.xcu +-postprocess_FILES_main += $(postprocess_MOD)/org/openoffice/Office/DataAccess-evoab2.xcu ++postprocess_XCDS += evoab.xcd ++postprocess_FILES_evoab += $(call gb_XcuModuleTarget_get_target,connectivity/registry/evoab2)/org/openoffice/Office/DataAccess/Drivers-evoab2.xcu ++postprocess_FILES_evoab += $(postprocess_MOD)/org/openoffice/Office/DataAccess-evoab2.xcu + postprocess_DRIVERS += evoab + endif + ifeq ($(ENABLE_JAVA),TRUE) +diff --git a/scp2/InstallModule_gnome.mk b/scp2/InstallModule_gnome.mk +index c33f4f5..8f06c02 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/scp2/source/gnome/file_gnome.scp b/scp2/source/gnome/file_gnome.scp +index 3f4b8f5..25d068f 100644 +--- a/scp2/source/gnome/file_gnome.scp ++++ b/scp2/source/gnome/file_gnome.scp +@@ -26,3 +26,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 200c300..4825075 100644 +--- a/scp2/source/gnome/module_gnome.scp ++++ b/scp2/source/gnome/module_gnome.scp +@@ -30,6 +30,9 @@ Module gid_Module_Optional_Gnome + Files = (auto_gnome_ALL + #if ENABLE_GIO + ,gid_File_Share_Registry_Gnome_Xcd ++#endif ++#ifdef ENABLE_EVOAB2 ++ ,gid_File_Share_Registry_Evoab_Xcd + #endif + ); + End diff --git a/debian/patches/system-officeotron-and-odfvalidator.diff b/debian/patches/system-officeotron-and-odfvalidator.diff new file mode 100644 index 00000000000..56aa190f3aa --- /dev/null +++ b/debian/patches/system-officeotron-and-odfvalidator.diff @@ -0,0 +1,26 @@ +From: Debian LibreOffice Maintainers +Date: Sat, 25 Mar 2023 16:22:03 +0000 +Subject: system-officeotron-and-odfvalidator + +=================================================================== +--- + bin/odfvalidator.sh.in | 2 +- + bin/officeotron.sh.in | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/bin/odfvalidator.sh.in b/bin/odfvalidator.sh.in +index 56e2f29..451af10 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@ -e "$@" ++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 -e "$@" +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/tdf123077.diff b/debian/patches/tdf123077.diff new file mode 100644 index 00000000000..97630478cec --- /dev/null +++ b/debian/patches/tdf123077.diff @@ -0,0 +1,38 @@ +From: Michael Weghorn +Date: Thu, 31 Jan 2019 09:52:51 +0100 +Subject: tdf#123077 gtk3_kde5: Set KFileWidget's custom widget only once + +Since the event filter is only used to set the custom +widget in the KFileWidget, it can and needs to be removed +again once this has been done; which also avoids crashes. + +(s. https://gerrit.libreoffice.org/#/c/67185/ for more +infos, where the same thing is done for kde5) + +Change-Id: I5c719fb17510916b4730ed5c00bb638df2f183e3 +Reviewed-on: https://gerrit.libreoffice.org/67184 +Tested-by: Jenkins +Reviewed-by: Michael Weghorn +(cherry picked from commit 30cc54a4532a732a0cf6dfe9943521978ff7292f) +Reviewed-on: https://gerrit.libreoffice.org/67204 +Reviewed-by: Thorsten Behrens +--- + vcl/unx/gtk3_kde5/kde5_filepicker.cxx | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/vcl/unx/gtk3_kde5/kde5_filepicker.cxx b/vcl/unx/gtk3_kde5/kde5_filepicker.cxx +index 42e278a..804aaa6 100644 +--- a/vcl/unx/gtk3_kde5/kde5_filepicker.cxx ++++ b/vcl/unx/gtk3_kde5/kde5_filepicker.cxx +@@ -241,7 +241,11 @@ bool KDE5FilePicker::eventFilter(QObject* o, QEvent* e) + { + KWindowSystem::setMainWindow(w, _winId); + if (auto* fileWidget = w->findChild({}, Qt::FindDirectChildrenOnly)) ++ { + fileWidget->setCustomWidget(_extraControls); ++ // remove event filter again; the only purpose was to set the custom widget here ++ qApp->removeEventFilter(this); ++ } + } + } + return QObject::eventFilter(o, e); diff --git a/debian/patches/test-apparmor-profiles.diff b/debian/patches/test-apparmor-profiles.diff new file mode 100644 index 00000000000..d6c10016bdd --- /dev/null +++ b/debian/patches/test-apparmor-profiles.diff @@ -0,0 +1,50 @@ +From: Rene Engelhard +Date: Wed, 13 Jun 2018 21:37:12 +0200 +Subject: [PATCH] test apparmor profile parsing (see tdf#114915) + +idea taken from +https://salsa.debian.org/apparmor-team/apparmor-profiles-extra/commit/7fbcc4788d0e94764eeeff2f080796601241f986#546c1096cd506dbb01a47ed87a636a8e94d83b8c + +Change-Id: I7e5bda9224d69530af4d30422c2fd3d60c9929d6 +--- + sysui/desktop/share/apparmor.sh | 13 +++++++++---- + 1 file changed, 9 insertions(+), 4 deletions(-) + +diff --git a/sysui/desktop/share/apparmor.sh b/sysui/desktop/share/apparmor.sh +index 253fe87..c801f0f 100755 +--- a/sysui/desktop/share/apparmor.sh ++++ b/sysui/desktop/share/apparmor.sh +@@ -19,16 +19,17 @@ INST_ROOT=$1 #Where libreoffice program folder can be found + PROFILESFROM=$2 #Where the profile files are + INSTALLTO=$3 #Where should the apparmor profiles (For manual use should be /etc/apparmor.d) + RESTART=$4 #Should we restart apparmor using service? ++CHECK=$5 #Check parsing of the new profile? + + #Example uses: + #Ubuntu 16.04 with stock LibreOffice: +-# sudo ./sysui/desktop/share/apparmor.sh /usr/lib/libreoffice/ sysui/desktop/apparmor/ /etc/apparmor.d/ true ++# sudo ./sysui/desktop/share/apparmor.sh /usr/lib/libreoffice/ sysui/desktop/apparmor/ /etc/apparmor.d/ true true + + #Ubuntu 16.04, with built debs from LibreOffice git +-# sudo ./sysui/desktop/share/apparmor.sh /opt/libreofficedev5.2/ sysui/desktop/apparmor/ /etc/apparmor.d/ true ++# sudo ./sysui/desktop/share/apparmor.sh /opt/libreofficedev5.2/ sysui/desktop/apparmor/ /etc/apparmor.d/ true true + + #Ubuntu 16.04, running from git! +-# sudo ./sysui/desktop/share/apparmor.sh /mnt/store/git/libo/instdir/ sysui/desktop/apparmor/ /etc/apparmor.d/ true ++# sudo ./sysui/desktop/share/apparmor.sh /mnt/store/git/libo/instdir/ sysui/desktop/apparmor/ /etc/apparmor.d/ true true + + #Need to convert / to . for profile names + INST_ROOT_FORMAT=${INST_ROOT/\//} +@@ -43,7 +44,11 @@ do + tourl=$INSTALLTO$INST_ROOT_FORMAT${filename##*/} + sed "s/INSTDIR-/$INST_ROOT_SED/g" "$filename" > "$tourl" + echo "$tourl" +- ++ if [ "$CHECK" = "true" ]; then ++ # check profile parsing ++ echo "Checking $tourl profile." ++ /sbin/apparmor_parser --add --skip-cache --skip-kernel-load $tourl ++ fi + done + + if [ "$RESTART" = true ] ; then 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 index 00000000000..04ee8cccbb7 --- /dev/null +++ b/debian/patches/use-mariadb-java-instead-of-mysql-java.diff @@ -0,0 +1,65 @@ +From: Markus Koschany +Date: Fri, 9 Nov 2018 23:06:15 +0100 +Subject: [PATCH] mariadb + +--- + connectivity/qa/complex/connectivity/JdbcLongVarCharTest.java | 4 ++-- + .../registry/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 a44f1b9..03a8293 100644 +--- a/connectivity/qa/complex/connectivity/JdbcLongVarCharTest.java ++++ b/connectivity/qa/complex/connectivity/JdbcLongVarCharTest.java +@@ -59,7 +59,7 @@ public class JdbcLongVarCharTest extends ComplexTestCase + + String url = "jdbc:mysql://localhost:3306/mysql?user=root"; + 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(); +@@ -117,4 +117,4 @@ public class JdbcLongVarCharTest extends ComplexTestCase + System.exit(0); + } + } +-} +\ No newline at end of file ++} +diff --git a/connectivity/registry/mysql/org/openoffice/Office/DataAccess/Drivers.xcu b/connectivity/registry/mysql/org/openoffice/Office/DataAccess/Drivers.xcu +index 7798844..acd8bfd 100644 +--- a/connectivity/registry/mysql/org/openoffice/Office/DataAccess/Drivers.xcu ++++ b/connectivity/registry/mysql/org/openoffice/Office/DataAccess/Drivers.xcu +@@ -33,7 +33,7 @@ + + + +- com.mysql.jdbc.Driver ++ org.mariadb.jdbc.Driver + + + +diff --git a/connectivity/source/drivers/mysql/YDriver.cxx b/connectivity/source/drivers/mysql/YDriver.cxx +index 9509426..c0ad780 100644 +--- a/connectivity/source/drivers/mysql/YDriver.cxx ++++ b/connectivity/source/drivers/mysql/YDriver.cxx +@@ -54,7 +54,7 @@ namespace connectivity + css::uno::Sequence const & info) + { + return comphelper::NamedValueCollection(info).getOrDefault( +- "JavaDriverClass", OUString("com.mysql.jdbc.Driver")); ++ "JavaDriverClass", OUString("org.mariadb.jdbc.Driver")); + } + } + +@@ -185,7 +185,7 @@ namespace connectivity + aProps.push_back( PropertyValue( + "JavaDriverClass" + ,0 +- ,makeAny(OUString("com.mysql.jdbc.Driver")) ++ ,makeAny(OUString("org.mariadb.jdbc.Driver")) + ,PropertyState_DIRECT_VALUE) ); + } + } diff --git a/debian/python3-uno.NEWS b/debian/python3-uno.NEWS new file mode 100644 index 00000000000..fb4312b42c4 --- /dev/null +++ b/debian/python3-uno.NEWS @@ -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 Sat, 07 Apr 2012 14:30:41 +0200 + diff --git a/debian/rules b/debian/rules new file mode 100755 index 00000000000..5e206f8b5d2 --- /dev/null +++ b/debian/rules @@ -0,0 +1,3825 @@ +#!/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 +# Rene Engelhard +# Copyright 2002-2015 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 . +################################################################################ + +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) +#HELP_L10N_VIRTUAL_VERSION:=$(shell echo $(DEB_VERSION_UPSTREAM) | cut -d: -f2 | tr [~] [\\-]) +HELP_L10N_VIRTUAL_VERSION:=6.1 +OOVER:=6.1 +NEXT_OOVER:=$(shell echo "$(OOVER) + 0.1" | bc) + +ARCH_INDEP_PACKAGES := $(shell dh_listpackages -i) +ARCH_DEP_PACKAGES := $(shell dh_listpackages -a) +PACKAGES := $(ARCH_INDEP_PACKAGES) $(ARCH_DEP_PACKAGES) + +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') +#FIXME +SYSTEM_GCC_VERSION = $(shell gcc --version | sed -n '/^gcc/s/.*\(.\..\)\../\1/p' | cut -d" " -f1) +ifeq "$(shell dpkg --compare-versions $(SYSTEM_GCC_VERSION) ge 5 && echo true)" "true" + GCC_VERSION_5_OR_GREATER=y +endif + +PKGDIR:=debian/libreoffice +OODIRNAME=libreoffice +OODIR:=usr/lib/$(OODIRNAME) +OOSDKDIR:=$(OODIR)/sdk + +# Figure out who's building this package. +OOO_VENDOR:=The Document Foundation/Debian +ifeq "$(DEB_VENDOR)" "Ubuntu" +OOO_VENDOR=The Document Foundation, Debian and Ubuntu +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=n +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-6-1-5 +endif +ifeq "$(USE_SOURCE_TARBALLS)" "y" +lo_sources_ver=$(shell cat $(CURDIR)/sources.ver | cut -d= -f2) +endif + +######### +# Default package configuration +# +OOO_ARCHS = alpha amd64 arm64 armel armhf hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el s390 s390x sparc sparc64 +PATCHSET=$(DEB_VENDOR) +BUILD_DEPS=\ + autoconf,\ + automake,\ + bc,\ + bison,\ + bzip2,\ + flex (>= 2.3.35), \ + fontforge-nox | fontforge, \ + gperf,\ + libc0.1 (>= 2.10.2-7) [kfreebsd-any],\ + libcups2-dev,\ + libfontconfig1-dev,\ + libfreetype6-dev (>= 2.2.0),\ + libgl1-mesa-dev,\ + libice-dev,\ + libsm-dev,\ + libx11-dev,\ + libxaw7-dev,\ + libxext-dev,\ + libxinerama-dev,\ + libxkbfile-dev,\ + libxrender-dev,\ + libxt-dev,\ + libxtst-dev,\ + pkg-config,\ + unzip,\ + x11proto-render-dev,\ + 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-). +SYSTEM_STUFF = dicts + +ENABLE_PYTHON=y +ifeq "$(ENABLE_PYTHON)" "y" + CONFIGURE_FLAGS += --with-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 +BUILD_ONLY_EN_US=n +ENABLE_JAVA=y +ifeq "$(ENABLE_JAVA)" "y" + JDK=default + include /usr/share/java/java_defaults.mk + ifneq "$(JDK)" "default" + JAVA_MAINVER=7 + endif +endif +JAVAHELPER_MIN_VERSION= (>= 0.37~) +SYSTEM_STUFF += hunspell +HUNSPELL_MIN_VER= (>= 1.1.5-2) +SYSTEM_STUFF += altlinuxhyph +USE_LIBHYPHEN=y +LIBHYPHEN_MINVER= (>= 2.4) +SYSTEM_STUFF += boost +BOOST_VERSION=default +ifeq "$(BOOST_VERSION)" "default" + ifeq "$(GCC_VERSION_5_OR_GREATER)" "y" + BOOST_MINVER= (>= 1.58) + else + BOOST_MINVER= (>= 1.55) + endif +endif +SYSTEM_STUFF += mdds +USE_EXTERNAL_CXXLIBS=y +SYSTEM_STUFF += mythes +SYSTEM_STUFF += icu +ICU_MINVER= (>= 52) +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 +BUILD_CAIROCANVAS=y +SYSTEM_STUFF += cairo +CAIRO_FONTS_PATCH=y +BUILD_KDE=y +BUILD_KDE4=n +# < 4.8 fails with gcc 4.7, see #667911 +QT4_MINVER= (>= 4:4.8) +KDELIBS_MINVER= (>= 4:4.3.4) +BUILD_KDE5=y +ifeq "$(DEB_HOST_ARCH_BITS)" "64" +ENABLE_QT5=n +endif +QT5_MINVER= (>= 5.6) +ifeq "$(BUILD_KDE)" "y" + ENABLE_GTK3_KDE5=y + ENABLE_KDE5=n + KDE_MAJOR=5 +endif +ifeq "$(BUILD_KDE)" "y" +ifeq "$(BUILD_KDE4)" "y" +ifeq "$(BUILD_KDE5)" "y" + $(error only either KDE4 or KDE5 supported) +endif +endif +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=n +DWZ_ARGS:=-L 100000000 +endif +endif +SYSTEM_STUFF += xmlsec + +# 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 + +ifneq ($(MAKECMDGOALS),build-indep) +ENABLE_SYMBOLS=y +SMALL_SYMBOLS=y +endif + +ifeq "$(ENABLE_JAVA)" "y" + SYSTEM_STUFF += beanshell + SYSTEM_STUFF += hsqldb + HSQLDB_MINVER= (>> 1.8.0.10) + HSQLDB_TOONEWVER=1.8.1 + HSQLDB_JAR=/usr/share/java/hsqldb1.8.0.jar +endif +SYSTEM_STUFF += lpsolve +USE_SHARED_LPSOLVE=y +LPSOLVE_MIN_VERSION= (>= 5.5.0.13-5+b1) +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 +USE_GSTREAMER=y +USE_VLC=y +ENABLE_WEBDAV=y +ifeq "$(ENABLE_WEBDAV)" "y" +WEBDAV_LIB=neon + ifeq "$(WEBDAV_LIB)" "neon" + SYSTEM_STUFF += neon + NEON_SECTYPE=gnutls + NEONSONR=27 + else + SYSTEM_STUFF += apr + SYSTEM_STUFF += serf + endif +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 +ENABLE_CHART_TESTS=n +ENABLE_EXPORT_VALIDATION_TESTS=n +JUNIT_MIN_VER= (>= 4.8.2-2) +USE_LIBCURL4=y +CURL_SECTYPE=gnutls +USE_LIBSUITESPARSE=y +SUITESPARSE_MIN_VERSION= (>= 1:3.4.0) +PARALLEL_BUILD=y +ENABLE_LDAP=y +USE_OPENLDAP=y +SYSTEM_STUFF += epoxy +ifeq "$(ENABLE_JAVA)" "y" + ENABLE_REPORTBUILDER=y + SYSTEM_STUFF += jfreereport + ENABLE_MEDIAWIKI=y + SYSTEM_STUFF += apache-commons + 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 +BUILD_GTK=y +#ifeq "$(DEB_DISTRIBUTION)" "experimental" +BUILD_GTK3=y +#endif +ifeq "$(BUILD_GTK3)" "y" +ENABLE_INTROSPECTION=y +endif +ENABLE_EVO2=y +ENABLE_GIO=y +ENABLE_DCONF=y +ENABLE_RANDR=y +PACKAGE_BASE=y +SYSTEM_STUFF += graphite +SYSTEM_STUFF += harfbuzz +ALLOC=system +SYSTEM_STUFF += libexttextcat +SYSTEM_STUFF += cppunit +CPPUNIT_MINVER=1.14 +DEFAULT_IMAGE=tango +IMAGES:=$(DEFAULT_IMAGE) colibre sifr sifr_dark breeze breeze_dark elementary +CONFIGURE_FLAGS_INDEP += --with-theme="$(IMAGES)" +DICT_DIR=/usr/share/hunspell +HYPH_DIR=/usr/share/hyphen +THES_DIR=/usr/share/mythes +SYSTEM_STUFF += libcmis +ifeq "$(GCC_VERSION_5_OR_GREATER)" "y" +LIBCMIS_MINVER=0.5.0-3 +else +LIBCMIS_MINVER=0.5.0 +endif +ENABLE_MYSQLNATIVE=y +MYSQL_FLAVOUR=default +# set this also to y for system-mysql.. +SYSTEM_STUFF += mariadb +SYSTEM_STUFF += mysql-cppconn +ifeq "$(GCC_VERSION_5_OR_GREATER)" "y" + ifneq (,$(filter libcmis, $(SYSTEM_STUFF))) + ifeq "$(shell dpkg --compare-versions `dpkg -l libcmis-dev | grep ^ii | awk '{ print $$3 }'` ge 0.5.2~ && echo true)" "true" + MYSQLCPPCONN_MINVER= (>= 1.1.9-4) + else + MYSQLCPPCONN_MINVER= (>= 1.1.7-4) + endif + else + MYSQLCPPCONN_MINVER= (>= 1.1.7-4) + endif +else +MYSQLCPPCONN_MINVER= (>= 1.1.0~r791) +endif +SYSTEM_STUFF += postgresql +SYSTEM_STUFF += jpeg +SYSTEM_STUFF += libxml +SYSTEM_STUFF += expat +SYSTEM_STUFF += odbc +SYSTEM_STUFF += curl +SYSTEM_STUFF += sane +SYSTEM_STUFF += poppler +SYSTEM_STUFF += libpng +SYSTEM_STUFF += nss +ENABLE_HELP=y +ifeq "$(ENABLE_HELP)" "y" + ENABLE_HTML_HELP=y + ifeq "$(ENABLE_HTML_HELP)" "y" + HELP_DEPENDS := libreoffice-help-common (= $${binary:Version}), firefox-esr | epiphany-browser | konqueror | chromium | firefox + HELP_COMMON_DEPENDS := libjs-normalize.css + else + HELP_DEPENDS := libreoffice-writer + DEBHELPER_OPTIONS += -Nlibreoffice-help-common + endif + SYSTEM_STUFF += clucene + ifeq "$(GCC_VERSION_5_OR_GREATER)" "y" + CLUCENE_MINVER=2.3.3.4-4.1 + else + CLUCENE_MINVER=2.3.3.4-2 + endif +endif +SYSTEM_STUFF += lcms2 +SYSTEM_STUFF += openldap +PACKAGE_UNOWINREG_DLL=y +ifeq "$(DEB_VENDOR)" "Debian" +BUILD_UNOWINREG_DLL=y +endif +FAKEROOT_LIBDIR=/usr/lib/$(DEB_HOST_MULTIARCH)/libfakeroot +SYSTEM_STUFF += liblangtag +SYSTEM_STUFF += orcus +LIBORCUS_MINVER=0.14.0+really0.14.0 +USE_UCPP=y +ifeq "$(USE_UCPP)" "y" + SYSTEM_STUFF += ucpp +endif +# kfreebsd runs into SIZE_MAX problems, and the rest might +# get OOM (mips(el)...) so enable mergelibs only for 64bit +# archs (exception: i386) +ifeq (,$(findstring kfreebsd,$(DEB_HOST_ARCH))) + ifeq "$(DEB_HOST_ARCH_BITS)" "64" + ENABLE_MERGELIBS=y + else + ifeq "$(DEB_HOST_ARCH)" "i386" + ENABLE_MERGELIBS=y + endif + endif +endif +#ifeq "$(ENABLE_MERGELIBS)" "y" +# ENABLE_LTO=y +#else + ENABLE_LTO=n +#endif +USE_OPENCL=y +#10:15 <@_rene_> ahunt: I remember you wanted to do some endian things? did it +# ever get done? +#10:15 -!- xrmx [~rm@2-228-255-178.ip194.fastwebnet.it] has joined +# #libreoffice-dev +#10:15 <@_rene_> ahunt: for firebird sdbc that is +#10:15 -!- xrmx [~rm@2-228-255-178.ip194.fastwebnet.it] has quit [Changing host] +#10:15 -!- xrmx [~rm@unaffiliated/xrmx] has joined #libreoffice-dev +#10:15 <@_rene_> because I just remember I still have +#https://buildd.debian.org/status/fetch.php?pkg=libreoffice&arch=powerpc&ver=1%3 +# +#10:16 < ahunt> _rene_: Not yet -- I still need to get round to actually +# debugging within firebird itself to make it work. +#10:16 < ahunt> _rene_: Yup, basically we're not endian portable yet. +#10:16 <@_rene_> An uncaught exception of type com.sun.star.sdbc.SQLException +#10:16 <@_rene_> - firebird_sdbc error: +#10:16 <@_rene_> *unsupported on-disk structure for file +# /tmp/lu4va82l.tmp/firebird.fdb; found 2 +#10:16 <@_rene_> 944.512, support 11.2 +#10:16 < xrmx> morning +#10:16 <@_rene_> aha, so disable firebird on be? +#10:16 <@_rene_> (for now) +#10:16 < Safa_[A_boy]> Hello. About converting dialogs to .ui files, What about +# wizards? +#10:17 < ahunt> _rene_: yes, unfortunately. +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 +CHECK_APPARMOR_PROFILES=true +ENABLE_LIBNUMBERTEXT=y +SYSTEM_STUFF += libnumbertext + +# Default flags to pass to configure +CONFIGURE_FLAGS= \ + --with-vendor='$(OOO_VENDOR)' \ + --with-build-version='$(DEB_VERSION)' \ + --prefix=/usr --mandir=/usr/share/man \ + --docdir=/usr/share/doc/libreoffice \ + --libdir=/usr/lib \ + --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) \ + --disable-online-update \ + --disable-fetch-external \ + --without-fonts --enable-build-opensymbol \ + --without-myspell-dicts \ + --with-branding=$(CURDIR)/debian/branding + +ifeq "$(ENABLE_HELP)" "y" +CONFIGURE_FLAGS_INDEP+= --with-help + ifeq "$(ENABLE_HTML_HELP)" "y" + CONFIGURE_FLAGS_INDEP+= --with-help=html + endif +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" +ENABLE_DEPENDENCY_TRACKING=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 + +CONFIGURE_FLAGS += --with-alloc=$(ALLOC) + +############# +# 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) + + +# let's do this only on archs where we have chromium, which is supposedly even only the archs +# where alsp pdfium is supported. +OOO_PDFIUM_ARCHS := i386 amd64 armhf arm64 +ifneq (,$(findstring $(DEB_HOST_ARCH),$(OOO_PDFIUM_ARCHS))) +ENABLE_PDFIUM=y +else +ENABLE_PDFIUM=n +endif + +OOO_64BIT_ARCHS = $(filter alpha amd64 arm64 ia64 kfreebsd-amd64 mips64 mips64el ppc64 ppc64el s390x sparc64, $(OOO_ARCHS)) +$(eval $(call gen_no_archs,OOO_64BIT_ARCHS)) +OOO_BE_ARCHS = $(filter hppa m68k mips mips64 powerpc powerpcspe ppc64 s390 s390x sparc sparc64,$(OOO_ARCHS)) +OOO_LE_ARCHS = $(filter-out $(OOO_BE_ARCHS),$(OOO_ARCHS)) +$(eval $(call gen_no_archs,OOO_LE_ARCHS)) + +OOO_CHECK_ARCHS := $(filter-out kfreebsd-i386 kfreebsd-amd64 $(OOO_BE_ARCHS),$(OOO_ARCHS)) +$(eval $(call gen_no_archs,OOO_CHECK_ARCHS)) +#OOO_JUNIT_ARCHS := i386 amd64 armhf arm64 +OOO_JUNIT_ARCHS := amd64 arm64 +$(eval $(call gen_no_archs,OOO_JUNIT_ARCHS)) +#OOO_CHECK_FATAL_ARCHS := i386 amd64 armhf arm64 +OOO_CHECK_FATAL_ARCHS := amd64 arm64 + +ifneq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) + ifeq ($(DEB_HOST_ARCH),$(findstring $(DEB_HOST_ARCH),$(OOO_CHECK_ARCHS))) + ifneq "$(DEB_HOST_ARCH_ENDIAN)" "big" + RUN_MAKE_CHECK=y + endif + endif + ifeq "$(ENABLE_JAVA)" "y" + ifeq ($(DEB_HOST_ARCH),$(findstring $(DEB_HOST_ARCH),$(OOO_JUNIT_ARCHS))) + ENABLE_JUNIT4=y + endif + endif + IGNORE_MAKE_CHECK_FAILURES=- + ifeq ($(DEB_HOST_ARCH),$(findstring $(DEB_HOST_ARCH),$(OOO_CHECK_FATAL_ARCHS))) + IGNORE_MAKE_CHECK_FAILURES:= + endif +endif + +# Java... +ifeq "$(JDK)" "default" +OOO_JAVA_ARCHS = $(filter $(OOO_ARCHS),$(java6_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_JAVA_ARCHS) +$(eval $(call gen_no_archs,OOO_BASE_ARCHS)) +OOO_REPORTBUILDER_ARCHS := $(OOO_BASE_ARCHS) +$(eval $(call gen_no_archs,OOO_REPORTBUILDER_ARCHS)) +OOO_FIREBIRD_ARCHS := $(OOO_BASE_ARCHS) +$(eval $(call gen_no_archs,OOO_FIREBIRD_ARCHS)) + +ifneq (,$(findstring $(DEB_HOST_ARCH),$(OOO_NO_BASE_ARCHS))) + ifneq ($(DEB_HOST_ARCH),$(findstring $(DEB_HOST_ARCH),$(OOO_BASE_ARCHS))) + PACKAGE_BASE=n + ENABLE_SDBC_POSTGRESQL=n + ENABLE_MYSQLNATIVE=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-mysql-connector + DEBHELPER_OPTIONS += -Nlibreoffice-sdbc-hsqldb -Nlibreoffice-sdbc-firebird + DEBHELPER_OPTIONS += -Nlibreoffice-report-builder-bin -Nlibreoffice-report-builder +# CONFIGURE_FLAGS += --disable-database-connectivity + endif +endif + +ifeq (,$(findstring $(DEB_HOST_ARCH),$(OOO_ARCH_DEP_EXTENSIONS_ARCHS))) + ENABLE_MYSQLNATIVE=n + DEBHELPER_OPTIONS += -Nlibreoffice-mysql-connector + DEBHELPER_OPTIONS += -Nlibreoffice-presentation-minimizer +endif +ifeq (,$(findstring $(DEB_HOST_ARCH),$(OOO_EXTENSIONS_ARCHS))) + ENABLE_MEDIAWIKI=n + ENABLE_REPORTBUILDER=n + ENABLE_NLPSOLVER=n + DEBHELPER_OPTIONS += -Nlibreoffice-wiki-publisher -Nlibreoffice-script-provider-python -Nlibreoffice-nlpsolver + CONFIGURE_FLAGS += --disable-extension-integration --disable-extensions +else + CONFIGURE_FLAGS += --enable-extension-integration +endif + +ifeq (,$(filter $(DEB_HOST_ARCH),$(OOO_JAVA_ARCHS))) + ENABLE_JAVA=n + ENABLE_REPORTBUILDER=n + ENABLE_MEDIAWIKI=n + ENABLE_NLPSOLVER=n + DEBHELPER_OPTIONS += -Nlibreoffice-wiki-publisher + DEBHELPER_OPTIONS += -Nlibreoffice-report-builder-bin -Nlibreoffice-report-builder + DEBHELPER_OPTIONS += -Nlibreoffice-nlpsolver +endif + +# disable SRB on ia64 when building with internal jfreereport. +# fails to build. ("The system is out of resources."). FIXME. +ifeq (ia64,$(findstring ia64,$(OOO_OPENJDK_ARCHS))) + ifeq (,$(findstring jfreereport,$(SYSTEM_STUFF))) + OOO_REPORTBUILDER_ARCHS := $(filter-out ia64,$(OOO_REPORTBUILDER_ARCHS)) + ifeq "$(DEB_HOST_ARCH)" "ia64" + ENABLE_REPORTBUILDER=n + endif + endif +endif + +ifeq "$(BUILD_TEST_PACKAGES)" "n" + DEBHELPER_OPTIONS += -Nlibreoffice-subsequentcheckbase +endif + +ifneq (,$(findstring mips, $(OOO_ARCHS))) + BUILD_DEPS += , binutils (>= 2.23) [mips mipsel], libc6 (>= 2.17-6) [mips mipsel] +endif + +############# +# Distro-specific overrides + +# Debian Stretch +ifeq "$(DEB_DISTRIBUTION)" "stretch-backports" + BUGS=mailto:debian-backports@lists.debian.org + SYSTEM_STUFF := $(filter-out libzmf libstaroffice orcus cppunit xmlsec libqxp libepubgen mdds libnumbertext,$(SYSTEM_STUFF)) + # needs newer stuff for tests, we can't make it conditional on RUN_MAKE_CHECK since + # BE archs don't run them anyway and this wouldn't be in effect... + SYSTEM_STUFF := $(filter-out libwps libmwaw libetonyek,$(SYSTEM_STUFF)) + HELP_COMMON_DEPENDS := + USE_DWZ := n + STRETCH_BACKPORT=y +endif + +ifeq "$(BUILD_DBGSYM_PACKAGES)" "y" +UNO_LIBS_DBG=uno-libs3-dbgsym +URE_DBG=ure-dbgsym +CORE_DBG=libreoffice-core-dbgsym +WRITER_DBG=libreoffice-writer-dbgsym +URE_DBG_ROOT=.debhelper/ure/dbgsym-root +UNO_LIBS_DBG_ROOT=.debhelper/uno-libs3/dbgsym-root +CORE_DBG_ROOT=.debhelper/libreoffice-core/dbgsym-root +WRITER_DBG_ROOT=.debhelper/libreoffice-writer/dbgsym-root +else +DH_STRIP_DBG_OPTION_LO += --no-automatic-dbgsym +DH_STRIP_DBG_OPTION_URE += --no-automatic-dbgsym +DH_STRIP_DBG_OPTION_UNO_LIBS3 += --no-automatic-dbgsym +endif + +CONFIGURE_FLAGS += $(foreach i, $(SYSTEM_STUFF),--with-system-$(i)) + +CC_PREFIX:=$(shell gcc -dumpmachine)- + +USE_CLANG=n +ifeq "$(USE_CLANG)" "y" + CLANG_VERSION=default + 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 + endif + BUILD_DEPS += , gcc (>= 4:7) [m68k], g++ (>= 4:7) [m68k] +else + ifeq "$(CLANG_VERSION)" "default" + CLANG=clang + BUILD_DEPS += , clang + CONFIGURE_FLAGS+= CC=clang CXX=clang++ + else + CLANG=clang-$(CLANG_VERSION) + 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,2) + ifeq "$(CLANG_VERSION)" "default" + BUILD_DEPS += , libclang-dev + else + BUILD_DEPS += , libclang-$(CLANG_VERSION)-dev + endif + endif +endif +USE_GOLD=n +ENABLE_CXX17=y +ifeq "$(ENABLE_CXX17)" "n" + CONFIGURE_FLAGS += --disable-c++17 +endif + +ifeq "$(USE_DWZ)" "y" + BUILD_DEPS += , debhelper (>= 10.10.4) + BUILD_DEPS += , dwz +endif + +ifneq "$(PACKAGE_SDK)" "y" + CONFIGURE_FLAGS += --disable-odk + ifneq "$(PACKAGE_SDK_DOCS)" "y" + CONFIGURE_FLAGS += --without-doxygen --without-javadoc + endif +else + ifeq "$(PACKAGE_SDK_DOCS)" "y" + BUILD_DEPS_INDEP += , doxygen (>= 1.8.4) , graphviz + else + CONFIGURE_FLAGS += --without-doxygen --without-javadoc + endif +endif + + BUILD_DEPS += , libpoppler-dev (>= 0.12.0), libpoppler-private-dev, libpoppler-cpp-dev + +ifeq "$(ENABLE_PDFIUM)" "n" + CONFIGURE_FLAGS += --disable-pdfium +endif + +ifneq (,$(filter graphite, $(SYSTEM_STUFF))) + BUILD_DEPS += , libgraphite2-dev (>= 0.9.3) +endif + +ifneq (,$(filter harfbuzz, $(SYSTEM_STUFF))) + BUILD_DEPS += , libharfbuzz-dev (>= 0.9.42) +endif + +ifneq (,$(filter libexttextcat, $(SYSTEM_STUFF))) + BUILD_DEPS += , libexttextcat-dev (>= 3.4.1) + TEXTCAT_DATA_RECOMMENDS := libexttextcat-data +endif + +ifeq "$(ENABLE_LIBNUMBERTEXT)" "y" + ifneq (,$(filter libnumbertext, $(SYSTEM_STUFF))) + BUILD_DEPS += , libnumbertext-dev + NUMBERTEXT_DATA_RECOMMENDS := libnumbertext-data + endif +else + CONFIGURE_FLAGS += --disable-libnumbertext +endif + +ifneq (,$(filter jpeg, $(SYSTEM_STUFF))) + BUILD_DEPS += , libjpeg-dev +endif +ifneq (,$(filter libxml, $(SYSTEM_STUFF))) + BUILD_DEPS += , libxml2-dev (>= 2.8), libxml2-utils + BUILD_DEPS += , libxslt1-dev +else + CONFIGURE_FLAGS += --without-system-libxml +endif +ifneq (,$(filter xmlsec, $(SYSTEM_STUFF))) + BUILD_DEPS += , libxmlsec1-dev (>= 1.2.24) +endif +ifneq (,$(filter expat, $(SYSTEM_STUFF))) + BUILD_DEPS += , libexpat1-dev +endif +ifneq (,$(filter odbc, $(SYSTEM_STUFF))) + BUILD_DEPS += , unixodbc-dev (>= 2.2.11) +endif +ifneq (,$(filter sane, $(SYSTEM_STUFF))) + BUILD_DEPS += , libsane-dev +endif +ifneq (,$(filter libpng, $(SYSTEM_STUFF))) + BUILD_DEPS += , libpng-dev +endif + +ifneq (,$(filter curl, $(SYSTEM_STUFF))) + BUILD_DEPS += , libcurl4-$(CURL_SECTYPE)-dev +endif + +ifeq "$(GCC_VERSION_5_OR_GREATER)" "y" +COINMP_MINVER=(>= 1.7.6+dfsg1-2) + ifeq "$(STRETCH_BACKPORT)" "y" + COINUTILS_MINVER=(>= 2.9.15-3.1) + else + COINUTILS_MINVER=(>= 2.10.14+repack1-1) + # go sure given #873362 + COINMP_MINVER=(>= 1.8.3-2) + endif +else +COINMP_MINVER= +COINUTILS_MINVER= +endif +ifneq ($(ENABLE_COINMP),y) + CONFIGURE_FLAGS += --disable-coinmp +else + ifneq (,$(filter coinmp, $(SYSTEM_STUFF))) + BUILD_DEPS += , coinor-libcoinmp-dev $(COINMP_MINVER), coinor-libcoinutils-dev $(COINUTILS_MINVER) + # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=838620 + ifeq "$(STRETCH_BACKPORT)" "y" + BUILD_DEPS += , libbz2-dev + endif + endif +endif + +ifneq (,$(findstring i386,$(DEB_HOST_ARCH))) + SMALL_SYMBOLS = n +else + ifneq (,$(findstring amd64,$(DEB_HOST_ARCH))) + SMALL_SYMBOLS = n + 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:=debian/python3-uno/$(shell $(PYTHON) -c 'from distutils import sysconfig; print(sysconfig.get_python_lib())') +endif + + BUILD_DEPS += , $(PYTHON) +ifeq "$(ENABLE_PYTHON)" "y" + BUILD_DEPS += , $(PYTHON)-dev (>= 3.3) + ifneq "$(STRETCH_BACKPORT)" "y" + BUILD_DEPS += , $(PYTHON)-distutils + endif + BUILD_DEPS += , dh-python + ifneq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) + BUILD_DEPS += , $(PYTHON)-lxml + else + CONFIGURE_FLAGS += --without-lxml + endif +endif + + BUILD_DEPS += , debhelper (>= 10) +ifeq "$(BUILD_DBGSYM_PACKAGES)" "y" + # from debhelper changelog + BUILD_DEPS += , dpkg-dev (>= 1.18.2~) +else + BUILD_DEPS += , dpkg-dev (>= 1.17.14) +endif + +ifeq "$(RUN_TESTTOOL)" "y" + CONFIGURE_FLAGS += --enable-hids +endif + BUILD_DEPS += , locales$(OOO_NO_CHECK_ARCHS) + BUILD_DEPS += , gdb$(OOO_NO_CHECK_ARCHS) + BUILD_DEPS += , fontconfig$(OOO_NO_CHECK_ARCHS) + BUILD_DEPS += , fonts-liberation2$(OOO_NO_CHECK_ARCHS) + BUILD_DEPS += , fonts-crosextra-carlito$(OOO_NO_CHECK_ARCHS) + # https://lists.freedesktop.org/archives/libreoffice/2017-May/077764.html + BUILD_DEPS += , fonts-dejavu$(OOO_NO_CHECK_ARCHS) + ifeq "$(RUN_MAKE_CHECK)" "y" + ifneq (,$(filter cppunit, $(SYSTEM_STUFF))) + BUILD_DEPS += , libcppunit-dev (>= $(CPPUNIT_MINVER))$(OOO_NO_CHECK_ARCHS) + endif + # 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 += , pstoedit$(OOO_NO_CHECK_ARCHS) + BUILD_DEPS += , imagemagick$(OOO_NO_CHECK_ARCHS) + BUILD_DEPS += , ghostscript$(OOO_NO_CHECK_ARCHS) + BUILD_DEPS += , hunspell-en-us$(OOO_NO_CHECK_ARCHS) + else + CONFIGURE_FLAGS += --without-cppunit + endif + ifeq "$(ENABLE_JUNIT4)" "y" + BUILD_DEPS += , junit4 $(JUNIT_MIN_VER) [$(OOO_JUNIT_ARCHS)] + else + CONFIGURE_FLAGS += --without-junit + endif + ifeq "$(ENABLE_CHART_TESTS)" "y" + CONFIGURE_FLAGS += --enable-chart-tests + endif + ifeq "$(ENABLE_EXPORT_VALIDATION_TESTS)" "y" + BUILD_DEPS += , libofficeotron-java$(OOO_NO_CHECK_ARCHS) , libodfvalidator-java$(OOO_NO_CHECK_ARCHS) + 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 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 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 \ + 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 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 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 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 \ + 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" + BUILD_DEPS += , maven-repo-helper + ifeq "$(JDK)" "default" + JAVA_HOME=/usr/lib/jvm/default-java + ifneq "$(STRETCH_BACKPORT)" "y" + BUILD_DEPS += , java-common (>= 0.61) + DEFAULT_JDK := $(call java_dependency, default-jdk) + BUILD_DEPS += , $(shell echo $(DEFAULT_JDK) | sed -e 's/default-jdk/default-jdk (>= 1:1.6)/' | sed -e "s/\]/ !i386]/") + else + BUILD_DEPS += , java-common (>= 0.49) + BUILD_DEPS += , default-jdk (>= 1:1.6) $(shell echo "$(filter-out !ia64,$(OOO_NO_JAVA_ARCHS))") + endif + ifneq "$(STRETCH_BACKPORT)" "y" + ifeq (i386,$(findstring i386,$(OOO_JAVA_ARCHS))) + BUILD_DEPS += , default-jdk (>= 2:1.9) [i386] + endif + endif + ifneq (,$(findstring ia64,$(OOO_JAVA_ARCHS))) + BUILD_DEPS += , default-jdk (>= 1:1.7-48) [ia64] + endif + ifneq (,$(findstring kfreebsd,$(OOO_JAVA_ARCHS))) + BUILD_DEPS += , default-jdk (>= 2:1.7-52.1) [kfreebsd-any] + endif + ifneq (,$(findstring sparc64,$(OOO_JAVA_ARCHS))) + BUILD_DEPS += , default-jdk (>= 2:1.8-55) [sparc64] + endif + endif + ifeq "$(JDK)" "openjdk" + ifeq "$(JAVA_MAINVER)" "6" + BUILD_DEPS += , openjdk-$(JAVA_MAINVER)-jdk (>= 6b23~pre8-2) [$(filter-out ia64,$(OOO_JAVA_ARCHS)]) + else + BUILD_DEPS += , openjdk-$(JAVA_MAINVER)-jdk [$(filter-out mips mipsel,$(OOO_JAVA_ARCHS))] + # no 7 on mips(el) + ifneq (,$(findstring mips,$(OOO_JAVA_ARCHS))) + BUILD_DEPS += , openjdk-6-jdk (>= 6b23~pre8-2) [mips mipsel] + ifneq (,$(findstring mips,$(DEB_HOST_ARCH))) + JAVA_MAINVER=6 + endif + endif + endif + 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 (>= 1.7.0)$(OOO_NO_JAVA_ARCHS), ant-optional (>= 1.7.0)$(OOO_NO_JAVA_ARCHS) + else + # report-builder is done in build-arch already + ifneq (,$(filter jfreereport, $(SYSTEM_STUFF))) + BUILD_DEPS += , ant (>= 1.6.5)$(OOO_NO_JAVA_ARCHS) + else + BUILD_DEPS_INDEP += , ant (>= 1.6.5)$(OOO_NO_JAVA_ARCHS) + endif + endif + JAVA_RUNTIME_DEPENDS = default-jre + ifneq (,$(filter $(DEB_HOST_ARCH), $(OOO_OPENJDK_ARCHS))) + ifneq "$(DEB_HOST_ARCH)" "ia64" + JAVA_RUNTIME_DEPENDS += | openjdk-9-jre | openjdk-8-jre | openjdk-7-jre | openjdk-6-jre + else + JAVA_RUNTIME_DEPENDS += | openjdk-7-jre + endif + endif + ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386)) + JAVA_RUNTIME_DEPENDS += | sun-java6-jre + endif + JAVA_RUNTIME_DEPENDS += | java6-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 "$(PACKAGE_SDK)" "y" + ifeq "$(PACKAGE_UNOWINREG_DLL)" "y" + ifeq "$(BUILD_UNOWINREG_DLL)" "y" + CONFIGURE_FLAGS_INDEP += --enable-build-unowinreg + BUILD_DEPS_INDEP += , g++-mingw-w64-i686 + CONFIGURE_FLAGS_INDEP += --with-mingw-cross-compiler=i686-w64-mingw32-g++ + endif + endif + endif + 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), libsac-java$(OOO_NO_REPORTBUILDER_ARCHS), libxml-java (>= 1.1.6)$(OOO_NO_REPORTBUILDER_ARCHS), libflute-java (>= 1.1.6)$(OOO_NO_REPORTBUILDER_ARCHS), libpentaho-reporting-flow-engine-java (>= 0.9.4)$(OOO_NO_REPORTBUILDER_ARCHS), liblayout-java (>= 0.2.10)$(OOO_NO_REPORTBUILDER_ARCHS), libloader-java (>= 1.1.6)$(OOO_NO_REPORTBUILDER_ARCHS), libformula-java (>= 1.1.7)$(OOO_NO_REPORTBUILDER_ARCHS), librepository-java (>= 1.1.6)$(OOO_NO_REPORTBUILDER_ARCHS), libfonts-java (>= 1.1.6)$(OOO_NO_REPORTBUILDER_ARCHS), libserializer-java (>= 1.1.6)$(OOO_NO_REPORTBUILDER_ARCHS) + REPORT_BUILDER_JAR_DEPENDS := , libbase-java, libsac-java, libxml-java (>= 1.1.6), libflute-java (>= 1.1.6), libpentaho-reporting-flow-engine-java (>= 0.9.4), liblayout-java (>= 0.2.10), libloader-java (>= 1.1.6), libformula-java (>= 1.1.7), librepository-java (>= 1.1.6), libfonts-java (>= 1.1.6), libserializer-java (>= 1.1.6) + 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 + ifneq (,$(filter apache-commons, $(SYSTEM_STUFF))) + REPORT_BUILDER_BUILD_DEPS += , libcommons-logging-java$(OOO_NO_JAVA_ARCHS) + REPORT_BUILDER_JAR_DEPENDS += , libcommons-logging-java + CONFIGURE_FLAGS += --with-commons-logging-jar=/usr/share/java/commons-logging.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 = libreoffice-officebean + BUILD_DEPS += , javahelper $(JAVAHELPER_MIN_VERSION) +else + CONFIGURE_FLAGS += --without-java + DEBHELPER_OPTIONS += -Nlibreoffice-officebean -Nlibreoffice-java-common -Nlibreoffice-script-provider-bsh -Nlibreoffice-script-provider-js +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 + +ifneq (,$(filter nss, $(SYSTEM_STUFF))) + BUILD_DEPS+= , libnss3-dev (>= 3.12.3) + BUILD_DEPS+= , libnspr4-dev +endif + +ifeq "$(USE_UCPP)" "y" + ifneq (,$(filter ucpp, $(SYSTEM_STUFF))) + IDLC_CPP_DEPENDS := ucpp + endif +else +# hardcode 4.7 as 4.8 fails: +# 14:17 <@caolan> ah, "build fails with cpp 4.8.0, this is fixable by passing +# -P, but then idlc produces empty urd files" + IDLC_CPP_DEPENDS := cpp-4.7 + CONFIGURE_FLAGS += --with-idlc-cpp=cpp-4.7 +endif + BUILD_DEPS += , $(IDLC_CPP_DEPENDS) + +ifneq (,$(filter hunspell, $(SYSTEM_STUFF))) + BUILD_DEPS += , libhunspell-dev $(HUNSPELL_MIN_VER) +endif + CONFIGURE_FLAGS += --with-external-dict-dir=$(DICT_DIR) + +ifneq (,$(filter altlinuxhyph, $(SYSTEM_STUFF))) + BUILD_DEPS += , libhyphen-dev $(LIBHYPHEN_MINVER) +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 + ifeq ($(USE_VLC),y) + BUILD_DEPS += , libboost-system$(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 + ifeq ($(USE_VLC),y) + BUILD_DEPS += , libboost-system-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 +endif + +ifneq (,$(filter mdds, $(SYSTEM_STUFF))) + BUILD_DEPS += , libmdds-dev (>= 1.4.1) +endif + +ifneq (,$(filter orcus, $(SYSTEM_STUFF))) + BUILD_DEPS += , liborcus-dev (>= $(LIBORCUS_MINVER)) +endif + +ifneq (,$(filter clucene, $(SYSTEM_STUFF))) + BUILD_DEPS += , libclucene-dev (>= $(CLUCENE_MINVER)) +endif + +ifeq "$(USE_EXTERNAL_CXXLIBS)" "y" + ifneq (,$(filter librevenge, $(SYSTEM_STUFF))) + BUILD_DEPS += , librevenge-dev + endif + ifneq (,$(filter libwpd, $(SYSTEM_STUFF))) + BUILD_DEPS += , libwpd-dev (>= 0.10) + endif + ifneq (,$(filter mythes, $(SYSTEM_STUFF))) + BUILD_DEPS += , libmythes-dev (>= 2:1.2) + endif + ifneq (,$(filter libwps, $(SYSTEM_STUFF))) + BUILD_DEPS += , libwps-dev (>= 0.4) + BUILD_DEPS += , libwps-dev (>= 0.4.9) + endif + ifneq (,$(filter libwpg, $(SYSTEM_STUFF))) + BUILD_DEPS += , libwpg-dev (>= 0.3) + endif + ifneq (,$(filter libvisio, $(SYSTEM_STUFF))) + BUILD_DEPS += , libvisio-dev (>= 0.1) + endif + ifneq (,$(filter libcdr, $(SYSTEM_STUFF))) + BUILD_DEPS += , libcdr-dev (>= 0.1) + endif + ifneq (,$(filter libmspub, $(SYSTEM_STUFF))) + BUILD_DEPS += , libmspub-dev (>= 0.1) + endif + ifneq (,$(filter libmwaw, $(SYSTEM_STUFF))) + BUILD_DEPS += , libmwaw-dev (>= 0.3.1) + BUILD_DEPS += , libmwaw-dev (>= 0.3.13) + endif + ifneq (,$(filter libodfgen, $(SYSTEM_STUFF))) + BUILD_DEPS += , libodfgen-dev (>= 0.1) + endif + ifneq (,$(filter libepubgen, $(SYSTEM_STUFF))) + BUILD_DEPS += , libepubgen-dev (>= 0.1.0) + endif + ifneq (,$(filter libetonyek, $(SYSTEM_STUFF))) + BUILD_DEPS += , libetonyek-dev + BUILD_DEPS += , libetonyek-dev (>= 0.1.8) + endif + ifneq (,$(filter libfreehand, $(SYSTEM_STUFF))) + BUILD_DEPS += , libfreehand-dev (>= 0.1) + endif + ifneq (,$(filter libabw, $(SYSTEM_STUFF))) + BUILD_DEPS += , libabw-dev (>= 0.1) + endif + ifneq (,$(filter libpagemaker, $(SYSTEM_STUFF))) + BUILD_DEPS += , libpagemaker-dev + endif + ifneq (,$(filter libzmf, $(SYSTEM_STUFF))) + BUILD_DEPS += , libzmf-dev + endif + ifneq (,$(filter libstaroffice, $(SYSTEM_STUFF))) + BUILD_DEPS += , libstaroffice-dev + BUILD_DEPS += , libstaroffice-dev (>= 0.0.3) + endif + ifneq (,$(filter libqxp, $(SYSTEM_STUFF))) + BUILD_DEPS += , libqxp-dev + endif + ifneq (,$(filter libebook, $(SYSTEM_STUFF))) + BUILD_DEPS += , libe-book-dev + BUILD_DEPS += , libe-book-dev (>= 0.1.2) + endif + ifneq (,$(filter libcmis, $(SYSTEM_STUFF))) + BUILD_DEPS += , libcmis-dev (>= $(LIBCMIS_MINVER)) + endif +endif + CONFIGURE_FLAGS += --with-external-thes-dir=$(THES_DIR) + +ifeq "$(INSTALL_APPARMOR_PROFILES)" "y" + BUILD_DEPS += , dh-apparmor + ifeq "$(CHECK_APPARMOR_PROFILES)" "true" + BUILD_DEPS += , apparmor + 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 += , libldap2-dev +endif + +ifneq (,$(filter liblangtag, $(SYSTEM_STUFF))) + BUILD_DEPS += , liblangtag-dev (>= 0.4) +endif + +ifneq (,$(filter icu, $(SYSTEM_STUFF))) + BUILD_DEPS += , libicu-dev $(ICU_MINVER) +endif + + +ifeq "$(BUILD_CAIROCANVAS)" "y" + ifneq (,$(filter cairo, $(SYSTEM_STUFF))) + BUILD_DEPS+= , libcairo2-dev + endif +else + CONFIGURE_FLAGS+= --disable-cairo +endif + +ifeq "$(BUILD_KDE4)" "n" + CONFIGURE_FLAGS += --disable-kde4 +else + CONFIGURE_FLAGS += --enable-kde4 + KDE_ICONSET_DEP=libreoffice-style-breeze + BUILD_DEPS += , kdelibs5-dev $(KDELIBS_MINVER) + BUILD_DEPS += , libqt4-dev $(QT4_MINVER) +endif + +ifeq "$(BUILD_KDE5)" "y" + KDE_ICONSET_DEP=libreoffice-style-breeze + ifeq "$(ENABLE_GTK3_KDE5)" "y" + CONFIGURE_FLAGS += --enable-gtk3-kde5 + # set them here as we don't build the Qt5 plugin. If it is built + # it is set below + BUILD_DEPS += , qtbase5-dev $(QT5_MINVER), qt5-qmake $(QT5_MINVER), qtbase5-dev-tools $(QT5_MINVER) + BUILD_DEPS += , libglib2.0-dev (>= 2.4) + # for correct qmake/moc + BUILD_DEPS += , qtchooser + export QT_SELECT=5 + endif + ifeq "$(ENABLE_KDE5)" "y" + CONFIGURE_FLAGS += --enable-kde5 + endif + BUILD_DEPS += , libqt5x11extras5-dev $(QT5_MINVER) + BUILD_DEPS += , libkf5coreaddons-dev, libkf5i18n-dev, libkf5config-dev, libkf5windowsystem-dev, libkf5kio-dev + BUILD_DEPS += , libxcb1-dev +endif + +ifeq "$(ENABLE_QT5)" "y" + CONFIGURE_FLAGS += --enable-qt5 + BUILD_DEPS += , qtbase5-dev $(QT5_MINVER), qt5-qmake $(QT5_MINVER), qtbase5-dev-tools $(QT5_MINVER) + BUILD_DEPS += , libglib2.0-dev (>= 2.4) + # for correct qmake/moc + BUILD_DEPS += , qtchooser + export QT_SELECT=5 +endif + +ifeq "$(ENABLE_MYSQLNATIVE)" "y" + CONFIGURE_FLAGS += --enable-ext-mariadb-connector + ifeq "$(MYSQL_FLAVOUR)" "default" + ifneq (,$(filter mariadb, $(SYSTEM_STUFF))) + BUILD_DEPS += , default-libmysqlclient-dev + endif + else + ifeq "$(MYSQL_FLAVOUR)" "mysql" + ifneq (,$(filter mysql-cppconn, $(SYSTEM_STUFF))) + ifneq (,$(filter mariadb, $(SYSTEM_STUFF))) + BUILD_DEPS += , libmysqlclient-dev + endif + endif + MARIADBCONFIG=/usr/bin/mysql_config + endif + ifeq "$(MYSQL_FLAVOUR)" "mariadb" + ifneq (,$(filter mariadb, $(SYSTEM_STUFF))) + # deducted from default-libmysqlclient-dev Depends + BUILD_DEPS += , libmariadbclient-dev-compat + endif + MARIADBCONFIG=/usr/bin/mariadb_config + endif + endif + ifneq (,$(filter mysql-cppconn, $(SYSTEM_STUFF))) + BUILD_DEPS += , libmysqlcppconn-dev $(MYSQLCPPCONN_MINVER) + endif +endif + +ifeq "$(ENABLE_FIREBIRD)" "y" + BASE_FIREBIRD_RECOMMENDS = libreoffice-sdbc-firebird [$(OOO_FIREBIRD_ARCHS)] + ifneq (,$(filter libatomic-ops, $(SYSTEM_STUFF))) + BUILD_DEPS += , libatomic-ops-dev (>= 7.3~alpha1+git20110913-1)$(OOO_NO_FIREBIRD_ARCHS) + endif + ifneq (,$(filter libtommath, $(SYSTEM_STUFF))) + BUILD_DEPS += , libtommath-dev$(OOO_NO_FIREBIRD_ARCHS) + endif + ifneq (,$(filter firebird, $(SYSTEM_STUFF))) + BUILD_DEPS += , firebird-dev (>= 3.0.0.32483.ds4-4)$(OOO_NO_FIREBIRD_ARCHS) + # we need libEngine12.so + BUILD_DEPS += , firebird3.0-server-core $(OOO_NO_FIREBIRD_ARCHS) + FIREBIRD_ENGINE_DEPENDS += firebird3.0-server-core + endif +else + CONFIGURE_FLAGS += --disable-firebird-sdbc + DEBHELPER_OPTIONS += -Nlibreoffice-sdbc-firebird +endif + +ifeq "$(BUILD_GTK)" "n" + CONFIGURE_FLAGS+= --disable-gtk + DEBHELPER_OPTIONS+= -Nlibreoffice-gtk2 -Nlibreoffice-gnome +else + BUILD_DEPS += , libgtk2.0-dev (>= 2.18.0) +endif +ifeq "$(BUILD_GTK3)" "y" + BUILD_DEPS += , libgtk-3-dev (>= 3.18.0), libglib2.0-dev (>= 2.38.0) + 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 += , gobject-introspection (>= 1.32.0), libgirepository1.0-dev (>= 1.32) + else + CONFIGURE_FLAGS += --enable-introspection=no + DEBHELPER_OPTIONS+= -Ngir1.2-lokdocview-0.1 + endif +else + CONFIGURE_FLAGS+= --disable-gtk3 + GNOME_GTK_DEPENDS += libreoffice-gtk2 +endif + +ifeq "$(ENABLE_EVO2)" "n" + CONFIGURE_FLAGS += --disable-evolution2 + DEBHELPER_OPTIONS += -Nlibreoffice-evolution +else + CONFIGURE_FLAGS += --enable-evolution2 + BUILD_DEPS += , 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 += , libpq-dev (>= 9.0~) + 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 + CONFIGURE_FLAGS += --disable-python +else + PYUNO_DEPENDS = python3-uno (>= 4.4.0~beta2) + CONFIGURE_FLAGS += --enable-python=system +endif + +ifneq "$(PACKAGE_LIBRELOGO)" "y" + DEBHELPER_OPTIONS+= -Nlibreoffice-librelogo +endif + +ifeq "$(ENABLE_JAVA)" "y" + ifneq (,$(filter hsqldb, $(SYSTEM_STUFF))) + BUILD_DEPS += , libhsqldb1.8.0-java $(HSQLDB_MINVER)$(OOO_NO_JAVA_ARCHS), libarchive-zip-perl$(OOO_NO_JAVA_ARCHS) + BASE_HSQLDB_DEPENDS = libhsqldb1.8.0-java $(HSQLDB_MINVER) + CONFIGURE_FLAGS += --with-hsqldb-jar=$(HSQLDB_JAR) + else + BUILD_DEPS += , libservlet3.1-java + endif + ifeq "$(ENABLE_SCRIPT_PROVIDER_BSH)" "y" + ifneq (,$(filter beanshell, $(SYSTEM_STUFF))) + BUILD_DEPS_INDEP += , libbsh-java + endif + CONFIGURE_FLAGS += --enable-scripting-beanshell + else + CONFIGURE_FLAGS += --disble-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 + +ifneq (,$(filter lpsolve, $(SYSTEM_STUFF))) + ifeq "$(USE_SHARED_LPSOLVE)" "y" + BUILD_DEPS += , 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 + ifeq "$(USE_LIBSUITESPARSE)" "y" + BUILD_DEPS += , libsuitesparse-dev $(SUITESPARSE_MIN_VERSION) + else + BUILD_DEPS += , libufsparse-dev + endif +endif + +ifeq "$(USE_DBUS)" "y" + BUILD_DEPS += , libdbus-glib-1-dev (>= 0.70) + CONFIGURE_FLAGS += --enable-dbus + ifeq "$(ENABLE_BLUETOOTH)" "y" + 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 +endif + +ifeq "$(ENABLE_AVAHI)" "y" + BUILD_DEPS += , libavahi-client-dev + CONFIGURE_FLAGS += --enable-avahi +endif + +ifeq "$(USE_GSTREAMER)" "y" + BUILD_DEPS += , libgstreamer1.0-dev + CONFIGURE_FLAGS += --enable-gstreamer-1-0 + BUILD_DEPS += , 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 + AVMEDIA_BE_DEPENDS += , libreoffice-avmedia-backend-gstreamer +else + CONFIGURE_FLAGS += --disable-gstreamer-1-0 + DEBHELPER_OPTIONS += -Nlibreoffice-avmedia-backend-gstreamer +endif + +ifeq "$(USE_VLC)" "y" + CONFIGURE_FLAGS += --enable-vlc + LIBVLC_DEP = $(shell debian/scripts/get_libvlc_dep.sh) (>= 2.0.8) + BUILD_DEPS += , $(LIBVLC_DEP) + ifeq "$(AVMEDIA_BE_DEPENDS)" "" + AVMEDIA_BE_DEPENDS += , libreoffice-avmedia-backend-vlc + else + AVMEDIA_BE_DEPENDS += | libreoffice-avmedia-backend-vlc + endif +else + DEBHELPER_OPTIONS += -Nlibreoffice-avmedia-backend-vlc +endif + +ifeq "$(ENABLE_WEBDAV)" "y" + ifeq "$(WEBDAV_LIB)" "neon" + ifneq (,$(filter neon, $(SYSTEM_STUFF))) + ifneq "$(NEON_SECTYPE)" "openssl" + BUILD_DEPS += , libneon$(NEONSONR)-$(NEON_SECTYPE)-dev + else + BUILD_DEPS += , libneon$(NEONSONR)-dev + endif + endif + else + ifneq (,$(filter apr, $(SYSTEM_STUFF))) + BUILD_DEPS += , libaprutil1-dev + endif + ifneq (,$(filter serf, $(SYSTEM_STUFF))) + BUILD_DEPS += , libserf-dev + endif + endif + CONFIGURE_FLAGS += --with-webdav=$(WEBDAV_LIB) +else + CONFIGURE_FLAGS += --with-webdav=no +endif + +ifeq "$(ENABLE_HELP)" "n" + CONFIGURE_FLAGS += --without-helppack-integration --without-help +endif + +ifneq (,$(filter redland, $(SYSTEM_STUFF))) + BUILD_DEPS += , librdf0-dev (>= 1.0.16-2) + SHLIBS_OVERRIDE += -Xunordf +endif + +ifneq (,$(filter epoxy, $(SYSTEM_STUFF))) + BUILD_DEPS += , libepoxy-dev (>= 1.2) +else + BUILD_DEPS += , libegl1-mesa-dev +endif +ifneq (,$(filter glm, $(SYSTEM_STUFF))) + ifeq "$(shell dpkg --compare-versions $(SYSTEM_GCC_VERSION) ge 7.3 && echo true)" "true" + BUILD_DEPS += , libglm-dev (>= 0.9.9~a2) + else + BUILD_DEPS += , libglm-dev (>= 0.9.6.3) + endif +endif + +ifneq (,$(filter gpgmepp, $(SYSTEM_STUFF))) + BUILD_DEPS+= , libgpgmepp-dev, libgpgme-dev, libgpg-error-dev +endif +ifeq "$(STRETCH_BACKPORT)" "y" + BUILD_DEPS+= , gnupg + BUILD_DEPS+= , gnupg-agent +else + BUILD_DEPS+= , gpg + BUILD_DEPS+= , gpgconf + BUILD_DEPS+= , gpg-agent +endif + +ifeq "$(ENABLE_GIO)" "y" + ifneq "$(BUILD_GTK3)" "y" + BUILD_DEPS += , libglib2.0-dev (>= 2.26.0) + endif +else + CONFIGURE_FLAGS += --disable-gio +endif + +ifeq "$(ENABLE_DCONF)" "y" + BUILD_DEPS += , libdconf-dev (>= 0.15.2) +else + CONFIGURE_FLAGS += --disable-dconf +endif + +ifeq ($(ENABLE_MERGELIBS),y) + CONFIGURE_FLAGS += --enable-mergelibs +endif + +ifeq ($(ENABLE_LTO),y) + CONFIGURE_FLAGS += --enable-lto +endif + +ifeq ($(USE_GOLD),y) + DEB_LDFLAGS_MAINT_APPEND += -fuse-ld=gold +export DEB_LDFLAGS_MAINT_APPEND +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 +endif + +## Build n projects in parallel? +## DEB_BUILD_OPTIONS=parallel= +## if not specified LibreOffices configure tries to find it out itself +NUM_CPUS=$(shell echo "$(DEB_BUILD_OPTIONS) " | sed -n 's/^\(.* \)\?parallel=\([0-9]\+\).*$$/\2/p') +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) + +ifneq "$(ENABLE_DEPENDENCY_TRACKING)" "y" +CONFIGURE_FLAGS += --disable-dependency-tracking +endif + +# 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 ... 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" -exec rm {} \; + if [ -d "$(STAMP_DIR)" ]; then rm -rf "$(STAMP_DIR)"; fi + rm -f debian/*.bug-script + + rm -f debian/shlibs.local + + rm -f debian/libreoffice-dev-doc.doc-base.* \ + debian/libreoffice-help-*.doc-base + 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 + +ifeq "$(ENABLE_JAVA)" "y" + mh_clean +endif + dh_clean + +clean: + dh_testroot + dh_testdir + + if [ -f config.status ]; then \ + $(MAKE) distclean; \ + rm -f config.status; \ + fi + 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 + + rm -f extras/source/truetype/symbol/opens___.ttf + + # obsolete lock file not cleaned up.... + rm -f dbaccess/qa/extras/testdocuments/fdo84315.odb.lck + + # Files created in debian directory + $(MAKE) -f debian/rules clean-debdir + + $(MAKE) -f debian/rules control + + +# Generate control file, because we have so many different languages +# Based on script by Martin Quinson +control: debian/control +debian/control: $(wildcard debian/control*in) $(SOURCE_TREE)/bin/lo-xlate-lang debian/rules + 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_INDEP%#$(strip $(BUILD_DEPS_INDEP))#g" \ + -e "s#@BUGS@#$(BUGS)#g" \ + < debian/control.in > debian/control + + for LNUM in $(filter-out en-US,$(LANGPACKISOS)) ; do \ + LNAME=`$(SOURCE_TREE)/bin/lo-xlate-lang -l $$LNUM | perl -e 'print ucfirst();'`; \ + LCODE=`$(SOURCE_TREE)/bin/lo-xlate-lang -i $$LNUM | tr A-Z a-z`; \ + [ "$$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-kacst, 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; \ + case "$$LCODE" in \ + rw) \ + LOCALES_DEPENDS="locales (>= 2.3.6) | locales-all (>= 2.3.6)" \ + ;; \ + ss|ts|km|ns|tn) \ + LOCALES_DEPENDS="locales (>= 2.3.5-12) | locales-all" \ + ;; \ + sr) \ + LOCALES_DEPENDS="locales (>= 2.3.6.ds1-5) | locales-all" \ + ;; \ + as|or|nr) \ + LOCALES_DEPENDS="locales (>= 2.3.6.ds1-1) | locales-all (>= 2.3.6.ds1-1)" \ + ;; \ + sw) \ + LOCALES_DEPENDS="locales (>= 2.13-5) | locales-all (>= 2.13-5)" \ + ;; \ + *) \ + LOCALES_DEPENDS="locales | locales-all" \ + ;; \ + esac; \ + 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 < 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();'`; \ + 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 < 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 + perl -pi -e 's|(Depends: libreoffice-writer, libreoffice-l10n-en-us)|\1, fonts-deva|' \ + debian/control +endif + cat debian/control.ure.in >> debian/control +ifeq "$(ENABLE_JAVA)" "y" + ifeq "$(ENABLE_MEDIAWIKI)" "y" + cat debian/control.mediawiki.in >> debian/control + endif + ifeq "$(ENABLE_REPORTBUILDER)" "y" + cat debian/control.reportbuilder.in >> debian/control + endif + ifeq "$(ENABLE_NLPSOLVER)" "y" + cat debian/control.nlpsolver.in >> debian/control + endif +endif + cat debian/control.fonts.in >> debian/control +ifeq "$(PACKAGE_SDK)" "y" + cat debian/control.sdk.in >> debian/control +endif +ifeq "$(PACKAGE_LOKIT)" "y" + cat debian/control.lokit.in >> debian/control +endif +ifeq "$(BUILD_GTK)" "y" + cat debian/control.gtk2.in >> debian/control +endif +ifeq "$(BUILD_GTK3)" "y" + cat debian/control.gtk3.in >> debian/control +endif +ifeq "$(BUILD_KDE)" "y" + cat debian/control.kde$(KDE_MAJOR).in >> debian/control +endif +ifeq "$(ENABLE_QT5)" "y" + cat debian/control.qt5.in >> debian/control +endif + cat debian/control.postgresql.in >> debian/control +ifeq "$(ENABLE_MYSQLNATIVE)" "y" + cat debian/control.mysql.in >> debian/control +endif +ifeq "$(ENABLE_EVO2)" "y" + cat debian/control.evolution.in >> debian/control +endif + cat debian/control.test-packages.in >> debian/control +ifeq "$(PACKAGE_LIBRELOGO)" "y" + cat debian/control.librelogo.in >> debian/control +endif + cat debian/control.firebird.in >> debian/control + + cat debian/control.transitionals.in >> debian/control + + perl -pi -e "s,%OOO_ARCHS%,$(OOO_ARCHS),g" debian/control + perl -pi -e "s,%OOO_64BIT_ARCHS%,$(OOO_64BIT_ARCHS),g" debian/control + perl -pi -e "s,%OOO_BE_ARCHS%,$(OOO_BE_ARCHS),g" debian/control + perl -pi -e "s,%OOO_LE_ARCHS%,$(OOO_LE_ARCHS),g" debian/control + perl -pi -e "s,%OOO_BASE_ARCHS%,$(OOO_BASE_ARCHS),g" debian/control + perl -pi -e "s,%OOO_NO_BASE_ARCHS%,$(OOO_NO_BASE_ARCHS),"g debian/control + perl -pi -e "s,%OOO_JAVA_ARCHS%,$(OOO_JAVA_ARCHS),g" debian/control + perl -pi -e "s,%OOO_ARCH_DEP_EXTENSIONS_ARCHS%,$(OOO_ARCH_DEP_EXTENSIONS_ARCHS),g" debian/control + perl -pi -e "s,%OOO_REPORTBUILDER_ARCHS%,$(OOO_REPORTBUILDER_ARCHS),g" debian/control + perl -pi -e "s,%OOO_NO_REPORTBUILDER_ARCHS%,$(OOO_NO_REPORTBUILDER_ARCHS),g" debian/control + perl -pi -e "s,%OOO_FIREBIRD_ARCHS%,$(OOO_FIREBIRD_ARCHS),g" debian/control + perl -pi -e "s,%OOO_NO_FIREBIRD_ARCHS%,$(OOO_NO_FIREBIRD_ARCHS),g" debian/control + perl -pi -e "s#%BUILD_DEPS%#$(strip $(BUILD_DEPS))#g" debian/control + perl -pi -e "s#%JUNIT_MIN_VER%#$(JUNIT_MIN_VER)#g" debian/control +ifeq "$(BUILD_KDE)" "y" + perl -pi -e 's/%LO-DESKTOP-INTEGRATION%/libreoffice-gnome | libreoffice-kde$(KDE_MAJOR)/' debian/control +else + perl -pi -e 's/%LO-DESKTOP-INTEGRATION%/libreoffice-gnome/' debian/control +endif + +ifeq (sk,$(findstring sk,$(HELPISOS))) + perl -pi -e 's/(Depends:.*)libreoffice-l10n-sk(.*)$$/\1libreoffice-l10n-sk, libreoffice-help-cs\2/' debian/control +endif +ifeq (pt-BR,$(findstring pt-BR,$(LANGPACKISOS))) + perl -pi -e 's/libreoffice2-l10n-pt-br$$/libreoffice2-l10n-pt-br, broffice/' debian/control + perl -pi -e 's/libreoffice2-l10n-pt-br$$/libreoffice2-l10n-pt-br, broffice/' debian/control + perl -pi -e 's/libreoffice2-l10n-pt-br$$/libreoffice2-l10n-pt-br, broffice/' debian/control +endif + +ifeq "$(MYSQL_FLAVOUR)" "mysql" + perl -pi -e "s/(Build-Conflicts: .*)/\1,libmariadbclient-dev,/" debian/control +endif +ifneq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) + perl -pi -e "s/(Build-Conflicts: .*)/\1,fonts-liberation2 (= 2.00.1-4) ,/" debian/control + perl -pi -e "s/(Build-Conflicts: .*)/\1,fonts-liberation2 (= 2.00.1-5) ,/" debian/control + # be safe. + perl -pi -e "s/(Build-Conflicts: .*)/\1,fonts-liberation (= 1:1.07.4-3) ,/" debian/control + perl -pi -e "s/(Build-Conflicts: .*)/\1,fonts-liberation (= 1:1.07.4-4) ,/" debian/control + perl -pi -e "s/(Build-Conflicts: .*)/\1,fonts-liberation (= 1:1.07.4-5) ,/" debian/control + # be sure to use our rebuilt font + perl -pi -e "s/(Build-Conflicts: .*)/\1,fonts-opensymbol ,/" debian/control +endif + +ifeq "$(STRETCH_BACKPORTS)" "y" + perl -pi -e 's/fonts-noto-mono/fonts-noto-hinted, fonts-noto-mono/' debian/control +else + perl -pi -e 's/fonts-noto-mono/fonts-noto-core, fonts-noto-ui-core, fonts-noto-mono/' debian/control +endif + + $(PYTHON) debian/scripts/joinctrl.py < debian/control > debian/control.tmp + mv debian/control.tmp debian/control + + # make -l10n-fi suggest libreoffice-spellcheck-fi to + # match myspell-fi and libreoffice-soikko/-voikko + perl -pi -e 's/myspell-dictionary-fi/myspell-dictionary-fi | libreoffice-spellcheck-fi/' debian/control + perl -pi -e 's/hyphen-fi/hyphen-fi | libreoffice-hyphenation-fi/' debian/control + +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 + endif + perl -pi -e 's/Description: office productivity suite -- presentation/Suggests: bluez\nDescription: office productivity suite -- presentation/' debian/control +endif + +ifneq "$(DICT_DIR)" "/usr/share/hunspell" + perl -pi -e 's/^Breaks:.*myspell.*\n//' debian/control +endif + +ifeq "$(ENABLE_APPARMOR_PROFILES)" "y" + perl -pi -e 's/ttf-mscorefonts-installer/ttf-mscorefonts-installer, apparmor (>= 2.13.1~)/' debian/control + perl -pi -e 's/openoffice-unbundled/openoffice-unbundled, apparmor (<< 2.13.1~)/' debian/control + +endif + +.DELETE_ON_ERROR: debian/control + +# 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/get_libvlc_dep.sh \ + debian/scripts/locale-gen \ + autogen.sh; \ + do \ + chmod 755 $$FILE ;\ + done + + mkdir -p $(STAMP_DIR) + + # Make sure we have /proc mounted - otherwise idlc will fail later. + test -r /proc/version + + # create fake file if file not there; we don't use it anyways. + if [ ! -f $(TARFILE_LOCATION)/185d60944ea767075d27247c3162b3bc-unowinreg.dll ]; then \ + touch $(TARFILE_LOCATION)/185d60944ea767075d27247c3162b3bc-unowinreg.dll; \ + fi + +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 + + 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: + $(CURDIR)/debian/rules build-arch + $(CURDIR)/debian/rules 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 + + # Theoretically this should call ./configure instead of + # it exists but that causes the configure flags NOT to be hnoured + # somehow... + 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 \ + --disable-scripting-javascript --disable-scripting-beanshell \ + --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 and some extensions again with all languages; as it contains language-specific help + # and/or descriptions... + $(MAKE) sysui.clean + $(MAKE) mysqlc.clean + make cmd cmd="cd sysui; export WITH_LANG='$(LANGPACKISOS)'; export WITH_LANG_LIST='$(LANGPACKISOS)'; $(MAKE)" + make cmd cmd="cd mysqlc; 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 + + PATH=$(BUILD_PATH) LD_LIBRARY_PATH=$(BUILD_LD_LIBRARY_PATH) \ + MARIADBCONFIG=$(MARIADBCONFIG) \ + FIREBIRD_CFLAGS=$(FIREBIRD_CFLAGS) FIREBIRD_LIBS=$(FIREBIRD_LIBS) \ + ./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-nocheck +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 + +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 + patch -p0 -R < $(CURDIR)/debian/tests/patches/smoketest-disable-extension-tests.diff + cp workdir/Zip/smoketestdoc.zip workdir/Zip/smoketestdoc.sxw +endif + +ifneq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) + $(CURDIR)/debian/rules check-indep +endif + + touch $@ + + +check: +ifeq "$(RUN_MAKE_CHECK)" "y" +ifneq (,$(findstring $(DEB_HOST_ARCH),$(OOO_NO_BASE_ARCHS))) + patch -p1 < $(CURDIR)/debian/tests/patches/disable-db-tests.diff +endif +ifeq (,$(findstring $(DEB_HOST_ARCH),$(OOO_EXTENSIONS_ARCHS))) + cd $(SOURCE_TREE)/smoketest && \ + patch -p1 < $(CURDIR)/debian/tests/patches/smoketest-disable-extension-tests.diff +endif + + 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) \ + --disable-ext-wiki-publisher \ + --disable-scripting-javascript --disable-scripting-beanshell \ + --without-doxygen --without-javadoc \ + --with-galleries=no --with-theme="$(DEFAULT_IMAGE)" + + # generate the needed en_US.UTF-8 locale + mkdir -p $(CURDIR)/debian/locales + USE_CPUS=$(NUM_CPUS) debian/scripts/locale-gen + + # build the tests first + export gb_SUPPRESS_TESTS=true; \ + $(MAKE) check + + # and now run them + $(IGNORE_MAKE_CHECK_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 LC_ALL=en_US.UTF-8; \ + unset DISPLAY; \ + if [ -x /usr/bin/gdb ]; then ulimit -c unlimited; fi && \ + $(MAKE) -k check || PARALLELISM=1 $(MAKE) check && \ + rm -rf $$t +ifneq (,$(findstring $(DEB_HOST_ARCH),$(OOO_NO_BASE_ARCHS))) + patch -p1 -R < $(CURDIR)/debian/tests/patches/disable-db-tests.diff +endif +ifeq (,$(findstring $(DEB_HOST_ARCH),$(OOO_EXTENSIONS_ARCHS))) + cd $(SOURCE_TREE)/smoketest && \ + patch -p1 -R < $(CURDIR)/debian/tests/patches/smoketest-disable-extension-tests.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_CHECK_FAILURES)cd odk && \ + $(MAKE) CustomTarget_odk/check + ifneq (,$(findstring -indep,$(MAKECMDGOALS))) + # was already checked in check + $(IGNORE_MAKE_CHECK_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 + +install: $(STAMP_DIR)/install-common $(STAMP_DIR)/install-arch $(STAMP_DIR)/install-indep + +install-common: $(STAMP_DIR)/install-common +$(STAMP_DIR)/install-common: + 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 \* + +ifeq "$(ENABLE_QT5)" "y" + # we need to do it here. If -kde isn't built + # there's no -kde.install generated, so dh_missing complains later + 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 "$(BUILD_KDE)" "y" + mv debian/tmp/pkg/libreoffice-kde \ + debian/tmp/pkg/libreoffice-kde$(KDE_MAJOR) +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 + + # 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 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 + + for i in calc impress draw base writer; do \ + echo "../usr/share/appdata/libreoffice-$$i.appdata.xml /usr/share/metainfo/" >> $(PKGDIR)-$$i.install; \ + done + +ifeq "$(BUILD_KDE)" "y" + echo "../usr/share/appdata/org.libreoffice.kde.metainfo.xml /usr/share/metainfo/" >> $(PKGDIR)-kde$(KDE_MAJOR).install +endif + +ifeq "$(PACKAGE_LOKIT)" "y" + echo "../../../include/LibreOfficeKit usr/include" > debian/libreofficekit-dev.install +endif +ifeq "$(ENABLE_INTROSPECTION)" "y" + echo "../usr/share/gir-1.0/LOKDocView-0.1.gir /usr/share/gir-1.0/" >> debian/libreofficekit-dev.install + echo "../usr/lib/girepository-1.0/LOKDocView-0.1.typelib /usr/lib/$(DEB_HOST_MULTIARCH)/girepository-1.0" >> debian/gir1.2-lokdocview-0.1.install +endif + + dh_installdirs -A + if [ -x /usr/bin/dh_missing ]; then \ + dh_install -A --sourcedir=debian/tmp/pkg && \ + dh_missing -A --sourcedir=debian/tmp/pkg --fail-missing; \ + else \ + dh_install -A --sourcedir=debian/tmp/pkg --fail-missing; \ + fi + + # 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" + # move officebean.jar into -officebean (They will be moved out of -core + # in the install-arch target). Do the /usr/share move here already + mkdir -p $(PKGDIR)-core/$(shell echo $(OODIR) | sed -e s/lib/share/)/program/classes; \ + mv $(PKGDIR)-common/$(OODIR)/program/classes/officebean.jar \ + $(PKGDIR)-core/$(shell echo $(OODIR) | sed -e s/lib/share/)/program/classes + # fix the classpath + jh_classpath --classpath="ridl.jar unoil.jar jurt.jar juh.jar" \ + $(PKGDIR)-core/$(shell echo $(OODIR) | sed -e s/lib/share/)/program/classes/officebean.jar + + 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 "$(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/usr/share/idl + mv $(PKGDIR)-dev/usr/share/idl/libreoffice \ + $(PKGDIR)-dev-common/usr/share/idl + 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 + ifeq "$(PACKAGE_UNOWINREG_DLL)" "y" + mkdir -p $(PKGDIR)-dev-common/$(OOSDKDIR)/classes/win + chmod 644 $(PKGDIR)-dev-common/$(shell echo $(OOSDKDIR) | sed -e s/lib/share/)/classes/win/unowinreg.dll + ln -s /$(shell echo $(OOSDKDIR) | sed -e s/lib/share/)/classes/win/unowinreg.dll \ + $(PKGDIR)-dev-common/$(OOSDKDIR)/classes/win/unowinreg.dll + else + rm -rf $(PKGDIR)-dev-common/$(shell echo $(OOSDKDIR) | sed -e s/lib/share/)/classes/win + endif + endif + chmod 644 $(PKGDIR)-dev-common/$(OOSDKDIR)/configure.pl + chmod 755 $(PKGDIR)-dev-common/$(OOSDKDIR)/setsdkenv_unix + + # fix permissions + find $(PKGDIR)-dev-common/usr/share/idl/$(OODIRNAME) -type f -exec chmod 644 {} \; +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 +endif + + # Access2Base IMHO clearly is -base specific :-) +ifeq "$(PACKAGE_BASE)" "y" + mkdir -p $(PKGDIR)-base/$(OODIR)/share/basic + mv $(PKGDIR)-common/$(OODIR)/share/basic/Access2Base \ + $(PKGDIR)-base/$(OODIR)/share/basic + cp $(PKGDIR)-common/$(OODIR)/share/basic/dialog.xlc \ + $(PKGDIR)-base/$(OODIR)/share/basic + cp $(PKGDIR)-common/$(OODIR)/share/basic/script.xlc \ + $(PKGDIR)-base/$(OODIR)/share/basic + # FIXME. Does not scale. This has to be a diversion... + 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 +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 +endif + +ifeq "$(PACKAGE_SDK)" "y" + # move gengal stuff into -dev + mkdir -p $(PKGDIR)-dev/$(OODIR)/program + mv $(PKGDIR)-core/$(OODIR)/program/gengal.bin \ + $(PKGDIR)-dev/$(OODIR)/program + mv $(PKGDIR)-common/$(OODIR)/program/gengal \ + $(PKGDIR)-dev/$(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 + + 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 egrep -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 + + 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" = "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" = "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#true#false#' $(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 + + # move URE Java stuff to /usr/share/java + mkdir -p debian/ure/usr/share/java +ifeq "$(ENABLE_JAVA)" "y" + mv debian/ure/$(OODIR)/program/classes/* \ + debian/ure/usr/share/java + cd debian/ure/$(OODIR)/program/classes && \ + for i in $(CURDIR)/debian/ure/usr/share/java/*.jar; do \ + ln -sf `echo $$i | sed -e 's,$(CURDIR)/debian/ure,,'` `basename $$i`; \ + done + # fix up Class-Path of jurt.jar to be able to find libjpipe.so. + # See http://markmail.org/message/yacqa7oowugxwmn2 + jh_classpath --classpath="ridl.jar unoloader.jar ../../lib /$(OODIR)/program ../bin/" \ + $(CURDIR)/debian/ure/usr/share/java/jurt.jar +endif + # and the public libs to uno-libs3 + mkdir -p debian/uno-libs3/$(OODIR)/program + mkdir -p debian/uno-libs3/usr/lib/$(DEB_HOST_MULTIARCH) + for i in debian/ure/$(OODIR)/program/libuno_*so.3; do \ + mv $$i debian/uno-libs3/$(OODIR)/program; \ + ln -sf /$(OODIR)/program/`basename $$i` debian/uno-libs3/usr/lib/$(DEB_HOST_MULTIARCH)/`basename $$i`; \ + done + # we also need libxmlreaderlo.so, libreglo.so and libunoidllo.so (libuno_cppuhelpergcc3.so.3 + # needs it) and libstorelo.so (libreglo.so needs it) + for i in libxmlreaderlo.so libreglo.so libstorelo.so libunoidllo.so; do \ + mv debian/ure/$(OODIR)/program/$$i \ + debian/uno-libs3/$(OODIR)/program; \ + done + + +ifeq "$(BUILD_KDE)" "y" + # install files for KDEs "create new" ... + mkdir -p $(PKGDIR)-kde$(KDE_MAJOR)/usr/share/templates/.source + for i in $(SOURCE_TREE)/extras/source/shellnew/*; do \ + cp $$i $(PKGDIR)-kde$(KDE_MAJOR)/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)-kde$(KDE_MAJOR)/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)-kde$(KDE_MAJOR)/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)-kde$(KDE_MAJOR)/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)-kde$(KDE_MAJOR)/usr/share/templates/soffice.odg.desktop +endif + + # split out gtk stuff + rm -rf $(PKGDIR)-gtk2 + mkdir -p -m755 $(PKGDIR)-gtk2/$(OODIR)/program +ifeq "$(BUILD_GTK3)" "y" + rm -rf $(PKGDIR)-gtk3 + mkdir -p -m755 $(PKGDIR)-gtk3/$(OODIR)/program + mkdir -p -m755 debian/liblibreofficekitgtk/$(OODIR)/program + mv $(PKGDIR)-gnome/$(OODIR)/program/libvclplug_gtk3lo.so $(PKGDIR)-gtk3/$(OODIR)/program/ + mv $(PKGDIR)-core/$(OODIR)/program/liblibreofficekitgtk.so debian/liblibreofficekitgtk/$(OODIR)/program/ +endif + mv $(PKGDIR)-gnome/$(OODIR)/program/* $(PKGDIR)-gtk2/$(OODIR)/program/ +ifeq "$(BUILD_GTK)" "y" + mkdir -p -m755 $(PKGDIR)-gtk2/$(OODIR)/share + ifeq "$(ENABLE_GIO)" "y" + mv $(PKGDIR)-gtk2/$(OODIR)/program/libucpgio1lo.so \ + $(PKGDIR)-gnome/$(OODIR)/program/ + endif + ifeq "$(ENABLE_PACKAGEKIT)" "y" + mv $(PKGDIR)-gtk2/$(OODIR)/program/liblosessioninstalllo.so \ + $(PKGDIR)-gnome/$(OODIR)/program/ + endif +endif + +ifeq "$(ENABLE_EVO2)" "y" + mkdir -p -m755 $(PKGDIR)-evolution/$(OODIR)/program + mv $(PKGDIR)-gtk2/$(OODIR)/program/libevoab*.so $(PKGDIR)-evolution/$(OODIR)/program + mv $(PKGDIR)-gnome/$(OODIR)/share/registry/evoab.xcd \ + $(PKGDIR)-evolution/$(OODIR)/share/registry +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" + rm -rf $(PKGDIR)-officebean + mkdir -p -m755 $(PKGDIR)-officebean/$(OODIR)/program/classes + mkdir -p -m755 $(PKGDIR)-officebean/$(shell echo $(OODIR) | sed -e s/lib/share/)/program/classes + mv $(PKGDIR)-core/$(shell echo $(OODIR) | sed -e s/lib/share/)/program/classes/officebean.jar \ + $(PKGDIR)-officebean/$(shell echo $(OODIR) | sed -e s/lib/share/)/program/classes + ln -s $(shell echo /$(OODIR) | sed -e s/lib/share/)/program/classes/officebean.jar \ + $(PKGDIR)-officebean/$(OODIR)/program/classes/officebean.jar + mv $(PKGDIR)-core/$(OODIR)/program/libofficebean.so \ + $(PKGDIR)-officebean/$(OODIR)/program +endif + + mkdir -p -m755 $(PKGDIR)-base/usr/share/applications \ + $(PKGDIR)-core/usr/share/applications + + sed -i -e 's/Office;/Office;Graphics;/' $(PKGDIR)-draw/usr/share/applications/libreoffice-draw.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 $(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" > $(PYTHON_SITE)/uno.py + echo "sys.path.append('/$(OODIR)/program')" >> $(PYTHON_SITE)/uno.py + echo "os.putenv('URE_BOOTSTRAP', 'vnd.sun.star.pathname:/$(OODIR)/program/fundamentalrc')" >> $(PYTHON_SITE)/uno.py + cat debian/python3-uno/$(OODIR)/program/uno.py >> $(PYTHON_SITE)/uno.py + rm -f debian/python3-uno/$(OODIR)/program/uno.py + mv debian/python3-uno/$(OODIR)/program/unohelper.py $(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_MINIMIZER)" "y" + rm -f $(PKGDIR)-presentation-minimizer/$(OODIR)/share/extensions/presentation-minimizer/registration/LICENSE +endif + +ifeq "$(ENABLE_PRESENTER_CONSOLE)" "y" + rm -f usr/lib/libreoffice/share/extensions/presenter-screen/registration/LICENSE +endif + +ifeq "$(ENABLE_MYSQLNATIVE)" "y" + rm -f $(PKGDIR)-mysql-connector/$(OODIR)/share/extensions/mysql-connector-ooo/registration/LICENSE +endif + +ifeq "$(PACKAGE_SDK)" "y" + # move ui-previewer into -dev + mkdir -p $(PKGDIR)-dev/$(OODIR)/program + mv $(PKGDIR)-core/$(OODIR)/program/ui-previewer \ + $(PKGDIR)-dev/$(OODIR)/program +else + rm -f $(PKGDIR)-core/$(OODIR)/program/ui-previewer +endif + +ifeq "$(USE_GSTREAMER)" "y" + mkdir -p $(PKGDIR)-avmedia-backend-gstreamer/$(OODIR)/program + mv $(PKGDIR)-core/$(OODIR)/program/libavmediagst.so \ + $(PKGDIR)-avmedia-backend-gstreamer/$(OODIR)/program +endif +ifeq "$(USE_VLC)" "y" + mkdir -p $(PKGDIR)-avmedia-backend-vlc/$(OODIR)/program + mv $(PKGDIR)-core/$(OODIR)/program/libavmediavlc.so \ + $(PKGDIR)-avmedia-backend-vlc/$(OODIR)/program +endif + +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 + 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 "$(ENABLE_JAVA)" "y" + # somehow --has-package-version doesn't overwrite version and without ... + # we get a NullPointerException when calling mh_installjar + for i in ridl unoloader; 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 + + mh_installpoms -pure + for i in juh jurt ridl unoloader; do \ + mh_installjar -pure -l debian/pom.$$i.xml instdir/program/classes/$$i.jar; \ + done + sed -e s/@version@/$(shell echo $(DEB_VERSION_UPSTREAM) | cut -d~ -f1)/ \ + < $(SOURCE_TREE)/bean/pom.officebean.xml > debian/pom.officebean.xml + mh_installpoms -plibreoffice-officebean + mh_installjar -plibreoffice-officebean -l debian/pom.officebean.xml instdir/program/classes/officebean.jar +endif + + # fix permission + chmod 644 $(PKGDIR)-impress/$(OODIR)/program/opengl/vortexVertexShader.glsl + + 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/@OOVER@/$(OOVER)/" \ + > debian/$$i.bug-script; \ + 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 + for PKG in $(ARCH_DEP_PACKAGES); do \ + case $$PKG in \ + uno-libs*|ure*) \ + ;; \ + *) \ + cat debian/changelog \ + | sed -e '/^openoffice/,$$d' \ + > debian/$$PKG.changelog; \ + ;; \ + esac; \ + done + + 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)$(USE_VLC) | 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 + 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 + endif + + rm -rf $(PKGDIR)-smoketest-data + 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 + for i in editpic poll savepic show webcast; do \ + chmod 755 $(PKGDIR)-common/$(OODIR)/share/config/webcast/$$i.pl; \ + done + chmod 644 $(PKGDIR)-common/$(OODIR)/LICENSE.fodt + 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 + rm -rf $(PKGDIR)-common/$(OODIR)/LICENSE + + # 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/openoffice + mv $(PKGDIR)-common/$(OODIR)/share/fonts/truetype/opens___.ttf \ + debian/fonts-opensymbol/usr/share/fonts/truetype/openoffice + 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.html + + # 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 + mkdir -p $(PKGDIR)-common/etc/$(OODIRNAME) + mv $(PKGDIR)-common/$(OODIR)/share/psprint/psprint.conf \ + $(PKGDIR)-common/etc/$(OODIRNAME) + 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 + 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; \ + if [ "$$i" = "breeze_dark" ]; then p=breeze; fi; \ + if [ "$$i" = "sifr_dark" ]; then p=sifr; fi; \ + 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)-common/$(shell echo $(OODIR) | sed -e s/lib/share/)/share/config; \ + mv $(PKGDIR)-common/$(OODIR)/share/config/images_helpimg.zip \ + $(PKGDIR)-common/$(shell echo $(OODIR) | sed -e s/lib/share/)/share/config/; \ + mkdir -p $(PKGDIR)-common/$(OODIR)/share/config; \ + ln -s /$(shell echo $(OODIR) | sed -e s/lib/share/)/share/config/images_helpimg.zip \ + $(PKGDIR)-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)" "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 $(PKGDIR)-common/$(OODIR)/share/config/webcast/*.pl; do \ + sed -i "s,/usr/bin/env perl,/usr/bin/perl,g" $$i; \ + done + + 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 ;\ + 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 + for PKG in $(ARCH_INDEP_PACKAGES); do \ + case $$PKG in \ + *-opensymbol) \ + ;; \ + *) \ + cat debian/changelog \ + | sed -e '/^openoffice/,$$d' \ + > debian/$$PKG.changelog; \ + ;; \ + esac; \ + 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,false,true,' $(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/$(OODIR)/share/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 +# mkdir -p $(PKGDIR)-dev/$(OODIR)/program +# install -m644 $(SOURCE_TREE)/svx/$(shell . $(SOURCE_TREE)/bin/get_config_variables OUTPATH PROEXT; echo $$OUTPATH$$PROEXT)/bin/gengalrc \ +# $(PKGDIR)-common/$(OODIR)/program/gengalrc +#endif + +ifeq "$(ENABLE_JAVA)" "y" + # somehow --has-package-version doesn't overwrite version and without ... + # we get a NullPointerException when calling mh_installjar + sed -e s/@version@/$(shell echo $(DEB_VERSION_UPSTREAM) | cut -d~ -f1)/ \ + < $(SOURCE_TREE)/unoil/pom.unoil.xml > debian/pom.unoil.xml + mh_installpoms -plibreoffice-java-common + mh_installjar -plibreoffice-java-common -l debian/pom.unoil.xml instdir/program/classes/unoil.jar + # dedup. But why is this NOT a symlink from the start whereas the ure + # stuff is? + ln -sf /usr/share/java/unoil.jar $(PKGDIR)-java-common/usr/share/libreoffice/program/classes/unoil.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 + + # 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 + + touch $@ + +binary-arch: $(STAMP_DIR)/binary-arch +$(STAMP_DIR)/binary-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 + + # not for uno-libs3/ure, as it otherwise picks up a (wrong) dependency on -core. + # maybe we should --link-doc=uno-libs3 as everything arch-dep needs it anyway? + # But how does it play with .symbols then? + # Also not for extensions, as they have an own version + # python3-uno has additional examples... + dh_installdocs -a -A -Nure -Nuno-libs3 \ + -Npython3-uno -Nlibreoffice-mysql-connector -Nlibreoffice -Nlibreofficekit-dev \ + --link-doc=libreoffice-core + dh_installdocs -pure -puno-libs3 -ppython3-uno -plibreoffice-mysql-connector -plibreoffice -plibreofficekit-dev + cp workdir/CustomTarget/readlicense_oo/readme/README_en-US \ + $(PKGDIR)-core/usr/share/doc/libreoffice-core/README + 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" + rm -rf debian/$(UNO_LIBS_DBG_ROOT) debian/$(URE_DBG_ROOT) debian/$(CORE_DBG_ROOT) \ + debian/$(WRITER_DBG_ROOT) + ifeq "$(USE_DWZ)" "y" + dh_dwz -a -- $(DWZ_ARGS) + endif + dh_strip -a -Nure -Nuno-libs3 $(DH_STRIP_DBG_OPTION_LO) + dh_strip -pure $(DH_STRIP_DBG_OPTION_URE) + dh_strip -puno-libs3 $(DH_STRIP_DBG_OPTION_UNO_LIBS) + # dh_strip --dbg-package= is not idempotent, force copying of the binaries + # again... + rm -f $(STAMP_DIR)/install-common + mkdir -p debian/$(CORE_DBG_ROOT)/usr/share/gdb/auto-load/$(OODIR) + mv $(CURDIR)/debian/tmp/usr/share/gdb/auto-load/$(OODIR)/program \ + debian/$(CORE_DBG_ROOT)/usr/share/gdb/auto-load/$(OODIR) + # I think a -dbg-common is overkill. Although this means that this all only + # will work if libreoffice-dbg is installed.. + mkdir -p debian/$(CORE_DBG_ROOT)/usr/share/libreoffice/gdb + mv $(CURDIR)/debian/tmp/usr/share/libreoffice/gdb/libreoffice \ + debian/$(CORE_DBG_ROOT)/usr/share/libreoffice/gdb + mkdir -p debian/$(WRITER_DBG_ROOT)/usr/share/gdb/auto-load/$(OODIR)/program + mkdir -p debian/$(WRITER_DBG_ROOT)/usr/share/libreoffice/gdb/libreoffice/ + for i in sw writerfilter; do \ + if [ -f debian/$(CORE_DBG_ROOT)/usr/share/gdb/auto-load/$(OODIR)/program/lib$${i}lo.so-gdb.py ]; then \ + mv debian/$(CORE_DBG_ROOT)/usr/share/gdb/auto-load/$(OODIR)/program/lib$${i}lo.so-gdb.py \ + debian/$(WRITER_DBG_ROOT)/usr/share/gdb/auto-load/$(OODIR)/program/; \ + fi; \ + mv debian/$(CORE_DBG_ROOT)/usr/share/libreoffice/gdb/libreoffice/$$i.py \ + debian/$(WRITER_DBG_ROOT)/usr/share/libreoffice/gdb/libreoffice; \ + done + + # FIXME: or better ure-dbg (ure/lib?). Then again ure is a link which is in -common + # anyways... + mkdir -p debian/$(UNO_LIBS_DBG_ROOT)/usr/share/gdb/auto-load/$(OODIR)/program + mv debian/$(CORE_DBG_ROOT)/usr/share/gdb/auto-load/$(OODIR)/program/libuno_cppu.so.3-gdb.py \ + debian/$(UNO_LIBS_DBG_ROOT)/usr/share/gdb/auto-load/$(OODIR)/program + mv debian/$(CORE_DBG_ROOT)/usr/share/gdb/auto-load/$(OODIR)/program/libuno_sal.so.3-gdb.py \ + debian/$(UNO_LIBS_DBG_ROOT)/usr/share/gdb/auto-load/$(OODIR)/program + mkdir -p debian/$(UNO_LIBS_DBG_ROOT)/usr/share/libreoffice/gdb/libreoffice + mv debian/$(CORE_DBG_ROOT)/usr/share/libreoffice/gdb/libreoffice/cppu.py \ + debian/$(UNO_LIBS_DBG_ROOT)/usr/share/libreoffice/gdb/libreoffice + mv debian/$(CORE_DBG_ROOT)/usr/share/libreoffice/gdb/libreoffice/sal.py \ + debian/$(UNO_LIBS_DBG_ROOT)/usr/share/libreoffice/gdb/libreoffice +else + dh_strip -a +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/$(CORE_DBG_ROOT) + # debian/$(UNO_LIBS_DBG_ROOT) debian/$(WRITER_DBG_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/$(CORE_DBG_ROOT) debian/$(UNO_LIBS_DBG_ROOT) debian/$(WRITER_DBG_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 + dh_makeshlibs -puno-libs3 -V"uno-libs3 (>= $(shell grep UREPACKAGEVERSION $(SOURCE_TREE)/instsetoo_native/util/openoffice.lst | awk '{ print $$2 }' | cut -d. -f1-3)~), ure" -- -c0 -d -V -v`echo $(BINARY_VERSION) | cut -d: -f2` + dh_makeshlibs -n -pure -V"ure (>= $(shell grep UREPACKAGEVERSION $(SOURCE_TREE)/instsetoo_native/util/openoffice.lst | awk '{ print $$2 }' | cut -d. -f1-3)~)" -- -d -V -v`echo $(BINARY_VERSION) | cut -d: -f2` + 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 + # the other way as the above, depend on a newer libcmis to that the + # advertised google 2-factor-auth fixes are present +ifneq (,$(filter libcmis, $(SYSTEM_STUFF))) + cat debian/shlibs.override.libcmis >> 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 + + LD_LIBRARY_PATH="$(FAKEROOT_LIBDIR):debian/uno-libs3/$(OODIR)/program:debian/ure/$(OODIR)/program:$(PKGDIR)-core/$(OODIR)/program:$(PKGDIR)-base-core/$(OODIR)/program:$(PKGDIR)-base/$(OODIR)/program:$(PKGDIR)-writer/$(OODIR)/program" \ + dh_shlibdeps -a \ + -Lure -Luno-libs3 \ + -ldebian/uno-libs3/$(OODIR)/program:debian/ure/$(OODIR)/program:$(PKGDIR)-core/$(OODIR)/program:$(PKGDIR)-base/$(OODIR)/program \ + $(SHLIBS_OVERRIDE) +ifneq (,$(filter redland, $(SYSTEM_STUFF))) + # dpkg-shlibdeps "in practice" always will look for this in + # /usr/lib/openoffice/basisX.Y/program due to the RPATH and the + # dh_shlibdeps would fail. It's excluded, and we now need to do it + # manually. Saves us a versioned build-conflict with ourselves + # which quickly can get outdated + perl -pi -e 's/(shlibs.*$$)/$$1, $(shell cat /var/lib/dpkg/info/$(shell dpkg -S /usr/lib/$(DEB_HOST_MULTIARCH)/`objdump -p $(PKGDIR)-core/$(OODIR)/program/libunordf*.so | grep NEEDED | grep librdf | awk '{ print $$2 }'` | cut -d: -f1)\:$(DEB_HOST_ARCH).shlibs | awk '{ print $$3,$$4,$$5 }')/' $(PKGDIR)-core.substvars +endif + # Clean up .substvars values added by uno-libs3.symbols (adds uno-libs3, ure): + # 1) don't make uno-libs3 depend on ure... + perl -pi -e 's/, ure$$//' debian/uno-libs3.substvars + # 2) and prevent ure to depend on itself.. + perl -pi -e 's/, ure \(.*\)$$//' debian/ure.substvars + 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 \ + if [ "$$p" = "libreoffice-presentation-console" ]; then continue; fi; \ + jh_depends -p$$p -Xure; \ + done + ifeq "$(PACKAGE_BASE)" "y" + perl -pi -e "s/base-files,//" \ + debian/libreoffice-sdbc-hsqldb.substvars + endif + # 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/libreoffice-officebean.substvars +endif +# This switch to dh_shlibdeps reduces the 'libXXX not found' warnings but +# causes ldd crashes sometimes when used with fakeroot: +# -l $(PKGDIR)-core/$(OPENOFFICEDIR)/program + dh_gencontrol -a $(DEBHELPER_OPTIONS) -Nure -Nuno-libs3 \ + -Nlibreoffice-mysql-connector -- \ + -V"ure:Version=$(shell grep UREPACKAGEVERSION $(SOURCE_TREE)/instsetoo_native/util/openoffice.lst | awk '{ print $$2 }')" \ + -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'kde-iconset-dep=$(KDE_ICONSET_DEP)' \ + -V'lpsolve-dep=$(LPSOLVE_DEP)' \ + -V'gstreamer-plugins-suggests=$(GSTREAMER_PLUGINS_SUGGESTS)' \ + -V'libebook-dep=$(LIBEBOOK_DEP)' \ + -V'libvlc-dep=$(LIBVLC_DEP)' \ + -V'idlc-cpp-depends=$(IDLC_CPP_DEPENDS)' \ + -V'pyuno-depends=$(PYUNO_DEPENDS)' \ + -V'avmedia-be-depends=$(AVMEDIA_BE_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$(BINARY_VERSION) +ifneq (,$(findstring $(DEB_HOST_ARCH),$(OOO_ARCH_DEP_EXTENSIONS_ARCHS))) +ifeq "$(PACKAGE_BASE)" "y" + ifeq "$(ENABLE_MYSQLNATIVE)" "y" + dh_gencontrol -plibreoffice-mysql-connector -- \ + -v$(shell grep ",\1,; s/^\s+//; s/\s+$$//')+LibO`echo $(BINARY_VERSION) | cut -d: -f2` + endif +endif +endif + dh_gencontrol -pure -puno-libs3 -- \ + -V"ure:Version=`echo $(BINARY_VERSION) | cut -d: -f2`" \ + -v"`echo $(BINARY_VERSION) | cut -d: -f2`" +ifeq "$(BUILD_DBGSYM_PACKAGES)" "y" + for i in libreoffice-core libreoffice-writer uno-libs3; do \ + perl -pi -e 's/^(Depends:.*)/\1\nRecommends: gdb, python3-six/' \ + debian/.debhelper/$$i/dbgsym-root/DEBIAN/control; \ + done + for i in $(filter-out uno-libs3,$(ARCH_DEP_PACKAGES)); do \ + perl -pi -e 's/^(Depends:.*)/\1, uno-libs3-dbgsym/' \ + debian/.debhelper/$$i/dbgsym-root/DEBIAN/control; \ + done + perl -pi -e 's/Recommends: /Recommends: libreoffice-core-dbgsym, /' \ + debian/$(WRITER_DBG_ROOT)/DEBIAN/control +endif + + dh_md5sums -a + dh_builddeb -a $(DEBHELPER_OPTIONS) + + touch $@ + +binary-indep: $(GSI_EXPORT_STAMP) $(STAMP_DIR)/binary-indep +$(STAMP_DIR)/binary-indep: $(STAMP_DIR)/install-indep debian/control $(STAMP_DIR)/maintscripts $(STAMP_DIR)/langpacks +ifneq ($(DEB_HOST_ARCH),$(findstring $(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 + +ifeq "$(ENABLE_HELP)" "y" +ifeq "$(ENABLE_HTML_HELP)" "y" + HELP_FILES_COMMON=`find $(CURDIR)/debian/libreoffice-help-common/usr/share -type f | sed -e 's,$(CURDIR)/debian/libreoffice-help-common,,g' | xargs`; \ + for iso in $(HELPISOS); do \ + pkgiso=`echo $$iso | tr A-Z a-z`; \ + HELP_FILES_LANG=`find $(CURDIR)/debian/libreoffice-help-$$pkgiso/usr/share | sed -e "s,$(CURDIR)/debian/libreoffice-help-$$pkgiso,,g" | xargs`; \ + TMP=`mktemp -q`; \ + cp debian/libreoffice-help.doc-base.in $$TMP; \ + echo "Files: $$HELP_FILES_COMMON $$HELP_FILES_LANG" >> $$TMP; \ + cat $$TMP | perl -e 'while(<>) { if (/^Files/) {$$f=1;} if ($$f eq "1") { chomp(); } print $$_; }' > debian/libreoffice-help-$$pkgiso.doc-base; \ + rm -f $$TMP; \ + perl -pi -e 's,([a-z])\/usr/,$$1 \/usr/,g' debian/libreoffice-help-$$pkgiso.doc-base; \ + perl -pi -e 's,([0-9])\/usr/,$$1 \/usr/,g' debian/libreoffice-help-$$pkgiso.doc-base; \ + sed -i s/@LCODE@/$$pkgiso/ debian/libreoffice-help-$$pkgiso.doc-base; \ + sed -i s/@HELPISO@/$$iso/ debian/libreoffice-help-$$pkgiso.doc-base; \ + done +endif +endif + +ifeq "$(PACKAGE_SDK)" "y" + for i in idl cpp java; do \ + cat debian/lo-$$i-ref.in \ + | sed -e "s/@lo_sources_ver@/$(lo_sources_ver)/" \ + > debian/libreoffice-dev-doc.doc-base.lo-$$i-ref; \ + done + for i in idl cpp; do \ + UDK_FILES=`find $(CURDIR)/debian/libreoffice-dev-doc/usr/share/doc/libreoffice/sdk/docs/$$i/ref -type f ! -name "*.map" -a ! -name "*.md5" | sed -e 's,$(CURDIR)/debian/libreoffice-dev-doc,,g' | xargs`; \ + TMP=`mktemp -q`; \ + cp debian/libreoffice-dev-doc.doc-base.lo-$$i-ref $$TMP; \ + echo "Files: $$UDK_FILES" >> $$TMP; \ + cat $$TMP | perl -e 'while(<>) { if (/^Files/) {$$f=1;} if ($$f eq "1") { chomp(); } print $$_; }' > debian/libreoffice-dev-doc.doc-base.lo-$$i-ref; \ + rm -f $$TMP; \ + perl -pi -e 's,([a-z])\/usr/,$$1 \/usr/,g' debian/libreoffice-dev-doc.doc-base.lo-$$i-ref; \ + done + ifeq "$(ENABLE_JAVA)" "y" + UDK_JAVA_FILES=`find $(CURDIR)/debian/libreoffice-dev-doc/usr/share/doc/libreoffice/sdk/docs/java/ref -type f ! -name "javadoc_log.txt" | sed -e 's,$(CURDIR)/debian/libreoffice-dev-doc,,g' | xargs`; \ + echo "Files: $$UDK_JAVA_FILES" >> debian/libreoffice-dev-doc.doc-base.lo-java-ref + rm -f $(CURDIR)/debian/libreoffice-dev-doc/usr/share/doc/libreoffice-dev/sdk/docs/java/ref/javadoc_log.txt + endif +endif + # not for fonts-opensymbol and extensions, as they have an own version. + # And librelogo gets an own changelog + # And libreofficekit gets an own README + # libreoffice-dev-doc installs directly into /usr/share/doc/libreoffice-dev... + dh_installdocs -i -A -Nlibreoffice-librelogo -Nfonts-opensymbol \ + -Nlibreoffice-wiki-publisher -Nlibreoffice-nlpsolver \ + -Nlibreoffice-dev-doc -Nlibreoffice-smoketest-data \ + --link-doc=libreoffice-common + dh_installdocs -plibreoffice-librelogo -pfonts-opensymbol -plibreoffice-wiki-publisher -plibreoffice-nlpsolver -plibreoffice-smoketest-data \ + -plibreoffice-dev-doc + cp workdir/CustomTarget/readlicense_oo/readme/README_en-US \ + $(PKGDIR)-common/usr/share/doc/libreoffice-common/README + 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 +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 +ifeq "$(STRETCH_BACKPORT)" "y" + dh_link -i -Nlibreoffice-help-common +else + dh_link -i +endif + 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; \ + done +endif + # and it 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) \ + -Nlibreoffice-wiki-publisher \ + -Nlibreoffice-nlpsolver \ + -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-common-depends=$(HELP_COMMON_DEPENDS)' \ + -V'Binary-Version=$(BINARY_VERSION)' \ + -v$(BINARY_VERSION) + dh_gencontrol -pfonts-opensymbol -- \ + -v$(shell echo `echo $(BINARY_VERSION) | cut -d: -f1` + 1 | bc):$(shell fontforge -lang=ff -c 'Open($$1); Print ($$fontversion); Quit(0);' debian/fonts-opensymbol/usr/share/fonts/truetype/openoffice/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$(shell grep ",\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$(shell grep ",\1,; s/^\s+//')+LibO`echo $(BINARY_VERSION) | cut -d: -f2` +endif +ifeq "$(ENABLE_REPORTBUILDER)" "y" + dh_gencontrol -plibreoffice-report-builder -- \ + -V'base-version=$(BASE_VERSION)' \ + -V'report-builder-jar-depends=$(REPORT_BUILDER_JAR_DEPENDS)' \ + -V'java-runtime-depends=$(JAVA_RUNTIME_DEPENDS)' +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 +else +get-orig-source: + PATH=$(CURDIR)/debian/scripts:$$PATH uscan --watchfile=$(CURDIR)/debian/watch --verbose --force +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/salsa-ci.yml b/debian/salsa-ci.yml new file mode 100644 index 00000000000..2a15b3fc375 --- /dev/null +++ b/debian/salsa-ci.yml @@ -0,0 +1,3 @@ +--- +include: + - https://salsa.debian.org/lts-team/pipeline/raw/master/recipes/buster.yml diff --git a/debian/scripts/get_libebook_dep.sh b/debian/scripts/get_libebook_dep.sh new file mode 100755 index 00000000000..8eb2ef20eee --- /dev/null +++ b/debian/scripts/get_libebook_dep.sh @@ -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/get_libvlc_dep.sh b/debian/scripts/get_libvlc_dep.sh new file mode 100755 index 00000000000..590c6d7eb9b --- /dev/null +++ b/debian/scripts/get_libvlc_dep.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +libs=`grep libvlc.*\.so avmedia/source/vlc/wrapper/SymbolLoader.hxx | grep -v vlccore | cut -d= -f2 | 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` +# if [ "$l1" = "$l2" ]; then + dep=`dpkg -S $p/$l | cut -d: -f1` +# fi +done + +if [ -n "$dep" ]; then + echo $dep +else + echo "Cannot find libvlc 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 index 00000000000..80e7ecbf32f --- /dev/null +++ b/debian/scripts/gid2pkgdirs.sh @@ -0,0 +1,184 @@ +#!/bin/sh + +## create split package dirs out of LibreOffices gid_* files +## copied from former ooo-build/libreoffice-build package-ooo +## (c) 2005 Chris Halls +## (c) 2005-2011 Rene Engelhard + +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 +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 [...] +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 +# FIXME: This is added to gid_Module_Root_Brand but doesn't get installed.... +mkdir -p pkg/libreoffice-common/usr/share/mimelnk/application +mv ./usr/share/mimelnk/application/* \ + pkg/libreoffice-common/usr/share/mimelnk/application +# 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_MINIMIZER pkg/libreoffice-presentation-minimizer +create_package_directory gid_Module_Optional_Extensions_MySQLConnector pkg/libreoffice-mysql-connector +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_Optional_Extensions_PRESENTER_SCREEN pkg/libreoffice-presenter-console +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,...}_ + # 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\)' \ + -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 index 00000000000..929fc5f28f7 --- /dev/null +++ b/debian/scripts/joinctrl.py @@ -0,0 +1,66 @@ +#! /usr/bin/python3 + +import re, sys, fileinput + +def splitlines(): + fields = ('Build-Depends', 'Build-Conflicts', 'Build-Depends-Indep', 'Depends', 'Replaces', + 'Provides', 'Conflicts', 'Recommends', 'Suggests') + 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', '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 index 00000000000..c7334fdb7dc --- /dev/null +++ b/debian/scripts/locale-gen @@ -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 + ' < /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 index 00000000000..0a3c5aed175 --- /dev/null +++ b/debian/scripts/stat_pos.sh @@ -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 +# (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 index 00000000000..3fc248e4514 --- /dev/null +++ b/debian/shell-lib-extensions.sh @@ -0,0 +1,10 @@ +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() { + touch /usr/lib/libreoffice/share/extensions +} diff --git a/debian/shell-lib-lool.sh b/debian/shell-lib-lool.sh new file mode 100644 index 00000000000..b0afb776321 --- /dev/null +++ b/debian/shell-lib-lool.sh @@ -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 index 00000000000..6161f4c4d6e --- /dev/null +++ b/debian/shlibs.override.icu @@ -0,0 +1,5 @@ +libicudata 54 +libicui18n 54 +libicule 54 +libicuuc 54 +libicutu 54 diff --git a/debian/shlibs.override.libc b/debian/shlibs.override.libc new file mode 100644 index 00000000000..0f0411631f8 --- /dev/null +++ b/debian/shlibs.override.libc @@ -0,0 +1 @@ +libc 0.1 libc0.1 (>= 2.10.2-7) diff --git a/debian/shlibs.override.libcmis b/debian/shlibs.override.libcmis new file mode 100644 index 00000000000..fd769fe1964 --- /dev/null +++ b/debian/shlibs.override.libcmis @@ -0,0 +1,2 @@ +libcmis-0.5 5 libcmis-0.5-5v5 (>= 0.5.1+git20160603) +libcmis-c-0.5 5 libcmis-0.5-5v5 (>= 0.5.1+git20160603) diff --git a/debian/shlibs.override.libetonyek b/debian/shlibs.override.libetonyek new file mode 100644 index 00000000000..eb8ef1c4472 --- /dev/null +++ b/debian/shlibs.override.libetonyek @@ -0,0 +1 @@ +libetonyek-0.1-lo 1 diff --git a/debian/shlibs.override.liblangtag b/debian/shlibs.override.liblangtag new file mode 100644 index 00000000000..e4260703999 --- /dev/null +++ b/debian/shlibs.override.liblangtag @@ -0,0 +1 @@ +liblangtag-lo 1 diff --git a/debian/shlibs.override.libmwaw b/debian/shlibs.override.libmwaw new file mode 100644 index 00000000000..b646a88c104 --- /dev/null +++ b/debian/shlibs.override.libmwaw @@ -0,0 +1 @@ +libmwaw-0.3-lo 3 diff --git a/debian/shlibs.override.libodfgen b/debian/shlibs.override.libodfgen new file mode 100644 index 00000000000..73489e3ff66 --- /dev/null +++ b/debian/shlibs.override.libodfgen @@ -0,0 +1 @@ +libodfgen-0.1-lo 1 diff --git a/debian/shlibs.override.librevenge b/debian/shlibs.override.librevenge new file mode 100644 index 00000000000..f6c3fd1adbe --- /dev/null +++ b/debian/shlibs.override.librevenge @@ -0,0 +1 @@ +librevenge-0.0-lo 0 diff --git a/debian/shlibs.override.libstaroffice b/debian/shlibs.override.libstaroffice new file mode 100644 index 00000000000..5ad3eaf3ba1 --- /dev/null +++ b/debian/shlibs.override.libstaroffice @@ -0,0 +1 @@ +libstaroffice-0.0-lo 0 diff --git a/debian/shlibs.override.libvisio b/debian/shlibs.override.libvisio new file mode 100644 index 00000000000..cba8b676636 --- /dev/null +++ b/debian/shlibs.override.libvisio @@ -0,0 +1 @@ +libvisio-0.1 1 diff --git a/debian/shlibs.override.libwpd b/debian/shlibs.override.libwpd new file mode 100644 index 00000000000..8b6680e23f2 --- /dev/null +++ b/debian/shlibs.override.libwpd @@ -0,0 +1 @@ +libwpd-0.10-lo 10 diff --git a/debian/shlibs.override.libwpg b/debian/shlibs.override.libwpg new file mode 100644 index 00000000000..207ef90f1f8 --- /dev/null +++ b/debian/shlibs.override.libwpg @@ -0,0 +1 @@ +libwpg-0.3-lo 3 diff --git a/debian/shlibs.override.libwps b/debian/shlibs.override.libwps new file mode 100644 index 00000000000..e6b1d7c4a6d --- /dev/null +++ b/debian/shlibs.override.libwps @@ -0,0 +1 @@ +libwps-0.4-lo 4 diff --git a/debian/shlibs.override.orcus b/debian/shlibs.override.orcus new file mode 100644 index 00000000000..f1a96c13ed2 --- /dev/null +++ b/debian/shlibs.override.orcus @@ -0,0 +1,2 @@ +liborcus-0.14 0 +liborcus-parser-0.14 0 diff --git a/debian/soffice.sh b/debian/soffice.sh new file mode 100644 index 00000000000..bd14b9a6096 --- /dev/null +++ b/debian/soffice.sh @@ -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 index 00000000000..163aaf8d82b --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/debian/source/include-binaries b/debian/source/include-binaries new file mode 100644 index 00000000000..3ca1476ffa9 --- /dev/null +++ b/debian/source/include-binaries @@ -0,0 +1,7 @@ +debian/templates/debian-presentation.otp +debian/templates/debian-presentation-background.xcf +desktop/test/deployment/update/platform/linux_sparc64.oxt +tarballs/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip +tarballs/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip +tarballs/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip +tarballs/pdfium-3426.tar.bz2 diff --git a/debian/source/lintian-overrides b/debian/source/lintian-overrides new file mode 100644 index 00000000000..49a2083753f --- /dev/null +++ b/debian/source/lintian-overrides @@ -0,0 +1,3 @@ +# This one *has* a (detached) license paragraph.... +libreoffice source: missing-license-paragraph-in-dep5-copyright mpl-2.0 (paragraph at line 37) +libreoffice source: source-is-missing helpcontent2/help3xsl/fuse.js line length is 564 characters (>512) diff --git a/debian/templates/debian-presentation-background.xcf b/debian/templates/debian-presentation-background.xcf new file mode 100644 index 00000000000..5f052322567 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 index 00000000000..17fe503c4d7 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 index 00000000000..0f031f9e653 --- /dev/null +++ b/debian/templates/soffice-template.desktop.in @@ -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/control b/debian/tests/control new file mode 100644 index 00000000000..fcaff4cfdc3 --- /dev/null +++ b/debian/tests/control @@ -0,0 +1,43 @@ +Tests: uno +Depends: @builddeps@, ure +Restrictions: allow-stderr, rw-build-tree + +Tests: smoketest +Depends: @builddeps@, libreoffice-dev, libreoffice, libreoffice-sdbc-hsqldb, libreoffice-sdbc-firebird, libreoffice-smoketest-data +Restrictions: allow-stderr, rw-build-tree, skippable + +Tests: pyuno-import, uno-import +Depends: python3, python3-uno +Restrictions: 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 +Depends: libreoffice-core, libreoffice-common, libreoffice-java-common, libreoffice-smoketest-data, default-jdk +Restrictions: superficial + +Tests: test-extension-shared +Depends: libreoffice-core, libreoffice-common, libreoffice-java-common, libreoffice-smoketest-data, default-jdk +Restrictions: needs-root, superficial + +Tests: uicheck +Depends: @builddeps@, libreoffice, python3-uno, libreoffice-l10n-he, libreoffice-l10n-ja +Restrictions: allow-stderr + +Tests: junit +Depends: @builddeps@, libreoffice, libreoffice-subsequentcheckbase, libreoffice-sdbc-hsqldb, libreoffice-sdbc-firebird +Restrictions: allow-stderr + +Test-Command: export SYSTEM_UCPP=TRUE; export DOXYGEN=`which 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 +Depends: libreoffice-dev, libreoffice-dev-doc +Restrictions: superficial + +Tests: odk-build-examples +Depends: @builddeps@, libreoffice-dev, libreoffice-dev-doc, libreoffice-java-common, python3-uno, libreoffice-officebean +Restrictions: allow-stderr + +# inspired by https://salsa.debian.org/apparmor-team/apparmor-profiles-extra/commit/7fbcc4788d0e94764eeeff2f080796601241f986 +Test-Command: for i in /etc/apparmor.d/usr.lib.libreoffice.program.*; do /sbin/apparmor_parser --add --skip-cache --skip-kernel-load $i; done +Depends: libreoffice-common, apparmor +Restrictions: allow-stderr, superficial diff --git a/debian/tests/junit b/debian/tests/junit new file mode 100755 index 00000000000..824b3badf33 --- /dev/null +++ b/debian/tests/junit @@ -0,0 +1,56 @@ +#!/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 +# Rene Engelhard + +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/java-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/java-subsequentcheck-standalone.diff + +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 + +echo +echo "====== Enabling core dumps ======" +# yes, we want core dumps and stack traces +ulimit -c unlimited + +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 index 00000000000..a2e8033ee4a --- /dev/null +++ b/debian/tests/odk-build-examples @@ -0,0 +1,42 @@ +#!/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 + +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 + +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 + +echo +echo "====== Generating configuration =======" +rm -f config_host.mk +./debian/rules config_host.mk + +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 \ + CustomTarget_odk/build-examples_java verbose=t + +unapply + diff --git a/debian/tests/patches/disable-db-tests.diff b/debian/tests/patches/disable-db-tests.diff new file mode 100644 index 00000000000..1576ccd9c67 --- /dev/null +++ b/debian/tests/patches/disable-db-tests.diff @@ -0,0 +1,114 @@ +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 = "Database Service" + const cMessageDatabaseOpen = "Open Database" +-const cMessageDatabaseInsert = "Insert record into Database" +-const cMessageDatabaseDelete = "Delete record from Database" +-const cMessageDatabaseSeek = "Read other record from Database" + const cMessageDatabaseClose = "Close Database" + + Sub TestDB +@@ -81,48 +78,6 @@ + LogTestResult( "Database "+ cMessageDatabaseService, TRUE ) + End If + +- gCurrentTestCase = cDBInsert +- sCurrentMessage = cMessageDatabaseInsert +- +- oRowSet.ActiveConnection = oDBConnection +- +- oRowSet.CommandType = com.sun.star.sdb.CommandType.COMMAND +- oRowSet.Command = "SELECT * FROM " + sTable +- oRowSet.execute() +- +- oRowSet.moveToInsertRow +- oRowSet.updateString(5, sTestString) +- +- oRowSet.insertRow() +- nRowCount=oRowSet.RowCount +- +- oRowSet.moveToCurrentRow() +- +- bResult = (oRowSet.getString(5) = sTestString) +- LogTestResult( "Database "+ cMessageDatabaseInsert, bResult ) +- +- '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( "Database "+ cMessageDatabaseDelete, bResult ) +- End If +- +- ' read other record +- +- gCurrentTestCase = cDBSeek +- sCurrentMessage = cMessageDatabaseSeek +- oRowSet.first() +- bResult = not (oRowSet.getString(5) = sTestString) +- LogTestResult( "Database "+ cMessageDatabaseSeek, bResult ) +- + gCurrentTestCase = cDBClose + sCurrentMessage = cMessageDatabaseClose + oDBConnection.Dispose() +--- a/dbaccess/Module_dbaccess.mk-old 2012-04-27 23:27:39.194936746 +0200 ++++ b/dbaccess/Module_dbaccess.mk 2012-04-27 23:27:47.102975960 +0200 +@@ -33,49 +33,6 @@ + )) + + ifneq ($(OS),IOS) +-ifeq ($(ENABLE_FIREBIRD_SDBC),TRUE) +-$(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 \ +-)) +- +-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 \ diff --git a/debian/tests/patches/java-subsequentcheck-standalone.diff b/debian/tests/patches/java-subsequentcheck-standalone.diff new file mode 100644 index 00000000000..148bfb3772d --- /dev/null +++ b/debian/tests/patches/java-subsequentcheck-standalone.diff @@ -0,0 +1,123 @@ +From fef2f669c1e861c685d22c18319514cec9f9f8c3 Mon Sep 17 00:00:00 2001 +From: Bjoern Michaelsen +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 + +--- a/jurt/Module_jurt.mk ++++ b/jurt/Module_jurt.mk +@@ -22,7 +22,7 @@ $(eval $(call gb_Module_add_targets,jurt + )) + endif + +-$(eval $(call gb_Module_add_subsequentcheck_targets,jurt,\ ++#$(eval $(call gb_Module_add_subsequentcheck_targets,jurt,\ + CustomTarget_test_urp \ + InternalUnoApi_test_urp \ + JunitTest_bridgefactory \ +--- a/postprocess/Module_postprocess.mk ++++ b/postprocess/Module_postprocess.mk +@@ -12,13 +12,13 @@ $(eval $(call gb_Module_Module,postproce + # 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,\ + CustomTarget_images \ + CustomTarget_registry \ + Package_images \ + Rdb_services \ + )) +-$(eval $(call gb_Module_add_l10n_targets,postprocess,\ ++#$(eval $(call gb_Module_add_l10n_targets,postprocess,\ + Package_registry \ + )) + +--- a/solenv/gbuild/JavaClassSet.mk ++++ b/solenv/gbuild/JavaClassSet.mk +@@ -39,7 +39,7 @@ $(call gb_Helper_abbreviate_dirs,\ + $(filter-out $(JARDEPS),$(4))) && \ + $(if $(3),$(gb_JavaClassSet_JAVACCOMMAND) \ + $(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)):$(subst $(gb_SPACE),:,$(wildcard /usr/lib/ure/share/java/*.jar)):$(subst $(gb_SPACE),:,$(wildcard /usr/lib/libreoffice/program/classes/*.jar))" \ + -d $(call gb_JavaClassSet_get_classdir,$(2)) \ + @$$RESPONSEFILE &&) \ + rm -f $$RESPONSEFILE &&) \ +--- a/solenv/gbuild/JunitTest.mk ++++ b/solenv/gbuild/JunitTest.mk +@@ -55,7 +55,7 @@ $(call gb_JunitTest_get_target,%) : + $(CLEAN_CMD) + + 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)$(OUTDIR)/lib:$(subst $(gb_SPACE),:,$(wildcard /usr/lib/ure/share/java/*.jar)):$(subst $(gb_SPACE),:,$(wildcard /usr/lib/libreoffice/program/classes/*.jar)) + $(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: +--- a/solenv/gbuild/platform/unxgcc.mk ++++ b/solenv/gbuild/platform/unxgcc.mk +@@ -289,6 +289,7 @@ $(call gb_JunitTest_get_target,$(1)) : D + -Dorg.openoffice.test.arg.workdir=$(call gb_JunitTest_get_userdir,$(1)) \ + -Dorg.openoffice.test.arg.postprocesscommand=$(SRCDIR)/solenv/bin/gdb-core-bt.sh \ + -Dorg.openoffice.test.arg.soffice="$(gb_JunitTest_SOFFICEARG)" \ ++ -Djava.library.path=/usr/lib/ure/lib \ + + endef + diff --git a/debian/tests/patches/odk-build-examples-standalone.diff b/debian/tests/patches/odk-build-examples-standalone.diff new file mode 100644 index 00000000000..f7c11ec660c --- /dev/null +++ b/debian/tests/patches/odk-build-examples-standalone.diff @@ -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 +@@ -29,7 +29,7 @@ endif + && 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' | LC_ALL=C make \ + $(if $(filter MACOSX,$(OS)), SHELL=$(ODK_BUILD_SHELL), )))) \ + >$(call gb_CustomTarget_get_workdir,$(1))/log 2>&1 \ +@@ -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 index 00000000000..0b5ee3b3a19 --- /dev/null +++ b/debian/tests/patches/smoketest-disable-extension-tests.diff @@ -0,0 +1,98 @@ +--- 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 @@ + + REM ***** BASIC ***** + +-const cMessageExtensionService = "Extension Service" +-const cMessageExtensionInstall = "Install Extension" +-const cMessageExtensionUninstall = "Uninstall Extension" +- + 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 + "$_TestExtension" +- +- On Local Error GoTo EXTERROR + + gCurrentTestCase = cLogfileFailed + LocalTestLog% = OpenLogDat (GetLogFileName(gCurrentDocTest)) +@@ -35,74 +35,5 @@ + gCurrentTestCase = cLogfileFailed + LocalTestLog% = OpenLogDat (GetLogFileName(gCurrentDocTest)) + +- sCurrentMessage = "SmokeTestCommandEnvironment (implemented in Java)" +- gCurrentTestCase = cEXTService +- +- 'Create an implementation of com.sun.star.ucb.XCommandEnvironment which is needed for +- 'adding the extension. The implementation is in +- 'smoketest/org/libreoffice/smoketest/SmoketestCommandEnvironment.java and the code is in smoketest.jar +- cmdEnv = createUnoService(cUnoSmoketestCommandEnvironment) +- +- 'Create the component context and then get the singleton ExtensionManager +- 'A singleton cannot be created with createUnoService +- sCurrentMessage = cMessageExtensionService +- ctx = getDefaultContext +- ext_mgr = ctx.getValueByName("/singletons/" + cExtensionManager) +- +- LogTestResult( "Extension "+ cMessageExtensionService, not IsNull (ext_mgr) ) +- if (IsNull(ext_mgr)) then +- Close #LocalTestLog% +- LocalTestLog = 0 +- Exit Sub +- End If +- +- sCurrentMessage = cMessageExtensionInstall +- gCurrentTestCase = cEXTInstall +- +- 'Add the extension. We must provide a file URL here. +- 'By passing "user" we determine that the actions we perform on +- 'XExtensionManager only affect the user installation. To modify the share installation one would pass "share". +- +- Dim props() as Object +- ext_mgr.addExtension(sExtensionURL, props, "user", obj_null, cmdEnv) +- +- '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( "Extension "+ cMessageExtensionInstall, bResult ) +- if (not bResult) then +- Close #LocalTestLog% +- LocalTestLog = 0 +- Exit Sub +- End If +- +- sCurrentMessage = cMessageExtensionUninstall +- gCurrentTestCase = cEXTUninstall +- +- 'Remove the package +- ext_mgr.removeExtension("org.libreoffice.smoketest.TestExtension", cExtensionFileName, "user",obj_null, cmdEnv) +- +- 'Try to create the service which is contained in the now removed extension. +- oTestExtension = createUnoService(cUnoSmoketestTestExtension) +- +- 'The service must not be available anymore. Therefore isNull must return true. +- LogTestResult( "Extension "+ cMessageExtensionUninstall, IsNull (oTestExtension) ) +- +- Print #LocalTestLog, "---" +- Close #LocalTestLog% +- LocalTestLog = 0 +- Exit Sub ' Without error +- +- EXTERROR: +- If ( gCurrentTestCase = cLogfileFailed ) then +- LogTestResult( " ", False ) +- Exit Sub +- else +- LogTestResult( "Extension "+ sCurrentMessage, False ) +- Close #LocalTestLog% +- LocalTestLog = 0 +- End If +- Exit Sub ' With error +- + End Sub + diff --git a/debian/tests/patches/smoketest-standalone.diff b/debian/tests/patches/smoketest-standalone.diff new file mode 100644 index 00000000000..8d82fd00dad --- /dev/null +++ b/debian/tests/patches/smoketest-standalone.diff @@ -0,0 +1,32 @@ +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/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/testtools-standalone.diff b/debian/tests/patches/testtools-standalone.diff new file mode 100644 index 00000000000..d09f88d67d7 --- /dev/null +++ b/debian/tests/patches/testtools-standalone.diff @@ -0,0 +1,227 @@ +diff --git a/testtools/CustomTarget_bridgetest.mk b/testtools/CustomTarget_bridgetest.mk +index d090146ec411..1cb4d30dcc2a 100644 +--- a/testtools/CustomTarget_bridgetest.mk ++++ b/testtools/CustomTarget_bridgetest.mk +@@ -28,7 +28,7 @@ $(testtools_BRIDGEDIR)/bridgetest_server$(testtools_BATCHSUFFIX) :| $(testtools_ + $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),ECH,1) + $(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" \ +@@ -59,7 +59,7 @@ $(testtools_BRIDGEDIR)/bridgetest_inprocess_java$(testtools_BATCHSUFFIX) :| $(te + $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),ECH,1) + $(call gb_Helper_abbreviate_dirs,\ + echo "JAVA_HOME=$(JAVA_HOME)" \ +- "$(call gb_Executable_get_target_for_build,uno)" \ ++ "/usr/lib/libreoffice/program/uno" \ + "-s com.sun.star.test.bridge.BridgeTest" \ + "-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))" \ +@@ -72,7 +72,7 @@ $(testtools_BRIDGEDIR)/bridgetest_client$(testtools_BATCHSUFFIX) :| $(testtools_ + $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),ECH,1) + $(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 4850e5ca66b2..610a0b170e90 100644 +--- a/testtools/CustomTarget_uno_test.mk ++++ b/testtools/CustomTarget_uno_test.mk +@@ -12,18 +12,12 @@ $(eval $(call gb_CustomTarget_CustomTarget,testtools/uno_test)) + # this target is phony to run it every time + .PHONY : $(call gb_CustomTarget_get_target,testtools/uno_test) + +-$(call gb_CustomTarget_get_target,testtools/uno_test) : \ +- $(call gb_Executable_get_runtime_dependencies,uno) \ +- $(call gb_InternalUnoApi_get_target,bridgetest) \ +- $(call gb_Package_get_target,instsetoo_native_setup_ure) \ +- $(call gb_Rdb_get_target,uno_services) \ +- $(call gb_Rdb_get_target,ure/services) \ +- $(call gb_UnoApi_get_target,udkapi) ++$(call gb_CustomTarget_get_target,testtools/uno_test) : + 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)) \ +#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 index 00000000000..9c04f57408b --- /dev/null +++ b/debian/tests/patches/uicheck-standalone.diff @@ -0,0 +1,70 @@ +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 := LIBO_LANG=en_US.UTF-8 $(gb_UITest_EXECUTABLE) $(SRCDIR)/uitest/test_main.py +@@ -65,8 +65,8 @@ else + $(DEFS) \ + 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 $(filter-out MACOSX WNT,$(OS_FOR_BUILD)),$(if $(ENABLE_HEADLESS),, \ +diff --git a/Makefile.in b/Makefile.in +index 037cb5dce95b..f1b7c28e3c59 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -13,7 +13,6 @@ gb_Top_MODULE_CHECK_TARGETS := slowcheck unitcheck subsequentcheck perfcheck uic + + MAKECMDGOALS?=all + build_goal:=$(if $(filter build check,$(MAKECMDGOALS)),all)\ +- $(if $(filter build-nocheck uicheck,$(MAKECMDGOALS)),build)\ + $(if $(filter check,$(MAKECMDGOALS)),subsequentcheck $(if $(filter Linux, $(shell uname)), uicheck))\ + $(filter all build-l10n-only build-non-l10n-only debugrun help showmodules translations $(gb_Top_MODULE_CHECK_TARGETS) check packageinfo gbuildtojson,$(MAKECMDGOALS)) + +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 +@@ -201,7 +201,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) +@@ -372,11 +372,6 @@ 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) + + endef +@@ -479,7 +474,7 @@ endif + subsequentcheck : $$(firstword $$(gb_Module_SUBSEQUENTCHECKTARGETSTACK)) + stagingcheck : $$(firstword $$(gb_Module_STAGINGCHECKTARGETSTACK)) + 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 index 00000000000..9820a90e62e --- /dev/null +++ b/debian/tests/pyuno-import @@ -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/smoketest b/debian/tests/smoketest new file mode 100755 index 00000000000..4f74416fd6d --- /dev/null +++ b/debian/tests/smoketest @@ -0,0 +1,92 @@ +#!/bin/bash +# autopkgtest check: Run smoketest against an installed version of LibreOffice +# (c) 2018 Software in the Public Interest, Inc. +# Authors: Rene Engelhard + +set -e +set -E + +if [ "`dpkg-architecture -qDEB_HOST_ARCH_ENDIAN`" = "big" ]; then + echo "Tests are not built on big endian architectures - skipping." + exit 77 +fi + +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/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/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 + +# FIXME: GROSS HACK. +echo +echo "====== Building needed parts of LibreOffice ======" +./debian/rules config_host.mk ENABLE_PDFIUM=n ENABLE_MERGELIBS=n BUILD_GTK=n BUILD_GTK3=n BUILD_KDE=n +cat << EOF >> $TMP +export gb_SUPPRESS_TESTS=true +make test.all verbose=t +make bridges.all verbose=t +make javaunohelper.all verbose=t +make unoil.all verbose=t +make unotest.all verbose=t +make ure.all verbose=t +make i18npool.all verbose=t +EOF +chmod 755 $TMP +#TIMEOUT OPTIONS +# --timeout-which=seconds +# Use a different timeout for operations on or with the testbed. +# There are five timeouts affected by five values of which: short: +# supposedly short operations like setting up the testbed's apt +# and checking the state (default: 100s); install: installation of +# packages including dependencies (default: 3,000s); test: test +# runs (default: 10,000s); copy: copy files/directories between +# host and testbed (default: 300s); and build: builds (default: +# 100,000s). The value must be specified as an integer number of +# seconds. +# 10000s = 160 min. so we have enough time to actually run the test :) +timeout 150m $TMP || \ + if test "$?" = "124"; then rm -f $TMP; exit 77; \ + else exit $?; fi + +rm -f $TMP + +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 -rk \ + OOO_TEST_SOFFICE=${OOO_TEST_SOFFICE} \ + CppunitTest_smoketest 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 index 00000000000..1654262fe59 --- /dev/null +++ b/debian/tests/test-extension @@ -0,0 +1,33 @@ +#!/bin/bash +# autopkgtest check: Install a test extension (as smoketest would do) +# (c) 2017 Software in the Public Interest, Inc. +# Authors: Rene Engelhard + +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 -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 index 00000000000..f9d79416329 --- /dev/null +++ b/debian/tests/test-extension-shared @@ -0,0 +1,34 @@ +#!/bin/bash +# autopkgtest check: Install a test extension shared +# (c) 2017 Software in the Public Interest, Inc. +# Authors: Rene Engelhard + +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/uicheck b/debian/tests/uicheck new file mode 100755 index 00000000000..65ed52588e2 --- /dev/null +++ b/debian/tests/uicheck @@ -0,0 +1,61 @@ +#!/bin/bash +# autopkgtest check: Run uicheck against an installed version of LibreOffice +# (c) 2017 Software in the Public Interest, Inc. +# Authors: Rene Engelhard + +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 + +# 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 + +echo +echo "====== Enabling core dumps ======" +# yes, we want core dumps and stack traces +ulimit -c unlimited + +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} \ + uicheck verbose=t + +unapply + diff --git a/debian/tests/uno b/debian/tests/uno new file mode 100755 index 00000000000..5f097b83a79 --- /dev/null +++ b/debian/tests/uno @@ -0,0 +1,55 @@ +#!/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 + +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 + +# 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 + +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.all verbose=t + +cd $SRCDIR + +unapply + diff --git a/debian/tests/uno-import b/debian/tests/uno-import new file mode 100755 index 00000000000..e36ab16f99c --- /dev/null +++ b/debian/tests/uno-import @@ -0,0 +1,4 @@ +#!/usr/bin/python3 + +import uno +print(uno) diff --git a/debian/uno-libs3.lintian-overrides b/debian/uno-libs3.lintian-overrides new file mode 100644 index 00000000000..821c281831a --- /dev/null +++ b/debian/uno-libs3.lintian-overrides @@ -0,0 +1,2 @@ +uno-libs3: shlibs-declares-dependency-on-other-package uno-libs3 (*), ure +uno-libs3: symbols-declares-dependency-on-other-package ure diff --git a/debian/uno-libs3.symbols b/debian/uno-libs3.symbols new file mode 100644 index 00000000000..43c2110550b --- /dev/null +++ b/debian/uno-libs3.symbols @@ -0,0 +1,57 @@ +libuno_cppu.so.3 uno-libs3 #MINVER#, ure + (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)LIBO_UDK_4.4 4.4.0~alpha +libuno_cppuhelpergcc3.so.3 uno-libs3 #MINVER#, ure + (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)LIBO_UDK_3.9 4.0.0~alpha + (symver)LIBO_UDK_5.3 5.3.0~alpha +libuno_sal.so.3 uno-libs3 #MINVER#, ure + (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)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)PRIVATE_1.3 5.4.0~alpha + (symver)PRIVATE_1.4 6.0.0~alpha + (symver)PRIVATE_1.5 6.1.0~alpha +libuno_salhelpergcc3.so.3 uno-libs3 #MINVER#, ure + (symver)UDK_3_0_0 1.4.0 + (symver)UDK_3.1 1.4.0 + (symver)LIBO_UDK_3.6 3.6.0~beta +libuno_purpenvhelpergcc3.so.3 uno-libs3 #MINVER#, ure + (symver)UDK_3_0_0 1.4.0 diff --git a/debian/upstream/signing-key.asc b/debian/upstream/signing-key.asc new file mode 100644 index 00000000000..e9169c3b6dd --- /dev/null +++ b/debian/upstream/signing-key.asc @@ -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.bug-script.in b/debian/ure.bug-script.in new file mode 100644 index 00000000000..7b62e1a210d --- /dev/null +++ b/debian/ure.bug-script.in @@ -0,0 +1,5 @@ +#!/bin/sh + +echo "" >&3 +echo "Java:" >&3 +/usr/lib/libreoffice/program/javaldx >&3 diff --git a/debian/ure.lintian-overrides b/debian/ure.lintian-overrides new file mode 100644 index 00000000000..d509918e1ee --- /dev/null +++ b/debian/ure.lintian-overrides @@ -0,0 +1,3 @@ +ure: classpath-contains-relative-path usr/share/java/jurt.jar: ridl.jar unoloader.jar ../../lib/ /usr/lib/ure/lib/ ../bin/ +ure: classpath-contains-relative-path usr/share/java/juh.jar: ridl.jar jurt.jar ../../lib/ ../bin/ +ure: classpath-contains-relative-path usr/share/java/java_uno.jar: jurt.jar ridl.jar ../../lib/ ../bin/ diff --git a/debian/ure.poms b/debian/ure.poms new file mode 100644 index 00000000000..af53d32e6a9 --- /dev/null +++ b/debian/ure.poms @@ -0,0 +1,31 @@ +# List of POM files for the package +# Format of this file is: +# [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 tag from the POM +# --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=: a list of XML elements to keep in the POM +# during a clean operation with mh_cleanpom or mh_installpom +# --artifact=: 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 to use when installing the library in /usr/share/java +# --usj-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=: the destination for the real jar. +# It will be installed with mh_install. [mh_install] +# --classifier=: Optional, the classifier for the jar. Empty by default. +# --site-xml=: 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.unoloader.xml --no-parent --has-package-version diff --git a/debian/vars.alpha b/debian/vars.alpha new file mode 100644 index 00000000000..610cd8176da --- /dev/null +++ b/debian/vars.alpha @@ -0,0 +1 @@ +PLATFORMID=linux_alpha diff --git a/debian/vars.amd64 b/debian/vars.amd64 new file mode 100644 index 00000000000..eca69cd17c2 --- /dev/null +++ b/debian/vars.amd64 @@ -0,0 +1 @@ +PLATFORMID=linux_x86_64 diff --git a/debian/vars.arm b/debian/vars.arm new file mode 100644 index 00000000000..ad87d022a31 --- /dev/null +++ b/debian/vars.arm @@ -0,0 +1 @@ +PLATFORMID=linux_arm_oabi diff --git a/debian/vars.arm64 b/debian/vars.arm64 new file mode 100644 index 00000000000..a97a775f035 --- /dev/null +++ b/debian/vars.arm64 @@ -0,0 +1 @@ +PLATFORMID=linux_aarch64 diff --git a/debian/vars.armel b/debian/vars.armel new file mode 100644 index 00000000000..9d54104c0d4 --- /dev/null +++ b/debian/vars.armel @@ -0,0 +1 @@ +PLATFORMID=linux_arm_eabi diff --git a/debian/vars.armhf b/debian/vars.armhf new file mode 100644 index 00000000000..9d54104c0d4 --- /dev/null +++ b/debian/vars.armhf @@ -0,0 +1 @@ +PLATFORMID=linux_arm_eabi diff --git a/debian/vars.hppa b/debian/vars.hppa new file mode 100644 index 00000000000..2efe6944998 --- /dev/null +++ b/debian/vars.hppa @@ -0,0 +1 @@ +PLATFORMID=linux_hppa diff --git a/debian/vars.i386 b/debian/vars.i386 new file mode 100644 index 00000000000..5462661ebb2 --- /dev/null +++ b/debian/vars.i386 @@ -0,0 +1 @@ +PLATFORMID=linux_x86 diff --git a/debian/vars.ia64 b/debian/vars.ia64 new file mode 100644 index 00000000000..c6debb36040 --- /dev/null +++ b/debian/vars.ia64 @@ -0,0 +1 @@ +PLATFORMID=linux_ia64 diff --git a/debian/vars.kfreebsd-amd64 b/debian/vars.kfreebsd-amd64 new file mode 100644 index 00000000000..c13d6b56dde --- /dev/null +++ b/debian/vars.kfreebsd-amd64 @@ -0,0 +1 @@ +PLATFORMID=kfreebsd_x86_64 diff --git a/debian/vars.kfreebsd-i386 b/debian/vars.kfreebsd-i386 new file mode 100644 index 00000000000..f8c2bbb4328 --- /dev/null +++ b/debian/vars.kfreebsd-i386 @@ -0,0 +1 @@ +PLATFORMID=kfreebsd_x86 diff --git a/debian/vars.m68k b/debian/vars.m68k new file mode 100644 index 00000000000..a40c8a31eed --- /dev/null +++ b/debian/vars.m68k @@ -0,0 +1 @@ +PLATFORMID=linux_m68k diff --git a/debian/vars.mips b/debian/vars.mips new file mode 100644 index 00000000000..e484a85243b --- /dev/null +++ b/debian/vars.mips @@ -0,0 +1 @@ +PLATFORMID=linux_mips_eb diff --git a/debian/vars.mips64 b/debian/vars.mips64 new file mode 100644 index 00000000000..8c8859bb591 --- /dev/null +++ b/debian/vars.mips64 @@ -0,0 +1 @@ +PLATFORMID=linux_mips64_eb diff --git a/debian/vars.mips64el b/debian/vars.mips64el new file mode 100644 index 00000000000..e207db4a94f --- /dev/null +++ b/debian/vars.mips64el @@ -0,0 +1 @@ +PLATFORMID=linux_mips64_el diff --git a/debian/vars.mipsel b/debian/vars.mipsel new file mode 100644 index 00000000000..0f4f5a86eb3 --- /dev/null +++ b/debian/vars.mipsel @@ -0,0 +1 @@ +PLATFORMID=linux_mips_el diff --git a/debian/vars.powerpc b/debian/vars.powerpc new file mode 100644 index 00000000000..e43581b1721 --- /dev/null +++ b/debian/vars.powerpc @@ -0,0 +1 @@ +PLATFORMID=linux_powerpc diff --git a/debian/vars.powerpcspe b/debian/vars.powerpcspe new file mode 100644 index 00000000000..e43581b1721 --- /dev/null +++ b/debian/vars.powerpcspe @@ -0,0 +1 @@ +PLATFORMID=linux_powerpc diff --git a/debian/vars.ppc64 b/debian/vars.ppc64 new file mode 100644 index 00000000000..c647bc677fb --- /dev/null +++ b/debian/vars.ppc64 @@ -0,0 +1 @@ +PLATFORMID=linux_powerpc64 diff --git a/debian/vars.ppc64el b/debian/vars.ppc64el new file mode 100644 index 00000000000..561db34544c --- /dev/null +++ b/debian/vars.ppc64el @@ -0,0 +1 @@ +PLATFORMID=linux_powerpc64_le diff --git a/debian/vars.s390 b/debian/vars.s390 new file mode 100644 index 00000000000..7e52543f2e4 --- /dev/null +++ b/debian/vars.s390 @@ -0,0 +1 @@ +PLATFORMID=linux_s390 diff --git a/debian/vars.s390x b/debian/vars.s390x new file mode 100644 index 00000000000..7c0d549bc43 --- /dev/null +++ b/debian/vars.s390x @@ -0,0 +1 @@ +PLATFORMID=linux_s390x diff --git a/debian/vars.solaris-i386 b/debian/vars.solaris-i386 new file mode 100644 index 00000000000..de92b2ae3e4 --- /dev/null +++ b/debian/vars.solaris-i386 @@ -0,0 +1 @@ +PLATFORMID=solaris_x86 diff --git a/debian/vars.sparc b/debian/vars.sparc new file mode 100644 index 00000000000..a905e563685 --- /dev/null +++ b/debian/vars.sparc @@ -0,0 +1 @@ +PLATFORMID=linux_sparc diff --git a/debian/vars.sparc64 b/debian/vars.sparc64 new file mode 100644 index 00000000000..fa7c4ad62e0 --- /dev/null +++ b/debian/vars.sparc64 @@ -0,0 +1 @@ +PLATFORMID=linux_sparc64 diff --git a/debian/watch b/debian/watch new file mode 100644 index 00000000000..385753dccd0 --- /dev/null +++ b/debian/watch @@ -0,0 +1,12 @@ +version=4 + +opts="compression=xz,pgpsigurlmangle=s/$/.asc/," \ + http://download.documentfoundation.org/@PACKAGE@/src/(\d.\d.\d)/@PACKAGE@-(\d.\d.\d).\d.tar.xz debian + +opts="compression=xz,pgpsigurlmangle=s/$/.asc/,component=helpcontent2," \ + http://download.documentfoundation.org/@PACKAGE@/src/(\d.\d.\d)/@PACKAGE@-help-(\d.\d.\d).\d.tar.xz same + +opts="compression=xz,pgpsigurlmangle=s/$/.asc/,component=translations," \ + http://download.documentfoundation.org/@PACKAGE@/src/(\d.\d.\d)/@PACKAGE@-translations-(\d.\d.\d).\d.tar.xz same + + diff --git a/debian/xmerge-javadoc.in b/debian/xmerge-javadoc.in new file mode 100644 index 00000000000..50a29b8e060 --- /dev/null +++ b/debian/xmerge-javadoc.in @@ -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 index 00000000000..270964418b1 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 index 00000000000..f1fb1db0bd2 Binary files /dev/null and b/tarballs/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip differ diff --git a/tarballs/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip b/tarballs/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip new file mode 100644 index 00000000000..e622cf1b520 Binary files /dev/null and b/tarballs/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip differ diff --git a/tarballs/pdfium-3426.tar.bz2 b/tarballs/pdfium-3426.tar.bz2 new file mode 100644 index 00000000000..7d49661be53 Binary files /dev/null and b/tarballs/pdfium-3426.tar.bz2 differ