summaryrefslogtreecommitdiff
path: root/testing
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-05-23 00:02:37 +0000
committerroot <root@rshg054.dnsready.net>2012-05-23 00:02:37 +0000
commitbd614ac21d2754d778a796cd5e92d1568ec8baec (patch)
tree094c785b4da8bafd835e9e319e9908b776258975 /testing
parent62e13d20ed92262c7396eff00d048ce815693e74 (diff)
Wed May 23 00:02:37 UTC 2012
Diffstat (limited to 'testing')
-rw-r--r--testing/calligra/PKGBUILD264
-rw-r--r--testing/calligra/calligra-braindump.install12
-rw-r--r--testing/calligra/calligra-filters.install11
-rw-r--r--testing/calligra/calligra-flow.install12
-rw-r--r--testing/calligra/calligra-karbon.install12
-rw-r--r--testing/calligra/calligra-kexi.install11
-rw-r--r--testing/calligra/calligra-krita.install13
-rw-r--r--testing/calligra/calligra-plan.install12
-rw-r--r--testing/calligra/calligra-sheets.install12
-rw-r--r--testing/calligra/calligra-stage.install12
-rw-r--r--testing/calligra/calligra-tools.install12
-rw-r--r--testing/calligra/calligra-words.install12
-rw-r--r--testing/calligra/calligra.install11
-rw-r--r--testing/cups-filters/PKGBUILD42
-rw-r--r--testing/dnsutils/PKGBUILD52
-rw-r--r--testing/dnsutils/remove-bind.patch25
-rw-r--r--testing/inkscape/PKGBUILD59
-rw-r--r--testing/inkscape/install13
-rw-r--r--testing/inkscape/libpng15.patch40
-rw-r--r--testing/inkscape/poppler20.patch642
-rw-r--r--testing/kdegraphics-okular/PKGBUILD34
-rw-r--r--testing/kdegraphics-okular/kdegraphics-okular.install12
-rw-r--r--testing/ldns/PKGBUILD41
-rw-r--r--testing/libevent/PKGBUILD34
-rw-r--r--testing/libreoffice/PKGBUILD707
-rw-r--r--testing/libreoffice/buildfix_icu49.diff42
-rw-r--r--testing/libreoffice/fix_broken_hebrew_wordwrapping.diff360
-rw-r--r--testing/libreoffice/libreoffice-base.install11
-rw-r--r--testing/libreoffice/libreoffice-calc.install11
-rw-r--r--testing/libreoffice/libreoffice-common.csh1
-rw-r--r--testing/libreoffice/libreoffice-common.install47
-rw-r--r--testing/libreoffice/libreoffice-common.sh1
-rw-r--r--testing/libreoffice/libreoffice-draw.install11
-rw-r--r--testing/libreoffice/libreoffice-impress.install11
-rw-r--r--testing/libreoffice/libreoffice-writer.install11
-rw-r--r--testing/lirc/PKGBUILD105
-rw-r--r--testing/lirc/irexec.conf5
-rwxr-xr-xtesting/lirc/irexecd38
-rw-r--r--testing/lirc/kernel-2.6.39.patch54
-rw-r--r--testing/lirc/lirc.install16
-rw-r--r--testing/lirc/lirc.logrotate5
-rw-r--r--testing/lirc/lirc_atiusb-kfifo.patch31
-rw-r--r--testing/lirc/lirc_wpc8769l.patch88
-rwxr-xr-xtesting/lirc/lircd52
-rw-r--r--testing/lirc/lircd-handle-large-config.patch39
-rw-r--r--testing/lirc/lircd.conf8
-rwxr-xr-xtesting/lirc/lircmd36
-rw-r--r--testing/poppler/PKGBUILD80
-rw-r--r--testing/xpdf/PKGBUILD64
-rw-r--r--testing/xpdf/char.patch12
-rw-r--r--testing/xpdf/desktop9
-rw-r--r--testing/xpdf/install11
52 files changed, 3266 insertions, 0 deletions
diff --git a/testing/calligra/PKGBUILD b/testing/calligra/PKGBUILD
new file mode 100644
index 000000000..fc1586c19
--- /dev/null
+++ b/testing/calligra/PKGBUILD
@@ -0,0 +1,264 @@
+# $Id: PKGBUILD 159321 2012-05-21 16:27:46Z jgc $
+# 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.1
+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=('a4da7e1181e1539850a4fcae466d7d75')
+
+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/cups-filters/PKGBUILD b/testing/cups-filters/PKGBUILD
new file mode 100644
index 000000000..a21ad5f26
--- /dev/null
+++ b/testing/cups-filters/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 159323 2012-05-21 16:27:48Z jgc $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=cups-filters
+pkgver=1.0.17
+pkgrel=2
+pkgdesc="OpenPrinting CUPS Filters"
+arch=('i686' 'x86_64')
+url="http://www.linuxfoundation.org/collaborate/workgroups/openprinting"
+license=('GPL')
+groups=()
+depends=('ghostscript' 'lcms2' 'poppler') # bc ? https://bugs.archlinux.org/task/29808
+makedepends=()
+optdepends=()
+provides=()
+conflicts=()
+replaces=()
+backup=()
+#options=(!makeflags)
+install=
+source=(http://www.openprinting.org/download/cups-filters/$pkgname-$pkgver.tar.gz)
+md5sums=('5132b018cc503e9338fbd029acf56e55')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc
+ make
+}
+
+#check() {
+# cd "$srcdir/$pkgname-$pkgver"
+# make -k check
+#}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ #make DESTDIR="$pkgdir/" install
+ make install BUILDROOT="$pkgdir/"
+ # drop static lib
+ rm -f ${pkgdir}/usr/lib/*.a
+}
diff --git a/testing/dnsutils/PKGBUILD b/testing/dnsutils/PKGBUILD
new file mode 100644
index 000000000..de669eb6c
--- /dev/null
+++ b/testing/dnsutils/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 159346 2012-05-22 02:13:38Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: kevin <kevin@archlinux.org>
+# Contributor: mario <mario_vazq@hotmail.com>
+
+pkgname=dnsutils
+
+# Use a period and not a hyphen before the patch level for proper versioning.
+pkgver=9.9.1
+_pkgver=9.9.1
+pkgrel=1
+
+pkgdesc='DNS utilities: dig host nslookup'
+url='http://www.isc.org/software/bind/'
+license=('custom:ISC')
+arch=('i686' 'x86_64')
+options=('!makeflags')
+depends=('openssl' 'krb5' 'idnkit' 'dnssec-anchors')
+source=("http://ftp.isc.org/isc/bind9/${_pkgver}/bind-${_pkgver}.tar.gz"
+ 'remove-bind.patch')
+sha1sums=('c963de85ba6f55d7615471b29b356efe6c844e9c'
+ 'b465ef6160b004838f04de9978fe1be8422af777')
+
+replaces=('bind-tools' 'host')
+
+build() {
+ cd "${srcdir}/bind-${_pkgver}"
+
+ patch -p1 -i ../remove-bind.patch
+ export STD_CDEFINES='-DDIG_SIGCHASE'
+
+ # hack to remove unused bloat from the binaries
+ CFLAGS+=' -fdata-sections -ffunction-sections'
+ LDFLAGS+=' -Wl,--gc-sections'
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-linux-caps \
+ --with-openssl \
+ --with-idn \
+
+ make
+}
+
+package() {
+ cd "${srcdir}/bind-${_pkgver}"
+ install -Dm644 COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ cd bin; make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/dnsutils/remove-bind.patch b/testing/dnsutils/remove-bind.patch
new file mode 100644
index 000000000..19d650964
--- /dev/null
+++ b/testing/dnsutils/remove-bind.patch
@@ -0,0 +1,25 @@
+diff -aur old/bin/Makefile.in new/bin/Makefile.in
+--- old/bin/Makefile.in 2009-10-05 05:07:08.000000000 -0700
++++ new/bin/Makefile.in 2011-08-28 19:16:17.245495043 -0700
+@@ -19,8 +19,7 @@
+ VPATH = @srcdir@
+ top_srcdir = @top_srcdir@
+
+-SUBDIRS = named rndc dig dnssec tests tools nsupdate \
+- check confgen @PKCS11_TOOLS@
++SUBDIRS = dig
+ TARGETS =
+
+ @BIND9_MAKE_RULES@
+diff -aur old/lib/Makefile.in new/lib/Makefile.in
+--- old/lib/Makefile.in 2007-06-19 16:47:13.000000000 -0700
++++ new/lib/Makefile.in 2011-08-28 19:17:50.828688599 -0700
+@@ -23,7 +23,7 @@
+ # Attempt to disable parallel processing.
+ .NOTPARALLEL:
+ .NO_PARALLEL:
+-SUBDIRS = isc isccc dns isccfg bind9 lwres tests
++SUBDIRS = isc dns isccfg bind9 lwres
+ TARGETS =
+
+ @BIND9_MAKE_RULES@
diff --git a/testing/inkscape/PKGBUILD b/testing/inkscape/PKGBUILD
new file mode 100644
index 000000000..2b10c0dc8
--- /dev/null
+++ b/testing/inkscape/PKGBUILD
@@ -0,0 +1,59 @@
+# $Id: PKGBUILD 159325 2012-05-21 16:27:51Z jgc $
+# 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=3
+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/kdegraphics-okular/PKGBUILD b/testing/kdegraphics-okular/PKGBUILD
new file mode 100644
index 000000000..d2f71393b
--- /dev/null
+++ b/testing/kdegraphics-okular/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 159327 2012-05-21 16:27:55Z jgc $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-okular
+pkgver=4.8.3
+pkgrel=2
+pkgdesc='Document Viewer'
+arch=('i686' 'x86_64')
+url="http://kde.org/applications/graphics/okular/"
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime' 'qimageblitz' 'poppler-qt' 'chmlib' 'djvulibre'
+ 'ebook-tools' 'libspectre')
+makedepends=('cmake' 'automoc4')
+optdepends=('kdegraphics-mobipocket: mobipocket support')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/okular-${pkgver}.tar.xz")
+sha1sums=('7c43076df3e9d6217e2a5cbb8ef6d8af89f8ae37')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../okular-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/kdegraphics-okular/kdegraphics-okular.install b/testing/kdegraphics-okular/kdegraphics-okular.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/testing/kdegraphics-okular/kdegraphics-okular.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/ldns/PKGBUILD b/testing/ldns/PKGBUILD
new file mode 100644
index 000000000..18573ced5
--- /dev/null
+++ b/testing/ldns/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 159317 2012-05-21 14:35:28Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: mathieui <mathieui@mathieui.net>
+# Contributor: jiribb <jiribb@gmail.com>
+
+pkgname=ldns
+pkgver=1.6.13
+pkgrel=1
+pkgdesc='Fast DNS library supporting recent RFCs'
+url='http://www.nlnetlabs.nl/projects/ldns/'
+license=('custom:BSD')
+arch=('i686' 'x86_64')
+options=('!libtool')
+depends=('openssl' 'dnssec-anchors')
+optdepends=('libpcap: ldns-dpa tool')
+makedepends=('libpcap')
+source=("http://www.nlnetlabs.nl/downloads/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('859f633d10b763f06b602e2113828cbbd964c7eb')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --enable-static=no \
+ --disable-rpath \
+ --with-drill \
+ --with-examples \
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/testing/libevent/PKGBUILD b/testing/libevent/PKGBUILD
new file mode 100644
index 000000000..7a3ff2dee
--- /dev/null
+++ b/testing/libevent/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 159341 2012-05-21 22:24:00Z tomegun $
+# Maintainer: Tom Gundersen <teg@jklm.no>
+# Contributor: Judd <jvinet@zeroflux.org>
+
+pkgname=libevent
+pkgver=2.0.19
+pkgrel=1
+pkgdesc="An event notification library"
+arch=('i686' 'x86_64')
+url="http://www.monkey.org/~provos/libevent/"
+license=('BSD')
+depends=('openssl')
+optdepends=('python2: to use event_rpcgen.py')
+options=('!libtool')
+source=(https://github.com/downloads/${pkgname}/${pkgname}/${pkgname}-$pkgver-stable.tar.gz{,.asc})
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}-stable"
+ sed -i 's#python#python2#' event_rpcgen.py
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}-stable"
+ make check || true # this never worked, should be taken upstream
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}-stable"
+ make DESTDIR="${pkgdir}" install
+}
+md5sums=('91111579769f46055b0a438f5cc59572'
+ 'a211997b20913954f744a665f31f77d2')
diff --git a/testing/libreoffice/PKGBUILD b/testing/libreoffice/PKGBUILD
new file mode 100644
index 000000000..0167edfdf
--- /dev/null
+++ b/testing/libreoffice/PKGBUILD
@@ -0,0 +1,707 @@
+# $Id: PKGBUILD 159329 2012-05-21 16:28:00Z jgc $
+# 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.3.2
+pkgver=3.5.3
+pkgrel=3
+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' '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}/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
+ poppler_buildfix.diff::http://cgit.freedesktop.org/libreoffice/core/patch/?id=ac68934592ec7d838cf5c22744be8d97aa4a1a47
+ fix_broken_hebrew_wordwrapping.diff
+ buildfix_icu49.diff
+ libreoffice-common.sh libreoffice-common.csh)
+noextract=(2fa6028324347860e684e75310818d43-libvisio-0.0.16.tar.bz2
+ 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=('d22cd79e7463ac4caf0a4b47d78a82ac'
+ '3455f3f523d739aa391b5a5bf04ff958'
+ '945fbf7888c464f4e1cf7282d370b257'
+ '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'
+ '72ba8d57cefdc25a6f1bc845edfd4d78'
+ '025d9b17d9eb90dc282c5c1289a666aa'
+ '9734ea20c9f67e1b6e1c5a1247fbd3ff'
+ '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
+ #patch -Np0 -i ${srcdir}/buildfix_icu49.diff
+ patch -Np1 -i ${srcdir}/poppler_buildfix.diff
+ # https://bugs.archlinux.org/task/29854 based on 3.6/master patch http://cgit.freedesktop.org/libreoffice/core/patch/?id=20c24114143d6d38774b56a142fd4ae05094308e
+ patch -Np1 -i ${srcdir}/fix_broken_hebrew_wordwrapping.diff
+
+ # unset C(XX)FLAGS
+ # http://www.openoffice.org/issues/show_bug.cgi?id=103205
+# 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 -m644 ${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/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/lirc/PKGBUILD b/testing/lirc/PKGBUILD
new file mode 100644
index 000000000..9dcc59b3a
--- /dev/null
+++ b/testing/lirc/PKGBUILD
@@ -0,0 +1,105 @@
+# $Id: PKGBUILD 159313 2012-05-21 12:34:25Z tpowa $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+
+pkgbase=lirc
+pkgname=('lirc' 'lirc-utils')
+pkgver=0.9.0
+pkgrel=17
+epoch=1
+_extramodules=extramodules-3.4-ARCH
+arch=('i686' 'x86_64')
+url="http://www.lirc.org/"
+license=('GPL')
+### NOTICE don't forget to bump version in depends in package_lirc
+makedepends=('help2man' 'linux-headers>=3.4' 'linux-headers<3.5' 'alsa-lib' 'libx11' 'libftdi' 'libirman' 'python2')
+options=('!makeflags' '!strip')
+source=(http://prdownloads.sourceforge.net/${pkgbase}/${pkgbase}-${pkgver}.tar.bz2
+ lirc_wpc8769l.patch
+ lircd-handle-large-config.patch
+ lirc_atiusb-kfifo.patch
+ kernel-2.6.39.patch
+ lircd lircmd lirc.logrotate lircd.conf irexec.conf irexecd)
+md5sums=('b232aef26f23fe33ea8305d276637086'
+ '1cce37e18e3f6f46044abab29016d18f'
+ 'b70cc9640505205446ec47b7d4779f38'
+ '1f8b104a2365d9f93404b143f499059b'
+ '087a7d102e1c96bf1179f38db2b0b237'
+ '8d0e238dc0eda95e340fe570605da492'
+ '85f7fdac55e5256967241864049bf5e9'
+ '3deb02604b37811d41816e9b4385fcc3'
+ '5b1f8c9cd788a39a6283f93302ce5c6e'
+ 'f0c0ac930326168035f0c8e24357ae55'
+ '69d099e6deedfa3c1ee2b6e82d9b8bfb')
+
+build() {
+ _kernver="$(cat /lib/modules/${_extramodules}/version)"
+ cd "${srcdir}/lirc-${pkgver}"
+ patch -Np1 -i "${srcdir}/lirc_wpc8769l.patch"
+ patch -Np1 -i "${srcdir}/lircd-handle-large-config.patch"
+ patch -Np1 -i "${srcdir}/lirc_atiusb-kfifo.patch"
+ patch -Np1 -i "${srcdir}/kernel-2.6.39.patch"
+
+ sed -i '/AC_PATH_XTRA/d' configure.ac
+ sed -e 's/@X_CFLAGS@//g' \
+ -e 's/@X_LIBS@//g' \
+ -e 's/@X_PRE_LIBS@//g' \
+ -e 's/@X_EXTRA_LIBS@//g' -i Makefile.am tools/Makefile.am
+ libtoolize
+ autoreconf
+
+ PYTHON=python2 ./configure --enable-sandboxed --prefix=/usr \
+ --with-driver=all --with-kerneldir=/usr/src/linux-${_kernver}/ \
+ --with-moduledir=/lib/modules/${_kernver}/kernel/drivers/misc \
+ --with-transmitter
+
+ # Remove drivers already in kernel
+ sed -e "s:lirc_dev::" -e "s:lirc_bt829::" -e "s:lirc_igorplugusb::" \
+ -e "s:lirc_imon::" -e "s:lirc_parallel::" -e "s:lirc_sasem::" \
+ -e "s:lirc_serial::" -e "s:lirc_sir::" -e "s:lirc_ttusbir::" \
+ -i Makefile drivers/Makefile drivers/*/Makefile tools/Makefile
+ make
+}
+
+package_lirc() {
+ pkgdesc="Linux Infrared Remote Control kernel modules for stock arch kernel"
+ depends=('lirc-utils' 'linux>=3.3' 'linux<3.4')
+ replaces=('lirc+pctv')
+ install=lirc.install
+
+ cd "${srcdir}/lirc-${pkgver}/drivers"
+ make DESTDIR="${pkgdir}" moduledir="/lib/modules/${_extramodules}" install
+
+ # set the kernel we've built for inside the install script
+ sed -i -e "s/EXTRAMODULES=.*/EXTRAMODULES=${_extramodules}/g" "${startdir}/lirc.install"
+ # gzip -9 modules
+ find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \;
+}
+
+package_lirc-utils() {
+ pkgdesc="Linux Infrared Remote Control utils"
+ depends=('alsa-lib' 'libx11' 'libftdi' 'libirman')
+ optdepends=('python2: pronto2lirc utility')
+ options=('strip' '!libtool')
+ backup=('etc/conf.d/lircd.conf' 'etc/conf.d/irexec.conf')
+
+ cd "${srcdir}/lirc-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -d "${pkgdir}/usr/share/lirc" "${pkgdir}/etc/rc.d"
+ cp "${srcdir}"/{lircd,lircmd,irexecd} "${pkgdir}/etc/rc.d"
+ cp -rp remotes "${pkgdir}/usr/share/lirc"
+ chmod -R go-w "${pkgdir}/usr/share/lirc/"
+
+ # install the logrotate config
+ install -Dm644 "${srcdir}/lirc.logrotate" "${pkgdir}/etc/logrotate.d/lirc"
+
+ # install conf.d file
+ install -Dm644 "${srcdir}/lircd.conf" "${pkgdir}/etc/conf.d/lircd.conf"
+
+ # install conf.d file
+ install -Dm644 "${srcdir}/irexec.conf" "${pkgdir}/etc/conf.d/irexec.conf"
+
+ install -d "${pkgdir}/etc/lirc"
+
+ # remove built modules
+ rm -r "${pkgdir}/lib/"
+}
diff --git a/testing/lirc/irexec.conf b/testing/lirc/irexec.conf
new file mode 100644
index 000000000..f911c7515
--- /dev/null
+++ b/testing/lirc/irexec.conf
@@ -0,0 +1,5 @@
+#
+# Parameters for irexec daemon (path to lircrc)
+#
+
+IREXEC_OPTS="" \ No newline at end of file
diff --git a/testing/lirc/irexecd b/testing/lirc/irexecd
new file mode 100755
index 000000000..a64b033a5
--- /dev/null
+++ b/testing/lirc/irexecd
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/irexec.conf
+
+PID=`pidof -o %PPID /usr/bin/irexec`
+case "$1" in
+ start)
+ stat_busy "Starting IREXEC Daemon"
+ [ -z "$PID" ] && /usr/bin/irexec --daemon $IREXEC_OPTS
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon irexecd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping IREXEC Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon irexecd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
+
diff --git a/testing/lirc/kernel-2.6.39.patch b/testing/lirc/kernel-2.6.39.patch
new file mode 100644
index 000000000..7353d61ca
--- /dev/null
+++ b/testing/lirc/kernel-2.6.39.patch
@@ -0,0 +1,54 @@
+diff -ru lirc-0.9.0/drivers//lirc_atiusb/lirc_atiusb.c lirc-0.9.0.new/drivers//lirc_atiusb/lirc_atiusb.c
+--- lirc-0.9.0/drivers//lirc_atiusb/lirc_atiusb.c 2011-03-25 23:28:18.000000000 +0100
++++ lirc-0.9.0.new/drivers//lirc_atiusb/lirc_atiusb.c 2011-06-07 17:02:20.356580306 +0200
+@@ -48,7 +48,6 @@
+ #include <linux/slab.h>
+ #include <linux/module.h>
+ #include <linux/kmod.h>
+-#include <linux/smp_lock.h>
+ #include <linux/completion.h>
+ #include <linux/uaccess.h>
+ #include <linux/usb.h>
+diff -ru lirc-0.9.0/drivers//lirc_i2c/lirc_i2c.c lirc-0.9.0.new/drivers//lirc_i2c/lirc_i2c.c
+--- lirc-0.9.0/drivers//lirc_i2c/lirc_i2c.c 2011-03-25 23:28:18.000000000 +0100
++++ lirc-0.9.0.new/drivers//lirc_i2c/lirc_i2c.c 2011-06-07 17:04:19.725933627 +0200
+@@ -555,8 +555,8 @@
+ kfree(ir);
+ return -EINVAL;
+ }
+- printk(KERN_INFO "lirc_i2c: chip 0x%x found @ 0x%02x (%s)\n",
+- adap->id, addr, ir->c.name);
++ printk(KERN_INFO "lirc_i2c: chip found @ 0x%02x (%s)\n",
++ addr, ir->c.name);
+
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 31)
+ /* register device */
+diff -ru lirc-0.9.0/drivers//lirc_wpc8769l/lirc_wpc8769l.c lirc-0.9.0.new/drivers//lirc_wpc8769l/lirc_wpc8769l.c
+--- lirc-0.9.0/drivers//lirc_wpc8769l/lirc_wpc8769l.c 2011-03-25 23:28:18.000000000 +0100
++++ lirc-0.9.0.new/drivers//lirc_wpc8769l/lirc_wpc8769l.c 2011-06-07 17:07:23.984935411 +0200
+@@ -361,14 +361,14 @@
+ size = count << 3;
+
+ ldata = (unsigned long *) data_buf;
+- next_one = generic_find_next_le_bit(ldata, size, 0);
++ next_one = find_next_zero_bit_le(ldata, size, 0);
+
+ if (next_one > 0)
+ put_pulse_bit(next_one
+ * WPC8769L_USECS_PER_BIT);
+
+ while (next_one < size) {
+- next_zero = generic_find_next_zero_le_bit(ldata,
++ next_zero = find_next_zero_bit_le(ldata,
+ size, next_one + 1);
+
+ put_space_bit(
+@@ -376,7 +376,7 @@
+ * WPC8769L_USECS_PER_BIT);
+
+ if (next_zero < size) {
+- next_one = generic_find_next_le_bit(ldata,
++ next_one = find_next_bit_le(ldata,
+ size, next_zero + 1);
+
+ put_pulse_bit(
diff --git a/testing/lirc/lirc.install b/testing/lirc/lirc.install
new file mode 100644
index 000000000..4551e88dc
--- /dev/null
+++ b/testing/lirc/lirc.install
@@ -0,0 +1,16 @@
+EXTRAMODULES=extramodules-3.4-ARCH
+
+post_install() {
+ # updating module dependencies
+ echo ">>> Updating module dependencies. Please wait ..."
+ depmod $(cat /lib/modules/$EXTRAMODULES/version) > /dev/null 2>&1
+}
+
+post_upgrade() {
+ post_install
+}
+
+# arg 1: the old package version
+post_remove() {
+ post_install
+}
diff --git a/testing/lirc/lirc.logrotate b/testing/lirc/lirc.logrotate
new file mode 100644
index 000000000..623c4f328
--- /dev/null
+++ b/testing/lirc/lirc.logrotate
@@ -0,0 +1,5 @@
+/var/log/lircd {
+ missingok
+ notifempty
+ delaycompress
+}
diff --git a/testing/lirc/lirc_atiusb-kfifo.patch b/testing/lirc/lirc_atiusb-kfifo.patch
new file mode 100644
index 000000000..a64984dce
--- /dev/null
+++ b/testing/lirc/lirc_atiusb-kfifo.patch
@@ -0,0 +1,31 @@
+From ec3c5660e67c122e2d5eb9cfa838c9709fccf8e0 Mon Sep 17 00:00:00 2001
+From: Jason Martin <publicmsu@gmail.com>
+Date: Fri, 3 Jun 2011 00:12:51 -0400
+Subject: [PATCH] lirc_atiusb: fix buffer alloc to work with new kfifo
+
+I came across posts with regards to lirc_atiusb and its compatibility
+with newer kernels, and their use of kfifo.I spent a little bit of time
+this evening, and was able to correct the issues with the driver, and
+now have a functioning lirc_atiusb device under the 2.6.38 kernel.
+
+Signed-off-by: Jarod Wilson <jarod@redhat.com>
+---
+ drivers/lirc_atiusb/lirc_atiusb.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/drivers/lirc_atiusb/lirc_atiusb.c b/drivers/lirc_atiusb/lirc_atiusb.c
+index 52080de..bf2b631 100644
+--- a/drivers/lirc_atiusb/lirc_atiusb.c
++++ b/drivers/lirc_atiusb/lirc_atiusb.c
+@@ -1048,7 +1048,7 @@ static struct atirf_dev *new_irctl(struct usb_interface *intf)
+ goto new_irctl_failure_check;
+ }
+
+- if (lirc_buffer_init(driver->rbuf, dclen, 1)) {
++ if (lirc_buffer_init(driver->rbuf, dclen, 2)) {
+ mem_failure = 4;
+ goto new_irctl_failure_check;
+ }
+--
+1.7.0.1
+
diff --git a/testing/lirc/lirc_wpc8769l.patch b/testing/lirc/lirc_wpc8769l.patch
new file mode 100644
index 000000000..e4e2a049b
--- /dev/null
+++ b/testing/lirc/lirc_wpc8769l.patch
@@ -0,0 +1,88 @@
+From 413e83bf504fe9a9a177f27742220cfcb184b034 Mon Sep 17 00:00:00 2001
+From: =?utf8?q?Juan=20Jes=C3=BAs=20Garc=C3=ADa=20de=20Soria=20Lucena?= <skandalfo@gmail.com>
+Date: Wed, 30 Mar 2011 16:46:35 -0400
+Subject: [PATCH] Make lirc_wpc8769l functional again
+
+Signed-off-by: Jarod Wilson <jarod@redhat.com>
+---
+ drivers/lirc_wpc8769l/lirc_wpc8769l.c | 28 +++++++++++++++++-----------
+ 1 files changed, 17 insertions(+), 11 deletions(-)
+
+diff --git a/drivers/lirc_wpc8769l/lirc_wpc8769l.c b/drivers/lirc_wpc8769l/lirc_wpc8769l.c
+index f820d11..4d04063 100644
+--- a/drivers/lirc_wpc8769l/lirc_wpc8769l.c
++++ b/drivers/lirc_wpc8769l/lirc_wpc8769l.c
+@@ -816,10 +816,6 @@ static int set_use_inc(void *data)
+ /* Reset last timeout value. */
+ lastus = 0;
+
+- /* Init the read buffer. */
+- if (lirc_buffer_init(&rbuf, sizeof(lirc_t), RBUF_LEN) < 0)
+- return -ENOMEM;
+-
+ /* Acquire the IRQ. */
+ result = request_irq(irq, irq_handler,
+ IRQF_DISABLED | IRQF_SHARED,
+@@ -863,9 +859,6 @@ static void set_use_dec(void *data)
+ /* Free the IRQ. */
+ free_irq(irq, THIS_MODULE);
+ dprintk("Freed IRQ %d\n", irq);
+-
+- /* Free the RX buffer. */
+- lirc_buffer_free(&rbuf);
+ }
+
+ static struct lirc_driver driver = {
+@@ -1065,19 +1058,29 @@ static int __init lirc_wpc8769l_module_init(void)
+ /* Do load-time checks. */
+ wpc8769l_power_up_and_check_if_we_woke_us_up();
+
++ /* Init the read buffer. */
++ if (lirc_buffer_init(&rbuf, sizeof(lirc_t), RBUF_LEN) < 0) {
++ rc = -ENOMEM;
++ goto exit_platform_exit;
++ }
++
+ /* Configure the driver hooks. */
+ driver.features = LIRC_CAN_REC_MODE2;
++ driver.dev = &lirc_wpc8769l_platform_dev->dev;
+ driver.minor = lirc_register_driver(&driver);
+ if (driver.minor < 0) {
+ eprintk("lirc_register_driver failed!\n");
+ rc = -EIO;
+- goto exit_platform_exit;
++ goto exit_release_buffer;
+ }
+
+ iprintk("Driver loaded.\n");
+
+ return 0; /* Everything OK. */
+
++exit_release_buffer:
++ lirc_buffer_free(&rbuf);
++
+ exit_platform_exit:
+ lirc_wpc8769l_platform_exit();
+
+@@ -1095,12 +1098,15 @@ module_init(lirc_wpc8769l_module_init);
+
+ static void __exit lirc_wpc8769l_module_exit(void)
+ {
+- /* Unregister the platform driver and device. */
+- lirc_wpc8769l_platform_exit();
+-
+ /* Unregister the LIRC driver. */
+ lirc_unregister_driver(driver.minor);
+
++ /* Free the buffer. */
++ lirc_buffer_free(&rbuf);
++
++ /* Unregister the platform driver and device. */
++ lirc_wpc8769l_platform_exit();
++
+ /* Release the second range. */
+ if (baseport2)
+ release_region(baseport2, WPC8769L_IO_REGION_2_SIZE);
+--
+1.7.0.1
+
diff --git a/testing/lirc/lircd b/testing/lirc/lircd
new file mode 100755
index 000000000..e9739b36e
--- /dev/null
+++ b/testing/lirc/lircd
@@ -0,0 +1,52 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/lircd.conf
+
+PID=$(pidof -o %PPID /usr/sbin/lircd)
+LIRCD_SYMLINKFILE=/dev/lircd
+LIRCD_SOCKET=/var/run/lirc/lircd
+case "$1" in
+ start)
+ stat_busy "Starting LIRC Daemon"
+ [ ! -d /var/run/lirc ] && install -d /var/run/lirc &>/dev/null
+ rm -f $LIRCD_SOCKET && ln -s $LIRCD_SOCKET $LIRCD_SYMLINKFILE
+ if [ $? -ne 0 ]; then
+ stat_fail
+ exit 0
+ fi
+ [ -n "$LIRC_DRIVER" ] && LIRC_EXTRAOPTS="-H $LIRC_DRIVER $LIRC_EXTRAOPTS"
+ [ -z "$PID" ] &&
+ if [ -n "$LIRC_DEVICE" ] ; then
+ eval /usr/sbin/lircd -d "$LIRC_DEVICE" $LIRC_EXTRAOPTS $LIRC_CONFIGFILE
+ else
+ /usr/sbin/lircd $LIRC_EXTRAOPTS $LIRC_CONFIGFILE
+ fi
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon lircd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping LIRC Daemon"
+ rm -f $LIRCD_SYMLINKFILE
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon lircd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 start|stop|restart"
+esac
+exit 0
diff --git a/testing/lirc/lircd-handle-large-config.patch b/testing/lirc/lircd-handle-large-config.patch
new file mode 100644
index 000000000..85bc20518
--- /dev/null
+++ b/testing/lirc/lircd-handle-large-config.patch
@@ -0,0 +1,39 @@
+From 5efb56bf22a5077db564c766ba7cc37bc269231d Mon Sep 17 00:00:00 2001
+From: Jarod Wilson <jarod@redhat.com>
+Date: Wed, 6 Apr 2011 11:04:12 -0400
+Subject: [PATCH] lircd: handle larger config files in write_socket better
+
+Pointed out by Michael Zanetti on list, irsend LIST has issues with long
+config files, which didn't exist in maintainer mode, as we were using a
+do while loop to make sure we spit out everything. Just use that loop
+all the time.
+
+Signed-off-by: Jarod Wilson <jarod@redhat.com>
+---
+ daemons/lircd.c | 8 ++------
+ 1 files changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/daemons/lircd.c b/daemons/lircd.c
+index 6c21a3a..ddcca05 100644
+--- a/daemons/lircd.c
++++ b/daemons/lircd.c
+@@ -231,14 +231,10 @@ inline int write_socket(int fd, const char *buf, int len)
+ int done, todo = len;
+
+ while (todo) {
+-#ifdef SIM_REC
+ do {
+ done = write(fd, buf, todo);
+- }
+- while (done < 0 && errno == EAGAIN);
+-#else
+- done = write(fd, buf, todo);
+-#endif
++ } while (done < 0 && errno == EAGAIN);
++
+ if (done <= 0)
+ return (done);
+ buf += done;
+--
+1.7.0.1
+
diff --git a/testing/lirc/lircd.conf b/testing/lirc/lircd.conf
new file mode 100644
index 000000000..760dab065
--- /dev/null
+++ b/testing/lirc/lircd.conf
@@ -0,0 +1,8 @@
+#
+# Parameters for lirc daemon
+#
+
+LIRC_DEVICE="/dev/lirc0"
+LIRC_DRIVER=""
+LIRC_EXTRAOPTS=""
+LIRC_CONFIGFILE=""
diff --git a/testing/lirc/lircmd b/testing/lirc/lircmd
new file mode 100755
index 000000000..220c47c9c
--- /dev/null
+++ b/testing/lirc/lircmd
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/lircmd`
+case "$1" in
+ start)
+ stat_busy "Starting lircmd Daemon"
+ [ -z "$PID" ] && /usr/sbin/lircmd
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon lircmd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping lircmd Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon lircmd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/testing/poppler/PKGBUILD b/testing/poppler/PKGBUILD
new file mode 100644
index 000000000..138a2fb2d
--- /dev/null
+++ b/testing/poppler/PKGBUILD
@@ -0,0 +1,80 @@
+# $Id: PKGBUILD 159331 2012-05-21 16:28:02Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=poppler
+pkgname=('poppler' 'poppler-glib' 'poppler-qt')
+pkgver=0.20.0
+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=('5bca54b9561bf5b14d9344efce2cd4f3'
+ '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/xpdf/PKGBUILD b/testing/xpdf/PKGBUILD
new file mode 100644
index 000000000..5009c613d
--- /dev/null
+++ b/testing/xpdf/PKGBUILD
@@ -0,0 +1,64 @@
+# $Id: PKGBUILD 159335 2012-05-21 16:28:07Z jgc $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: tobias <tobias@archlinux.org>
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgname=xpdf
+#pkgver=3.03_pl1
+pkgver=3.03
+pkgrel=2
+pkgdesc='Viewer for Portable Document Format (PDF) files'
+url='http://www.foolabs.com/xpdf/'
+license=('GPL2')
+arch=('i686' 'x86_64')
+depends=('lesstif' 'gsfonts' 'libxt')
+optdepends=('poppler: tools that used to be included in xpdf'
+ 'desktop-file-utils: for desktop environments')
+# "ftp://ftp.foolabs.com/pub/${pkgname}/${pkgname}-${pkgver%_*}pl1.patch"
+source=("ftp://ftp.foolabs.com/pub/${pkgname}/${pkgname}-${pkgver%_*}.tar.gz"
+ 'char.patch'
+ 'desktop')
+sha1sums=('499423e8a795e0efd76ca798239eb4d0d52fe248'
+ '5c471944685a6b24a2b0c0e000562d1a3263aeeb'
+ '3b6fe01636253676ffa0efe1b237a75af4721f6d')
+
+install=install
+backup=('etc/xpdfrc')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver%_*}"
+
+# patch -p1 -i "../${pkgname}-${_srcver}pl1.patch"
+ patch -p1 -i ../char.patch
+
+ sed -i 's:/usr/share/fonts/type1/gsfonts:/usr/share/fonts/Type1:' xpdf/GlobalParams.cc
+ sed -i 's:times-medium-r-normal--16:times-medium-r-normal--14:' xpdf/XPDFViewer.cc # FS#14217
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --enable-multithreaded \
+ --enable-wordlist \
+ --with-freetype2-library=/usr/lib \
+ --with-freetype2-includes=/usr/include/freetype2 \
+ --x-includes=/usr/include \
+ --with-Xm-library=/usr/lib \
+ --with-Xm-includes=/usr/include \
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver%_*}"
+
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm644 ../desktop "${pkgdir}/usr/share/applications/xpdf.desktop"
+ install -Dm644 xpdf/xpdfIcon.xpm "${pkgdir}/usr/share/pixmaps/xpdf.xpm"
+
+ # stuff provided by poppler
+ for tool in pdfdetach pdffonts pdfimages pdfinfo pdftoppm pdftops pdftotext; do
+ rm "${pkgdir}/usr/bin/${tool}" "${pkgdir}/usr/share/man/man1/${tool}.1"
+ done
+}
diff --git a/testing/xpdf/char.patch b/testing/xpdf/char.patch
new file mode 100644
index 000000000..8e49393a6
--- /dev/null
+++ b/testing/xpdf/char.patch
@@ -0,0 +1,12 @@
+diff -aur old/xpdf/XPDFViewer.cc new/xpdf/XPDFViewer.cc
+--- old/xpdf/XPDFViewer.cc 2011-08-15 14:08:53.000000000 -0700
++++ new/xpdf/XPDFViewer.cc 2011-08-17 11:05:55.739431215 -0700
+@@ -1803,7 +1803,7 @@
+ menuPane = XmCreatePulldownMenu(toolBar, "zoomMenuPane", args, n);
+ for (i = 0; i < nZoomMenuItems; ++i) {
+ n = 0;
+- s = XmStringCreateLocalized(zoomMenuInfo[i].label);
++ s = XmStringCreateLocalized((char *)zoomMenuInfo[i].label);
+ XtSetArg(args[n], XmNlabelString, s); ++n;
+ XtSetArg(args[n], XmNuserData, (XtPointer)i); ++n;
+ sprintf(buf, "zoom%d", i);
diff --git a/testing/xpdf/desktop b/testing/xpdf/desktop
new file mode 100644
index 000000000..06830ecda
--- /dev/null
+++ b/testing/xpdf/desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Xpdf
+Comment=Views Adobe PDF (acrobat) files
+Exec=xpdf
+Terminal=false
+Type=Application
+Icon=xpdf
+Categories=Office;
+MimeType=application/pdf;
diff --git a/testing/xpdf/install b/testing/xpdf/install
new file mode 100644
index 000000000..c6cf149dd
--- /dev/null
+++ b/testing/xpdf/install
@@ -0,0 +1,11 @@
+post_install() {
+ [[ -x /usr/bin/update-desktop-database ]] && update-desktop-database -q || true
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}