diff options
author | root <root@rshg054.dnsready.net> | 2012-06-26 00:01:48 +0000 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2012-06-26 00:01:48 +0000 |
commit | 9a6b691757346035549dbd12d1323301d04a6675 (patch) | |
tree | 5e06d2322b58a73254a0ca2c05d2083cb0209db2 /testing | |
parent | 3b99c42eb8ca744e86e4e17197b1bf10642c6785 (diff) |
Tue Jun 26 00:01:48 UTC 2012
Diffstat (limited to 'testing')
43 files changed, 3431 insertions, 22 deletions
diff --git a/testing/calligra/PKGBUILD b/testing/calligra/PKGBUILD new file mode 100644 index 000000000..4d285c763 --- /dev/null +++ b/testing/calligra/PKGBUILD @@ -0,0 +1,264 @@ +# $Id: PKGBUILD 162291 2012-06-24 19:24:34Z foutrelis $ +# Maintainer: Ronald van Haren <ronald.archlinux.org> +# Maintainer: Andrea Scarpino <andrea@archlinux.org> + +pkgbase=calligra +pkgname=('calligra-filters' + 'calligra-interfaces' + 'calligra-libs' + 'calligra-plugins' + 'calligra-pics' + 'calligra-servicetypes' + 'calligra-templates' + 'calligra-tools' + 'calligra-karbon' + 'calligra-kexi' + 'calligra-kounavail' + 'calligra-plan' + 'calligra-stage' + 'calligra-krita' + 'calligra-sheets' + 'calligra-words' + 'calligra-handbook' + 'calligra-braindump' + 'calligra-flow') +pkgver=2.4.2 +pkgrel=2 +arch=('i686' 'x86_64') +url='http://www.calligra-suite.org/' +license=('FDL1.2' 'GPL2' 'LGPL') +makedepends=('cmake' 'automoc4' 'boost ' 'eigen2' + 'kdepimlibs' 'libpqxx' 'freetds' 'xbase' + 'kdegraphics-okular' 'gsl' 'kdeedu-marble' + 'libwpd' 'libwpg' 'pstoedit' 'glew' + 'fftw' 'opengtl' 'lcms2' 'libkdcraw' 'wv2') +groups=('calligra') +source=("http://download.kde.org/stable/${pkgbase}-${pkgver}/${pkgbase}-${pkgver}.tar.bz2") +md5sums=('31b0c44ad4ee27017580c7c2fc8e87a9') + +build() { + cd "${srcdir}" + mkdir build + cd build + cmake ../${pkgbase}-${pkgver} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DBUILD_active=OFF \ + -DBUILD_mobile=OFF \ + -DIHAVEPATCHEDQT=1 + make +} + +package_calligra-filters() { + pkgdesc="Filters for the Calligra office suite" + optdepends=('libwpg: Corel WordPerfect Graphics image importer') + conflicts=('koffice-filters') + replaces=('koffice-filters') + install=calligra-filters.install + + cd "${srcdir}"/build/filters + make DESTDIR="${pkgdir}" install +} + +package_calligra-interfaces() { + pkgdesc="Interfaces for the Calligra office suite" + depends=('calligra-libs') + conflicts=('koffice-interfaces') + replaces=('koffice-interfaces') + + cd "${srcdir}"/build/interfaces + make DESTDIR="${pkgdir}" install +} + +package_calligra-libs() { + pkgdesc="Libraries for the Calligra office suite" + depends=('kdepimlibs' 'lcms2' 'calligra-servicetypes') + conflicts=('koffice-libs') + replaces=('koffice-libs') + + cd "${srcdir}"/build/libs + make DESTDIR="${pkgdir}" install +} + +package_calligra-plugins() { + pkgdesc="Plugins for the Calligra office suite" + depends=('calligra-libs' 'calligra-filters') + optdepends=('kdeedu-marble: map shape for Calligra') + conflicts=('koffice-plugins' 'koffice-kchart') + replaces=('koffice-plugins' 'koffice-kchart' 'koffice-kformula') + + cd "${srcdir}"/build/plugins + make DESTDIR="${pkgdir}" install +} + +package_calligra-pics() { + pkgdesc="Icons for the Calligra office suite" + conflicts=('koffice-pics') + replaces=('koffice-pics') + install=calligra.install + + cd "${srcdir}"/build/pics + make DESTDIR="${pkgdir}" install +} + +package_calligra-servicetypes() { + pkgdesc="Servicetypes for the Calligra office suite" + conflicts=('koffice-servicetypes') + replaces=('koffice-servicetypes') + install=calligra.install + + cd "${srcdir}"/build/servicetypes + make DESTDIR="${pkgdir}" install +} + +package_calligra-templates() { + pkgdesc="Templates for the Calligra office suite" + conflicts=('koffice-templates') + replaces=('koffice-templates') + + cd "${srcdir}"/build/templates + make DESTDIR="${pkgdir}" install +} + +package_calligra-tools() { + pkgdesc="Tools for the Calligra office suite" + depends=('calligra-libs') + conflicts=('koffice-tools') + replaces=('koffice-tools') + install=calligra-tools.install + + cd "${srcdir}"/build/tools + make DESTDIR="${pkgdir}" install +} + +package_calligra-karbon() { + pkgdesc="Create scalable vector drawings" + depends=('calligra-libs' 'calligra-templates' 'kdebase-runtime') + optdepends=('calligra-filters: import/export filters' + 'calligra-tools: extra calligra tools') + conflicts=('koffice-karbon' 'koffice-karbon-doc' 'calligra-karbon-doc') + replaces=('koffice-karbon' 'koffice-karbon-doc' 'calligra-karbon-doc') + install=calligra-karbon.install + + cd "${srcdir}"/build/karbon + make DESTDIR="${pkgdir}" install +} + +package_calligra-kexi() { + pkgdesc="Develop desktop database applications" + depends=('calligra-libs' 'calligra-templates') + optdepends=('libmysqlclient: MySQL driver' + 'libpqxx: PostgreSQL driver' + 'freetds: Sybase & MS SQL driver' + 'xbase: XBase driver' + 'calligra-sheets: Spreadsheet-to-Kexi-table import plugin' + 'kdeedu-marble: map form widget' + 'calligra-plugins: extra calligra plugins') + conflicts=('koffice-kexi' 'koffice-kexi-doc' 'calligra-kexi-doc') + replaces=('koffice-kexi' 'koffice-kexi-doc' 'calligra-kexi-doc') + install=calligra-kexi.install + + cd "${srcdir}"/build/kexi + make DESTDIR="${pkgdir}" install +} + +package_calligra-kounavail() { + pkgdesc="Unavailable Calligra Document" + depends=('calligra-libs') + conflicts=('koffice-kounavail') + replaces=('koffice-kounavail') + + cd "${srcdir}"/build/kounavail + make DESTDIR="${pkgdir}" install +} + +package_calligra-plan() { + pkgdesc="Calligra Project Management Component" + depends=('calligra-words') + conflicts=('koffice-kplato' 'calligra-kplato') + replaces=('koffice-kplato' 'calligra-kplato') + install=calligra-plan.install + + cd "${srcdir}"/build/plan + make DESTDIR="${pkgdir}" install +} + +package_calligra-stage() { + pkgdesc="Write presentation documents" + depends=('calligra-libs' 'calligra-templates' 'kdebase-runtime') + optdepends=('calligra-plugins: extra calligra plugins') + conflicts=('koffice-kpresenter' 'koffice-kpresenter-doc' 'calligra-stage-doc') + replaces=('koffice-kpresenter' 'koffice-kpresenter-doc' 'calligra-stage-doc') + install=calligra-stage.install + + cd "${srcdir}"/build/stage + make DESTDIR="${pkgdir}" install +} + +package_calligra-krita() { + pkgdesc="Edit and paint images" + depends=('calligra-templates' 'calligra-plugins' 'kdebase-runtime' + 'qimageblitz' 'poppler-qt' 'opengtl' 'glew' 'libkdcraw' 'fftw') + conflicts=('koffice-krita' 'calligra-krita-doc') + replaces=('koffice-krita' 'calligra-krita-doc') + install=calligra-krita.install + + cd "${srcdir}"/build/krita + make DESTDIR="${pkgdir}" install +} + +package_calligra-sheets() { + pkgdesc="Write spreadsheet documents" + depends=('calligra-templates' 'calligra-libs' 'gsl' 'kdebase-runtime') + optdepends=('calligra-filters: import/export filters' + 'calligra-plugins: extra calligra plugins' + 'calligra-tools: extra calligra tools') + conflicts=('koffice-kspread' 'koffice-kspread-doc' 'calligra-tables-doc' 'calligra-tables') + replaces=('koffice-kspread' 'koffice-kspread-doc' 'calligra-tables-doc' 'calligra-tables') + install=calligra-sheets.install + + cd "${srcdir}"/build/sheets + make DESTDIR="${pkgdir}" install +} + +package_calligra-words() { + pkgdesc="Word Processor" + depends=('calligra-templates' 'calligra-pics' 'calligra-kounavail' + 'calligra-plugins' 'kdegraphics-okular') + optdepends=('calligra-tools: extra calligra tools') + conflicts=('koffice-kword') + replaces=('koffice-kword') + install=calligra-words.install + + cd "${srcdir}"/build/words + make DESTDIR="${pkgdir}" install +} + +package_calligra-handbook() { + pkgdesc="Documentation for Calligra" + conflicts=('koffice-handbook') + replaces=('koffice-handbook') + + cd "${srcdir}"/build/doc/calligra + make DESTDIR="${pkgdir}" install +} + +package_calligra-braindump() { + pkgdesc="Notes and idea gathering" + depends=('calligra-libs' 'kdebase-runtime') + install=calligra-braindump.install + + cd "${srcdir}"/build/braindump + make DESTDIR="${pkgdir}" install +} + +package_calligra-flow() { + pkgdesc="Flowchart & Diagram Editing" + depends=('calligra-libs' 'kdebase-runtime') + conflicts=('calligra-flow-doc') + replaces=('calligra-flow-doc') + install=calligra-flow.install + + cd "${srcdir}"/build/flow + make DESTDIR="${pkgdir}" install +} diff --git a/testing/calligra/calligra-braindump.install b/testing/calligra/calligra-braindump.install new file mode 100644 index 000000000..c2179f6e2 --- /dev/null +++ b/testing/calligra/calligra-braindump.install @@ -0,0 +1,12 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +}
\ No newline at end of file diff --git a/testing/calligra/calligra-filters.install b/testing/calligra/calligra-filters.install new file mode 100644 index 000000000..7c8a8bd2b --- /dev/null +++ b/testing/calligra/calligra-filters.install @@ -0,0 +1,11 @@ +post_install() { + update-mime-database usr/share/mime &> /dev/null +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/testing/calligra/calligra-flow.install b/testing/calligra/calligra-flow.install new file mode 100644 index 000000000..6c87527e2 --- /dev/null +++ b/testing/calligra/calligra-flow.install @@ -0,0 +1,12 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/testing/calligra/calligra-karbon.install b/testing/calligra/calligra-karbon.install new file mode 100644 index 000000000..c2179f6e2 --- /dev/null +++ b/testing/calligra/calligra-karbon.install @@ -0,0 +1,12 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +}
\ No newline at end of file diff --git a/testing/calligra/calligra-kexi.install b/testing/calligra/calligra-kexi.install new file mode 100644 index 000000000..b8c7ebf27 --- /dev/null +++ b/testing/calligra/calligra-kexi.install @@ -0,0 +1,11 @@ +post_install() { + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/testing/calligra/calligra-krita.install b/testing/calligra/calligra-krita.install new file mode 100644 index 000000000..33d234a02 --- /dev/null +++ b/testing/calligra/calligra-krita.install @@ -0,0 +1,13 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-mime-database usr/share/mime &> /dev/null + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +}
\ No newline at end of file diff --git a/testing/calligra/calligra-plan.install b/testing/calligra/calligra-plan.install new file mode 100644 index 000000000..c2179f6e2 --- /dev/null +++ b/testing/calligra/calligra-plan.install @@ -0,0 +1,12 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +}
\ No newline at end of file diff --git a/testing/calligra/calligra-sheets.install b/testing/calligra/calligra-sheets.install new file mode 100644 index 000000000..6c87527e2 --- /dev/null +++ b/testing/calligra/calligra-sheets.install @@ -0,0 +1,12 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/testing/calligra/calligra-stage.install b/testing/calligra/calligra-stage.install new file mode 100644 index 000000000..6c87527e2 --- /dev/null +++ b/testing/calligra/calligra-stage.install @@ -0,0 +1,12 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/testing/calligra/calligra-tools.install b/testing/calligra/calligra-tools.install new file mode 100644 index 000000000..6c87527e2 --- /dev/null +++ b/testing/calligra/calligra-tools.install @@ -0,0 +1,12 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/testing/calligra/calligra-words.install b/testing/calligra/calligra-words.install new file mode 100644 index 000000000..6c87527e2 --- /dev/null +++ b/testing/calligra/calligra-words.install @@ -0,0 +1,12 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/testing/calligra/calligra.install b/testing/calligra/calligra.install new file mode 100644 index 000000000..e70c054ec --- /dev/null +++ b/testing/calligra/calligra.install @@ -0,0 +1,11 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/testing/dbus-core/PKGBUILD b/testing/dbus-core/PKGBUILD index 0fb547d74..40f46a48b 100644 --- a/testing/dbus-core/PKGBUILD +++ b/testing/dbus-core/PKGBUILD @@ -1,15 +1,15 @@ -# $Id: PKGBUILD 161781 2012-06-13 23:17:07Z dreisner $ +# $Id: PKGBUILD 162320 2012-06-25 01:19:03Z dreisner $ # Maintainer: Jan de Groot <jgc@archlinux.org> # Contributor: Link Dupont <link@subpop.net> # pkgname=dbus-core pkgver=1.6.0 -pkgrel=3 +pkgrel=5 pkgdesc="Freedesktop.org message bus system" url="http://www.freedesktop.org/Software/dbus" arch=(i686 x86_64) license=('GPL' 'custom') -depends=('expat>=2.0.1' 'coreutils' 'filesystem' 'libsystemd' 'shadow') # shadow for install scriptlet FS#29341 +depends=('expat>=2.0.1' 'coreutils' 'filesystem' 'libsystemd' 'shadow' 'systemd-tools') # shadow for install scriptlet FS#29341 makedepends=('libx11') conflicts=('dbus<1.2.3-2') options=(!libtool) @@ -18,7 +18,7 @@ source=(http://dbus.freedesktop.org/releases/dbus/dbus-${pkgver}.tar.gz{,.asc} dbus) md5sums=('16dcae2dd0c76e398381601ac9acdec4' '0ebde9920bde83fe26ce32351a7d8954' - '3675334f5b4442d1c3e9a008f176e85f') + 'f0364f3f5dc5f653bb05d39aa36e3264') build() { cd "${srcdir}/dbus-${pkgver}" diff --git a/testing/dbus-core/dbus b/testing/dbus-core/dbus index 2c4ca87ec..bf532a274 100644 --- a/testing/dbus-core/dbus +++ b/testing/dbus-core/dbus @@ -10,9 +10,6 @@ case $1 in if [[ ! -d /run/dbus ]] ; then install -m755 -g 81 -o 81 -d /run/dbus fi - if [[ -x /usr/bin/dbus-uuidgen ]] ; then - /usr/bin/dbus-uuidgen --ensure - fi if ! dbus-daemon --system; then stat_fail diff --git a/testing/dbus-core/dbus.install b/testing/dbus-core/dbus.install index 218a930e7..f1ffd61a8 100644 --- a/testing/dbus-core/dbus.install +++ b/testing/dbus-core/dbus.install @@ -2,7 +2,6 @@ post_install() { getent group dbus >/dev/null || groupadd -g 81 dbus getent passwd dbus >/dev/null || useradd -c 'System message bus' -u 81 -g dbus -d '/' -s /bin/false dbus passwd -l dbus &>/dev/null - dbus-uuidgen --ensure } post_upgrade() { diff --git a/testing/inkscape/PKGBUILD b/testing/inkscape/PKGBUILD new file mode 100644 index 000000000..25fbcbc71 --- /dev/null +++ b/testing/inkscape/PKGBUILD @@ -0,0 +1,59 @@ +# $Id: PKGBUILD 162293 2012-06-24 19:24:47Z foutrelis $ +# Contributor: tobias <tobias@archlinux.org> +# Contributor: Tobias Kieslich <tobias@justdreams.de> +# Maintainer: Gaetan Bisson <bisson@archlinux.org> + +pkgname=inkscape +pkgver=0.48.3.1 +pkgrel=4 +pkgdesc='Vector graphics editor using the SVG file format' +url='http://inkscape.sourceforge.net/' +license=('GPL' 'LGPL') +arch=('i686' 'x86_64') +makedepends=('boost' 'intltool') +depends=('gc' 'gsl' 'gtkmm' 'gtkspell' 'imagemagick' 'libxslt' 'poppler-glib' 'popt' + 'python2' 'desktop-file-utils' 'hicolor-icon-theme') +optdepends=('pstoedit: latex formulas' + 'texlive-core: latex formulas' + 'python2-numpy: some extensions' + 'python2-lxml: some extensions and filters' + 'pyxml: some extensions' + 'uniconvertor: reading/writing to some proprietary formats') +options=('!libtool') +source=("http://downloads.sourceforge.net/project/${pkgname}/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz" + 'poppler20.patch' + 'libpng15.patch') +sha1sums=('9a09a97d184e09c2ee7f9956bfe073b7313e919e' + '7316c2903c157781838cce289a709d100dc40fec' + 'd6512f3cb38ca8e2436dc485aa652490d17b3a52') + +install=install + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + + sed -i 's|/usr/bin/python\>|/usr/bin/python2|g' cxxtest/*.py + sed -i 's|/usr/bin/env python\>|/usr/bin/env python2|g' share/*/{test/,}*.py + sed -i 's|"python" },|"python2" },|g' src/extension/implementation/script.cpp + sed -i 's|python -c|python2 -c|g' configure share/extensions/uniconv*.py + sed -i 's|"python"|"python2"|g' src/main.cpp + + patch -p1 -i ../poppler20.patch + patch -p1 -i ../libpng15.patch + + ./configure \ + --prefix=/usr \ + --with-python \ + --with-perl \ + --enable-lcms \ + --enable-poppler-cairo \ + --disable-dependency-tracking \ + + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + + make DESTDIR="${pkgdir}" install +} diff --git a/testing/inkscape/install b/testing/inkscape/install new file mode 100644 index 000000000..6e803bf1d --- /dev/null +++ b/testing/inkscape/install @@ -0,0 +1,13 @@ +post_install() { + update-desktop-database -q + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor +} + +post_upgrade() { + post_install +} + + +post_remove() { + post_install +} diff --git a/testing/inkscape/libpng15.patch b/testing/inkscape/libpng15.patch new file mode 100644 index 000000000..e24913ed6 --- /dev/null +++ b/testing/inkscape/libpng15.patch @@ -0,0 +1,40 @@ +--- inkscape-0.48.1/src/extension/internal/pdfinput/svg-builder.cpp ++++ inkscape-0.48.1-mod//src/extension/internal/pdfinput/svg-builder.cpp +@@ -1443,7 +1443,7 @@ + return NULL; + } + // Set error handler +- if (setjmp(png_ptr->jmpbuf)) { ++ if (setjmp(png_jmpbuf(png_ptr))) { + png_destroy_write_struct(&png_ptr, &info_ptr); + return NULL; + } +--- inkscape-0.48.1/src/helper/png-write.cpp ++++ inkscape-0.48.1-mod//src/helper/png-write.cpp +@@ -165,7 +165,7 @@ + /* Set error handling. REQUIRED if you aren't supplying your own + * error hadnling functions in the png_create_write_struct() call. + */ +- if (setjmp(png_ptr->jmpbuf)) { ++ if (setjmp(png_jmpbuf(png_ptr))) { + /* If we get here, we had a problem reading the file */ + fclose(fp); + png_destroy_write_struct(&png_ptr, &info_ptr); +--- inkscape-0.48.1/src/sp-image.cpp ++++ inkscape-0.48.1-mod//src/sp-image.cpp +@@ -386,9 +386,13 @@ + + #if defined(PNG_iCCP_SUPPORTED) + { +- char* name = 0; ++ png_charp name = 0; + int compression_type = 0; +- char* profile = 0; ++#if (PNG_LIBPNG_VER < 10500) ++ png_charp profile = 0; ++#else ++ png_bytep profile = 0; ++#endif + png_uint_32 proflen = 0; + if ( png_get_iCCP(pngPtr, infoPtr, &name, &compression_type, &profile, &proflen) ) { + // g_message("Found an iCCP chunk named [%s] with %d bytes and comp %d", name, proflen, compression_type); diff --git a/testing/inkscape/poppler20.patch b/testing/inkscape/poppler20.patch new file mode 100644 index 000000000..ecb74603f --- /dev/null +++ b/testing/inkscape/poppler20.patch @@ -0,0 +1,642 @@ +diff -Naur old/src/extension/internal/pdfinput/pdf-parser.cpp new/src/extension/internal/pdfinput/pdf-parser.cpp +--- old/src/extension/internal/pdfinput/pdf-parser.cpp 2011-07-08 20:25:09.468790000 +0200 ++++ new/src/extension/internal/pdfinput/pdf-parser.cpp 2012-05-13 21:07:11.334781215 +0200 +@@ -367,14 +367,14 @@ + for (i = 0; i < obj->arrayGetLength(); ++i) { + obj->arrayGet(i, &obj2); + if (!obj2.isStream()) { +- error(-1, const_cast<char*>("Weird page contents")); ++ error(errInternal, -1, const_cast<char*>("Weird page contents")); + obj2.free(); + return; + } + obj2.free(); + } + } else if (!obj->isStream()) { +- error(-1, const_cast<char*>("Weird page contents")); ++ error(errInternal, -1, const_cast<char*>("Weird page contents")); + return; + } + parser = new Parser(xref, new Lexer(xref, obj), gFalse); +@@ -419,7 +419,7 @@ + + // too many arguments - something is wrong + } else { +- error(getPos(), const_cast<char*>("Too many args in content stream")); ++ error(errInternal, getPos(), const_cast<char*>("Too many args in content stream")); + if (printCommands) { + printf("throwing away arg: "); + obj.print(stdout); +@@ -436,7 +436,7 @@ + + // args at end with no command + if (numArgs > 0) { +- error(getPos(), const_cast<char*>("Leftover args in content stream")); ++ error(errInternal, getPos(), const_cast<char*>("Leftover args in content stream")); + if (printCommands) { + printf("%d leftovers:", numArgs); + for (i = 0; i < numArgs; ++i) { +@@ -502,7 +502,7 @@ + name = cmd->getCmd(); + if (!(op = findOp(name))) { + if (ignoreUndef == 0) +- error(getPos(), const_cast<char*>("Unknown operator '%s'"), name); ++ error(errInternal, getPos(), const_cast<char*>("Unknown operator '%s'"), name); + return; + } + +@@ -510,26 +510,26 @@ + argPtr = args; + if (op->numArgs >= 0) { + if (numArgs < op->numArgs) { +- error(getPos(), const_cast<char*>("Too few (%d) args to '%s' operator"), numArgs, name); ++ error(errInternal, getPos(), const_cast<char*>("Too few (%d) args to '%s' operator"), numArgs, name); + return; + } + if (numArgs > op->numArgs) { + #if 0 +- error(getPos(), "Too many (%d) args to '%s' operator", numArgs, name); ++ error(errInternal, getPos(), "Too many (%d) args to '%s' operator", numArgs, name); + #endif + argPtr += numArgs - op->numArgs; + numArgs = op->numArgs; + } + } else { + if (numArgs > -op->numArgs) { +- error(getPos(), const_cast<char*>("Too many (%d) args to '%s' operator"), ++ error(errInternal, getPos(), const_cast<char*>("Too many (%d) args to '%s' operator"), + numArgs, name); + return; + } + } + for (i = 0; i < numArgs; ++i) { + if (!checkArg(&argPtr[i], op->tchk[i])) { +- error(getPos(), const_cast<char*>("Arg #%d to '%s' operator is wrong type (%s)"), ++ error(errInternal, getPos(), const_cast<char*>("Arg #%d to '%s' operator is wrong type (%s)"), + i, name, argPtr[i].getTypeName()); + return; + } +@@ -690,7 +690,7 @@ + return; + } + if (!obj1.isDict()) { +- error(getPos(), const_cast<char*>("ExtGState '%s' is wrong type"), args[0].getName()); ++ error(errInternal, getPos(), const_cast<char*>("ExtGState '%s' is wrong type"), args[0].getName()); + obj1.free(); + return; + } +@@ -705,7 +705,7 @@ + if (state->parseBlendMode(&obj2, &mode)) { + state->setBlendMode(mode); + } else { +- error(getPos(), const_cast<char*>("Invalid blend mode in ExtGState")); ++ error(errInternal, getPos(), const_cast<char*>("Invalid blend mode in ExtGState")); + } + } + obj2.free(); +@@ -764,7 +764,7 @@ + state->setTransfer(funcs); + } + } else if (!obj2.isNull()) { +- error(getPos(), const_cast<char*>("Invalid transfer function in ExtGState")); ++ error(errInternal, getPos(), const_cast<char*>("Invalid transfer function in ExtGState")); + } + obj2.free(); + +@@ -784,7 +784,7 @@ + funcs[0] = Function::parse(&obj3); + if (funcs[0]->getInputSize() != 1 || + funcs[0]->getOutputSize() != 1) { +- error(getPos(), ++ error(errInternal, getPos(), + const_cast<char*>("Invalid transfer function in soft mask in ExtGState")); + delete funcs[0]; + funcs[0] = NULL; +@@ -809,11 +809,7 @@ + blendingColorSpace = NULL; + isolated = knockout = gFalse; + if (!obj4.dictLookup(const_cast<char*>("CS"), &obj5)->isNull()) { +-#ifdef POPPLER_NEW_COLOR_SPACE_API + blendingColorSpace = GfxColorSpace::parse(&obj5, NULL); +-#else +- blendingColorSpace = GfxColorSpace::parse(&obj5); +-#endif + } + obj5.free(); + if (obj4.dictLookup(const_cast<char*>("I"), &obj5)->isBool()) { +@@ -840,15 +836,15 @@ + delete funcs[0]; + } + } else { +- error(getPos(), const_cast<char*>("Invalid soft mask in ExtGState - missing group")); ++ error(errInternal, getPos(), const_cast<char*>("Invalid soft mask in ExtGState - missing group")); + } + obj4.free(); + } else { +- error(getPos(), const_cast<char*>("Invalid soft mask in ExtGState - missing group")); ++ error(errInternal, getPos(), const_cast<char*>("Invalid soft mask in ExtGState - missing group")); + } + obj3.free(); + } else if (!obj2.isNull()) { +- error(getPos(), const_cast<char*>("Invalid soft mask in ExtGState")); ++ error(errInternal, getPos(), const_cast<char*>("Invalid soft mask in ExtGState")); + } + } + obj2.free(); +@@ -876,7 +872,7 @@ + // check form type + dict->lookup(const_cast<char*>("FormType"), &obj1); + if (!(obj1.isNull() || (obj1.isInt() && obj1.getInt() == 1))) { +- error(getPos(), const_cast<char*>("Unknown form type")); ++ error(errInternal, getPos(), const_cast<char*>("Unknown form type")); + } + obj1.free(); + +@@ -884,7 +880,7 @@ + dict->lookup(const_cast<char*>("BBox"), &obj1); + if (!obj1.isArray()) { + obj1.free(); +- error(getPos(), const_cast<char*>("Bad form bounding box")); ++ error(errInternal, getPos(), const_cast<char*>("Bad form bounding box")); + return; + } + for (i = 0; i < 4; ++i) { +@@ -1012,19 +1008,11 @@ + + state->setFillPattern(NULL); + res->lookupColorSpace(args[0].getName(), &obj); +-#ifdef POPPLER_NEW_COLOR_SPACE_API + if (obj.isNull()) { + colorSpace = GfxColorSpace::parse(&args[0], NULL); + } else { + colorSpace = GfxColorSpace::parse(&obj, NULL); + } +-#else +- if (obj.isNull()) { +- colorSpace = GfxColorSpace::parse(&args[0]); +- } else { +- colorSpace = GfxColorSpace::parse(&obj); +- } +-#endif + obj.free(); + if (colorSpace) { + state->setFillColorSpace(colorSpace); +@@ -1032,7 +1020,7 @@ + state->setFillColor(&color); + builder->updateStyle(state); + } else { +- error(getPos(), const_cast<char*>("Bad color space (fill)")); ++ error(errInternal, getPos(), const_cast<char*>("Bad color space (fill)")); + } + } + +@@ -1043,19 +1031,11 @@ + + state->setStrokePattern(NULL); + res->lookupColorSpace(args[0].getName(), &obj); +-#ifdef POPPLER_NEW_COLOR_SPACE_API + if (obj.isNull()) { + colorSpace = GfxColorSpace::parse(&args[0], NULL); + } else { + colorSpace = GfxColorSpace::parse(&obj, NULL); + } +-#else +- if (obj.isNull()) { +- colorSpace = GfxColorSpace::parse(&args[0]); +- } else { +- colorSpace = GfxColorSpace::parse(&obj); +- } +-#endif + obj.free(); + if (colorSpace) { + state->setStrokeColorSpace(colorSpace); +@@ -1063,7 +1043,7 @@ + state->setStrokeColor(&color); + builder->updateStyle(state); + } else { +- error(getPos(), const_cast<char*>("Bad color space (stroke)")); ++ error(errInternal, getPos(), const_cast<char*>("Bad color space (stroke)")); + } + } + +@@ -1072,7 +1052,7 @@ + int i; + + if (numArgs != state->getFillColorSpace()->getNComps()) { +- error(getPos(), const_cast<char*>("Incorrect number of arguments in 'sc' command")); ++ error(errInternal, getPos(), const_cast<char*>("Incorrect number of arguments in 'sc' command")); + return; + } + state->setFillPattern(NULL); +@@ -1088,7 +1068,7 @@ + int i; + + if (numArgs != state->getStrokeColorSpace()->getNComps()) { +- error(getPos(), const_cast<char*>("Incorrect number of arguments in 'SC' command")); ++ error(errInternal, getPos(), const_cast<char*>("Incorrect number of arguments in 'SC' command")); + return; + } + state->setStrokePattern(NULL); +@@ -1109,7 +1089,7 @@ + if (!((GfxPatternColorSpace *)state->getFillColorSpace())->getUnder() || + numArgs - 1 != ((GfxPatternColorSpace *)state->getFillColorSpace()) + ->getUnder()->getNComps()) { +- error(getPos(), const_cast<char*>("Incorrect number of arguments in 'scn' command")); ++ error(errInternal, getPos(), const_cast<char*>("Incorrect number of arguments in 'scn' command")); + return; + } + for (i = 0; i < numArgs - 1 && i < gfxColorMaxComps; ++i) { +@@ -1120,23 +1100,15 @@ + state->setFillColor(&color); + builder->updateStyle(state); + } +-#ifdef POPPLER_NEW_COLOR_SPACE_API + if (args[numArgs-1].isName() && + (pattern = res->lookupPattern(args[numArgs-1].getName(), NULL))) { + state->setFillPattern(pattern); + builder->updateStyle(state); + } +-#else +- if (args[numArgs-1].isName() && +- (pattern = res->lookupPattern(args[numArgs-1].getName()))) { +- state->setFillPattern(pattern); +- builder->updateStyle(state); +- } +-#endif + + } else { + if (numArgs != state->getFillColorSpace()->getNComps()) { +- error(getPos(), const_cast<char*>("Incorrect number of arguments in 'scn' command")); ++ error(errInternal, getPos(), const_cast<char*>("Incorrect number of arguments in 'scn' command")); + return; + } + state->setFillPattern(NULL); +@@ -1161,7 +1133,7 @@ + ->getUnder() || + numArgs - 1 != ((GfxPatternColorSpace *)state->getStrokeColorSpace()) + ->getUnder()->getNComps()) { +- error(getPos(), const_cast<char*>("Incorrect number of arguments in 'SCN' command")); ++ error(errInternal, getPos(), const_cast<char*>("Incorrect number of arguments in 'SCN' command")); + return; + } + for (i = 0; i < numArgs - 1 && i < gfxColorMaxComps; ++i) { +@@ -1172,23 +1144,15 @@ + state->setStrokeColor(&color); + builder->updateStyle(state); + } +-#ifdef POPPLER_NEW_COLOR_SPACE_API + if (args[numArgs-1].isName() && + (pattern = res->lookupPattern(args[numArgs-1].getName(), NULL))) { + state->setStrokePattern(pattern); + builder->updateStyle(state); + } +-#else +- if (args[numArgs-1].isName() && +- (pattern = res->lookupPattern(args[numArgs-1].getName()))) { +- state->setStrokePattern(pattern); +- builder->updateStyle(state); +- } +-#endif + + } else { + if (numArgs != state->getStrokeColorSpace()->getNComps()) { +- error(getPos(), const_cast<char*>("Incorrect number of arguments in 'SCN' command")); ++ error(errInternal, getPos(), const_cast<char*>("Incorrect number of arguments in 'SCN' command")); + return; + } + state->setStrokePattern(NULL); +@@ -1212,7 +1176,7 @@ + + void PdfParser::opLineTo(Object args[], int numArgs) { + if (!state->isCurPt()) { +- error(getPos(), const_cast<char*>("No current point in lineto")); ++ error(errInternal, getPos(), const_cast<char*>("No current point in lineto")); + return; + } + state->lineTo(args[0].getNum(), args[1].getNum()); +@@ -1222,7 +1186,7 @@ + double x1, y1, x2, y2, x3, y3; + + if (!state->isCurPt()) { +- error(getPos(), const_cast<char*>("No current point in curveto")); ++ error(errInternal, getPos(), const_cast<char*>("No current point in curveto")); + return; + } + x1 = args[0].getNum(); +@@ -1238,7 +1202,7 @@ + double x1, y1, x2, y2, x3, y3; + + if (!state->isCurPt()) { +- error(getPos(), const_cast<char*>("No current point in curveto1")); ++ error(errInternal, getPos(), const_cast<char*>("No current point in curveto1")); + return; + } + x1 = state->getCurX(); +@@ -1254,7 +1218,7 @@ + double x1, y1, x2, y2, x3, y3; + + if (!state->isCurPt()) { +- error(getPos(), const_cast<char*>("No current point in curveto2")); ++ error(errInternal, getPos(), const_cast<char*>("No current point in curveto2")); + return; + } + x1 = args[0].getNum(); +@@ -1282,7 +1246,7 @@ + + void PdfParser::opClosePath(Object args[], int numArgs) { + if (!state->isCurPt()) { +- error(getPos(), const_cast<char*>("No current point in closepath")); ++ error(errInternal, getPos(), const_cast<char*>("No current point in closepath")); + return; + } + state->closePath(); +@@ -1298,7 +1262,7 @@ + + void PdfParser::opStroke(Object args[], int numArgs) { + if (!state->isCurPt()) { +- //error(getPos(), const_cast<char*>("No path in stroke")); ++ //error(errInternal, getPos(), const_cast<char*>("No path in stroke")); + return; + } + if (state->isPath()) { +@@ -1314,7 +1278,7 @@ + + void PdfParser::opCloseStroke(Object * /*args[]*/, int /*numArgs*/) { + if (!state->isCurPt()) { +- //error(getPos(), const_cast<char*>("No path in closepath/stroke")); ++ //error(errInternal, getPos(), const_cast<char*>("No path in closepath/stroke")); + return; + } + state->closePath(); +@@ -1331,7 +1295,7 @@ + + void PdfParser::opFill(Object args[], int numArgs) { + if (!state->isCurPt()) { +- //error(getPos(), const_cast<char*>("No path in fill")); ++ //error(errInternal, getPos(), const_cast<char*>("No path in fill")); + return; + } + if (state->isPath()) { +@@ -1347,7 +1311,7 @@ + + void PdfParser::opEOFill(Object args[], int numArgs) { + if (!state->isCurPt()) { +- //error(getPos(), const_cast<char*>("No path in eofill")); ++ //error(errInternal, getPos(), const_cast<char*>("No path in eofill")); + return; + } + if (state->isPath()) { +@@ -1363,7 +1327,7 @@ + + void PdfParser::opFillStroke(Object args[], int numArgs) { + if (!state->isCurPt()) { +- //error(getPos(), const_cast<char*>("No path in fill/stroke")); ++ //error(errInternal, getPos(), const_cast<char*>("No path in fill/stroke")); + return; + } + if (state->isPath()) { +@@ -1376,7 +1340,7 @@ + + void PdfParser::opCloseFillStroke(Object args[], int numArgs) { + if (!state->isCurPt()) { +- //error(getPos(), const_cast<char*>("No path in closepath/fill/stroke")); ++ //error(errInternal, getPos(), const_cast<char*>("No path in closepath/fill/stroke")); + return; + } + if (state->isPath()) { +@@ -1388,7 +1352,7 @@ + + void PdfParser::opEOFillStroke(Object args[], int numArgs) { + if (!state->isCurPt()) { +- //error(getPos(), const_cast<char*>("No path in eofill/stroke")); ++ //error(errInternal, getPos(), const_cast<char*>("No path in eofill/stroke")); + return; + } + if (state->isPath()) { +@@ -1399,7 +1363,7 @@ + + void PdfParser::opCloseEOFillStroke(Object args[], int numArgs) { + if (!state->isCurPt()) { +- //error(getPos(), const_cast<char*>("No path in closepath/eofill/stroke")); ++ //error(errInternal, getPos(), const_cast<char*>("No path in closepath/eofill/stroke")); + return; + } + if (state->isPath()) { +@@ -1440,7 +1404,7 @@ + doShadingPatternFillFallback((GfxShadingPattern *)pattern, gFalse, eoFill); + break; + default: +- error(getPos(), const_cast<char*>("Unimplemented pattern type (%d) in fill"), ++ error(errInternal, getPos(), const_cast<char*>("Unimplemented pattern type (%d) in fill"), + pattern->getType()); + break; + } +@@ -1459,7 +1423,7 @@ + doShadingPatternFillFallback((GfxShadingPattern *)pattern, gTrue, gFalse); + break; + default: +- error(getPos(), const_cast<char*>("Unimplemented pattern type (%d) in stroke"), ++ error(errInternal, getPos(), const_cast<char*>("Unimplemented pattern type (%d) in stroke"), + pattern->getType()); + break; + } +@@ -1579,15 +1543,9 @@ + double *matrix = NULL; + GBool savedState = gFalse; + +-#ifdef POPPLER_NEW_COLOR_SPACE_API + if (!(shading = res->lookupShading(args[0].getName(), NULL))) { + return; + } +-#else +- if (!(shading = res->lookupShading(args[0].getName()))) { +- return; +- } +-#endif + + // save current graphics state + if (shading->getType() != 2 && shading->getType() != 3) { +@@ -2156,7 +2114,7 @@ + + void PdfParser::opShowText(Object args[], int numArgs) { + if (!state->getFont()) { +- error(getPos(), const_cast<char*>("No font in show")); ++ error(errInternal, getPos(), const_cast<char*>("No font in show")); + return; + } + if (fontChanged) { +@@ -2170,7 +2128,7 @@ + double tx, ty; + + if (!state->getFont()) { +- error(getPos(), const_cast<char*>("No font in move/show")); ++ error(errInternal, getPos(), const_cast<char*>("No font in move/show")); + return; + } + if (fontChanged) { +@@ -2188,7 +2146,7 @@ + double tx, ty; + + if (!state->getFont()) { +- error(getPos(), const_cast<char*>("No font in move/set/show")); ++ error(errInternal, getPos(), const_cast<char*>("No font in move/set/show")); + return; + } + if (fontChanged) { +@@ -2211,7 +2169,7 @@ + int i; + + if (!state->getFont()) { +- error(getPos(), const_cast<char*>("No font in show/space")); ++ error(errInternal, getPos(), const_cast<char*>("No font in show/space")); + return; + } + if (fontChanged) { +@@ -2236,7 +2194,7 @@ + } else if (obj.isString()) { + doShowText(obj.getString()); + } else { +- error(getPos(), const_cast<char*>("Element of show/space array must be number or string")); ++ error(errInternal, getPos(), const_cast<char*>("Element of show/space array must be number or string")); + } + obj.free(); + } +@@ -2334,7 +2292,7 @@ + if (charProc.isStream()) { + //parse(&charProc, gFalse); // TODO: parse into SVG font + } else { +- error(getPos(), const_cast<char*>("Missing or bad Type3 CharProc entry")); ++ error(errInternal, getPos(), const_cast<char*>("Missing or bad Type3 CharProc entry")); + } + //out->endType3Char(state); + if (resDict) { +@@ -2410,7 +2368,7 @@ + return; + } + if (!obj1.isStream()) { +- error(getPos(), const_cast<char*>("XObject '%s' is wrong type"), name); ++ error(errInternal, getPos(), const_cast<char*>("XObject '%s' is wrong type"), name); + obj1.free(); + return; + } +@@ -2426,9 +2384,9 @@ + /* out->psXObject(obj1.getStream(), + obj3.isStream() ? obj3.getStream() : (Stream *)NULL);*/ + } else if (obj2.isName()) { +- error(getPos(), const_cast<char*>("Unknown XObject subtype '%s'"), obj2.getName()); ++ error(errInternal, getPos(), const_cast<char*>("Unknown XObject subtype '%s'"), obj2.getName()); + } else { +- error(getPos(), const_cast<char*>("XObject subtype is missing or wrong type")); ++ error(errInternal, getPos(), const_cast<char*>("XObject subtype is missing or wrong type")); + } + obj2.free(); + obj1.free(); +@@ -2559,11 +2517,7 @@ + } + } + if (!obj1.isNull()) { +-#ifdef POPPLER_NEW_COLOR_SPACE_API + colorSpace = GfxColorSpace::parse(&obj1, NULL); +-#else +- colorSpace = GfxColorSpace::parse(&obj1); +-#endif + } else if (csMode == streamCSDeviceGray) { + colorSpace = new GfxDeviceGrayColorSpace(); + } else if (csMode == streamCSDeviceRGB) { +@@ -2648,11 +2602,7 @@ + obj2.free(); + } + } +-#ifdef POPPLER_NEW_COLOR_SPACE_API + maskColorSpace = GfxColorSpace::parse(&obj1, NULL); +-#else +- maskColorSpace = GfxColorSpace::parse(&obj1); +-#endif + obj1.free(); + if (!maskColorSpace || maskColorSpace->getMode() != csDeviceGray) { + goto err1; +@@ -2758,7 +2708,7 @@ + err2: + obj1.free(); + err1: +- error(getPos(), const_cast<char*>("Bad image parameters")); ++ error(errInternal, getPos(), const_cast<char*>("Bad image parameters")); + } + + void PdfParser::doForm(Object *str) { +@@ -2783,7 +2733,7 @@ + // check form type + dict->lookup(const_cast<char*>("FormType"), &obj1); + if (!(obj1.isNull() || (obj1.isInt() && obj1.getInt() == 1))) { +- error(getPos(), const_cast<char*>("Unknown form type")); ++ error(errInternal, getPos(), const_cast<char*>("Unknown form type")); + } + obj1.free(); + +@@ -2791,7 +2741,7 @@ + dict->lookup(const_cast<char*>("BBox"), &bboxObj); + if (!bboxObj.isArray()) { + bboxObj.free(); +- error(getPos(), const_cast<char*>("Bad form bounding box")); ++ error(errInternal, getPos(), const_cast<char*>("Bad form bounding box")); + return; + } + for (i = 0; i < 4; ++i) { +@@ -2827,11 +2777,7 @@ + if (obj1.dictLookup(const_cast<char*>("S"), &obj2)->isName(const_cast<char*>("Transparency"))) { + transpGroup = gTrue; + if (!obj1.dictLookup(const_cast<char*>("CS"), &obj3)->isNull()) { +-#ifdef POPPLER_NEW_COLOR_SPACE_API + blendingColorSpace = GfxColorSpace::parse(&obj3, NULL); +-#else +- blendingColorSpace = GfxColorSpace::parse(&obj3); +-#endif + } + obj3.free(); + if (obj1.dictLookup(const_cast<char*>("I"), &obj3)->isBool()) { +@@ -2990,7 +2936,7 @@ + parser->getObj(&obj); + while (!obj.isCmd(const_cast<char*>("ID")) && !obj.isEOF()) { + if (!obj.isName()) { +- error(getPos(), const_cast<char*>("Inline image dictionary key must be a name object")); ++ error(errInternal, getPos(), const_cast<char*>("Inline image dictionary key must be a name object")); + obj.free(); + } else { + key = copyString(obj.getName()); +@@ -3005,7 +2951,7 @@ + parser->getObj(&obj); + } + if (obj.isEOF()) { +- error(getPos(), const_cast<char*>("End of file in inline image")); ++ error(errInternal, getPos(), const_cast<char*>("End of file in inline image")); + obj.free(); + dict.free(); + return NULL; +@@ -3020,11 +2966,11 @@ + } + + void PdfParser::opImageData(Object args[], int numArgs) { +- error(getPos(), const_cast<char*>("Internal: got 'ID' operator")); ++ error(errInternal, getPos(), const_cast<char*>("Internal: got 'ID' operator")); + } + + void PdfParser::opEndImage(Object args[], int numArgs) { +- error(getPos(), const_cast<char*>("Internal: got 'EI' operator")); ++ error(errInternal, getPos(), const_cast<char*>("Internal: got 'EI' operator")); + } + + //------------------------------------------------------------------------ +diff -Naur old/src/extension/internal/pdfinput/svg-builder.cpp new/src/extension/internal/pdfinput/svg-builder.cpp +--- old/src/extension/internal/pdfinput/svg-builder.cpp 2011-07-08 20:25:09.468790000 +0200 ++++ new/src/extension/internal/pdfinput/svg-builder.cpp 2012-05-13 20:45:22.303804308 +0200 +@@ -961,9 +961,7 @@ + _font_style = sp_repr_css_attr_new(); + GfxFont *font = state->getFont(); + // Store original name +- if (font->getOrigName()) { +- _font_specification = font->getOrigName()->getCString(); +- } else if (font->getName()) { ++ if (font->getName()) { + _font_specification = font->getName()->getCString(); + } else { + _font_specification = (char*) "Arial"; diff --git a/testing/libreoffice/PKGBUILD b/testing/libreoffice/PKGBUILD new file mode 100644 index 000000000..721433d35 --- /dev/null +++ b/testing/libreoffice/PKGBUILD @@ -0,0 +1,703 @@ +# $Id: PKGBUILD 162294 2012-06-24 19:25:15Z foutrelis $ +# 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') # svn up -r 142692 (last one with all extensions built +_LOver=3.5.4.2 +pkgver=3.5.4 +pkgrel=2 +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.20.1' 'kdelibs' 'gconf' 'cppunit' + 'beanshell' 'vigra' 'lucene' 'junit' 'libmythes' 'libwpg' 'imagemagick' + 'mesa' 'gstreamer0.10-base' 'java-environment' 'postgresql-libs' + #'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" +source=(${_mirror}/${pkgbase}-{core,help,translations}-${_LOver}.tar.xz + ${_additional_source_url}/18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz + ${_additional_source_url}/2fa6028324347860e684e75310818d43-libvisio-0.0.16.tar.bz2 +# ${_additional_source_url}/90010e213dd25648e70f0cc12f8fed55-libvisio-0.0.17.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}/e1c178b18f130b40494561f02bc1a948-libexttextcat-3.2.0.tar.bz2 + ${_additional_source_url}/7c2549f6b0a8bb604e6c4c729ffdcfe6-libcmis-0.1.0.tar.gz + http://download.go-oo.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll + gmake_install.diff::http://cgit.freedesktop.org/libreoffice/core/patch/?id=1048d8fa4abd3e55a45dfb6884db808da1d72c9e + smp_buildfix.diff::http://cgit.freedesktop.org/libreoffice/core/patch/?id=cf23f57ae6bb7af689a45e0a850c3c2f67a8f810 + fix_broken_hebrew_wordwrapping.diff + libreoffice-common.sh libreoffice-common.csh) +noextract=(2fa6028324347860e684e75310818d43-libvisio-0.0.16.tar.bz2 +# 90010e213dd25648e70f0cc12f8fed55-libvisio-0.0.17.tar.bz2 + 18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz + 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 + e1c178b18f130b40494561f02bc1a948-libexttextcat-3.2.0.tar.bz2 + 7c2549f6b0a8bb604e6c4c729ffdcfe6-libcmis-0.1.0.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 + ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip) +md5sums=('61afc900785dd7d071b96d9ab0af46f3' + 'd2e7414a60eacafef45fbc4bc1a8ccb3' + '545d1608da2cc736be5c8bf941adbbfb' + '18f577b374d60b3c760a3a3350407632' + '2fa6028324347860e684e75310818d43' + '1f24ab1d39f4a51faf22244c94a6203f' + '35c94d2df8893241173de1d16b6034c0' + '798b2ffdc8bcfe7bca2cf92b62caf685' + 'fdb27bfe2dbe2e7b57ae194d9bf36bab' + 'ada24d37d8d638b3d8a9985e80bc2978' + '2a177023f9ea8ec8bd00837605c5df1b' + 'a7983f859eafb2677d7ff386a023bc40' + '3c219630e4302863a9a83d0efde889db' + '2ae988b339daec234019a7066f96733e' + '2c9b0f83ed5890af02c0df1c1776f39b' + 'af3c3acf618de6108d65fcdc92b492e1' + 'eeb2c7ddf0d302fba4bfc6e97eac9624' + '39bb3fcea1514f1369fcfc87542390fd' + '3404ab6b1792ae5f16bbd603bd1e1d03' + '97b2d4dba862397f446b217e2b623e71' + 'f94d9870737518e3b597f9265f4e9803' + '8ce2fcd72becf06c41f7201d15373ed9' + 'd8bd5eed178db6e2b18eeed243f85aa8' + '3bdf40c0d199af31923e900d082ca2dd' + 'ace6ab49184e329db254e454a010f56d' + 'db60e4fde8dd6d6807523deb71ee34dc' + 'ba2930200c9f019c2d93a8c88c651a0f' + '0ff7d225d087793c8c2c680d77aac3e7' + 'e1c178b18f130b40494561f02bc1a948' + '7c2549f6b0a8bb604e6c4c729ffdcfe6' + '185d60944ea767075d27247c3162b3bc' + '60ce5dc9bd098f95c2e621a930c98dd9' + '661a52a02a31b3afbe4b3b3146061afd' + '025d9b17d9eb90dc282c5c1289a666aa' + '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 + # one late fix to solve make distro-pack-install issue + patch -Np1 -i ${srcdir}/gmake_install.diff + patch -Np1 -i ${srcdir}/smp_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 +# unset CFLAGS +# unset CXXFLAGS + + #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" \ +# touch autogen.lastrun + ./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 \ + --disable-ext-mysql-connector \ + --with-system-mysql \ + --enable-librsvg=system \ + --without-fonts\ + --without-afms\ + --without-ppds\ + --without-system-libwps\ + --without-system-mdds\ + --without-myspell-dicts \ + --without-system-libvisio \ + --without-system-libcmis \ + --without-system-sampleicc \ + --without-system-libexttextcat \ + --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/java/apache-ant"\ + --with-system-boost\ + --with-system-cairo\ + --with-system-libs\ + --with-system-mythes\ + --with-system-headers\ + --with-system-hsqldb \ + --with-alloc=system\ + --with-system-lucene\ + --with-lucene-core-jar=/usr/share/java/lucene-core.jar\ + --with-lucene-analyzers-jar=/usr/share/java/lucene-analyzers.jar\ + --with-java-target-version=1.5 \ + $EXTRAOPTS + +# --disable-ext-lightproof \ + + +#--with-install-dirname="${pkgbase}" +# --enable-cairo\ +# --with-system-libtextcat \ +# --with-external-libtextcat-data \ +#--enable-split-opt-features Split file lists for some optional features, .e.g. pyuno, testtool + +#--with-servlet-api-jar=JARFILE +# see http://qa.openoffice.org/issues/show_bug.cgi?id=110136 +# --with-system-saxon\ +# --with-saxon-jar=/usr/share/java/saxon/saxon9he.jar\ + + 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' + 'lucene: full-text search engine library for Java 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 +} + +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=() + 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 Applicationfor 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 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=() + 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/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}/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/testing/libreoffice/PKGBUILD.36 b/testing/libreoffice/PKGBUILD.36 new file mode 100644 index 000000000..6a3d0fe0d --- /dev/null +++ b/testing/libreoffice/PKGBUILD.36 @@ -0,0 +1,700 @@ +# $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') # svn up -r 142692 (last one with all extensions built +_LOver=3.6.0.0.beta2 +pkgver=3.6.0beta2 +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' + #'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}/48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz + ${_additional_source_url}/90010e213dd25648e70f0cc12f8fed55-libvisio-0.0.17.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}/ce31ac7b92cb5e66459f67213bbb6168-libcmis-0.2.2.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=(90010e213dd25648e70f0cc12f8fed55-libvisio-0.0.17.tar.bz2 + 18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz + 48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz + 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 + ce31ac7b92cb5e66459f67213bbb6168-libcmis-0.2.2.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=('97183afb02576d5542a1eda3f29f9517' + '3368bc1adfa9e7d6d6f3ce2cee9e164e' + '7191e46a3f48ad7a7d5a21e985790e6a' + '18f577b374d60b3c760a3a3350407632' + '48d647fbd8ef8889e5a7f422c1bfda94' + '90010e213dd25648e70f0cc12f8fed55' + '1f24ab1d39f4a51faf22244c94a6203f' + '35c94d2df8893241173de1d16b6034c0' + '798b2ffdc8bcfe7bca2cf92b62caf685' + 'fdb27bfe2dbe2e7b57ae194d9bf36bab' + 'ada24d37d8d638b3d8a9985e80bc2978' + '2a177023f9ea8ec8bd00837605c5df1b' + 'a7983f859eafb2677d7ff386a023bc40' + '3c219630e4302863a9a83d0efde889db' + '2ae988b339daec234019a7066f96733e' + '2c9b0f83ed5890af02c0df1c1776f39b' + 'af3c3acf618de6108d65fcdc92b492e1' + 'eeb2c7ddf0d302fba4bfc6e97eac9624' + '39bb3fcea1514f1369fcfc87542390fd' + '3404ab6b1792ae5f16bbd603bd1e1d03' + '97b2d4dba862397f446b217e2b623e71' + 'f94d9870737518e3b597f9265f4e9803' + '8ce2fcd72becf06c41f7201d15373ed9' + 'd8bd5eed178db6e2b18eeed243f85aa8' + '3bdf40c0d199af31923e900d082ca2dd' + 'ace6ab49184e329db254e454a010f56d' + 'db60e4fde8dd6d6807523deb71ee34dc' + 'ba2930200c9f019c2d93a8c88c651a0f' + '0ff7d225d087793c8c2c680d77aac3e7' + '6097739c841f671cb21332b9cc593ae7' + 'ce31ac7b92cb5e66459f67213bbb6168' + '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" \ +# touch autogen.lastrun + ./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 \ + --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"\ + --with-system-boost\ + --with-system-cairo\ + --with-system-libs\ + --with-system-mythes\ + --with-system-headers\ + --with-system-hsqldb \ + --with-alloc=system\ + --without-system-clucene\ + --with-java-target-version=1.5 \ + $EXTRAOPTS + +# --disable-ext-lightproof \ + + +#--with-install-dirname="${pkgbase}" +# --enable-cairo\ +# --with-system-libtextcat \ +# --with-external-libtextcat-data \ +#--enable-split-opt-features Split file lists for some optional features, .e.g. pyuno, testtool + +#--with-servlet-api-jar=JARFILE +# see http://qa.openoffice.org/issues/show_bug.cgi?id=110136 +# --with-system-saxon\ +# --with-saxon-jar=/usr/share/java/saxon/saxon9he.jar\ + + 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 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=() + 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 Applicationfor 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 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=() + 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 +} diff --git a/testing/libreoffice/buildfix.diff b/testing/libreoffice/buildfix.diff new file mode 100644 index 000000000..327b10bb1 --- /dev/null +++ b/testing/libreoffice/buildfix.diff @@ -0,0 +1,12 @@ +--- 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/testing/libreoffice/buildfix_icu49.diff b/testing/libreoffice/buildfix_icu49.diff new file mode 100644 index 000000000..7a774dee0 --- /dev/null +++ b/testing/libreoffice/buildfix_icu49.diff @@ -0,0 +1,42 @@ +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/testing/libreoffice/fix_broken_hebrew_wordwrapping.diff b/testing/libreoffice/fix_broken_hebrew_wordwrapping.diff new file mode 100644 index 000000000..ba4850c77 --- /dev/null +++ b/testing/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/testing/libreoffice/libreoffice-base.install b/testing/libreoffice/libreoffice-base.install new file mode 100644 index 000000000..80312d4a6 --- /dev/null +++ b/testing/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/testing/libreoffice/libreoffice-calc.install b/testing/libreoffice/libreoffice-calc.install new file mode 100644 index 000000000..80312d4a6 --- /dev/null +++ b/testing/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/testing/libreoffice/libreoffice-common.csh b/testing/libreoffice/libreoffice-common.csh new file mode 100644 index 000000000..af31d4432 --- /dev/null +++ b/testing/libreoffice/libreoffice-common.csh @@ -0,0 +1 @@ +#setenv PYTHONPATH ${PYTHONPATH}:/usr/lib/libreoffice/program diff --git a/testing/libreoffice/libreoffice-common.install b/testing/libreoffice/libreoffice-common.install new file mode 100644 index 000000000..e66b66f3d --- /dev/null +++ b/testing/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/testing/libreoffice/libreoffice-common.sh b/testing/libreoffice/libreoffice-common.sh new file mode 100644 index 000000000..ee405b1aa --- /dev/null +++ b/testing/libreoffice/libreoffice-common.sh @@ -0,0 +1 @@ +#export PYTHONPATH="$PYTHONPATH:/usr/lib/libreoffice/program" diff --git a/testing/libreoffice/libreoffice-draw.install b/testing/libreoffice/libreoffice-draw.install new file mode 100644 index 000000000..80312d4a6 --- /dev/null +++ b/testing/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/testing/libreoffice/libreoffice-impress.install b/testing/libreoffice/libreoffice-impress.install new file mode 100644 index 000000000..80312d4a6 --- /dev/null +++ b/testing/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/testing/libreoffice/libreoffice-writer.install b/testing/libreoffice/libreoffice-writer.install new file mode 100644 index 000000000..80312d4a6 --- /dev/null +++ b/testing/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 +} diff --git a/testing/poppler/PKGBUILD b/testing/poppler/PKGBUILD new file mode 100644 index 000000000..77d2c39e8 --- /dev/null +++ b/testing/poppler/PKGBUILD @@ -0,0 +1,80 @@ +# $Id: PKGBUILD 162295 2012-06-24 19:25:19Z foutrelis $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgbase=poppler +pkgname=('poppler' 'poppler-glib' 'poppler-qt') +pkgver=0.20.1 +pkgrel=1 +arch=(i686 x86_64) +license=('GPL') +makedepends=('libjpeg' 'gcc-libs' 'cairo' 'fontconfig' 'openjpeg' 'gtk2' 'qt' 'pkgconfig' 'lcms' 'gobject-introspection') +options=('!libtool' '!emptydirs') +url="http://poppler.freedesktop.org/" +_testtag=0d2bfd4af4c76a3bac27ccaff793d9129df7b57a +source=(http://poppler.freedesktop.org/${pkgbase}-${pkgver}.tar.gz + http://cgit.freedesktop.org/poppler/test/snapshot/test-${_testtag}.tar.bz2) +md5sums=('a61e3b844061f5324512a16d6d16984c' + '9dc64c254a31e570507bdd4ad4ba629a') + +build() { + cd "${srcdir}/${pkgbase}-${pkgver}" + sed -i -e '/AC_PATH_XTRA/d' configure.ac + + autoreconf -fi + + ./configure --prefix=/usr --sysconfdir=/etc \ + --localstatedir=/var --disable-static \ + --enable-cairo-output \ + --enable-xpdf-headers \ + --enable-libjpeg --enable-zlib \ + --enable-poppler-qt4 \ + --enable-poppler-glib + make +} + +check() { + cd "${srcdir}" + ln -sf test-${_testtag} test + cd ${pkgbase}-${pkgver} + LANG=en_US.UTF8 make check +} + +package_poppler() { + pkgdesc="PDF rendering library based on xpdf 3.0" + depends=('libjpeg' 'gcc-libs' 'cairo' 'fontconfig' 'openjpeg' 'lcms' 'poppler-data') + conflicts=("poppler-qt3<${pkgver}") + + cd "${srcdir}/${pkgbase}-${pkgver}" + sed -e 's/^glib_subdir =.*/glib_subdir =/' \ + -e 's/^qt4_subdir =.*/qt4_subdir =/' -i Makefile + make DESTDIR="${pkgdir}" install + + rm -f "${pkgdir}"/usr/lib/pkgconfig/poppler-{glib,qt4}.pc +} + +package_poppler-glib() { + pkgdesc="Poppler glib bindings" + depends=("poppler=${pkgver}" 'glib2') + + cd "${srcdir}/${pkgbase}-${pkgver}/poppler" + make DESTDIR="${pkgdir}" install-libLTLIBRARIES + cd "${srcdir}/${pkgbase}-${pkgver}/glib" + make DESTDIR="${pkgdir}" install + install -m755 -d "${pkgdir}/usr/lib/pkgconfig" + install -m644 ../poppler-glib.pc "${pkgdir}/usr/lib/pkgconfig/" + rm -f "${pkgdir}"/usr/lib/libpoppler.* + rm -f "${pkgdir}/usr/bin/poppler-glib-demo" +} + +package_poppler-qt() { + pkgdesc="Poppler Qt bindings" + depends=("poppler=${pkgver}" 'qt') + + cd "${srcdir}/${pkgbase}-${pkgver}/poppler" + make DESTDIR="${pkgdir}" install-libLTLIBRARIES + cd "${srcdir}/${pkgbase}-${pkgver}/qt4" + make DESTDIR="${pkgdir}" install + install -m755 -d "${pkgdir}/usr/lib/pkgconfig" + install -m644 ../poppler-qt4.pc "${pkgdir}/usr/lib/pkgconfig/" + rm -f "${pkgdir}"/usr/lib/libpoppler.* +} diff --git a/testing/psmisc/PKGBUILD b/testing/psmisc/PKGBUILD index 95529b6a4..d08830b1d 100644 --- a/testing/psmisc/PKGBUILD +++ b/testing/psmisc/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 162032 2012-06-19 01:20:04Z eric $ +# $Id: PKGBUILD 162304 2012-06-24 20:02:02Z eric $ # Maintainer: Eric Bélanger <eric@archlinux.org> pkgname=psmisc -pkgver=22.18 +pkgver=22.19 pkgrel=1 pkgdesc="Miscellaneous procfs tools" arch=('i686' 'x86_64') @@ -11,7 +11,7 @@ license=('GPL') groups=('base') depends=('ncurses') source=(http://downloads.sourceforge.net/psmisc/${pkgname}-${pkgver}.tar.gz) -sha1sums=('964f6daa0950b128a0840d9df4dc0b671730a83c') +sha1sums=('4c8fb774449f966f78c4c6e1d77d1a24b4187410') build() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/testing/systemd/PKGBUILD b/testing/systemd/PKGBUILD index 367b26834..2d9323250 100644 --- a/testing/systemd/PKGBUILD +++ b/testing/systemd/PKGBUILD @@ -4,7 +4,7 @@ pkgbase=systemd pkgname=('systemd' 'libsystemd' 'systemd-tools' 'systemd-sysvcompat') pkgver=185 -pkgrel=2 +pkgrel=3 arch=('i686' 'x86_64') url="http://www.freedesktop.org/wiki/Software/systemd" license=('GPL2' 'LGPL2.1' 'MIT') @@ -132,6 +132,7 @@ package_systemd() { mv "$pkgdir"/etc/udev etc mv "$pkgdir"/etc/{binfmt,modules-load,sysctl,tmpfiles}.d etc mv "$pkgdir"/usr/bin/udevadm usr/bin + mv "$pkgdir"/usr/bin/systemd-machine-id-setup usr/bin mv "$pkgdir"/usr/lib/pkgconfig usr/lib mv "$pkgdir"/usr/lib/systemd/systemd-udevd usr/lib/systemd mv "$pkgdir"/usr/lib/systemd/system/systemd-udev* usr/lib/systemd/system @@ -147,7 +148,7 @@ package_systemd() { mv "$pkgdir"/usr/share/gtk-doc/html/{g,lib}udev usr/share/gtk-doc/html mv "$pkgdir"/usr/share/man/man7/udev.7 usr/share/man/man7 mv "$pkgdir"/usr/share/man/man8/{systemd-{tmpfiles,udevd},udevadm}.8 usr/share/man/man8 - mv "$pkgdir"/usr/share/man/man1/systemd-{ask-password,delta,detect-virt}.1 usr/share/man/man1 + mv "$pkgdir"/usr/share/man/man1/systemd-{ask-password,delta,detect-virt,machine-id-setup}.1 usr/share/man/man1 mv "$pkgdir"/usr/share/man/man5/{binfmt,modules-load,sysctl,tmpfiles}.d.5 usr/share/man/man5 mv "$pkgdir"/usr/share/man/man5/{hostname,{vconsole,locale}.conf}.5 usr/share/man/man5 mv "$pkgdir"/usr/bin/systemd-{ask-password,delta,detect-virt,tmpfiles,tty-ask-password-agent} usr/bin diff --git a/testing/systemd/systemd-tools.install b/testing/systemd/systemd-tools.install index c1c19d15d..7d0bd8790 100644 --- a/testing/systemd/systemd-tools.install +++ b/testing/systemd/systemd-tools.install @@ -1,7 +1,13 @@ # arg 1: the new package version # arg 2: the old package version +post_install() { + systemd-machine-id-setup +} + post_upgrade() { + systemd-machine-id-setup + if [ "$(vercmp $2 174)" -lt 0 ]; then echo " * We now use upstream rules for assigning devices to the 'disk', 'optical'," echo " 'scanner' and 'video' groups. Beware of any changes." diff --git a/testing/systemd/systemd.install b/testing/systemd/systemd.install index cb82b6c8c..e369f094d 100644 --- a/testing/systemd/systemd.install +++ b/testing/systemd/systemd.install @@ -5,8 +5,6 @@ sd_booted() { } post_install() { - systemd-machine-id-setup - # enable getty@tty1 by default, but don't track the file systemctl enable getty@.service @@ -15,8 +13,6 @@ post_install() { } post_upgrade() { - systemd-machine-id-setup - if sd_booted; then # we moved the binary in 44-2 to /usr, so a reexec leads to a # coredump. refuse this reexec and warn the user that they should diff --git a/testing/sysvinit/0001-simplify-writelog.patch b/testing/sysvinit/0001-simplify-writelog.patch new file mode 100644 index 000000000..cc28f14bc --- /dev/null +++ b/testing/sysvinit/0001-simplify-writelog.patch @@ -0,0 +1,126 @@ +From 5577552eb1344ddd661893564b1e628f8edcf13d Mon Sep 17 00:00:00 2001 +From: Florian Pritz <bluewind@xinu.at> +Date: Fri, 15 Jun 2012 16:41:52 +0200 +Subject: [PATCH 1/2] simplify writelog() + +All we do is prepend the date and remove \r. We don't handle color +codes, but the user can just cat the log file in a terminal and it will +interpret the codes correctly. + +Signed-off-by: Florian Pritz <bluewind@xinu.at> +--- + bootlogd.c | 76 +++++++++++++++++------------------------------------------- + 1 file changed, 21 insertions(+), 55 deletions(-) + +diff --git a/bootlogd.c b/bootlogd.c +index 570d382..e36e261 100644 +--- a/bootlogd.c ++++ b/bootlogd.c +@@ -68,11 +68,6 @@ int didnl = 1; + int createlogfile = 0; + int syncalot = 0; + +-struct line { +- char buf[256]; +- int pos; +-} line; +- + /* + * Console devices as listed on the kernel command line and + * the mapping to actual devices in /dev +@@ -351,63 +346,34 @@ int consolename(char *res, int rlen) + */ + void writelog(FILE *fp, unsigned char *ptr, int len) + { +- time_t t; +- char *s; +- char tmp[8]; +- int olen = len; +- int dosync = 0; +- int tlen; +- +- while (len > 0) { +- tmp[0] = 0; +- if (didnl) { ++ int dosync = 0; ++ int i; ++ static int first_run = 1; ++ ++ for (i = 0; i < len; i++) { ++ int ignore = 0; ++ ++ /* prepend date to every line */ ++ if (*(ptr-1) == '\n' || first_run) { ++ time_t t; ++ char *s; + time(&t); + s = ctime(&t); + fprintf(fp, "%.24s: ", s); +- didnl = 0; ++ dosync = 1; ++ first_run = 0; + } +- switch (*ptr) { +- case 27: /* ESC */ +- strcpy(tmp, "^["); +- break; +- case '\r': +- line.pos = 0; +- break; +- case 8: /* ^H */ +- if (line.pos > 0) line.pos--; +- break; +- case '\n': +- didnl = 1; +- dosync = 1; +- break; +- case '\t': +- line.pos += (line.pos / 8 + 1) * 8; +- if (line.pos >= (int)sizeof(line.buf)) +- line.pos = sizeof(line.buf) - 1; +- break; +- case 32 ... 127: +- case 161 ... 255: +- tmp[0] = *ptr; +- tmp[1] = 0; +- break; +- default: +- sprintf(tmp, "\\%03o", *ptr); +- break; +- } +- ptr++; +- len--; + +- tlen = strlen(tmp); +- if (tlen && (line.pos + tlen < (int)sizeof(line.buf))) { +- memcpy(line.buf + line.pos, tmp, tlen); +- line.pos += tlen; ++ if (*ptr == '\r') { ++ ignore = 1; + } +- if (didnl) { +- fprintf(fp, "%s\n", line.buf); +- memset(&line, 0, sizeof(line)); ++ ++ if (!ignore) { ++ fwrite(ptr, sizeof(char), 1, fp); + } +- } + ++ ptr++; ++ } + if (dosync) { + fflush(fp); + if (syncalot) { +@@ -415,7 +381,7 @@ void writelog(FILE *fp, unsigned char *ptr, int len) + } + } + +- outptr += olen; ++ outptr += len; + if (outptr >= endptr) + outptr = ringbuf; + +-- +1.7.10.4 + diff --git a/testing/sysvinit/0002-remove-ansi-escape-codes-from-log-file.patch b/testing/sysvinit/0002-remove-ansi-escape-codes-from-log-file.patch new file mode 100644 index 000000000..89b3280df --- /dev/null +++ b/testing/sysvinit/0002-remove-ansi-escape-codes-from-log-file.patch @@ -0,0 +1,80 @@ +From 8d0022d9540112a92ce8d88c91c4ac10bad8c9ef Mon Sep 17 00:00:00 2001 +From: Florian Pritz <bluewind@xinu.at> +Date: Sun, 24 Jun 2012 15:49:51 +0200 +Subject: [PATCH 2/2] remove ansi escape codes from log file + +References: https://en.wikipedia.org/wiki/ANSI_escape_code + +Signed-off-by: Florian Pritz <bluewind@xinu.at> +--- + bootlogd.c | 45 +++++++++++++++++++++++++++++++++++++++++++-- + 1 file changed, 43 insertions(+), 2 deletions(-) + +diff --git a/bootlogd.c b/bootlogd.c +index e36e261..88e610d 100644 +--- a/bootlogd.c ++++ b/bootlogd.c +@@ -349,6 +349,7 @@ void writelog(FILE *fp, unsigned char *ptr, int len) + int dosync = 0; + int i; + static int first_run = 1; ++ static int inside_esc = 0; + + for (i = 0; i < len; i++) { + int ignore = 0; +@@ -364,10 +365,50 @@ void writelog(FILE *fp, unsigned char *ptr, int len) + first_run = 0; + } + +- if (*ptr == '\r') { +- ignore = 1; ++ /* remove escape sequences, but do it in a way that allows us to stop ++ * in the middle in case the string was cut off */ ++ if (inside_esc == 1) { ++ /* first '[' is special because if we encounter it again, it should be considered the final byte */ ++ if (*ptr == '[') { ++ /* multi char sequence */ ++ ignore = 1; ++ inside_esc = 2; ++ } else { ++ /* single char sequence */ ++ if (*ptr >= 64 && *ptr <= 95) { ++ ignore = 1; ++ } ++ inside_esc = 0; ++ } ++ } else if (inside_esc == 2) { ++ switch (*ptr) { ++ case '0' ... '9': /* intermediate chars of escape sequence */ ++ case ';': ++ case 32 ... 47: ++ if (inside_esc) { ++ ignore = 1; ++ } ++ break; ++ case 64 ... 126: /* final char of escape sequence */ ++ if (inside_esc) { ++ ignore = 1; ++ inside_esc = 0; ++ } ++ break; ++ } ++ } else { ++ switch (*ptr) { ++ case '\r': ++ ignore = 1; ++ break; ++ case 27: /* ESC */ ++ ignore = 1; ++ inside_esc = 1; ++ break; ++ } + } + ++ + if (!ignore) { + fwrite(ptr, sizeof(char), 1, fp); + } +-- +1.7.10.4 + diff --git a/testing/sysvinit/PKGBUILD b/testing/sysvinit/PKGBUILD index 1355d31b4..5c5abe74d 100644 --- a/testing/sysvinit/PKGBUILD +++ b/testing/sysvinit/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 161862 2012-06-15 23:09:01Z bluewind $ +# $Id: PKGBUILD 162300 2012-06-24 19:35:10Z bluewind $ # Maintainer: Eric Belanger <eric@archlinux.org> pkgname=sysvinit pkgver=2.88 -pkgrel=5 +pkgrel=6 pkgdesc="Linux System V Init" arch=('i686' 'x86_64') url="http://savannah.nongnu.org/projects/sysvinit" @@ -12,15 +12,18 @@ groups=('base') depends=('util-linux' 'coreutils' 'glibc' 'awk') install=sysvinit.install source=(http://download.savannah.gnu.org/releases/sysvinit/${pkgname}-${pkgver}dsf.tar.bz2 - "simplify-writelog.patch") + "0001-simplify-writelog.patch" + "0002-remove-ansi-escape-codes-from-log-file.patch") sha1sums=('f2ca149df1314a91f3007cccd7a0aa47d990de26' - 'd970e44e8b5574b3b6be709c7682845a974ed1ed') + '326112c8a9bd24cb45bd4bb2f958a25f0ac4773d' + 'bbecfa7dfa45ac7c37ed8ac59fb53f6a85064b32') build() { cd "${srcdir}/${pkgname}-${pkgver}dsf" # FS#30005 - patch -p1 -d "src" -i "${srcdir}/simplify-writelog.patch" + patch -p1 -d "src" -i "${srcdir}/0001-simplify-writelog.patch" + patch -p1 -d "src" -i "${srcdir}/0002-remove-ansi-escape-codes-from-log-file.patch" make } diff --git a/testing/xournal/PKGBUILD b/testing/xournal/PKGBUILD new file mode 100644 index 000000000..4ef0d66a8 --- /dev/null +++ b/testing/xournal/PKGBUILD @@ -0,0 +1,27 @@ +# $Id: PKGBUILD 162297 2012-06-24 19:25:38Z foutrelis $ +# Maintainer: Gaetan Bisson <bisson@archlinux.org> + +pkgname=xournal +pkgver=0.4.6 +pkgrel=2 +pkgdesc='Notetaking and sketching application' +url='http://xournal.sourceforge.net/' +license=('GPL') +arch=('i686' 'x86_64') +depends=('libgnomecanvas' 'poppler-glib' 'shared-mime-info' 'desktop-file-utils' 'hicolor-icon-theme') +optdepends=('ghostscript: import PS/PDF files as bitmap backgrounds') +source=("http://downloads.sourceforge.net/project/${pkgname}/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz") +sha1sums=('4ebe79e3df7155d2a09c341537a639ac2332d4c8') + +install=install + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + ./configure --prefix=/usr LIBS='-lm -lz' + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make DESTDIR="${pkgdir}" install desktop-install +} diff --git a/testing/xournal/install b/testing/xournal/install new file mode 100644 index 000000000..dfcb68374 --- /dev/null +++ b/testing/xournal/install @@ -0,0 +1,13 @@ +post_install() { + update-desktop-database -q + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor + update-mime-database usr/share/mime &>/dev/null +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} |