summaryrefslogtreecommitdiff
path: root/staging/libreoffice
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-05-21 00:02:00 +0000
committerroot <root@rshg054.dnsready.net>2012-05-21 00:02:00 +0000
commitd9687afd09db8b04c5ae90edf22df599532256c6 (patch)
tree80010661172356246dbc1eb904f689876a5fa521 /staging/libreoffice
parentaad2fba0fc475162b566f1577d8e7a020cd9e80d (diff)
Mon May 21 00:02:00 UTC 2012
Diffstat (limited to 'staging/libreoffice')
-rw-r--r--staging/libreoffice/PKGBUILD56
-rw-r--r--staging/libreoffice/fix_broken_hebrew_wordwrapping.diff360
-rw-r--r--staging/libreoffice/libreoffice-base.install11
-rw-r--r--staging/libreoffice/libreoffice-calc.install11
-rw-r--r--staging/libreoffice/libreoffice-common.install47
-rw-r--r--staging/libreoffice/libreoffice-draw.install11
-rw-r--r--staging/libreoffice/libreoffice-impress.install11
-rw-r--r--staging/libreoffice/libreoffice-writer.install11
8 files changed, 513 insertions, 5 deletions
diff --git a/staging/libreoffice/PKGBUILD b/staging/libreoffice/PKGBUILD
index bee345b92..ec862da00 100644
--- a/staging/libreoffice/PKGBUILD
+++ b/staging/libreoffice/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 159004 2012-05-14 18:20:56Z andyrtr $
+# $Id: PKGBUILD 159255 2012-05-19 19:04:53Z andyrtr $
# Maintainer: AndyRTR <andyrtr@archlinux.org>
pkgbase="libreoffice"
@@ -18,10 +18,13 @@ pkgname=('libreoffice-common'
'libreoffice-extension-pdfimport'
'libreoffice-extension-presenter-screen'
'libreoffice-extension-presentation-minimizer'
- 'libreoffice-extension-report-builder')
+ 'libreoffice-extension-report-builder'
+ 'libreoffice-scripting-beanshell'
+ 'libreoffice-scripting-javascript'
+ 'libreoffice-extension-scripting-python') # svn up -r 142692 (last one with all extensions built
_LOver=3.5.3.2
pkgver=3.5.3
-pkgrel=2
+pkgrel=3
arch=('i686' 'x86_64')
license=('LGPL3')
url="http://www.libreoffice.org/"
@@ -76,6 +79,7 @@ source=(${_mirror}/${pkgbase}-{core,help,translations}-${_LOver}.tar.xz
gmake_install.diff::http://cgit.freedesktop.org/libreoffice/core/patch/?id=1048d8fa4abd3e55a45dfb6884db808da1d72c9e
smp_buildfix.diff::http://cgit.freedesktop.org/libreoffice/core/patch/?id=cf23f57ae6bb7af689a45e0a850c3c2f67a8f810
poppler_buildfix.diff::http://cgit.freedesktop.org/libreoffice/core/patch/?id=ac68934592ec7d838cf5c22744be8d97aa4a1a47
+ fix_broken_hebrew_wordwrapping.diff
buildfix_icu49.diff
libreoffice-common.sh libreoffice-common.csh)
noextract=(2fa6028324347860e684e75310818d43-libvisio-0.0.16.tar.bz2
@@ -140,6 +144,7 @@ md5sums=('d22cd79e7463ac4caf0a4b47d78a82ac'
'60ce5dc9bd098f95c2e621a930c98dd9'
'661a52a02a31b3afbe4b3b3146061afd'
'72ba8d57cefdc25a6f1bc845edfd4d78'
+ '025d9b17d9eb90dc282c5c1289a666aa'
'9734ea20c9f67e1b6e1c5a1247fbd3ff'
'f0e72d0e1bc93a50a3aa9d31350b156c'
'867c682b45f477f916786e00c45d7ab7')
@@ -166,8 +171,10 @@ build() {
# one late fix to solve make distro-pack-install issue
patch -Np1 -i ${srcdir}/gmake_install.diff
patch -Np1 -i ${srcdir}/smp_buildfix.diff
- patch -Np0 -i ${srcdir}/buildfix_icu49.diff
+ #patch -Np0 -i ${srcdir}/buildfix_icu49.diff
patch -Np1 -i ${srcdir}/poppler_buildfix.diff
+ # https://bugs.archlinux.org/task/29854 based on 3.6/master patch http://cgit.freedesktop.org/libreoffice/core/patch/?id=20c24114143d6d38774b56a142fd4ae05094308e
+ patch -Np1 -i ${srcdir}/fix_broken_hebrew_wordwrapping.diff
# unset C(XX)FLAGS
# http://www.openoffice.org/issues/show_bug.cgi?id=103205
@@ -213,6 +220,8 @@ build() {
--enable-mergelibs \
--enable-opengl \
--enable-odk\
+ --enable-ext-scripting-beanshell \
+ --enable-ext-scripting-javascript \
--disable-ext-mysql-connector \
--with-system-mysql \
--enable-librsvg=system \
@@ -284,7 +293,7 @@ build() {
package_libreoffice-common() {
pkgdesc="common files for LibreOffice - a productivity suite that is compatible with other major office suites"
- install=${pkgbase}.install
+ 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')
@@ -348,6 +357,7 @@ package_libreoffice-common() {
package_libreoffice-base() {
pkgdesc="GUI Spreadsheet Applicationdatabase 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=()
@@ -399,6 +409,7 @@ package_libreoffice-postgresql-connector() {
package_libreoffice-calc() {
pkgdesc="Spreadsheet application for LibreOffice."
+ install=libreoffice-calc.install
depends=('libreoffice-common' 'lpsolve' )
optdepends=()
backup=()
@@ -421,6 +432,7 @@ package_libreoffice-calc() {
package_libreoffice-draw() {
pkgdesc="Drawing Application for LibreOffice."
+ install=libreoffice-draw.install
depends=('libreoffice-common')
optdepends=()
backup=()
@@ -464,6 +476,7 @@ package_libreoffice-gnome() {
package_libreoffice-impress() {
pkgdesc="Presentation Application for LibreOffice."
+ install=libreoffice-impress.install
depends=('libreoffice-common')
optdepends=('mesa: for the OGLTrans extension')
backup=()
@@ -578,6 +591,7 @@ package_libreoffice-sdk-doc() {
package_libreoffice-writer() {
pkgdesc="Word Processor Applicationfor 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=()
@@ -659,3 +673,35 @@ package_libreoffice-extension-report-builder() {
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}/fakeinstall/usr/lib/libreoffice/program/classes/{js.jar,ScriptProviderForJavaScript.jar} ${pkgdir}/usr/lib/libreoffice/program/classes/
+ mv ${srcdir}/fakeinstall/usr/lib/libreoffice/program/services/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
+}
diff --git a/staging/libreoffice/fix_broken_hebrew_wordwrapping.diff b/staging/libreoffice/fix_broken_hebrew_wordwrapping.diff
new file mode 100644
index 000000000..ba4850c77
--- /dev/null
+++ b/staging/libreoffice/fix_broken_hebrew_wordwrapping.diff
@@ -0,0 +1,360 @@
+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/staging/libreoffice/libreoffice-base.install b/staging/libreoffice/libreoffice-base.install
new file mode 100644
index 000000000..80312d4a6
--- /dev/null
+++ b/staging/libreoffice/libreoffice-base.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ update-desktop-database -q
+}
+
+post_remove() {
+ update-desktop-database -q
+}
diff --git a/staging/libreoffice/libreoffice-calc.install b/staging/libreoffice/libreoffice-calc.install
new file mode 100644
index 000000000..80312d4a6
--- /dev/null
+++ b/staging/libreoffice/libreoffice-calc.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ update-desktop-database -q
+}
+
+post_remove() {
+ update-desktop-database -q
+}
diff --git a/staging/libreoffice/libreoffice-common.install b/staging/libreoffice/libreoffice-common.install
new file mode 100644
index 000000000..e66b66f3d
--- /dev/null
+++ b/staging/libreoffice/libreoffice-common.install
@@ -0,0 +1,47 @@
+post_install() {
+
+xdg-icon-resource forceupdate --theme hicolor
+update-desktop-database -q
+update-mime-database usr/share/mime > /dev/null 2>&1
+
+echo " * see https://wiki.archlinux.org/index.php/LibreOffice"
+echo "-------------------------------------------------------------------"
+echo "LibreOffice has been split into several packages:"
+echo "- libreoffice-common"
+echo "- libreoffice-{base,calc,draw,impress,math,writer} - frontend applications"
+echo "- libreoffice-{gnome,kde4} - desktop integration plugins"
+echo "- libreoffice-{sdk,sdk-doc} - add-on and doc for programming using"
+echo " the LibreOffice APIs and for creating"
+echo " extensions (UNO components)."
+echo "-------------------------------------------------------------------"
+echo " * you need to install at least one libreoffice-langpack"
+echo " * you may want to pacman -Ss libreoffice-extensions"
+echo " to see what additional extensions are prepared to install"
+echo " * it's recommended to install {hunspell,mythes,hyphen}-xx pkg
+ for spell checking"
+echo " * make sure you have installed some ttf font (ttf-dejavu recommended)"
+}
+
+post_upgrade() {
+# post_install $1
+xdg-icon-resource forceupdate --theme hicolor
+update-desktop-database -q
+update-mime-database usr/share/mime > /dev/null 2>&1
+ if [ "`vercmp $2 3.4.2rc1`" -lt 0 ]; then
+ # important upgrade notice
+ echo "LibreOffice has been split into several packages:"
+ echo "- libreoffice-common"
+ echo "- libreoffice-{base,calc,draw,impress,math,writer} - frontend applications"
+ echo "- libreoffice-{gnome,kde4} - desktop integration plugins"
+ echo "- libreoffice-{sdk,sdk-doc} - add-on and doc for programming using"
+ echo " the LibreOffice APIs and for creating"
+ echo " extensions (UNO components)."
+ echo "Now you need to install at least one libreoffice-langpack!"
+ fi
+}
+
+post_remove() {
+update-desktop-database -q
+xdg-icon-resource forceupdate --theme hicolor
+update-mime-database usr/share/mime > /dev/null 2>&1
+}
diff --git a/staging/libreoffice/libreoffice-draw.install b/staging/libreoffice/libreoffice-draw.install
new file mode 100644
index 000000000..80312d4a6
--- /dev/null
+++ b/staging/libreoffice/libreoffice-draw.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ update-desktop-database -q
+}
+
+post_remove() {
+ update-desktop-database -q
+}
diff --git a/staging/libreoffice/libreoffice-impress.install b/staging/libreoffice/libreoffice-impress.install
new file mode 100644
index 000000000..80312d4a6
--- /dev/null
+++ b/staging/libreoffice/libreoffice-impress.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ update-desktop-database -q
+}
+
+post_remove() {
+ update-desktop-database -q
+}
diff --git a/staging/libreoffice/libreoffice-writer.install b/staging/libreoffice/libreoffice-writer.install
new file mode 100644
index 000000000..80312d4a6
--- /dev/null
+++ b/staging/libreoffice/libreoffice-writer.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ update-desktop-database -q
+}
+
+post_remove() {
+ update-desktop-database -q
+}