diff options
Diffstat (limited to 'testing')
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 +} |