summaryrefslogtreecommitdiff
path: root/extra/libreoffice
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2013-02-10 01:12:52 -0800
committerroot <root@rshg054.dnsready.net>2013-02-10 01:12:52 -0800
commit1bb2648cde916ac27d3dd75d7b64a4ddc89787b7 (patch)
tree016bfa1969323404c37dbef29cfc7242a5a8e9f3 /extra/libreoffice
parente9c244cac8e5dc1c59c7e8b7bc885fef04224b70 (diff)
Sun Feb 10 01:12:35 PST 2013
Diffstat (limited to 'extra/libreoffice')
-rw-r--r--extra/libreoffice/PKGBUILD.36715
-rw-r--r--extra/libreoffice/buildfix.diff12
-rw-r--r--extra/libreoffice/buildfix_icu49.diff42
-rw-r--r--extra/libreoffice/fix_broken_hebrew_wordwrapping.diff360
-rw-r--r--extra/libreoffice/git_fixes.diff743
5 files changed, 0 insertions, 1872 deletions
diff --git a/extra/libreoffice/PKGBUILD.36 b/extra/libreoffice/PKGBUILD.36
deleted file mode 100644
index 71ee72c1c..000000000
--- a/extra/libreoffice/PKGBUILD.36
+++ /dev/null
@@ -1,715 +0,0 @@
-# $Id: PKGBUILD 160067 2012-05-29 19:20:54Z andyrtr $
-# Maintainer: AndyRTR <andyrtr@archlinux.org>
-
-pkgbase="libreoffice"
-pkgname=('libreoffice-common'
- 'libreoffice-base'
- 'libreoffice-calc'
- 'libreoffice-draw'
- 'libreoffice-gnome'
- 'libreoffice-impress'
- 'libreoffice-kde4'
- 'libreoffice-math'
- 'libreoffice-sdk'
- 'libreoffice-sdk-doc'
- 'libreoffice-writer'
- 'libreoffice-en-US'
- 'libreoffice-postgresql-connector'
- 'libreoffice-extension-pdfimport'
- 'libreoffice-extension-presenter-screen'
- 'libreoffice-extension-presentation-minimizer'
- 'libreoffice-extension-report-builder'
- 'libreoffice-scripting-beanshell'
- 'libreoffice-scripting-javascript'
- 'libreoffice-extension-scripting-python'
- 'libreoffice-extension-wiki-publisher'
- 'libreoffice-extension-nlpsolver') # svn up -r 142692 (last one with all extensions built
-_LOver=3.6.0.4
-pkgver=3.6.0
-pkgrel=1
-arch=('i686' 'x86_64')
-license=('LGPL3')
-url="http://www.libreoffice.org/"
-makedepends=( # makedepends
- 'sane' 'perl-archive-zip' 'zip' 'unzip' 'unixodbc' 'hsqldb-java' #'boost'
- 'apache-ant' 'gperf' 'poppler>=0.18.0' 'kdelibs' 'gconf' 'cppunit'
- 'beanshell' 'vigra' 'clucene' 'junit' 'libmythes' 'libwpg' 'imagemagick'
- 'mesa' 'gstreamer0.10-base' 'java-environment' 'postgresql-libs' 'doxygen' 'clucene'
- #'saxon' - currently broken
- # the runtime dependencies
- "curl>=7.20.0" "hunspell>=1.2.8" "python2>=2.7" 'libwpd>=0.9.2' 'libwps' 'libxaw' "neon>=0.28.6"
- 'pango' 'nspr' 'libjpeg' 'libxrandr' 'libgl' 'dbus-glib' 'libxslt' 'librsvg' "icu>=49.1"
- 'redland' 'hyphen' 'lpsolve' 'gcc-libs' 'sh' 'libtextcat' 'graphite'
- 'hicolor-icon-theme' 'desktop-file-utils' 'shared-mime-info' 'gtk2' 'orbit2' 'translate-toolkit' 'xdg-utils'
- 'ttf-dejavu') # to satisfy regression tests
-
-# http://download.documentfoundation.org/mirrors/all.html
-# http://wiki.documentfoundation.org/Mirrors
-
-_mirror="http://download.documentfoundation.org/libreoffice/src/${pkgver}"
-#_mirror="http://dev-builds.libreoffice.org/pre-releases/src"
-_additional_source_url="http://dev-www.libreoffice.org/src"
-_additional_source_url2="http://dev-www.libreoffice.org/extern"
-source=(${_mirror}/${pkgbase}-{core,help,translations}-${_LOver}.tar.xz
- ${_additional_source_url}/18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz
- ${_additional_source_url}/f02578f5218f217a9f20e9c30e119c6a-boost_1_44_0.tar.bz2
- ${_additional_source_url}/a9a1db27688bad49418667b434d29c1f-libvisio-0.0.18.tar.bz2
- ${_additional_source_url}/1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz
- ${_additional_source_url}/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
- ${_additional_source_url}/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
- ${_additional_source_url}/fdb27bfe2dbe2e7b57ae194d9bf36bab-SampleICC-1.3.2.tar.gz
- ${_additional_source_url}/ada24d37d8d638b3d8a9985e80bc2978-source-9.0.0.7-bj.zip
- ${_additional_source_url}/2a177023f9ea8ec8bd00837605c5df1b-jakarta-tomcat-5.0.30-src.tar.gz
- ${_additional_source_url}/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip
- ${_additional_source_url}/3c219630e4302863a9a83d0efde889db-commons-logging-1.1.1-src.tar.gz
- ${_additional_source_url}/2ae988b339daec234019a7066f96733e-commons-lang-2.3-src.tar.gz
- ${_additional_source_url}/2c9b0f83ed5890af02c0df1c1776f39b-commons-httpclient-3.1-src.tar.gz
- ${_additional_source_url}/af3c3acf618de6108d65fcdc92b492e1-commons-codec-1.3-src.tar.gz
- ${_additional_source_url}/eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip
- ${_additional_source_url}/39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip
- ${_additional_source_url}/3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip
- ${_additional_source_url}/97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip
- ${_additional_source_url}/f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip
- ${_additional_source_url}/8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip
- ${_additional_source_url}/d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip
- ${_additional_source_url}/3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip
- ${_additional_source_url}/ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip
- ${_additional_source_url}/db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip
- ${_additional_source_url}/ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip
- ${_additional_source_url}/0ff7d225d087793c8c2c680d77aac3e7-mdds_0.5.3.tar.bz2
- ${_additional_source_url}/6097739c841f671cb21332b9cc593ae7-libexttextcat-3.3.1.tar.bz2
- ${_additional_source_url}/0d2dcdfbf28d6208751b33057f5361f0-libcmis-0.2.3.tar.gz
- ${_additional_source_url}/ce5a1def34578b75959ac31210f031f6-libcdr-0.0.8.tar.bz2
- ${_additional_source_url2}/185d60944ea767075d27247c3162b3bc-unowinreg.dll
- buildfix.diff
- libreoffice-common.sh libreoffice-common.csh)
-noextract=(a9a1db27688bad49418667b434d29c1f-libvisio-0.0.18.tar.bz2
- 18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz
- f02578f5218f217a9f20e9c30e119c6a-boost_1_44_0.tar.bz2
- 185d60944ea767075d27247c3162b3bc-unowinreg.dll
- 0ff7d225d087793c8c2c680d77aac3e7-mdds_0.5.3.tar.bz2
- ada24d37d8d638b3d8a9985e80bc2978-source-9.0.0.7-bj.zip
- 798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
- 1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz
- fdb27bfe2dbe2e7b57ae194d9bf36bab-SampleICC-1.3.2.tar.gz
- 6097739c841f671cb21332b9cc593ae7-libexttextcat-3.3.1.tar.bz2
- 0d2dcdfbf28d6208751b33057f5361f0-libcmis-0.2.3.tar.gz
- 35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
- 2a177023f9ea8ec8bd00837605c5df1b-jakarta-tomcat-5.0.30-src.tar.gz
- a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip
- 3c219630e4302863a9a83d0efde889db-commons-logging-1.1.1-src.tar.gz
- 2ae988b339daec234019a7066f96733e-commons-lang-2.3-src.tar.gz
- 2c9b0f83ed5890af02c0df1c1776f39b-commons-httpclient-3.1-src.tar.gz
- af3c3acf618de6108d65fcdc92b492e1-commons-codec-1.3-src.tar.gz
- eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip
- 39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip
- 3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip
- 97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip
- f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip
- 8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip
- d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip
- 3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip
- ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip
- db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip
- ce5a1def34578b75959ac31210f031f6-libcdr-0.0.8.tar.bz2
- ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip)
-md5sums=('67cf97e86c75363238a371f64ef5f606'
- '8422b0c4c797abeefed3ee4490586dd2'
- '6cc8fa86be8c657ba23434c6c8d99416'
- '18f577b374d60b3c760a3a3350407632'
- 'f02578f5218f217a9f20e9c30e119c6a'
- 'a9a1db27688bad49418667b434d29c1f'
- '1f24ab1d39f4a51faf22244c94a6203f'
- '35c94d2df8893241173de1d16b6034c0'
- '798b2ffdc8bcfe7bca2cf92b62caf685'
- 'fdb27bfe2dbe2e7b57ae194d9bf36bab'
- 'ada24d37d8d638b3d8a9985e80bc2978'
- '2a177023f9ea8ec8bd00837605c5df1b'
- 'a7983f859eafb2677d7ff386a023bc40'
- '3c219630e4302863a9a83d0efde889db'
- '2ae988b339daec234019a7066f96733e'
- '2c9b0f83ed5890af02c0df1c1776f39b'
- 'af3c3acf618de6108d65fcdc92b492e1'
- 'eeb2c7ddf0d302fba4bfc6e97eac9624'
- '39bb3fcea1514f1369fcfc87542390fd'
- '3404ab6b1792ae5f16bbd603bd1e1d03'
- '97b2d4dba862397f446b217e2b623e71'
- 'f94d9870737518e3b597f9265f4e9803'
- '8ce2fcd72becf06c41f7201d15373ed9'
- 'd8bd5eed178db6e2b18eeed243f85aa8'
- '3bdf40c0d199af31923e900d082ca2dd'
- 'ace6ab49184e329db254e454a010f56d'
- 'db60e4fde8dd6d6807523deb71ee34dc'
- 'ba2930200c9f019c2d93a8c88c651a0f'
- '0ff7d225d087793c8c2c680d77aac3e7'
- '6097739c841f671cb21332b9cc593ae7'
- '0d2dcdfbf28d6208751b33057f5361f0'
- 'ce5a1def34578b75959ac31210f031f6'
- '185d60944ea767075d27247c3162b3bc'
- '234e91ac65945ce1ab1e3839780e90f7'
- 'f0e72d0e1bc93a50a3aa9d31350b156c'
- '867c682b45f477f916786e00c45d7ab7')
-
-build() {
-
- unset J2REDIR; unset J2SDKDIR; unset JAVA_HOME; unset CLASSPATH; unset EXTRAOPTS
- [ -z "${JAVA_HOME}" ] && . /etc/profile.d/jdk.sh || . /etc/profile.d/openjdk6.sh
- [ -z "${ANT_HOME}" ] && . /etc/profile.d/apache-ant.sh
-
- cd ${srcdir}/libreoffice-core-$_LOver
-
- # move external sources into place
- mkdir ${srcdir}/ext_sources && pushd ${srcdir}/ext_sources
- for source in "${noextract[@]}"; do
- ln -s ${srcdir}/$source .
- done
- popd
-
- ln -s ../libreoffice-help-$_LOver/helpcontent2 .
- ln -s ../libreoffice-translations-$_LOver/translations .
-
- # buildfixes & bugfixes
- patch -Np1 -i ${srcdir}/buildfix.diff
-
- #use the CFLAGS but remove the LibO overridden ones
- for i in $CFLAGS; do
- case "$i" in
- -O?|-pipe|-Wall|-g|-fexceptions) continue;;
- esac
- ARCH_FLAGS="$ARCH_FLAGS $i"
- done
-
- # python2 fix
- export PYTHON=python2
-
- #autoconf -f
-
- # non-SMP test build
- #export MAKEFLAGS="-j1"
- #./configure --with-build-version="${_LOver} ArchLinux build-${pkgrel}" --with-vendor="ArchLinux" \
-
- ./autogen.sh --with-build-version="${_LOver} ArchLinux build-${pkgrel}" --with-vendor="ArchLinux" \
- --with-unix-wrapper="libreoffice" \
- --enable-split-app-modules \
- --with-max-jobs=${MAKEFLAGS/-j/} --with-num-cpus=${MAKEFLAGS/-j/} \
- --with-external-tar="${srcdir}/ext_sources" \
- --disable-fetch-external \
- --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc \
- --libdir=/usr/lib --mandir=/usr/share/man \
- --disable-verbose \
- --with-lang="" \
- --enable-crashdump \
- --enable-dbus \
- --enable-evolution2\
- --enable-gio\
- --disable-gnome-vfs\
- --disable-kde\
- --enable-kde4\
- --enable-gtk3 \
- --enable-lockdown\
- --enable-mergelibs \
- --enable-opengl \
- --enable-odk\
- --enable-ext-scripting-beanshell \
- --enable-ext-scripting-javascript \
- --enable-ext-wiki-publisher \
- --enable-ext-nlpsolver \
- --disable-ext-mysql-connector \
- --with-system-mysql \
- --enable-librsvg=system \
- --without-fonts\
- --without-afms\
- --without-ppds\
- --without-system-libwps\
- --without-system-libcdr \
- --without-system-mdds\
- --without-myspell-dicts \
- --without-system-libvisio \
- --without-system-libcmis \
- --without-system-libexttextcat \
- --without-system-jfreereport \
- --without-system-apache-commons \
- --with-system-dicts \
- --with-external-dict-dir=/usr/share/hunspell \
- --with-external-hyph-dir=/usr/share/hyphen \
- --with-external-thes-dir=/usr/share/mythes \
- --with-system-beanshell \
- --with-system-cppunit\
- --with-system-graphite\
- --with-system-libwpg \
- --with-system-libwps \
- --with-system-redland\
- --without-system-saxon\
- --disable-mozilla \
- --without-system-mozilla \
- --without-system-mozilla-headers \
- --with-ant-home="/usr/share/apache-ant"\
- --without-system-boost\
- --with-system-cairo\
- --with-system-libs\
- --with-system-mythes\
- --with-system-headers\
- --with-system-hsqldb \
- --with-alloc=system\
- --with-system-clucene\
- --without-system-servlet-api \
- --with-java-target-version=1.5 \
- $EXTRAOPTS
-
-#--enable-split-opt-features Split file lists for some optional features, .e.g. pyuno, testtool
-
- touch src.downloaded
- #./download
- make
- # fake installation to create split file lists
- mkdir $srcdir/fakeinstall
- make DESTDIR=${srcdir}/fakeinstall distro-pack-install
-}
-
-#check() {
-# cd ${srcdir}/build
-# make check
-#}
-
-package_libreoffice-common() {
-
- pkgdesc="common files for LibreOffice - a productivity suite that is compatible with other major office suites"
- install=libreoffice-common.install
- depends=('libreoffice-langpack' "hunspell>=1.2.8" "python2>=2.7" "neon>=0.28.6"
- 'nspr' 'libsm' 'redland' 'hyphen' 'graphite' "icu>=49.1"
- 'hicolor-icon-theme' 'desktop-file-utils' 'shared-mime-info' 'xdg-utils' 'orbit2')
- #'saxon'
- optdepends=('libreoffice-langpack: additional language support'
- 'java-runtime: adds java support'
- 'libcups: adds printing support'
- 'gconf: adds additional gnome support'
- 'nss: adds support for signed files/macros'
- 'pstoedit: translates PostScript and PDF graphics into other vector formats'
- 'poppler: for shipped pdfimport extension'
- 'libmythes: for use in thesaurus'
- 'beanshell: interactive java -- good for prototyping /macros'
- 'vigra: C++ computer vision library, usable in Basebmp'
- 'libmspack: library for Microsoft compression formats for use in FontOOo'
- 'libwpg: library for importing and converting Corel WordPerfect(tm) Graphics images'
- 'clucene: full-text search engine library needed in the help section'
- 'sane: for scanner access'
- 'unixodbc: adds ODBC database support'
- 'gstreamer0.10-base: + some gstr-plugins to support multimedia content, e.g. in impress')
- backup=(etc/libreoffice/sofficerc
- etc/libreoffice/bootstraprc
- etc/libreoffice/psprint.conf)
- groups=('libreoffice')
- provides=('go-openoffice')
- conflicts=('go-openoffice')
- replaces=('go-openoffice' 'openoffice-base' 'libreoffice')
-
- # create directories from *list.txt file
- for directory in `grep ^%dir ${srcdir}/libreoffice-core-$_LOver/file-lists/common_list.txt`; do
- install -dm755 ${pkgdir}/${directory/\%dir/}
- done
- # install files into the pkg from fakeinstall dir
- for file in `grep -v ^%dir $srcdir/libreoffice-core-$_LOver/file-lists/common_list.txt`; do
- dirname=`dirname $file`
- # check if directory has been already been created - some are missing like manpages
- [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname
- # mv file from fakeinstall to pkgdir
- mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
- done
-
- # put configuration files into place
- install -dm755 ${pkgdir}/etc/libreoffice
- install -m644 ${pkgdir}/usr/lib/libreoffice/program/{bootstraprc,sofficerc} ${pkgdir}/etc/libreoffice/
- install -m644 ${pkgdir}/usr/lib/libreoffice/share/psprint/psprint.conf ${pkgdir}/etc/libreoffice/
- # install dummy links to make them found by LibO
- cd ${pkgdir}/usr/lib/libreoffice/program/
- ln -vsf /etc/libreoffice/{bootstraprc,sofficerc} .
- cd ${pkgdir}/usr/lib/libreoffice/share/psprint/
- ln -vsf /etc/libreoffice/psprint.conf .
-
- # set python-uno PYTHON path
- install -dm755 ${pkgdir}/etc/profile.d
- install -m755 ${srcdir}/libreoffice-common.{sh,csh} ${pkgdir}/etc/profile.d/
-
- # move bash-completion files to its new place
- install -dm755 ${pkgdir}/usr/share/bash-completion/completions
- mv ${pkgdir}/etc/bash_completion.d/libreoffice.sh ${pkgdir}/usr/share/bash-completion/completions/libreoffice.sh
- rm -rf ${pkgdir}/etc/bash_completion.d
-
- # some files would conflict
- rm -f ${pkgdir}/usr/lib/libreoffice/program/classes/ScriptProviderForJavaScript.jar
- rm -f ${pkgdir}/usr/lib/libreoffice/program/classes/js.jar
- rm -f ${pkgdir}/usr/lib/libreoffice/program/services/scriptproviderforjavascript.rdb
-}
-
-package_libreoffice-base() {
- pkgdesc="GUI database front-end for LibreOffice. Allows creation and management of databases through a GUI."
- install=libreoffice-base.install
- depends=('libreoffice-common' 'hsqldb-java')
- optdepends=('libreoffice-postgresql-connector')
- backup=()
- groups=('libreoffice')
- replaces=('libreoffice')
-
- # create directories from *list.txt file
- for directory in `grep ^%dir ${srcdir}/libreoffice-core-$_LOver/file-lists/base_list.txt`; do
- install -dm755 ${pkgdir}/${directory/\%dir/}
- done
- # install files into the pkg from fakeinstall dir
- for file in `grep -v ^%dir $srcdir/libreoffice-core-$_LOver/file-lists/base_list.txt`; do
- dirname=`dirname $file`
- # check if directory has been already been created - some are missing like manpages
- [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname
- # mv file from fakeinstall to pkgdir
- mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
- done
-}
-
-package_libreoffice-postgresql-connector() {
- pkgdesc="A PostgreSQL connector for the database front-end for LibreOffice"
- depends=('libreoffice-base' 'postgresql-libs')
- groups=('libreoffice')
- replaces=('libreoffice')
-
- # no file-list so far
- install -dm755 ${pkgdir}/usr/lib/libreoffice/program/services
- install -m644 ${srcdir}/fakeinstall/usr/lib/libreoffice/program/postgresql-sdbc.uno.so ${pkgdir}/usr/lib/libreoffice/program
- install -m644 ${srcdir}/fakeinstall/usr/lib/libreoffice/program/postgresql-sdbc-impl.uno.so ${pkgdir}/usr/lib/libreoffice/program
- install -m644 ${srcdir}/fakeinstall/usr/lib/libreoffice/program/postgresql-sdbc.ini ${pkgdir}/usr/lib/libreoffice/program
- install -m644 ${srcdir}/fakeinstall/usr/lib/libreoffice/program/services/postgresql-sdbc.rdb ${pkgdir}/usr/lib/libreoffice/program/services
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/registry
- install -m644 ${srcdir}/fakeinstall/usr/lib/libreoffice/share/registry/postgresqlsdbc.xcd ${pkgdir}/usr/lib/libreoffice/share/registry
-
- # create directories from *list.txt file
-# for directory in `grep ^%dir ${srcdir}/libreoffice-core-$_LOver/file-lists/postgresql_list.txt`; do
-# install -dm755 ${pkgdir}/${directory/\%dir/}
-# done
-# # install files into the pkg from fakeinstall dir
-# for file in `grep -v ^%dir $srcdir/libreoffice-core-$_LOver/file-lists/postgresql_list.txt`; do
-# dirname=`dirname $file`
-# # check if directory has been already been created - some are missing like manpages
-# [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname
-# # mv file from fakeinstall to pkgdir
-# mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
-# done
-}
-
-package_libreoffice-calc() {
- pkgdesc="Spreadsheet application for LibreOffice."
- install=libreoffice-calc.install
- depends=('libreoffice-common' 'lpsolve' )
- optdepends=()
- backup=()
- groups=('libreoffice')
- replaces=('libreoffice')
-
- # create directories from *list.txt file
- for directory in `grep ^%dir ${srcdir}/libreoffice-core-$_LOver/file-lists/calc_list.txt`; do
- install -dm755 ${pkgdir}/${directory/\%dir/}
- done
- # install files into the pkg from fakeinstall dir
- for file in `grep -v ^%dir $srcdir/libreoffice-core-$_LOver/file-lists/calc_list.txt`; do
- dirname=`dirname $file`
- # check if directory has been already been created - some are missing like manpages
- [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname
- # mv file from fakeinstall to pkgdir
- mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
- done
-}
-
-package_libreoffice-draw() {
- pkgdesc="Drawing Application for LibreOffice."
- install=libreoffice-draw.install
- depends=('libreoffice-common')
- optdepends=()
- backup=()
- groups=('libreoffice')
- replaces=('libreoffice')
-
- # create directories from *list.txt file
- for directory in `grep ^%dir ${srcdir}/libreoffice-core-$_LOver/file-lists/draw_list.txt`; do
- install -dm755 ${pkgdir}/${directory/\%dir/}
- done
- # install files into the pkg from fakeinstall dir
- for file in `grep -v ^%dir $srcdir/libreoffice-core-$_LOver/file-lists/draw_list.txt`; do
- dirname=`dirname $file`
- # check if directory has been already been created - some are missing like manpages
- [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname
- # mv file from fakeinstall to pkgdir
- mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
- done
-}
-
-package_libreoffice-gnome() {
- pkgdesc="Plug-in for LibreOffice that enables integration into the Gnome and other gtk desktop environment."
- depends=('libreoffice-common' 'gtk2' 'gtk3') #'dbus-glib'
- optdepends=()
- backup=()
- groups=('libreoffice')
-
- # create directories from *list.txt file
- for directory in `grep ^%dir ${srcdir}/libreoffice-core-$_LOver/file-lists/gnome_list.txt`; do
- install -dm755 ${pkgdir}/${directory/\%dir/}
- done
- # install files into the pkg from fakeinstall dir
- for file in `grep -v ^%dir $srcdir/libreoffice-core-$_LOver/file-lists/gnome_list.txt`; do
- dirname=`dirname $file`
- # check if directory has been already been created - some are missing like manpages
- [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname
- # mv file from fakeinstall to pkgdir
- mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
- done
-}
-
-package_libreoffice-impress() {
- pkgdesc="Presentation Application for LibreOffice."
- install=libreoffice-impress.install
- depends=('libreoffice-common')
- optdepends=('mesa: for the OGLTrans extension')
- backup=()
- groups=('libreoffice')
- replaces=('libreoffice')
-
- # create directories from *list.txt file
- for directory in `grep ^%dir ${srcdir}/libreoffice-core-$_LOver/file-lists/impress_list.txt`; do
- install -dm755 ${pkgdir}/${directory/\%dir/}
- done
- # install files into the pkg from fakeinstall dir
- for file in `grep -v ^%dir $srcdir/libreoffice-core-$_LOver/file-lists/impress_list.txt`; do
- dirname=`dirname $file`
- # check if directory has been already been created - some are missing like manpages
- [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname
- # mv file from fakeinstall to pkgdir
- mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
- done
-}
-
-package_libreoffice-kde4() {
- pkgdesc="Plug-in for LibreOffice that enables integration into the KDE4 desktop environment."
- depends=('libreoffice-common' 'kdelibs')
- optdepends=()
- backup=()
- groups=('libreoffice')
-
- # create directories from *list.txt file
- for directory in `grep ^%dir ${srcdir}/libreoffice-core-$_LOver/file-lists/kde4_list.txt`; do
- install -dm755 ${pkgdir}/${directory/\%dir/}
- done
- # install files into the pkg from fakeinstall dir
- for file in `grep -v ^%dir $srcdir/libreoffice-core-$_LOver/file-lists/kde4_list.txt`; do
- dirname=`dirname $file`
- # check if directory has been already been created - some are missing like manpages
- [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname
- # mv file from fakeinstall to pkgdir
- mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
- done
-}
-
-package_libreoffice-math() {
- pkgdesc="Equation Editor Application for LibreOffice."
- depends=('libreoffice-common')
- optdepends=()
- backup=()
- groups=('libreoffice')
- replaces=('libreoffice')
-
- # create directories from *list.txt file
- for directory in `grep ^%dir ${srcdir}/libreoffice-core-$_LOver/file-lists/math_list.txt`; do
- install -dm755 ${pkgdir}/${directory/\%dir/}
- done
- # install files into the pkg from fakeinstall dir
- for file in `grep -v ^%dir $srcdir/libreoffice-core-$_LOver/file-lists/math_list.txt`; do
- dirname=`dirname $file`
- # check if directory has been already been created - some are missing like manpages
- [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname
- # mv file from fakeinstall to pkgdir
- mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
- done
-}
-
-package_libreoffice-sdk() {
- pkgdesc="Software Development Kit for LibreOffice."
- depends=('libreoffice-common' 'gcc-libs' 'sh' 'make' 'zip' 'gcc' 'java-environment')
- optdepends=()
- backup=()
- groups=('libreoffice')
-
- # create directories from *list.txt file
- for directory in `grep ^%dir ${srcdir}/libreoffice-core-$_LOver/file-lists/sdk_list.txt`; do
- install -dm755 ${pkgdir}/${directory/\%dir/}
- done
- # install files into the pkg from fakeinstall dir
- for file in `grep -v ^%dir $srcdir/libreoffice-core-$_LOver/file-lists/sdk_list.txt`; do
- dirname=`dirname $file`
- # check if directory has been already been created - some are missing like manpages
- [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname
- # mv file from fakeinstall to pkgdir
- mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
- done
-
- # fix environment path to keep compatibility with openjdk6 and openjdk7
- #sed -i -e "s:\/usr\/lib\/jvm\/java-7-openjdk:\$J2SDKDIR:" /usr/lib/libreoffice/sdk/setsdkenv_unix.{sh,csh}
- sed -i -e "s:\/usr\/lib\/jvm\/java-7-openjdk:\$J2SDKDIR:" ${pkgdir}/usr/lib/libreoffice/sdk/setsdkenv_unix.{sh,csh}
-}
-
-package_libreoffice-sdk-doc() {
- pkgdesc="Software Development Kit documentation for LibreOffice"
- depends=('libreoffice-common' 'libreoffice-sdk')
- optdepends=()
- backup=()
- groups=('libreoffice')
-
- # create directories from *list.txt file
- for directory in `grep ^%dir ${srcdir}/libreoffice-core-$_LOver/file-lists/sdk_doc_list.txt`; do
- install -dm755 ${pkgdir}/${directory/\%dir/}
- done
- # install files into the pkg from fakeinstall dir
- for file in `grep -v ^%dir $srcdir/libreoffice-core-$_LOver/file-lists/sdk_doc_list.txt`; do
- dirname=`dirname $file`
- # check if directory has been already been created - some are missing like manpages
- [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname
- # mv file from fakeinstall to pkgdir
- mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
- done
-
- #fix permissions
- find ${pkgdir}/usr/lib/libreoffice/sdk/examples -type f -exec chmod -x {} \;
-}
-
-package_libreoffice-writer() {
- pkgdesc="Word Processor Application for LibreOffice."
- install=libreoffice-writer.install
- depends=('libreoffice-common' 'libwpd>=0.9.2' 'libwps' 'libxml2')
- optdepends=('libwpg: library for importing and converting Corel WordPerfect(tm) Graphics images')
- backup=()
- groups=('libreoffice')
- replaces=('libreoffice')
-
- # create directories from *list.txt file
- for directory in `grep ^%dir ${srcdir}/libreoffice-core-$_LOver/file-lists/writer_list.txt`; do
- install -dm755 ${pkgdir}/${directory/\%dir/}
- done
- # install files into the pkg from fakeinstall dir
- for file in `grep -v ^%dir $srcdir/libreoffice-core-$_LOver/file-lists/writer_list.txt`; do
- dirname=`dirname $file`
- # check if directory has been already been created - some are missing like manpages
- [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname
- # mv file from fakeinstall to pkgdir
- mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
- done
-}
-
-package_libreoffice-en-US() {
- pkgdesc="English (US) language pack for LibreOffice"
- #arch=('any')
- provides=('openoffice-en-US' 'libreoffice-langpack')
- replaces=(openoffice-en-US)
- conflicts=(openoffice-en-US)
-
- # create directories from *list.txt file
- for directory in `grep ^%dir ${srcdir}/libreoffice-core-$_LOver/file-lists/lang_en_US_list.txt`; do
- install -dm755 ${pkgdir}/${directory/\%dir/}
- done
- # install files into the pkg from fakeinstall dir
- for file in `grep -v ^%dir $srcdir/libreoffice-core-$_LOver/file-lists/lang_en_US_list.txt`; do
- dirname=`dirname $file`
- # check if directory has been already been created - some are missing like manpages
- [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname
- # mv file from fakeinstall to pkgdir
- mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
- done
-}
-
-package_libreoffice-extension-pdfimport() {
-
- pkgdesc="This extension allows you to import and modify PDF documents"
- depends=('libreoffice-common' 'poppler')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/libreoffice-core-$_LOver/solver/unxlng*/bin/pdfimport.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/pdfimport
-}
-
-package_libreoffice-extension-presenter-screen() {
-
- pkgdesc="This extension provides more control over your slide show presentation, such as the ability to see the upcoming slide, the slide notes, and a presentation timer whereas the audience see only the current slide"
- depends=('libreoffice-common' 'java-environment')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/libreoffice-core-$_LOver/solver/unxlng*/bin/presenter-screen.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/presenter-screen
-}
-
-package_libreoffice-extension-presentation-minimizer() {
-
- pkgdesc="This extension reduce the file size of the current presentation"
- depends=('libreoffice-common' 'gcc-libs')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/libreoffice-core-$_LOver/solver/unxlng*/bin/presentation-minimizer.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/presentation-minimizer
-}
-
-package_libreoffice-extension-report-builder() {
-
- pkgdesc="This extension creates smart-looking database reports"
- #arch=('any')
- depends=('libreoffice-common' 'java-environment')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/libreoffice-core-$_LOver/solver/unxlng*/bin/report-builder.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/report-builder
-}
-
-package_libreoffice-scripting-beanshell() {
-
- pkgdesc="LibreOffice extension - Enables support for scripts in BeanShell"
- depends=('libreoffice-common' 'java-environment')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/program/{classes,services}
- mv ${srcdir}/fakeinstall/usr/lib/libreoffice/program/classes/ScriptProviderForBeanShell.jar ${pkgdir}/usr/lib/libreoffice/program/classes/
- mv ${srcdir}/fakeinstall/usr/lib/libreoffice/program/services/scriptproviderforbeanshell.rdb ${pkgdir}/usr/lib/libreoffice/program/services/
-}
-
-package_libreoffice-scripting-javascript() {
-
- pkgdesc="LibreOffice extension - Enables support for scripts in JavaScript"
- depends=('libreoffice-common' 'java-environment')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/program/{classes,services}
- mv ${srcdir}/libreoffice-core-$_LOver/solver/unxlng*/bin/{js.jar,ScriptProviderForJavaScript.jar} ${pkgdir}/usr/lib/libreoffice/program/classes/
- mv ${srcdir}/libreoffice-core-$_LOver/solver/unxlng*/xml/scriptproviderforjavascript.rdb ${pkgdir}/usr/lib/libreoffice/program/services/
-}
-
-package_libreoffice-extension-scripting-python() {
-
- pkgdesc="LibreOffice extension - Enables support for scripts in Python"
- depends=('libreoffice-common' 'python2')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/libreoffice-core-$_LOver/solver/unxlng*/bin/script-provider-for-python.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/script-provider-for-python
-}
-
-package_libreoffice-extension-wiki-publisher() {
-
- pkgdesc="This extension enables you to create Wiki articles on MediaWiki servers without having to know the syntax of the MediaWiki markup language"
- #arch=('any')
- depends=('libreoffice-common' 'java-environment')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/libreoffice-core-$_LOver/solver/unxlng*/bin/wiki-publisher.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/wiki-publisher
-}
-
-package_libreoffice-extension-nlpsolver() {
-
- pkgdesc="This extension integrates into Calc and offers new Solver engines to use for optimizing nonlinear programming models"
- #arch=('any')
- depends=('libreoffice-common' 'java-environment')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/libreoffice-core-$_LOver/solver/unxlng*/bin/nlpsolver.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/nlpsolver
-}
diff --git a/extra/libreoffice/buildfix.diff b/extra/libreoffice/buildfix.diff
deleted file mode 100644
index 327b10bb1..000000000
--- a/extra/libreoffice/buildfix.diff
+++ /dev/null
@@ -1,12 +0,0 @@
---- libreoffice-core-3.5.99.1/sdext/Module_sdext.mk 2012-06-07 13:57:10.000000000 +0200
-+++ libreoffice-core-3.5.99.1/sdext/Module_sdext.mk.new 2012-06-09 18:21:03.376024873 +0200
-@@ -49,9 +49,6 @@
- StaticLibrary_pdfimport_s \
- ))
-
--$(eval $(call gb_Module_add_check_targets,sdext,\
-- CppunitTest_pdfimport \
--))
- endif
-
- ifeq ($(ENABLE_PRESENTER_SCREEN),YES)
diff --git a/extra/libreoffice/buildfix_icu49.diff b/extra/libreoffice/buildfix_icu49.diff
deleted file mode 100644
index 7a774dee0..000000000
--- a/extra/libreoffice/buildfix_icu49.diff
+++ /dev/null
@@ -1,42 +0,0 @@
-https://bugs.gentoo.org/show_bug.cgi?id=410307
-
---- i18npool/source/breakiterator/data/char_in.txt
-+++ i18npool/source/breakiterator/data/char_in.txt
-@@ -15,7 +15,7 @@
- $CR = [\p{Grapheme_Cluster_Break = CR}];
- $LF = [\p{Grapheme_Cluster_Break = LF}];
- $Control = [\p{Grapheme_Cluster_Break = Control}];
--$Prepend = [\p{Grapheme_Cluster_Break = Prepend}];
-+# $Prepend = [\p{Grapheme_Cluster_Break = Prepend}];
- $Extend = [\p{Grapheme_Cluster_Break = Extend}];
- $SpacingMark = [\p{Grapheme_Cluster_Break = SpacingMark}];
- $BengaliLetter = [\u0985-\u09B9 \u09CE \u09DC-\u09E1 \u09F0-\u09F1];
-@@ -72,7 +72,7 @@
- [^$Control $CR $LF] $Extend;
-
- [^$Control $CR $LF] $SpacingMark;
--$Prepend [^$Control $CR $LF];
-+# $Prepend [^$Control $CR $LF];
-
-
- ## -------------------------------------------------
-@@ -94,7 +94,7 @@
-
- $Extend [^$Control $CR $LF];
- $SpacingMark [^$Control $CR $LF];
--[^$Control $CR $LF] $Prepend;
-+# [^$Control $CR $LF] $Prepend;
-
-
- ## -------------------------------------------------
---- i18npool/source/breakiterator/data/char.txt
-+++ i18npool/source/breakiterator/data/char.txt
-@@ -16,7 +16,7 @@
- $CR = [\p{Grapheme_Cluster_Break = CR}];
- $LF = [\p{Grapheme_Cluster_Break = LF}];
- $Control = [\p{Grapheme_Cluster_Break = Control}];
--$Prepend = [\p{Grapheme_Cluster_Break = Prepend}];
-+# $Prepend = [\p{Grapheme_Cluster_Break = Prepend}];
- $Extend = [\p{Grapheme_Cluster_Break = Extend}];
- $SpacingMark = [\p{Grapheme_Cluster_Break = SpacingMark}];
- # True Indic wants to move by syllables. Break up SpacingMark. This based on Unicode 6.0 data
diff --git a/extra/libreoffice/fix_broken_hebrew_wordwrapping.diff b/extra/libreoffice/fix_broken_hebrew_wordwrapping.diff
deleted file mode 100644
index ba4850c77..000000000
--- a/extra/libreoffice/fix_broken_hebrew_wordwrapping.diff
+++ /dev/null
@@ -1,360 +0,0 @@
-From 20c24114143d6d38774b56a142fd4ae05094308e Mon Sep 17 00:00:00 2001
-From: Caolán McNamara <caolanm@redhat.com>
-Date: Sun, 13 May 2012 21:41:30 +0000
-Subject: Resolves: fdo#49849 implement Unicode 6.1 hebrew line breaking rules
-
-i.e. sync with svn diff -c 31071
-http://source.icu-project.org/repos/icu/icu/trunk/source/data/brkitr/line.txt
-
-Change-Id: I I I41b3d02f1a0da3b83a9684f29d466660d96254c6
----
-diff --git a/i18npool/qa/cppunit/test_breakiterator.cxx b/i18npool/qa/cppunit/test_breakiterator.cxx
-index 14051d4..ffd590c 100644
---- a/i18npool/qa/cppunit/test_breakiterator.cxx
-+++ b/i18npool/qa/cppunit/test_breakiterator.cxx
-@@ -42,6 +42,7 @@
- #include <unotest/bootstrapfixturebase.hxx>
-
- #include <rtl/strbuf.hxx>
-+#include <rtl/ustrbuf.hxx>
-
- #include <string.h>
-
-@@ -58,6 +59,9 @@ public:
- void testWeak();
- void testAsian();
- void testThai();
-+#if TODO
-+ void testNorthernThai();
-+#endif
-
- CPPUNIT_TEST_SUITE(TestBreakIterator);
- CPPUNIT_TEST(testLineBreaking);
-@@ -71,6 +71,9 @@
- CPPUNIT_TEST(testWeak);
- CPPUNIT_TEST(testAsian);
- CPPUNIT_TEST(testThai);
-+#if TODO
-+ CPPUNIT_TEST(testNorthernThai);
-+#endif
- CPPUNIT_TEST_SUITE_END();
-
- private:
-@@ -80,28 +83,46 @@
- uno::Reference<i18n::XBreakIterator> m_xBreak;
- };
-
--//See https://bugs.freedesktop.org/show_bug.cgi?id=31271 for motivation
- void TestBreakIterator::testLineBreaking()
- {
-- ::rtl::OUString aTest1(RTL_CONSTASCII_USTRINGPARAM("(some text here)"));
--
- i18n::LineBreakHyphenationOptions aHyphOptions;
- i18n::LineBreakUserOptions aUserOptions;
- lang::Locale aLocale;
-
-- aLocale.Language = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("en"));
-- aLocale.Country = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("US"));
--
-+ //See https://bugs.freedesktop.org/show_bug.cgi?id=31271
- {
-- //Here we want the line break to leave text here) on the next line
-- i18n::LineBreakResults aResult = m_xBreak->getLineBreak(aTest1, strlen("(some tex"), aLocale, 0, aHyphOptions, aUserOptions);
-- CPPUNIT_ASSERT_MESSAGE("Expected a break at the the start of the word", aResult.breakIndex == 6);
-+ ::rtl::OUString aTest(RTL_CONSTASCII_USTRINGPARAM("(some text here)"));
-+
-+ aLocale.Language = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("en"));
-+ aLocale.Country = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("US"));
-+
-+ {
-+ //Here we want the line break to leave text here) on the next line
-+ i18n::LineBreakResults aResult = m_xBreak->getLineBreak(aTest, strlen("(some tex"), aLocale, 0, aHyphOptions, aUserOptions);
-+ CPPUNIT_ASSERT_MESSAGE("Expected a break at the the start of the word", aResult.breakIndex == 6);
-+ }
-+
-+ {
-+ //Here we want the line break to leave "here)" on the next line
-+ i18n::LineBreakResults aResult = m_xBreak->getLineBreak(aTest, strlen("(some text here"), aLocale, 0, aHyphOptions, aUserOptions);
-+ CPPUNIT_ASSERT_MESSAGE("Expected a break at the the start of the word", aResult.breakIndex == 11);
-+ }
- }
-
-+ //See https://bugs.freedesktop.org/show_bug.cgi?id=49849
- {
-- //Here we want the line break to leave "here)" on the next line
-- i18n::LineBreakResults aResult = m_xBreak->getLineBreak(aTest1, strlen("(some text here"), aLocale, 0, aHyphOptions, aUserOptions);
-- CPPUNIT_ASSERT_MESSAGE("Expected a break at the the start of the word", aResult.breakIndex == 11);
-+ const sal_Unicode HEBREW1[] = { 0x05DE, 0x05D9, 0x05DC, 0x05D9, 0x5DD };
-+ ::rtl::OUString aWord(HEBREW1, SAL_N_ELEMENTS(HEBREW1));
-+ ::rtl::OUString aTest(rtl::OUStringBuffer(aWord).append(' ').append(aWord).makeStringAndClear());
-+
-+ aLocale.Language = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("he"));
-+ aLocale.Country = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("IL"));
-+
-+ {
-+ //Here we want the line break to happen at the whitespace
-+ i18n::LineBreakResults aResult = m_xBreak->getLineBreak(aTest, aTest.getLength()-1, aLocale, 0, aHyphOptions, aUserOptions);
-+ CPPUNIT_ASSERT_MESSAGE("Expected a break at the the start of the word", aResult.breakIndex == aWord.getLength()+1);
-+ }
- }
- }
-
-@@ -295,27 +320,29 @@ void TestBreakIterator::testThai()
- aLocale.Language = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("th"));
- aLocale.Country = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TH"));
-
-- i18n::Boundary aBounds;
-- {
-- const sal_Unicode THAI1[] = { 0x0E01, 0x0E38, 0x0E2B, 0x0E25, 0x0E32, 0x0E1A };
-- ::rtl::OUString aTest(THAI1, SAL_N_ELEMENTS(THAI1));
-- aBounds = m_xBreak->getWordBoundary(aTest, 0, aLocale,
-- i18n::WordType::DICTIONARY_WORD, true);
-- CPPUNIT_ASSERT_MESSAGE("Should skip full word",
-- aBounds.startPos == 0 && aBounds.endPos == aTest.getLength());
-- }
-+ const sal_Unicode THAI1[] = { 0x0E01, 0x0E38, 0x0E2B, 0x0E25, 0x0E32, 0x0E1A };
-+ ::rtl::OUString aTest(THAI1, SAL_N_ELEMENTS(THAI1));
-+ i18n::Boundary aBounds = m_xBreak->getWordBoundary(aTest, 0, aLocale,
-+ i18n::WordType::DICTIONARY_WORD, true);
-+ CPPUNIT_ASSERT_MESSAGE("Should skip full word",
-+ aBounds.startPos == 0 && aBounds.endPos == aTest.getLength());
-+}
-
--#ifdef TODO
-- {
-- const sal_Unicode NORTHERN_THAI1[] = { 0x0E01, 0x0E38, 0x0E4A, 0x0E2B, 0x0E25, 0x0E32, 0x0E1A };
-- ::rtl::OUString aTest(NORTHERN_THAI1, SAL_N_ELEMENTS(NORTHERN_THAI1));
-- aBounds = m_xBreak->getWordBoundary(aTest, 0, aLocale,
-- i18n::WordType::DICTIONARY_WORD, true);
-- CPPUNIT_ASSERT_MESSAGE("Should skip full word",
-- aBounds.startPos == 0 && aBounds.endPos == aTest.getLength());
-- }
--#endif
-+#if TODO
-+void TestBreakIterator::testNorthernThai()
-+{
-+ lang::Locale aLocale;
-+ aLocale.Language = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("nod"));
-+ aLocale.Country = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TH"));
-+
-+ const sal_Unicode NORTHERN_THAI1[] = { 0x0E01, 0x0E38, 0x0E4A, 0x0E2B, 0x0E25, 0x0E32, 0x0E1A };
-+ ::rtl::OUString aTest(NORTHERN_THAI1, SAL_N_ELEMENTS(NORTHERN_THAI1));
-+ i18n::Boundary aBounds = m_xBreak->getWordBoundary(aTest, 0, aLocale,
-+ i18n::WordType::DICTIONARY_WORD, true);
-+ CPPUNIT_ASSERT_MESSAGE("Should skip full word",
-+ aBounds.startPos == 0 && aBounds.endPos == aTest.getLength());
- }
-+#endif
-
- void TestBreakIterator::setUp()
- {
-diff --git a/i18npool/source/breakiterator/data/README b/i18npool/source/breakiterator/data/README
-new file mode 100644
-index 0000000..8d7598d
---- a/dev/null
-+++ b/i18npool/source/breakiterator/data/README
-@@ -0,0 +1,12 @@
-+The originals of these come from svn checkout
-+http://source.icu-project.org/repos/icu/icu/trunk/source/data/brkitr they no
-+longer appear in the icu tarballs, but are in icu's svn
-+
-+At various stages these copies have been customized and are not horribly out of
-+sync. It unclear which diffs from the base versions are deliberate and which
-+are now accidental :-(
-+
-+We need to review the various issues referenced in the commits that caused
-+custimizations and see if they're still relevant or not, write regression tests
-+for them, if any are still relavant then apply the changes back on top of the
-+latest versions.
-diff --git a/i18npool/source/breakiterator/data/line.txt b/i18npool/source/breakiterator/data/line.txt
-index cbabee6..91c8f3d 100644
---- a/i18npool/source/breakiterator/data/line.txt
-+++ b/i18npool/source/breakiterator/data/line.txt
-@@ -61,11 +61,13 @@ $BB = [:LineBreak = Break_Before:];
- $BK = [:LineBreak = Mandatory_Break:];
- $B2 = [:LineBreak = Break_Both:];
- $CB = [:LineBreak = Contingent_Break:];
-+$CJ = [:LineBreak = Conditional_Japanese_Starter:];
- $CL = [:LineBreak = Close_Punctuation:] ;
- $CM = [:LineBreak = Combining_Mark:];
- $CR = [:LineBreak = Carriage_Return:];
- $EX = [:LineBreak = Exclamation:];
- $GL = [:LineBreak = Glue:];
-+$HL = [:LineBreak = Hebrew_Letter:];
- $HY = [:LineBreak = Hyphen:];
- $H2 = [:LineBreak = H2:];
- $H3 = [:LineBreak = H3:];
-@@ -77,7 +79,7 @@ $JV = [:LineBreak = JV:];
- $JT = [:LineBreak = JT:];
- $LF = [:LineBreak = Line_Feed:];
- $NL = [:LineBreak = Next_Line:];
--$NS = [:LineBreak = Nonstarter:];
-+$NS = [[:LineBreak = Nonstarter:] $CJ];
- $NU = [:LineBreak = Numeric:];
- $OP = [[:LineBreak = Open_Punctuation:] - $DG];
- $PO = [:LineBreak = Postfix_Numeric:];
-@@ -118,6 +120,7 @@ $B2cm = $B2 $CM*;
- $CLcm = $CL $CM*;
- $EXcm = $EX $CM*;
- $GLcm = $GL $CM*;
-+$HLcm = $HL $CM*;
- $HYcm = $HY $CM*;
- $H2cm = $H2 $CM*;
- $H3cm = $H3 $CM*;
-@@ -150,6 +153,7 @@ $B2 $CM+;
- $CL $CM+;
- $EX $CM+;
- $GL $CM+;
-+$HL $CM+;
- $HY $CM+;
- $H2 $CM+;
- $H3 $CM+;
-@@ -186,7 +190,7 @@ $CANT_CM = [ $SP $BK $CR $LF $NL $ZW $CM]; # Bases that can't take CMs
- # so for this one case we need to manually list out longer sequences.
- #
- $AL_FOLLOW_NOCM = [$BK $CR $LF $NL $ZW $SP];
--$AL_FOLLOW_CM = [$CL $EX $IS $SY $WJ $GL $QU $BA $HY $NS $IN $NU $ALPlus $OP];
-+$AL_FOLLOW_CM = [$CL $EX $HL $IS $SY $WJ $GL $QU $BA $HY $NS $IN $NU $ALPlus $OP];
- $AL_FOLLOW = [$AL_FOLLOW_NOCM $AL_FOLLOW_CM];
-
-
-@@ -320,8 +324,13 @@ $LB20NonBreaks $CM* ($BAcm | $HYcm | $NScm);
- $BBcm [^$CB]; # $BB x
- $BBcm $LB20NonBreaks $CM*;
-
-+# LB 21a Don't break after Hebrew + Hyphen
-+# HL (HY | BA) x
-+#
-+$HLcm ($HYcm | $BAcm) [^$CB]?;
-+
- # LB 22
--$ALcm $INcm;
-+($ALcm | $HLcm) $INcm;
- $CM+ $INcm; # by rule 10, any otherwise unattached CM behaves as AL
- $IDcm $INcm;
- $INcm $INcm;
-@@ -331,16 +340,18 @@ $NUcm $INcm;
- # $LB 23
- $IDcm $POcm;
- $ALcm $NUcm; # includes $LB19
-+$HLcm $NUcm;
- $CM+ $NUcm; # Rule 10, any otherwise unattached CM behaves as AL
- $NUcm $ALcm;
-+$NUcm $HLcm;
-
- #
- # LB 24
- #
- $PRcm $IDcm;
- $ALcm $PRcm;
--$PRcm $ALcm;
--$POcm $ALcm;
-+$PRcm ($ALcm | $HLcm);
-+$POcm ($ALcm | $HLcm);
-
- #
- # LB 25 Numbers.
-@@ -361,8 +372,8 @@ $PRcm ($JLcm | $JVcm | $JTcm | $H2cm | $H3cm);
-
- # LB 28 Do not break between alphabetics
- #
--$ALcm $ALcm;
--$CM+ $ALcm; # The $CM+ is from rule 10, and unattached CM is treated as AL
-+($ALcm | $HLcm) ($ALcm | $HLcm);
-+$CM+ ($ALcm | $HLcm); # The $CM+ is from rule 10, an unattached CM is treated as AL
-
- # LB 29
- $IScm ($ALcm | $NUcm);
-@@ -371,11 +382,9 @@ $IScm ($ALcm | $NUcm);
- # Rule 30 Do not break between letters, numbers or ordinary symbols
- # and opening or closing punctuation
- #
--($ALcm | $NUcm) $OPcm;
-+($ALcm | $HLcm | $NUcm) $OPcm;
- $CM+ $OPcm;
--$CLcm ($ALcm | $NUcm);
--
--
-+$CLcm ($ALcm | $HLcm | $NUcm);
-
- #
- # Reverse Rules.
-@@ -391,6 +400,7 @@ $CM+ $B2;
- $CM+ $CL;
- $CM+ $EX;
- $CM+ $GL;
-+$CM+ $HL;
- $CM+ $HY;
- $CM+ $H2;
- $CM+ $H3;
-@@ -544,24 +554,25 @@ $CM* ($BA | $HY | $NS) $CM* [$LB20NonBreaks-$CM]; # . x (BA | HY | NS)
- $CM* [$LB20NonBreaks-$CM] $CM* $BB; # BB x .
- [^$CB] $CM* $BB; #
-
--
-+# LB21a
-+[^$CB] $CM* ($HY | $BA) $CM* $HL;
-
- # LB 22
--$CM* $IN $CM* $ALPlus;
-+$CM* $IN $CM* ($ALPlus | $HL);
- $CM* $IN $CM* $ID;
- $CM* $IN $CM* $IN;
- $CM* $IN $CM* $NU;
-
- # LB 23
- $CM* $PO $CM* $ID;
--$CM* $NU $CM* $ALPlus;
--$CM* $ALPlus $CM* $NU;
-+$CM* $NU $CM* ($ALPlus | $HL);
-+$CM* ($ALPlus | $HL) $CM* $NU;
-
- # LB 24
- $CM* $ID $CM* $PR;
- $CM* $PR $CM* $ALPlus;
--$CM* $ALPlus $CM* $PR;
--$CM* $ALPlus $CM* $PO;
-+$CM* ($ALPlus | $HL) $CM* $PR;
-+$CM* ($ALPlus | $HL) $CM* $PO;
-
- $CM* $ALPlus $CM* ($IS | $SY | $HY)+ / $SP;
- $CM* $NU+ $CM* $HY+ / $SP;
-@@ -580,15 +591,14 @@ $CM* $PO $CM* ($H3 | $H2 | $JT | $JV | $JL);
- $CM* ($H3 | $H2 | $JT | $JV | $JL) $CM* $PR;
-
- # LB 28
--$CM* $ALPlus $CM* $ALPlus;
--
-+$CM* ($ALPlus | $HL) $CM* ($ALPlus | $HL);
-
- # LB 29
- $CM* ($NU | $ALPlus) $CM* $IS+ [^$SP];
-
- # LB 30
--$CM* $OP $CM* ($NU | $ALPlus);
--$CM* ($NU | $ALPlus) $CM* ($CL | $SY)+ [^$SP];
-+$CM* $OP $CM* ($ALPlus | $HL | $NU);
-+$CM* ($ALPlus | $HL | $NU) $CM* ($CL | $SY)+ [^$SP];
-
-
- ## -------------------------------------------------
-@@ -609,6 +619,9 @@ $SP+ $CM* $QU;
- $SP+ $CM* $CL;
- $SP+ $CM* $B2;
-
-+# LB 21
-+$CM* ($HY | $BA) $CM* $HL;
-+
- # LB 18
- ($CM* ($IS | $SY))+ $CM* $NU;
- $CL $CM* ($NU | $IS | $SY);
-@@ -629,6 +642,6 @@ $dictionary $dictionary;
- # turn off rule chaining. We don't want to move more
- # than necessary.
- #
--[$CM $OP $QU $CL $B2 $PR $HY $SP $dictionary]+ [^$CM $OP $QU $CL $B2 $PR $HY $dictionary];
-+[$CM $OP $QU $CL $B2 $PR $HY $BA $SP $dictionary]+ [^$CM $OP $QU $CL $B2 $PR $HY $BA $dictionary];
- $dictionary $dictionary;
-
---
-cgit v0.9.0.2-2-gbebe
diff --git a/extra/libreoffice/git_fixes.diff b/extra/libreoffice/git_fixes.diff
deleted file mode 100644
index a4cd891cb..000000000
--- a/extra/libreoffice/git_fixes.diff
+++ /dev/null
@@ -1,743 +0,0 @@
-From 427529801dee122250e44d2311b34651db92bbdb Mon Sep 17 00:00:00 2001
-From: Stephan Bergmann <sbergman@redhat.com>
-Date: Tue, 21 Aug 2012 16:55:11 +0000
-Subject: Typo
-
-Change-Id: I41fd1463b6432818ee36e7f90e920a5fd98c7106
-(cherry picked from commit 1316cfe8a72f7c7bc2f5ad7644a2d4c54b77fc8b)
-
-Signed-off-by: Eike Rathke <erack@redhat.com>
----
-diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
-index d929787..55ebaca 100644
---- a/desktop/source/app/app.cxx
-+++ b/desktop/source/app/app.cxx
-@@ -194,7 +194,7 @@ void removeTree(OUString const & url) {
- osl::FileBase::RC rc = osl::Directory::remove(url);
- SAL_WARN_IF(
- rc != osl::FileBase::E_None, "desktop",
-- "cannot remove directory " << url << ": " +rc);
-+ "cannot remove directory " << url << ": " << +rc);
- // at least on Windows XP removing some existing directories fails with
- // osl::FileBase::E_ACCESS because they are read-only; but keeping those
- // directories around should be harmless once they are empty
---
-cgit v0.9.0.2-2-gbebe
-From b4f8acb41165a28b2db47acd3c6b624a4c507c54 Mon Sep 17 00:00:00 2001
-From: Stephan Bergmann <sbergman@redhat.com>
-Date: Fri, 24 Aug 2012 14:06:15 +0000
-Subject: Fix removeRdbFiles (caused extension update to fail)
-
-removeRdbFiles suffered from a confusion that ImplementationInfo.uri denotes the
-corresponding component (.so, .jar, etc.), but not the .rdb file. So removing
-an .rdb file silently failed to remove the corresponding implementations, so re-
-installing a similar enough .rdb (as typically happens during extension update)
-would fail due to duplicate implementation names.
-
-Change-Id: I25d4ff72656c99a3af509eef09e89c18cfd0aabe
-Reviewed-on: https://gerrit.libreoffice.org/476
-Reviewed-by: Norbert Thiebaud <nthiebaud@gmail.com>
-Tested-by: Norbert Thiebaud <nthiebaud@gmail.com>
----
-diff --git a/cppuhelper/source/defaultbootstrap.cxx b/cppuhelper/source/defaultbootstrap.cxx
-index c3bdba3..7fd1e4a 100644
---- a/cppuhelper/source/defaultbootstrap.cxx
-+++ b/cppuhelper/source/defaultbootstrap.cxx
-@@ -130,9 +130,10 @@ struct ImplementationInfo: private boost::noncopyable {
- rtl::OUString const & theName, rtl::OUString const & theLoader,
- rtl::OUString const & theUri, rtl::OUString const & thePrefix,
- css::uno::Reference< css::uno::XComponentContext > const &
-- theAlienContext):
-+ theAlienContext,
-+ rtl::OUString const & theRdbFile):
- name(theName), loader(theLoader), uri(theUri), prefix(thePrefix),
-- alienContext(theAlienContext)
-+ alienContext(theAlienContext), rdbFile(theRdbFile)
- {}
-
- explicit ImplementationInfo(rtl::OUString const & theName): name(theName) {}
-@@ -142,6 +143,7 @@ struct ImplementationInfo: private boost::noncopyable {
- rtl::OUString const uri;
- rtl::OUString const prefix;
- css::uno::Reference< css::uno::XComponentContext > const alienContext;
-+ rtl::OUString const rdbFile;
- std::vector< rtl::OUString > services;
- std::vector< rtl::OUString > singletons;
- };
-@@ -149,12 +151,12 @@ struct ImplementationInfo: private boost::noncopyable {
- struct Implementation: private boost::noncopyable {
- Implementation(
- rtl::OUString const & name, rtl::OUString const & loader,
-- rtl::OUString const & uri,
-- rtl::OUString const & prefix = rtl::OUString(),
-- css::uno::Reference< css::uno::XComponentContext > const &
-- alienContext
-- = css::uno::Reference< css::uno::XComponentContext >()):
-- info(new ImplementationInfo(name, loader, uri, prefix, alienContext)),
-+ rtl::OUString const & uri, rtl::OUString const & prefix,
-+ css::uno::Reference< css::uno::XComponentContext > const & alienContext,
-+ rtl::OUString const & rdbFile):
-+ info(
-+ new ImplementationInfo(
-+ name, loader, uri, prefix, alienContext, rdbFile)),
- loaded(false)
- {}
-
-@@ -466,7 +468,7 @@ void Parser::handleImplementation() {
- implementation_.reset(
- new Implementation(
- attrImplementation_, attrLoader_, attrUri_, attrPrefix_,
-- alienContext_));
-+ alienContext_, reader_.getUrl()));
- if (!data_->namedImplementations.insert(
- NamedImplementations::value_type(
- attrImplementation_, implementation_)).
-@@ -1502,7 +1504,9 @@ bool ServiceManager::readLegacyRdbFile(rtl::OUString const & uri) {
- boost::shared_ptr< Implementation > impl(
- new Implementation(
- name, readLegacyRdbString(uri, implKey, "UNO/ACTIVATOR"),
-- readLegacyRdbString(uri, implKey, "UNO/LOCATION")));
-+ readLegacyRdbString(uri, implKey, "UNO/LOCATION"),
-+ rtl::OUString(),
-+ css::uno::Reference< css::uno::XComponentContext >(), uri));
- if (!data_.namedImplementations.insert(
- NamedImplementations::value_type(name, impl)).
- second)
-@@ -1744,7 +1748,7 @@ void ServiceManager::removeRdbFiles(std::vector< rtl::OUString > const & uris) {
- j != data_.namedImplementations.end();)
- {
- assert(j->second.get() != 0);
-- if (j->second->info->uri == *i) {
-+ if (j->second->info->rdbFile == *i) {
- clear.push_back(j->second);
- //TODO: The below leaves data_ in an inconsistent state upon
- // exceptions:
---
-cgit v0.9.0.2-2-gbebe
-From 6d261e7aac12a876acb6496085e5329632595d39 Mon Sep 17 00:00:00 2001
-From: Stephan Bergmann <sbergman@redhat.com>
-Date: Fri, 24 Aug 2012 14:45:20 +0000
-Subject: fdo#53968 etc.: Fix more "doesn't start after upgrade" problems
-
-* fdo#53968 revealed that multiple soffice.bin instances can run removeTree in
- parallel. Therefore, demoted failures from exceptions to SAL_WARNs. (And
- keeping fingers crossed.)
-
-* a8cdce148c76c93c5d41820610d6e6ac175e03a7 "fdo#53655: Ignore failure to remove
- directories (as happens on Windows XP)" was due to a forgotten
- osl::Directory::close before calling osl::Directory::remove after all.
-
-* UserInstallations have been seen in the wild where no extensions were
- installed per-user (any longer), but user/uno_packages/cache/registry/
- com.sun.star.comp.deployment.component.PackageRegistryBackend/*.rdb files
- contained data nevertheless. To reliably clean out any old junk,
- refreshBundledExtensionsDir has been extended to cleanExtensionsCache which in
- tandem with an extended Desktop::SynchronizeExtensionRepositories now cleanly
- re-installs all bundled, shared, and per-user extensions after a LO upgrade.
-
-Change-Id: Ic6b5b6c1945d76eb3a65b6cd4512a657b7a835a0
-Reviewed-on: https://gerrit.libreoffice.org/477
-Reviewed-by: Norbert Thiebaud <nthiebaud@gmail.com>
-Tested-by: Norbert Thiebaud <nthiebaud@gmail.com>
----
-diff --git a/desktop/inc/app.hxx b/desktop/inc/app.hxx
-index 25b6352..c830b02 100644
---- a/desktop/inc/app.hxx
-+++ b/desktop/inc/app.hxx
-@@ -203,6 +203,7 @@ class Desktop : public Application
-
- sal_Bool m_bMinimized;
- sal_Bool m_bInvisible;
-+ bool m_bCleanedExtensionCache;
- bool m_bServicesRegistered;
- sal_uInt16 m_nAppEvents;
- BootstrapError m_aBootstrapError;
-diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
-index 55ebaca..5fb653b 100644
---- a/desktop/source/app/app.cxx
-+++ b/desktop/source/app/app.cxx
-@@ -147,77 +147,81 @@ namespace {
-
- void removeTree(OUString const & url) {
- osl::Directory dir(url);
-- switch (dir.open()) {
-+ osl::FileBase::RC rc = dir.open();
-+ switch (rc) {
- case osl::FileBase::E_None:
- break;
- case osl::FileBase::E_NOENT:
- return; //TODO: SAL_WARN if recursive
- default:
-- throw css::uno::RuntimeException(
-- "cannot open directory " + url,
-- css::uno::Reference< css::uno::XInterface >());
-+ SAL_WARN("desktop", "cannot open directory " << url << ": " << +rc);
-+ return;
- }
- for (;;) {
- osl::DirectoryItem i;
-- osl::FileBase::RC rc = dir.getNextItem(i, SAL_MAX_UINT32);
-+ rc = dir.getNextItem(i, SAL_MAX_UINT32);
- if (rc == osl::FileBase::E_NOENT) {
- break;
- }
- if (rc != osl::FileBase::E_None) {
-- throw css::uno::RuntimeException(
-- ("cannot iterate directory " + url + ": "
-- + OUString::valueOf(static_cast< sal_Int32 >(rc))),
-- css::uno::Reference< css::uno::XInterface >());
-+ SAL_WARN(
-+ "desktop","cannot iterate directory " << url << ": " << +rc);
-+ break;
- }
- osl::FileStatus stat(
- osl_FileStatus_Mask_Type | osl_FileStatus_Mask_FileName |
- osl_FileStatus_Mask_FileURL);
- rc = i.getFileStatus(stat);
- if (rc != osl::FileBase::E_None) {
-- throw css::uno::RuntimeException(
-- ("cannot stat in directory " + url + ": "
-- + OUString::valueOf(static_cast< sal_Int32 >(rc))),
-- css::uno::Reference< css::uno::XInterface >());
-+ SAL_WARN(
-+ "desktop", "cannot stat in directory " << url << ": " << +rc);
-+ continue;
- }
- if (stat.getFileType() == osl::FileStatus::Directory) { //TODO: symlinks
- removeTree(stat.getFileURL());
- } else {
- rc = osl::File::remove(stat.getFileURL());
-- if (rc != osl::FileBase::E_None) {
-- throw css::uno::RuntimeException(
-- ("cannot remove file " + stat.getFileURL() + ": "
-- + OUString::valueOf(static_cast< sal_Int32 >(rc))),
-- css::uno::Reference< css::uno::XInterface >());
-- }
-+ SAL_WARN_IF(
-+ rc != osl::FileBase::E_None, "desktop",
-+ "cannot remove file " << stat.getFileURL() << ": " << +rc);
- }
- }
-- osl::FileBase::RC rc = osl::Directory::remove(url);
-+ if (dir.isOpen()) {
-+ rc = dir.close();
-+ SAL_WARN_IF(
-+ rc != osl::FileBase::E_None, "desktop",
-+ "cannot close directory " << url << ": " << +rc);
-+ }
-+ rc = osl::Directory::remove(url);
- SAL_WARN_IF(
- rc != osl::FileBase::E_None, "desktop",
- "cannot remove directory " << url << ": " << +rc);
-- // at least on Windows XP removing some existing directories fails with
-- // osl::FileBase::E_ACCESS because they are read-only; but keeping those
-- // directories around should be harmless once they are empty
- }
-
--// Remove any existing UserInstallation's user/extensions/bundled cache
--// remaining from old installations. Apparently due to the old
--// share/prereg/bundled mechanism (disabled since
--// 5c47e5f63a79a9e72ec4a100786b1bbf65137ed4 "fdo#51252 Disable copying
--// share/prereg/bundled to avoid startup crashes"), that cache could contain
--// corrupted information (like a UNO component registered twice, which got
--// changed from active to passive registration in one LO version, but the
--// version of the corresponding bundled extension only incremented in a later LO
--// version). At least in theory, this function could be removed again once no
--// UserInstallation can be poisoned by that old share/prereg/bundled mechanism
--// any more. (But then Desktop::SynchronizeExtensionRepositories might need to
--// be revisited, see 2d2b19dea1ab401b1b4971ff5b12b87bb11fd666 "Force
--// ExtensionManager resync when the implementation changes" which effectively
--// got reverted again now. Now, a mismatch between a UserInstallation's
--// user/extensions/bundled and an installation's share/extensions will always be
--// detected here and lead to a removal of user/extensions/bundled, so that
--// Desktop::SynchronizeExtensionRepositories will then definitely resync
--// share/extensions.)
-+// Remove any existing UserInstallation's extensions cache data remaining from
-+// old installations. This addresses at least two problems:
-+//
-+// For one, apparently due to the old share/prereg/bundled mechanism (disabled
-+// since 5c47e5f63a79a9e72ec4a100786b1bbf65137ed4 "fdo#51252 Disable copying
-+// share/prereg/bundled to avoid startup crashes"), the user/extensions/bundled
-+// cache could contain corrupted information (like a UNO component registered
-+// twice, which got changed from active to passive registration in one LO
-+// version, but the version of the corresponding bundled extension only
-+// incremented in a later LO version).
-+//
-+// For another, UserInstallations have been seen in the wild where no extensions
-+// were installed per-user (any longer), but user/uno_packages/cache/registry/
-+// com.sun.star.comp.deployment.component.PackageRegistryBackend/*.rdb files
-+// contained data nevertheless.
-+//
-+// When a LO upgrade is detected (i.e., no/ user/extensions/bundled/buildid or
-+// one containing an old build ID), then user/extensions/bundled,
-+// user/extensions/shared, and user/uno_packages/cache/registry/
-+// com.sun.star.comp.deployment.component.PackageRegistryBackend/unorc are
-+// removed. That should prevent any problems starting the service manager due
-+// to old junk. Later on in Desktop::SynchronizeExtensionRepositories, the
-+// removed cache data is recreated.
-+//
- // As a special case, if you create a UserInstallation with LO >= 3.6.1, then
- // run an old LO <= 3.5.x using share/prereg/bundled on the same
- // UserInstallation (so that it partially overwrites user/extensions/bundled,
-@@ -230,33 +234,50 @@ void removeTree(OUString const & url) {
- // <= 3.5.x messed with user/extensions/bundled in the meantime, then it would
- // have rewritten the unorc (dropping the token), and LO >= 3.6.1 can detect
- // that.
--void refreshBundledExtensionsDir() {
-+//
-+// Multiple instances of soffice.bin can execute this code in parallel for a
-+// single UserInstallation, as it is called before OfficeIPCThread is set up.
-+// Therefore, any errors here only lead to SAL_WARNs.
-+//
-+// At least in theory, this function could be removed again once no
-+// UserInstallation can be poisoned by old junk any more.
-+bool cleanExtensionCache() {
- OUString buildId(
- "${$BRAND_BASE_DIR/program/" SAL_CONFIGFILE("version") ":buildid}");
- rtl::Bootstrap::expandMacros(buildId); //TODO: detect failure
-- OUString dir("$BUNDLED_EXTENSIONS_USER");
-- rtl::Bootstrap::expandMacros(dir); //TODO: detect failure
-- OUString url(dir + "/buildid");
-- OUString nonPrereg(
-- "${$BUNDLED_EXTENSIONS_USER/registry/"
-- "com.sun.star.comp.deployment.component.PackageRegistryBackend/unorc:"
-- "LIBO_NON_PREREG_BUNDLED_EXTENSIONS}");
-- rtl::Bootstrap::expandMacros(nonPrereg);
-- if (nonPrereg == "TRUE") {
-- osl::File f(url);
-- switch (f.open(osl_File_OpenFlag_Read)) {
-+ OUString extDir(
-+ "${$BRAND_BASE_DIR/program/" SAL_CONFIGFILE("bootstrap")
-+ ":UserInstallation}/user/extensions");
-+ rtl::Bootstrap::expandMacros(extDir); //TODO: detect failure
-+ OUString bundledDir = extDir + "/bundled";
-+ OUString buildIdFile(bundledDir + "/buildid");
-+ OUString bundledRcFile(
-+ "$BUNDLED_EXTENSIONS_USER/registry/"
-+ "com.sun.star.comp.deployment.component.PackageRegistryBackend/unorc");
-+ rtl::Bootstrap::expandMacros(bundledRcFile); //TODO: detect failure
-+ rtl::Bootstrap bundledRc(bundledRcFile);
-+ OUString nonPrereg;
-+ if (bundledRc.getHandle() == 0
-+ || (bundledRc.getFrom("LIBO_NON_PREREG_BUNDLED_EXTENSIONS", nonPrereg)
-+ && nonPrereg == "TRUE"))
-+ {
-+ osl::File f(buildIdFile);
-+ osl::FileBase::RC rc = f.open(osl_File_OpenFlag_Read);
-+ switch (rc) {
- case osl::FileBase::E_None:
- {
- rtl::ByteSequence s1;
-- osl::FileBase::RC rc = f.readLine(s1);
-- if (f.close() != osl::FileBase::E_None) {
-- SAL_WARN(
-- "desktop", "cannot close " + url + " after reading");
-- }
-+ rc = f.readLine(s1);
-+ osl::FileBase::RC rc2 = f.close();
-+ SAL_WARN_IF(
-+ rc2 != osl::FileBase::E_None, "desktop",
-+ "cannot close " << buildIdFile << " after reading: "
-+ << +rc2);
- if (rc != osl::FileBase::E_None) {
-- throw css::uno::RuntimeException(
-- "cannot read from " + url,
-- css::uno::Reference< css::uno::XInterface >());
-+ SAL_WARN(
-+ "desktop",
-+ "cannot read from " << buildIdFile << ": " << +rc);
-+ break;
- }
- OUString s2(
- reinterpret_cast< char const * >(s1.getConstArray()),
-@@ -264,53 +285,56 @@ void refreshBundledExtensionsDir() {
- // using ISO 8859-1 avoids any and all conversion errors;
- // the content should only be a subset of ASCII, anyway
- if (s2 == buildId) {
-- return;
-+ return false;
- }
- break;
- }
- case osl::FileBase::E_NOENT:
- break;
- default:
-- throw css::uno::RuntimeException(
-- "cannot open " + url + " for reading",
-- css::uno::Reference< css::uno::XInterface >());
-+ SAL_WARN(
-+ "desktop",
-+ "cannot open " << buildIdFile << " for reading: " << +rc);
-+ break;
- }
- }
-- removeTree(dir);
-- switch (osl::Directory::createPath(dir)) {
-- case osl::FileBase::E_None:
-- case osl::FileBase::E_EXIST:
-- break;
-- default:
-- throw css::uno::RuntimeException(
-- "cannot create path " + dir,
-- css::uno::Reference< css::uno::XInterface >());
-- }
-- osl::File f(url);
-- if (f.open(osl_File_OpenFlag_Write | osl_File_OpenFlag_Create) !=
-- osl::FileBase::E_None)
-- {
-- throw css::uno::RuntimeException(
-- "cannot open " + url + " for writing",
-- css::uno::Reference< css::uno::XInterface >());
-+ removeTree(extDir);
-+ OUString userRcFile(
-+ "$UNO_USER_PACKAGES_CACHE/registry/"
-+ "com.sun.star.comp.deployment.component.PackageRegistryBackend/unorc");
-+ rtl::Bootstrap::expandMacros(userRcFile); //TODO: detect failure
-+ osl::FileBase::RC rc = osl::File::remove(userRcFile);
-+ SAL_WARN_IF(
-+ rc != osl::FileBase::E_None && rc != osl::FileBase::E_NOENT, "desktop",
-+ "cannot remove file " << userRcFile << ": " << +rc);
-+ rc = osl::Directory::createPath(bundledDir);
-+ SAL_WARN_IF(
-+ rc != osl::FileBase::E_None && rc != osl::FileBase::E_EXIST, "desktop",
-+ "cannot create path " << bundledDir << ": " << +rc);
-+ osl::File f(buildIdFile);
-+ rc = f.open(osl_File_OpenFlag_Write | osl_File_OpenFlag_Create);
-+ if (rc != osl::FileBase::E_None) {
-+ SAL_WARN(
-+ "desktop",
-+ "cannot open " << buildIdFile << " for writing: " << +rc);
-+ return true;
- }
- rtl::OString buf(OUStringToOString(buildId, RTL_TEXTENCODING_UTF8));
- // using UTF-8 avoids almost all conversion errors (and buildid
- // containing single surrogate halves should never happen, anyway); the
- // content should only be a subset of ASCII, anyway
-- sal_uInt64 n;
-- if (f.write(buf.getStr(), buf.getLength(), n) != osl::FileBase::E_None
-- || n != static_cast< sal_uInt32 >(buf.getLength()))
-- {
-- throw css::uno::RuntimeException(
-- "cannot write to " + url,
-- css::uno::Reference< css::uno::XInterface >());
-- }
-- if (f.close() != osl::FileBase::E_None) {
-- throw css::uno::RuntimeException(
-- "cannot close " + url + " after writing",
-- css::uno::Reference< css::uno::XInterface >());
-- }
-+ sal_uInt64 n = 0;
-+ rc = f.write(buf.getStr(), buf.getLength(), n);
-+ SAL_WARN_IF(
-+ (rc != osl::FileBase::E_None
-+ || n != static_cast< sal_uInt32 >(buf.getLength())),
-+ "desktop",
-+ "cannot write to " << buildIdFile << ": " << +rc << ", " << n);
-+ rc = f.close();
-+ SAL_WARN_IF(
-+ rc != osl::FileBase::E_None, "desktop",
-+ "cannot close " << buildIdFile << " after writing: " << +rc);
-+ return true;
- }
-
- }
-@@ -538,7 +562,8 @@ rtl::OUString ReplaceStringHookProc( const rtl::OUString& rStr )
- }
-
- Desktop::Desktop()
--: m_bServicesRegistered( false )
-+: m_bCleanedExtensionCache( false )
-+, m_bServicesRegistered( false )
- , m_aBootstrapError( BE_OK )
- {
- RTL_LOGFILE_TRACE( "desktop (cd100003) ::Desktop::Desktop" );
-@@ -553,7 +578,7 @@ void Desktop::Init()
- RTL_LOGFILE_CONTEXT( aLog, "desktop (cd100003) ::Desktop::Init" );
- SetBootstrapStatus(BS_OK);
-
-- refreshBundledExtensionsDir();
-+ m_bCleanedExtensionCache = cleanExtensionCache();
-
- // We need to have service factory before going further, but see fdo#37195.
- // Doing this will mmap common.rdb, making it not overwritable on windows,
-diff --git a/desktop/source/app/check_ext_deps.cxx b/desktop/source/app/check_ext_deps.cxx
-index dd01d9b..a6221a9 100644
---- a/desktop/source/app/check_ext_deps.cxx
-+++ b/desktop/source/app/check_ext_deps.cxx
-@@ -51,6 +51,7 @@
- #include "com/sun/star/deployment/ExtensionManager.hpp"
- #include "com/sun/star/deployment/LicenseException.hpp"
- #include "com/sun/star/deployment/ui/LicenseDialog.hpp"
-+#include <com/sun/star/task/OfficeRestartManager.hpp>
- #include <com/sun/star/task/XJob.hpp>
- #include <com/sun/star/task/XJobExecutor.hpp>
- #include <com/sun/star/task/XInteractionApprove.hpp>
-@@ -77,12 +78,15 @@ class SilentCommandEnv
- task::XInteractionHandler,
- ucb::XProgressHandler >
- {
-+ uno::Reference<uno::XComponentContext> mxContext;
- Desktop *mpDesktop;
- sal_Int32 mnLevel;
- sal_Int32 mnProgress;
-
- public:
-- SilentCommandEnv( Desktop* pDesktop );
-+ SilentCommandEnv(
-+ uno::Reference<uno::XComponentContext> const & xContext,
-+ Desktop* pDesktop );
- virtual ~SilentCommandEnv();
-
- // XCommandEnvironment
-@@ -105,12 +109,14 @@ public:
- };
-
- //-----------------------------------------------------------------------------
--SilentCommandEnv::SilentCommandEnv( Desktop* pDesktop )
--{
-- mpDesktop = pDesktop;
-- mnLevel = 0;
-- mnProgress = 25;
--}
-+SilentCommandEnv::SilentCommandEnv(
-+ uno::Reference<uno::XComponentContext> const & xContext,
-+ Desktop* pDesktop ):
-+ mxContext( xContext ),
-+ mpDesktop( pDesktop ),
-+ mnLevel( 0 ),
-+ mnProgress( 25 )
-+{}
-
- //-----------------------------------------------------------------------------
- SilentCommandEnv::~SilentCommandEnv()
-@@ -144,10 +150,9 @@ void SilentCommandEnv::handle( Reference< task::XInteractionRequest> const & xRe
-
- if ( request >>= licExc )
- {
-- uno::Reference< uno::XComponentContext > xContext = comphelper_getProcessComponentContext();
- uno::Reference< ui::dialogs::XExecutableDialog > xDialog(
- deployment::ui::LicenseDialog::create(
-- xContext, VCLUnoHelper::GetInterface( NULL ),
-+ mxContext, VCLUnoHelper::GetInterface( NULL ),
- licExc.ExtensionName, licExc.Text ) );
- sal_Int16 res = xDialog->execute();
- if ( res == ui::dialogs::ExecutableDialogResults::CANCEL )
-@@ -416,7 +421,20 @@ sal_Bool Desktop::CheckExtensionDependencies()
- void Desktop::SynchronizeExtensionRepositories()
- {
- RTL_LOGFILE_CONTEXT(aLog,"desktop (jl) ::Desktop::SynchronizeExtensionRepositories");
-- dp_misc::syncRepositories( new SilentCommandEnv( this ) );
-+ uno::Reference< uno::XComponentContext > context(
-+ comphelper_getProcessComponentContext());
-+ uno::Reference< ucb::XCommandEnvironment > silent(
-+ new SilentCommandEnv(context, this));
-+ if (m_bCleanedExtensionCache) {
-+ deployment::ExtensionManager::get(context)->reinstallDeployedExtensions(
-+ true, "user", Reference<task::XAbortChannel>(), silent);
-+ task::OfficeRestartManager::get(context)->requestRestart(
-+ silent->getInteractionHandler());
-+ } else {
-+ // reinstallDeployedExtensions above already calls syncRepositories
-+ // internally:
-+ dp_misc::syncRepositories(m_bCleanedExtensionCache, silent);
-+ }
- }
-
- /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
-diff --git a/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx b/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx
-index 29ded17..7795e309 100644
---- a/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx
-+++ b/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx
-@@ -1124,7 +1124,7 @@ void ExtensionCmdQueue::acceptLicense( const uno::Reference< deployment::XPackag
-
- void ExtensionCmdQueue::syncRepositories( const uno::Reference< uno::XComponentContext > &xContext )
- {
-- dp_misc::syncRepositories( new ProgressCmdEnv( xContext, NULL, OUSTR("Extension Manager") ) );
-+ dp_misc::syncRepositories( false, new ProgressCmdEnv( xContext, NULL, OUSTR("Extension Manager") ) );
- }
-
- void ExtensionCmdQueue::stop()
-diff --git a/desktop/source/deployment/inc/dp_misc.h b/desktop/source/deployment/inc/dp_misc.h
-index 29fd140..06e67aa 100644
---- a/desktop/source/deployment/inc/dp_misc.h
-+++ b/desktop/source/deployment/inc/dp_misc.h
-@@ -154,8 +154,10 @@ void TRACE(::rtl::OUString const & sText);
- recently added or removed.
- */
- DESKTOP_DEPLOYMENTMISC_DLLPUBLIC
--void syncRepositories(::com::sun::star::uno::Reference<
-- ::com::sun::star::ucb::XCommandEnvironment> const & xCmdEnv);
-+void syncRepositories(
-+ bool force,
-+ ::com::sun::star::uno::Reference<
-+ ::com::sun::star::ucb::XCommandEnvironment> const & xCmdEnv);
-
- }
-
-diff --git a/desktop/source/deployment/manager/dp_extensionmanager.cxx b/desktop/source/deployment/manager/dp_extensionmanager.cxx
-index 68403f1..b3c21b4 100644
---- a/desktop/source/deployment/manager/dp_extensionmanager.cxx
-+++ b/desktop/source/deployment/manager/dp_extensionmanager.cxx
-@@ -1205,9 +1205,10 @@ uno::Sequence< uno::Sequence<Reference<deploy::XPackage> > >
- }
- }
-
--//only to be called from unopkg!!!
-+// Only to be called from unopkg or soffice bootstrap (with force=true in the
-+// latter case):
- void ExtensionManager::reinstallDeployedExtensions(
-- OUString const & repository,
-+ sal_Bool force, OUString const & repository,
- Reference<task::XAbortChannel> const & xAbortChannel,
- Reference<ucb::XCommandEnvironment> const & xCmdEnv )
- throw (deploy::DeploymentException,
-@@ -1220,10 +1221,11 @@ void ExtensionManager::reinstallDeployedExtensions(
- xPackageManager = getPackageManager(repository);
-
- ::osl::MutexGuard guard(getMutex());
-- xPackageManager->reinstallDeployedPackages(xAbortChannel, xCmdEnv);
-+ xPackageManager->reinstallDeployedPackages(
-+ force, xAbortChannel, xCmdEnv);
- //We must sync here, otherwise we will get exceptions when extensions
- //are removed.
-- dp_misc::syncRepositories(xCmdEnv);
-+ dp_misc::syncRepositories(force, xCmdEnv);
- const uno::Sequence< Reference<deploy::XPackage> > extensions(
- xPackageManager->getDeployedPackages(xAbortChannel, xCmdEnv));
-
-diff --git a/desktop/source/deployment/manager/dp_extensionmanager.hxx b/desktop/source/deployment/manager/dp_extensionmanager.hxx
-index 22e2d41..ec1edbc 100644
---- a/desktop/source/deployment/manager/dp_extensionmanager.hxx
-+++ b/desktop/source/deployment/manager/dp_extensionmanager.hxx
-@@ -182,7 +182,7 @@ public:
- css::uno::RuntimeException);
-
- virtual void SAL_CALL reinstallDeployedExtensions(
-- ::rtl::OUString const & repository,
-+ sal_Bool force, ::rtl::OUString const & repository,
- css::uno::Reference< css::task::XAbortChannel> const & xAbortChannel,
- css::uno::Reference< css::ucb::XCommandEnvironment> const & xCmdEnv )
- throw (
-diff --git a/desktop/source/deployment/manager/dp_manager.cxx b/desktop/source/deployment/manager/dp_manager.cxx
-index 8a08320c..8e3d109 100644
---- a/desktop/source/deployment/manager/dp_manager.cxx
-+++ b/desktop/source/deployment/manager/dp_manager.cxx
-@@ -1164,14 +1164,14 @@ PackageManagerImpl::getDeployedPackages(
- //ToDo: the function must not call registerPackage, do this in
- //XExtensionManager.reinstallDeployedExtensions
- void PackageManagerImpl::reinstallDeployedPackages(
-- Reference<task::XAbortChannel> const & /*xAbortChannel*/,
-+ sal_Bool force, Reference<task::XAbortChannel> const & /*xAbortChannel*/,
- Reference<XCommandEnvironment> const & xCmdEnv_ )
- throw (deployment::DeploymentException,
- CommandFailedException, CommandAbortedException,
- lang::IllegalArgumentException, RuntimeException)
- {
- check();
-- if (office_is_running())
-+ if (!force && office_is_running())
- throw RuntimeException(
- OUSTR("You must close any running Office process before "
- "reinstalling packages!"), static_cast<OWeakObject *>(this) );
-diff --git a/desktop/source/deployment/manager/dp_manager.h b/desktop/source/deployment/manager/dp_manager.h
-index 3b335d7..3c7f8d9 100644
---- a/desktop/source/deployment/manager/dp_manager.h
-+++ b/desktop/source/deployment/manager/dp_manager.h
-@@ -236,6 +236,7 @@ public:
- css::uno::RuntimeException);
-
- virtual void SAL_CALL reinstallDeployedPackages(
-+ sal_Bool force,
- css::uno::Reference<css::task::XAbortChannel> const & xAbortChannel,
- css::uno::Reference<css::ucb::XCommandEnvironment> const & xCmdEnv )
- throw (css::deployment::DeploymentException,
-diff --git a/desktop/source/deployment/misc/dp_misc.cxx b/desktop/source/deployment/misc/dp_misc.cxx
-index b225db6..9ed579f 100644
---- a/desktop/source/deployment/misc/dp_misc.cxx
-+++ b/desktop/source/deployment/misc/dp_misc.cxx
-@@ -591,7 +591,7 @@ void TRACE(::rtl::OString const & sText)
- }
-
- void syncRepositories(
-- Reference<ucb::XCommandEnvironment> const & xCmdEnv)
-+ bool force, Reference<ucb::XCommandEnvironment> const & xCmdEnv)
- {
- OUString sDisable;
- ::rtl::Bootstrap::get( OUSTR( "DISABLE_EXTENSION_SYNCHRONIZATION" ), sDisable, OUString() );
-@@ -602,7 +602,8 @@ void syncRepositories(
- //synchronize shared before bundled otherewise there are
- //more revoke and registration calls.
- sal_Bool bModified = false;
-- if (needToSyncRepostitory(OUString(RTL_CONSTASCII_USTRINGPARAM("shared")))
-+ if (force
-+ || needToSyncRepostitory(OUString(RTL_CONSTASCII_USTRINGPARAM("shared")))
- || needToSyncRepostitory(OUString(RTL_CONSTASCII_USTRINGPARAM("bundled"))))
- {
- xExtensionManager =
-diff --git a/desktop/source/pkgchk/unopkg/unopkg_app.cxx b/desktop/source/pkgchk/unopkg/unopkg_app.cxx
-index 43faed5..ef16ea1 100644
---- a/desktop/source/pkgchk/unopkg/unopkg_app.cxx
-+++ b/desktop/source/pkgchk/unopkg/unopkg_app.cxx
-@@ -392,7 +392,7 @@ extern "C" DESKTOP_DLLPUBLIC int unopkg_main()
- //synching is done in XExtensionManager.reinstall
- if (!subcmd_gui && ! subCommand.equals(OUSTR("reinstall"))
- && ! dp_misc::office_is_running())
-- dp_misc::syncRepositories(xCmdEnv);
-+ dp_misc::syncRepositories(false, xCmdEnv);
-
- if ( subcmd_add || subCommand == "remove" )
- {
-@@ -436,7 +436,7 @@ extern "C" DESKTOP_DLLPUBLIC int unopkg_main()
- RTL_CONSTASCII_STRINGPARAM("reinstall") ))
- {
- xExtensionManager->reinstallDeployedExtensions(
-- repository, Reference<task::XAbortChannel>(), xCmdEnv);
-+ false, repository, Reference<task::XAbortChannel>(), xCmdEnv);
- }
- else if ( subCommand == "list" )
- {
-diff --git a/offapi/com/sun/star/deployment/XExtensionManager.idl b/offapi/com/sun/star/deployment/XExtensionManager.idl
-index b68ab20..2912e45 100644
---- a/offapi/com/sun/star/deployment/XExtensionManager.idl
-+++ b/offapi/com/sun/star/deployment/XExtensionManager.idl
-@@ -260,6 +260,9 @@ interface XExtensionManager
- <p>
- Please use this in case of suspected cache inconsistencies only.
- </p>
-+ @param force
-+ set to true when called during soffice bootstrap after cleaning
-+ old extension cache
- @param repositroy
- the name of the repository
- @param xAbortChannel
-@@ -268,6 +271,7 @@ interface XExtensionManager
- command environment for error and progress handling
- */
- void reinstallDeployedExtensions(
-+ [in] boolean force,
- [in] string repository,
- [in] com::sun::star::task::XAbortChannel xAbortChannel,
- [in] com::sun::star::ucb::XCommandEnvironment xCmdEnv )
-diff --git a/offapi/com/sun/star/deployment/XPackageManager.idl b/offapi/com/sun/star/deployment/XPackageManager.idl
-index 12e7e0e..39ff04a 100644
---- a/offapi/com/sun/star/deployment/XPackageManager.idl
-+++ b/offapi/com/sun/star/deployment/XPackageManager.idl
-@@ -225,12 +225,16 @@ interface XPackageManager
- Please use this in case of suspected cache inconsistencies only.
- </p>
-
-+ @param force
-+ set to true when called during soffice bootstrap after cleaning
-+ old extension cache
- @param xAbortChannel
- abort channel to asynchronously abort the adding process
- @param xCmdEnv
- command environment for error and progress handling
- */
- void reinstallDeployedPackages(
-+ [in] boolean force,
- [in] com::sun::star::task::XAbortChannel xAbortChannel,
- [in] com::sun::star::ucb::XCommandEnvironment xCmdEnv )
- raises (DeploymentException,
---
-cgit v0.9.0.2-2-gbebe