summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2011-12-20 23:14:59 +0000
committerroot <root@rshg054.dnsready.net>2011-12-20 23:14:59 +0000
commitea1f4bece8870857691a7123bdc899562760b3fe (patch)
treeb332a0692c3e63d46cb60cb1214fc57871e619c8
parent6d2dec5c3443d142a0131c43666929490961c16a (diff)
Tue Dec 20 23:14:59 UTC 2011
-rw-r--r--community-testing/bibletime/PKGBUILD31
-rw-r--r--community-testing/bibletime/bibletime.install13
-rw-r--r--community-testing/fatrat/PKGBUILD38
-rw-r--r--community-testing/freeradius/PKGBUILD45
-rw-r--r--community-testing/freeradius/freeradius.install22
-rw-r--r--community-testing/freeradius/krb5-build-fix.patch21
-rw-r--r--community-testing/freeradius/radiusd43
-rw-r--r--community-testing/gambas2/PKGBUILD950
-rw-r--r--community-testing/gambas2/db.firebird.gcc-4.6.0-fix.patch35
-rw-r--r--community-testing/gambas2/fix-gbi-gba-path.patch24
-rw-r--r--community-testing/gambas2/gambas2-runtime.install12
-rw-r--r--community-testing/gambas2/gambas2-script.install15
-rw-r--r--community-testing/gambas2/gambas2.install12
-rw-r--r--community-testing/gambas2/poppler-0.18.patch40
-rw-r--r--community-testing/gambas3/PKGBUILD1097
-rw-r--r--community-testing/gambas3/gambas3-runtime.install10
-rw-r--r--community-testing/gambas3/gambas3-script.install15
-rw-r--r--community-testing/goldendict/PKGBUILD38
-rw-r--r--community-testing/goldendict/goldendict-paths.diff10
-rw-r--r--community-testing/goldendict/goldendict.changelog11
-rw-r--r--community-testing/google-gadgets/PKGBUILD158
-rw-r--r--community-testing/google-gadgets/google-gadgets-common.install15
-rw-r--r--community-testing/google-gadgets/google-gadgets.changelog8
-rw-r--r--community-testing/google-gadgets/google-gadgets.install15
-rw-r--r--community-testing/google-gadgets/wifi-types.patch36
-rw-r--r--community-testing/gpsbabel/PKGBUILD48
-rw-r--r--community-testing/kadu/PKGBUILD32
-rw-r--r--community-testing/kvirc/PKGBUILD33
-rw-r--r--community-testing/kvirc/kvirc.install13
-rw-r--r--community-testing/libgda3/PKGBUILD27
-rw-r--r--community-testing/luminancehdr/PKGBUILD42
-rw-r--r--community-testing/luminancehdr/luminance-hdr-2.1.0-libraw.patch10
-rw-r--r--community-testing/luminancehdr/luminancehdr.changelog33
-rw-r--r--community-testing/luminancehdr/luminancehdr.install12
-rw-r--r--community-testing/myodbc/PKGBUILD31
-rw-r--r--community-testing/myodbc/myconf.h.in165
-rw-r--r--community-testing/myodbc/myodbc-64bit.patch85
-rw-r--r--community-testing/myodbc/myodbc-add-mysys.patch29
-rw-r--r--community-testing/myodbc/myodbc-my-free.patch253
-rw-r--r--community-testing/myodbc/myodbc-shutdown.patch27
-rw-r--r--community-testing/mythtv/PKGBUILD82
-rw-r--r--community-testing/mythtv/build.patch13
-rw-r--r--community-testing/mythtv/mythbackend.conf92
-rw-r--r--community-testing/mythtv/mythbackend.rc82
-rw-r--r--community-testing/mythtv/mythtv-v4l2-fix.patch724
-rw-r--r--community-testing/mythtv/mythtv.install11
-rw-r--r--community-testing/opensips/PKGBUILD67
-rw-r--r--community-testing/opensips/opensips.init50
-rw-r--r--community-testing/opensips/opensips.install5
-rw-r--r--community-testing/paraview/PKGBUILD88
-rw-r--r--community-testing/paraview/fixkernelversioncheck.diff19
-rw-r--r--community-testing/paraview/paraview.desktop10
-rw-r--r--community-testing/paraview/paraview.pngbin0 -> 367 bytes
-rw-r--r--community-testing/perl-dbd-odbc/PKGBUILD28
-rw-r--r--community-testing/psqlodbc/PKGBUILD31
-rw-r--r--community-testing/psqlodbc/fix-function-declarations.patch47
-rw-r--r--community-testing/qbittorrent/PKGBUILD33
-rw-r--r--community-testing/qbittorrent/qbittorrent.install11
-rw-r--r--community-testing/qlandkartegt/PKGBUILD44
-rw-r--r--community-testing/qlandkartegt/qlandkartegt-mimetypes.xml7
-rw-r--r--community-testing/qlandkartegt/qlandkartegt.changelog30
-rw-r--r--community-testing/qlandkartegt/qlandkartegt.install7
-rw-r--r--community-testing/qmc2/PKGBUILD28
-rw-r--r--community-testing/qtcreator/PKGBUILD30
-rw-r--r--community-testing/root/PKGBUILD97
-rw-r--r--community-testing/root/root.install25
-rw-r--r--community-testing/root/root.sh5
-rw-r--r--community-testing/root/root.xml11
-rw-r--r--community-testing/root/rootd37
-rw-r--r--community-testing/sigil/PKGBUILD45
-rw-r--r--community-testing/sigil/sigil.desktop10
-rw-r--r--community-testing/sigil/sigil.install12
-rw-r--r--community-testing/swi-prolog/PKGBUILD48
-rw-r--r--community-testing/texmaker/PKGBUILD35
-rw-r--r--community-testing/vtk/PKGBUILD115
-rw-r--r--community-testing/vtk/ffmpeg-0.8.diff66
-rw-r--r--community-testing/vtk/fix-boost-graph-api-changes.diff42
-rw-r--r--community-testing/vtk/fixkernelversioncheck.diff19
-rw-r--r--community-testing/wkhtmltopdf/PKGBUILD30
-rw-r--r--community/arm-wince-cegcc-binutils/PKGBUILD35
-rw-r--r--community/dwm/PKGBUILD10
-rw-r--r--community/dwm/config.h15
-rw-r--r--community/gnote/PKGBUILD14
-rw-r--r--community/lilypond/PKGBUILD7
-rw-r--r--community/miniupnpc/PKGBUILD25
-rw-r--r--community/nginx/PKGBUILD116
-rwxr-xr-xcommunity/pigz/PKGBUILD37
-rw-r--r--community/qsynergy/PKGBUILD27
-rw-r--r--community/tinc/PKGBUILD40
-rw-r--r--community/tinc/tinc.install20
-rw-r--r--community/tinc/tincd.conf5
-rw-r--r--community/tinc/tincd.rc42
-rw-r--r--community/unbound/PKGBUILD14
-rw-r--r--community/virtualbox-modules/PKGBUILD8
-rw-r--r--community/virtualbox/PKGBUILD12
-rwxr-xr-xcommunity/virtualbox/vboxbuild6
-rw-r--r--community/yagf/PKGBUILD6
-rw-r--r--community/yajl/PKGBUILD3
-rw-r--r--community/zeromq/PKGBUILD6
-rw-r--r--core/openldap/PKGBUILD20
-rw-r--r--extra/libdrm/PKGBUILD17
-rw-r--r--extra/libdrm/git_fixes.diff30
-rw-r--r--extra/libdvdnav/PKGBUILD6
-rw-r--r--extra/libgsf/PKGBUILD5
-rw-r--r--extra/nss/PKGBUILD30
-rw-r--r--extra/nss/add_spi+cacert_ca_certs.patch593
-rw-r--r--extra/poppler/PKGBUILD10
-rw-r--r--extra/poppler/git-fixes.patch187
-rw-r--r--extra/skanlite/PKGBUILD8
-rw-r--r--extra/smartmontools/PKGBUILD9
-rw-r--r--extra/xorg-xinit/PKGBUILD9
-rw-r--r--extra/xorg-xinit/fs25361.patch16
-rw-r--r--extra/xterm/PKGBUILD6
-rw-r--r--kde-unstable/kdelibs/PKGBUILD6
-rw-r--r--libre/cups-libre/PKGBUILD147
-rw-r--r--libre/cups-libre/cups69
-rw-r--r--libre/cups-libre/cups-avahi.patch3157
-rw-r--r--libre/cups-libre/cups-no-export-ssllibs.patch13
-rw-r--r--libre/cups-libre/cups-no-gcrypt.patch39
-rw-r--r--libre/cups-libre/cups.install27
-rw-r--r--libre/cups-libre/cups.logrotate9
-rw-r--r--libre/cups-libre/cups.pam4
-rw-r--r--libre/cups-libre/rePKGBUILD52
-rw-r--r--libre/hplip-libre/PKGBUILD70
-rw-r--r--libre/hplip-libre/hplip.install11
-rw-r--r--libre/hplip-libre/rePKGBUILD26
-rw-r--r--libre/metalog/PKGBUILD11
-rw-r--r--libre/texlive-bin-libre/PKGBUILD4
-rw-r--r--multilib/lib32-keyutils/PKGBUILD4
-rw-r--r--multilib/lib32-krb5/PKGBUILD13
-rw-r--r--multilib/lib32-krb5/krb5-1.9.1-2011-007.patch40
-rw-r--r--multilib/lib32-libcap/PKGBUILD9
-rw-r--r--multilib/lib32-libdrm/PKGBUILD17
-rw-r--r--multilib/lib32-libdrm/git_fixes.diff13
-rw-r--r--multilib/lib32-libogg/PKGBUILD6
-rw-r--r--multilib/lib32-libssh2/PKGBUILD10
-rw-r--r--multilib/lib32-libxcursor/PKGBUILD6
-rw-r--r--multilib/lib32-libxext/PKGBUILD6
-rw-r--r--multilib/lib32-libxfixes/PKGBUILD12
-rw-r--r--multilib/lib32-libxi/PKGBUILD6
-rw-r--r--multilib/lib32-libxrandr/PKGBUILD6
-rw-r--r--multilib/lib32-llvm/PKGBUILD60
-rw-r--r--multilib/lib32-llvm/clang-pure64.patch29
-rw-r--r--multilib/lib32-llvm/enable-lto.patch18
-rw-r--r--multilib/lib32-llvm/fix-gold-lto-linking.patch11
-rw-r--r--multilib/lib32-mesa/PKGBUILD18
-rw-r--r--multilib/lib32-mesa/fix-build-with-llvm-3.0.patch330
-rw-r--r--multilib/lib32-pcre/PKGBUILD6
-rw-r--r--multilib/lib32-pixman/PKGBUILD6
-rw-r--r--multilib/lib32-readline/PKGBUILD18
-rw-r--r--multilib/lib32-udev/PKGBUILD8
-rw-r--r--testing/apr-util/PKGBUILD28
-rw-r--r--testing/arora/PKGBUILD28
-rw-r--r--testing/arora/install12
-rw-r--r--testing/erlang/PKGBUILD71
-rw-r--r--testing/freetds/PKGBUILD28
-rw-r--r--testing/gtk3/PKGBUILD38
-rw-r--r--testing/gtk3/gtk3.install15
-rw-r--r--testing/gtk3/settings.ini2
-rw-r--r--testing/kdelibs/PKGBUILD57
-rw-r--r--testing/kdelibs/archlinux-menu.patch22
-rw-r--r--testing/kdelibs/kde-applications-menu.patch22
-rw-r--r--testing/kdelibs/kdelibs.install13
-rw-r--r--testing/kwebkitpart/PKGBUILD30
-rw-r--r--testing/kwebkitpart/kwebkitpart.install11
-rw-r--r--testing/libreoffice/PKGBUILD923
-rw-r--r--testing/libreoffice/PKGBUILD.next_stable924
-rw-r--r--testing/libreoffice/buildfix_boost.diff40
-rw-r--r--testing/libreoffice/buildfix_ct2n.diff17
-rw-r--r--testing/libreoffice/gcc462_buildfix.diff138
-rw-r--r--testing/libreoffice/libreoffice.install47
-rw-r--r--testing/libreoffice/scp2-more-reasonable-file-access-rights.diff15
-rw-r--r--testing/libreoffice/vbahelper.visibility.patch33
-rw-r--r--testing/php/PKGBUILD365
-rw-r--r--testing/php/apache.conf13
-rw-r--r--testing/php/logrotate.d.php-fpm6
-rw-r--r--testing/php/php-fpm.conf.in.patch80
-rw-r--r--testing/php/php.ini.patch126
-rw-r--r--testing/php/rc.d.php-fpm158
-rw-r--r--testing/pyqt/PKGBUILD79
-rw-r--r--testing/qt/PKGBUILD126
-rw-r--r--testing/qt/assistant.desktop9
-rw-r--r--testing/qt/designer.desktop11
-rw-r--r--testing/qt/linguist.desktop10
-rw-r--r--testing/qt/qt.install12
-rw-r--r--testing/qt/qtconfig.desktop10
-rw-r--r--testing/qt3/PKGBUILD133
-rw-r--r--testing/qt3/eastern_asian_languagues.diff39
-rw-r--r--testing/qt3/gcc-4.6.patch33
-rw-r--r--testing/qt3/mysql.patch47
-rw-r--r--testing/qt3/qt-copy-kde-patches.tar.bz2bin0 -> 31498 bytes
-rw-r--r--testing/qt3/qt-font-default-subst.diff77
-rw-r--r--testing/qt3/qt-odbc.patch19
-rw-r--r--testing/qt3/qt-patches.tar.bz2bin0 -> 3708 bytes
-rw-r--r--testing/qt3/qt.install12
-rw-r--r--testing/qt3/qt.profile4
-rw-r--r--testing/qt3/qt3-png14.patch33
-rw-r--r--testing/qt3/utf8-bug-qt3.diff101
-rw-r--r--testing/qtwebkit/PKGBUILD38
-rw-r--r--testing/qtwebkit/python2-path.patch29
-rw-r--r--testing/redland/PKGBUILD79
-rw-r--r--testing/redland/rpath.diff11
-rw-r--r--testing/unixodbc/PKGBUILD28
-rw-r--r--~mtjm/python-coverage/LICENSE29
-rw-r--r--~mtjm/python-coverage/PKGBUILD47
205 files changed, 14600 insertions, 1059 deletions
diff --git a/community-testing/bibletime/PKGBUILD b/community-testing/bibletime/PKGBUILD
new file mode 100644
index 000000000..a9213371c
--- /dev/null
+++ b/community-testing/bibletime/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 60878 2011-12-19 18:07:11Z andrea $
+# Maintainer: Alexander Rødseth <rodseth@gmail.com>
+# Contributor: Tobias T. <OldShatterhand at gmx-topmail dot de>
+pkgname=bibletime
+pkgver=2.9.0
+pkgrel=2
+pkgdesc="Bible study tool for KDE4"
+arch=('x86_64' 'i686')
+url="http://www.bibletime.info/"
+license=('GPL2')
+depends=('qt' 'sword' 'openssl' 'clucene' 'qtwebkit')
+makedepends=('cmake' 'boost-libs')
+install=$pkgname.install
+source=("http://sourceforge.net/projects/$pkgname/files/$pkgname-$pkgver.tar.bz2")
+md5sums=('0190b64de5892fc5f45e9a3d46bb29d6')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release "$srcdir/$pkgname-$pkgver"
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community-testing/bibletime/bibletime.install b/community-testing/bibletime/bibletime.install
new file mode 100644
index 000000000..ad97d7bab
--- /dev/null
+++ b/community-testing/bibletime/bibletime.install
@@ -0,0 +1,13 @@
+post_upgrade() {
+ update-desktop-database -q
+}
+
+post_install() {
+ post_upgrade
+}
+
+post_remove() {
+ post_upgrade
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community-testing/fatrat/PKGBUILD b/community-testing/fatrat/PKGBUILD
new file mode 100644
index 000000000..869af5da2
--- /dev/null
+++ b/community-testing/fatrat/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 60880 2011-12-19 18:07:16Z andrea $
+# Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+
+pkgname=fatrat
+pkgver=1.2.0_beta1
+pkgrel=3
+pkgdesc="QT4 based download manager with support for HTTP, FTP, SFTP, BitTorrent, rapidshare and more"
+arch=('i686' 'x86_64')
+url="http://fatrat.dolezel.info/"
+license=('GPL')
+depends=('gloox' 'qt' 'libtorrent-rasterbar' 'pion-net' 'qtwebkit')
+optdepends=('geoip: GeoIP support')
+makedepends=('boost' 'cmake' 'java-environment')
+source=(http://www.dolezel.info/download/data/fatrat/fatrat-$pkgver.tar.gz)
+md5sums=('7ce4d5e6318361f36ba5ac86a5755da9')
+
+build() {
+ cd $pkgname-$pkgver
+
+ . /etc/profile.d/jre.sh
+ . /etc/profile.d/jdk.sh
+
+ cmake \
+ -DWITH_EVERYTHING=ON \
+ -DCMAKE_{SHARED,MODULE,EXE}_LINKER_FLAGS="-lpthread" \
+ -DCMAKE_CXX_FLAGS="${CXXFLAGS} -DBOOST_FILESYSTEM_VERSION=2" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ .
+
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community-testing/freeradius/PKGBUILD b/community-testing/freeradius/PKGBUILD
new file mode 100644
index 000000000..9cf91bac6
--- /dev/null
+++ b/community-testing/freeradius/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 60918 2011-12-19 18:09:51Z andrea $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Jason R Begley (jayray@digitalgoat.com>
+
+pkgname=freeradius
+pkgver=2.1.12
+pkgrel=3
+pkgdesc="The premier open source RADIUS server"
+arch=('i686' 'x86_64')
+url="http://www.freeradius.org/"
+license=("GPL")
+depends=('openssl' 'krb5' 'pth' 'libldap>=2.4.18' 'net-snmp' 'pam'
+ 'postgresql-libs>=9.0.3' 'libtool' 'libmysqlclient' 'gdbm' 'shadow')
+makedepends=('libpcap' 'unixodbc' 'python2')
+optdepends=('libpcap' 'unixodbc' 'python2')
+options=('!libtool' 'emptydirs' '!makeflags')
+install=$pkgname.install
+source=(ftp://ftp.freeradius.org/pub/radius/freeradius-server-$pkgver.tar.bz2
+ radiusd
+ krb5-build-fix.patch)
+md5sums=('862d3a2c11011e61890ba84fa636ed8c'
+ 'f1a6530b1b69d2fa793aa45b2de379bb'
+ 'c6a61de7576933f59154a53bfc12a2d2')
+
+build() {
+ cd $srcdir/freeradius-server-$pkgver
+ export CFLAGS="$CFLAGS -fno-strict-aliasing"
+ sed -i 's/ -DKRB5_DEPRECATED//' src/modules/rlm_krb5/Makefile.in
+ patch -p1 <$srcdir/krb5-build-fix.patch
+ ./configure --with-system-libtool --with-system-libltdl \
+ --prefix=/usr --enable-heimdal-krb5 \
+ --localstatedir=/var \
+ --sysconfdir=/etc \
+ --libdir=/usr/lib/freeradius
+ make
+}
+
+package() {
+ cd $srcdir/freeradius-server-$pkgver
+ make install R=$pkgdir
+ install -D -m755 ../radiusd $pkgdir/etc/rc.d/radiusd
+ chmod o+r $pkgdir/etc/raddb/*
+ mv $pkgdir/etc/raddb $pkgdir/etc/raddb.default
+ rm -rf $pkgdir/var/run
+}
diff --git a/community-testing/freeradius/freeradius.install b/community-testing/freeradius/freeradius.install
new file mode 100644
index 000000000..c3b9f9415
--- /dev/null
+++ b/community-testing/freeradius/freeradius.install
@@ -0,0 +1,22 @@
+post_install() {
+ groupadd -r radiusd
+ useradd -r -m -d /var/lib/radiusd -g radiusd -s /bin/false radiusd
+
+ touch /var/log/radius/radius.log
+ chown -R radiusd.radiusd /var/log/radius/radius.log
+
+ [ -d /etc/raddb ] || cp -a /etc/raddb.default /etc/raddb
+
+ /bin/true
+}
+
+pre_remove() {
+ /etc/rc.d/radiusd stop
+ /bin/true
+}
+
+post_remove() {
+ userdel radiusd
+ groupdel radiusd
+ /bin/true
+}
diff --git a/community-testing/freeradius/krb5-build-fix.patch b/community-testing/freeradius/krb5-build-fix.patch
new file mode 100644
index 000000000..11dae7090
--- /dev/null
+++ b/community-testing/freeradius/krb5-build-fix.patch
@@ -0,0 +1,21 @@
+diff -wbBur freeradius-server-2.1.10/src/modules/rlm_krb5/rlm_krb5.c freeradius-server-2.1.10.my/src/modules/rlm_krb5/rlm_krb5.c
+--- freeradius-server-2.1.10/src/modules/rlm_krb5/rlm_krb5.c 2010-09-28 11:03:56.000000000 +0000
++++ freeradius-server-2.1.10.my/src/modules/rlm_krb5/rlm_krb5.c 2011-04-29 09:26:10.000000000 +0000
+@@ -375,7 +375,7 @@
+ * Heimdal krb5 verification
+ */
+ radlog(L_AUTH, "rlm_krb5: Parsed name is: %s@%s\n",
+- *userP->name.name_string.val,
++ "-" /* *userP->name.name_string.val*/,
+ userP->realm);
+
+ krb5_cc_default(context, &id);
+@@ -390,7 +390,7 @@
+
+ radlog(L_AUTH, "rlm_krb5: failed verify_user: %s (%s@%s )",
+ error_message(ret),
+- *userP->name.name_string.val,
++ "-" /* *userP->name.name_string.val */,
+ userP->realm);
+
+ return RLM_MODULE_REJECT;
diff --git a/community-testing/freeradius/radiusd b/community-testing/freeradius/radiusd
new file mode 100644
index 000000000..bf872b6f2
--- /dev/null
+++ b/community-testing/freeradius/radiusd
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/radiusd`
+case "$1" in
+ start)
+ stat_busy "Starting radiusd Server"
+
+ [ -d /var/run/radiusd ] || mkdir -p /var/run/radiusd
+ [ -f /var/run/radiusd/radiusd.pid ] || touch /var/run/radiusd/radiusd.pid
+ chown -R radiusd.radiusd /var/run/radiusd
+
+ [ -z "$PID" ] && /usr/sbin/radiusd
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ echo $PID > /var/run/radiusd.pid
+ add_daemon radiusd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping radiusd Server"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm /var/run/radiusd.pid
+ rm_daemon radiusd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community-testing/gambas2/PKGBUILD b/community-testing/gambas2/PKGBUILD
new file mode 100644
index 000000000..e2c8abe77
--- /dev/null
+++ b/community-testing/gambas2/PKGBUILD
@@ -0,0 +1,950 @@
+# $Id: PKGBUILD 60920 2011-12-19 18:10:09Z andrea $
+# Maintainer : Laurent Carlier <lordheavym@gmail.com>
+# Contributor: Biru Ionut <ionut@archlinux.ro>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Douglas Soares de Andrade <dsa@aur.archlinux.org>
+# Contributor: Toni Foerster <stonerl@skeps.de>
+
+pkgbase="gambas2"
+pkgname=('gambas2-meta' 'gambas2-runtime' 'gambas2-devel' 'gambas2-ide' 'gambas2-examples' 'gambas2-help'
+ 'gambas2-script' 'gambas2-gb-chart' 'gambas2-gb-compress' 'gambas2-gb-corba' 'gambas2-gb-crypt'
+ 'gambas2-gb-db' 'gambas2-gb-db-firebird' 'gambas2-gb-db-form' 'gambas2-gb-db-mysql'
+ 'gambas2-gb-db-odbc' 'gambas2-gb-db-postgresql' 'gambas2-gb-db-sqlite2' 'gambas2-gb-db-sqlite3'
+ 'gambas2-gb-desktop' 'gambas2-gb-form' 'gambas2-gb-form-dialog' 'gambas2-gb-form-mdi'
+ 'gambas2-gb-gtk' 'gambas2-gb-gtk-ext' 'gambas2-gb-gtk-svg' 'gambas2-gb-gui'
+ 'gambas2-gb-image' 'gambas2-gb-info' 'gambas2-gb-net' 'gambas2-gb-net-curl'
+ 'gambas2-gb-net-smtp' 'gambas2-gb-opengl' 'gambas2-gb-option' 'gambas2-gb-pcre'
+ 'gambas2-gb-pdf' 'gambas2-gb-qt' 'gambas2-gb-qt-ext' 'gambas2-gb-qt-opengl'
+ 'gambas2-gb-qt-kde' 'gambas2-gb-qt-kde-html' 'gambas2-gb-report' 'gambas2-gb-sdl'
+ 'gambas2-gb-sdl-sound' 'gambas2-gb-settings' 'gambas2-gb-v4l' 'gambas2-gb-vb'
+ 'gambas2-gb-web' 'gambas2-gb-xml' 'gambas2-gb-xml-rpc' 'gambas2-gb-xml-xslt')
+pkgver=2.23.1
+pkgrel=6
+pkgdesc="A free development environment based on a Basic interpreter."
+arch=('i686' 'x86_64')
+url="http://gambas.sourceforge.net"
+depends=('libffi' 'bzip2' 'libfbclient' 'zlib' 'kdelibs3' 'libgl' 'gtk2' 'librsvg' 'xdg-utils'
+ 'postgresql-libs>=8.4.1' 'libmysqlclient' 'unixodbc' 'sqlite2' 'sqlite3'
+ 'curl' 'poppler-glib' 'sdl_mixer' 'sdl_image' 'libxtst' 'pcre' 'omniorb' 'libxft'
+ 'libxcursor' 'libsm')
+makedepends=('intltool' 'mysql' 'postgresql')
+license=('GPL2')
+options=('!emptydirs' '!makeflags')
+groups=('gambas2')
+replaces=('gambas2')
+conflicts=('gambas2')
+source=(http://downloads.sourceforge.net/gambas/$pkgbase-$pkgver.tar.bz2
+ 'fix-gbi-gba-path.patch' 'db.firebird.gcc-4.6.0-fix.patch'
+ 'poppler-0.18.patch'
+ 'gambas2-script.install' 'gambas2-runtime.install')
+md5sums=('ff8d2c1f310222c150b114e7ce247dfd'
+ '9dda03a1bbfb7e7ba8b6a4ae91b6752b'
+ 'ac9703b390502ed3242c8d34485c9236'
+ 'a551b4b216bbdb3489f3c264bf73ee66'
+ '870ff5b4b33cd75aa9c290539e6fdd5d'
+ 'ab5667175c4945282d2f40a35d0e9e5b')
+_gbfiles="${srcdir}/$pkgbase-$pkgver/main/gbc"
+
+_buildgbcomp() {
+ cd ${srcdir}/${pkgbase}-${pkgver}/comp/src/$1
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbc2 -ag -r ${pkgdir}/usr
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gba2
+ install $1.gambas ${pkgdir}/usr/lib/gambas2/
+ install .component ${pkgdir}/usr/lib/gambas2/$1.component
+ chmod a-x ${pkgdir}/usr/lib/gambas2/$1.component
+ install .info ${pkgdir}/usr/share/gambas2/info/$1.info
+ chmod a-x ${pkgdir}/usr/share/gambas2/info/$1.info
+ install .list ${pkgdir}/usr/share/gambas2/info/$1.list
+ chmod a-x ${pkgdir}/usr/share/gambas2/info/$1.list
+ if test -d control; then
+ install -d ${pkgdir}/usr/share/gambas2/control/$1
+ install control/*.png ${pkgdir}/usr/share/gambas2/control/$1
+ chmod a-x ${pkgdir}/usr/share/gambas2/control/$1/*.png
+ fi
+}
+
+build() {
+ cd "${srcdir}/$pkgbase-$pkgver"
+
+ ## workaround to allow package splitting
+ msg "Applying patches ..."
+ patch -Np1 -i "${srcdir}/fix-gbi-gba-path.patch"
+ # merged upstream
+ patch -Np3 -i "${srcdir}/db.firebird.gcc-4.6.0-fix.patch"
+ patch -Np2 -i "${srcdir}/poppler-0.18.patch"
+ ./reconf-all
+ ##
+
+ . /etc/profile.d/kde3.sh
+ . /etc/profile.d/qt3.sh
+
+ ./configure -C --disable-qte --prefix=/usr
+ make bindir=${pkgdir}/usr/bin
+}
+
+package_gambas2-meta() {
+ depends=('gambas2-runtime' 'gambas2-devel' 'gambas2-ide' 'gambas2-examples' 'gambas2-help'
+ 'gambas2-script' 'gambas2-gb-chart' 'gambas2-gb-compress' 'gambas2-gb-corba' 'gambas2-gb-crypt'
+ 'gambas2-gb-db' 'gambas2-gb-db-firebird' 'gambas2-gb-db-form' 'gambas2-gb-db-mysql'
+ 'gambas2-gb-db-odbc' 'gambas2-gb-db-postgresql' 'gambas2-gb-db-sqlite2' 'gambas2-gb-db-sqlite3'
+ 'gambas2-gb-desktop' 'gambas2-gb-form' 'gambas2-gb-form-dialog' 'gambas2-gb-form-mdi'
+ 'gambas2-gb-gtk' 'gambas2-gb-gtk-ext' 'gambas2-gb-gtk-svg' 'gambas2-gb-gui'
+ 'gambas2-gb-image' 'gambas2-gb-info' 'gambas2-gb-net' 'gambas2-gb-net-curl'
+ 'gambas2-gb-net-smtp' 'gambas2-gb-opengl' 'gambas2-gb-option' 'gambas2-gb-pcre'
+ 'gambas2-gb-pdf' 'gambas2-gb-qt' 'gambas2-gb-qt-ext' 'gambas2-gb-qt-opengl'
+ 'gambas2-gb-qt-kde' 'gambas2-gb-qt-kde-html' 'gambas2-gb-report' 'gambas2-gb-sdl'
+ 'gambas2-gb-sdl-sound' 'gambas2-gb-settings' 'gambas2-gb-v4l' 'gambas2-gb-vb'
+ 'gambas2-gb-web' 'gambas2-gb-xml' 'gambas2-gb-xml-rpc' 'gambas2-gb-xml-xslt')
+ pkgdesc="Gambas2 meta package"
+}
+
+package_gambas2-runtime() {
+ depends=('libffi' 'xdg-utils')
+ pkgdesc="Gambas2 runtime environment"
+ install=gambas2-runtime.install
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/debug
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/eval
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/draw
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+
+ install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/main/lib/gb.component \
+ ${pkgdir}/usr/lib/gambas2
+ ln -s gbx2 ${pkgdir}/usr/bin/gbr2
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ rm -f ${pkgdir}/usr/lib/gambas2/gb.{so*,la}
+
+ ## needed for postinst with xdg-utils
+ install -d -m755 ${pkgdir}/usr/share/gambas2/mime
+ install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/main/mime/* \
+ ${pkgdir}/usr/share/gambas2/mime/
+ install -d -m755 ${pkgdir}/usr/share/gambas2/icons
+ install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/main/mime/application-x-gambas.png \
+ ${pkgdir}/usr/share/gambas2/icons/application-x-gambas.png
+}
+
+package_gambas2-devel() {
+ depends=('gambas2-runtime')
+ pkgdesc="Gambas2 development environment"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbc
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-ide() {
+ depends=('gambas2-gb-qt-ext' 'gambas2-gb-form-dialog' 'gambas2-gb-form-mdi' 'gambas2-gb-settings'
+ 'gambas2-gb-db' 'gambas2-gb-desktop' 'gambas2-devel')
+ pkgdesc="Gambas2 Integrated Development Environment"
+# arch=('any')
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/eval
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/debug
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/draw
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/db
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/gui
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr
+ _buildgbcomp gb.form
+ _buildgbcomp gb.form.dialog
+ _buildgbcomp gb.form.mdi
+ _buildgbcomp gb.settings
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/app/src/gambas2
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbc2 -ag -r ${pkgdir}/usr
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gba2
+ cd ${srcdir}/${pkgbase}-${pkgver}/app/src/gambas2-database-manager
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbc2 -ag -r ${pkgdir}/usr
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gba2
+ cd ${srcdir}/${pkgbase}-${pkgver}/app/src/
+
+ ## cleanup the workaround
+ rm -r ${pkgdir}/usr/share ${pkgdir}/usr/lib
+ rm ${pkgdir}/usr/bin/gbx2
+ ##
+
+ install -m755 gambas2/gambas2.gambas ${pkgdir}/usr/bin
+ install -m755 gambas2-database-manager/gambas2-database-manager.gambas ${pkgdir}/usr/bin
+ ln -s gambas2.gambas ${pkgdir}/usr/bin/gambas2
+ install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/app/desktop/gambas2.desktop \
+ ${pkgdir}/usr/share/applications/gambas2.desktop
+ install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/app/desktop/gambas2.png \
+ ${pkgdir}/usr/share/pixmaps/gambas2.png
+}
+
+package_gambas2-examples() {
+ depends=('gambas2-gb-compress' 'gambas2-gb-corba' 'gambas2-gb-crypt'
+ 'gambas2-gb-db-firebird' 'gambas2-gb-db-form' 'gambas2-gb-db-mysql'
+ 'gambas2-gb-db-odbc' 'gambas2-gb-db-postgresql' 'gambas2-gb-db-sqlite2' 'gambas2-gb-db-sqlite3'
+ 'gambas2-gb-desktop' 'gambas2-gb-form-dialog' 'gambas2-gb-form-mdi'
+ 'gambas2-gb-gtk-ext' 'gambas2-gb-gtk-svg' 'gambas2-gb-gui'
+ 'gambas2-gb-image' 'gambas2-gb-info' 'gambas2-gb-net' 'gambas2-gb-net-curl'
+ 'gambas2-gb-net-smtp' 'gambas2-gb-opengl' 'gambas2-gb-option' 'gambas2-gb-pcre'
+ 'gambas2-gb-pdf' 'gambas2-gb-qt-ext' 'gambas2-gb-qt-opengl'
+ 'gambas2-gb-qt-kde-html' 'gambas2-gb-report' 'gambas2-gb-sdl'
+ 'gambas2-gb-sdl-sound' 'gambas2-gb-settings' 'gambas2-gb-v4l' 'gambas2-gb-vb'
+ 'gambas2-gb-web' 'gambas2-gb-xml-rpc' 'gambas2-gb-xml-xslt')
+ pkgdesc="Gambas2 examples"
+# arch=('any')
+
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ make XDG_UTILS='' DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+
+ rm -r ${pkgdir}/usr/bin ${pkgdir}/usr/lib
+ rm -r ${pkgdir}/usr/share/gambas2/{help,info}
+}
+
+package_gambas2-help() {
+ depends=()
+ pkgdesc="Gambas2 help files"
+# arch=('any')
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/help
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+
+ #fix help
+ chown root:root -R ${pkgdir}/usr/share/gambas2/help/help
+}
+
+package_gambas2-script() {
+ depends=('gambas2-devel')
+ pkgdesc="Gambas2 scripter and server programs support"
+ install=gambas2-script.install
+# arch=('any')
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/eval
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/app/src/gbs2
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbc2 -ag -r ${pkgdir}/usr
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gba2
+ install -m755 gbs2.gambas ${pkgdir}/usr/bin
+
+ ln -s gbs2.gambas ${pkgdir}/usr/bin/gbs2
+ ln -s gbs2.gambas ${pkgdir}/usr/bin/gbw2
+
+ ## cleanup the workaround
+ rm -r ${pkgdir}/usr/share ${pkgdir}/usr/lib
+ rm ${pkgdir}/usr/bin/gbx2
+ ##
+
+ ## needed for postinst with xdg-utils
+ cd ${srcdir}/${pkgbase}-${pkgver}/app/mime
+ install -d -m755 ${pkgdir}/usr/share/gambas2/mime
+ install -D -m644 *.xml ${pkgdir}/usr/share/gambas2/mime/
+ install -D -m644 *.png ${pkgdir}/usr/share/gambas2/mime/
+ ##
+}
+
+package_gambas2-gb-chart() {
+ depends=('gambas2-gb-form')
+ pkgdesc="Gambas2 chart component"
+# arch=('any')
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/draw
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/gui
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr
+ ##
+
+ _buildgbcomp gb.form
+ _buildgbcomp gb.chart
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/{gb.{info,list},gb.qt*,gb.gui*,gb.form*}
+ rm ${pkgdir}/usr/lib/gambas2/{gb.draw*,gb.qt*,gb.{so*,la},gb.gui*,gb.form*}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-compress() {
+ depends=('gambas2-runtime' 'bzip2' 'zlib')
+ pkgdesc="Gambas2 compression support component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/compress
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.compress.bzlib2
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.compress.zlib
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-corba() {
+ depends=('gambas2-runtime' 'omniorb')
+ pkgdesc="Gambas2 corba component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.corba
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-crypt() {
+ depends=('gambas2-runtime')
+ pkgdesc="Gambas2 MD5/DES crypting component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.crypt
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-db() {
+ depends=('gambas2-runtime')
+ pkgdesc="Gambas2 database access component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/db
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-db-firebird() {
+ depends=('gambas2-gb-db' 'libfbclient')
+ pkgdesc="Gambas2 Firebird database access component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.db.firebird
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-db-form() {
+ depends=('gambas2-gb-db' 'gambas2-gb-form')
+ pkgdesc="Gambas2 database form component"
+# arch=('any')
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/draw
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/gui
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/db
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr
+ ##
+
+ _buildgbcomp gb.db.form
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/{gb.{info,list},gb.qt*,gb.gui*,gb.db.{info,list}}
+ rm ${pkgdir}/usr/lib/gambas2/{gb.draw*,gb.qt*,gb.{so*,la},gb.gui*,gb.db.{so*,la,component}}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-db-mysql() {
+ depends=('gambas2-gb-db' 'libmysqlclient')
+ pkgdesc="Gambas2 MySQL database access component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.db.mysql
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-db-odbc() {
+ depends=('gambas2-gb-db' 'unixodbc')
+ pkgdesc="Gambas2 ODBC database access component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.db.odbc
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-db-postgresql() {
+ depends=('gambas2-gb-db' 'postgresql-libs>=8.4.1')
+ pkgdesc="Gambas2 PostgreSQL database access component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.db.postgresql
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-db-sqlite2() {
+ depends=('gambas2-gb-db' 'sqlite2')
+ pkgdesc="Gambas2 Sqlite2 database access component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.db.sqlite2
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-db-sqlite3() {
+ depends=('gambas2-gb-db' 'sqlite3')
+ pkgdesc="Gambas2 Sqlite3 database access component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.db.sqlite3
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-desktop() {
+ depends=('gambas2-runtime' 'libsm' 'libxtst')
+ pkgdesc="Gambas2 desktop component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/draw
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.desktop
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/{gb.{info,list},gb.qt*}
+ rm ${pkgdir}/usr/lib/gambas2/{gb.{so*,la},gb.qt*,gb.draw*}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-form() {
+ depends=('gambas2-gb-gui')
+ pkgdesc="Gambas2 form component"
+# arch=('any')
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/draw
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/gui
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr
+ ##
+
+ _buildgbcomp gb.form
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/{gb.{info,list},gb.qt*,gb.gui*}
+ rm ${pkgdir}/usr/lib/gambas2/{gb.draw*,gb.qt*,gb.{so*,la},gb.gui*}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-form-dialog() {
+ depends=('gambas2-gb-form')
+ pkgdesc="Gambas2 form dialog component"
+# arch=('any')
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/draw
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/gui
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr
+ ##
+
+ _buildgbcomp gb.form
+ _buildgbcomp gb.form.dialog
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/{gb.{info,list},gb.form.{info,list},gb.qt*,gb.gui*}
+ rm ${pkgdir}/usr/lib/gambas2/{gb.draw*,gb.qt*,gb.{so*,la},gb.form.{component,gambas},gb.gui*}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-form-mdi() {
+ depends=('gambas2-gb-form')
+ pkgdesc="Gambas2 form MDI component"
+# arch=('any')
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/draw
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/gui
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr
+ ##
+
+ _buildgbcomp gb.form
+ _buildgbcomp gb.form.mdi
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/{gb.{info,list},gb.form.{info,list},gb.qt*,gb.gui*}
+ rm ${pkgdir}/usr/lib/gambas2/{gb.draw*,gb.qt*,gb.{so*,la},gb.form.{component,gambas},gb.gui*}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-gtk() {
+ depends=('gambas2-runtime' 'gtk2')
+ pkgdesc="Gambas2 graphical GTK+ toolkit component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/draw
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.gtk
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/{gb.{info,list},gb.gtk.ext*}
+ rm ${pkgdir}/usr/lib/gambas2/{gb.draw*,gb.gtk.ext*,gb.{so*,la}}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-gtk-ext() {
+ depends=('gambas2-gb-gtk')
+ pkgdesc="Gambas2 graphical GTK+ toolkit extension component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.gtk/src/ext
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/gb.{info,list}
+ rm ${pkgdir}/usr/lib/gambas2/gb.{so*,la}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-gtk-svg() {
+ depends=('gambas2-gb-gtk' 'librsvg')
+ pkgdesc="Gambas2 graphical GTK+ toolkit svg component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.gtk.svg
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/gb.{info,list}
+ rm ${pkgdir}/usr/lib/gambas2/gb.{so*,la}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-gui() {
+ depends=('gambas2-gb-qt' 'gambas2-gb-gtk')
+ pkgdesc="Gambas2 automatic gui toolkit chooser"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/draw
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/gui
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/{gb.{info,list},gb.qt*}
+ rm ${pkgdir}/usr/lib/gambas2/{gb.draw*,gb.qt*,gb.{so*,la}}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-image() {
+ depends=('gambas2-runtime')
+ pkgdesc="Gambas2 image processing component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.image
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-info() {
+ depends=('gambas2-runtime')
+ pkgdesc="Gambas2 info component"
+# arch=('any')
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ ##
+
+ _buildgbcomp gb.info
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/gb.{info,list}
+ rm ${pkgdir}/usr/lib/gambas2/gb.{so*,la}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-net() {
+ depends=('gambas2-runtime')
+ pkgdesc="Gambas2 networking component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.net
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-net-curl() {
+ depends=('gambas2-runtime' 'curl')
+ pkgdesc="Gambas2 advanced networking component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.net.curl
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-net-smtp() {
+ depends=('gambas2-runtime' 'glib2')
+ pkgdesc="Gambas2 SMTP component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.net.smtp
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-opengl() {
+ depends=('gambas2-runtime' 'libgl' 'mesa')
+ pkgdesc="Gambas2 OpenGL component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.opengl
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-option() {
+ depends=('gambas2-runtime')
+ pkgdesc="Gambas2 command-line options component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/option
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-pcre() {
+ depends=('gambas2-runtime' 'pcre')
+ pkgdesc="Gambas2 PCRE component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.pcre
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-pdf() {
+ depends=('gambas2-runtime' 'poppler-glib')
+ pkgdesc="Gambas2 PDF component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.pdf
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-qt() {
+ depends=('gambas2-runtime' 'qt3')
+ pkgdesc="Gambas2 graphical QT toolkit component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/draw
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/{gb.{info,list},gb.qt.ext*,gb.qt.opengl*}
+ rm ${pkgdir}/usr/lib/gambas2/{gb.draw*,gb.qt.ext*,gb.qt.opengl*,gb.{so*,la}}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-qt-ext() {
+ depends=('gambas2-gb-qt')
+ pkgdesc="Gambas2 graphical QT toolkit extension component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt/src/ext
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/gb.{info,list}
+ rm ${pkgdir}/usr/lib/gambas2/gb.{so*,la}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-qt-opengl() {
+ depends=('gambas2-gb-qt' 'libgl')
+ pkgdesc="Gambas2 graphical QT toolkit OpenGL component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt/src/opengl
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/gb.{info,list}
+ rm ${pkgdir}/usr/lib/gambas2/gb.{so*,la}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-qt-kde() {
+ depends=('gambas2-gb-qt' 'kdelibs3')
+ pkgdesc="Gambas2 KDE component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt.kde
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+
+ rm ${pkgdir}/usr/share/gambas2/info/gb.qt.kde.html*
+ rm ${pkgdir}/usr/lib/gambas2/gb.qt.kde.html*
+}
+
+package_gambas2-gb-qt-kde-html() {
+ depends=('gambas2-gb-qt-kde')
+ pkgdesc="Gambas2 KHTML component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt.kde/src/html
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-report() {
+ depends=('gambas2-runtime' 'gambas2-gb-form')
+ pkgdesc="Gambas2 report component"
+# arch=('any')
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/draw
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/gui
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/db
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr
+ ##
+
+ _buildgbcomp gb.form
+ _buildgbcomp gb.report
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/{gb.{info,list},gb.form.{info,list},gb.qt*,gb.gui*,gb.db*}
+ rm ${pkgdir}/usr/lib/gambas2/{gb.draw*,gb.qt*,gb.{so*,la},gb.form.{component,gambas},gb.gui*,gb.db*}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-sdl() {
+ depends=('gambas2-runtime' 'sdl_image' 'libxft' 'libxcursor' 'libgl')
+ pkgdesc="Gambas2 SDL component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.sdl
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-sdl-sound() {
+ depends=('gambas2-runtime' 'sdl_mixer')
+ pkgdesc="Gambas2 SDL sound component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.sdl.sound
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-settings() {
+ depends=('gambas2-runtime')
+ pkgdesc="Gambas2 settings management component"
+# arch=('any')
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ ##
+
+ _buildgbcomp gb.settings
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/gb.{info,list}
+ rm ${pkgdir}/usr/lib/gambas2/gb.{so*,la}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-v4l() {
+ depends=('gambas2-runtime' 'libjpeg' 'libpng')
+ pkgdesc="Gambas2 V4L component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.v4l
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-vb() {
+ depends=('gambas2-runtime')
+ pkgdesc="Gambas2 VB transitional component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/vb
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-web() {
+ depends=('gambas2-runtime')
+ pkgdesc="Gambas2 CGI component"
+# arch=('any')
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ ##
+
+ _buildgbcomp gb.web
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/gb.{info,list}
+ rm ${pkgdir}/usr/lib/gambas2/gb.{so*,la}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-xml() {
+ depends=('gambas2-runtime' 'libxml2')
+ pkgdesc="Gambas2 xml component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.net
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.net.curl
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.xml
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/{gb.xml.{xslt*,rpc*},gb.{info,list},gb.net*}
+ rm ${pkgdir}/usr/lib/gambas2/{gb.xml.{xslt*,rpc*},gb.{so*,la},gb.net*}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-xml-rpc() {
+ depends=('gambas2-gb-xml' 'gambas2-gb-net' 'gambas2-gb-net-curl')
+ pkgdesc="Gambas2 xml-rpc component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.net
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.net.curl
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.xml
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/gb.{{info,list},xml.{info,list},xml.xslt.{info,list},net.*}
+ rm ${pkgdir}/usr/lib/gambas2/gb.{{so*,la},xml.{so*,la,component},xml.xslt.*,net.*}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-xml-xslt() {
+ depends=('gambas2-gb-xml' 'libxslt')
+ pkgdesc="Gambas2 xml-xslt component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.xml/src/xslt
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/gb.{info,list}
+ rm ${pkgdir}/usr/lib/gambas2/gb.{so*,la}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
diff --git a/community-testing/gambas2/db.firebird.gcc-4.6.0-fix.patch b/community-testing/gambas2/db.firebird.gcc-4.6.0-fix.patch
new file mode 100644
index 000000000..0b6e68df3
--- /dev/null
+++ b/community-testing/gambas2/db.firebird.gcc-4.6.0-fix.patch
@@ -0,0 +1,35 @@
+--- gambas/branches/2.0/gb.db.firebird/src/main.cpp 2011/05/27 15:01:54 3864
++++ gambas/branches/2.0/gb.db.firebird/src/main.cpp 2011/05/27 15:26:41 3865
+@@ -1216,7 +1216,8 @@
+ GB.StoreVariant(&fantom, &buffer[i]);
+ }
+ else{
+- GB.StoreVariant(&res->GetData(pos,i), &buffer[i]);
++ GB_VARIANT val = res->GetData(pos,i);
++ GB.StoreVariant(&val , &buffer[i]);
+ }
+ }
+ }
+@@ -1874,6 +1875,8 @@
+ static char query[SQLMAXLEN];
+ int type;
+ std::string str1,str2;
++ GB_VARIANT varval;
++ char* charval;
+ snprintf(query,SQLMAXLEN-1,"select b.RDB$field_name,a.RDB$field_type,b.rdb$null_flag,b.rdb$default_source,a.RDB$field_length from RDB$fields a,RDB$relation_fields b where a.RDB$field_name=b.RDB$field_source and b.RDB$relation_name=upper('%s') and b.rdb$field_name=upper('%s')",table,field);
+ if (do_query(db, query, &res, "Unable to get the field from the table")){
+ delete res;
+@@ -1900,9 +1903,11 @@
+ str1=res->GetData(0,3).value.value._string;
+ if(str1!="")
+ str2=str1.assign(str1,8,str1.length()-8);
+- GB.FreeString(&res->GetData(0,3).value.value._string);
++ charval = res->GetData(0,3).value.value._string;
++ GB.FreeString(&charval);
+ res->SetData(0,3,str2);
+- GB.StoreVariant(&res->GetData(0,3), &info->def);
++ varval = res->GetData(0,3);
++ GB.StoreVariant(&varval, &info->def);
+ }
+ delete res;
+ return FALSE;
diff --git a/community-testing/gambas2/fix-gbi-gba-path.patch b/community-testing/gambas2/fix-gbi-gba-path.patch
new file mode 100644
index 000000000..9be8e921e
--- /dev/null
+++ b/community-testing/gambas2/fix-gbi-gba-path.patch
@@ -0,0 +1,24 @@
+--- component.am 2010-03-15 20:54:43.000000000 +0100
++++ ../component.am 2010-04-30 15:00:47.218700833 +0200
+@@ -6,17 +6,17 @@
+ @if test -d $(COMPONENT); then \
+ echo "Compiling the $(COMPONENT) project..."; \
+ ( \
+- $(DESTDIR)$(bindir)/gbi$(GAMBAS_VERSION) -r $(DESTDIR)$(prefix) $(COMPONENT); \
++ $(GBFILES)/gbi$(GAMBAS_VERSION) -r $(DESTDIR)$(prefix) $(COMPONENT); \
+ cd $(COMPONENT); \
+- $(DESTDIR)$(bindir)/gbc$(GAMBAS_VERSION) -ag -r $(DESTDIR)$(prefix); \
+- $(DESTDIR)$(bindir)/gba$(GAMBAS_VERSION); \
++ $(GBFILES)/gbc$(GAMBAS_VERSION) -ag -r $(DESTDIR)$(prefix); \
++ $(GBFILES)/gba$(GAMBAS_VERSION); \
+ rm -rf .gambas; \
+ $(INSTALL) $(COMPONENT).gambas $(DESTDIR)$(gblibdir); \
+ ) \
+ fi
+ @echo
+ @echo "Creating the information files for $(COMPONENT) component..."
+- @$(DESTDIR)$(bindir)/gbi$(GAMBAS_VERSION) -r $(DESTDIR)$(prefix) $(COMPONENT)
++ @$(GBFILES)/gbi$(GAMBAS_VERSION) -r $(DESTDIR)$(prefix) $(COMPONENT)
+ @echo
+
+ uninstall-hook:
diff --git a/community-testing/gambas2/gambas2-runtime.install b/community-testing/gambas2/gambas2-runtime.install
new file mode 100644
index 000000000..4729f7ef6
--- /dev/null
+++ b/community-testing/gambas2/gambas2-runtime.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource install --context mimetypes --size 64 \
+ /usr/share/gambas2/mime/application-x-gambas.png application-x-gambas
+ xdg-mime install /usr/share/gambas2/mime/application-x-gambas.xml
+}
+
+pre_remove() {
+ xdg-icon-resource uninstall --context mimetypes --size 64 application-x-gambas
+ xdg-mime uninstall /usr/share/gambas2/mime/application-x-gambas.xml
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community-testing/gambas2/gambas2-script.install b/community-testing/gambas2/gambas2-script.install
new file mode 100644
index 000000000..86558e434
--- /dev/null
+++ b/community-testing/gambas2/gambas2-script.install
@@ -0,0 +1,15 @@
+post_install() {
+ xdg-icon-resource install --context mimetypes --size 64 \
+ /usr/share/gambas2/mime/application-x-gambasscript.png application-x-gambasscript
+ xdg-icon-resource install --context mimetypes --size 64 \
+ /usr/share/gambas2/mime/application-x-gambasserverpage.png application-x-gambasserverpage
+ xdg-mime install /usr/share/gambas2/mime/application-x-gambasscript.xml
+ xdg-mime install /usr/share/gambas2/mime/application-x-gambasserverpage.xml
+}
+
+pre_remove() {
+ xdg-icon-resource uninstall --context mimetypes --size 64 application-x-gambasscript
+ xdg-icon-resource uninstall --context mimetypes --size 64 application-x-gambasserverpage
+ xdg-mime uninstall /usr/share/gambas2/mime/application-x-gambasscript.xml
+ xdg-mime uninstall /usr/share/gambas2/mime/application-x-gambasserverpage.xml
+}
diff --git a/community-testing/gambas2/gambas2.install b/community-testing/gambas2/gambas2.install
new file mode 100644
index 000000000..4729f7ef6
--- /dev/null
+++ b/community-testing/gambas2/gambas2.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource install --context mimetypes --size 64 \
+ /usr/share/gambas2/mime/application-x-gambas.png application-x-gambas
+ xdg-mime install /usr/share/gambas2/mime/application-x-gambas.xml
+}
+
+pre_remove() {
+ xdg-icon-resource uninstall --context mimetypes --size 64 application-x-gambas
+ xdg-mime uninstall /usr/share/gambas2/mime/application-x-gambas.xml
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community-testing/gambas2/poppler-0.18.patch b/community-testing/gambas2/poppler-0.18.patch
new file mode 100644
index 000000000..fbcc430bf
--- /dev/null
+++ b/community-testing/gambas2/poppler-0.18.patch
@@ -0,0 +1,40 @@
+--- gambas/trunk/gb.pdf/configure.ac 2010/07/14 01:50:18 3038
++++ gambas/trunk/gb.pdf/configure.ac 2011/08/09 10:43:30 3997
+@@ -22,6 +22,8 @@
+ AC_DEFINE_UNQUOTED(POPPLER_VERSION_0_8, $((1-$?)), Poppler version >= 0.8)
+ pkg-config --atleast-version=0.11.3 poppler
+ AC_DEFINE_UNQUOTED(POPPLER_VERSION_0_11_3, $((1-$?)), Poppler version >= 0.11.3)
++ pkg-config --atleast-version=0.17.0 poppler
++ AC_DEFINE_UNQUOTED(POPPLER_VERSION_0_17, $((1-$?)), Poppler version >= 0.17)
+ fi
+
+ AC_OUTPUT( \
+
+--- gambas/trunk/gb.pdf/src/CPdfDocument.cpp 2011/06/03 00:51:09 3870
++++ gambas/trunk/gb.pdf/src/CPdfDocument.cpp 2011/08/09 10:43:30 3997
+@@ -44,6 +44,7 @@
+ #include <Outline.h>
+ #include <Link.h>
+ #include <Gfx.h>
++#include <glib/poppler-features.h>
+
+ /*****************************************************************************
+
+@@ -956,12 +957,17 @@
+ Bookmarks of a PDF page
+
+ ******************************************************************************/
++
+ void aux_fill_links(void *_object)
+ {
++ #if POPPLER_VERSION_0_17
++ THIS->links = new Links (THIS->page->getAnnots (THIS->doc->getCatalog()));
++ #else
+ Object obj;
+
+ THIS->links = new Links (THIS->page->getAnnots (&obj),THIS->doc->getCatalog()->getBaseURI ());
+ obj.free();
++ #endif
+ }
+
+ BEGIN_PROPERTY (PDFPAGELINKS_count)
diff --git a/community-testing/gambas3/PKGBUILD b/community-testing/gambas3/PKGBUILD
new file mode 100644
index 000000000..85b161fbc
--- /dev/null
+++ b/community-testing/gambas3/PKGBUILD
@@ -0,0 +1,1097 @@
+# $Id: PKGBUILD 60882 2011-12-19 18:07:26Z andrea $
+# Maintainer: Laurent Carlier <lordheavym@gmail.com>
+
+pkgbase=gambas3
+pkgname=('gambas3-runtime' 'gambas3-devel' 'gambas3-ide' 'gambas3-script' 'gambas3-examples' 'gambas3-gb-cairo' 'gambas3-gb-chart'
+ 'gambas3-gb-dbus' 'gambas3-gb-compress' 'gambas3-gb-crypt' 'gambas3-gb-db' 'gambas3-gb-db-form' 'gambas3-gb-db-mysql'
+ 'gambas3-gb-db-odbc' 'gambas3-gb-db-postgresql' 'gambas3-gb-db-sqlite2' 'gambas3-gb-db-sqlite3'
+ 'gambas3-gb-desktop' 'gambas3-gb-eval-highlight' 'gambas3-gb-form'
+ 'gambas3-gb-form-dialog' 'gambas3-gb-form-mdi' 'gambas3-gb-form-stock' 'gambas3-gb-gtk' 'gambas3-gb-gui' 'gambas3-gb-image'
+ 'gambas3-gb-image-effect' 'gambas3-gb-image-imlib' 'gambas3-gb-image-io' 'gambas3-gb-net' 'gambas3-gb-net-curl'
+ 'gambas3-gb-net-smtp' 'gambas3-gb-opengl' 'gambas3-gb-opengl-glu' 'gambas3-gb-opengl-glsl' 'gambas3-gb-option' 'gambas3-gb-pcre'
+ 'gambas3-gb-pdf' 'gambas3-gb-qt4' 'gambas3-gb-qt4-ext' 'gambas3-gb-qt4-opengl' 'gambas3-gb-qt4-webkit'
+ 'gambas3-gb-report' 'gambas3-gb-sdl' 'gambas3-gb-sdl-sound' 'gambas3-gb-settings' 'gambas3-gb-signal'
+ 'gambas3-gb-v4l' 'gambas3-gb-vb' 'gambas3-gb-xml' 'gambas3-gb-xml-rpc' 'gambas3-gb-xml-xslt' 'gambas3-gb-web')
+pkgver=2.99.6
+pkgrel=5
+pkgdesc="A free development environment based on a Basic interpreter."
+arch=('i686' 'x86_64')
+url="http://gambas.sourceforge.net/"
+license=('GPL')
+groups=('gambas3')
+makedepends=('intltool' 'mysql' 'postgresql' 'libffi' 'bzip2' 'glib2' 'v4l-utils'
+ 'zlib' 'mesa' 'libgl' 'glew' 'xdg-utils' 'gtk2' 'imlib2' 'gdk-pixbuf2'
+ 'postgresql-libs' 'libmysqlclient' 'unixodbc' 'sqlite2' 'sqlite3' 'librsvg'
+ 'curl' 'poppler-glib' 'sdl_mixer' 'sdl_ttf' 'libxtst' 'pcre' 'qtwebkit'
+ 'libxcursor' 'libsm' 'dbus-core' 'libxml2' 'libxslt' 'libgnome-keyring')
+options=('!emptydirs' '!makeflags')
+source=("http://downloads.sourceforge.net/gambas/${pkgbase}-${pkgver}.tar.bz2"
+ 'gambas3-script.install' 'gambas3-runtime.install')
+md5sums=('746aaae5494c4b267bdae802c5c006d5'
+ 'b284be39d147ec799f1116a6abc068b4'
+ 'b5cc403990f31b8ea1c5cf37366d3d29')
+
+build() {
+ cd ${srcdir}/${pkgbase}-${pkgver}
+
+ ./reconf-all
+ ./configure --prefix=/usr -C
+
+ make bindir=${pkgdir}/usr/bin
+}
+
+package_gambas3-runtime() {
+ depends=('libffi' 'xdg-utils')
+ pkgdesc="Runtime environment"
+ install=gambas3-runtime.install
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbc
+ make DESTDIR="${pkgdir}" install
+
+ cd ../gbx
+ make DESTDIR="${pkgdir}" install
+ cd ../lib/debug
+ make DESTDIR="${pkgdir}" install
+ cd ../eval
+ make DESTDIR="${pkgdir}" install
+ cd ../draw
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 ../gb.component \
+ ${pkgdir}/usr/lib/gambas3
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ ln -s gbx3 ${pkgdir}/usr/bin/gbr3
+ gbc/gbi3 -r ${pkgdir}/usr gb
+ rm -f ${pkgdir}/usr/lib/gambas3/gb.{so*,la}
+
+ ## needed for postinst with xdg-utils
+ install -d -m755 ${pkgdir}/usr/share/gambas3/mime
+ install -D -m644 mime/* \
+ ${pkgdir}/usr/share/gambas3/mime/
+ install -d -m755 ${pkgdir}/usr/share/gambas3/icons
+ install -D -m644 mime/application-x-gambas3.png \
+ ${pkgdir}/usr/share/gambas3/icons/application-x-gambas3.png
+
+ cd gbc
+ make DESTDIR="${pkgdir}" uninstall
+}
+
+package_gambas3-devel() {
+ depends=('gambas3-runtime')
+ pkgdesc="Development environment"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbc
+ make DESTDIR="${pkgdir}" install
+}
+
+package_gambas3-ide() {
+ depends=('gambas3-devel' 'gambas3-gb-db-form' 'gambas3-gb-desktop' 'gambas3-gb-eval-highlight'
+ 'gambas3-gb-form-dialog' 'gambas3-gb-settings' 'gambas3-gb-form-mdi' 'gambas3-gb-image-effect'
+ 'gambas3-gb-qt4-ext' 'gambas3-gb-qt4-webkit')
+ pkgdesc="Integrated Development Environment"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+#!! with the ide !!
+ install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/app/desktop/gambas3.desktop \
+ ${pkgdir}/usr/share/applications/gambas3.desktop
+ install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/app/desktop/gambas3.png \
+ ${pkgdir}/usr/share/pixmaps/gambas3.png
+
+ rm -r ${pkgdir}/usr/bin/gb*
+ rm -r ${pkgdir}/usr/lib
+ rm -r ${pkgdir}/usr/share/gambas3
+}
+
+package_gambas3-script() {
+ depends=('gambas3-devel')
+ pkgdesc="Scripter and server programs support"
+ install=gambas3-script.install
+
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## needed for postinst with xdg-utils
+ cd ${srcdir}/${pkgbase}-${pkgver}/app/mime
+ install -d -m755 ${pkgdir}/usr/share/gambas3/mime
+ install -D -m644 *.xml ${pkgdir}/usr/share/gambas3/mime/
+ install -D -m644 *.png ${pkgdir}/usr/share/gambas3/mime/
+ ##
+
+ rm -r ${pkgdir}/usr/bin/{gambas*,gb{[a-r]*,x*}}
+ rm -r ${pkgdir}/usr/lib
+ rm -r ${pkgdir}/usr/share/gambas3/[c-i]*
+}
+
+package_gambas3-examples() {
+ depends=('gambas3-gb-cairo' 'gambas3-gb-chart' 'gambas3-gb-dbus' 'gambas3-gb-compress' 'gambas3-gb-crypt' 'gambas3-gb-db'
+ 'gambas3-gb-db-form' 'gambas3-gb-db-mysql' 'gambas3-gb-db-odbc' 'gambas3-gb-db-postgresql' 'gambas3-gb-db-sqlite2'
+ 'gambas3-gb-db-sqlite3' 'gambas3-gb-desktop' 'gambas3-gb-eval-highlight' 'gambas3-gb-form' 'gambas3-gb-form-dialog'
+ 'gambas3-gb-form-mdi' 'gambas3-gb-gtk' 'gambas3-gb-gui' 'gambas3-gb-image' 'gambas3-gb-image-effect' 'gambas3-gb-image-imlib'
+ 'gambas3-gb-image-io' 'gambas3-gb-net' 'gambas3-gb-net-curl' 'gambas3-gb-net-smtp' 'gambas3-gb-opengl' 'gambas3-gb-opengl-glsl'
+ 'gambas3-gb-option' 'gambas3-gb-pcre' 'gambas3-gb-pdf' 'gambas3-gb-qt4' 'gambas3-gb-qt4-ext' 'gambas3-gb-qt4-opengl'
+ 'gambas3-gb-qt4-webkit' 'gambas3-gb-report' 'gambas3-gb-sdl' 'gambas3-gb-sdl-sound' 'gambas3-gb-settings' 'gambas3-gb-signal'
+ 'gambas3-gb-v4l' 'gambas3-gb-vb' 'gambas3-gb-xml' 'gambas3-gb-xml-rpc' 'gambas3-gb-xml-xslt' 'gambas3-gb-web')
+ pkgdesc="Applications examples"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ rm -r ${pkgdir}/usr/{bin,lib}
+ rm -r ${pkgdir}/usr/share/gambas3/{info,control,gb.sdl}
+}
+
+package_gambas3-gb-cairo() {
+ depends=('gambas3-runtime' 'cairo')
+ pkgdesc="Cairo component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.cairo
+ make DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-chart() {
+ depends=('gambas3-gb-form')
+ pkgdesc="Chart component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/comp
+ make DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ rm -r ${pkgdir}/usr/share/gambas3/control
+ rm -r ${pkgdir}/usr/lib/gambas3/gb.[d-w]*
+ rm -r ${pkgdir}/usr/share/gambas3/info/gb.[d-w]*
+ ##
+}
+
+package_gambas3-gb-compress() {
+ depends=('gambas3-runtime' 'bzip2' 'zlib')
+ pkgdesc="Compression support component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.compress.bzlib2
+ make DESTDIR="${pkgdir}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.compress.zlib
+ make DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ rm -r ${pkgdir}/usr/bin
+ rm -r ${pkgdir}/usr/lib/gambas3/{gb.component,gb.[d-v]*}
+ rm -r ${pkgdir}/usr/share/gambas3/info/gb.[d-v]*
+ ##
+}
+
+package_gambas3-gb-crypt() {
+ depends=('gambas3-runtime')
+ pkgdesc="MD5/DES crypting component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.crypt
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-db() {
+ depends=('gambas3-runtime')
+ pkgdesc="Database access component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ ## Workaround for splitting
+ rm -r ${pkgdir}/usr/bin
+ rm -r ${pkgdir}/usr/lib/gambas3/{gb.comp*,gb.d{e,r}*,gb.[e-z]*}
+ rm -r ${pkgdir}/usr/share/gambas3/info/{gb.comp*,gb.de*,gb.[e-z]*}
+ ##
+}
+
+package_gambas3-gb-db-form() {
+ depends=('gambas3-gb-db' 'gambas3-gb-form')
+ pkgdesc="Database form component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/comp
+ make DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ rm -r ${pkgdir}/usr/share/gambas3/control
+ rm -r ${pkgdir}/usr/lib/gambas3/gb.{chart*,[e-z]*}
+ rm -r ${pkgdir}/usr/share/gambas3/info/gb.{chart*,[e-z]*}
+ ##
+}
+
+package_gambas3-gb-db-mysql() {
+ depends=('gambas3-gb-db' 'libmysqlclient')
+ pkgdesc="MySQL database access component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.db.mysql
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-db-odbc() {
+ depends=('gambas3-gb-db' 'unixodbc')
+ pkgdesc="ODBC database access component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.db.odbc
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-db-postgresql() {
+ depends=('gambas3-gb-db' 'postgresql-libs')
+ pkgdesc="PostgreSQL database access component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.db.postgresql
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-db-sqlite2() {
+ depends=('gambas3-gb-db' 'sqlite2')
+ pkgdesc="Sqlite2 database access component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.db.sqlite2
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-db-sqlite3() {
+ depends=('gambas3-gb-db' 'sqlite3')
+ pkgdesc="Sqlite3 database access component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.db.sqlite3
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-desktop() {
+ depends=('gambas3-gb-image' 'libsm' 'libxtst' 'libgnome-keyring')
+ pkgdesc="Desktop component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.desktop
+ make DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-dbus() {
+ depends=('gambas3-runtime' 'dbus-core')
+ pkgdesc="DBUS component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.dbus
+ make DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-eval-highlight() {
+ depends=('gambas3-runtime')
+ pkgdesc="Expression evaluator highlight component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/comp
+ make DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ rm -r ${pkgdir}/usr/lib/gambas3/gb.[f-z]*
+ rm -r ${pkgdir}/usr/share/gambas3/info/gb.[f-z]*
+ ##
+}
+
+package_gambas3-gb-form() {
+ depends=('gambas3-gb-gui')
+ pkgdesc="Form component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.gtk
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/comp
+ make DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.gtk
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ rm -r ${pkgdir}/usr/share/gambas3/control/{gb.db*,gb.form.*,gb.report}
+ rm -r ${pkgdir}/usr/lib/gambas3/gb.{[c-e]*,[m-w]*,form.{d*,m*,s*}}
+ rm -r ${pkgdir}/usr/share/gambas3/info/gb.{[c-e]*,[m-w]*,form.{d*,m*,s*}}
+ ##
+}
+
+package_gambas3-gb-form-dialog() {
+ depends=('gambas3-gb-form')
+ pkgdesc="Form dialog component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.gtk
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/comp
+ make DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.gtk
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ rm -r ${pkgdir}/usr/share/gambas3/control
+ rm -r ${pkgdir}/usr/lib/gambas3/gb.{[c-e]*,[m-w]*,form.{c*,g*,m*,s*}}
+ rm -r ${pkgdir}/usr/share/gambas3/info/gb.{[c-e]*,[m-w]*,form.{i*,l*,m*,s*}}
+ ##
+}
+
+package_gambas3-gb-form-mdi() {
+ depends=('gambas3-gb-form')
+ pkgdesc="Form MDI component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.gtk
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/comp
+ make DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.gtk
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ rm -r ${pkgdir}/usr/share/gambas3/control/{gb.db*,gb.form,gb.report}
+ rm -r ${pkgdir}/usr/lib/gambas3/gb.{[c-e]*,[m-w]*,form.{c*,d*,g*,s*}}
+ rm -r ${pkgdir}/usr/share/gambas3/info/gb.{[c-e]*,[m-w]*,form.{i*,l*,d*,s*}}
+ ##
+}
+
+package_gambas3-gb-form-stock() {
+ depends=('gambas3-runtime')
+ pkgdesc="Default stock icons component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.gtk
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/comp
+ make DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.gtk
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ rm -r ${pkgdir}/usr/lib/gambas3/gb.{eval*,[m-w]*}
+ rm -r ${pkgdir}/usr/share/gambas3/info/gb.{eval*,[m-w]*}
+ ##
+}
+
+package_gambas3-gb-gtk() {
+ depends=('gambas3-gb-image' 'gtk2' 'librsvg')
+ pkgdesc="GTK+ toolkit component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.gtk
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-gui() {
+ depends=('gambas3-gb-qt4' 'gambas3-gb-gtk')
+ pkgdesc="Automatic gui toolkit chooser"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/gui
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ rm -r ${pkgdir}/usr/bin
+ rm -r ${pkgdir}/usr/lib/gambas3/{gb.[c-e]*,gb.[i-z]*}
+ rm -r ${pkgdir}/usr/share/gambas3/info/{gb.[c-e]*,gb.[i-z]*}
+ ##
+}
+
+package_gambas3-gb-image() {
+ depends=('gambas3-runtime')
+ pkgdesc="Image component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ ## cleanup the workaround
+ rm -r ${pkgdir}/usr/bin
+ rm -r ${pkgdir}/usr/lib/gambas3/{gb.[c-g]*,gb.image.e*,gb.[j-z]*}
+ rm -r ${pkgdir}/usr/share/gambas3/info/{gb.[c-g]*,gb.info,gb.image.e*,gb.[j-z]*}
+ ##
+}
+
+package_gambas3-gb-image-effect() {
+ depends=('gambas3-gb-image')
+ pkgdesc="Image effect component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ ## cleanup the workaround
+ rm -r ${pkgdir}/usr/bin
+ rm -r ${pkgdir}/usr/lib/gambas3/{gb.[c-g]*,gb.image.{c*,l*,s*},gb.[j-z]*}
+ rm -r ${pkgdir}/usr/share/gambas3/info/{gb.[c-g]*,gb.info,gb.image.{i*,l*},gb.[j-z]*}
+ ##
+}
+
+package_gambas3-gb-image-imlib() {
+ depends=('gambas3-gb-image' 'imlib2')
+ pkgdesc="Imlib component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.image.imlib
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-image-io() {
+ depends=('gambas3-gb-image' 'gdk-pixbuf2')
+ pkgdesc="Input/Output component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.image.io
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-net() {
+ depends=('gambas3-runtime')
+ pkgdesc="Network component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.net
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-net-curl() {
+ depends=('gambas3-gb-net' 'curl')
+ pkgdesc="Curl component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.net.curl
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-net-smtp() {
+ depends=('gambas3-runtime' 'glib2')
+ pkgdesc="SMTP component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.net.smtp
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-opengl() {
+ depends=('gambas3-runtime' 'libgl' 'glew')
+ pkgdesc="OpenGL component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.opengl
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.opengl/src/glsl
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.opengl/src/glu
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-opengl-glu() {
+ depends=('gambas3-gb-opengl')
+ pkgdesc="GL Utility component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.opengl/src/glu
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-opengl-glsl() {
+ depends=('gambas3-gb-opengl')
+ pkgdesc="GLSL component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.opengl/src/glsl
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-option() {
+ depends=('gambas3-runtime')
+ pkgdesc="Getopt component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ ## cleanup the workaround
+ rm -r ${pkgdir}/usr/bin
+ rm -r ${pkgdir}/usr/lib/gambas3/{gb.[a-n]*,gb.[p-z]*}
+ rm -r ${pkgdir}/usr/share/gambas3/info/{gb.[a-n]*,gb.[p-z]*}
+ ##
+}
+
+package_gambas3-gb-pcre() {
+ depends=('gambas3-runtime' 'pcre')
+ pkgdesc="PCRE component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.pcre
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-pdf() {
+ depends=('gambas3-runtime' 'poppler')
+ pkgdesc="PDF component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.pdf
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-qt4() {
+ depends=('gambas3-gb-image' 'qt')
+ pkgdesc="Qt4 toolkit component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4/src/ext
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4/src/opengl
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4/src/webkit
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-qt4-ext() {
+ depends=('gambas3-gb-qt4')
+ pkgdesc="Qt4 toolkit extended component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4/src/ext
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-qt4-opengl() {
+ depends=('gambas3-gb-qt4' 'libgl')
+ pkgdesc="Qt4 toolkit OpenGL component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4/src/opengl
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-qt4-webkit() {
+ depends=('gambas3-gb-qt4' 'qtwebkit')
+ pkgdesc="Qt4 toolkit webkit component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4/src/webkit
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-report() {
+ depends=('gambas3-gb-form' 'gambas3-gb-image-io')
+ pkgdesc="Report component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/comp
+ make DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ rm -r ${pkgdir}/usr/share/gambas3/control/gb.[d-f]*
+ rm -r ${pkgdir}/usr/lib/gambas3/gb.{[c-m]*,[s-w]*}
+ rm -r ${pkgdir}/usr/share/gambas3/info/gb.{[c-m]*,[s-w]*}
+ ##
+}
+
+package_gambas3-gb-sdl() {
+ depends=('gambas3-gb-image-io' 'sdl_ttf' 'libxcursor' 'glew' 'libgl')
+ pkgdesc="SDL component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.sdl
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-sdl-sound() {
+ depends=('gambas3-runtime' 'sdl_mixer')
+ pkgdesc="SDL sound component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.sdl.sound
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-settings() {
+ depends=('gambas3-runtime')
+ pkgdesc="Setting component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/comp
+ make DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ rm -r ${pkgdir}/usr/lib/gambas3/gb.{[c-r]*,[t-w]*}
+ rm -r ${pkgdir}/usr/share/gambas3/info/gb.{[c-r]*,[t-w]*}
+ ##
+}
+
+package_gambas3-gb-signal() {
+ depends=('gambas3-runtime')
+ pkgdesc="Signal component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ ## cleanup the workaround
+ rm -r ${pkgdir}/usr/bin
+ rm -r ${pkgdir}/usr/lib/gambas3/{gb.[c-r]*,gb.[t-z]*,gb.so*}
+ rm -r ${pkgdir}/usr/share/gambas3/info/{gb.[c-r]*,gb.[t-z]*}
+ ##
+}
+
+package_gambas3-gb-v4l() {
+ depends=('gambas3-runtime' 'v4l-utils' 'libjpeg' 'libpng')
+ pkgdesc="Video4linux component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.v4l
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-vb() {
+ depends=('gambas3-runtime')
+ pkgdesc="VB transitional component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ ## Workaround for splitting
+ rm -r ${pkgdir}/usr/bin
+ rm -r ${pkgdir}/usr/lib/gambas3/gb.[a-u]*
+ rm -r ${pkgdir}/usr/share/gambas3/info/gb.[a-u]*
+ ##
+}
+
+package_gambas3-gb-xml() {
+ depends=('gambas3-runtime' 'libxml2')
+ pkgdesc="XML component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.xml
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.xml/src/xslt
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.xml/src/rpc
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-xml-rpc() {
+ depends=('gambas3-gb-xml' 'gambas3-gb-net' 'gambas3-gb-net-curl')
+ pkgdesc="XML-RPC component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.net
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.net.curl
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.xml
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.net
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.net.curl
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ rm -r ${pkgdir}/usr/lib/gambas3/gb.xml.{[c-l]*,xslt*,so*}
+ rm -r ${pkgdir}/usr/share/gambas3/info/gb.xml.{[i-l]*,x*}
+ ##
+}
+
+package_gambas3-gb-xml-xslt() {
+ depends=('gambas3-gb-xml' 'libxslt')
+ pkgdesc="XML-XSLT component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.xml/src/xslt
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-web() {
+ depends=('gambas3-runtime')
+ pkgdesc="CGI component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/comp
+ make DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ rm -r ${pkgdir}/usr/lib/gambas3/gb.[c-v]*
+ rm -r ${pkgdir}/usr/share/gambas3/info/gb.[c-v]*
+ ##
+}
diff --git a/community-testing/gambas3/gambas3-runtime.install b/community-testing/gambas3/gambas3-runtime.install
new file mode 100644
index 000000000..6c8201a6a
--- /dev/null
+++ b/community-testing/gambas3/gambas3-runtime.install
@@ -0,0 +1,10 @@
+post_install() {
+ xdg-icon-resource install --context mimetypes --size 64 \
+ /usr/share/gambas3/mime/application-x-gambas.png application-x-gambas3
+ xdg-mime install /usr/share/gambas3/mime/application-x-gambas3.xml
+}
+
+pre_remove() {
+ xdg-icon-resource uninstall --context mimetypes --size 64 application-x-gambas3
+ xdg-mime uninstall /usr/share/gambas3/mime/application-x-gambas3.xml
+}
diff --git a/community-testing/gambas3/gambas3-script.install b/community-testing/gambas3/gambas3-script.install
new file mode 100644
index 000000000..77c1aa52f
--- /dev/null
+++ b/community-testing/gambas3/gambas3-script.install
@@ -0,0 +1,15 @@
+post_install() {
+ xdg-icon-resource install --context mimetypes --size 64 \
+ /usr/share/gambas3/mime/application-x-gambasscript.png application-x-gambasscript
+ xdg-icon-resource install --context mimetypes --size 64 \
+ /usr/share/gambas3/mime/application-x-gambasserverpage.png application-x-gambasserverpage
+ xdg-mime install /usr/share/gambas3/mime/application-x-gambasscript.xml
+ xdg-mime install /usr/share/gambas3/mime/application-x-gambasserverpage.xml
+}
+
+pre_remove() {
+ xdg-icon-resource uninstall --context mimetypes --size 64 application-x-gambasscript
+ xdg-icon-resource uninstall --context mimetypes --size 64 application-x-gambasserverpage
+ xdg-mime uninstall /usr/share/gambas3/mime/application-x-gambasscript.xml
+ xdg-mime uninstall /usr/share/gambas3/mime/application-x-gambasserverpage.xml
+}
diff --git a/community-testing/goldendict/PKGBUILD b/community-testing/goldendict/PKGBUILD
new file mode 100644
index 000000000..052e25df8
--- /dev/null
+++ b/community-testing/goldendict/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 60884 2011-12-19 18:07:35Z andrea $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: m0rph <m0rph.mailbox@gmail.com>
+
+pkgname=goldendict
+pkgver=1.0.1
+pkgrel=5
+pkgdesc="Feature-rich dictionary lookup program"
+arch=('i686' 'x86_64')
+url="http://goldendict.berlios.de/"
+license=('GPL3')
+depends=('hunspell' 'libvorbis' 'libxtst' 'libzip' 'qt' 'qtwebkit' 'phonon')
+makedepds=('patch')
+provides=('stardict')
+changelog=$pkgname.changelog
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver-src.tar.bz2
+ $pkgname-paths.diff)
+sha256sums=('b3fb0405a5edb38f02ef881b48c36e46e2eacf641b0caf8d99403f595a4be9a6'
+ '1dacae7b7a7d7c20a22b4595c07dbd65fdad134a0d4cf283312ea3bdb5f42589')
+
+build(){
+ cd ${srcdir}
+
+ patch -Np0 -i ${srcdir}/$pkgname-paths.diff
+
+ qmake
+ make
+ qmake
+}
+
+package() {
+ cd ${srcdir}
+
+ make INSTALL_ROOT=${pkgdir} install
+
+ #removing unneeded
+ rm -rf ${pkgdir}/usr/share/app-install
+}
diff --git a/community-testing/goldendict/goldendict-paths.diff b/community-testing/goldendict/goldendict-paths.diff
new file mode 100644
index 000000000..812dfdb97
--- /dev/null
+++ b/community-testing/goldendict/goldendict-paths.diff
@@ -0,0 +1,10 @@
+--- goldendict.pro~ 2010-12-27 22:52:21.000000000 +0100
++++ goldendict.pro 2010-12-27 22:52:21.000000000 +0100
+@@ -63,2 +63,2 @@
+- isEmpty( PREFIX ):PREFIX = /usr/local
+- DEFINES += PROGRAM_DATA_DIR=\\\"$$PREFIX/share/apps/goldendict/\\\"
++ isEmpty( PREFIX ):PREFIX = /usr
++ DEFINES += PROGRAM_DATA_DIR=\\\"$$PREFIX/share/goldendict/\\\"
+@@ -66 +66 @@
+- locale.path = $$PREFIX/share/apps/goldendict/locale/
++ locale.path = $$PREFIX/share/goldendict/locale/
diff --git a/community-testing/goldendict/goldendict.changelog b/community-testing/goldendict/goldendict.changelog
new file mode 100644
index 000000000..a42c630d3
--- /dev/null
+++ b/community-testing/goldendict/goldendict.changelog
@@ -0,0 +1,11 @@
+2011-12-17 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * goldendict 1.0.1-5 libQtWebKit.so.4 now in new qtwebkit package
+
+2010-12-27 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 1.0.1
+
+2010-02-16 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * FS#18350 fixed in 0.9.0-5
+
+2009-06-21 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Package moved to [community] in v0.9.0
diff --git a/community-testing/google-gadgets/PKGBUILD b/community-testing/google-gadgets/PKGBUILD
new file mode 100644
index 000000000..ff4cb1675
--- /dev/null
+++ b/community-testing/google-gadgets/PKGBUILD
@@ -0,0 +1,158 @@
+# $Id: PKGBUILD 60886 2011-12-19 18:07:48Z andrea $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+
+pkgbase=google-gadgets
+pkgname=('google-gadgets-common' 'google-gadgets-gtk' 'google-gadgets-qt')
+_realname=$pkgbase-for-linux
+_basedir="$startdir/pkg/base"
+pkgver=0.11.2
+_sover=1.0
+_sobump=0.0.0
+pkgrel=5
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/google-gadgets-for-linux/"
+license=('APACHE')
+makedepends=('gstreamer0.10-base-plugins' 'libwebkit'
+ 'desktop-file-utils' 'xdg-utils'
+ 'librsvg' 'curl' 'libsoup-gnome'
+ 'qt' 'qtwebkit'
+ 'networkmanager'
+ 'zip' 'flex')
+options=('!libtool')
+source=("http://google-gadgets-for-linux.googlecode.com/files/$_realname-$pkgver.tar.bz2"
+ "wifi-types.patch")
+md5sums=('279305553bcbf74f3e3615f6abc36a5e'
+ 'f0df71c60a174e9d629db87b8bd9e102')
+
+build() {
+ cd "$srcdir/$_realname-$pkgver"
+
+ # Building thrice is expensive;
+ # we move files around instead
+ #
+ # xulrunner 2.0 is incompatible;
+ # we build without smjs-script/browser-element
+
+ patch -p1 <$srcdir/wifi-types.patch
+ ./configure --prefix=/usr \
+ --disable-werror \
+ --disable-update-desktop-database \
+ --disable-update-mime-database \
+ --with-oem-brand=Arch \
+ --with-ssl-ca-file=/etc/ssl/certs/ca-certificates.crt \
+ --with-browser-plugins-dir=/usr/lib/mozilla/plugins \
+ --disable-gtkmoz-browser-element \
+ --disable-smjs-script-runtime
+ make
+}
+
+package_google-gadgets-common() {
+ pkgdesc="Desktop widgets from Google (common files)"
+ install=$pkgbase-common.install
+ depends=('hicolor-icon-theme' 'shared-mime-info')
+ optdepends=('google-gadgets-gtk: GTK+ (full) UI'
+ 'google-gadgets-qt: Qt (partial) UI')
+
+ cd "$srcdir/$_realname-$pkgver"
+
+ make -j1 DESTDIR="$pkgdir/" install
+
+ # we need to remove stuff in this package
+ cp -a "$pkgdir" "$_basedir"
+
+ # do not force any removal; we want to know in case files change
+ cd "$pkgdir/usr"
+ rm -r bin
+ rm -r share/applications
+
+ cd "$pkgdir/usr/lib/$pkgbase"
+
+ # gtk-related
+ #rm gtkmoz-browser-child
+ rm ../lib*gtk*
+ rm modules/gtk*.so
+
+ # qt-related
+ rm ../lib*qt*
+ rm modules/qt*.so
+}
+
+package_google-gadgets-gtk() {
+ pkgdesc="Desktop widgets from Google (full GTK+ front-end)"
+ groups=('google-gadgets')
+ install=$pkgbase.install
+ depends=('google-gadgets-common'
+ 'desktop-file-utils' 'xdg-utils'
+ 'gstreamer0.10-base-plugins' 'libwebkit' 'libsoup-gnome'
+ 'librsvg' 'curl')
+ optdepends=('networkmanager: desktop integration')
+
+ # install the gtk binary
+ cd "$_basedir"
+ install -Dm755 "usr/bin/ggl-gtk" "$pkgdir/usr/bin/ggl-gtk"
+
+ # gtk-only browser stuff
+ #install -Dm755 usr/lib/$pkgbase/gtkmoz-browser-child \
+ # "$pkgdir/usr/lib/$pkgbase/gtkmoz-browser-child"
+
+ # now the gtk libraries
+ mkdir -p "$pkgdir/usr/lib/$pkgbase/modules"
+
+ install -m755 usr/lib/$pkgbase/modules/gtk*.so \
+ "$pkgdir/usr/lib/$pkgbase/modules/"
+
+ install -m755 usr/lib/lib*gtk* "$pkgdir/usr/lib"
+
+ # fix permissions and symlinks
+ find "$pkgdir/usr/lib" -name *.a -exec chmod 644 {} \;
+
+ ln -sf /usr/lib/libggadget-gtk-$_sover.so.$_sobump \
+ "$pkgdir/usr/lib/libggadget-gtk-$_sover.so"
+
+ ln -sf /usr/lib/libggadget-gtk-$_sover.so.$_sobump \
+ "$pkgdir/usr/lib/libggadget-gtk-$_sover.so.0"
+
+ # freedesktop.org for gtk
+ install -Dm644 usr/share/applications/ggl-gtk.desktop \
+ "$pkgdir/usr/share/applications/ggl-gtk.desktop"
+
+ install -m644 usr/share/applications/ggl-designer.desktop \
+ "$pkgdir/usr/share/applications/"
+}
+
+package_google-gadgets-qt() {
+ pkgdesc="Desktop widgets from Google (partial Qt front-end)"
+ groups=('google-gadgets')
+ install=$pkgbase.install
+ depends=('google-gadgets-common' 'qt' 'qtwebkit'
+ 'desktop-file-utils' 'xdg-utils'
+ 'gstreamer0.10-base-plugins' 'libwebkit')
+ optdepends=('networkmanager: desktop integration')
+
+ # install the qt binary
+ cd "$_basedir"
+ install -Dm755 usr/bin/ggl-qt "$pkgdir/usr/bin/ggl-qt"
+
+ # the qt libraries
+ mkdir -p "$pkgdir/usr/lib/$pkgbase/modules"
+
+ install -m755 usr/lib/$pkgbase/modules/qt*.so \
+ "$pkgdir/usr/lib/$pkgbase/modules/"
+
+ install -m755 usr/lib/lib*qt* "$pkgdir/usr/lib/"
+
+ # fix permissions and symlinks
+ find "$pkgdir/usr/lib" -name *.a -exec chmod 644 {} \;
+
+ ln -sf /usr/lib/libggadget-qt-$_sover.so.$_sobump \
+ "$pkgdir/usr/lib/libggadget-qt-$_sover.so"
+
+ ln -sf /usr/lib/libggadget-qt-$_sover.so.$_sobump \
+ "$pkgdir/usr/lib/libggadget-qt-$_sover.so.0"
+
+ # freedesktop.org for qt
+ install -Dm644 usr/share/applications/ggl-qt.desktop \
+ "$pkgdir/usr/share/applications/ggl-qt.desktop"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community-testing/google-gadgets/google-gadgets-common.install b/community-testing/google-gadgets/google-gadgets-common.install
new file mode 100644
index 000000000..210cbc869
--- /dev/null
+++ b/community-testing/google-gadgets/google-gadgets-common.install
@@ -0,0 +1,15 @@
+post_install() {
+ echo "==> Updating desktop database..."
+ gtk-update-icon-cache --quiet usr/share/icons/hicolor
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community-testing/google-gadgets/google-gadgets.changelog b/community-testing/google-gadgets/google-gadgets.changelog
new file mode 100644
index 000000000..5b8f85a71
--- /dev/null
+++ b/community-testing/google-gadgets/google-gadgets.changelog
@@ -0,0 +1,8 @@
+25 Mar 2011 (GMT+8) Ray Rashif <schiv@archlinux.org>
+
+ * 0.11.2-3:
+ xulrunner rebuild
+ - undepend on xulrunner (2.0 incompatible)
+ - disable smjs-script/browser-element
+ Cleaned up scriptlets (too many blank lines)
+ Added this changelog
diff --git a/community-testing/google-gadgets/google-gadgets.install b/community-testing/google-gadgets/google-gadgets.install
new file mode 100644
index 000000000..fd88688fc
--- /dev/null
+++ b/community-testing/google-gadgets/google-gadgets.install
@@ -0,0 +1,15 @@
+post_install() {
+ echo "==> Updating desktop database..."
+ update-mime-database usr/share/mime &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community-testing/google-gadgets/wifi-types.patch b/community-testing/google-gadgets/wifi-types.patch
new file mode 100644
index 000000000..be9383a61
--- /dev/null
+++ b/community-testing/google-gadgets/wifi-types.patch
@@ -0,0 +1,36 @@
+diff -wbBur google-gadgets-for-linux-0.11.2/extensions/linux_system_framework/network.cc google-gadgets-for-linux-0.11.2.my/extensions/linux_system_framework/network.cc
+--- google-gadgets-for-linux-0.11.2/extensions/linux_system_framework/network.cc 2009-03-15 04:12:42.000000000 +0000
++++ google-gadgets-for-linux-0.11.2.my/extensions/linux_system_framework/network.cc 2011-04-08 20:57:16.000000000 +0000
+@@ -23,17 +23,9 @@
+ namespace framework {
+ namespace linux_system {
+
+-#ifdef NM_DEVICE_TYPE_WIFI
+ static const int kDeviceTypeWifi = NM_DEVICE_TYPE_WIFI;
+-#else
+-static const int kDeviceTypeWifi = DEVICE_TYPE_802_11_WIRELESS;
+-#endif
+
+-#ifdef NM_DEVICE_TYPE_ETHERNET
+ static const int kDeviceTypeEthernet = NM_DEVICE_TYPE_ETHERNET;
+-#else
+-static const int kDeviceTypeEthernet = DEVICE_TYPE_802_3_ETHERNET;
+-#endif
+
+ static const int kDeviceTypeUnknown = 0;
+
+diff -wbBur google-gadgets-for-linux-0.11.2/extensions/linux_system_framework/wireless.cc google-gadgets-for-linux-0.11.2.my/extensions/linux_system_framework/wireless.cc
+--- google-gadgets-for-linux-0.11.2/extensions/linux_system_framework/wireless.cc 2009-12-28 10:39:53.000000000 +0000
++++ google-gadgets-for-linux-0.11.2.my/extensions/linux_system_framework/wireless.cc 2011-04-08 20:57:39.000000000 +0000
+@@ -77,11 +77,7 @@
+
+ using namespace ggadget::dbus;
+
+-#ifdef NM_DEVICE_TYPE_WIFI
+ static const int kDeviceTypeWifi = NM_DEVICE_TYPE_WIFI;
+-#else
+-static const int kDeviceTypeWifi = DEVICE_TYPE_802_11_WIRELESS;
+-#endif
+
+ // Defined in nm 0.7
+ static const int kDeviceStateActivated = 8;
diff --git a/community-testing/gpsbabel/PKGBUILD b/community-testing/gpsbabel/PKGBUILD
new file mode 100644
index 000000000..a80a79296
--- /dev/null
+++ b/community-testing/gpsbabel/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 60888 2011-12-19 18:07:53Z andrea $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=gpsbabel
+pkgver=1.4.2
+pkgrel=4
+pkgdesc="Reads, writes, and manipulates GPS waypoints in a variety of formats"
+arch=('i686' 'x86_64')
+url="http://www.gpsbabel.org"
+license=('GPL')
+depends=('libusb-compat' 'expat')
+makedepends=('fop' 'qt' 'libxml2' 'libxslt' 'gtk2' 'lcms2' 'qtwebkit')
+optdepends=('qt' 'qtwebkit')
+options=('docs')
+source=("gpsbabel-$pkgver.tar.gz::http://archlinux-stuff.googlecode.com/files/gpsbabel-$pkgver.tar.gz"
+ "gpsbabel.desktop::http://pkgs.fedoraproject.org/gitweb/?p=gpsbabel.git;a=blob_plain;f=gpsbabel.desktop;hb=HEAD")
+md5sums=('76ea9f7852be2e98aa18976c4697ca93'
+ '7bdbd243e29a8831842d31c079f04c45')
+
+build() {
+ cd $srcdir/gpsbabel-$pkgver
+ ./configure --prefix=/usr
+ make
+ make doc
+ (cd gui && qmake && make)
+}
+
+package() {
+ cd $srcdir/gpsbabel-$pkgver
+ make DESTDIR=$pkgdir install
+
+ # GUI
+ install -Dm755 gui/objects/gpsbabelfe-bin ${pkgdir}/usr/bin/gpsbabelfe-bin
+ install -Dm644 gui/images/appicon.png $pkgdir/usr/share/pixmaps/gpsbabel.png
+ install -Dm644 $srcdir/gpsbabel.desktop $pkgdir/usr/share/applications/gpsbabel.desktop
+
+ # Header install
+ mkdir -p $pkgdir/usr/include/gpsbabel
+ cp {defs.h,queue.h,gbtypes.h,filterdefs.h,cet.h,cet_util.h,garmin_tables.h} \
+ $pkgdir/usr/include/gpsbabel
+
+ # Doc install
+ mkdir -p $pkgdir/usr/share/doc/$pkgname
+ cp -r $srcdir/babelweb/* $pkgdir/usr/share/doc/$pkgname/
+ cp README* $pkgdir/usr/share/doc/$pkgname/
+}
diff --git a/community-testing/kadu/PKGBUILD b/community-testing/kadu/PKGBUILD
new file mode 100644
index 000000000..582eb9632
--- /dev/null
+++ b/community-testing/kadu/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 60890 2011-12-19 18:07:57Z andrea $
+# Maintainer: Bartłomiej Piotrowski <barthalion@gmail.com>
+# Contributor: Mateusz Herych
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+
+pkgname=kadu
+pkgver=0.10.1
+pkgrel=3
+pkgdesc="A Qt-based Jabber/XMPP and Gadu-Gadu client"
+arch=('i686' 'x86_64')
+url="http://www.kadu.net/"
+license=('GPL')
+depends=('libgadu' 'libxss' 'aspell' 'phonon' 'qca-ossl' 'libidn' 'libmpdclient' 'qtwebkit')
+makedepends=('cmake' 'libao' 'libsndfile' 'libxtst' 'curl')
+source=(http://download.kadu.im/stable/$pkgname-$pkgver.tar.bz2)
+md5sums=('6211a9a9e02d645268cbf055892601a0')
+
+build() {
+ cd "$srcdir"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/build"
+ make DESTDIR="$pkgdir" install
+ rm -rf "$pkgdir/usr/{lib,include}/{libgadu*,pkgconfig}"
+ rm -rf "$pkgdir/usr/share/kadu/{HISTORY,README}"
+}
diff --git a/community-testing/kvirc/PKGBUILD b/community-testing/kvirc/PKGBUILD
new file mode 100644
index 000000000..be00731a3
--- /dev/null
+++ b/community-testing/kvirc/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 60892 2011-12-19 18:08:03Z andrea $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=kvirc
+pkgver=4.0.4
+pkgrel=4
+pkgdesc="Qt-based IRC client"
+url="http://www.kvirc.net"
+depends=('python2' 'qt' 'libxss' 'qtwebkit')
+arch=(i686 x86_64)
+makedepends=('cmake')
+license=('GPL')
+options=("!libtool")
+install=kvirc.install
+source=(ftp://ftp.kvirc.de/pub/kvirc/$pkgver/source/$pkgname-$pkgver.tar.bz2)
+md5sums=('26fd24979ae4a29bac9309b3b0c98788')
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DWANT_KDE4=OFF \
+ -DWANT_PERL=ON \
+ -DWANT_PHONON=OFF \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR=$pkgdir install
+}
diff --git a/community-testing/kvirc/kvirc.install b/community-testing/kvirc/kvirc.install
new file mode 100644
index 000000000..8f76d007f
--- /dev/null
+++ b/community-testing/kvirc/kvirc.install
@@ -0,0 +1,13 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &>/dev/null
+ true
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ xdg-icon-resource forceupdate --theme hicolor &>/dev/null
+ true
+}
diff --git a/community-testing/libgda3/PKGBUILD b/community-testing/libgda3/PKGBUILD
new file mode 100644
index 000000000..0ede4da51
--- /dev/null
+++ b/community-testing/libgda3/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 60922 2011-12-19 18:10:13Z andrea $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=libgda3
+pkgver=3.1.5
+pkgrel=10
+pkgdesc="data abstraction layer; with mysql, pgsql, ldap, xml, sqlite providers"
+arch=('i686' 'x86_64')
+url="http://www.gnome-db.org/Download"
+license=('GPL')
+depends=('glib2' 'libxslt' 'popt' 'rarian' 'db' 'gnome-vfs'
+ 'libmysqlclient' 'postgresql-libs>=8.4.1' 'libldap' 'unixodbc' 'sqlite3')
+makedepends=('intltool' 'pkgconfig' 'gtk-doc' 'util-linux-ng')
+options=('!libtool' '!distcc')
+source=(http://ftp.acc.umu.se/pub/GNOME/sources/libgda/3.1/libgda-$pkgver.tar.bz2)
+md5sums=('eb7da5286a112e7cff3111c89fba4456')
+
+build() {
+ cd "$srcdir/libgda-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+package(){
+ cd "$srcdir/libgda-$pkgver"
+ make DESTDIR=$pkgdir install
+ cd "$pkgdir" && find -name \*..so -exec rename '..so' '.a' {} \;
+}
diff --git a/community-testing/luminancehdr/PKGBUILD b/community-testing/luminancehdr/PKGBUILD
new file mode 100644
index 000000000..172a7c279
--- /dev/null
+++ b/community-testing/luminancehdr/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 60894 2011-12-19 18:08:13Z andrea $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+# Contributor: Dmitry N. Shilov <stormblast@land.ru>
+
+pkgname=luminancehdr
+pkgver=2.1.0
+pkgrel=6
+pkgdesc='Open source graphical user interface application that aims to provide a workflow for HDR imaging'
+arch=('i686' 'x86_64')
+url='http://qtpfsgui.sourceforge.net/'
+license=('GPL')
+depends=('exiv2' 'fftw' 'gsl' 'libraw' 'openexr' 'qt' 'qtwebkit')
+optdepends=('hugin: align image stack functionality')
+install=$pkgname.install
+changelog=$pkgname.changelog
+options=('!emptydirs')
+source=(http://downloads.sourceforge.net/qtpfsgui/luminance-hdr-${pkgver}.tar.gz
+ luminance-hdr-2.1.0-libraw.patch)
+sha256sums=('0b0f124ada6da62c379d6e4bd6fd150643115cb46f05c527c29113f475a5eeac'
+ 'd3be7458713693382b64a6a1fa766c14bc16be2ff9c5a06567c0e5335581151c')
+
+build() {
+ cd "${srcdir}/luminance-hdr-${pkgver}"
+
+ # stolen from gentoo
+ patch -Np1 -i ../luminance-hdr-2.1.0-libraw.patch
+
+ if [ ${CARCH} = i686 ]; then
+ sed -i 's/ -msse2//' project.pro
+ fi
+
+ lrelease project.pro
+ qmake PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/luminance-hdr-${pkgver}"
+
+ make INSTALL_ROOT="${pkgdir}" install
+}
diff --git a/community-testing/luminancehdr/luminance-hdr-2.1.0-libraw.patch b/community-testing/luminancehdr/luminance-hdr-2.1.0-libraw.patch
new file mode 100644
index 000000000..8472a7422
--- /dev/null
+++ b/community-testing/luminancehdr/luminance-hdr-2.1.0-libraw.patch
@@ -0,0 +1,10 @@
+--- luminance-hdr-2.1.0/src/Fileformat/pfsinraw.cpp.orig
++++ luminance-hdr-2.1.0/src/Fileformat/pfsinraw.cpp
+@@ -94,7 +94,6 @@
+ RawProcessor.set_progress_handler(cb, callback_data);
+ int ret;
+
+- OUT.filtering_mode = LIBRAW_FILTERING_AUTOMATIC;
+ OUT.output_bps = 16;
+
+ //OUT.gamm[0] = 1/2.4; //sRGB
diff --git a/community-testing/luminancehdr/luminancehdr.changelog b/community-testing/luminancehdr/luminancehdr.changelog
new file mode 100644
index 000000000..378053ef5
--- /dev/null
+++ b/community-testing/luminancehdr/luminancehdr.changelog
@@ -0,0 +1,33 @@
+2011-08-21 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * luminancehdr 2.1.0-1
+
+2011-05-01 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * luminancehdr 2.0.2-1
+
+2010-10-19 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * exiv2 0.20 rebuild
+
+2010-10-17 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 2.0.1
+
+2010-06-27 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Package renamed to LuminanceHDR
+ * Update to major release 2.0.0
+
+2010-03-09 Andrea Scarpino <andrea@archlinux.org>
+ * exiv2 0.19 rebuild
+
+2009-11-02 Biru Ionut <ionut@archlinux.ro>
+ * add translation and fix segfault on old i686 procesors
+
+2009-04-29 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v1.9.3
+
+2009-04-04 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Minor version (v1.9.2-3) update caused by exiv2 upgrade.
+
+2008-11-04 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Minor version (v1.9.2-2) update caused by openexr upgrade.
+
+2008-09-17 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Package moved to [community]
diff --git a/community-testing/luminancehdr/luminancehdr.install b/community-testing/luminancehdr/luminancehdr.install
new file mode 100644
index 000000000..279762804
--- /dev/null
+++ b/community-testing/luminancehdr/luminancehdr.install
@@ -0,0 +1,12 @@
+post_install() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community-testing/myodbc/PKGBUILD b/community-testing/myodbc/PKGBUILD
new file mode 100644
index 000000000..7d75a198c
--- /dev/null
+++ b/community-testing/myodbc/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 60924 2011-12-19 18:10:28Z andrea $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=myodbc
+pkgver=5.1.9
+pkgrel=2
+pkgdesc="ODBC driver/connector for MySQL"
+arch=(i686 x86_64)
+url="http://dev.mysql.com/downloads/connector/odbc/"
+depends=('unixodbc' 'libmysqlclient')
+license=('GPL')
+options=('libtool')
+source=("http://mysql.cce.usp.br/Downloads/Connector-ODBC/5.1/mysql-connector-odbc-${pkgver}.tar.gz"
+ myconf.h.in)
+md5sums=('80f146bd384a9011d968aa67df27e68e'
+ '6c99c83e309b18d15ef0f07f0b461241')
+
+build() {
+ cd $srcdir/mysql-connector-odbc-${pkgver}
+ cp $srcdir/myconf.h.in driver/myconf.h.in
+ [ -x configure ] || { aclocal; libtoolize; automake --add-missing; autoreconf; }
+ [ -f Makefile ] || CFLAGS="$CFLAGS -DTHREAD" \
+ ./configure --prefix=/usr --sysconfdir=/etc --with-unixODBC=/usr --with-odbc-ini=/etc/odbc.ini \
+ --with-mysql-path=/usr --without-x --disable-gui --disable-test
+ make
+}
+
+package() {
+ cd $srcdir/mysql-connector-odbc-${pkgver}
+ make DESTDIR=$pkgdir install
+}
diff --git a/community-testing/myodbc/myconf.h.in b/community-testing/myodbc/myconf.h.in
new file mode 100644
index 000000000..2a04eebba
--- /dev/null
+++ b/community-testing/myodbc/myconf.h.in
@@ -0,0 +1,165 @@
+/* driver/myconf.h.in. Generated from configure.in by autoheader. */
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the <iodbcinst.h> header file. */
+#undef HAVE_IODBCINST_H
+
+/* Define to 1 if you have the <isqlext.h> header file. */
+#undef HAVE_ISQLEXT_H
+
+/* Define to 1 if you have the <isqltypes.h> header file. */
+#undef HAVE_ISQLTYPES_H
+
+/* Define to 1 if you have the <isql.h> header file. */
+#undef HAVE_ISQL_H
+
+/* Define to 1 if you have the `z' library (-lz). */
+#undef HAVE_LIBZ
+
+/* Define to 1 if you have the `localtime_r' function. */
+#undef HAVE_LOCALTIME_R
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the <odbcinst.h> header file. */
+#undef HAVE_ODBCINST_H
+
+/* Define to 1 if you have the <sqlext.h> header file. */
+#undef HAVE_SQLEXT_H
+
+/* Define if SQLGetPrivateProfileString is defined */
+#undef HAVE_SQLGETPRIVATEPROFILESTRING
+
+/* Define to 1 if you have the `SQLGetPrivateProfileStringW' function. */
+#undef HAVE_SQLGETPRIVATEPROFILESTRINGW
+
+/* Define to 1 if you have the <sqltypes.h> header file. */
+#undef HAVE_SQLTYPES_H
+
+/* Define to 1 if you have the <sql.h> header file. */
+#undef HAVE_SQL_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the `strndup' function. */
+#undef HAVE_STRNDUP
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+#undef LT_OBJDIR
+
+/* Name of package */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* Define if SQLCHAR is undefined */
+#undef SQLCHAR
+
+/* Define if SQLHDBC is undefined */
+#undef SQLHDBC
+
+/* Define if SQLHENV is undefined */
+#undef SQLHENV
+
+/* Define if SQLHSTMT is undefined */
+#undef SQLHSTMT
+
+/* Define if SQLHWND is undefined */
+#undef SQLHWND
+
+/* Define if SQLINTEGER is undefined */
+#undef SQLINTEGER
+
+/* Define if SQLPOINTER is undefined */
+#undef SQLPOINTER
+
+/* Define if SQLRETURN is undefined */
+#undef SQLRETURN
+
+/* Define if SQLSMALLINT is undefined */
+#undef SQLSMALLINT
+
+/* Define if SQLUINTEGER is undefined */
+#undef SQLUINTEGER
+
+/* Define if SQLUSMALLINT is undefined */
+#undef SQLUSMALLINT
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Define path to system ODBC.INI file */
+#undef SYSTEM_ODBC_INI
+
+/* Define if compiler defines C99 __func__ macro */
+#undef USE_C99_FUNC_MACRO
+
+/* Define if compiler defines __FUNCTION__ */
+#undef USE_GNU_FUNC_MACRO
+
+/* use iODBC */
+#undef USE_IODBC
+
+/* Define if SQLColAttribute() last arg is compatible with SQLLEN* */
+#undef USE_SQLCOLATTRIBUTE_SQLLEN_PTR
+
+/* Define if SQLColAttribute() last arg is compatible with SQLPOINTER */
+#undef USE_SQLCOLATTRIBUTE_SQLPOINTER
+
+/* Define if SQLParamOptions() 2nd and 3rd arg is compatible with SQLUINTEGER
+ */
+#undef USE_SQLPARAMOPTIONS_SQLUINTEGER_PTR
+
+/* Define if SQLParamOptions() 2nd and 3rd arg is compatible with SQLULEN */
+#undef USE_SQLPARAMOPTIONS_SQLULEN_PTR
+
+/* use unixODBC */
+#undef USE_UNIXODBC
+
+/* Version number of package */
+#undef VERSION
+
+/* Define to 1 if the X Window System is missing or not being used. */
+#undef X_DISPLAY_MISSING
+
+/* Define if we are using unix build environment */
+#undef _UNIX_
diff --git a/community-testing/myodbc/myodbc-64bit.patch b/community-testing/myodbc/myodbc-64bit.patch
new file mode 100644
index 000000000..ac62d816a
--- /dev/null
+++ b/community-testing/myodbc/myodbc-64bit.patch
@@ -0,0 +1,85 @@
+Fix some 64-bitness issues arising from unixODBC 2.2.14 changes.
+
+
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/utility.c mysql-connector-odbc-5.1.8/driver/utility.c
+--- mysql-connector-odbc-5.1.8.orig/driver/utility.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/utility.c 2010-12-23 17:15:37.516602586 -0500
+@@ -1205,7 +1205,7 @@
+ {
+ /* See comment for fill_transfer_oct_len_buff()*/
+ SQLLEN size= get_display_size(stmt, field);
+- sprintf(buff,size == SQL_NO_TOTAL ? "%d" : (sizeof(SQLLEN) == 4 ? "%lu" : "%lld"), size);
++ sprintf(buff, (size == SQL_NO_TOTAL ? "%ld" : "%lu"), size);
+
+ return size;
+ }
+@@ -1228,7 +1228,7 @@
+ */
+ SQLLEN len= get_transfer_octet_length(stmt, field);
+
+- sprintf(buff, len == SQL_NO_TOTAL ? "%d" : (sizeof(SQLLEN) == 4 ? "%lu" : "%lld"), len );
++ sprintf(buff, (len == SQL_NO_TOTAL ? "%ld" : "%lu"), len );
+
+ return len;
+ }
+@@ -1245,8 +1245,7 @@
+ SQLULEN fill_column_size_buff(char *buff, STMT *stmt, MYSQL_FIELD *field)
+ {
+ SQLULEN size= get_column_size(stmt, field);
+- sprintf(buff, (size== SQL_NO_TOTAL ? "%d" :
+- (sizeof(SQLULEN) == 4 ? "%lu" : "%llu")), size);
++ sprintf(buff, (size== SQL_NO_TOTAL ? "%ld" : "%lu"), size);
+ return size;
+ }
+
+diff -Naur mysql-connector-odbc-5.1.8.orig/test/my_catalog.c mysql-connector-odbc-5.1.8/test/my_catalog.c
+--- mysql-connector-odbc-5.1.8.orig/test/my_catalog.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/test/my_catalog.c 2010-12-23 17:16:26.284605944 -0500
+@@ -599,7 +599,7 @@
+ fprintf(stdout, "# Column Name : %s\n", szColName);
+ fprintf(stdout, "# NameLengh : %d\n", pcbColName);
+ fprintf(stdout, "# DataType : %d\n", pfSqlType);
+- fprintf(stdout, "# ColumnSize : %d\n", pcbColDef);
++ fprintf(stdout, "# ColumnSize : %ld\n", pcbColDef);
+ fprintf(stdout, "# DecimalDigits : %d\n", pibScale);
+ fprintf(stdout, "# Nullable : %d\n", pfNullable);
+
+@@ -632,7 +632,7 @@
+
+ rc = SQLGetConnectAttr(hdbc, SQL_ATTR_CURRENT_CATALOG, db, sizeof(db), &len);
+ mycon(hdbc,rc);
+- fprintf(stdout,"current_catalog: %s (%ld)\n", db, len);
++ fprintf(stdout,"current_catalog: %s (%d)\n", db, len);
+ is_num(len, 4);
+ is_str(db, "test", 5);
+
+@@ -653,7 +653,7 @@
+
+ rc = SQLGetConnectAttr(hdbc, SQL_ATTR_CURRENT_CATALOG, db, 255, &len);
+ mycon(hdbc,rc);
+- fprintf(stdout,"current_catalog: %s (%ld)\n", db, len);
++ fprintf(stdout,"current_catalog: %s (%d)\n", db, len);
+ is_num(len, 17);
+ is_str(db, cur_db, 18);
+
+diff -Naur mysql-connector-odbc-5.1.8.orig/test/my_cursor.c mysql-connector-odbc-5.1.8/test/my_cursor.c
+--- mysql-connector-odbc-5.1.8.orig/test/my_cursor.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/test/my_cursor.c 2010-12-23 17:12:16.632676933 -0500
+@@ -711,7 +711,7 @@
+
+ rc = SQLRowCount(hstmt1,&row_count);
+ mystmt(hstmt1,rc);
+- fprintf(stdout, "rows affected: %d\n", row_count);
++ fprintf(stdout, "rows affected: %ld\n", row_count);
+ myassert(row_count == 1);
+
+ rc = SQLExtendedFetch(hstmt,SQL_FETCH_NEXT,1,NULL,&rgfRowStatus);
+@@ -732,7 +732,7 @@
+
+ rc = SQLRowCount(hstmt1,&row_count);
+ mystmt(hstmt1,rc);
+- fprintf(stdout, "rows affected: %d\n", row_count);
++ fprintf(stdout, "rows affected: %ld\n", row_count);
+ myassert(row_count == 1);
+
+ SQLFreeStmt(hstmt,SQL_UNBIND);
diff --git a/community-testing/myodbc/myodbc-add-mysys.patch b/community-testing/myodbc/myodbc-add-mysys.patch
new file mode 100644
index 000000000..a30466114
--- /dev/null
+++ b/community-testing/myodbc/myodbc-add-mysys.patch
@@ -0,0 +1,29 @@
+Add files extracted from mysql into the driver build script.
+
+
+diff -Naur mysql-connector-odbc-5.1.8.orig/util/Makefile.am mysql-connector-odbc-5.1.8/util/Makefile.am
+--- mysql-connector-odbc-5.1.8.orig/util/Makefile.am 2010-10-28 14:33:17.000000000 -0400
++++ mysql-connector-odbc-5.1.8/util/Makefile.am 2010-12-23 18:09:00.359695597 -0500
+@@ -10,6 +10,22 @@
+ installer.c \
+ odbcinstw.c \
+ unicode_transcode.c \
++ array.c \
++ list.c \
++ my_alloc.c \
++ my_malloc.c \
++ string.c \
++ int2str.c \
++ is_prefix.c \
++ longlong2str.c \
++ strcend.c \
++ strend.c \
++ strfill.c \
++ strmake.c \
++ strmov.c \
++ strxmov.c \
++ mysys_err.h \
++ mysys_priv.h \
+ MYODBCUtil.h \
+ MYODBCUtilAllocDataSource.c \
+ MYODBCUtilAllocDriver.c \
diff --git a/community-testing/myodbc/myodbc-my-free.patch b/community-testing/myodbc/myodbc-my-free.patch
new file mode 100644
index 000000000..cf7730a59
--- /dev/null
+++ b/community-testing/myodbc/myodbc-my-free.patch
@@ -0,0 +1,253 @@
+Once again, mysql can't manage to ship a mysql-connector-odbc release
+on time ... mysql 5.5 changed the my_free() function and the released
+connector version is not up to speed. Can't use NEAR anymore, either.
+
+
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/catalog.c mysql-connector-odbc-5.1.8/driver/catalog.c
+--- mysql-connector-odbc-5.1.8.orig/driver/catalog.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/catalog.c 2010-12-23 17:50:52.916552525 -0500
+@@ -94,11 +94,11 @@
+ {
+ if (stmt->result)
+ {
+- my_free((char *)stmt->result, MYF(0));
++ my_free((char *)stmt->result);
+ }
+ if (stmt->result_array)
+ {
+- my_free((char *)stmt->result_array, MYF(0));
++ my_free((char *)stmt->result_array);
+ }
+ set_mem_error(&stmt->dbc->mysql);
+ return handle_connection_error(stmt);
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/catalog_no_i_s.c mysql-connector-odbc-5.1.8/driver/catalog_no_i_s.c
+--- mysql-connector-odbc-5.1.8.orig/driver/catalog_no_i_s.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/catalog_no_i_s.c 2010-12-23 17:51:41.493551970 -0500
+@@ -269,13 +269,13 @@
+ pthread_mutex_lock(&dbc->lock);
+ if (mysql_query(mysql, select))
+ {
+- my_free(select, MYF(0));
++ my_free(select);
+ pthread_mutex_unlock(&dbc->lock);
+ return NULL;
+ }
+ result= mysql_store_result(&dbc->mysql);
+ pthread_mutex_unlock(&dbc->lock);
+- my_free(select, MYF(0));
++ my_free(select);
+
+ return result;
+ }
+@@ -1094,7 +1094,7 @@
+ SQLFORE_KEYS_FIELDS *
+ row_count,
+ MYF(0));
+- my_free((char *)tempdata, MYF(0));
++ my_free((char *)tempdata);
+
+ if (!stmt->result_array)
+ {
+@@ -1323,12 +1323,12 @@
+ && (j != mypcREMARKS)
+ && (j != mypcCOLUMN_DEF)
+ && (j != mypcIS_NULLABLE))
+- my_free(((char**)cur_params->data)[j], MYF(0));
++ my_free(((char**)cur_params->data)[j]);
+ }
+ /* cleanup the list */
+ params= list_delete_forward(params);
+- my_free(cur_params->data, MYF(0));
+- my_free(cur_params, MYF(0));
++ my_free(cur_params->data);
++ my_free(cur_params);
+ }
+ }
+ }
+@@ -1675,7 +1675,7 @@
+ }
+
+ dynstr_free(&dynQuery);
+- my_free(params_r, MYF(0));
++ my_free(params_r);
+
+ return nReturn;
+ }
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/desc.c mysql-connector-odbc-5.1.8/driver/desc.c
+--- mysql-connector-odbc-5.1.8.orig/driver/desc.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/desc.c 2010-12-23 17:51:06.532607921 -0500
+@@ -65,7 +65,7 @@
+ */
+ if (my_init_dynamic_array(&desc->records, sizeof(DESCREC), 0, 0))
+ {
+- my_free((char *)desc, MYF(0));
++ my_free((char *)desc);
+ return NULL;
+ }
+ desc->desc_type= desc_type;
+@@ -111,7 +111,7 @@
+ if (aprec->par.alloced)
+ {
+ aprec->par.alloced= FALSE;
+- my_free(aprec->par.value, MYF(0));
++ my_free(aprec->par.value);
+ }
+ }
+ }
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/driver.h mysql-connector-odbc-5.1.8/driver/driver.h
+--- mysql-connector-odbc-5.1.8.orig/driver/driver.h 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/driver.h 2010-12-23 17:50:43.017608761 -0500
+@@ -113,7 +113,7 @@
+ /* Max Primary keys in a cursor * WHERE clause */
+ #define MY_MAX_PK_PARTS 32
+
+-#define x_free(A) { void *tmp= (A); if (tmp) my_free((char *) tmp,MYF(MY_WME+MY_FAE)); }
++#define x_free(A) { void *tmp= (A); if (tmp) my_free((char *) tmp); }
+
+
+ /* We don't make any assumption about what the default may be. */
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/execute.c mysql-connector-odbc-5.1.8/driver/execute.c
+--- mysql-connector-odbc-5.1.8.orig/driver/execute.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/execute.c 2010-12-23 17:49:52.799552481 -0500
+@@ -96,7 +96,7 @@
+ exit:
+ pthread_mutex_unlock(&stmt->dbc->lock);
+ if ( query != stmt->query )
+- my_free(query,MYF(0));
++ my_free(query);
+
+ /*
+ If the original query was modified, we reset stmt->query so that the
+@@ -104,7 +104,7 @@
+ */
+ if (stmt->orig_query)
+ {
+- my_free(stmt->query,MYF(0));
++ my_free(stmt->query);
+ stmt->query= stmt->orig_query;
+ stmt->query_end= stmt->orig_query_end;
+ stmt->orig_query= NULL;
+@@ -625,7 +625,7 @@
+
+ out:
+ if (free_data)
+- my_free(data, MYF(0));
++ my_free(data);
+
+ *toptr= to;
+ return SQL_SUCCESS;
+@@ -1060,7 +1060,7 @@
+ if ( cbValue == SQL_NULL_DATA )
+ {
+ if ( aprec->par.alloced )
+- my_free(aprec->par.value,MYF(0));
++ my_free(aprec->par.value);
+ aprec->par.alloced= FALSE;
+ aprec->par.value= NULL;
+ return SQL_SUCCESS;
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/handle.c mysql-connector-odbc-5.1.8/driver/handle.c
+--- mysql-connector-odbc-5.1.8.orig/driver/handle.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/handle.c 2010-12-23 17:50:17.425586339 -0500
+@@ -112,7 +112,7 @@
+ GlobalUnlock(GlobalHandle((HGLOBAL) henv));
+ GlobalFree(GlobalHandle((HGLOBAL) henv));
+ #else
+- if (henv) my_free((char*) henv,MYF(0));
++ if (henv) my_free((char*) henv);
+ myodbc_end();
+ #endif /* _UNIX_ */
+ return(SQL_SUCCESS);
+@@ -251,7 +251,8 @@
+ LIST *next;
+
+ dbc->env->connections= list_delete(dbc->env->connections,&dbc->list);
+- my_free(dbc->database,MYF(MY_ALLOW_ZERO_PTR));
++ if (dbc->database)
++ my_free(dbc->database);
+ if (dbc->ds)
+ ds_delete(dbc->ds);
+ pthread_mutex_destroy(&dbc->lock);
+@@ -268,7 +269,7 @@
+ GlobalUnlock(GlobalHandle((HGLOBAL) hdbc));
+ GlobalFree(GlobalHandle((HGLOBAL) hdbc));
+ #else
+- my_free((char*) hdbc,MYF(0));
++ my_free((char*) hdbc);
+ #endif
+ return SQL_SUCCESS;
+ }
+@@ -513,7 +514,7 @@
+ GlobalUnlock(GlobalHandle ((HGLOBAL) hstmt));
+ GlobalFree(GlobalHandle((HGLOBAL) hstmt));
+ #else
+- my_free((char*) hstmt,MYF(0));
++ my_free((char*) hstmt);
+ #endif /* _UNIX_*/
+ return SQL_SUCCESS;
+ }
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/options.c mysql-connector-odbc-5.1.8/driver/options.c
+--- mysql-connector-odbc-5.1.8.orig/driver/options.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/options.c 2010-12-23 17:50:28.864604596 -0500
+@@ -301,7 +301,7 @@
+ return SQL_ERROR;
+ }
+ }
+- my_free(dbc->database,MYF(0));
++ my_free(dbc->database);
+ dbc->database= my_strdup(db,MYF(MY_WME));
+ pthread_mutex_unlock(&dbc->lock);
+ }
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/prepare.c mysql-connector-odbc-5.1.8/driver/prepare.c
+--- mysql-connector-odbc-5.1.8.orig/driver/prepare.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/prepare.c 2010-12-23 17:51:17.175676805 -0500
+@@ -93,7 +93,7 @@
+ CLEAR_STMT_ERROR(stmt);
+
+ if (stmt->query)
+- my_free(stmt->query, MYF(0));
++ my_free(stmt->query);
+
+ if (dupe && szSqlStr)
+ stmt->query= (char *)szSqlStr;
+@@ -223,7 +223,7 @@
+ {
+ aprec->par.alloced= FALSE;
+ assert(aprec->par.value);
+- my_free(aprec->par.value,MYF(0));
++ my_free(aprec->par.value);
+ aprec->par.value = NULL;
+ }
+
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/utility.c mysql-connector-odbc-5.1.8/driver/utility.c
+--- mysql-connector-odbc-5.1.8.orig/driver/utility.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/utility.c 2010-12-23 17:49:05.498552376 -0500
+@@ -930,7 +930,7 @@
+ ulong max_length= stmt->stmt_options.max_length;
+ ulong *offset= &stmt->getdata.src_offset;
+ #if MYSQL_VERSION_ID >= 40100
+- char NEAR _dig_vec[] =
++ char _dig_vec[] =
+ "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+ #endif
+
+@@ -2154,7 +2154,7 @@
+
+ my_bool reget_current_catalog(DBC FAR *dbc)
+ {
+- my_free(dbc->database,MYF(0));
++ my_free(dbc->database);
+ dbc->database= NULL;
+
+ if ( odbc_stmt(dbc, "select database()") )
+diff -Naur mysql-connector-odbc-5.1.8.orig/util/stringutil.h mysql-connector-odbc-5.1.8/util/stringutil.h
+--- mysql-connector-odbc-5.1.8.orig/util/stringutil.h 2010-10-28 14:33:17.000000000 -0400
++++ mysql-connector-odbc-5.1.8/util/stringutil.h 2010-12-23 17:51:51.848676475 -0500
+@@ -41,7 +41,7 @@
+ #include <sqlext.h>
+
+ #ifndef x_free
+-#define x_free(A) { void *tmp= (A); if (tmp) my_free((char *) tmp,MYF(MY_WME+MY_FAE)); }
++#define x_free(A) { void *tmp= (A); if (tmp) my_free((char *) tmp); }
+ #endif
+
+ #define myodbc_min(a, b) ((a) < (b) ? (a) : (b))
diff --git a/community-testing/myodbc/myodbc-shutdown.patch b/community-testing/myodbc/myodbc-shutdown.patch
new file mode 100644
index 000000000..ec0cf3d36
--- /dev/null
+++ b/community-testing/myodbc/myodbc-shutdown.patch
@@ -0,0 +1,27 @@
+myodbc_end is really only usable during Windows DLL unload, since it's not
+connection-specific and not thread-safe either. This bit of brain fade
+accounts for our bug #185343 and several bugs filed at mysql.com.
+
+Furthermore, my_end() isn't exported from libmysqlclient anymore.
+Hence, best fix is to turn the function into a no-op.
+
+
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/dll.c mysql-connector-odbc-5.1.8/driver/dll.c
+--- mysql-connector-odbc-5.1.8.orig/driver/dll.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/dll.c 2010-12-23 15:05:49.394608226 -0500
+@@ -94,6 +94,7 @@
+ */
+ void myodbc_end()
+ {
++#if 0
+ if (!--myodbc_inited)
+ {
+ my_free(decimal_point,MYF(0));
+@@ -121,6 +122,7 @@
+ my_end(0);
+ #endif
+ }
++#endif
+ }
+
+
diff --git a/community-testing/mythtv/PKGBUILD b/community-testing/mythtv/PKGBUILD
new file mode 100644
index 000000000..25b7d684d
--- /dev/null
+++ b/community-testing/mythtv/PKGBUILD
@@ -0,0 +1,82 @@
+# $Id: PKGBUILD 60896 2011-12-19 18:08:28Z andrea $
+# Maintainer: Jonathan Conder <jonno.conder@gmail.com>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: <kleptophobiac@gmail.com>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=mythtv
+pkgver=0.24.1
+pkgrel=4
+epoch=1
+pkgdesc="A Homebrew PVR project"
+arch=('i686' 'x86_64')
+url="http://www.mythtv.org/"
+license=('GPL')
+depends=('lame' 'libavc1394' 'libiec61883' 'libpulse' 'libvdpau' 'libxinerama'
+ 'libxvmc' 'libxxf86vm' 'lirc-utils' 'mesa' 'mysql-clients'
+ 'mysql-python' 'perl-dbd-mysql' 'perl-libwww' 'perl-net-upnp'
+ 'python-lxml' 'wget' 'qtwebkit')
+makedepends=('yasm')
+optdepends=('xmltv: to download tv listings')
+backup=('etc/conf.d/mythbackend')
+install='mythtv.install'
+source=("ftp://ftp.osuosl.org/pub/$pkgname/$pkgname-$pkgver.tar.bz2"
+ 'mythbackend.rc'
+ 'mythbackend.conf'
+ 'mythtv-v4l2-fix.patch'
+ 'build.patch')
+md5sums=('6870c679619ec58456e76839745411d8'
+ 'feadcc9ad064d93d6dceab1efc0bd9ed'
+ 'bb8e4033d82428d827570fae9ba15e6a'
+ 'ba5c91df80f0d3f7563a873e71a3725c'
+ '3188962917e98c4e07818dccd64bc423')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ find 'bindings/python' 'contrib' -type f | xargs sed -i 's@^#!.*python$@#!/usr/bin/python2@'
+
+ patch -Np2 -i ${srcdir}/mythtv-v4l2-fix.patch
+ patch -Np1 -i ${srcdir}/build.patch
+
+ ARCH="${CARCH/_/-}"
+ ./configure --prefix=/usr --cpu="$ARCH" \
+ --enable-mmx \
+ --enable-audio-oss \
+ --enable-audio-alsa \
+ --disable-audio-jack \
+ --enable-audio-pulse \
+ --disable-altivec \
+ --disable-distcc \
+ --disable-ccache \
+ --enable-vdpau \
+ --enable-dvb \
+ --dvb-path=/usr/include \
+ --enable-lirc \
+ --enable-joystick-menu \
+ --enable-v4l \
+ --enable-ivtv \
+ --enable-xvmc \
+ --enable-xvmcw \
+ --enable-xvmc-vld \
+ --enable-firewire \
+ --enable-opengl-vsync \
+ --enable-xrandr \
+ --enable-xv \
+ --enable-x11 \
+ --with-bindings=perl,python \
+ --python=python2
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make INSTALL_ROOT="$pkgdir" install
+
+ install -D -m755 "$srcdir/mythbackend.rc" "$pkgdir/etc/rc.d/mythbackend"
+ install -D -m644 "$srcdir/mythbackend.conf" "$pkgdir/etc/conf.d/mythbackend"
+ install -D -m644 'database/mc.sql' "$pkgdir/usr/share/mythtv/mc.sql"
+
+ mkdir -p "$pkgdir/usr/share/mythtv"
+ cp -R 'contrib' "$pkgdir/usr/share/mythtv"
+}
diff --git a/community-testing/mythtv/build.patch b/community-testing/mythtv/build.patch
new file mode 100644
index 000000000..35dccd618
--- /dev/null
+++ b/community-testing/mythtv/build.patch
@@ -0,0 +1,13 @@
+diff -Nru a/libs/libmythui/mythrender_opengl.cpp b/libs/libmythui/mythrender_opengl.cpp
+--- a/libs/libmythui/mythrender_opengl.cpp 2011-05-16 08:57:52.000000000 +1200
++++ b/libs/libmythui/mythrender_opengl.cpp 2011-10-23 15:05:33.178392264 +1300
+@@ -2,6 +2,8 @@
+ #include "mythrender_opengl.h"
+ #include "mythxdisplay.h"
+
++#include <GL/glu.h>
++
+ #define LOC QString("OpenGL: ")
+ #define LOC_ERR QString("OpenGL Error: ")
+
+Binary files a/libs/libmythui/.mythrender_opengl.cpp.swp and b/libs/libmythui/.mythrender_opengl.cpp.swp differ
diff --git a/community-testing/mythtv/mythbackend.conf b/community-testing/mythtv/mythbackend.conf
new file mode 100644
index 000000000..e004ae5bd
--- /dev/null
+++ b/community-testing/mythtv/mythbackend.conf
@@ -0,0 +1,92 @@
+#!/bin/bash
+#
+# Rename this file to:
+#
+# /etc/config.d/mythbackend
+#
+###############################################################################
+#
+# Copyright (c) by the MythTV Development Team.
+#
+# Derived from work by:
+#
+# Michael Thomson <linux at m-thomson dot net>
+# Stu Tomlinson <stu at nosnilmot dot com>
+# Axel Thimm <axel.thimm at atrpms dot net>
+# Adopted for ArchLinux:
+# Jürgen Hoetzel <juergen@archinux.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+###############################################################################
+#
+# Config variables for the mythbackend startup script, which is usually
+# located in /etc/rc.d/mythbackend
+#
+# When the startup script is executed, it sources this file if it exists,
+# otherwise it will fall back on default values.
+#
+# Leave variables commented out to use default values in init script
+# (/etc/rc.d/mythbackend).
+#
+# To override defaults, uncomment the relevant variable definition and
+# edit as required.
+#
+
+#
+# User who should start the mythbackend processes
+#
+# Running mythbackend as non-root requires you to ensure that audio/video
+# devices used for recording have suitable user permissions. One way
+# to achieve this is to modify existing or create new udev rules which
+# assign these devices to a non-root group with rw permissions and add
+# your mythbackend user to that group. Be aware that console.perms can
+# also affect device permissions and may need additional configuration.
+# Running as non-root may also introduce increased process latency.
+#
+# MBE_USER='root'
+
+#
+# Directory holding the mythbackend binary (empty means autodetect).
+#
+# MBE_DIR=''
+
+#
+# Name of mythbackend binary.
+#
+# MBE_PROG='mythbackend'
+
+#
+# Other startup options for mythbackend (see 'mythbackend --help' for a list).
+#
+# MBE_OPTIONS=''
+
+#
+# Directory holding the mythbackend log file
+#
+# LOG_DIR='/var/log/mythtv'
+
+#
+# Name of mythbackend log file.
+#
+# NOTE: If you are running as non-root take care to ensure the mythbackend user
+# has permission to write to this log file.
+#
+# LOG_FILE='mythbackend.log'
+
+#
+# Logging options for mythbackend (see 'mythbackend -v help' for a list)
+#
+# LOG_OPTS=''
diff --git a/community-testing/mythtv/mythbackend.rc b/community-testing/mythtv/mythbackend.rc
new file mode 100644
index 000000000..410e8de41
--- /dev/null
+++ b/community-testing/mythtv/mythbackend.rc
@@ -0,0 +1,82 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+# Default values to use if none are supplied in the config file.
+
+# Running mythbackend as non-root requires you to ensure that audio/video
+# devices used for recording have suitable user permissions. One way
+# to achieve this is to modify existing or create new udev rules which
+# assign these devices to a non-root group with rw permissions and add
+# your mythbackend user to that group. Be aware that console.perms can
+# also affect device permissions and may need additional configuration.
+# Running as non-root may also introduce increased process latency.
+#
+# User who should start the mythbackend processes
+MBE_USER='root'
+
+# Startup options for mythbackend
+MBE_OPTIONS=''
+
+# Name of mythbackend log file
+LOG_FILE='/var/log/mythbackend.log'
+
+# Logging options for mythbackend (empty means '-v important,general')
+LOG_OPTS=''
+
+###############################################################################
+
+CONFIG_FILE=/etc/conf.d/mythbackend
+PIDFILE=/var/run/mythbackend.pid
+
+if [[ -f ${CONFIG_FILE} ]]; then
+ . ${CONFIG_FILE}
+fi
+
+pid="$(cat ${PIDFILE} 2>/dev/null || pidof mythbackend)";
+
+# fix FS#11890
+mbe_user_home="$(getent passwd ${MBE_USER}|cut -d : -f 6)"
+
+case "$1" in
+ start)
+ stat_busy "Starting MythTV Backend"
+
+ # already running ?
+ if [[ "${pid}" -gt 0 ]] && kill -0 "${pid}"; then
+ stat_fail
+ exit 1;
+ fi
+ touch ${PIDFILE} ${LOG_FILE}
+ chown "$MBE_USER" ${PIDFILE} ${LOG_FILE}
+ if su "$MBE_USER" -c "HOME=${mbe_user_home} mythbackend \
+ --daemon \
+ --logfile $LOG_FILE $LOG_OPTS \
+ --pidfile ${PIDFILE} $MBE_OPTIONS";
+ then
+ add_daemon mythbackend
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping MythTV Backend"
+ if [[ "${pid}" -gt 0 ]] && kill $pid &>/dev/null; then
+ rm_daemon mythbackend
+ stat_done
+ rm ${PIDFILE} 2>/dev/null
+ else
+ stat_fail
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community-testing/mythtv/mythtv-v4l2-fix.patch b/community-testing/mythtv/mythtv-v4l2-fix.patch
new file mode 100644
index 000000000..e26e16615
--- /dev/null
+++ b/community-testing/mythtv/mythtv-v4l2-fix.patch
@@ -0,0 +1,724 @@
+diff --git a/mythtv/configure b/mythtv/configure
+index 1efe803..7bcdf06 100755
+--- a/mythtv/configure
++++ b/mythtv/configure
+@@ -109,7 +109,8 @@ Advanced options (experts only):
+ --disable-iptv disable support for recording RTSP/UDP/RTP streams
+ --disable-hdhomerun disable support for HDHomeRun boxes
+ --disable-v4l disable Video4Linux support
+- --disable-ivtv disable ivtv support (PVR-x50) req. v4l support
++ --disable-v4l2 disable Video4Linux2 support
++ --disable-ivtv disable ivtv support (PVR-x50) req. v4l2 support
+ --disable-hdpvr disable HD-PVR support
+ --disable-dvb disable DVB support
+ --dvb-path=HDRLOC location of directory containing
+@@ -1315,6 +1316,7 @@ MYTHTV_CONFIG_LIST='
+ qtwebkit
+ quartz_video
+ v4l
++ v4l2
+ valgrind
+ x11
+ xrandr
+@@ -1706,8 +1708,8 @@ audio_oss_deps_any="soundcard_h sys_soundcard_h"
+ dvb_deps="backend"
+ firewire_deps="backend"
+ iptv_deps="backend"
+-ivtv_deps="backend v4l"
+-hdpvr_deps="backend v4l"
++ivtv_deps="backend v4l2"
++hdpvr_deps="backend v4l2"
+ hdhomerun_deps="backend"
+ mpegtsraw_demuxer_deps="merge_libavformat_mpegts_c"
+ mythtranscode_deps="backend frontend"
+@@ -1715,6 +1717,7 @@ opengl_deps_any="agl_h GL_gl_h darwin windows x11"
+ opengl_video_deps="opengl"
+ opengl_vsync_deps="opengl"
+ v4l_deps="backend linux_videodev_h linux_videodev2_h"
++v4l2_deps="backend linux_videodev2_h"
+ vdpau_deps="opengl vdpau_vdpau_h vdpau_vdpau_x11_h"
+ xrandr_deps="x11"
+ xv_deps="x11"
+@@ -1933,6 +1936,7 @@ enable opengl_vsync
+ enable opengl_video
+ enable quartz_video
+ enable v4l
++enable v4l2
+ enable x11
+ enable xrandr
+ enable xv
+@@ -3062,6 +3066,7 @@ EOF
+ fi
+ disable opengl_vsync
+ disable v4l
++ disable v4l2
+ disable x11
+ # Workaround compile errors from missing gmtime_r/localtime_r/uint def
+ CFLAGS=`echo $CFLAGS | sed 's/-D_POSIX_C_SOURCE=200112//'`
+@@ -3106,6 +3111,7 @@ EOF
+ fi
+ disable symver
+ disable v4l
++ disable v4l2
+ enable windows
+ disable x11
+ ###### Standard ffmpeg configure stuff follows:
+@@ -4375,6 +4381,7 @@ enabled stripping || strip="echo skipping strip"
+
+ if enabled backend; then
+ echo "Video4Linux sup. ${v4l-no}"
++ echo "Video4Linux2 sup. ${v4l2-no}"
+ echo "ivtv support ${ivtv-no}"
+ echo "HD-PVR support ${hdpvr-no}"
+ echo "FireWire support ${firewire-no}"
+diff --git a/mythtv/libs/libmythtv/NuppelVideoRecorder.cpp b/mythtv/libs/libmythtv/NuppelVideoRecorder.cpp
+index 739634d..39e5956 100644
+--- a/mythtv/libs/libmythtv/NuppelVideoRecorder.cpp
++++ b/mythtv/libs/libmythtv/NuppelVideoRecorder.cpp
+@@ -42,9 +42,13 @@ extern "C" {
+ #include "libswscale/swscale.h"
+ }
+
++#if defined(USING_V4L) || defined(USING_V4L2)
+ #ifdef USING_V4L
+ #include <linux/videodev.h>
++#endif
++#ifdef USING_V4L2
+ #include <linux/videodev2.h>
++#endif
+
+ #include "go7007_myth.h"
+
+@@ -55,9 +59,9 @@ extern "C" {
+ extern "C" {
+ #include "vbitext/vbi.h"
+ }
+-#else // USING_V4l
++#else // USING_V4L || USING_V4L2
+ #define VT_WIDTH 0
+-#endif // USING_V4l
++#endif // USING_V4l || USING_V4L2
+
+ #define KEYFRAMEDIST 30
+
+@@ -1019,7 +1023,7 @@ bool NuppelVideoRecorder::Open(void)
+
+ void NuppelVideoRecorder::ProbeV4L2(void)
+ {
+-#ifdef USING_V4L
++#if defined(USING_V4L) || defined(USING_V4L2)
+ usingv4l2 = true;
+
+ struct v4l2_capability vcap;
+@@ -1049,7 +1053,7 @@ void NuppelVideoRecorder::ProbeV4L2(void)
+ QString driver = (char *)vcap.driver;
+ if (driver == "go7007")
+ go7007 = true;
+-#endif // USING_V4L
++#endif // USING_V4L || USING_V4L2
+ }
+
+ void NuppelVideoRecorder::StartRecording(void)
+@@ -2460,7 +2464,7 @@ void NuppelVideoRecorder::doAudioThread(void)
+ audio_device->Close();
+ }
+
+-#ifdef USING_V4L
++#if defined(USING_V4L) || defined(USING_V4L2)
+ struct VBIData
+ {
+ NuppelVideoRecorder *nvr;
+@@ -2634,9 +2638,9 @@ void NuppelVideoRecorder::FormatTeletextSubtitles(struct VBIData *vbidata)
+ act_text_buffer = 0;
+ textbuffer[act]->freeToEncode = 1;
+ }
+-#else // USING_V4L
++#else // USING_V4L || USING_V4L2
+ void NuppelVideoRecorder::FormatTeletextSubtitles(struct VBIData *vbidata) {}
+-#endif // USING_V4L
++#endif // USING_V4L || USING_V4L2
+
+ void NuppelVideoRecorder::FormatCC(struct cc *cc)
+ {
+@@ -2863,7 +2867,7 @@ void NuppelVideoRecorder::doVbiThread(void)
+ //VERBOSE(VB_RECORD, LOC + "vbi end");
+ }
+
+-#else // USING_V4L
++#else // USING_V4L
+ void NuppelVideoRecorder::doVbiThread(void) { }
+ #endif // USING_V4L
+
+diff --git a/mythtv/libs/libmythtv/analogsignalmonitor.cpp b/mythtv/libs/libmythtv/analogsignalmonitor.cpp
+index 2a4f4c5..fa5823a 100644
+--- a/mythtv/libs/libmythtv/analogsignalmonitor.cpp
++++ b/mythtv/libs/libmythtv/analogsignalmonitor.cpp
+@@ -6,7 +6,9 @@
+ #include <sys/ioctl.h>
+ #include <poll.h>
+
++#ifdef USING_V4L
+ #include <linux/videodev.h>
++#endif
+
+ #include "mythverbose.h"
+ #include "analogsignalmonitor.h"
+@@ -151,6 +153,7 @@ void AnalogSignalMonitor::UpdateValues(void)
+ }
+ else
+ {
++#ifdef USING_V4L
+ struct video_tuner tuner;
+ bzero(&tuner, sizeof(tuner));
+
+@@ -163,6 +166,7 @@ void AnalogSignalMonitor::UpdateValues(void)
+ {
+ isLocked = tuner.signal;
+ }
++#endif
+ }
+
+ {
+diff --git a/mythtv/libs/libmythtv/cardutil.cpp b/mythtv/libs/libmythtv/cardutil.cpp
+index 8852682..494f48a 100644
+--- a/mythtv/libs/libmythtv/cardutil.cpp
++++ b/mythtv/libs/libmythtv/cardutil.cpp
+@@ -4,7 +4,7 @@
+
+ #include <algorithm>
+
+-#if defined(USING_V4L) || defined(USING_DVB)
++#if defined(USING_V4L) || defined(USING_V4L2) || defined(USING_DVB)
+ #include <sys/ioctl.h>
+ #endif
+
+@@ -28,6 +28,8 @@
+
+ #ifdef USING_V4L
+ #include <linux/videodev.h>
++#endif
++#ifdef USING_V4L2
+ #include <linux/videodev2.h>
+ #endif
+
+@@ -1455,15 +1457,15 @@ uint CardUtil::GetQuickTuning(uint cardid, const QString &input_name)
+ bool CardUtil::hasV4L2(int videofd)
+ {
+ (void) videofd;
+-#ifdef USING_V4L
++#ifdef USING_V4L2
+ struct v4l2_capability vcap;
+ bzero(&vcap, sizeof(vcap));
+
+ return ((ioctl(videofd, VIDIOC_QUERYCAP, &vcap) >= 0) &&
+ (vcap.capabilities & V4L2_CAP_VIDEO_CAPTURE));
+-#else // if !USING_V4L
++#else // if !USING_V4L2
+ return false;
+-#endif // !USING_V4L
++#endif // !USING_V4L2
+ }
+
+ bool CardUtil::GetV4LInfo(
+@@ -1475,7 +1477,7 @@ bool CardUtil::GetV4LInfo(
+ if (videofd < 0)
+ return false;
+
+-#ifdef USING_V4L
++#if defined(USING_V4L) || defined(USING_V4L2)
+ // First try V4L2 query
+ struct v4l2_capability capability;
+ bzero(&capability, sizeof(struct v4l2_capability));
+@@ -1487,11 +1489,13 @@ bool CardUtil::GetV4LInfo(
+ }
+ else // Fallback to V4L1 query
+ {
++#ifdef USING_V4L
+ struct video_capability capability;
+ if (ioctl(videofd, VIDIOCGCAP, &capability) >= 0)
+ card = QString::fromAscii((const char*)capability.name);
++#endif //USING_V4L
+ }
+-#endif // !USING_V4L
++#endif // !USING_V4L || USING_V4L2
+
+ if (!driver.isEmpty())
+ driver.remove( QRegExp("\\[[0-9]\\]$") );
+@@ -1506,9 +1510,9 @@ InputNames CardUtil::ProbeV4LVideoInputs(int videofd, bool &ok)
+ InputNames list;
+ ok = false;
+
+-#ifdef USING_V4L
++#if defined(USING_V4L) || defined(USING_V4L2)
+ bool usingv4l2 = hasV4L2(videofd);
+-
++#ifdef USING_V4L2
+ // V4L v2 query
+ struct v4l2_input vin;
+ bzero(&vin, sizeof(vin));
+@@ -1523,8 +1527,10 @@ InputNames CardUtil::ProbeV4LVideoInputs(int videofd, bool &ok)
+ ok = true;
+ return list;
+ }
++#endif
+
+ // V4L v1 query
++#ifdef USING_V4L
+ struct video_capability vidcap;
+ bzero(&vidcap, sizeof(vidcap));
+ if (ioctl(videofd, VIDIOCGCAP, &vidcap) != 0)
+@@ -1552,15 +1558,15 @@ InputNames CardUtil::ProbeV4LVideoInputs(int videofd, bool &ok)
+
+ list[i] = test.name;
+ }
+-
++#endif
+ // Create an input on single input cards that don't advertise input
+ if (!list.size())
+ list[0] = "Television";
+
+ ok = true;
+-#else // if !USING_V4L
++#else // if !USING_V4L || USING_V4L2
+ list[-1] += QObject::tr("ERROR, Compile with V4L support to query inputs");
+-#endif // !USING_V4L
++#endif // !USING_V4L || USING_V4L2
+ return list;
+ }
+
+diff --git a/mythtv/libs/libmythtv/channelscan/channelscan_sm.cpp b/mythtv/libs/libmythtv/channelscan/channelscan_sm.cpp
+index 832d0a8..e35b186 100644
+--- a/mythtv/libs/libmythtv/channelscan/channelscan_sm.cpp
++++ b/mythtv/libs/libmythtv/channelscan/channelscan_sm.cpp
+@@ -1394,7 +1394,7 @@ const DVBChannel *ChannelScanSM::GetDVBChannel(void) const
+
+ V4LChannel *ChannelScanSM::GetV4LChannel(void)
+ {
+-#ifdef USING_V4L
++#if defined(USING_V4L) || defined(USING_V4L2)
+ return dynamic_cast<V4LChannel*>(channel);
+ #else
+ return NULL;
+diff --git a/mythtv/libs/libmythtv/channelscan/channelscanner.cpp b/mythtv/libs/libmythtv/channelscan/channelscanner.cpp
+index 1595d6a..4d2b2cf 100644
+--- a/mythtv/libs/libmythtv/channelscan/channelscanner.cpp
++++ b/mythtv/libs/libmythtv/channelscan/channelscanner.cpp
+@@ -342,7 +342,7 @@ void ChannelScanner::PreScanCommon(
+ channel = new DVBChannel(device);
+ #endif
+
+-#ifdef USING_V4L
++#if defined(USING_V4L) || defined(USING_V4L2)
+ if (("V4L" == card_type) || ("MPEG" == card_type))
+ channel = new V4LChannel(NULL, device);
+ #endif
+diff --git a/mythtv/libs/libmythtv/channelscan/scanwizardconfig.cpp b/mythtv/libs/libmythtv/channelscan/scanwizardconfig.cpp
+index 00fd9d3..70e3469 100644
+--- a/mythtv/libs/libmythtv/channelscan/scanwizardconfig.cpp
++++ b/mythtv/libs/libmythtv/channelscan/scanwizardconfig.cpp
+@@ -27,14 +27,14 @@ static QString card_types(void)
+ cardTypes += "'DVB'";
+ #endif // USING_DVB
+
+-#ifdef USING_V4L
++#if defined(USING_V4L) || defined(USING_V4L2)
+ if (!cardTypes.isEmpty())
+ cardTypes += ",";
+ cardTypes += "'V4L'";
+ # ifdef USING_IVTV
+ cardTypes += ",'MPEG'";
+ # endif // USING_IVTV
+-#endif // USING_V4L
++#endif // USING_V4L || USING_V4L2
+
+ #ifdef USING_IPTV
+ if (!cardTypes.isEmpty())
+diff --git a/mythtv/libs/libmythtv/libmythtv.pro b/mythtv/libs/libmythtv/libmythtv.pro
+index 3d26e0a..ea06ee7 100644
+--- a/mythtv/libs/libmythtv/libmythtv.pro
++++ b/mythtv/libs/libmythtv/libmythtv.pro
+@@ -119,7 +119,7 @@ cygwin:DEFINES += _WIN32
+ using_valgrind:DEFINES += USING_VALGRIND
+
+ # old libvbitext (Caption decoder)
+-using_v4l {
++using_v4l || using_v4l2 {
+ HEADERS += vbitext/cc.h vbitext/dllist.h vbitext/hamm.h vbitext/lang.h
+ HEADERS += vbitext/vbi.h vbitext/vt.h
+ SOURCES += vbitext/cc.cpp vbitext/vbi.c vbitext/hamm.c vbitext/lang.c
+@@ -471,11 +471,17 @@ using_backend {
+ SOURCES += channelchangemonitor.cpp
+
+ # Support for Video4Linux devices
+- using_v4l {
++ using_v4l || using_v4l2 {
+ HEADERS += v4lchannel.h analogsignalmonitor.h
+ SOURCES += v4lchannel.cpp analogsignalmonitor.cpp
+
+- DEFINES += USING_V4L
++ using_v4l {
++ DEFINES += USING_V4L
++ }
++
++ using_v4l2 {
++ DEFINES += USING_V4L2
++ }
+ }
+
+ # Support for cable boxes that provide Firewire out
+diff --git a/mythtv/libs/libmythtv/signalmonitor.cpp b/mythtv/libs/libmythtv/signalmonitor.cpp
+index 221efef..c199b3b 100644
+--- a/mythtv/libs/libmythtv/signalmonitor.cpp
++++ b/mythtv/libs/libmythtv/signalmonitor.cpp
+@@ -23,7 +23,7 @@ extern "C" {
+ # include "dvbchannel.h"
+ #endif
+
+-#ifdef USING_V4L
++#ifdef USING_V4L2
+ # include "analogsignalmonitor.h"
+ # include "v4lchannel.h"
+ #endif
+@@ -95,7 +95,7 @@ SignalMonitor *SignalMonitor::Init(QString cardtype, int db_cardnum,
+ }
+ #endif
+
+-#ifdef USING_V4L
++#ifdef USING_V4L2
+ if ((cardtype.toUpper() == "HDPVR"))
+ {
+ V4LChannel *chan = dynamic_cast<V4LChannel*>(channel);
+diff --git a/mythtv/libs/libmythtv/tv_rec.cpp b/mythtv/libs/libmythtv/tv_rec.cpp
+index b885eaa..3d9c7ad 100644
+--- a/mythtv/libs/libmythtv/tv_rec.cpp
++++ b/mythtv/libs/libmythtv/tv_rec.cpp
+@@ -57,7 +57,7 @@ using namespace std;
+
+ #include "channelgroup.h"
+
+-#ifdef USING_V4L
++#if defined(USING_V4L) || defined(USING_V4L2)
+ #include "v4lchannel.h"
+ #endif
+
+@@ -206,7 +206,7 @@ bool TVRec::CreateChannel(const QString &startchannel)
+ }
+ else // "V4L" or "MPEG", ie, analog TV
+ {
+-#ifdef USING_V4L
++#if defined(USING_V4L) || defined(USING_V4L2)
+ channel = new V4LChannel(this, genOpt.videodev);
+ if (!channel->Open())
+ return false;
+@@ -1082,11 +1082,11 @@ bool TVRec::SetupRecorder(RecordingProfile &profile)
+ }
+ else
+ {
+-#ifdef USING_V4L
++#if defined(USING_V4L) || defined(USING_V4L2)
+ // V4L/MJPEG/GO7007 from here on
+ recorder = new NuppelVideoRecorder(this, channel);
+ recorder->SetOption("skipbtaudio", genOpt.skip_btaudio);
+-#endif // USING_V4L
++#endif // USING_V4L || USING_V4L2
+ }
+
+ if (recorder)
+@@ -1292,11 +1292,11 @@ FirewireChannel *TVRec::GetFirewireChannel(void)
+
+ V4LChannel *TVRec::GetV4LChannel(void)
+ {
+-#ifdef USING_V4L
++#if defined(USING_V4L) || defined(USING_V4L2)
+ return dynamic_cast<V4LChannel*>(channel);
+ #else
+ return NULL;
+-#endif // USING_V4L
++#endif // USING_V4L || USING_V4L2
+ }
+
+ /** \fn TVRec::EventThread(void*)
+@@ -4137,7 +4137,7 @@ void TVRec::TuningNewRecorder(MPEGStreamData *streamData)
+ channel->GetCurrentName());
+ }
+
+-#ifdef USING_V4L
++#if defined(USING_V4L) || defined(USING_V4L2)
+ if (GetV4LChannel())
+ {
+ channel->InitPictureAttributes();
+diff --git a/mythtv/libs/libmythtv/v4lchannel.cpp b/mythtv/libs/libmythtv/v4lchannel.cpp
+index bc82b49..7aa47ef 100644
+--- a/mythtv/libs/libmythtv/v4lchannel.cpp
++++ b/mythtv/libs/libmythtv/v4lchannel.cpp
+@@ -16,8 +16,12 @@
+ #include <iostream>
+ using namespace std;
+
++#ifdef USING_V4L
+ #include <linux/videodev.h>
++#endif
++#ifdef USING_V4L2
+ #include <linux/videodev2.h>
++#endif
+
+ // MythTV headers
+ #include "v4lchannel.h"
+@@ -150,8 +154,10 @@ static int format_to_mode(const QString &fmt, int v4l_version)
+ {
+ if (fmt == "NTSC-JP")
+ return 6;
++#ifdef USING_V4L
+ else if (fmt.left(5) == "SECAM")
+ return VIDEO_MODE_SECAM;
++#endif
+ else if (fmt == "PAL-NC")
+ return 3;
+ else if (fmt == "PAL-M")
+@@ -159,6 +165,7 @@ static int format_to_mode(const QString &fmt, int v4l_version)
+ else if (fmt == "PAL-N")
+ return 5;
+ // generics...
++#ifdef USING_V4L
+ else if (fmt.left(3) == "PAL")
+ return VIDEO_MODE_PAL;
+ else if (fmt.left(4) == "NTSC")
+@@ -166,6 +173,7 @@ static int format_to_mode(const QString &fmt, int v4l_version)
+ else if (fmt.left(4) == "ATSC")
+ return VIDEO_MODE_NTSC; // We've dropped V4L ATSC support...
+ return VIDEO_MODE_NTSC;
++#endif
+ }
+
+ VERBOSE(VB_IMPORTANT,
+@@ -237,6 +245,7 @@ static QString mode_to_format(int mode, int v4l_version)
+ }
+ else if (1 == v4l_version)
+ {
++#ifdef USING_V4L
+ if (mode == VIDEO_MODE_NTSC)
+ return "NTSC";
+ else if (mode == VIDEO_MODE_PAL)
+@@ -249,6 +258,7 @@ static QString mode_to_format(int mode, int v4l_version)
+ return "PAL-N";
+ else if (mode == 6)
+ return "NTSC-JP";
++#endif
+ }
+ else
+ {
+@@ -676,6 +686,7 @@ bool V4LChannel::Tune(uint frequency, QString inputname,
+ return true;
+ }
+
++#ifdef USING_V4L
+ // Video4Linux version 1 tuning
+ uint freq = frequency / 62500;
+ ioctlval = ioctl(videofd, VIDIOCSFREQ, &freq);
+@@ -687,6 +698,7 @@ bool V4LChannel::Tune(uint frequency, QString inputname,
+ .arg(device).arg(ioctlval).arg(strerror(errno)));
+ return false;
+ }
++#endif
+
+ SetSIStandard(si_std);
+
+@@ -858,6 +870,7 @@ bool V4LChannel::SetInputAndFormat(int inputNum, QString newFmt)
+
+ if (usingv4l1)
+ {
++#ifdef USING_V4L
+ VERBOSE(VB_CHANNEL, LOC + msg + "(v4l v1)");
+
+ // read in old settings
+@@ -875,8 +888,9 @@ bool V4LChannel::SetInputAndFormat(int inputNum, QString newFmt)
+ {
+ VERBOSE(VB_IMPORTANT, LOC_ERR + msg +
+ "\n\t\t\twhile setting format (v4l v1)" + ENO);
+- }
+- else if (usingv4l2)
++ } else
++#endif
++ if (usingv4l2)
+ {
+ VERBOSE(VB_IMPORTANT, LOC + msg +
+ "\n\t\t\tSetting video mode with v4l version 1 worked");
+@@ -951,6 +965,7 @@ bool V4LChannel::SwitchToInput(int inputnum, bool setstarting)
+ return ok;
+ }
+
++#ifdef USING_V4L
+ static unsigned short *get_v4l1_field(
+ int v4l2_attrib, struct video_picture &vid_pic)
+ {
+@@ -970,6 +985,7 @@ static unsigned short *get_v4l1_field(
+ }
+ return NULL;
+ }
++#endif
+
+ static int get_v4l2_attribute(const QString &db_col_name)
+ {
+@@ -1067,6 +1083,7 @@ bool V4LChannel::InitPictureAttribute(const QString db_col_name)
+ }
+
+ // V4L1
++#ifdef USING_V4L
+ unsigned short *setfield;
+ struct video_picture vid_pic;
+ bzero(&vid_pic, sizeof(vid_pic));
+@@ -1087,7 +1104,7 @@ bool V4LChannel::InitPictureAttribute(const QString db_col_name)
+ VERBOSE(VB_IMPORTANT, loc_err + "failed to set controls." + ENO);
+ return false;
+ }
+-
++#endif
+ return true;
+ }
+
+@@ -1154,6 +1171,7 @@ static int get_v4l2_attribute_value(int videofd, int v4l2_attrib)
+
+ static int get_v4l1_attribute_value(int videofd, int v4l2_attrib)
+ {
++#ifdef USING_V4L
+ struct video_picture vid_pic;
+ bzero(&vid_pic, sizeof(vid_pic));
+
+@@ -1167,6 +1185,7 @@ static int get_v4l1_attribute_value(int videofd, int v4l2_attrib)
+ unsigned short *setfield = get_v4l1_field(v4l2_attrib, vid_pic);
+ if (setfield)
+ return *setfield;
++#endif
+
+ return -1;
+ }
+@@ -1210,6 +1229,7 @@ static int set_v4l2_attribute_value(int videofd, int v4l2_attrib, int newvalue)
+
+ static int set_v4l1_attribute_value(int videofd, int v4l2_attrib, int newvalue)
+ {
++#ifdef USING_V4L
+ unsigned short *setfield;
+ struct video_picture vid_pic;
+ bzero(&vid_pic, sizeof(vid_pic));
+@@ -1236,7 +1256,7 @@ static int set_v4l1_attribute_value(int videofd, int v4l2_attrib, int newvalue)
+ // ???
+ return -1;
+ }
+-
++#endif
+ return 0;
+ }
+
+diff --git a/mythtv/libs/libmythtv/v4lchannel.h b/mythtv/libs/libmythtv/v4lchannel.h
+index b059c64..aa6d934 100644
+--- a/mythtv/libs/libmythtv/v4lchannel.h
++++ b/mythtv/libs/libmythtv/v4lchannel.h
+@@ -4,11 +4,11 @@
+ #define CHANNEL_H
+
+ #include "dtvchannel.h"
+-#ifdef USING_V4L
++#ifdef USING_V4L2
+ #include <linux/videodev2.h> // needed for v4l2_std_id type
+ #else
+ typedef uint64_t v4l2_std_id;
+-#endif //USING_V4L
++#endif //USING_V4L2
+
+ using namespace std;
+
+diff --git a/mythtv/libs/libmythtv/vbitext/vbi.c b/mythtv/libs/libmythtv/vbitext/vbi.c
+index 15f8d85..4c50e8d 100644
+--- a/mythtv/libs/libmythtv/vbitext/vbi.c
++++ b/mythtv/libs/libmythtv/vbitext/vbi.c
+@@ -14,8 +14,12 @@
+ // compiling with -std=c99. We could remove this in the .pro file,
+ // but that would disable it for all .c files.
+ #undef __STRICT_ANSI__
++#ifdef USING_V4L
+ #include <linux/videodev.h>
++#endif
++#ifdef USING_V4L2
+ #include <linux/videodev2.h>
++#endif
+
+ // vbitext headers
+ #include "vt.h"
+@@ -29,8 +33,13 @@ static int rawbuf_size; // its current size
+
+
+ /***** bttv api *****/
++#ifdef USING_V4L
+ #define BTTV_VBISIZE _IOR('v' , BASE_VIDIOCPRIVATE+8, int)
+-
++#else // !USING_V4L
++#ifdef USING_V4L2
++#define BTTV_VBISIZE _IOR('v' , BASE_VIDIOC_PRIVATE+8, int)
++#endif // USING_V4L2
++#endif // !USING_V4L
+
+ static void
+ error(const char *str, ...)
+diff --git a/mythtv/libs/libmythtv/videosource.cpp b/mythtv/libs/libmythtv/videosource.cpp
+index 5d7a508..635faeb 100644
+--- a/mythtv/libs/libmythtv/videosource.cpp
++++ b/mythtv/libs/libmythtv/videosource.cpp
+@@ -45,7 +45,7 @@ using namespace std;
+ #include "dvbtypes.h"
+ #endif
+
+-#ifdef USING_V4L
++#ifdef USING_V4L2
+ #include <linux/videodev2.h>
+ #endif
+
+@@ -2012,7 +2012,7 @@ CaptureCardGroup::CaptureCardGroup(CaptureCard &parent) :
+ setTrigger(cardtype);
+ setSaveAll(false);
+
+-#ifdef USING_V4L
++#if defined(USING_V4L) || defined(USING_V4L2)
+ addTarget("V4L", new V4LConfigurationGroup(parent));
+ # ifdef USING_IVTV
+ addTarget("MPEG", new MPEGConfigurationGroup(parent));
+@@ -2020,7 +2020,7 @@ CaptureCardGroup::CaptureCardGroup(CaptureCard &parent) :
+ # ifdef USING_HDPVR
+ addTarget("HDPVR", new HDPVRConfigurationGroup(parent));
+ # endif // USING_HDPVR
+-#endif // USING_V4L
++#endif // USING_V4L || USING_V4L2
+
+ #ifdef USING_DVB
+ addTarget("DVB", new DVBConfigurationGroup(parent));
+@@ -2201,7 +2201,7 @@ CardType::CardType(const CaptureCard &parent) :
+
+ void CardType::fillSelections(SelectSetting* setting)
+ {
+-#ifdef USING_V4L
++#if defined(USING_V4L) || defined(USING_V4L2)
+ setting->addSelection(
+ QObject::tr("Analog V4L capture card"), "V4L");
+ setting->addSelection(
+@@ -2214,7 +2214,7 @@ void CardType::fillSelections(SelectSetting* setting)
+ setting->addSelection(
+ QObject::tr("H.264 encoder card (HD-PVR)"), "HDPVR");
+ # endif // USING_HDPVR
+-#endif // USING_V4L
++#endif // USING_V4L || USING_V4L2
+
+ #ifdef USING_DVB
+ setting->addSelection(
+@@ -2226,11 +2226,11 @@ void CardType::fillSelections(SelectSetting* setting)
+ QObject::tr("FireWire cable box"), "FIREWIRE");
+ #endif // USING_FIREWIRE
+
+-#ifdef USING_V4L
++#if defined(USING_V4L) || defined(USING_V4L2)
+ setting->addSelection(
+ QObject::tr("USB MPEG-4 encoder box (Plextor ConvertX, etc)"),
+ "GO7007");
+-#endif // USING_V4L
++#endif // USING_V4L || USING_V4L2
+
+ #ifdef USING_HDHOMERUN
+ setting->addSelection(
diff --git a/community-testing/mythtv/mythtv.install b/community-testing/mythtv/mythtv.install
new file mode 100644
index 000000000..c29a53454
--- /dev/null
+++ b/community-testing/mythtv/mythtv.install
@@ -0,0 +1,11 @@
+post_install() {
+ echo "See \"MythTV\" on the Archlinux Wiki for installation information - Extensive!!"
+}
+
+post_upgrade() {
+ return
+}
+
+post_remove() {
+ echo -e "NOTE: mysql database was not removed. To remove run:\nmysql -u root -e 'drop database mythconverg;'"
+}
diff --git a/community-testing/opensips/PKGBUILD b/community-testing/opensips/PKGBUILD
new file mode 100644
index 000000000..b11589417
--- /dev/null
+++ b/community-testing/opensips/PKGBUILD
@@ -0,0 +1,67 @@
+# $Id: PKGBUILD 60926 2011-12-19 18:10:36Z andrea $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=opensips
+pkgver=1.6.4
+pkgrel=2
+pkgdesc="An Open Source SIP Server able to act as a SIP proxy, registrar, location server, redirect server ..."
+url="http://www.opensips.org"
+depends=('gcc-libs' 'openssl' 'db' 'attr' 'kernel-headers' 'libxml2')
+makedepends=('postgresql-libs>=8.4.1' 'unixodbc' 'libldap>=2.4.18' 'libmysqlclient' 'lynx')
+optdepends=('postgresql-libs'
+ 'unixodbc'
+ 'libldap'
+ 'libmysqlclient'
+ 'libsasl'
+ 'python2'
+ 'pcre')
+backup=("etc/opensips/opensips.cfg"
+ "etc/opensips/dictionary.radius"
+ "etc/opensips/opensipsctlrc")
+arch=('i686' 'x86_64')
+license=('GPL')
+install=opensips.install
+options=('!emptydirs' 'zipman' '!makeflags' 'docs')
+source=(#http://switch.dl.sourceforge.net/sourceforge/opensips/opensips-$pkgver-tls_src.tar.gz
+ http://opensips.org/pub/opensips/$pkgver/src/opensips-$pkgver-2-tls_src.tar.gz
+ opensips.init)
+md5sums=('e9869d9a726d70f83de4a1e77cd24d40'
+ '685fbe00826df1285b410d4610dcbb0c')
+
+build()
+{
+ cd $srcdir/$pkgname-$pkgver-2-tls/
+
+ # python2 fix
+ for file in $(find . -name '*.py' -print); do
+ sed -i 's_^#!.*/usr/bin/python_#!/usr/bin/python2_' $file
+ sed -i 's_^#!.*/usr/bin/env.*python_#!/usr/bin/env python2_' $file
+ done
+
+ make \
+ include_modules="ldap db_mysql db_postgres db_unixodbc presence presence_xml h350" \
+ TLS=1 DESTDIR=$pkgdir/usr LIBDIR=lib install
+
+ # Conforms to the arch packaging standards (http://wiki.archlinux.org/index.php/Arch_Packaging_Standards)
+ mkdir -p $pkgdir/etc/
+ mv $pkgdir/usr/etc/opensips/ $pkgdir/etc/
+ sed -i 's#mpath=".*lib/opensips/modules/"#mpath="/usr/lib/opensips/modules/"#' $pkgdir/etc/opensips/opensips.cfg
+
+ # Install starting script
+ mkdir -p $pkgdir/etc/rc.d/
+ cp ../opensips.init $pkgdir/etc/rc.d/opensips
+ chmod 755 $pkgdir/etc/rc.d/opensips
+
+ # fix bad paths
+ cd $pkgdir/usr/share
+ find -type f -exec sed -i "s#$pkgdir##" {} \;
+
+ cd $pkgdir/usr/lib/opensips/opensipsctl
+ find -type f -exec sed -i "s#$pkgdir##" {} \;
+
+ cd $pkgdir/usr/sbin
+ sed -i "s#$pkgdir##" opensipsctl opensipsdbctl osipsconsole
+
+ cd $pkgdir/etc
+ find -type f -exec sed -i "s#$pkgdir##" {} \;
+}
diff --git a/community-testing/opensips/opensips.init b/community-testing/opensips/opensips.init
new file mode 100644
index 000000000..1c883c4c2
--- /dev/null
+++ b/community-testing/opensips/opensips.init
@@ -0,0 +1,50 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+BINNAME=opensips
+OSRDIR=/usr/sbin
+OPENSIPS=$OSRDIR/$BINNAME
+
+TMPDIR=/var/tmp
+CORE=$TMPDIR/core
+
+ETC=/etc/opensips/opensips.cfg
+PIDFILE=/var/run/opensips.pid
+
+case "$1" in
+ start)
+ stat_busy "Starting OpenSIPS server"
+ cd $TMPDIR
+ $OPENSIPS -f $ETC -w $TMPDIR -P $PIDFILE 2>&1 > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon opensips
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping OpenSIPS server"
+ if [ -r $PIDFILE ]
+ then
+ cat $PIDFILE | xargs kill
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon opensips
+ stat_done
+ fi
+ else
+ stat_fail
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/community-testing/opensips/opensips.install b/community-testing/opensips/opensips.install
new file mode 100644
index 000000000..9e8f2a47b
--- /dev/null
+++ b/community-testing/opensips/opensips.install
@@ -0,0 +1,5 @@
+post_install()
+{
+ echo "To use MySQL, you should install mysql package and run '/usr/sbin/openser_mysql.sh create'"
+ /bin/true
+}
diff --git a/community-testing/paraview/PKGBUILD b/community-testing/paraview/PKGBUILD
new file mode 100644
index 000000000..cbb82b181
--- /dev/null
+++ b/community-testing/paraview/PKGBUILD
@@ -0,0 +1,88 @@
+# $Id: PKGBUILD 60900 2011-12-19 18:08:39Z andrea $
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Michele Mocciola <mickele>
+# Contributor: Simon Zilliken <simon____AT____zilliken____DOT____name>
+
+pkgname=paraview
+pkgver=3.10.1
+pkgrel=5
+pkgdesc='Parallel Visualization Application using VTK'
+arch=('i686' 'x86_64')
+url='http://www.paraview.org'
+license=('custom')
+depends=('qt' 'python2' 'libgl' 'libxml2' 'unixodbc' 'postgresql-libs' 'libxt'
+ 'qtwebkit' 'libmysqlclient' 'mesa' 'openmpi') #'hdf5'
+makedepends=('cmake' 'desktop-file-utils')
+source=("http://paraview.org/files/v${pkgver:0:4}/ParaView-${pkgver}.tar.gz"
+ 'paraview.png'
+ 'paraview.desktop'
+ 'fixkernelversioncheck.diff')
+md5sums=('d8a9d4a997a720589ffd57568bcdd449'
+ 'db623002bc71a257ddfdd0c9c7b14c3f'
+ '4e4b7172ed18171c37446fd7c4f1e8f5'
+ '9e137af23701f76fc727222ebac23389')
+
+build() {
+ cd ParaView-${pkgver}
+
+ # patch vtk to fix http://www.vtk.org/Bug/view.php?id=12568
+ # remove next pkgver bump
+ cd VTK
+ patch -Np1 -i ${srcdir}/fixkernelversioncheck.diff
+ cd ..
+
+ sed -i '20 i#include <stddef.h>' VTK/Utilities/vtkmetaio/metaUtils.cxx
+ sed -i 's/stddef.h/cstddef/' VTK/Wrapping/Python/vtkPythonUtil.cxx
+ sed -i '36 i#include <vtksys/cstddef>' VTK/Wrapping/Python/PyVTKObject.cxx
+
+ # Paraview wants to be built out of source
+ mkdir -p build
+ cd build
+
+ # use -DPARAVIEW_INSTALL_THIRD_PARTY_LIBRARIES:BOOL=OFF \ to fix make install error: http://www.cmake.org/pipermail/paraview/2011-February/020268.html
+ cmake \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_USE_PTHREADS:BOOL=ON \
+ -DCMAKE_INSTALL_PREFIX:PATH=/usr \
+ -DCMAKE_SKIP_RPATH:BOOL=YES \
+ -DCMAKE_VERBOSE_MAKEFILE:BOOL=OFF \
+ -DCMAKE_COLOR_MAKEFILE:BOOL=TRUE \
+ -DBUILD_SHARED_LIBS:BOOL=ON \
+ -DBUILD_DOCUMENTATION:BOOL=OFF \
+ -DBUILD_EXAMPLES:BOOL=OFF \
+ -DVTK_USE_SYSTEM_FREETYPE:BOOL=ON \
+ -DVTK_USE_SYSTEM_JPEG:BOOL=ON \
+ -DVTK_USE_SYSTEM_PNG:BOOL=ON \
+ -DVTK_USE_SYSTEM_TIFF:BOOL=ON \
+ -DVTK_USE_SYSTEM_ZLIB:BOOL=ON \
+ -DVTK_USE_SYSTEM_EXPAT:BOOL=ON \
+ -DVTK_USE_SYSTEM_LIBXML2:BOOL=ON \
+ -DVTK_USE_BOOST:BOOL=OFF \
+ -DVTK_USE_OFFSCREEN=TRUE \
+ -DPARAVIEW_USE_SYSTEM_HDF5:BOOL=ON \
+ -DPARAVIEW_USE_MPI:BOOL=ON \
+ -DPARAVIEW_ENABLE_PYTHON:BOOL=ON \
+ -DPARAVIEW_BUILD_QT_GUI:BOOL=ON \
+ -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 \
+ -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so \
+ -DPARAVIEW_INSTALL_THIRD_PARTY_LIBRARIES:BOOL=OFF \
+ ..
+
+ make
+}
+
+package() {
+ cd ParaView-${pkgver}/build
+
+ make DESTDIR=${pkgdir} install
+
+ # Install license
+ install -Dm644 ${srcdir}/ParaView-${pkgver}/License_v1.2.txt ${pkgdir}/usr/share/licenses/paraview/LICENSE
+
+ # Install desktop shortcuts
+ install -Dm644 ${srcdir}/paraview.png ${pkgdir}/usr/share/pixmaps/paraview.png
+ desktop-file-install --dir=${pkgdir}/usr/share/applications ${srcdir}/paraview.desktop
+
+ # Removes VTK plugin for designer - if you need, you can install vtk
+ #rm -rf ${pkgdir}/opt/paraview/plugins
+}
diff --git a/community-testing/paraview/fixkernelversioncheck.diff b/community-testing/paraview/fixkernelversioncheck.diff
new file mode 100644
index 000000000..165f07366
--- /dev/null
+++ b/community-testing/paraview/fixkernelversioncheck.diff
@@ -0,0 +1,19 @@
+--- a/Utilities/vtkhdf5/ConfigureChecks.cmake
++++ b/Utilities/vtkhdf5/ConfigureChecks.cmake
+@@ -75,14 +75,14 @@ IF (HDF5_WANT_DCONV_EXCEPTION)
+ ENDIF (HDF5_WANT_DCONV_EXCEPTION)
+
+ SET (LINUX_LFS 0)
+-IF (CMAKE_SYSTEM MATCHES "Linux-([3-9]\\.[0-9]|2\\.[4-9])\\.")
++IF (CMAKE_SYSTEM MATCHES "Linux")
+ # Linux Specific flags
+ ADD_DEFINITIONS (-D_POSIX_SOURCE -D_BSD_SOURCE)
+ OPTION (HDF5_ENABLE_LARGE_FILE "Enable support for large (64-bit) files on Linux." ON)
+ IF (HDF5_ENABLE_LARGE_FILE)
+ SET (LARGEFILE 1)
+ ENDIF (HDF5_ENABLE_LARGE_FILE)
+-ENDIF (CMAKE_SYSTEM MATCHES "Linux-([3-9]\\.[0-9]|2\\.[4-9])\\.")
++ENDIF (CMAKE_SYSTEM MATCHES "Linux")
+ SET (HDF5_EXTRA_FLAGS)
+ IF (LINUX_LFS)
+ SET (HDF5_EXTRA_FLAGS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE)
diff --git a/community-testing/paraview/paraview.desktop b/community-testing/paraview/paraview.desktop
new file mode 100644
index 000000000..2f5b8ec69
--- /dev/null
+++ b/community-testing/paraview/paraview.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Version=1.0
+Name=ParaView
+GenericName=Data Viewer
+Comment=ParaView allows visualization of large data sets
+Type=Application
+Terminal=false
+Icon=paraview
+Categories=Graphics;
+Exec=/usr/bin/paraview
diff --git a/community-testing/paraview/paraview.png b/community-testing/paraview/paraview.png
new file mode 100644
index 000000000..6e39f3d4f
--- /dev/null
+++ b/community-testing/paraview/paraview.png
Binary files differ
diff --git a/community-testing/perl-dbd-odbc/PKGBUILD b/community-testing/perl-dbd-odbc/PKGBUILD
new file mode 100644
index 000000000..3b35f2824
--- /dev/null
+++ b/community-testing/perl-dbd-odbc/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 60928 2011-12-19 18:10:40Z andrea $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-dbd-odbc
+pkgver=1.33
+pkgrel=2
+pkgdesc="ODBC Driver for DBI"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/DBD-ODBC/"
+license=('GPL' 'PerlArtistic')
+depends=('perl-dbi' 'perl' 'unixodbc')
+options=('!emptydirs')
+source=("http://search.cpan.org/CPAN/authors/id/M/MJ/MJEVANS/DBD-ODBC-${pkgver}.tar.gz")
+md5sums=('3e44ea4eb4b0bb711eea93632b76de17')
+
+build() {
+ cd DBD-ODBC-${pkgver}
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+package() {
+ cd DBD-ODBC-${pkgver}
+ make install DESTDIR=${pkgdir}
+ find ${pkgdir} -name '.packlist' -delete
+ find ${pkgdir} -name '*.pod' -delete
+}
diff --git a/community-testing/psqlodbc/PKGBUILD b/community-testing/psqlodbc/PKGBUILD
new file mode 100644
index 000000000..aa6184935
--- /dev/null
+++ b/community-testing/psqlodbc/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 60930 2011-12-19 18:10:47Z andrea $
+# Maintainer:
+# Contributor: Douglas Soares de Andrade <dsa@aur.archlinux-br.org>
+# Contributor: Rick Rein <jeebusroxors@gmail.com>
+
+pkgname=psqlodbc
+pkgver=09.00.0310
+pkgrel=2
+pkgdesc="PostgreSQL ODBC driver"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.postgresql.org"
+depends=('unixodbc' 'postgresql-libs')
+makedepends=('postgresql')
+options=('!libtool')
+source=(ftp://ftp2.it.postgresql.org/mirrors/postgres//odbc/versions/src/$pkgname-$pkgver.tar.gz
+ fix-function-declarations.patch)
+md5sums=('78144d9ea6c40f0a0a0b92128e6b0e05'
+ 'f1189f9c6ae0b5bfb5ee8423eaa4076f')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+# patch -p1 -i "$srcdir/fix-function-declarations.patch"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community-testing/psqlodbc/fix-function-declarations.patch b/community-testing/psqlodbc/fix-function-declarations.patch
new file mode 100644
index 000000000..4504661b0
--- /dev/null
+++ b/community-testing/psqlodbc/fix-function-declarations.patch
@@ -0,0 +1,47 @@
+diff -upr psqlodbc-08.04.0100.orig/odbcapi30.c psqlodbc-08.04.0100/odbcapi30.c
+--- psqlodbc-08.04.0100.orig/odbcapi30.c 2008-10-07 00:46:09.000000000 +0300
++++ psqlodbc-08.04.0100/odbcapi30.c 2009-09-19 20:13:57.000000000 +0300
+@@ -118,13 +118,7 @@ SQLColAttribute(SQLHSTMT StatementHandle
+ SQLPOINTER CharacterAttribute,
+ SQLSMALLINT BufferLength,
+ SQLSMALLINT *StringLength,
+-#if defined(_WIN64)
+ SQLLEN *NumericAttribute
+-#elif defined(WITH_UNIXODBC) || defined(WIN32)
+- SQLPOINTER NumericAttribute
+-#else
+- SQLLEN *NumericAttribute
+-#endif
+ )
+ {
+ CSTR func = "SQLColAttribute";
+diff -upr psqlodbc-08.04.0100.orig/odbcapi30w.c psqlodbc-08.04.0100/odbcapi30w.c
+--- psqlodbc-08.04.0100.orig/odbcapi30w.c 2009-03-22 16:17:10.000000000 +0200
++++ psqlodbc-08.04.0100/odbcapi30w.c 2009-09-19 20:22:17.000000000 +0300
+@@ -262,11 +262,7 @@ SQLRETURN SQL_API SQLColAttributeW(
+ SQLPOINTER pCharAttr,
+ SQLSMALLINT cbCharAttrMax,
+ SQLSMALLINT *pcbCharAttr,
+-#if defined(WITH_UNIXODBC) || (defined(WIN32) && ! defined(_WIN64))
+- SQLPOINTER pNumAttr
+-#else
+ SQLLEN *pNumAttr
+-#endif
+ )
+ {
+ CSTR func = "SQLColAttributeW";
+diff -upr psqlodbc-08.04.0100.orig/odbcapi.c psqlodbc-08.04.0100/odbcapi.c
+--- psqlodbc-08.04.0100.orig/odbcapi.c 2008-11-23 03:00:53.000000000 +0200
++++ psqlodbc-08.04.0100/odbcapi.c 2009-09-19 20:13:56.000000000 +0300
+@@ -1111,11 +1111,7 @@ SQLExtendedFetch(
+ HSTMT hstmt,
+ SQLUSMALLINT fFetchType,
+ SQLLEN irow,
+-#ifdef WITH_UNIXODBC
+- SQLROWSETSIZE *pcrow,
+-#else
+ SQLULEN *pcrow,
+-#endif /* WITH_UNIXODBC */
+ SQLUSMALLINT *rgfRowStatus)
+ {
+ RETCODE ret;
diff --git a/community-testing/qbittorrent/PKGBUILD b/community-testing/qbittorrent/PKGBUILD
new file mode 100644
index 000000000..e26f76684
--- /dev/null
+++ b/community-testing/qbittorrent/PKGBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+
+pkgname=qbittorrent
+pkgver=2.9.2
+pkgrel=7
+pkgdesc="A bittorrent client written in C++ / Qt4 using the good libtorrent library"
+arch=('i686' 'x86_64')
+url="http://www.qbittorrent.org/"
+license=('GPL')
+depends=('qt' 'libtorrent-rasterbar' 'xdg-utils')
+makedepends=('boost' 'geoip')
+optdepends=('python: needed for search'
+ 'geoip: improves peer country resolution')
+install='qbittorrent.install'
+source=("http://downloads.sourceforge.net/sourceforge/qbittorrent/qbittorrent-${pkgver}.tar.gz")
+md5sums=('0c2188e0065be57e50c06f5934d5f7a2')
+
+build() {
+ cd qbittorrent-${pkgver}
+
+ ./configure \
+ --prefix=/usr
+
+ make
+}
+
+package() {
+ cd qbittorrent-${pkgver}
+
+ make INSTALL_ROOT=${pkgdir} install
+}
diff --git a/community-testing/qbittorrent/qbittorrent.install b/community-testing/qbittorrent/qbittorrent.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/community-testing/qbittorrent/qbittorrent.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/community-testing/qlandkartegt/PKGBUILD b/community-testing/qlandkartegt/PKGBUILD
new file mode 100644
index 000000000..38708ca2c
--- /dev/null
+++ b/community-testing/qlandkartegt/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 60904 2011-12-19 18:08:56Z andrea $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Matthias Maennich <arch@maennich.net>
+# Contributor: <boenki@gmx.de>
+
+pkgname=qlandkartegt
+pkgver=1.3.1
+pkgrel=2
+pkgdesc="Use your GPS with Linux"
+arch=('i686' 'x86_64')
+url="http://www.qlandkarte.org/"
+license=('GPL')
+depends=('gdal' 'gpsd' 'libdmtx' 'libexif' 'libmysqlclient' 'mesa' 'postgresql-libs'
+ 'qt' 'shared-mime-info' 'qtwebkit')
+makedepends=('cmake' 'garmindev')
+optdepends=('garmindev: to connect garmin devices')
+install=$pkgname.install
+changelog=$pkgname.changelog
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
+ $pkgname-mimetypes.xml)
+sha256sums=('77a387856e2d41f9ea69f750cbac9bb49fa249d65bdef5e319bfa6f7c9f84121'
+ 'e8d33948831f8a66edd752c71c653085d6c4d9f1969e70dd8c40b9c7ca37fba0')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ cd ${srcdir}
+ mkdir build
+ cd build
+
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release
+ make
+}
+
+package(){
+ cd ${srcdir}/build
+
+ make DESTDIR=${pkgdir} install
+
+ install -D -m644 ${srcdir}/$pkgname-mimetypes.xml \
+ ${pkgdir}/usr/share/mime/packages/$pkgname-mimetypes.xml
+}
diff --git a/community-testing/qlandkartegt/qlandkartegt-mimetypes.xml b/community-testing/qlandkartegt/qlandkartegt-mimetypes.xml
new file mode 100644
index 000000000..46d3d402c
--- /dev/null
+++ b/community-testing/qlandkartegt/qlandkartegt-mimetypes.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
+ <mime-type type="application/vnd.qlandkartegt.qlb">
+ <comment>QLandkarteGT File</comment>
+ <glob pattern="*.qlb"/>
+ </mime-type>
+</mime-info>
diff --git a/community-testing/qlandkartegt/qlandkartegt.changelog b/community-testing/qlandkartegt/qlandkartegt.changelog
new file mode 100644
index 000000000..59d0e9a59
--- /dev/null
+++ b/community-testing/qlandkartegt/qlandkartegt.changelog
@@ -0,0 +1,30 @@
+2011-12-08 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qlandkartegt 1.3.1-1
+
+2011-10-09 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qlandkartegt 1.2.4-1
+
+2011-09-09 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qlandkartegt 1.2.3-1
+
+2011-07-19 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qlandkartegt 1.2.2-1
+
+2011-07-07 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qlandkartegt 1.2.1-1
+
+2011-06-22 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qlandkartegt 1.2.0-1
+
+2011-05-22 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qlandkartegt 1.1.2-1
+
+2011-03-21 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qlandkartegt 1.1.1-1
+
+2011-02-23 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qlandkartegt 1.1.0-1
+
+2011-02-05 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qlandkartegt 1.0.1-2
+ * moved to [community] with 59 AUR votes
diff --git a/community-testing/qlandkartegt/qlandkartegt.install b/community-testing/qlandkartegt/qlandkartegt.install
new file mode 100644
index 000000000..e55805570
--- /dev/null
+++ b/community-testing/qlandkartegt/qlandkartegt.install
@@ -0,0 +1,7 @@
+post_install() {
+ update-mime-database usr/share/mime > /dev/null
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community-testing/qmc2/PKGBUILD b/community-testing/qmc2/PKGBUILD
new file mode 100644
index 000000000..3a175eb67
--- /dev/null
+++ b/community-testing/qmc2/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 60906 2011-12-19 18:09:01Z andrea $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: JJDaNiMoTh <jjdanimoth@gmail.com>
+
+pkgname=qmc2
+pkgver=0.34
+pkgrel=2
+pkgdesc="Qt 4 based UNIX MAME frontend supporting SDLMAME"
+url="http://qmc2.arcadehits.net"
+license=("GPL")
+arch=('i686' 'x86_64')
+depends=('qtwebkit' 'phonon' 'sdl')
+makedepends=('rsync' 'mesa')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-$pkgver.tar.bz2")
+md5sums=('3439fb62c95ff702e3c4194c05353169')
+
+build() {
+ cd "$srcdir/$pkgname"
+ export CTIME=0
+ make PREFIX=/usr DATADIR=/usr/share SYSCONFDIR=/etc QTDIR=/usr
+}
+
+package() {
+ cd "$srcdir/$pkgname"
+ make PREFIX=/usr DATADIR=/usr/share SYSCONFDIR=/etc QTDIR=/usr DESTDIR=$pkgdir install
+ install -d $pkgdir/usr/share/{applications,pixmaps}
+ install -D -m644 "$srcdir/qmc2/data/img/mame.png" "$pkgdir/usr/share/pixmaps"
+}
diff --git a/community-testing/qtcreator/PKGBUILD b/community-testing/qtcreator/PKGBUILD
index 1c0271947..f95b53e03 100644
--- a/community-testing/qtcreator/PKGBUILD
+++ b/community-testing/qtcreator/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 58646 2011-11-17 02:49:13Z svenstaro $
+# $Id: PKGBUILD 60908 2011-12-19 18:09:11Z andrea $
# Maintainer: Imanol Celaya <ornitorrincos@archlinux-es.org>
# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
# Contributor: Lukas Jirkovsky <l.jirkovsky@gmail.com>
@@ -7,24 +7,32 @@
# Contributor: delor <bartekpiech gmail com>
pkgname="qtcreator"
-pkgver=2.4.0rc
-_pkgver=2.4.0-rc
-pkgrel=1
+pkgver=2.4.0
+_pkgver=2.4.0
+pkgrel=2
pkgdesc='Lightweight, cross-platform integrated development environment'
arch=('i686' 'x86_64')
url='http://qt.nokia.com/products/developer-tools'
license=('LGPL')
-depends=('qt>=4.7.4')
-makedepends=('qt-private-headers>=4.7.4' 'git')
+depends=('qt>=4.8.0')
+makedepends=('qt-private-headers>=4.8.0' 'git')
options=('docs')
+optdepends=('qt-doc: for the integrated Qt documentation'
+ 'gdb: for the debugger'
+ 'cmake: for cmake project suppport'
+ 'openssh-askpass: for ssh support'
+ 'git: for git support'
+ 'mercurial: for mercurial support'
+ 'bzr: for bazaar support')
install=qtcreator.install
source=("http://get.qt.nokia.com/qtcreator/qt-creator-${_pkgver}-src.tar.gz"
'qtcreator.desktop')
-md5sums=('1967144101796674ce6e994e66213f81'
+md5sums=('80c1a2be4c685ce147c42424ad977e1a'
'f1f4680b9838ff0b8f4cf11eb850d662')
build() {
cd ${srcdir}
+
[[ -d build ]] && rm -r build
mkdir build && cd build
@@ -33,14 +41,6 @@ build() {
}
package() {
- optdepends=('qt-doc: for the integrated Qt documentation'
- 'gdb: for the debugger'
- 'cmake: for cmake project suppport'
- 'openssh-askpass: for ssh support'
- 'git: for git support'
- 'mercurial: for mercurial support'
- 'bzr: for bazaar support')
-
cd ${srcdir}/build
make INSTALL_ROOT="${pkgdir}/usr/" install
diff --git a/community-testing/root/PKGBUILD b/community-testing/root/PKGBUILD
new file mode 100644
index 000000000..729d3377f
--- /dev/null
+++ b/community-testing/root/PKGBUILD
@@ -0,0 +1,97 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Sebastian Voecking <voeck@web.de>
+
+pkgname=root
+pkgver=5.32.00
+pkgrel=2
+pkgdesc='C++ data analysis framework and interpreter from CERN.'
+arch=('i686' 'x86_64')
+url='http://root.cern.ch'
+license=('LGPL2.1')
+depends=('avahi' 'desktop-file-utils' 'ftgl' 'giflib' 'glew' 'graphviz' 'gsl' 'libldap' 'libmysqlclient'
+ 'libxft' 'postgresql-libs' 'python2' 'unixodbc' 'shared-mime-info' 'xmlrpc-c' 'xorg-fonts-75dpi' 'mesa' 'gcc-fortran' 'hicolor-icon-theme')
+makedepends=('fftw')
+install='root.install'
+options=('!emptydirs')
+source=("ftp://root.cern.ch/root/root_v${pkgver}.source.tar.gz"
+ 'root.sh'
+ 'rootd'
+ 'root.xml')
+md5sums=('1c30e4e6eeae62ff1ad5118cd1309679'
+ '0e883ad44f99da9bc7c23bc102800b62'
+ 'efd06bfa230cc2194b38e0c8939e72af'
+ 'e2cf69b204192b5889ceb5b4dedc66f7')
+
+build() {
+ cd root
+
+ if [ ${CARCH} == 'i686' ]; then
+ TARGET=linux;
+ else
+ TARGET=linuxx8664gcc;
+ fi
+
+ # python2 switch
+ find . -type f -exec sed -i -e 's_#!/usr/bin/env python_&2_' \
+ -e 's/python -O/python2 -O/g' \
+ -e 's/python -c/python2 -c/g' {} \;
+ sed \
+ -e 's/python 2/python2 2/g' \
+ -i configure
+ sed \
+ -e 's/python $(pkgpyexecdir)/python2 $(pkgpyexecdir)/g' \
+ -i cint/reflex/python/genreflex/Makefile.am
+ sed \
+ -e 's/python /python2 /' \
+ -i config/genreflex.in config/genreflex-rootcint.in
+
+ ./configure \
+ ${TARGET} \
+ --prefix=/usr \
+ --disable-builtin-ftgl \
+ --disable-builtin-freetype \
+ --disable-builtin-glew \
+ --disable-builtin-pcre \
+ --disable-builtin-zlib \
+ --disable-builtin-lzma \
+ --enable-gdml \
+ --enable-gsl-shared \
+ --enable-minuit2 \
+ --enable-soversion \
+ --enable-roofit \
+ --enable-python \
+ --with-python-incdir=/usr/include/python2.7 \
+ --with-python-libdir=/usr/lib
+
+ # move from aur
+ #--disable-builtin-afterimage \
+
+ make
+}
+
+package() {
+ cd root
+
+ make DESTDIR=${pkgdir} install
+
+ install -D ${srcdir}/root.sh \
+ ${pkgdir}/etc/profile.d/root.sh
+ install -D ${srcdir}/rootd \
+ ${pkgdir}/etc/rc.d/rootd
+ install -D -m644 ${srcdir}/root.xml \
+ ${pkgdir}/usr/share/mime/packages/root.xml
+
+ install -D -m644 ${srcdir}/root/build/package/debian/root-system-bin.desktop.in \
+ ${pkgdir}/usr/share/applications/root-system-bin.desktop
+ # replace @prefix@ with /usr for the desktop
+ sed -e 's_@prefix@_/usr_' -i ${pkgdir}/usr/share/applications/root-system-bin.desktop
+
+ install -D -m644 ${srcdir}/root/build/package/debian/root-system-bin.png \
+ ${pkgdir}/usr/share/icons/hicolor/48x48/apps/root-system-bin.png
+
+ # use a file that pacman can track instead of adding directly to ld.so.conf
+ install -d ${pkgdir}/etc/ld.so.conf.d
+ echo '/usr/lib/root' > ${pkgdir}/etc/ld.so.conf.d/root.conf
+
+ rm -rf ${pkgdir}/etc/root/daemons
+}
diff --git a/community-testing/root/root.install b/community-testing/root/root.install
new file mode 100644
index 000000000..afabb7aea
--- /dev/null
+++ b/community-testing/root/root.install
@@ -0,0 +1,25 @@
+post_install() {
+ update-desktop-database >/dev/null
+
+ update-mime-database /usr/share/mime >/dev/null
+
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_remove() {
+ # leave for pre 5.30.03-3
+ if [[ $(vercmp $1 5.30.03-3) == -1 ]]; then
+ cat etc/ld.so.conf | grep -v '/usr/lib/root' >/tmp/.pacroot
+ mv /tmp/.pacroot etc/ld.so.conf
+ chmod 644 etc/ld.so.conf
+ sbin/ldconfig -r .
+ fi
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/community-testing/root/root.sh b/community-testing/root/root.sh
new file mode 100644
index 000000000..685e6036b
--- /dev/null
+++ b/community-testing/root/root.sh
@@ -0,0 +1,5 @@
+if [ $PYTHONPATH ]; then
+ export PYTHONPATH=$PYTHONPATH:/usr/lib/root;
+else
+ export PYTHONPATH=/usr/lib/root;
+fi
diff --git a/community-testing/root/root.xml b/community-testing/root/root.xml
new file mode 100644
index 000000000..af8dd69c5
--- /dev/null
+++ b/community-testing/root/root.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
+ <mime-type type="application/x-root">
+ <comment>ROOT file</comment>
+ <comment xml:lang="de">ROOT-Datei</comment>
+ <glob pattern="*.root"/>
+ <magic priority="80">
+ <match value="root" type="string" offset="0:64"/>
+ </magic>
+ </mime-type>
+</mime-info>
diff --git a/community-testing/root/rootd b/community-testing/root/rootd
new file mode 100644
index 000000000..fb2c3388c
--- /dev/null
+++ b/community-testing/root/rootd
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/rootd`
+case "$1" in
+ start)
+ stat_busy "Starting ROOT file server daemon"
+ [ -z "$PID" ] && /usr/bin/rootd >>/var/log/root.log 2>&1
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ PID=`pidof -o %PPID /usr/sbin/rootd`
+ echo $PID >/var/run/rootd.pid
+ add_daemon rootd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping ROOT file server daemon"
+ [ ! -z "$PID" ] && kill $PID &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon rootd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community-testing/sigil/PKGBUILD b/community-testing/sigil/PKGBUILD
new file mode 100644
index 000000000..80ed676bc
--- /dev/null
+++ b/community-testing/sigil/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 60910 2011-12-19 18:09:21Z andrea $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Larry Hajali <larryhaja [at] gmail [dot] com>
+
+pkgname=sigil
+pkgver=0.4.2
+pkgrel=3
+pkgdesc="A WYSIWYG ebook editor"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/sigil/"
+license=('GPL3')
+depends=('qtwebkit')
+makedepends=('cmake')
+install=sigil.install
+source=("http://sigil.googlecode.com/files/Sigil-${pkgver}-Code.zip"
+ "${pkgname}.desktop")
+md5sums=('ce27976254236f8b11b787fd05be9acb'
+ 'fef6aa492af487ccccd6b133635cee5a')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake -G "Unix Makefiles" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_C_FLAGS:STRING="${CFLAGS}" \
+ -DCMAKE_CXX_FLAGS:STRING="${CXXFLAGS}" \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON ..
+
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make install DESTDIR="${pkgdir}"
+
+ install -d -m 0755 "${pkgdir}"/usr/share/applications
+ install -m 0644 "${srcdir}"/${pkgname}.desktop "${pkgdir}"/usr/share/applications
+
+ for _pic in 16 32 48 128 256; do
+ install -D -m 0644 ../src/Sigil/Resource_Files/icon/app_icon_${_pic}.png \
+ "${pkgdir}"/usr/share/icons/hicolor/${_pic}x${_pic}/apps/${pkgname}.png
+ done
+}
diff --git a/community-testing/sigil/sigil.desktop b/community-testing/sigil/sigil.desktop
new file mode 100644
index 000000000..4f3a14d20
--- /dev/null
+++ b/community-testing/sigil/sigil.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Type=Application
+Name=Sigil
+Comment=E-book reader and WYSIWYG editor
+TryExec=sigil
+Exec=sigil
+Icon=sigil
+Categories=Office;
+Terminal=false
+StartupNotify=false
diff --git a/community-testing/sigil/sigil.install b/community-testing/sigil/sigil.install
new file mode 100644
index 000000000..ec506fa93
--- /dev/null
+++ b/community-testing/sigil/sigil.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-desktop-database -q
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community-testing/swi-prolog/PKGBUILD b/community-testing/swi-prolog/PKGBUILD
new file mode 100644
index 000000000..5a43c9910
--- /dev/null
+++ b/community-testing/swi-prolog/PKGBUILD
@@ -0,0 +1,48 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: John Proctor <jproctor@prium.net>
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+
+pkgname=swi-prolog
+pkgver=5.10.5
+pkgrel=3
+pkgdesc='Prolog environment'
+arch=('i686' 'x86_64')
+url='http://www.swi-prolog.org/'
+license=('GPL' 'LGPL')
+depends=('gmp' 'readline' 'openssl')
+makedepends=('libxft' 'libjpeg' 'unixodbc' 'libxpm' 'libxinerama')
+optdepends=('unixodbc: for using the odbc4pl library'
+ 'libjpeg: for using the pl2xpce library'
+ 'libxpm: for using the pl2xpce library'
+ 'libxinerama: for using the pl2xpce library'
+ 'libxft: for using the pl2xpce library')
+options=('!makeflags')
+source=("http://www.swi-prolog.org/download/stable/src/pl-${pkgver}.tar.gz")
+md5sums=('1ca45eddd3590fb525085761e75a4ebd')
+
+build() {
+ cd pl-${pkgver}
+
+ # enable shared because x86 doesn't build with shared libs, upstream made it intentional...
+ ./configure \
+ --prefix=/usr \
+ --with-world \
+ --enable-shared
+
+ make
+}
+
+check() {
+ cd pl-${pkgver}
+
+ make check || true
+}
+
+package() {
+ cd pl-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ # fix https://bugs.archlinux.org/task/20873
+ chmod +x ${pkgdir}/usr/lib/swipl-${pkgver}/library/dialect/sicstus/swipl-lfr.pl
+}
diff --git a/community-testing/texmaker/PKGBUILD b/community-testing/texmaker/PKGBUILD
new file mode 100644
index 000000000..13e9fe2f0
--- /dev/null
+++ b/community-testing/texmaker/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 60912 2011-12-19 18:09:26Z andrea $
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: furester <xfurester@hotmail.com>
+# Contributor: Firmicus <firmicus gmx net>
+# Contributor: Paulo Matias <matiasΘarchlinux-br·org>
+
+pkgname=texmaker
+pkgver=3.1
+pkgrel=2
+pkgdesc='Free cross-platform latex editor'
+arch=('i686' 'x86_64')
+url="http://www.xm1math.net/texmaker/index.html"
+license=('GPL')
+depends=('poppler-qt' 'ghostscript' 'qtwebkit')
+source=("http://www.xm1math.net/texmaker/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('10a14c75abbb7234d4e5e58a7c85b110')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ export INSTALL_ROOT=${pkgdir}
+
+ qmake -unix PREFIX=//usr texmaker.pro
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ export INSTALL_PATH=${pkgdir}
+
+ make install
+}
diff --git a/community-testing/vtk/PKGBUILD b/community-testing/vtk/PKGBUILD
new file mode 100644
index 000000000..198dea2fc
--- /dev/null
+++ b/community-testing/vtk/PKGBUILD
@@ -0,0 +1,115 @@
+# $Id: PKGBUILD 60914 2011-12-19 18:09:36Z andrea $
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Christofer Bertonha <christoferbertonha at gmail dot com>
+# Contributor: leepesjee <lpeschier at xs4all dot nl>
+# Contributor: Olivier Medoc
+# Contributor: ignotus
+# Contributor: Fabian Moser
+# Contributor: djscholl
+
+pkgname=vtk
+pkgver=5.8.0
+pkgrel=7
+pkgdesc='A software system for 3D computer graphics, image processing, and visualization which supports a wide variety of visualization algorithms and advanced modeling techniques.'
+arch=('i686' 'x86_64')
+url='http://www.vtk.org'
+license=('BSD')
+depends=('libpng' 'libtiff' 'freetype2' 'boost' 'ffmpeg' 'qt' 'lesstif' 'mysql')
+makedepends=('cmake' 'java-environment' 'doxygen' 'gnuplot' 'mesa' 'python2' 'tk')
+optdepends=('python2: python bindings'
+ 'java-runtime: java bindings'
+ 'tk: tcl bindings'
+ 'gnuplot: plotting tools'
+ 'graphviz: drawing tools')
+source=("http://www.vtk.org/files/release/${pkgver:0:3}/vtk-${pkgver}.tar.gz"
+ "http://www.vtk.org/files/release/${pkgver:0:3}/vtkdata-${pkgver}.tar.gz"
+ 'fixkernelversioncheck.diff'
+ 'ffmpeg-0.8.diff'
+ 'fix-boost-graph-api-changes.diff')
+md5sums=('37b7297d02d647cc6ca95b38174cb41f'
+ 'a05295b81930e894fc0e31866f399151'
+ '9e137af23701f76fc727222ebac23389'
+ 'e992321c9d1def6034d0fa6607b40c5a'
+ 'e715aef2aea26fc05f904efb5d0d5627')
+
+build() {
+ cd VTK
+
+ # fix compilation error: http://vtk.org/Bug/view.php?id=12568
+ # remove next pkgver bump
+ patch -Np1 -i ${srcdir}/fixkernelversioncheck.diff
+
+ # fix compilation error:
+ # remove next pkgver bump
+ patch -Np1 -i ${srcdir}/ffmpeg-0.8.diff
+
+ # fix compilation error: http://vtk.org/Bug/view.php?id=12772
+ # remove next pkgver bump
+ patch -Np1 -i ${srcdir}/fix-boost-graph-api-changes.diff
+
+ cd ${srcdir}
+
+ rm -rf build
+ mkdir build
+ cd build
+
+ cmake \
+ -Wno-dev \
+ -DBUILD_SHARED_LIBS:BOOL=ON \
+ -DCMAKE_INSTALL_PREFIX:FILEPATH=/usr \
+ -DVTK_DATA_ROOT:FILEPATH=${srcdir}/VTKData \
+ -DBUILD_DOCUMENTATION:BOOL=ON \
+ -DDOCUMENTATION_HTML_HELP:BOOL=ON \
+ -DDOCUMENTATION_HTML_TARZ:BOOL=ON \
+ -DBUILD_EXAMPLES:BOOL=ON \
+ -DVTK_USE_HYBRID:BOOL=ON \
+ -DVTK_USE_PARALLEL:BOOL=ON \
+ -DVTK_USE_PATENTED:BOOL=ON \
+ -DVTK_USE_SYSTEM_EXPAT:BOOL=ON \
+ -DVTK_USE_SYSTEM_FREETYPE:BOOL=ON \
+ -DVTK_USE_SYSTEM_JPEG:BOOL=ON \
+ -DVTK_USE_SYSTEM_PNG:BOOL=ON \
+ -DVTK_USE_SYSTEM_TIFF:BOOL=ON \
+ -DVTK_USE_SYSTEM_ZLIB:BOOL=ON \
+ -DVTK_USE_SYSTEM_LIBXML2:BOOL=ON \
+ -DVTK_USE_BOOST:BOOL=ON \
+ -DVTK_USE_INFOVIS:BOOL=ON \
+ -DVTK_USE_GL2PS:BOOL=ON \
+ -DVTK_USE_MYSQL:BOOL=ON \
+ -DVTK_USE_FFMPEG_ENCODER:BOOL=ON \
+ -DVTK_USE_TEXT_ANALYSIS:BOOL=ON \
+ -DVTK_WRAP_JAVA:BOOL=ON \
+ -DVTK_WRAP_PYTHON:BOOL=ON \
+ -DVTK_WRAP_TCL:BOOL=ON \
+ -DVTK_PYTHON_SETUP_ARGS:STRING="--root=${pkgdir}" \
+ -DVTK_USE_QT:BOOL=ON \
+ -DVTK_INSTALL_QT_PLUGIN_DIR:STRING="/usr/lib/qt/plugins" \
+ -DVTK_USE_GUISUPPORT:BOOL=ON \
+ -DCMAKE_CXX_FLAGS="-D__STDC_CONSTANT_MACROS" \
+ -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 \
+ -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2 \
+ ${srcdir}/VTK
+
+ make
+}
+
+package() {
+ cd build
+
+ make DESTDIR=${pkgdir} install
+
+ # Move the vtk.jar to the arch-specific location
+ install -dv ${pkgdir}/usr/share/java/vtk
+ mv -v ${pkgdir}/usr/lib/vtk-${pkgver:0:3}/java/vtk.jar \
+ ${pkgdir}/usr/share/java/vtk
+
+ # Install license
+ install -dv ${pkgdir}/usr/share/licenses/vtk
+ install -m644 ${srcdir}/VTK/Copyright.txt \
+ ${pkgdir}/usr/share/licenses/vtk
+
+ # Put an entry in /etc/ld.so.conf.d
+ install -dv ${pkgdir}/etc/ld.so.conf.d
+ echo "/usr/lib/vtk-${pkgver:0:3}" > ${pkgdir}/etc/ld.so.conf.d/vtk.conf
+}
diff --git a/community-testing/vtk/ffmpeg-0.8.diff b/community-testing/vtk/ffmpeg-0.8.diff
new file mode 100644
index 000000000..523919d6f
--- /dev/null
+++ b/community-testing/vtk/ffmpeg-0.8.diff
@@ -0,0 +1,66 @@
+Description: Upstream changes introduced in version 5.6.1-6.1
+ This patch has been created by dpkg-source during the package build.
+ Here's the last changelog entry, hopefully it gives details on why
+ those changes were made:
+ .
+ vtk (5.6.1-6.1) unstable; urgency=low
+ .
+ [ Michael Schutte ]
+ * Non-maintainer upload.
+ * Remove absolute paths to required libraries from
+ /usr/lib/vtk-5.6/VTKLibraryDepends.cmake after building, closes:
+ #506992. Due to the multiarch transition, the original behavior
+ frequently causes reverse build-deps to FTBFS. This change should
+ probably be reverted once all required libraries are multiarched.
+ .
+ [ Steve M. Robbins ]
+ * Override lintian diagnostic about embedded libraries ftgl and sqlite.
+ * IO/vtkFFMPEGWriter.cxx: Applied fix from #638246 to build with libav
+ 0.7.
+ .
+ The person named in the Author field signed this changelog entry.
+Author: Steve M. Robbins <smr@debian.org>
+Bug-Debian: http://bugs.debian.org/506992
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: <vendor|upstream|other>, <url of original patch>
+Bug: <url in upstream bugtracker>
+Bug-Debian: http://bugs.debian.org/<bugnumber>
+Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
+Forwarded: <no|not-needed|url proving that it has been forwarded>
+Reviewed-By: <name and email of someone who approved the patch>
+Last-Update: <YYYY-MM-DD>
+
+--- vtk-5.6.1.orig/IO/vtkFFMPEGWriter.cxx
++++ vtk-5.6.1/IO/vtkFFMPEGWriter.cxx
+@@ -123,7 +123,7 @@ int vtkFFMPEGWriterInternal::Start()
+ }
+
+ //choose avi media file format
+- this->avOutputFormat = guess_format("avi", NULL, NULL);
++ this->avOutputFormat = av_guess_format("avi", NULL, NULL);
+ if (!this->avOutputFormat)
+ {
+ vtkGenericWarningMacro (<< "Could not open the avi media file format.");
+@@ -150,7 +150,7 @@ int vtkFFMPEGWriterInternal::Start()
+ //Set up the codec.
+ AVCodecContext *c = this->avStream->codec;
+ c->codec_id = (CodecID)this->avOutputFormat->video_codec;
+- c->codec_type = CODEC_TYPE_VIDEO;
++ c->codec_type = AVMEDIA_TYPE_VIDEO;
+ c->width = this->Dim[0];
+ c->height = this->Dim[1];
+ c->pix_fmt = PIX_FMT_YUVJ420P;
+@@ -329,7 +329,7 @@ int vtkFFMPEGWriterInternal::Write(vtkIm
+ pkt.stream_index = this->avStream->index;
+ if (cc->coded_frame->key_frame) //treat keyframes well
+ {
+- pkt.flags |= PKT_FLAG_KEY;
++ pkt.flags |= AV_PKT_FLAG_KEY;
+ }
+ pkt.duration = 0; //presentation duration in time_base units or 0 if NA
+ pkt.pos = -1; //byte position in stream or -1 if NA
diff --git a/community-testing/vtk/fix-boost-graph-api-changes.diff b/community-testing/vtk/fix-boost-graph-api-changes.diff
new file mode 100644
index 000000000..2162e7a28
--- /dev/null
+++ b/community-testing/vtk/fix-boost-graph-api-changes.diff
@@ -0,0 +1,42 @@
+commit d3ecc2c459dd1df937fc97887581ace1036da533
+Author: Marcus D. Hanwell <marcus.hanwell@kitware.com>
+Date: Tue Dec 13 15:36:06 2011 -0500
+
+ BUG: 12772 fixes for change in Boost graph API
+
+ This fixes bug 12772, where an API change in Boost was causing
+ compilation failures using Boost 1.38. Thanks to Orion Poplawski for
+ reporting the issue and posting the patch.
+
+ Change-Id: I491b0f1650c0be19319533306eb10597dc96fa06
+
+diff --git a/Infovis/vtkBoostBreadthFirstSearchTree.cxx b/Infovis/vtkBoostBreadthFirstSearchTree.cxx
+index c789f6b..cf7cd47 100644
+--- a/Infovis/vtkBoostBreadthFirstSearchTree.cxx
++++ b/Infovis/vtkBoostBreadthFirstSearchTree.cxx
+@@ -47,6 +47,15 @@ using namespace boost;
+ vtkStandardNewMacro(vtkBoostBreadthFirstSearchTree);
+
+
++namespace {
++ vtkIdType unwrap_edge_id(vtkEdgeType const &e) {
++ return e.Id;
++ }
++ vtkIdType unwrap_edge_id(boost::detail::reverse_graph_edge_descriptor<vtkEdgeType> const &e) {
++ return e.underlying_desc.Id;
++ }
++}
++
+ // Redefine the bfs visitor, the only visitor we
+ // are using is the tree_edge visitor.
+ template <typename IdMap>
+@@ -95,7 +104,8 @@ public:
+
+ // Copy the vertex and edge data from the graph to the tree.
+ tree->GetVertexData()->CopyData(graph->GetVertexData(), v, tree_v);
+- tree->GetEdgeData()->CopyData(graph->GetEdgeData(), e.Id, tree_e.Id);
++ tree->GetEdgeData()->CopyData(graph->GetEdgeData(),
++ unwrap_edge_id(e), tree_e.Id);
+ }
+
+ private:
diff --git a/community-testing/vtk/fixkernelversioncheck.diff b/community-testing/vtk/fixkernelversioncheck.diff
new file mode 100644
index 000000000..165f07366
--- /dev/null
+++ b/community-testing/vtk/fixkernelversioncheck.diff
@@ -0,0 +1,19 @@
+--- a/Utilities/vtkhdf5/ConfigureChecks.cmake
++++ b/Utilities/vtkhdf5/ConfigureChecks.cmake
+@@ -75,14 +75,14 @@ IF (HDF5_WANT_DCONV_EXCEPTION)
+ ENDIF (HDF5_WANT_DCONV_EXCEPTION)
+
+ SET (LINUX_LFS 0)
+-IF (CMAKE_SYSTEM MATCHES "Linux-([3-9]\\.[0-9]|2\\.[4-9])\\.")
++IF (CMAKE_SYSTEM MATCHES "Linux")
+ # Linux Specific flags
+ ADD_DEFINITIONS (-D_POSIX_SOURCE -D_BSD_SOURCE)
+ OPTION (HDF5_ENABLE_LARGE_FILE "Enable support for large (64-bit) files on Linux." ON)
+ IF (HDF5_ENABLE_LARGE_FILE)
+ SET (LARGEFILE 1)
+ ENDIF (HDF5_ENABLE_LARGE_FILE)
+-ENDIF (CMAKE_SYSTEM MATCHES "Linux-([3-9]\\.[0-9]|2\\.[4-9])\\.")
++ENDIF (CMAKE_SYSTEM MATCHES "Linux")
+ SET (HDF5_EXTRA_FLAGS)
+ IF (LINUX_LFS)
+ SET (HDF5_EXTRA_FLAGS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE)
diff --git a/community-testing/wkhtmltopdf/PKGBUILD b/community-testing/wkhtmltopdf/PKGBUILD
new file mode 100644
index 000000000..5e1a0f032
--- /dev/null
+++ b/community-testing/wkhtmltopdf/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 60916 2011-12-19 18:09:41Z andrea $
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+
+pkgname=wkhtmltopdf
+pkgver=0.9.9
+pkgrel=2
+pkgdesc="Simple shell utility to convert html to pdf using the webkit rendering engine, and qt"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/wkhtmltopdf/"
+license=('GPL3')
+depends=('qtwebkit')
+optdepends=('xorg-server: wkhtmltopdf needs X or Xvfb to operate')
+source=(http://wkhtmltopdf.googlecode.com/files/$pkgname-$pkgver.tar.bz2)
+sha1sums=('41f598c0103326e7c13101391447b0284b4ba3cb')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ qmake wkhtmltopdf.pro
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make INSTALL_ROOT="$pkgdir/usr" install
+
+ # Generate and install man page
+ install -d "$pkgdir/usr/share/man/man1"
+ ./wkhtmltopdf --manpage >"$pkgdir/usr/share/man/man1/wkhtmltopdf.1"
+}
diff --git a/community/arm-wince-cegcc-binutils/PKGBUILD b/community/arm-wince-cegcc-binutils/PKGBUILD
new file mode 100644
index 000000000..491004df4
--- /dev/null
+++ b/community/arm-wince-cegcc-binutils/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 20572 2010-07-09 07:26:42Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=cross-arm-wince-cegcc-binutils
+pkgver=0.59.1
+pkgrel=1
+_prefix=/opt/cegcc
+pkgdesc="CE GCC bundle - cross compilation tools for WinCE"
+arch=(i686 x86_64)
+license=(GPL)
+options=(!libtool)
+url="http://cegcc.sf.net"
+depends=(zlib)
+groups=('cegcc')
+source=(http://arch.pp.ru/~sergej/dl/cegcc-$pkgver.tar.bz2)
+md5sums=('5e3c1098abdf8e5db2a3518ee3578b4b')
+
+build() {
+ cd $srcdir/cegcc/src/binutils
+
+ unset CFLAGS
+ unset LDFLAGS
+
+ [ $NOEXTRACT -eq 1 ] || ./configure \
+ --prefix=${_prefix} \
+ --exec-prefix=${_prefix} \
+ --bindir=${_prefix}/bin \
+ --target=arm-wince-cegcc \
+ --disable-nls \
+ --includedir=${_prefix}/include || return 1
+
+ make || (cd etc && make) && make || return 1
+ make DESTDIR=$pkgdir install || return 1
+ rm -rf $pkgdir/opt/cegcc/info
+}
diff --git a/community/dwm/PKGBUILD b/community/dwm/PKGBUILD
index 0c5b1a448..b2fceeb60 100644
--- a/community/dwm/PKGBUILD
+++ b/community/dwm/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 54496 2011-08-19 09:22:43Z spupykin $
+# $Id: PKGBUILD 60970 2011-12-19 21:33:58Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Dag Odenhall <dag.odenhall@gmail.com>
# Contributor: Grigorios Bouzakis <grbzks@gmail.com>
pkgname=dwm
-pkgver=5.9
-pkgrel=2
+pkgver=6.0
+pkgrel=1
pkgdesc="A dynamic window manager for X"
url="http://dwm.suckless.org"
arch=('i686' 'x86_64')
@@ -16,8 +16,8 @@ install=dwm.install
source=(http://dl.suckless.org/dwm/dwm-$pkgver.tar.gz
config.h
dwm.desktop)
-md5sums=('2799f885c05817ca112d521bb247f797'
- 'f0ba59bf77a53e3a2fc8596740ee5cb8'
+md5sums=('8bb00d4142259beb11e13473b81c0857'
+ '2453e037f46449774ec8afab49b4f1a2'
'939f403a71b6e85261d09fc3412269ee')
build() {
diff --git a/community/dwm/config.h b/community/dwm/config.h
index 91cf4391d..77ff35805 100644
--- a/community/dwm/config.h
+++ b/community/dwm/config.h
@@ -2,12 +2,12 @@
/* appearance */
static const char font[] = "-*-terminus-medium-r-*-*-16-*-*-*-*-*-*-*";
-static const char normbordercolor[] = "#cccccc";
-static const char normbgcolor[] = "#cccccc";
-static const char normfgcolor[] = "#000000";
-static const char selbordercolor[] = "#0066ff";
-static const char selbgcolor[] = "#0066ff";
-static const char selfgcolor[] = "#ffffff";
+static const char normbordercolor[] = "#444444";
+static const char normbgcolor[] = "#222222";
+static const char normfgcolor[] = "#bbbbbb";
+static const char selbordercolor[] = "#005577";
+static const char selbgcolor[] = "#005577";
+static const char selfgcolor[] = "#eeeeee";
static const unsigned int borderpx = 1; /* border pixel of windows */
static const unsigned int snap = 32; /* snap pixel */
static const Bool showbar = True; /* False means no bar */
@@ -24,6 +24,7 @@ static const Rule rules[] = {
/* layout(s) */
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */
+static const int nmaster = 1; /* number of clients in master area */
static const Bool resizehints = True; /* True means respect size hints in tiled resizals */
static const Layout layouts[] = {
@@ -55,6 +56,8 @@ static Key keys[] = {
{ MODKEY, XK_b, togglebar, {0} },
{ MODKEY, XK_j, focusstack, {.i = +1 } },
{ MODKEY, XK_k, focusstack, {.i = -1 } },
+ { MODKEY, XK_i, incnmaster, {.i = +1 } },
+ { MODKEY, XK_d, incnmaster, {.i = -1 } },
{ MODKEY, XK_h, setmfact, {.f = -0.05} },
{ MODKEY, XK_l, setmfact, {.f = +0.05} },
{ MODKEY, XK_Return, zoom, {0} },
diff --git a/community/gnote/PKGBUILD b/community/gnote/PKGBUILD
index 96d40fda7..fff5fe176 100644
--- a/community/gnote/PKGBUILD
+++ b/community/gnote/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 57195 2011-10-23 18:34:02Z ibiru $
+# $Id: PKGBUILD 60974 2011-12-19 21:58:11Z ibiru $
# Maintainer: Ionut Biru <ibiru@archlinux.org>
# Contributor: uastasi <uastasi@archlinux.us>
pkgname=gnote
-pkgver=0.8.1
+pkgver=0.8.2
pkgrel=1
pkgdesc="A note taking application."
arch=('i686' 'x86_64')
@@ -12,11 +12,11 @@ depends=('gtkmm3' 'libxslt' 'hicolor-icon-theme' 'desktop-file-utils' 'dconf')
makedepends=('intltool' 'gnome-doc-utils' 'boost')
options=('!libtool')
install=gnote.install
-source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/0.8/${pkgname}-${pkgver}.tar.xz)
-sha256sums=('d20ad13814e016679e74aa51e2619000bd4468c13d219c760daa633e398bea43')
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/0.8/$pkgname-$pkgver.tar.xz)
+sha256sums=('7d42b16d6d6751c88f029aff78db7ed1560f2cb727e6cb3f3ef09711e2381992')
build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
+ cd "$srcdir/$pkgname-$pkgver"
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
@@ -28,6 +28,6 @@ build() {
}
package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
}
diff --git a/community/lilypond/PKGBUILD b/community/lilypond/PKGBUILD
index 027d1b4a9..8d2139422 100644
--- a/community/lilypond/PKGBUILD
+++ b/community/lilypond/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 60441 2011-12-14 09:14:47Z spupykin $
+# $Id: PKGBUILD 60869 2011-12-19 16:37:27Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Geoffroy Carrier <geoffroy@archlinux.org>
# Contributor: William Rea <sillywilly@gmail.com>
@@ -6,7 +6,7 @@
pkgname=lilypond
pkgver=2.14.2
-pkgrel=2
+pkgrel=3
pkgdesc="An automated music engraving system"
arch=('i686' 'x86_64')
url="http://lilypond.org"
@@ -17,10 +17,8 @@ makedepends=('flex' 'bison' 'gettext' 'mftrace' 'texinfo' 'fontforge' 't1utils'
options=('emptydirs')
install=lilypond.install
source=(http://download.linuxaudio.org/lilypond/sources/v2.14/$pkgname-$pkgver.tar.gz
- http://arch.p5n.pp.ru/~sergej/dl/lilypond-fonts.tar.bz2
texlive-workaround.patch)
md5sums=('4053a19e03181021893981280feb9aaa'
- '2a0e18e5de17d740ada3861bf4d787ea'
'ff32863f3eed67ac744e50bc4fc67a87')
build() {
@@ -42,5 +40,4 @@ build() {
package() {
cd "$srcdir/$pkgname-$pkgver"
make DESTDIR="$pkgdir" install
-# cp -a $srcdir/lilypond-fonts/usr/share/lilypond/current/fonts/* $pkgdir/usr/share/lilypond/$pkgver/fonts/
}
diff --git a/community/miniupnpc/PKGBUILD b/community/miniupnpc/PKGBUILD
new file mode 100644
index 000000000..0dd8bdea3
--- /dev/null
+++ b/community/miniupnpc/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 60858 2011-12-19 15:16:56Z tredaelli $
+# Maintainer: Timothy Redaelli <timothy.redaelli@gmail.com>
+# Contributor: Florian Loitsch <archlinux@florian.loitsch.com>
+pkgname=miniupnpc
+pkgver=1.6
+pkgrel=2
+pkgdesc="A small UPnP client library/tool to access Internet Gateway Devices"
+arch=('i686' 'x86_64')
+url="http://miniupnp.free.fr"
+license=('BSD')
+depends=('sh')
+source=("http://miniupnp.free.fr/files/$pkgname-$pkgver.tar.gz")
+md5sums=('88055f2d4a061cfd4cfe25a9eae22f67')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make PREFIX="$pkgdir/" install
+ install -Dm644 man3/miniupnpc.3 "${pkgdir}"/usr/share/man/man3/miniupnpc.3
+ install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/nginx/PKGBUILD b/community/nginx/PKGBUILD
index 26631fb70..84b951d14 100644
--- a/community/nginx/PKGBUILD
+++ b/community/nginx/PKGBUILD
@@ -1,17 +1,10 @@
-# $Id: PKGBUILD 58582 2011-11-15 20:13:02Z spupykin $
+# $Id: PKGBUILD 60863 2011-12-19 16:15:47Z bpiotrowski $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Bartłomiej Piotrowski <barthalion@gmal.com>
# Contributor: Miroslaw Szot <mss@czlug.icis.pcz.pl>
-_doc_root=/usr/share/nginx/http
-_server_root=/etc/nginx
-_conf_path=${_server_root}/conf
-_tmp_path=/var/spool/nginx
-_log_path=/var/log/nginx
-_user=http
-_group=http
-
pkgname=nginx
-pkgver=1.0.10
+pkgver=1.0.11
pkgrel=1
pkgdesc="lightweight HTTP server and IMAP/POP3 proxy server"
arch=('i686' 'x86_64')
@@ -21,65 +14,72 @@ optdepends=('passenger')
url="http://nginx.org"
license=('custom')
backup=("etc/nginx/conf/fastcgi.conf"
- "etc/nginx/conf/fastcgi_params"
- "etc/nginx/conf/koi-win"
- "etc/nginx/conf/koi-utf"
- "etc/nginx/conf/mime.types"
- "etc/nginx/conf/nginx.conf"
- "etc/nginx/conf/scgi_params"
- "etc/nginx/conf/uwsgi_params"
- "etc/nginx/conf/win-utf"
- "etc/logrotate.d/nginx"
- "etc/conf.d/nginx")
-changelog=changelog
+ "etc/nginx/conf/fastcgi_params"
+ "etc/nginx/conf/koi-win"
+ "etc/nginx/conf/koi-utf"
+ "etc/nginx/conf/mime.types"
+ "etc/nginx/conf/nginx.conf"
+ "etc/nginx/conf/scgi_params"
+ "etc/nginx/conf/uwsgi_params"
+ "etc/nginx/conf/win-utf"
+ "etc/logrotate.d/nginx"
+ "etc/conf.d/nginx")
source=(http://nginx.org/download/nginx-$pkgver.tar.gz
- nginx)
-md5sums=('930b297b00fa1018fb0a1dd3e6b7e17e'
+ nginx)
+md5sums=('a41a01d7cd46e13ea926d7c9ca283a95'
'0e8032d3ba26c3276e8c7c30588d375f')
+_doc_root=/usr/share/nginx/http
+_server_root=/etc/nginx
+_conf_path=${_server_root}/conf
+_tmp_path=/var/spool/nginx
+_log_path=/var/log/nginx
+_user=http
+_group=http
+
build() {
- cd $srcdir/nginx-${pkgver}
+ cd "$srcdir/nginx-${pkgver}"
+
./configure \
- --prefix=${_server_root} \
- --sbin-path=/usr/sbin/nginx \
- --pid-path=/var/run/nginx.pid \
- --lock-path=/var/lock/nginx.lock \
- --http-client-body-temp-path=${_tmp_path}/client_body_temp \
- --http-proxy-temp-path=${_tmp_path}/proxy_temp \
- --http-fastcgi-temp-path=${_tmp_path}/fastcgi_temp \
- --http-log-path=${_log_path}/access.log \
- --error-log-path=${_log_path}/error.log \
- --user=${_user} --group=${_group} \
- --with-imap --with-imap_ssl_module --with-http_ssl_module \
- --with-http_stub_status_module \
- --with-http_dav_module \
- --with-http_gzip_static_module \
- --with-ipv6 \
- --add-module=/usr/lib/passenger/ext/nginx \
- --http-scgi-temp-path=${_tmp_path} \
- --http-uwsgi-temp-path=${_tmp_path}
- #--with-http_mp4_module \
- #--with-http_realip_module \
- #--with-http_addition_module \
- #--with-http_xslt_module \
- #--with-http_image_filter_module \
- #--with-http_geoip_module \
- #--with-http_sub_module \
- #--with-http_flv_module \
- #--with-http_gzip_static_module \
- #--with-http_random_index_module \
- #--with-http_secure_link_module \
- #--with-http_degradation_module \
- #--with-http_perl_module \
+ --prefix=${_server_root} \
+ --sbin-path=/usr/sbin/nginx \
+ --pid-path=/var/run/nginx.pid \
+ --lock-path=/var/lock/nginx.lock \
+ --http-client-body-temp-path=${_tmp_path}/client_body_temp \
+ --http-proxy-temp-path=${_tmp_path}/proxy_temp \
+ --http-fastcgi-temp-path=${_tmp_path}/fastcgi_temp \
+ --http-log-path=${_log_path}/access.log \
+ --error-log-path=${_log_path}/error.log \
+ --user=${_user} --group=${_group} \
+ --with-imap --with-imap_ssl_module --with-http_ssl_module \
+ --with-http_stub_status_module \
+ --with-http_dav_module \
+ --with-http_gzip_static_module \
+ --with-ipv6 \
+ --add-module=/usr/lib/passenger/ext/nginx \
+ --http-scgi-temp-path=${_tmp_path} \
+ --http-uwsgi-temp-path=${_tmp_path}
+ #--with-http_mp4_module \
+ #--with-http_realip_module \
+ #--with-http_addition_module \
+ #--with-http_xslt_module \
+ #--with-http_image_filter_module \
+ #--with-http_geoip_module \
+ #--with-http_sub_module \
+ #--with-http_flv_module \
+ #--with-http_random_index_module \
+ #--with-http_secure_link_module \
+ #--with-http_degradation_module \
+ #--with-http_perl_module \
make
}
package() {
- cd $srcdir/nginx-${pkgver}
- make DESTDIR=$pkgdir install
+ cd "$srcdir/nginx-${pkgver}"
+ make DESTDIR="$pkgdir" install
- install -d $pkgdir/etc/logrotate.d/
+ install -d "$pkgdir"/etc/logrotate.d/
cat <<EOF > $pkgdir/etc/logrotate.d/nginx
$_log_path/*log {
create 640 http log
diff --git a/community/pigz/PKGBUILD b/community/pigz/PKGBUILD
index de0dc48f4..b379fe2ea 100755
--- a/community/pigz/PKGBUILD
+++ b/community/pigz/PKGBUILD
@@ -1,33 +1,38 @@
+# Maintainer: Bartłomiej Piotrowski <barthalion@gmail.com>
# Contributor: Laszlo Papp <djszapi2@gmail.com>
-# Maintainer:Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
pkgname=pigz
-pkgver=2.1.6
-pkgrel=2
+pkgver=2.1.7
+pkgrel=1
pkgdesc="Parallel implementation of the gzip file compressor"
arch=('i686' 'x86_64')
url="http://www.zlib.net/pigz/"
license=('custom')
depends=('zlib')
source=(http://www.zlib.net/$pkgname/$pkgname-$pkgver.tar.gz)
-md5sums=('cbe9030c4be3d0ef2438ee5f8b169ca4')
+md5sums=('a09e1097fdc05ac0fff763bdb4d2d5e4')
build() {
- cd ${srcdir}/$pkgname-$pkgver
+ cd "${srcdir}/$pkgname"
sed -i s/"CFLAGS=".*/"CFLAGS=${CFLAGS}"/g Makefile
make
}
+
package() {
- cd ${srcdir}/$pkgname-$pkgver
- install -Dm755 ${srcdir}/${pkgname}-${pkgver}/${pkgname} \
- ${pkgdir}/usr/bin/${pkgname}
- pushd ${pkgdir}/usr/bin
- ln -s pigz unpigz
+ cd "${srcdir}/$pkgname"
+
+ install -Dm755 "${srcdir}"/${pkgname}/${pkgname} \
+ "${pkgdir}"/usr/bin/${pkgname}
+
+ pushd "${pkgdir}"/usr/bin
+ ln -s pigz unpigz
popd
- install -Dm644 ${srcdir}/${pkgname}-${pkgver}/${pkgname}.1 \
- ${pkgdir}/usr/share/man/man1/${pkgname}.1
- install -Dm644 ${srcdir}/${pkgname}-${pkgver}/${pkgname}.pdf \
- ${pkgdir}/usr/share/doc/${pkgname}/${pkgname}.pdf
- install -Dm644 ${srcdir}/${pkgname}-${pkgver}/README \
- ${pkgdir}/usr/share/licenses/${pkgname}/README
+
+ install -Dm644 "${srcdir}"/${pkgname}/${pkgname}.1 \
+ "${pkgdir}"/usr/share/man/man1/${pkgname}.1
+ install -Dm644 "${srcdir}"/${pkgname}/${pkgname}.pdf \
+ "${pkgdir}"/usr/share/doc/${pkgname}/${pkgname}.pdf
+ install -Dm644 "${srcdir}"/${pkgname}/README \
+ "${pkgdir}"/usr/share/licenses/${pkgname}/README
}
diff --git a/community/qsynergy/PKGBUILD b/community/qsynergy/PKGBUILD
new file mode 100644
index 000000000..ce7985113
--- /dev/null
+++ b/community/qsynergy/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 60949 2011-12-19 19:01:11Z tredaelli $
+# Maintainer: Timothy Redaelli <timothy.redaelli@gmail.com>
+# Contributor: mutlu_inek <mutlu_inek@yahoo.de>
+
+pkgname=qsynergy
+pkgver=0.9.1
+pkgrel=1
+pkgdesc="Qt gui for Synergy which lets you remotely control other computers."
+url="http://www.volker-lanz.de/en/software/qsynergy/"
+license=(GPL)
+arch=('i686' 'x86_64')
+depends=('qt' 'synergy')
+source=("http://sourceforge.net/projects/$pkgname/files/$pkgver/$pkgname-$pkgver.tar.gz")
+md5sums=('17d8989668016185b859332aacf9e7df')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ qmake
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ install -Dm755 "$srcdir"/$pkgname-$pkgver/qsynergy "$pkgdir"/usr/bin/qsynergy
+ install -Dm644 dist/debian/qsynergy.desktop "$pkgdir"/usr/share/applications/qsynergy.desktop
+ install -Dm644 dist/qsynergy.xpm "$pkgdir"/usr/share/pixmaps/qsynergy.xpm
+}
diff --git a/community/tinc/PKGBUILD b/community/tinc/PKGBUILD
new file mode 100644
index 000000000..b9d82940a
--- /dev/null
+++ b/community/tinc/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 60867 2011-12-19 16:25:32Z tredaelli $
+# Maintainer: Timothy Redaelli <timothy.redaelli@gmail.com>
+# Contributor: helios
+# Contributor: Lothar Gesslein
+
+pkgname=tinc
+pkgver=1.0.16
+pkgrel=1
+pkgdesc="VPN (Virtual Private Network) daemon"
+arch=('i686' 'x86_64')
+url="http://www.tinc-vpn.org/"
+license=('GPL')
+depends=('lzo2' 'openssl')
+backup=(etc/conf.d/tincd.conf)
+install=tinc.install
+source=("http://www.tinc-vpn.org/packages/tinc-$pkgver.tar.gz"
+ "tincd.rc" "tincd.conf")
+md5sums=('f1c7ed94878725fb2cf4efb02bf160da'
+ '64bb53748d9051255f243003f0d511f5'
+ '7c0276d4812cc5d3cc18142562a3aa82')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+ install -dm755 "$pkgdir"/usr/share/tinc/examples
+ tar xozvf doc/sample-config.tar.gz -C $pkgdir/usr/share/tinc/examples
+ find "$pkgdir"/usr/share/tinc/examples -type f -exec chmod 644 {} +
+ find "$pkgdir"/usr/share/tinc/examples -type d -exec chmod 755 {} +
+
+ install -Dm755 "$srcdir/tincd.rc" "$pkgdir/etc/rc.d/tincd"
+ install -Dm644 "$srcdir/tincd.conf" "$pkgdir/etc/conf.d/tincd.conf"
+}
diff --git a/community/tinc/tinc.install b/community/tinc/tinc.install
new file mode 100644
index 000000000..1b804fd8d
--- /dev/null
+++ b/community/tinc/tinc.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(tinc.info.gz)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/community/tinc/tincd.conf b/community/tinc/tincd.conf
new file mode 100644
index 000000000..6e0902bbb
--- /dev/null
+++ b/community/tinc/tincd.conf
@@ -0,0 +1,5 @@
+# Extra options to be passed to tincd.
+# TINCD_EXTRAOPTS="-d"
+
+# Arrays containing all names of the networks to be started from rc.d.
+NETNAMES=()
diff --git a/community/tinc/tincd.rc b/community/tinc/tincd.rc
new file mode 100644
index 000000000..48c132f25
--- /dev/null
+++ b/community/tinc/tincd.rc
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+daemon_name=tincd
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/$daemon_name.conf
+
+case "$1" in
+ start)
+ for net in "${NETNAMES[@]}"; do
+ stat_busy "Starting ${daemon_name}"
+ /usr/sbin/tincd -n "${net}" $TINCD_EXTRAOPTS &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon ${daemon_name}
+ stat_done
+ fi
+ done
+ ;;
+ stop)
+ stat_busy "Stopping ${daemon_name}"
+ for net in "${NETNAMES[@]}"; do
+ /usr/sbin/tincd -k -n "${net}" &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon ${daemon_name}
+ stat_done
+ fi
+ done
+ ;;
+ restart)
+ "$0" stop
+ sleep 5
+ "$0" start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/unbound/PKGBUILD b/community/unbound/PKGBUILD
index 00e8f4774..8f0ff6668 100644
--- a/community/unbound/PKGBUILD
+++ b/community/unbound/PKGBUILD
@@ -1,12 +1,12 @@
-# $Id: PKGBUILD 57055 2011-10-19 13:43:09Z bisson $
+# $Id: PKGBUILD 60976 2011-12-19 22:59:53Z bisson $
# Maintainer: Gaetan Bisson <bisson@archlinux.org>
# Contributor: Hisato Tatekura <hisato_tatekura@excentrics.net>
# Contributor: Massimiliano Torromeo <massimiliano DOT torromeo AT google mail service>
pkgname=unbound
-pkgver=1.4.13
-pkgrel=2
+pkgver=1.4.14
+pkgrel=1
pkgdesc='Validating, recursive, and caching DNS resolver'
arch=('i686' 'x86_64')
url='http://unbound.net/'
@@ -19,7 +19,7 @@ backup=('etc/unbound/unbound.conf')
source=("http://unbound.net/downloads/${pkgname}-${pkgver}.tar.gz"
'unbound.conf'
'rc.d')
-sha1sums=('834ccfd1cb41a44f53b33f8338a8f9cc68febaf7'
+sha1sums=('1435029abe63d0106213acb9f173b885183cf1d7'
'5d473ec2943fd85367cdb653fcd58e186f07383f'
'dc96e772f467b32555df21d16fdb15e98194c228')
@@ -27,6 +27,7 @@ install=install
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
+
./configure \
--prefix=/usr \
--sysconfdir=/etc \
@@ -34,13 +35,16 @@ build() {
--enable-static=no \
--disable-rpath \
--with-conf-file=/etc/unbound/unbound.conf \
- --with-pidfile=/var/run/unbound.pid
+ --with-pidfile=/var/run/unbound.pid \
+
make
}
package() {
cd "${srcdir}/${pkgname}-${pkgver}"
+
make DESTDIR="${pkgdir}" install
+
install -D -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
install -D -m755 ../rc.d "${pkgdir}/etc/rc.d/${pkgname}"
install -D -m644 ../unbound.conf "${pkgdir}/etc/unbound/unbound.conf"
diff --git a/community/virtualbox-modules/PKGBUILD b/community/virtualbox-modules/PKGBUILD
index 694a0c31c..b4fa346e8 100644
--- a/community/virtualbox-modules/PKGBUILD
+++ b/community/virtualbox-modules/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 60393 2011-12-13 09:32:43Z ibiru $
+# $Id: PKGBUILD 60898 2011-12-19 18:08:36Z ibiru $
#Maintainer: Ionut Biru <ibiru@archlinux.org>
pkgbase=virtualbox-modules
pkgname=('virtualbox-modules' 'virtualbox-archlinux-modules')
-pkgver=4.1.6
-pkgrel=3
+pkgver=4.1.8
+pkgrel=1
arch=('i686' 'x86_64')
url='http://virtualbox.org'
license=('GPL')
@@ -12,7 +12,7 @@ makedepends=('libstdc++5' 'bin86' 'dev86' 'iasl' 'libxslt' 'libxml2' 'libpng' 'l
[[ $CARCH == "x86_64" ]] && makedepends=("${makedepends[@]}" 'gcc-multilib' 'lib32-glibc')
source=(http://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${pkgver}.tar.bz2
LocalConfig.kmk 60-vboxguest.rules)
-md5sums=('89b979d1b817242c7cdcb489898f166a'
+md5sums=('2092bba46baa62fab5520d67dee2ece8'
'4c88bd122677a35f68abd76eb01b378b'
'ed1341881437455d9735875ddf455fbe')
diff --git a/community/virtualbox/PKGBUILD b/community/virtualbox/PKGBUILD
index 9aaf68c7a..7339633aa 100644
--- a/community/virtualbox/PKGBUILD
+++ b/community/virtualbox/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 60048 2011-12-03 18:39:55Z ibiru $
+# $Id: PKGBUILD 60899 2011-12-19 18:08:37Z ibiru $
#Maintainer: Ionut Biru <ibiru@archlinux.org>
pkgbase=virtualbox
pkgname=('virtualbox' 'virtualbox-archlinux-additions' 'virtualbox-sdk' 'virtualbox-source')
-pkgver=4.1.6
-pkgrel=4
+pkgver=4.1.8
+pkgrel=1
arch=('i686' 'x86_64')
url='http://virtualbox.org'
license=('GPL' 'custom')
@@ -178,12 +178,12 @@ package_virtualbox-archlinux-additions(){
# install sample config
install -D -m644 "${srcdir}/vbox-service.conf" "${pkgdir}/etc/conf.d/vbox-service"
}
-md5sums=('89b979d1b817242c7cdcb489898f166a'
- 'af534f713993eb077df26ff9a44fb080'
+md5sums=('2092bba46baa62fab5520d67dee2ece8'
+ '2f6b36ff143eb8da55ee92676708e757'
'5f85710e0b8606de967716ded7b2d351'
'6ab2455c391d8cc005e2f4461ae26a3b'
'78ffa67ff131680f1d2b6f06d4325c5b'
- 'cd8a53d0bfb26632d5b4d4e91a2b91d2'
+ '67688bff176d3c6fac5664dc282fea52'
'97e193f050574dd272a38e5ee5ebe62b'
'3c08ad30b89add47d3f45121200a5360'
'e7416331d0bc331f3b5aae3e5d104642')
diff --git a/community/virtualbox/vboxbuild b/community/virtualbox/vboxbuild
index c74004199..e6fb94edd 100755
--- a/community/virtualbox/vboxbuild
+++ b/community/virtualbox/vboxbuild
@@ -32,11 +32,11 @@ fi
for kdir in /lib/modules/[2-3]*; do
if [[ ! -d $kdir/kernel ]]; then
# found a stale kernel
- mods=("$kdir/misc/vbox"{drv,netadp,netflt,pci}.ko*)
+ mods=("$kdir/extramodules"{drv,netadp,netflt,pci}.ko*)
if (( ${#mods[@]} )); then
stat_busy "Removing all old VirtualBox kernel modules"
if rm -f "${mods[@]}" &&
- rmdir -p --ignore-fail-on-non-empty "$p/misc/" 2>/dev/null; then
+ rmdir -p --ignore-fail-on-non-empty "$kdir/extramodules" 2>/dev/null; then
stat_done
else
stat_fail
@@ -74,7 +74,7 @@ for kernver; do
stat_fail
fi
done
- gzip -9 "$MODULE_DIR"/*.ko
+ gzip -f9 "$MODULE_DIR"/*.ko
depmod "$kernver"
stat_done
done
diff --git a/community/yagf/PKGBUILD b/community/yagf/PKGBUILD
index cb397f498..95c3b42c7 100644
--- a/community/yagf/PKGBUILD
+++ b/community/yagf/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 59071 2011-11-21 09:04:57Z spupykin $
+# $Id: PKGBUILD 60972 2011-12-19 21:35:06Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: das-ich <das-ich@yandex.ru>
pkgname=yagf
-pkgver=0.8.7
+pkgver=0.8.9
pkgrel=1
pkgdesc="QT4-based GUI for Cuneiform OCR"
arch=(i686 x86_64)
@@ -14,7 +14,7 @@ optdepends=('xsane: acquire images from a scanner into YAGF directly')
makedepends=('cmake')
install=yagf.install
source=(http://symmetrica.net/cuneiform-linux/${pkgname}-${pkgver}.tar.gz)
-md5sums=('e77716d1d96a6c120b340539af448195')
+md5sums=('1ccb66b978162366fb608dbc31b4a946')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
diff --git a/community/yajl/PKGBUILD b/community/yajl/PKGBUILD
index a333a7cef..8eb588368 100644
--- a/community/yajl/PKGBUILD
+++ b/community/yajl/PKGBUILD
@@ -4,7 +4,7 @@
# Contributor: Andrej Gelenberg <andrej.gelenberg@udo.edu>
pkgname=yajl
-pkgver=2.0.3
+pkgver=2.0.4
pkgrel=1
pkgdesc='Yet Another JSON Library.'
arch=('i686' 'x86_64')
@@ -31,3 +31,4 @@ package() {
install -Dm644 COPYING "$pkgdir/usr/share/licenses/${pkgname}/LICENSE"
}
+md5sums=('ee6208e697c43dcccf798ce80d370379')
diff --git a/community/zeromq/PKGBUILD b/community/zeromq/PKGBUILD
index bb7239179..2d1a36b8a 100644
--- a/community/zeromq/PKGBUILD
+++ b/community/zeromq/PKGBUILD
@@ -1,7 +1,7 @@
-# $Id: PKGBUILD 56540 2011-10-08 03:04:25Z kkeen $
+# $Id: PKGBUILD 60981 2011-12-20 04:27:40Z kkeen $
# Maintainer: Kyle Keen <keenerd@gmail.com>
pkgname=zeromq
-pkgver=2.1.10
+pkgver=2.1.11
pkgrel=1
pkgdesc="Fast messaging system built on sockets, C and C++ bindings. aka 0MQ, ZMQ."
arch=('i686' 'x86_64')
@@ -10,7 +10,7 @@ license=('LGPL')
depends=('gcc-libs' 'util-linux')
makedepends=()
source=(http://download.zeromq.org/$pkgname-$pkgver.tar.gz)
-md5sums=('f034096095fa76041166a8861e9d71b7')
+md5sums=('f0f9fd62acb1f0869d7aa80379b1f6b7')
build() {
cd "$srcdir/$pkgname-$pkgver"
diff --git a/core/openldap/PKGBUILD b/core/openldap/PKGBUILD
index 1d5cc207d..c8842793d 100644
--- a/core/openldap/PKGBUILD
+++ b/core/openldap/PKGBUILD
@@ -1,20 +1,20 @@
-# $Id: PKGBUILD 142181 2011-11-05 20:47:37Z eric $
+# $Id: PKGBUILD 145244 2011-12-19 22:50:32Z eric $
# Maintainer:
pkgbase=openldap
pkgname=('libldap' 'openldap')
-pkgver=2.4.26
-pkgrel=5
+pkgver=2.4.28
+pkgrel=1
arch=('i686' 'x86_64')
url="http://www.openldap.org/"
license=('custom')
-makedepends=('libfetch' 'libltdl' 'libsasl')
+makedepends=('libfetch' 'libltdl' 'libsasl' 'e2fsprogs' 'util-linux')
source=(ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/${pkgbase}-${pkgver}.tgz
slapd slapd.default ntlm.patch)
-md5sums=('f36f3086031dd56ae94f722ffae8df5e'
- '40fdbdd6c343019cbadf4eb26c6189f2'
- '6be69f6b7e522cb64cce8703da81ed32'
- '4258ddbef923d1f29f2843bc050f8c56')
+sha1sums=('d888beae1723002a5a2ff5509d3040df40885774'
+ 'bd1ea19256d3d467f1f803e0f4046ef50f17628f'
+ 'd89b8a533045123f1ab46c9c430cf132d58a20a4'
+ 'e4afd9f1c810ef4c4cd8fe1101dfe5887f2b7eef')
build() {
cd "${srcdir}"/${pkgbase}-${pkgver}
@@ -43,7 +43,7 @@ check() {
package_libldap() {
pkgdesc="Lightweight Directory Access Protocol (LDAP) client libraries"
- depends=('libsasl' 'libfetch')
+ depends=('libsasl' 'libfetch' 'e2fsprogs')
backup=('etc/openldap/ldap.conf')
options=('!libtool')
@@ -66,7 +66,7 @@ package_libldap() {
package_openldap() {
pkgdesc="Lightweight Directory Access Protocol (LDAP) client and server"
- depends=("libldap>=${pkgver}" 'libltdl')
+ depends=("libldap>=${pkgver}" 'libltdl' 'util-linux')
backup=('etc/openldap/slapd.conf' 'etc/conf.d/slapd')
options=('!libtool' 'emptydirs')
install=openldap.install
diff --git a/extra/libdrm/PKGBUILD b/extra/libdrm/PKGBUILD
index 6904b9ca3..94c51c177 100644
--- a/extra/libdrm/PKGBUILD
+++ b/extra/libdrm/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 144919 2011-12-10 10:45:30Z andyrtr $
+# $Id: PKGBUILD 145190 2011-12-19 12:35:11Z andyrtr $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=libdrm
-pkgver=2.4.28
+pkgver=2.4.29
pkgrel=1
pkgdesc="Userspace interface to kernel DRM services"
arch=(i686 x86_64)
@@ -14,23 +14,18 @@ url="http://dri.freedesktop.org/"
source=(http://dri.freedesktop.org/${pkgname}/${pkgname}-${pkgver}.tar.bz2
no-pthread-stubs.patch
COPYING
- git_fixes.diff
- #missing files from http://cgit.freedesktop.org/mesa/drm/snapshot/drm-902ee661f1864aaf8325621085f6a1b5a6a3673a.tar.bz2 - https://bugs.freedesktop.org/show_bug.cgi?id=43538
- rbo.h list.h)
-md5sums=('6488f64119c6439fa4038e9cd7b30b67'
+ git_fixes.diff)
+md5sums=('96d5e3e9edd55f4b016fe3b5dd0a1953'
'c722c8406507b7e3a8da7a3030d1d9cf'
'ba65e71c481b94ef0fb6c23c7f21ffa1'
- '671b87f9670e709e54a19cd292c6330d'
- '073846ea43fb4d6130062c1897d92e40'
- 'ce867d3331862c2b87d1a37461b42dbe')
+ 'aebd5336568090b8ec084fabcfb08071')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
patch -Np1 -i "${srcdir}/no-pthread-stubs.patch"
- # add a missing file in the release tarball
+ # git fixes - currently none
patch -Np1 -i ${srcdir}/git_fixes.diff
- cp ${srcdir}/{rbo,list}.h "${srcdir}/${pkgname}-${pkgver}"/tests/radeon/
#libtoolize --force
autoreconf --force --install
diff --git a/extra/libdrm/git_fixes.diff b/extra/libdrm/git_fixes.diff
index 5ebcb606a..dc80155f2 100644
--- a/extra/libdrm/git_fixes.diff
+++ b/extra/libdrm/git_fixes.diff
@@ -1,19 +1,13 @@
-From 902ee661f1864aaf8325621085f6a1b5a6a3673a Mon Sep 17 00:00:00 2001
-From: Dave Airlie <airlied@redhat.com>
-Date: Mon, 05 Dec 2011 21:24:48 +0000
-Subject: test/radeon: add missing files for dist
-
----
-diff --git a/tests/radeon/Makefile.am b/tests/radeon/Makefile.am
-index 021ca72..1775669 100644
---- a/tests/radeon/Makefile.am
-+++ b/tests/radeon/Makefile.am
-@@ -9,4 +9,6 @@ noinst_PROGRAMS = \
+diff --git a/intel/intel_bufmgr_gem.c b/intel/intel_bufmgr_gem.c
+index 19441f3..eb9dd32 100644
+--- a/intel/intel_bufmgr_gem.c
++++ b/intel/intel_bufmgr_gem.c
+@@ -958,7 +958,7 @@ static void drm_intel_gem_bo_purge_vma_cache(drm_intel_bufmgr_gem *bufmgr_gem)
+ bufmgr_gem->vma_cache.next,
+ vma_list);
+ assert(bo_gem->map_count == 0);
+- DRMLISTDEL(&bo_gem->vma_list);
++ DRMLISTDELINIT(&bo_gem->vma_list);
- radeon_ttm_SOURCES = \
- rbo.c \
-+ rbo.h \
-+ list.h \
- radeon_ttm.c
---
-cgit v0.9.0.2-2-gbebe
+ if (bo_gem->mem_virtual) {
+ munmap(bo_gem->mem_virtual, bo_gem->bo.size);
diff --git a/extra/libdvdnav/PKGBUILD b/extra/libdvdnav/PKGBUILD
index 694f6bd6c..21fafd52b 100644
--- a/extra/libdvdnav/PKGBUILD
+++ b/extra/libdvdnav/PKGBUILD
@@ -1,15 +1,15 @@
-# $Id: PKGBUILD 144385 2011-12-05 13:01:06Z jgc $
+# $Id: PKGBUILD 145184 2011-12-19 11:48:47Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: Arjan <arjan@archlinux.org>
# contributor Sarah Hay <sarahhay@mb.sympatico.ca>
pkgname=libdvdnav
pkgver=4.2.0
-pkgrel=1
+pkgrel=2
pkgdesc="The library for xine-dvdnav plugin."
arch=('i686' 'x86_64')
license=('GPL')
-url="http://http://dvdnav.mplayerhq.hu/"
+url="http://dvdnav.mplayerhq.hu/"
depends=('libdvdread')
options=(!libtool)
source=(http://dvdnav.mplayerhq.hu/releases/${pkgname}-${pkgver}.tar.bz2)
diff --git a/extra/libgsf/PKGBUILD b/extra/libgsf/PKGBUILD
index b7be49cc1..87a0928a8 100644
--- a/extra/libgsf/PKGBUILD
+++ b/extra/libgsf/PKGBUILD
@@ -1,16 +1,17 @@
-# $Id: PKGBUILD 145141 2011-12-17 20:36:05Z ibiru $
+# $Id: PKGBUILD 145205 2011-12-19 17:59:06Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
pkgname=libgsf
pkgver=1.14.22
-pkgrel=1
+pkgrel=2
arch=(i686 x86_64)
pkgdesc="The GNOME Structured File Library is a utility library for reading and writing structured file formats"
url="http://www.gnome.org/"
license=('GPL' 'LGPL')
options=('!libtool')
depends=('libxml2' 'gdk-pixbuf2' 'bzip2')
+conflicts=("libgsf-gnome<$pkgver")
makedepends=('intltool' 'pygtk')
source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/1.14/$pkgname-$pkgver.tar.xz)
sha256sums=('a5f23be3cab72abd91bb443a32f41d6adc73250285b53787460750b6d60b783f')
diff --git a/extra/nss/PKGBUILD b/extra/nss/PKGBUILD
index e02510821..77d538605 100644
--- a/extra/nss/PKGBUILD
+++ b/extra/nss/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 138102 2011-09-16 12:01:21Z ibiru $
+# $Id: PKGBUILD 145236 2011-12-19 19:17:54Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=nss
-pkgver=3.12.11
-pkgrel=3
+pkgver=3.13.1
+pkgrel=1
pkgdesc="Mozilla Network Security Services"
arch=(i686 x86_64)
url="http://www.mozilla.org/projects/security/pki/nss/"
@@ -13,26 +13,22 @@ depends=("nspr>=${_nsprver}" 'sqlite3' 'zlib' 'sh')
makedepends=('perl')
replaces=('nss-nspr')
options=('!strip')
-source=(ftp://ftp.mozilla.org/pub/security/nss/releases/NSS_${pkgver//./_}_RTM/src/${pkgname}-${pkgver}.tar.gz
+source=(ftp://ftp.mozilla.org/pub/security/nss/releases/NSS_${pkgver//./_}_WITH_CKBI_1_88_RTM/src/${pkgname}-${pkgver}.with.ckbi.1.88.tar.gz
nss-no-rpath.patch
nss.pc.in
nss-config.in
- distrust-diginotar.patch
add_spi+cacert_ca_certs.patch
ssl-renegotiate-transitional.patch)
-md5sums=('ca0ca058380be200cf247ea2496b5352'
- 'e5c97db0c884d5f4cfda21e562dc9bba'
- 'c547b030c57fe1ed8b77c73bf52b3ded'
- '46bee81908f1e5b26d6a7a2e14c64d9f'
- 'bbd7d8a8e2f6ffc8b3e5f6614e5f3ccf'
- 'ba2357c5b9881bfd7d54b037954ba0ff'
- 'd83c7b61abb7e9f8f7bcd157183d1ade')
+sha1sums=('ebc0258c8d1a3c2fe80941bd991b766552464fc6'
+ 'c8fcdb153af9d39689243119adb475905a657284'
+ 'aa5b2c0aa38d3c1066d511336cf28d1333e3aebd'
+ 'cb744cc3e56b604e4754bc3c7d9f25bb9a0a136c'
+ '11e4980911a1fe7142264e9b783b89abdc750c5d'
+ '8a964a744ba098711b80c0d279a2993524e8eb92')
build() {
cd "${srcdir}/${pkgname}-${pkgver}/mozilla"
- # Distrust DigiNotar root CA - backported from CVS (https://bugzilla.mozilla.org/show_bug.cgi?id=682927)
- patch -Np0 -i "${srcdir}/distrust-diginotar.patch"
- # Adds the SPI Inc. and CAcert.org CA certificates - patch from Debian
+ # Adds the SPI Inc. and CAcert.org CA certificates - patch from Debian, modified to apply on certdata.txt only
patch -Np2 -i "${srcdir}/add_spi+cacert_ca_certs.patch"
# Adds transitional SSL renegotiate support - patch from Debian
patch -Np2 -i "${srcdir}/ssl-renegotiate-transitional.patch"
@@ -43,6 +39,10 @@ build() {
sed -e 's/\$(MKSHLIB) -o/\$(MKSHLIB) \$(LDFLAGS) -o/g' \
-i security/coreconf/rules.mk
+ # Generate certdata.c from certdata.txt
+ cd security/nss/lib/ckfw/builtins
+ make generate
+
cd "${srcdir}/${pkgname}-${pkgver}"
export BUILD_OPT=1
export PKG_CONFIG_ALLOW_SYSTEM_LIBS=1
diff --git a/extra/nss/add_spi+cacert_ca_certs.patch b/extra/nss/add_spi+cacert_ca_certs.patch
index 0af0deab7..7126a1281 100644
--- a/extra/nss/add_spi+cacert_ca_certs.patch
+++ b/extra/nss/add_spi+cacert_ca_certs.patch
@@ -3,597 +3,14 @@
## All lines beginning with `## DP:' are a description of the patch.
## DP: Adds the SPI Inc. and CAcert.org CA certificates
-Index: nss/mozilla/security/nss/lib/ckfw/builtins/certdata.c
-===================================================================
---- nss.orig/mozilla/security/nss/lib/ckfw/builtins/certdata.c 2011-08-12 12:29:13.000000000 +0200
-+++ nss/mozilla/security/nss/lib/ckfw/builtins/certdata.c 2011-08-12 12:29:29.056420467 +0200
-@@ -1045,6 +1045,24 @@
- static const CK_ATTRIBUTE_TYPE nss_builtins_types_327 [] = {
- CKA_CLASS, CKA_TOKEN, CKA_PRIVATE, CKA_MODIFIABLE, CKA_LABEL, CKA_CERT_SHA1_HASH, CKA_CERT_MD5_HASH, CKA_ISSUER, CKA_SERIAL_NUMBER, CKA_TRUST_SERVER_AUTH, CKA_TRUST_EMAIL_PROTECTION, CKA_TRUST_CODE_SIGNING, CKA_TRUST_STEP_UP_APPROVED
- };
-+static const CK_ATTRIBUTE_TYPE nss_builtins_types_328 [] = {
-+ CKA_CLASS, CKA_TOKEN, CKA_PRIVATE, CKA_MODIFIABLE, CKA_LABEL, CKA_CERTIFICATE_TYPE, CKA_SUBJECT, CKA_ID, CKA_ISSUER, CKA_SERIAL_NUMBER, CKA_VALUE
-+};
-+static const CK_ATTRIBUTE_TYPE nss_builtins_types_329 [] = {
-+ CKA_CLASS, CKA_TOKEN, CKA_PRIVATE, CKA_MODIFIABLE, CKA_LABEL, CKA_CERT_SHA1_HASH, CKA_CERT_MD5_HASH, CKA_ISSUER, CKA_SERIAL_NUMBER, CKA_TRUST_SERVER_AUTH, CKA_TRUST_EMAIL_PROTECTION, CKA_TRUST_CODE_SIGNING, CKA_TRUST_STEP_UP_APPROVED
-+};
-+static const CK_ATTRIBUTE_TYPE nss_builtins_types_330 [] = {
-+ CKA_CLASS, CKA_TOKEN, CKA_PRIVATE, CKA_MODIFIABLE, CKA_LABEL, CKA_CERTIFICATE_TYPE, CKA_SUBJECT, CKA_ID, CKA_ISSUER, CKA_SERIAL_NUMBER, CKA_VALUE
-+};
-+static const CK_ATTRIBUTE_TYPE nss_builtins_types_331 [] = {
-+ CKA_CLASS, CKA_TOKEN, CKA_PRIVATE, CKA_MODIFIABLE, CKA_LABEL, CKA_CERT_SHA1_HASH, CKA_CERT_MD5_HASH, CKA_ISSUER, CKA_SERIAL_NUMBER, CKA_TRUST_SERVER_AUTH, CKA_TRUST_EMAIL_PROTECTION, CKA_TRUST_CODE_SIGNING, CKA_TRUST_STEP_UP_APPROVED
-+};
-+static const CK_ATTRIBUTE_TYPE nss_builtins_types_332 [] = {
-+ CKA_CLASS, CKA_TOKEN, CKA_PRIVATE, CKA_MODIFIABLE, CKA_LABEL, CKA_CERTIFICATE_TYPE, CKA_SUBJECT, CKA_ID, CKA_ISSUER, CKA_SERIAL_NUMBER, CKA_VALUE
-+};
-+static const CK_ATTRIBUTE_TYPE nss_builtins_types_333 [] = {
-+ CKA_CLASS, CKA_TOKEN, CKA_PRIVATE, CKA_MODIFIABLE, CKA_LABEL, CKA_CERT_SHA1_HASH, CKA_CERT_MD5_HASH, CKA_ISSUER, CKA_SERIAL_NUMBER, CKA_TRUST_SERVER_AUTH, CKA_TRUST_EMAIL_PROTECTION, CKA_TRUST_CODE_SIGNING, CKA_TRUST_STEP_UP_APPROVED
-+};
- #ifdef DEBUG
- static const NSSItem nss_builtins_items_0 [] = {
- { (void *)&cko_data, (PRUint32)sizeof(CK_OBJECT_CLASS) },
-@@ -21910,6 +21928,531 @@
- { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
- { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
- };
-+static const NSSItem nss_builtins_items_328 [] = {
-+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
-+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
-+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
-+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
-+ { (void *)"CAcert.org Class 1 Root CA", (PRUint32)27 },
-+ { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
-+ { (void *)"\060\171\061\020\060\016\006\003\125\004\012\023\007\122\157\157"
-+"\164\040\103\101\061\036\060\034\006\003\125\004\013\023\025\150"
-+"\164\164\160\072\057\057\167\167\167\056\143\141\143\145\162\164"
-+"\056\157\162\147\061\042\060\040\006\003\125\004\003\023\031\103"
-+"\101\040\103\145\162\164\040\123\151\147\156\151\156\147\040\101"
-+"\165\164\150\157\162\151\164\171\061\041\060\037\006\011\052\206"
-+"\110\206\367\015\001\011\001\026\022\163\165\160\160\157\162\164"
-+"\100\143\141\143\145\162\164\056\157\162\147"
-+, (PRUint32)123 },
-+ { (void *)"0", (PRUint32)2 },
-+ { (void *)"\060\171\061\020\060\016\006\003\125\004\012\023\007\122\157\157"
-+"\164\040\103\101\061\036\060\034\006\003\125\004\013\023\025\150"
-+"\164\164\160\072\057\057\167\167\167\056\143\141\143\145\162\164"
-+"\056\157\162\147\061\042\060\040\006\003\125\004\003\023\031\103"
-+"\101\040\103\145\162\164\040\123\151\147\156\151\156\147\040\101"
-+"\165\164\150\157\162\151\164\171\061\041\060\037\006\011\052\206"
-+"\110\206\367\015\001\011\001\026\022\163\165\160\160\157\162\164"
-+"\100\143\141\143\145\162\164\056\157\162\147"
-+, (PRUint32)123 },
-+ { (void *)"\002\001\000"
-+, (PRUint32)3 },
-+ { (void *)"\060\202\007\075\060\202\005\045\240\003\002\001\002\002\001\000"
-+"\060\015\006\011\052\206\110\206\367\015\001\001\004\005\000\060"
-+"\171\061\020\060\016\006\003\125\004\012\023\007\122\157\157\164"
-+"\040\103\101\061\036\060\034\006\003\125\004\013\023\025\150\164"
-+"\164\160\072\057\057\167\167\167\056\143\141\143\145\162\164\056"
-+"\157\162\147\061\042\060\040\006\003\125\004\003\023\031\103\101"
-+"\040\103\145\162\164\040\123\151\147\156\151\156\147\040\101\165"
-+"\164\150\157\162\151\164\171\061\041\060\037\006\011\052\206\110"
-+"\206\367\015\001\011\001\026\022\163\165\160\160\157\162\164\100"
-+"\143\141\143\145\162\164\056\157\162\147\060\036\027\015\060\063"
-+"\060\063\063\060\061\062\062\071\064\071\132\027\015\063\063\060"
-+"\063\062\071\061\062\062\071\064\071\132\060\171\061\020\060\016"
-+"\006\003\125\004\012\023\007\122\157\157\164\040\103\101\061\036"
-+"\060\034\006\003\125\004\013\023\025\150\164\164\160\072\057\057"
-+"\167\167\167\056\143\141\143\145\162\164\056\157\162\147\061\042"
-+"\060\040\006\003\125\004\003\023\031\103\101\040\103\145\162\164"
-+"\040\123\151\147\156\151\156\147\040\101\165\164\150\157\162\151"
-+"\164\171\061\041\060\037\006\011\052\206\110\206\367\015\001\011"
-+"\001\026\022\163\165\160\160\157\162\164\100\143\141\143\145\162"
-+"\164\056\157\162\147\060\202\002\042\060\015\006\011\052\206\110"
-+"\206\367\015\001\001\001\005\000\003\202\002\017\000\060\202\002"
-+"\012\002\202\002\001\000\316\042\300\342\106\175\354\066\050\007"
-+"\120\226\362\240\063\100\214\113\361\073\146\077\061\345\153\002"
-+"\066\333\326\174\366\361\210\217\116\167\066\005\101\225\371\011"
-+"\360\022\317\106\206\163\140\267\156\176\350\300\130\144\256\315"
-+"\260\255\105\027\014\143\372\147\012\350\326\322\277\076\347\230"
-+"\304\360\114\372\340\003\273\065\135\154\041\336\236\040\331\272"
-+"\315\146\062\067\162\372\367\010\365\307\315\130\311\216\347\016"
-+"\136\352\076\376\034\241\024\012\025\154\206\204\133\144\146\052"
-+"\172\251\113\123\171\365\210\242\173\356\057\012\141\053\215\262"
-+"\176\115\126\245\023\354\352\332\222\236\254\104\101\036\130\140"
-+"\145\005\146\370\300\104\275\313\224\367\102\176\013\367\145\150"
-+"\230\121\005\360\363\005\221\004\035\033\027\202\354\310\127\273"
-+"\303\153\172\210\361\260\162\314\045\133\040\221\354\026\002\022"
-+"\217\062\351\027\030\110\320\307\005\056\002\060\102\270\045\234"
-+"\005\153\077\252\072\247\353\123\110\367\350\322\266\007\230\334"
-+"\033\306\064\177\177\311\034\202\172\005\130\053\010\133\363\070"
-+"\242\253\027\135\146\311\230\327\236\020\213\242\322\335\164\232"
-+"\367\161\014\162\140\337\315\157\230\063\235\226\064\166\076\044"
-+"\172\222\260\016\225\036\157\346\240\105\070\107\252\327\101\355"
-+"\112\267\022\366\327\033\203\212\017\056\330\011\266\131\327\252"
-+"\004\377\322\223\175\150\056\335\213\113\253\130\272\057\215\352"
-+"\225\247\240\303\124\211\245\373\333\213\121\042\235\262\303\276"
-+"\021\276\054\221\206\213\226\170\255\040\323\212\057\032\077\306"
-+"\320\121\145\207\041\261\031\001\145\177\105\034\207\365\174\320"
-+"\101\114\117\051\230\041\375\063\037\165\014\004\121\372\031\167"
-+"\333\324\024\034\356\201\303\035\365\230\267\151\006\221\042\335"
-+"\000\120\314\201\061\254\022\007\173\070\332\150\133\346\053\324"
-+"\176\311\137\255\350\353\162\114\363\001\345\113\040\277\232\246"
-+"\127\312\221\000\001\213\241\165\041\067\265\143\015\147\076\106"
-+"\117\160\040\147\316\305\326\131\333\002\340\360\322\313\315\272"
-+"\142\267\220\101\350\335\040\344\051\274\144\051\102\310\042\334"
-+"\170\232\377\103\354\230\033\011\121\113\132\132\302\161\361\304"
-+"\313\163\251\345\241\013\002\003\001\000\001\243\202\001\316\060"
-+"\202\001\312\060\035\006\003\125\035\016\004\026\004\024\026\265"
-+"\062\033\324\307\363\340\346\216\363\275\322\260\072\356\262\071"
-+"\030\321\060\201\243\006\003\125\035\043\004\201\233\060\201\230"
-+"\200\024\026\265\062\033\324\307\363\340\346\216\363\275\322\260"
-+"\072\356\262\071\030\321\241\175\244\173\060\171\061\020\060\016"
-+"\006\003\125\004\012\023\007\122\157\157\164\040\103\101\061\036"
-+"\060\034\006\003\125\004\013\023\025\150\164\164\160\072\057\057"
-+"\167\167\167\056\143\141\143\145\162\164\056\157\162\147\061\042"
-+"\060\040\006\003\125\004\003\023\031\103\101\040\103\145\162\164"
-+"\040\123\151\147\156\151\156\147\040\101\165\164\150\157\162\151"
-+"\164\171\061\041\060\037\006\011\052\206\110\206\367\015\001\011"
-+"\001\026\022\163\165\160\160\157\162\164\100\143\141\143\145\162"
-+"\164\056\157\162\147\202\001\000\060\017\006\003\125\035\023\001"
-+"\001\377\004\005\060\003\001\001\377\060\062\006\003\125\035\037"
-+"\004\053\060\051\060\047\240\045\240\043\206\041\150\164\164\160"
-+"\163\072\057\057\167\167\167\056\143\141\143\145\162\164\056\157"
-+"\162\147\057\162\145\166\157\153\145\056\143\162\154\060\060\006"
-+"\011\140\206\110\001\206\370\102\001\004\004\043\026\041\150\164"
-+"\164\160\163\072\057\057\167\167\167\056\143\141\143\145\162\164"
-+"\056\157\162\147\057\162\145\166\157\153\145\056\143\162\154\060"
-+"\064\006\011\140\206\110\001\206\370\102\001\010\004\047\026\045"
-+"\150\164\164\160\072\057\057\167\167\167\056\143\141\143\145\162"
-+"\164\056\157\162\147\057\151\156\144\145\170\056\160\150\160\077"
-+"\151\144\075\061\060\060\126\006\011\140\206\110\001\206\370\102"
-+"\001\015\004\111\026\107\124\157\040\147\145\164\040\171\157\165"
-+"\162\040\157\167\156\040\143\145\162\164\151\146\151\143\141\164"
-+"\145\040\146\157\162\040\106\122\105\105\040\150\145\141\144\040"
-+"\157\166\145\162\040\164\157\040\150\164\164\160\072\057\057\167"
-+"\167\167\056\143\141\143\145\162\164\056\157\162\147\060\015\006"
-+"\011\052\206\110\206\367\015\001\001\004\005\000\003\202\002\001"
-+"\000\050\307\356\234\202\002\272\134\200\022\312\065\012\035\201"
-+"\157\211\152\231\314\362\150\017\177\247\341\215\130\225\076\275"
-+"\362\006\303\220\132\254\265\140\366\231\103\001\243\210\160\234"
-+"\235\142\235\244\207\257\147\130\015\060\066\073\346\255\110\323"
-+"\313\164\002\206\161\076\342\053\003\150\361\064\142\100\106\073"
-+"\123\352\050\364\254\373\146\225\123\212\115\135\375\073\331\140"
-+"\327\312\171\151\073\261\145\222\246\306\201\202\134\234\315\353"
-+"\115\001\212\245\337\021\125\252\025\312\037\067\300\202\230\160"
-+"\141\333\152\174\226\243\216\056\124\076\117\041\251\220\357\334"
-+"\202\277\334\350\105\255\115\220\163\010\074\224\145\260\004\231"
-+"\166\177\342\274\302\152\025\252\227\004\067\044\330\036\224\116"
-+"\155\016\121\276\326\304\217\312\226\155\367\103\337\350\060\145"
-+"\047\073\173\273\103\103\143\304\103\367\262\354\150\314\341\031"
-+"\216\042\373\230\341\173\132\076\001\067\073\213\010\260\242\363"
-+"\225\116\032\313\233\315\232\261\333\262\160\360\055\112\333\330"
-+"\260\343\157\105\110\063\022\377\376\074\062\052\124\367\304\367"
-+"\212\360\210\043\302\107\376\144\172\161\300\321\036\246\143\260"
-+"\007\176\244\057\323\001\217\334\237\053\266\306\010\251\017\223"
-+"\110\045\374\022\375\237\102\334\363\304\076\366\127\260\327\335"
-+"\151\321\006\167\064\012\113\322\312\240\377\034\306\214\311\026"
-+"\276\304\314\062\067\150\163\137\010\373\121\367\111\123\066\005"
-+"\012\225\002\114\362\171\032\020\366\330\072\165\234\363\035\361"
-+"\242\015\160\147\206\033\263\026\365\057\345\244\353\171\206\371"
-+"\075\013\302\163\013\245\231\254\157\374\147\270\345\057\013\246"
-+"\030\044\215\173\321\110\065\051\030\100\254\223\140\341\226\206"
-+"\120\264\172\131\330\217\041\013\237\317\202\221\306\073\277\153"
-+"\334\007\221\271\227\126\043\252\266\154\224\306\110\006\074\344"
-+"\316\116\252\344\366\057\011\334\123\157\056\374\164\353\072\143"
-+"\231\302\246\254\211\274\247\262\104\240\015\212\020\343\154\362"
-+"\044\313\372\233\237\160\107\056\336\024\213\324\262\040\011\226"
-+"\242\144\361\044\034\334\241\065\234\025\262\324\274\125\056\175"
-+"\006\365\234\016\125\364\132\326\223\332\166\255\045\163\114\305"
-+"\103"
-+, (PRUint32)1857 }
-+};
-+static const NSSItem nss_builtins_items_329 [] = {
-+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
-+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
-+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
-+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
-+ { (void *)"CAcert.org Class 1 Root CA", (PRUint32)27 },
-+ { (void *)"\023\134\354\066\364\234\270\351\073\032\262\160\315\200\210\106"
-+"\166\316\217\063"
-+, (PRUint32)20 },
-+ { (void *)"\246\033\067\136\071\015\234\066\124\356\275\040\061\106\037\153"
-+, (PRUint32)16 },
-+ { (void *)"\060\171\061\020\060\016\006\003\125\004\012\023\007\122\157\157"
-+"\164\040\103\101\061\036\060\034\006\003\125\004\013\023\025\150"
-+"\164\164\160\072\057\057\167\167\167\056\143\141\143\145\162\164"
-+"\056\157\162\147\061\042\060\040\006\003\125\004\003\023\031\103"
-+"\101\040\103\145\162\164\040\123\151\147\156\151\156\147\040\101"
-+"\165\164\150\157\162\151\164\171\061\041\060\037\006\011\052\206"
-+"\110\206\367\015\001\011\001\026\022\163\165\160\160\157\162\164"
-+"\100\143\141\143\145\162\164\056\157\162\147"
-+, (PRUint32)123 },
-+ { (void *)"\002\001\000"
-+, (PRUint32)3 },
-+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
-+};
-+static const NSSItem nss_builtins_items_330 [] = {
-+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
-+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
-+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
-+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
-+ { (void *)"CAcert.org Class 3 Root CA", (PRUint32)27 },
-+ { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
-+ { (void *)"\060\124\061\024\060\022\006\003\125\004\012\023\013\103\101\143"
-+"\145\162\164\040\111\156\143\056\061\036\060\034\006\003\125\004"
-+"\013\023\025\150\164\164\160\072\057\057\167\167\167\056\103\101"
-+"\143\145\162\164\056\157\162\147\061\034\060\032\006\003\125\004"
-+"\003\023\023\103\101\143\145\162\164\040\103\154\141\163\163\040"
-+"\063\040\122\157\157\164"
-+, (PRUint32)86 },
-+ { (void *)"0", (PRUint32)2 },
-+ { (void *)"\060\171\061\020\060\016\006\003\125\004\012\023\007\122\157\157"
-+"\164\040\103\101\061\036\060\034\006\003\125\004\013\023\025\150"
-+"\164\164\160\072\057\057\167\167\167\056\143\141\143\145\162\164"
-+"\056\157\162\147\061\042\060\040\006\003\125\004\003\023\031\103"
-+"\101\040\103\145\162\164\040\123\151\147\156\151\156\147\040\101"
-+"\165\164\150\157\162\151\164\171\061\041\060\037\006\011\052\206"
-+"\110\206\367\015\001\011\001\026\022\163\165\160\160\157\162\164"
-+"\100\143\141\143\145\162\164\056\157\162\147"
-+, (PRUint32)123 },
-+ { (void *)"\002\001\001"
-+, (PRUint32)3 },
-+ { (void *)"\060\202\006\010\060\202\003\360\240\003\002\001\002\002\001\001"
-+"\060\015\006\011\052\206\110\206\367\015\001\001\004\005\000\060"
-+"\171\061\020\060\016\006\003\125\004\012\023\007\122\157\157\164"
-+"\040\103\101\061\036\060\034\006\003\125\004\013\023\025\150\164"
-+"\164\160\072\057\057\167\167\167\056\143\141\143\145\162\164\056"
-+"\157\162\147\061\042\060\040\006\003\125\004\003\023\031\103\101"
-+"\040\103\145\162\164\040\123\151\147\156\151\156\147\040\101\165"
-+"\164\150\157\162\151\164\171\061\041\060\037\006\011\052\206\110"
-+"\206\367\015\001\011\001\026\022\163\165\160\160\157\162\164\100"
-+"\143\141\143\145\162\164\056\157\162\147\060\036\027\015\060\065"
-+"\061\060\061\064\060\067\063\066\065\065\132\027\015\063\063\060"
-+"\063\062\070\060\067\063\066\065\065\132\060\124\061\024\060\022"
-+"\006\003\125\004\012\023\013\103\101\143\145\162\164\040\111\156"
-+"\143\056\061\036\060\034\006\003\125\004\013\023\025\150\164\164"
-+"\160\072\057\057\167\167\167\056\103\101\143\145\162\164\056\157"
-+"\162\147\061\034\060\032\006\003\125\004\003\023\023\103\101\143"
-+"\145\162\164\040\103\154\141\163\163\040\063\040\122\157\157\164"
-+"\060\202\002\042\060\015\006\011\052\206\110\206\367\015\001\001"
-+"\001\005\000\003\202\002\017\000\060\202\002\012\002\202\002\001"
-+"\000\253\111\065\021\110\174\322\046\176\123\224\317\103\251\335"
-+"\050\327\102\052\213\363\207\170\031\130\174\017\236\332\211\175"
-+"\341\373\353\162\220\015\164\241\226\144\253\237\240\044\231\163"
-+"\332\342\125\166\307\027\173\365\004\254\106\270\303\276\177\144"
-+"\215\020\154\044\363\141\234\300\362\220\372\121\346\365\151\001"
-+"\143\303\017\126\342\112\102\317\342\104\214\045\050\250\305\171"
-+"\011\175\106\271\212\363\351\363\064\051\010\105\344\034\237\313"
-+"\224\004\034\201\250\024\263\230\145\304\103\354\116\202\215\011"
-+"\321\275\252\133\215\222\320\354\336\220\305\177\012\302\343\353"
-+"\346\061\132\136\164\076\227\063\131\350\303\003\075\140\063\277"
-+"\367\321\157\107\304\315\356\142\203\122\156\056\010\232\244\331"
-+"\025\030\221\246\205\222\107\260\256\110\353\155\267\041\354\205"
-+"\032\150\162\065\253\377\360\020\135\300\364\224\247\152\325\073"
-+"\222\176\114\220\005\176\223\301\054\213\244\216\142\164\025\161"
-+"\156\013\161\003\352\257\025\070\232\324\322\005\162\157\214\371"
-+"\053\353\132\162\045\371\071\106\343\162\033\076\004\303\144\047"
-+"\042\020\052\212\117\130\247\003\255\276\264\056\023\355\135\252"
-+"\110\327\325\175\324\052\173\134\372\106\004\120\344\314\016\102"
-+"\133\214\355\333\362\317\374\226\223\340\333\021\066\124\142\064"
-+"\070\217\014\140\233\073\227\126\070\255\363\322\133\213\240\133"
-+"\352\116\226\270\174\327\325\240\206\160\100\323\221\051\267\242"
-+"\074\255\365\214\273\317\032\222\212\344\064\173\300\330\154\137"
-+"\351\012\302\303\247\040\232\132\337\054\135\122\134\272\107\325"
-+"\233\357\044\050\160\070\040\057\325\177\051\300\262\101\003\150"
-+"\222\314\340\234\314\227\113\105\357\072\020\012\253\160\072\230"
-+"\225\160\255\065\261\352\205\053\244\034\200\041\061\251\256\140"
-+"\172\200\046\110\000\270\001\300\223\143\125\042\221\074\126\347"
-+"\257\333\072\045\363\217\061\124\352\046\213\201\131\371\241\321"
-+"\123\021\305\173\235\003\366\164\021\340\155\261\054\077\054\206"
-+"\221\231\161\232\246\167\213\064\140\321\024\264\054\254\235\257"
-+"\214\020\323\237\304\152\370\157\023\374\163\131\367\146\102\164"
-+"\036\212\343\370\334\322\157\230\234\313\107\230\225\100\005\373"
-+"\351\002\003\001\000\001\243\201\277\060\201\274\060\017\006\003"
-+"\125\035\023\001\001\377\004\005\060\003\001\001\377\060\135\006"
-+"\010\053\006\001\005\005\007\001\001\004\121\060\117\060\043\006"
-+"\010\053\006\001\005\005\007\060\001\206\027\150\164\164\160\072"
-+"\057\057\157\143\163\160\056\103\101\143\145\162\164\056\157\162"
-+"\147\057\060\050\006\010\053\006\001\005\005\007\060\002\206\034"
-+"\150\164\164\160\072\057\057\167\167\167\056\103\101\143\145\162"
-+"\164\056\157\162\147\057\143\141\056\143\162\164\060\112\006\003"
-+"\125\035\040\004\103\060\101\060\077\006\010\053\006\001\004\001"
-+"\201\220\112\060\063\060\061\006\010\053\006\001\005\005\007\002"
-+"\001\026\045\150\164\164\160\072\057\057\167\167\167\056\103\101"
-+"\143\145\162\164\056\157\162\147\057\151\156\144\145\170\056\160"
-+"\150\160\077\151\144\075\061\060\060\015\006\011\052\206\110\206"
-+"\367\015\001\001\004\005\000\003\202\002\001\000\177\010\210\241"
-+"\332\032\120\111\332\211\373\241\010\162\363\212\367\036\304\072"
-+"\264\171\133\040\060\261\105\336\302\135\323\145\151\361\302\135"
-+"\124\124\074\205\137\271\173\102\221\302\231\375\033\121\233\253"
-+"\106\245\241\020\123\236\155\210\254\163\156\054\063\246\360\364"
-+"\236\340\165\301\076\210\105\251\341\146\103\376\126\132\321\172"
-+"\101\170\367\100\332\112\072\361\013\133\245\273\026\006\346\302"
-+"\347\223\271\205\115\227\117\261\036\070\103\200\357\233\015\214"
-+"\357\270\247\140\000\207\127\175\036\104\034\313\043\357\233\074"
-+"\231\235\257\265\051\034\105\171\026\226\115\047\155\361\034\154"
-+"\303\302\125\144\263\274\024\342\363\244\037\036\062\374\047\025"
-+"\005\317\335\056\256\076\202\141\173\360\041\020\030\366\104\352"
-+"\123\071\371\334\320\232\040\340\306\273\340\273\132\117\304\231"
-+"\310\007\275\265\275\242\333\056\142\015\102\064\101\274\377\213"
-+"\212\365\121\042\252\210\060\000\342\260\324\274\276\145\272\325"
-+"\003\127\171\233\350\334\310\115\370\120\355\221\245\122\050\242"
-+"\254\373\066\130\076\351\224\053\221\120\207\033\326\136\326\214"
-+"\314\367\017\020\014\122\116\320\026\141\345\345\012\154\277\027"
-+"\307\162\106\127\234\230\365\154\140\143\172\157\136\271\116\057"
-+"\310\271\271\273\152\205\274\230\015\355\371\076\227\204\064\224"
-+"\256\000\257\241\345\347\222\156\116\275\363\342\331\024\213\134"
-+"\322\353\001\154\240\027\245\055\020\353\234\172\112\275\275\356"
-+"\316\375\355\042\100\253\160\070\210\365\012\207\152\302\253\005"
-+"\140\311\110\005\332\123\301\336\104\167\152\263\363\074\074\355"
-+"\200\274\246\070\112\051\044\137\376\131\073\233\045\172\126\143"
-+"\000\144\271\135\244\142\175\127\066\117\255\203\357\037\222\123"
-+"\240\216\167\127\335\345\141\021\075\043\000\220\114\074\372\243"
-+"\140\223\004\243\257\065\366\016\152\217\117\112\140\247\205\005"
-+"\154\106\241\217\364\307\166\343\241\131\127\367\161\262\304\156"
-+"\024\134\155\155\101\146\337\033\223\261\324\000\303\356\313\317"
-+"\074\075\041\200\251\137\143\145\374\335\340\137\244\364\053\360"
-+"\205\161\101\324\147\045\373\032\261\227\256\326\231\202\023\101"
-+"\322\156\245\033\231\047\200\347\013\251\250\000"
-+, (PRUint32)1548 }
-+};
-+static const NSSItem nss_builtins_items_331 [] = {
-+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
-+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
-+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
-+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
-+ { (void *)"CAcert.org Class 3 Root CA", (PRUint32)27 },
-+ { (void *)"\333\114\102\151\007\077\351\302\243\175\211\012\134\033\030\304"
-+"\030\116\052\055"
-+, (PRUint32)20 },
-+ { (void *)"\163\077\065\124\035\104\311\351\132\112\357\121\255\003\006\266"
-+, (PRUint32)16 },
-+ { (void *)"\060\171\061\020\060\016\006\003\125\004\012\023\007\122\157\157"
-+"\164\040\103\101\061\036\060\034\006\003\125\004\013\023\025\150"
-+"\164\164\160\072\057\057\167\167\167\056\143\141\143\145\162\164"
-+"\056\157\162\147\061\042\060\040\006\003\125\004\003\023\031\103"
-+"\101\040\103\145\162\164\040\123\151\147\156\151\156\147\040\101"
-+"\165\164\150\157\162\151\164\171\061\041\060\037\006\011\052\206"
-+"\110\206\367\015\001\011\001\026\022\163\165\160\160\157\162\164"
-+"\100\143\141\143\145\162\164\056\157\162\147"
-+, (PRUint32)123 },
-+ { (void *)"\002\001\001"
-+, (PRUint32)3 },
-+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
-+};
-+static const NSSItem nss_builtins_items_332 [] = {
-+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
-+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
-+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
-+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
-+ { (void *)"Software in the Public Interest, Inc. Root CA (2008)", (PRUint32)53 },
-+ { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
-+ { (void *)"\060\201\274\061\013\060\011\006\003\125\004\006\023\002\125\123"
-+"\061\020\060\016\006\003\125\004\010\023\007\111\156\144\151\141"
-+"\156\141\061\025\060\023\006\003\125\004\007\023\014\111\156\144"
-+"\151\141\156\141\160\157\154\151\163\061\050\060\046\006\003\125"
-+"\004\012\023\037\123\157\146\164\167\141\162\145\040\151\156\040"
-+"\164\150\145\040\120\165\142\154\151\143\040\111\156\164\145\162"
-+"\145\163\164\061\023\060\021\006\003\125\004\013\023\012\150\157"
-+"\163\164\155\141\163\164\145\162\061\036\060\034\006\003\125\004"
-+"\003\023\025\103\145\162\164\151\146\151\143\141\164\145\040\101"
-+"\165\164\150\157\162\151\164\171\061\045\060\043\006\011\052\206"
-+"\110\206\367\015\001\011\001\026\026\150\157\163\164\155\141\163"
-+"\164\145\162\100\163\160\151\055\151\156\143\056\157\162\147"
-+, (PRUint32)191 },
-+ { (void *)"0", (PRUint32)2 },
-+ { (void *)"\060\201\274\061\013\060\011\006\003\125\004\006\023\002\125\123"
-+"\061\020\060\016\006\003\125\004\010\023\007\111\156\144\151\141"
-+"\156\141\061\025\060\023\006\003\125\004\007\023\014\111\156\144"
-+"\151\141\156\141\160\157\154\151\163\061\050\060\046\006\003\125"
-+"\004\012\023\037\123\157\146\164\167\141\162\145\040\151\156\040"
-+"\164\150\145\040\120\165\142\154\151\143\040\111\156\164\145\162"
-+"\145\163\164\061\023\060\021\006\003\125\004\013\023\012\150\157"
-+"\163\164\155\141\163\164\145\162\061\036\060\034\006\003\125\004"
-+"\003\023\025\103\145\162\164\151\146\151\143\141\164\145\040\101"
-+"\165\164\150\157\162\151\164\171\061\045\060\043\006\011\052\206"
-+"\110\206\367\015\001\011\001\026\026\150\157\163\164\155\141\163"
-+"\164\145\162\100\163\160\151\055\151\156\143\056\157\162\147"
-+, (PRUint32)191 },
-+ { (void *)"\002\011\000\350\216\266\311\370\052\024\050"
-+, (PRUint32)11 },
-+ { (void *)"\060\202\010\016\060\202\005\366\240\003\002\001\002\002\011\000"
-+"\350\216\266\311\370\052\024\050\060\015\006\011\052\206\110\206"
-+"\367\015\001\001\005\005\000\060\201\274\061\013\060\011\006\003"
-+"\125\004\006\023\002\125\123\061\020\060\016\006\003\125\004\010"
-+"\023\007\111\156\144\151\141\156\141\061\025\060\023\006\003\125"
-+"\004\007\023\014\111\156\144\151\141\156\141\160\157\154\151\163"
-+"\061\050\060\046\006\003\125\004\012\023\037\123\157\146\164\167"
-+"\141\162\145\040\151\156\040\164\150\145\040\120\165\142\154\151"
-+"\143\040\111\156\164\145\162\145\163\164\061\023\060\021\006\003"
-+"\125\004\013\023\012\150\157\163\164\155\141\163\164\145\162\061"
-+"\036\060\034\006\003\125\004\003\023\025\103\145\162\164\151\146"
-+"\151\143\141\164\145\040\101\165\164\150\157\162\151\164\171\061"
-+"\045\060\043\006\011\052\206\110\206\367\015\001\011\001\026\026"
-+"\150\157\163\164\155\141\163\164\145\162\100\163\160\151\055\151"
-+"\156\143\056\157\162\147\060\036\027\015\060\070\060\065\061\063"
-+"\060\070\060\067\065\066\132\027\015\061\070\060\065\061\061\060"
-+"\070\060\067\065\066\132\060\201\274\061\013\060\011\006\003\125"
-+"\004\006\023\002\125\123\061\020\060\016\006\003\125\004\010\023"
-+"\007\111\156\144\151\141\156\141\061\025\060\023\006\003\125\004"
-+"\007\023\014\111\156\144\151\141\156\141\160\157\154\151\163\061"
-+"\050\060\046\006\003\125\004\012\023\037\123\157\146\164\167\141"
-+"\162\145\040\151\156\040\164\150\145\040\120\165\142\154\151\143"
-+"\040\111\156\164\145\162\145\163\164\061\023\060\021\006\003\125"
-+"\004\013\023\012\150\157\163\164\155\141\163\164\145\162\061\036"
-+"\060\034\006\003\125\004\003\023\025\103\145\162\164\151\146\151"
-+"\143\141\164\145\040\101\165\164\150\157\162\151\164\171\061\045"
-+"\060\043\006\011\052\206\110\206\367\015\001\011\001\026\026\150"
-+"\157\163\164\155\141\163\164\145\162\100\163\160\151\055\151\156"
-+"\143\056\157\162\147\060\202\002\042\060\015\006\011\052\206\110"
-+"\206\367\015\001\001\001\005\000\003\202\002\017\000\060\202\002"
-+"\012\002\202\002\001\000\334\066\346\107\102\302\304\121\165\051"
-+"\207\100\303\330\216\041\006\322\030\116\353\357\040\275\220\074"
-+"\205\020\023\214\051\133\224\143\366\364\055\361\006\102\221\271"
-+"\031\304\102\151\010\277\213\066\105\352\050\005\063\111\110\240"
-+"\047\103\223\065\212\101\330\170\263\360\357\263\156\055\335\321"
-+"\313\175\352\364\165\046\323\076\220\072\356\327\347\054\004\265"
-+"\174\341\365\174\305\116\357\167\275\134\242\223\063\222\316\175"
-+"\201\110\317\153\265\042\054\010\203\375\323\325\317\073\055\375"
-+"\265\111\220\133\366\255\115\023\312\336\323\246\235\123\121\161"
-+"\143\106\370\112\026\134\230\356\055\155\232\026\241\166\220\342"
-+"\140\103\231\326\211\326\154\056\172\230\262\013\003\054\343\172"
-+"\117\307\335\343\314\343\112\152\215\171\122\372\364\301\257\056"
-+"\217\052\010\313\033\051\202\222\162\103\274\316\210\251\252\247"
-+"\212\121\103\125\205\232\067\003\170\223\310\360\275\264\101\310"
-+"\007\102\232\313\065\227\172\212\201\145\336\035\124\010\001\361"
-+"\144\134\267\027\032\121\274\036\303\131\207\166\030\026\230\356"
-+"\277\366\147\201\213\006\065\305\113\155\131\031\307\322\306\110"
-+"\276\156\024\050\203\112\020\234\033\365\157\274\251\216\365\151"
-+"\376\262\301\125\314\347\024\311\371\133\024\123\121\007\352\316"
-+"\075\344\117\050\037\074\141\011\327\063\322\156\247\156\324\307"
-+"\023\011\157\153\135\024\356\235\211\033\245\152\362\366\370\320"
-+"\162\216\352\162\037\057\064\152\051\012\305\012\354\034\100\205"
-+"\022\367\246\245\323\117\255\300\205\214\114\174\163\040\314\123"
-+"\030\361\262\130\114\001\365\277\352\144\325\134\071\305\316\154"
-+"\314\123\132\126\272\101\017\045\337\153\120\266\307\212\240\275"
-+"\002\302\305\073\125\245\262\144\042\204\121\050\126\256\061\356"
-+"\136\373\013\026\115\106\005\221\200\104\355\254\155\360\127\250"
-+"\372\353\141\110\240\313\033\263\037\216\315\305\041\167\003\204"
-+"\036\374\254\243\103\010\143\214\355\371\047\357\264\260\135\147"
-+"\326\117\355\320\213\076\135\133\311\221\275\226\002\204\075\305"
-+"\115\274\102\077\164\375\074\135\254\134\110\066\136\207\061\057"
-+"\030\154\304\150\356\241\213\311\131\320\030\343\000\200\263\124"
-+"\047\056\231\360\025\123\002\003\001\000\001\243\202\002\017\060"
-+"\202\002\013\060\035\006\003\125\035\016\004\026\004\024\064\161"
-+"\321\070\327\025\066\203\107\153\327\067\144\102\073\216\215\122"
-+"\235\253\060\201\361\006\003\125\035\043\004\201\351\060\201\346"
-+"\200\024\064\161\321\070\327\025\066\203\107\153\327\067\144\102"
-+"\073\216\215\122\235\253\241\201\302\244\201\277\060\201\274\061"
-+"\013\060\011\006\003\125\004\006\023\002\125\123\061\020\060\016"
-+"\006\003\125\004\010\023\007\111\156\144\151\141\156\141\061\025"
-+"\060\023\006\003\125\004\007\023\014\111\156\144\151\141\156\141"
-+"\160\157\154\151\163\061\050\060\046\006\003\125\004\012\023\037"
-+"\123\157\146\164\167\141\162\145\040\151\156\040\164\150\145\040"
-+"\120\165\142\154\151\143\040\111\156\164\145\162\145\163\164\061"
-+"\023\060\021\006\003\125\004\013\023\012\150\157\163\164\155\141"
-+"\163\164\145\162\061\036\060\034\006\003\125\004\003\023\025\103"
-+"\145\162\164\151\146\151\143\141\164\145\040\101\165\164\150\157"
-+"\162\151\164\171\061\045\060\043\006\011\052\206\110\206\367\015"
-+"\001\011\001\026\026\150\157\163\164\155\141\163\164\145\162\100"
-+"\163\160\151\055\151\156\143\056\157\162\147\202\011\000\350\216"
-+"\266\311\370\052\024\050\060\017\006\003\125\035\023\001\001\377"
-+"\004\005\060\003\001\001\377\060\021\006\011\140\206\110\001\206"
-+"\370\102\001\001\004\004\003\002\000\007\060\011\006\003\125\035"
-+"\022\004\002\060\000\060\056\006\011\140\206\110\001\206\370\102"
-+"\001\015\004\041\026\037\123\157\146\164\167\141\162\145\040\151"
-+"\156\040\164\150\145\040\120\165\142\154\151\143\040\111\156\164"
-+"\145\162\145\163\164\060\060\006\011\140\206\110\001\206\370\102"
-+"\001\004\004\043\026\041\150\164\164\160\163\072\057\057\143\141"
-+"\056\163\160\151\055\151\156\143\056\157\162\147\057\143\141\055"
-+"\143\162\154\056\160\145\155\060\062\006\011\140\206\110\001\206"
-+"\370\102\001\003\004\045\026\043\150\164\164\160\163\072\057\057"
-+"\143\141\056\163\160\151\055\151\156\143\056\157\162\147\057\143"
-+"\145\162\164\055\143\162\154\056\160\145\155\060\041\006\003\125"
-+"\035\021\004\032\060\030\201\026\150\157\163\164\155\141\163\164"
-+"\145\162\100\163\160\151\055\151\156\143\056\157\162\147\060\016"
-+"\006\003\125\035\017\001\001\377\004\004\003\002\001\006\060\015"
-+"\006\011\052\206\110\206\367\015\001\001\005\005\000\003\202\002"
-+"\001\000\264\315\275\340\271\352\262\003\053\176\062\351\336\162"
-+"\077\311\113\202\136\235\342\257\125\011\242\014\124\350\317\030"
-+"\074\050\040\035\251\273\003\002\057\122\071\042\371\027\317\255"
-+"\147\220\263\003\177\330\025\343\153\176\273\233\126\001\257\065"
-+"\324\332\271\307\147\027\233\324\325\016\067\263\040\101\056\014"
-+"\001\304\133\371\145\076\302\141\350\322\360\152\225\160\303\306"
-+"\157\325\065\244\254\131\162\341\211\337\241\240\235\044\275\051"
-+"\171\351\141\052\331\323\036\311\106\244\010\170\101\222\162\017"
-+"\253\024\165\355\011\360\242\360\134\357\303\012\142\040\267\302"
-+"\050\146\256\114\057\056\217\105\143\046\226\360\356\061\346\213"
-+"\125\233\252\072\371\202\071\035\210\074\342\007\165\032\341\017"
-+"\261\060\274\161\062\322\072\376\372\241\211\363\103\054\326\162"
-+"\304\171\247\025\110\005\300\330\055\162\002\343\313\075\026\152"
-+"\272\311\270\021\020\342\111\205\314\226\107\140\005\045\056\357"
-+"\165\131\063\365\107\031\026\357\332\154\137\007\310\246\120\266"
-+"\035\313\146\064\045\374\146\203\353\305\266\060\101\370\106\104"
-+"\142\250\301\014\124\346\352\114\132\050\346\256\306\267\376\177"
-+"\073\226\250\056\356\307\150\076\335\000\075\051\257\052\143\253"
-+"\137\356\111\052\055\305\334\373\321\306\323\321\227\126\122\206"
-+"\266\224\353\324\140\121\267\374\036\233\314\002\233\324\037\217"
-+"\371\112\217\266\056\050\073\027\314\305\246\005\343\322\323\265"
-+"\306\003\311\341\110\102\233\313\077\344\027\340\376\015\001\225"
-+"\011\272\270\015\161\344\011\160\167\102\330\115\341\102\251\140"
-+"\203\327\027\211\103\322\324\335\247\030\266\253\324\044\045\207"
-+"\265\324\342\374\056\042\151\275\255\150\054\377\162\265\230\252"
-+"\006\234\347\052\152\270\241\223\166\316\260\363\177\234\341\340"
-+"\117\270\330\206\106\245\063\002\054\045\141\067\052\222\310\254"
-+"\201\164\150\143\207\063\166\275\005\177\136\325\325\002\155\275"
-+"\257\377\052\132\252\111\354\230\171\107\123\221\366\016\064\132"
-+"\311\245\306\353\262\343\305\254\266\240\160\065\273\310\121\151"
-+"\320\362\265\242\062\156\274\077\240\067\071\174\161\066\246\005"
-+"\337\014\022\344\026\247\305\326\313\143\243\225\160\077\346\004"
-+"\243\140"
-+, (PRUint32)2066 }
-+};
-+static const NSSItem nss_builtins_items_333 [] = {
-+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
-+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
-+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
-+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
-+ { (void *)"Software in the Public Interest, Inc. Root CA (2008)", (PRUint32)53 },
-+ { (void *)"\257\160\210\103\203\202\002\025\315\141\306\274\354\375\067\044"
-+"\251\220\103\034"
-+, (PRUint32)20 },
-+ { (void *)"\052\107\237\140\273\203\164\157\001\003\327\013\015\366\015\170"
-+, (PRUint32)16 },
-+ { (void *)"\060\201\274\061\013\060\011\006\003\125\004\006\023\002\125\123"
-+"\061\020\060\016\006\003\125\004\010\023\007\111\156\144\151\141"
-+"\156\141\061\025\060\023\006\003\125\004\007\023\014\111\156\144"
-+"\151\141\156\141\160\157\154\151\163\061\050\060\046\006\003\125"
-+"\004\012\023\037\123\157\146\164\167\141\162\145\040\151\156\040"
-+"\164\150\145\040\120\165\142\154\151\143\040\111\156\164\145\162"
-+"\145\163\164\061\023\060\021\006\003\125\004\013\023\012\150\157"
-+"\163\164\155\141\163\164\145\162\061\036\060\034\006\003\125\004"
-+"\003\023\025\103\145\162\164\151\146\151\143\141\164\145\040\101"
-+"\165\164\150\157\162\151\164\171\061\045\060\043\006\011\052\206"
-+"\110\206\367\015\001\011\001\026\026\150\157\163\164\155\141\163"
-+"\164\145\162\100\163\160\151\055\151\156\143\056\157\162\147"
-+, (PRUint32)191 },
-+ { (void *)"\002\011\000\350\216\266\311\370\052\024\050"
-+, (PRUint32)11 },
-+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
-+};
-
- builtinsInternalObject
- nss_builtins_data[] = {
-@@ -22244,11 +22787,17 @@
- { 11, nss_builtins_types_324, nss_builtins_items_324, {NULL} },
- { 13, nss_builtins_types_325, nss_builtins_items_325, {NULL} },
- { 11, nss_builtins_types_326, nss_builtins_items_326, {NULL} },
-- { 13, nss_builtins_types_327, nss_builtins_items_327, {NULL} }
-+ { 13, nss_builtins_types_327, nss_builtins_items_327, {NULL} },
-+ { 11, nss_builtins_types_328, nss_builtins_items_328, {NULL} },
-+ { 13, nss_builtins_types_329, nss_builtins_items_329, {NULL} },
-+ { 11, nss_builtins_types_330, nss_builtins_items_330, {NULL} },
-+ { 13, nss_builtins_types_331, nss_builtins_items_331, {NULL} },
-+ { 11, nss_builtins_types_332, nss_builtins_items_332, {NULL} },
-+ { 13, nss_builtins_types_333, nss_builtins_items_333, {NULL} }
- };
- const PRUint32
- #ifdef DEBUG
-- nss_builtins_nObjects = 327+1;
-+ nss_builtins_nObjects = 333+1;
- #else
-- nss_builtins_nObjects = 327;
-+ nss_builtins_nObjects = 333;
- #endif /* DEBUG */
Index: nss/mozilla/security/nss/lib/ckfw/builtins/certdata.txt
===================================================================
---- nss.orig/mozilla/security/nss/lib/ckfw/builtins/certdata.txt 2011-08-12 12:25:29.000000000 +0200
-+++ nss/mozilla/security/nss/lib/ckfw/builtins/certdata.txt 2011-08-12 12:29:25.460425941 +0200
-@@ -22589,3 +22589,558 @@
- CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
- CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN
+--- nss.orig/mozilla/security/nss/lib/ckfw/builtins/certdata.txt 2011-11-05 17:03:08.370363036 +0100
++++ nss/mozilla/security/nss/lib/ckfw/builtins/certdata.txt 2011-11-05 17:03:28.082392262 +0100
+@@ -23580,3 +23580,557 @@
+ CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED
CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
-+
+
+#
+# Certificate "CAcert.org Class 1 Root CA"
+#
diff --git a/extra/poppler/PKGBUILD b/extra/poppler/PKGBUILD
index 1a3a0aafa..bb1327fdd 100644
--- a/extra/poppler/PKGBUILD
+++ b/extra/poppler/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 142670 2011-11-12 17:46:43Z ibiru $
+# $Id: PKGBUILD 145182 2011-12-19 11:45:17Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgbase=poppler
pkgname=('poppler' 'poppler-glib' 'poppler-qt')
-pkgver=0.18.1
+pkgver=0.18.2
pkgrel=1
arch=(i686 x86_64)
license=('GPL')
@@ -14,9 +14,9 @@ _testtag=0d2bfd4af4c76a3bac27ccaff793d9129df7b57a
source=(http://poppler.freedesktop.org/${pkgbase}-${pkgver}.tar.gz
http://cgit.freedesktop.org/poppler/test/snapshot/test-${_testtag}.tar.bz2
git-fixes.patch)
-md5sums=('d30e883a27423c936ef338ce1d967e2d'
+md5sums=('38616927823ef01937aab26872e957e4'
'9dc64c254a31e570507bdd4ad4ba629a'
- 'a73ba6515aa73cb20c480692da52c79e')
+ 'af56b7b1b24a08f7498a0c7f5e862b93')
build() {
cd "${srcdir}/${pkgbase}-${pkgver}"
@@ -39,7 +39,7 @@ check() {
cd "${srcdir}"
ln -sf test-${_testtag} test
cd ${pkgbase}-${pkgver}
- make check
+ LANG=en_US.UTF8 make check
}
package_poppler() {
diff --git a/extra/poppler/git-fixes.patch b/extra/poppler/git-fixes.patch
index a18a31aec..24a66b84f 100644
--- a/extra/poppler/git-fixes.patch
+++ b/extra/poppler/git-fixes.patch
@@ -1,107 +1,110 @@
-From e4a2adb02969e872e37e408ced4c39131c6751ea Mon Sep 17 00:00:00 2001
-From: Carlos Garcia Campos <carlosgc@gnome.org>
-Date: Sun, 30 Oct 2011 15:02:19 +0000
-Subject: pdftocairo: Make sure beginDocument() is always called
+From 74f4299e8f9e2d204979479f6579dd784db678a4 Mon Sep 17 00:00:00 2001
+From: Albert Astals Cid <aacid@kde.org>
+Date: Sun, 04 Dec 2011 16:29:45 +0000
+Subject: Do not fail if we are trying to save a file with Encrypt but that we have not modified at all
-This fixes a crash when rendering only odd/even pages in a printing
-format.
+Fixes KDE bug #288045
+(cherry picked from commit 63c942a45227ef28fb94ef4765171d9812fffafa)
---
-diff --git a/utils/pdftocairo.cc b/utils/pdftocairo.cc
-index e458ee5..1b67c90 100644
---- a/utils/pdftocairo.cc
-+++ b/utils/pdftocairo.cc
-@@ -903,6 +903,10 @@ int main(int argc, char *argv[]) {
- lastPage = firstPage;
- }
+diff --git a/poppler/PDFDoc.cc b/poppler/PDFDoc.cc
+index 01d2759..2758206 100644
+--- a/poppler/PDFDoc.cc
++++ b/poppler/PDFDoc.cc
+@@ -707,35 +707,44 @@ int PDFDoc::saveAs(GooString *name, PDFWriteMode mode) {
+
+ int PDFDoc::saveAs(OutStream *outStr, PDFWriteMode mode) {
-+ // Make sure firstPage is always used so that beginDocument() is called
-+ if ((printOnlyEven && pg % 2 == 0) || (printOnlyOdd && pg % 2 == 1))
-+ firstPage++;
+- // we don't support files with Encrypt at the moment
++ // find if we have updated objects
++ GBool updated = gFalse;
++ for(int i=0; i<xref->getNumObjects(); i++) {
++ if (xref->getEntry(i)->updated) {
++ updated = gTrue;
++ break;
++ }
++ }
+
- cairoOut = new CairoOutputDev();
- cairoOut->startDoc(doc->getXRef(), doc->getCatalog());
- if (sz != 0)
---
-cgit v0.9.0.2-2-gbebe
-From 61b1556d1c62bf090b2eadf93e4e7d0aff7b8015 Mon Sep 17 00:00:00 2001
-From: Carlos Garcia Campos <carlosgc@gnome.org>
-Date: Sun, 30 Oct 2011 15:08:46 +0000
-Subject: pdftocairo: Use fisrtPage instead of uninitialized pg variable
-
-This fixes an error in my previous commit.
----
-diff --git a/utils/pdftocairo.cc b/utils/pdftocairo.cc
-index 1b67c90..d0d1ec6 100644
---- a/utils/pdftocairo.cc
-+++ b/utils/pdftocairo.cc
-@@ -904,7 +904,7 @@ int main(int argc, char *argv[]) {
++ // we don't support rewriting files with Encrypt at the moment
+ Object obj;
+ xref->getTrailerDict()->getDict()->lookupNF("Encrypt", &obj);
+ if (!obj.isNull())
+ {
+ obj.free();
+- return errEncrypted;
++ if (!updated && mode == writeStandard) {
++ // simply copy the original file
++ saveWithoutChangesAs (outStr);
++ } else {
++ return errEncrypted;
++ }
}
+- obj.free();
++ else
++ {
++ obj.free();
- // Make sure firstPage is always used so that beginDocument() is called
-- if ((printOnlyEven && pg % 2 == 0) || (printOnlyOdd && pg % 2 == 1))
-+ if ((printOnlyEven && firstPage % 2 == 0) || (printOnlyOdd && firstPage % 2 == 1))
- firstPage++;
+- if (mode == writeForceRewrite) {
+- saveCompleteRewrite(outStr);
+- } else if (mode == writeForceIncremental) {
+- saveIncrementalUpdate(outStr);
+- } else { // let poppler decide
+- // find if we have updated objects
+- GBool updated = gFalse;
+- for(int i=0; i<xref->getNumObjects(); i++) {
+- if (xref->getEntry(i)->updated) {
+- updated = gTrue;
+- break;
++ if (mode == writeForceRewrite) {
++ saveCompleteRewrite(outStr);
++ } else if (mode == writeForceIncremental) {
++ saveIncrementalUpdate(outStr);
++ } else { // let poppler decide
++ if(updated) {
++ saveIncrementalUpdate(outStr);
++ } else {
++ // simply copy the original file
++ saveWithoutChangesAs (outStr);
+ }
+ }
+- if(updated) {
+- saveIncrementalUpdate(outStr);
+- } else {
+- // simply copy the original file
+- saveWithoutChangesAs (outStr);
+- }
+ }
- cairoOut = new CairoOutputDev();
+ return errNone;
--
cgit v0.9.0.2-2-gbebe
-From ebf7fbc74da10d1bc423d33b26e30166870642e4 Mon Sep 17 00:00:00 2001
-From: Rex Dieter <rdieter@math.unl.edu>
-Date: Tue, 01 Nov 2011 08:40:53 +0000
-Subject: Fix pkg-config files
+From 03544e2f602319f0b381f5f357e14cc2cc77d2c1 Mon Sep 17 00:00:00 2001
+From: Albert Astals Cid <aacid@kde.org>
+Date: Tue, 06 Dec 2011 22:21:15 +0000
+Subject: include strings.h as we use memcpy
-We were using $FOO_REQUIRED instead of @FOO_REQUIRED@
+Fixes bug 43558
+(cherry picked from commit 388d72ac27ae98fe3a1ebd21760f2b0fa0249a9b)
---
-diff --git a/configure.ac b/configure.ac
-index 3a120ca..c4f5b92 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -409,6 +409,7 @@ if test x$enable_cairo_output = xyes; then
- POPPLER_GLIB_DISABLE_SINGLE_INCLUDES=""
-
- GLIB_REQUIRED=2.18
-+ AC_SUBST(GLIB_REQUIRED)
- AC_ARG_ENABLE(poppler-glib,
- AC_HELP_STRING([--disable-poppler-glib],
- [Don't compile poppler glib wrapper.]),
-diff --git a/poppler-glib-uninstalled.pc.in b/poppler-glib-uninstalled.pc.in
-index 55a2278..5fcb6f2 100644
---- a/poppler-glib-uninstalled.pc.in
-+++ b/poppler-glib-uninstalled.pc.in
-@@ -1,7 +1,7 @@
- Name: poppler-glib
- Description: GLib wrapper for poppler - uninstalled
- Version: @VERSION@
--Requires: glib-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED cairo >= $CAIRO_VERSION
-+Requires: glib-2.0 >= @GLIB_REQUIRED@ gobject-2.0 >= @GLIB_REQUIRED@ cairo >= @CAIRO_VERSION@
-
- Libs: ${pc_top_builddir}/${pcfiledir}/glib/libpoppler-glib.la
- Cflags: -I${pc_top_builddir}/${pcfiledir}/glib
-diff --git a/poppler-glib.pc.cmake b/poppler-glib.pc.cmake
-index 3264ed6..e15e669 100644
---- a/poppler-glib.pc.cmake
-+++ b/poppler-glib.pc.cmake
-@@ -6,7 +6,7 @@ includedir=${prefix}/include
- Name: poppler-glib
- Description: GLib wrapper for poppler
- Version: @POPPLER_VERSION@
--Requires: glib-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED cairo >= $CAIRO_VERSION
-+Requires: glib-2.0 >= @GLIB_REQUIRED@ gobject-2.0 >= @GLIB_REQUIRED@ cairo >= @CAIRO_VERSION@
- @PC_REQUIRES_PRIVATE@
+diff --git a/goo/PNGWriter.cc b/goo/PNGWriter.cc
+index f88c3a7..1fb8cab 100644
+--- a/goo/PNGWriter.cc
++++ b/goo/PNGWriter.cc
+@@ -6,7 +6,7 @@
+ //
+ // Copyright (C) 2009 Warren Toomey <wkt@tuhs.org>
+ // Copyright (C) 2009 Shen Liang <shenzhuxi@gmail.com>
+-// Copyright (C) 2009 Albert Astals Cid <aacid@kde.org>
++// Copyright (C) 2009, 2011 Albert Astals Cid <aacid@kde.org>
+ // Copyright (C) 2009 Stefan Thomas <thomas@eload24.com>
+ // Copyright (C) 2010, 2011 Adrian Johnson <ajohnson@redneon.com>
+ // Copyright (C) 2011 Thomas Klausner <wiz@danbala.tuwien.ac.at>
+@@ -19,6 +19,7 @@
- Libs: -L${libdir} -lpoppler-glib
-diff --git a/poppler-glib.pc.in b/poppler-glib.pc.in
-index 04d9bb9..9ba8978 100644
---- a/poppler-glib.pc.in
-+++ b/poppler-glib.pc.in
-@@ -6,7 +6,7 @@ includedir=@includedir@
- Name: poppler-glib
- Description: GLib wrapper for poppler
- Version: @VERSION@
--Requires: glib-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED cairo >= $CAIRO_VERSION
-+Requires: glib-2.0 >= @GLIB_REQUIRED@ gobject-2.0 >= @GLIB_REQUIRED@ cairo >= @CAIRO_VERSION@
- @PC_REQUIRES_PRIVATE@
+ #include <zlib.h>
+ #include <stdlib.h>
++#include <string.h>
- Libs: -L${libdir} -lpoppler-glib
+ #include "poppler/Error.h"
+ #include "goo/gmem.h"
--
cgit v0.9.0.2-2-gbebe
diff --git a/extra/skanlite/PKGBUILD b/extra/skanlite/PKGBUILD
index 0014d99c7..269f9b724 100644
--- a/extra/skanlite/PKGBUILD
+++ b/extra/skanlite/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 133044 2011-07-27 07:39:38Z andrea $
+# $Id: PKGBUILD 145180 2011-12-19 08:38:09Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
pkgname=skanlite
-pkgver=0.7
-pkgrel=2
+pkgver=0.8
+pkgrel=1
pkgdesc="Image Scanning Application for KDE"
arch=('i686' 'x86_64')
url='http://kde-apps.org/content/show.php?content=109803'
@@ -12,7 +12,7 @@ license=('GPL')
depends=('kdebase-runtime' 'libksane')
makedepends=('pkgconfig' 'cmake' 'automoc4')
source=("http://downloads.sourceforge.net/sanewidget/${pkgname}-${pkgver}.tar.bz2")
-md5sums=('cb256c392210c43d51e317c6a5ba9ad2')
+md5sums=('baa43dbc78be696e121969b0a3d88929')
build() {
cd "${srcdir}"
diff --git a/extra/smartmontools/PKGBUILD b/extra/smartmontools/PKGBUILD
index eefec18e4..158ee6bd1 100644
--- a/extra/smartmontools/PKGBUILD
+++ b/extra/smartmontools/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 143965 2011-11-30 23:00:34Z giovanni $
+# $Id: PKGBUILD 145192 2011-12-19 12:38:49Z giovanni $
# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
# Contributor: Jeff Mickey <jeff@archlinux.org>
# Contributor: Jani Talikka <jani.talikka@gmail.com>
@@ -6,12 +6,12 @@
pkgname=smartmontools
pkgver=5.42
-pkgrel=2
+pkgrel=3
pkgdesc="Control and monitor S.M.A.R.T. enabled ATA and SCSI Hard Drives"
url="http://smartmontools.sourceforge.net"
license=('GPL')
arch=('i686' 'x86_64')
-depends=('gcc-libs')
+depends=('gcc-libs' 'libcap-ng')
backup=('etc/smartd.conf'
'etc/conf.d/smartd')
source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz"
@@ -26,7 +26,8 @@ build() {
./configure --prefix=/usr \
--sysconfdir=/etc \
- --enable-drivedb
+ --enable-drivedb \
+ --with-libcap-ng=yes
make
}
diff --git a/extra/xorg-xinit/PKGBUILD b/extra/xorg-xinit/PKGBUILD
index a65ace85e..edb93716e 100644
--- a/extra/xorg-xinit/PKGBUILD
+++ b/extra/xorg-xinit/PKGBUILD
@@ -1,15 +1,15 @@
-# $Id: PKGBUILD 140273 2011-10-11 21:27:57Z jgc $
+# $Id: PKGBUILD 145242 2011-12-19 22:24:21Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: Alexander Baldeck <alexander@archlinux.org>
pkgname=xorg-xinit
pkgver=1.3.1
-pkgrel=1
+pkgrel=2
pkgdesc="X.Org initialisation program "
arch=('i686' 'x86_64')
license=('custom')
url="http://xorg.freedesktop.org/"
-depends=('libx11' 'xorg-xauth')
+depends=('libx11' 'xorg-xauth' 'inetutils')
makedepends=('xorg-util-macros')
optdepends=('xorg-twm' 'xterm')
backup=('etc/skel/.xinitrc'
@@ -18,12 +18,14 @@ backup=('etc/skel/.xinitrc'
'etc/X11/xinit/xinitrc')
source=(${url}/releases/individual/app/xinit-${pkgver}.tar.bz2
06_move_serverauthfile_into_tmp.diff
+ fs25361.patch
xinitrc
xsession
xserverrc)
options=(!emptydirs)
md5sums=('ee234056d8a3dbf37b61b4bcb35b88e4'
'abd072ec435ce084cf4e89c58f83d45c'
+ '73a597d3fb7f5b9487318ac8cfd4bedf'
'c7b406c3c5c1e8011b3ac7d6b29c1a2c'
'7873d97db30d6c279ed37e3559e7c59d'
'c5baef10fdb7239594daee72a94ddab3')
@@ -31,6 +33,7 @@ md5sums=('ee234056d8a3dbf37b61b4bcb35b88e4'
build() {
cd "${srcdir}/xinit-${pkgver}"
patch -Np1 -i "${srcdir}/06_move_serverauthfile_into_tmp.diff"
+ patch -Np1 -i "${srcdir}/fs25361.patch"
sed -i -e 's/XSLASHGLOB.sh/XSLASHGLOB/' xinitrc.cpp
./configure --prefix=/usr --with-xinitdir=/etc/X11/xinit
make
diff --git a/extra/xorg-xinit/fs25361.patch b/extra/xorg-xinit/fs25361.patch
new file mode 100644
index 000000000..4596122de
--- /dev/null
+++ b/extra/xorg-xinit/fs25361.patch
@@ -0,0 +1,16 @@
+Common subdirectories: xinit.orig/privileged_startx and xinit/privileged_startx
+diff -u xinit.orig/startx.cpp xinit/startx.cpp
+--- xinit.orig/startx.cpp 2011-08-02 18:26:57.161711018 +0400
++++ xinit/startx.cpp 2011-08-02 19:06:39.348816866 +0400
+@@ -290,9 +290,9 @@
+ XCOMM now add the same credentials to the client authority file
+ XCOMM if '$displayname' already exists do not overwrite it as another
+ XCOMM server man need it. Add them to the '$xserverauthfile' instead.
+- for displayname in $authdisplay $hostname$authdisplay; do
++ for displayname in $authdisplay $hostname/unix$authdisplay; do
+ authcookie=`XAUTH list "$displayname" @@
+- | sed -n "s/.*$displayname[[:space:]*].*[[:space:]*]//p"` 2>/dev/null;
++ | sed -n "s/.*$hostname\/unix$authdisplay[[:space:]*].*[[:space:]*]//p"` 2>/dev/null;
+ if [ "z${authcookie}" = "z" ] ; then
+ XAUTH -q << EOF
+ add $displayname . $mcookie
diff --git a/extra/xterm/PKGBUILD b/extra/xterm/PKGBUILD
index 594d9715b..77c59507d 100644
--- a/extra/xterm/PKGBUILD
+++ b/extra/xterm/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 139849 2011-10-05 10:55:56Z jgc $
+# $Id: PKGBUILD 145186 2011-12-19 11:53:19Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: Alexander Baldeck <alexander@archlinux.org>
pkgname=xterm
-pkgver=275
+pkgver=276
pkgrel=1
pkgdesc="X Terminal Emulator"
arch=('i686' 'x86_64')
@@ -12,7 +12,7 @@ license=('custom')
depends=('libxft' 'libxaw' 'ncurses' 'xorg-luit' 'xbitmaps')
source=(ftp://invisible-island.net/${pkgname}/${pkgname}-${pkgver}.tgz
LICENSE)
-md5sums=('bbbe6a4566c04656ec21863351570ac8'
+md5sums=('50ca8ee40e8a0992019f8f35042c9abb'
'10ecc3f8ee91e3189863a172f68282d2')
build() {
diff --git a/kde-unstable/kdelibs/PKGBUILD b/kde-unstable/kdelibs/PKGBUILD
index b663c6cf2..8a374bf7c 100644
--- a/kde-unstable/kdelibs/PKGBUILD
+++ b/kde-unstable/kdelibs/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 144751 2011-12-08 10:17:18Z andrea $
+# $Id: PKGBUILD 145241 2011-12-19 21:39:45Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org
# Contributor: Pierre Schmitz <pierre@archlinux.de>
pkgname=kdelibs
pkgver=4.7.90
-pkgrel=1
+pkgrel=2
pkgdesc="KDE Core Libraries"
arch=('i686' 'x86_64')
url='http://www.kde.org'
@@ -12,7 +12,7 @@ license=('GPL' 'LGPL' 'FDL')
depends=('strigi' 'attica' 'libxss' 'xz' 'soprano' 'krb5' 'grantlee'
'shared-desktop-ontologies' 'qca' 'libdbusmenu-qt' 'polkit-qt'
'shared-mime-info' 'enchant' 'giflib' 'jasper' 'openexr' 'docbook-xsl'
- 'phonon' 'upower' 'udisks' 'libxcursor')
+ 'upower' 'udisks' 'libxcursor' 'qtwebkit')
makedepends=('cmake' 'automoc4' 'avahi' 'libgl' 'hspell')
replaces=('kdelibs-experimental')
install=${pkgname}.install
diff --git a/libre/cups-libre/PKGBUILD b/libre/cups-libre/PKGBUILD
new file mode 100644
index 000000000..d9531974c
--- /dev/null
+++ b/libre/cups-libre/PKGBUILD
@@ -0,0 +1,147 @@
+# $Id: PKGBUILD 135897 2011-08-20 06:24:46Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgbase="cups"
+pkgname=('libcups' 'cups-libre')
+pkgver=1.5.0
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.cups.org/"
+makedepends=('libtiff>=3.9.2-2' 'libpng>=1.4.0' 'acl' 'openslp' 'pam' 'xdg-utils' 'krb5' 'gnutls>=2.8.3' 'poppler>=0.12.3'
+ 'xinetd' 'gzip' 'autoconf' 'php' 'libusb-compat' 'dbus-core' 'avahi' 'hicolor-icon-theme')
+source=(ftp://ftp.easysw.com/pub/cups/${pkgver}/cups-${pkgver}-source.tar.bz2
+ cups-avahi.patch
+ cups-no-export-ssllibs.patch
+ cups-no-gcrypt.patch
+ cups cups.logrotate cups.pam)
+#options=('!emptydirs')
+md5sums=('e54ed09ede2340fc3014913333520fe4'
+ 'e0843e8d8c345792ac73a185260e69fe'
+ '9b8467a1e51d360096b70e2c3c081e6c'
+ '3733c23e77eb503bd94cc368e02830dc'
+ '9657daa21760bb0b5fa3d8b51d5e01a1'
+ 'f861b18f4446c43918c8643dcbbd7f6d'
+ '96f82c38f3f540b53f3e5144900acf17')
+
+# move client.conf man page for next update to the client pkg.
+
+build() {
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ # Avahi support in the dnssd backend. patch from Debian based on the Fedora work but brings it in a single file http://patch-tracker.debian.org/package/cups
+ patch -Np1 -i ${srcdir}/cups-avahi.patch
+
+ # Do not export SSL libs in cups-config
+ patch -Np1 -i "${srcdir}/cups-no-export-ssllibs.patch"
+
+ patch -Np1 -i "${srcdir}/cups-no-gcrypt.patch"
+
+ # Rebuild configure script for --enable-avahi.
+ aclocal -I config-scripts
+ autoconf -I config-scripts
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libdir=/usr/lib \
+ --with-logdir=/var/log/cups \
+ --with-docdir=/usr/share/cups/doc \
+ --with-cups-user=daemon \
+ --with-cups-group=lp \
+ --enable-pam=yes \
+ --disable-ldap \
+ --enable-raw-printing \
+ --enable-dbus --with-dbusdir=/etc/dbus-1 \
+ --enable-ssl=yes --enable-gnutls \
+ --enable-threads \
+ --enable-avahi\
+ --with-php=/usr/bin/php-cgi \
+ --with-pdftops=pdftops \
+ --with-optim="$CFLAGS"
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgbase-$pkgver"
+ #httpAddrGetList(workstation64): FAIL
+ #1 TESTS FAILED!
+ #make[1]: *** [testhttp] Error 1
+ make -k check || /bin/true
+}
+
+package_libcups() {
+pkgdesc="The CUPS Printing System - client libraries and headers"
+depends=('gnutls>=2.8.3' 'libtiff>=3.9.2-2' 'libpng>=1.4.0' 'krb5' 'avahi')
+
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ make BUILDROOT=${pkgdir} install-headers install-libs
+ # put this into the libs pkg to make other software find the libs(no pkg-config file included)
+ mkdir -p ${pkgdir}/usr/bin
+ install -m755 ${srcdir}/${pkgbase}-${pkgver}/cups-config ${pkgdir}/usr/bin/cups-config
+}
+
+package_cups-libre() {
+pkgdesc="The CUPS Printing System - daemon package"
+provides=("${pkgbase}=${pkgver}")
+replaces=("${pkgbase}")
+conflicts=("${pkgbase}")
+install=cups.install
+backup=(etc/cups/cupsd.conf
+ etc/cups/mime.convs
+ etc/cups/mime.types
+ etc/cups/snmp.conf
+ etc/cups/printers.conf
+ etc/cups/classes.conf
+ etc/cups/client.conf
+ etc/cups/subscriptions.conf
+ etc/dbus-1/system.d/cups.conf
+ etc/logrotate.d/cups
+ etc/pam.d/cups
+ etc/xinetd.d/cups-lpd)
+depends=('acl' 'openslp' 'pam' "libcups>=${pkgver}" 'poppler>=0.12.3' 'libusb-compat' 'dbus-core' 'hicolor-icon-theme')
+optdepends=('php: for included phpcups.so module'
+ 'ghostscript: for non-PostScript printers to print with CUPS to convert PostScript to raster images'
+ 'foomatic-db: drivers use Ghostscript to convert PostScript to a printable form directly'
+ 'foomatic-db-engine: drivers use Ghostscript to convert PostScript to a printable form directly'
+ 'xdg-utils: xdg .desktop file support')
+
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ make BUILDROOT=${pkgdir} install-data install-exec
+
+ # this one we ship in the libcups pkg
+ rm -f ${pkgdir}/usr/bin/cups-config
+
+ # kill the sysv stuff
+ rm -rf ${pkgdir}/etc/rc*.d
+ rm -rf ${pkgdir}/etc/init.d
+ install -D -m755 ../cups ${pkgdir}/etc/rc.d/cupsd
+ install -D -m644 ../cups.logrotate ${pkgdir}/etc/logrotate.d/cups
+ install -D -m644 ../cups.pam ${pkgdir}/etc/pam.d/cups
+
+ # fix perms on /var/spool and /etc
+ chmod 755 ${pkgdir}/var/spool
+ chmod 755 ${pkgdir}/etc
+
+ # serial backend needs to run as root (http://bugs.archlinux.org/task/20396)
+ chmod 700 ${pkgdir}/usr/lib/cups/backend/serial
+
+ # install ssl directory where to store the certs, solves some samba issues
+ install -dm700 -g lp ${pkgdir}/etc/cups/ssl
+ # remove directory from package, we create it in cups rc.d file
+ rm -rf ${pkgdir}/var/run
+# install -dm511 -g lp ${pkgdir}/var/run/cups/certs
+
+ # install some more configuration files that will get filled by cupsd
+ touch ${pkgdir}/etc/cups/printers.conf
+ touch ${pkgdir}/etc/cups/classes.conf
+ touch ${pkgdir}/etc/cups/client.conf
+ echo "# see 'man client.conf'" >> ${pkgdir}/etc/cups/client.conf
+ echo "ServerName /var/run/cups/cups.sock # alternative: ServerName hostname-or-ip-address[:port] of a remote server" >> ${pkgdir}/etc/cups/client.conf
+ touch ${pkgdir}/etc/cups/subscriptions.conf
+ chgrp lp ${pkgdir}/etc/cups/{printers.conf,classes.conf,client.conf,subscriptions.conf}
+
+ # fix .desktop file
+ sed -i 's|^Exec=htmlview http://localhost:631/|Exec=xdg-open http://localhost:631/|g' ${pkgdir}/usr/share/applications/cups.desktop
+
+ # compress some driver files, adopted from Fedora
+ find ${pkgdir}/usr/share/cups/model -name "*.ppd" | xargs gzip -n9f
+}
+
diff --git a/libre/cups-libre/cups b/libre/cups-libre/cups
new file mode 100644
index 000000000..a9d91de76
--- /dev/null
+++ b/libre/cups-libre/cups
@@ -0,0 +1,69 @@
+#!/bin/bash
+
+daemon_name=cupsd
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+#. /etc/conf.d/$daemon_name.conf
+
+get_pid() {
+ pidof -o %PPID $daemon_name
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting $daemon_name daemon"
+
+ PID=$(get_pid)
+ if [ -z "$PID" ]; then
+ [ -f /var/run/$daemon_name.pid ] && rm -f /var/run/$daemon_name.pid
+ # RUN
+ $daemon_name
+ #
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ echo $(get_pid) > /var/run/$daemon_name.pid
+ add_daemon $daemon_name
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping $daemon_name daemon"
+ PID=$(get_pid)
+ # KILL
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ #
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm -f /var/run/$daemon_name.pid &> /dev/null
+ rm_daemon $daemon_name
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+
+ status)
+ stat_busy "Checking $daemon_name status";
+ ck_status $daemon_name
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|restart|status}"
+esac
+
+exit 0
+
diff --git a/libre/cups-libre/cups-avahi.patch b/libre/cups-libre/cups-avahi.patch
new file mode 100644
index 000000000..47860ef97
--- /dev/null
+++ b/libre/cups-libre/cups-avahi.patch
@@ -0,0 +1,3157 @@
+Description: Avahi support
+Bug: http://www.cups.org/str.php?L3066
+Author: Tim Waugh
+Origin: git clone http://twaugh.fedorapeople.org/cups-avahi.git (Aug 11, 2011)
+
+--- a/backend/dnssd.c
++++ b/backend/dnssd.c
+@@ -15,14 +15,21 @@
+ *
+ * Contents:
+ *
++ * next_txt_record() - Get next TXT record from a cups_txt_records_t.
++ * parse_txt_record_pair() - Read key/value pair in cups_txt_records_t.
+ * main() - Browse for printers.
+ * browse_callback() - Browse devices.
+ * browse_local_callback() - Browse local devices.
+ * compare_devices() - Compare two devices.
+ * exec_backend() - Execute the backend that corresponds to the
+ * resolved service name.
++ * device_type() - Get DNS-SD type enumeration from string.
+ * get_device() - Create or update a device.
+ * query_callback() - Process query data.
++ * avahi_client_callback() - Avahi client callback function.
++ * avahi_query_callback() - Avahi query callback function.
++ * avahi_browse_callback() - Avahi browse callback function.
++ * find_device() - Find a device from its name and domain.
+ * sigterm_handler() - Handle termination signals...
+ * unquote() - Unquote a name string.
+ */
+@@ -33,7 +40,18 @@
+
+ #include "backend-private.h"
+ #include <cups/array.h>
+-#include <dns_sd.h>
++#ifdef HAVE_DNSSD
++# include <dns_sd.h>
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++# include <avahi-client/client.h>
++# include <avahi-client/lookup.h>
++# include <avahi-common/simple-watch.h>
++# include <avahi-common/domain.h>
++# include <avahi-common/error.h>
++# include <avahi-common/malloc.h>
++#define kDNSServiceMaxDomainName AVAHI_DOMAIN_NAME_MAX
++#endif /* HAVE_AVAHI */
+
+
+ /*
+@@ -53,7 +71,12 @@
+
+ typedef struct
+ {
++#ifdef HAVE_DNSSD
+ DNSServiceRef ref; /* Service reference for resolve */
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ int resolved; /* Did we resolve the device? */
++#endif /* HAVE_AVAHI */
+ char *name, /* Service name */
+ *domain, /* Domain name */
+ *fullName, /* Full name */
+@@ -65,6 +88,20 @@
+ sent; /* Did we list the device? */
+ } cups_device_t;
+
++typedef struct
++{
++ char key[256];
++ char value[256];
++
++#ifdef HAVE_DNSSD
++ const uint8_t *data;
++ const uint8_t *datanext;
++ const uint8_t *dataend;
++#else /* HAVE_AVAHI */
++ AvahiStringList *txt;
++#endif /* HAVE_DNSSD */
++} cups_txt_records_t;
++
+
+ /*
+ * Local globals...
+@@ -78,6 +115,7 @@
+ * Local functions...
+ */
+
++#ifdef HAVE_DNSSD
+ static void browse_callback(DNSServiceRef sdRef,
+ DNSServiceFlags flags,
+ uint32_t interfaceIndex,
+@@ -93,12 +131,6 @@
+ const char *regtype,
+ const char *replyDomain,
+ void *context);
+-static int compare_devices(cups_device_t *a, cups_device_t *b);
+-static void exec_backend(char **argv);
+-static cups_device_t *get_device(cups_array_t *devices,
+- const char *serviceName,
+- const char *regtype,
+- const char *replyDomain);
+ static void query_callback(DNSServiceRef sdRef,
+ DNSServiceFlags flags,
+ uint32_t interfaceIndex,
+@@ -107,9 +139,118 @@
+ uint16_t rrclass, uint16_t rdlen,
+ const void *rdata, uint32_t ttl,
+ void *context);
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++static void avahi_client_callback (AvahiClient *client,
++ AvahiClientState state,
++ void *context);
++static void avahi_browse_callback (AvahiServiceBrowser *browser,
++ AvahiIfIndex interface,
++ AvahiProtocol protocol,
++ AvahiBrowserEvent event,
++ const char *serviceName,
++ const char *regtype,
++ const char *replyDomain,
++ AvahiLookupResultFlags flags,
++ void *context);
++#endif /* HAVE_AVAHI */
++
++static cups_device_t * find_device (cups_array_t *devices,
++ cups_txt_records_t *txt,
++ cups_device_t *dkey);
++static int compare_devices(cups_device_t *a, cups_device_t *b);
++static void exec_backend(char **argv);
++static cups_device_t *get_device(cups_array_t *devices,
++ const char *serviceName,
++ const char *regtype,
++ const char *replyDomain);
+ static void sigterm_handler(int sig);
+ static void unquote(char *dst, const char *src, size_t dstsize);
+
++#ifdef HAVE_AVAHI
++static AvahiSimplePoll *simple_poll = NULL;
++static int avahi_got_callback;
++#endif /* HAVE_AVAHI */
++
++
++/*
++ * 'next_txt_record()' - Get next TXT record from a cups_txt_records_t.
++ */
++
++static cups_txt_records_t *
++next_txt_record (cups_txt_records_t *txt)
++{
++#ifdef HAVE_DNSSD
++ txt->data = txt->datanext;
++#else /* HAVE_AVAHI */
++ txt->txt = avahi_string_list_get_next (txt->txt);
++ if (txt->txt == NULL)
++ return NULL;
++#endif /* HAVE_DNSSD */
++
++ return txt;
++}
++
++
++/*
++ * 'parse_txt_record_pair()' - Read key/value pair in cups_txt_records_t.
++ */
++
++static int
++parse_txt_record_pair (cups_txt_records_t *txt)
++{
++#ifdef HAVE_DNSSD
++ uint8_t datalen;
++ uint8_t *data = txt->data;
++ char *ptr;
++
++ /*
++ * Read a key/value pair starting with an 8-bit length. Since the
++ * length is 8 bits and the size of the key/value buffers is 256, we
++ * don't need to check for overflow...
++ */
++
++ datalen = *data++;
++ if (!datalen || (data + datalen) >= txt->dataend)
++ return NULL;
++ txt->datanext = data + datalen;
++
++ for (ptr = txt->key; data < txt->datanext && *data != '='; data ++)
++ *ptr++ = *data;
++ *ptr = '\0';
++
++ if (data < txt->datanext && *data == '=')
++ {
++ data++;
++
++ if (data < datanext)
++ memcpy (txt->value, data, txt->datanext - data);
++ value[txt->datanext - data] = '\0';
++ }
++ else
++ return 1;
++#else /* HAVE_AVAHI */
++ char *key, *value;
++ size_t len;
++ avahi_string_list_get_pair (txt->txt, &key, &value, &len);
++ if (len > sizeof (txt->value) - 1)
++ len = sizeof (txt->value) - 1;
++
++ memcpy (txt->value, value, len);
++ txt->value[len] = '\0';
++ len = strlen (key);
++ if (len > sizeof (txt->key) - 1)
++ len = sizeof (txt->key) - 1;
++
++ memcpy (txt->key, key, len);
++ txt->key[len] = '\0';
++ avahi_free (key);
++ avahi_free (value);
++#endif /* HAVE_AVAHI */
++
++ return 0;
++}
++
+
+ /*
+ * 'main()' - Browse for printers.
+@@ -120,6 +261,13 @@
+ char *argv[]) /* I - Command-line arguments */
+ {
+ const char *name; /* Backend name */
++ cups_array_t *devices; /* Device array */
++ cups_device_t *device; /* Current device */
++ char uriName[1024]; /* Unquoted fullName for URI */
++#ifdef HAVE_DNSSD
++ int fd; /* Main file descriptor */
++ fd_set input; /* Input set for select() */
++ struct timeval timeout; /* Timeout for select() */
+ DNSServiceRef main_ref, /* Main service reference */
+ fax_ipp_ref, /* IPP fax service reference */
+ ipp_ref, /* IPP service reference */
+@@ -133,12 +281,11 @@
+ pdl_datastream_ref, /* AppSocket service reference */
+ printer_ref, /* LPD service reference */
+ riousbprint_ref; /* Remote IO service reference */
+- int fd; /* Main file descriptor */
+- fd_set input; /* Input set for select() */
+- struct timeval timeout; /* Timeout for select() */
+- cups_array_t *devices; /* Device array */
+- cups_device_t *device; /* Current device */
+- char uriName[1024]; /* Unquoted fullName for URI */
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ AvahiClient *client;
++ int error;
++#endif /* HAVE_AVAHI */
+ #if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
+ struct sigaction action; /* Actions for POSIX signals */
+ #endif /* HAVE_SIGACTION && !HAVE_SIGSET */
+@@ -198,6 +345,49 @@
+ * Browse for different kinds of printers...
+ */
+
++#ifdef HAVE_AVAHI
++ if ((simple_poll = avahi_simple_poll_new ()) == NULL)
++ {
++ perror ("ERROR: Unable to create avahi simple poll object");
++ return (1);
++ }
++
++ client = avahi_client_new (avahi_simple_poll_get (simple_poll),
++ 0, avahi_client_callback, NULL, &error);
++ if (!client)
++ {
++ perror ("DEBUG: Unable to create avahi client");
++ return (0);
++ }
++
++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ "_fax-ipp._tcp", NULL, 0,
++ avahi_browse_callback, devices);
++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ "_ipp._tcp", NULL, 0,
++ avahi_browse_callback, devices);
++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ "_ipp-tls._tcp", NULL, 0,
++ avahi_browse_callback, devices);
++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ "_pdl-datastream._tcp",
++ NULL, 0,
++ avahi_browse_callback,
++ devices);
++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ "_printer._tcp", NULL, 0,
++ avahi_browse_callback, devices);
++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ "_riousbprint._tcp", NULL, 0,
++ avahi_browse_callback, devices);
++#endif /* HAVE_AVAHI */
++#ifdef HAVE_DNSSD
+ if (DNSServiceCreateConnection(&main_ref) != kDNSServiceErr_NoError)
+ {
+ perror("ERROR: Unable to create service connection");
+@@ -258,6 +448,7 @@
+ riousbprint_ref = main_ref;
+ DNSServiceBrowse(&riousbprint_ref, kDNSServiceFlagsShareConnection, 0,
+ "_riousbprint._tcp", NULL, browse_callback, devices);
++#endif /* HAVE_DNSSD */
+
+ /*
+ * Loop until we are killed...
+@@ -265,6 +456,9 @@
+
+ while (!job_canceled)
+ {
++ int announce = 0;
++
++#ifdef HAVE_DNSSD
+ FD_ZERO(&input);
+ FD_SET(fd, &input);
+
+@@ -284,11 +478,35 @@
+ }
+ else
+ {
++ announce = 1;
++ }
++#else /* HAVE_AVAHI */
++ int r;
++ avahi_got_callback = 0;
++ r = avahi_simple_poll_iterate (simple_poll, 1);
++ if (r != 0 && r != EINTR)
++ {
++ /*
++ * We've been told to exit the loop. Perhaps the connection to
++ * avahi failed.
++ */
++
++ break;
++ }
++
++ if (avahi_got_callback)
++ announce = 1;
++#endif /* HAVE_DNSSD */
++
++ if (announce)
++ {
+ /*
+ * Announce any devices we've found...
+ */
+
++#ifdef HAVE_DNSSD
+ DNSServiceErrorType status; /* DNS query status */
++#endif /* HAVE_DNSSD */
+ cups_device_t *best; /* Best matching device */
+ char device_uri[1024]; /* Device URI */
+ int count; /* Number of queries */
+@@ -302,6 +520,7 @@
+ if (device->sent)
+ sent ++;
+
++#ifdef HAVE_DNSSD
+ if (device->ref)
+ count ++;
+
+@@ -333,14 +552,23 @@
+ count ++;
+ }
+ }
+- else if (!device->sent)
++ else
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ if (!device->resolved)
++ continue;
++ else
++#endif /* HAVE_AVAHI */
++ if (!device->sent)
+ {
++#ifdef HAVE_DNSSD
+ /*
+ * Got the TXT records, now report the device...
+ */
+
+ DNSServiceRefDeallocate(device->ref);
+ device->ref = 0;
++#endif /* HAVE_DNSSD */
+
+ if (!best)
+ best = device;
+@@ -401,6 +629,7 @@
+ }
+
+
++#ifdef HAVE_DNSSD
+ /*
+ * 'browse_callback()' - Browse devices.
+ */
+@@ -489,6 +718,7 @@
+ device->fullName);
+ device->sent = 1;
+ }
++#endif /* HAVE_DNSSD */
+
+
+ /*
+@@ -569,6 +799,41 @@
+
+
+ /*
++ * 'device_type()' - Get DNS-SD type enumeration from string.
++ */
++
++static int
++device_type (const char *regtype)
++{
++#ifdef HAVE_AVAHI
++ if (!strcmp(regtype, "_ipp._tcp"))
++ return (CUPS_DEVICE_IPP);
++ else if (!strcmp(regtype, "_ipps._tcp") ||
++ !strcmp(regtype, "_ipp-tls._tcp"))
++ return (CUPS_DEVICE_IPPS);
++ else if (!strcmp(regtype, "_fax-ipp._tcp"))
++ return (CUPS_DEVICE_FAX_IPP);
++ else if (!strcmp(regtype, "_printer._tcp"))
++ return (CUPS_DEVICE_PDL_DATASTREAM);
++#else
++ if (!strcmp(regtype, "_ipp._tcp."))
++ return (CUPS_DEVICE_IPP);
++ else if (!strcmp(regtype, "_ipps._tcp.") ||
++ !strcmp(regtype, "_ipp-tls._tcp."))
++ return (CUPS_DEVICE_IPPS);
++ else if (!strcmp(regtype, "_fax-ipp._tcp."))
++ return (CUPS_DEVICE_FAX_IPP);
++ else if (!strcmp(regtype, "_printer._tcp."))
++ return (CUPS_DEVICE_PRINTER);
++ else if (!strcmp(regtype, "_pdl-datastream._tcp."))
++ return (CUPS_DEVICE_PDL_DATASTREAM);
++#endif /* HAVE_AVAHI */
++
++ return (CUPS_DEVICE_RIOUSBPRINT);
++}
++
++
++/*
+ * 'get_device()' - Create or update a device.
+ */
+
+@@ -589,20 +854,7 @@
+ */
+
+ key.name = (char *)serviceName;
+-
+- if (!strcmp(regtype, "_ipp._tcp."))
+- key.type = CUPS_DEVICE_IPP;
+- else if (!strcmp(regtype, "_ipps._tcp.") ||
+- !strcmp(regtype, "_ipp-tls._tcp."))
+- key.type = CUPS_DEVICE_IPPS;
+- else if (!strcmp(regtype, "_fax-ipp._tcp."))
+- key.type = CUPS_DEVICE_FAX_IPP;
+- else if (!strcmp(regtype, "_printer._tcp."))
+- key.type = CUPS_DEVICE_PRINTER;
+- else if (!strcmp(regtype, "_pdl-datastream._tcp."))
+- key.type = CUPS_DEVICE_PDL_DATASTREAM;
+- else
+- key.type = CUPS_DEVICE_RIOUSBPRINT;
++ key.type = device_type (regtype);
+
+ for (device = cupsArrayFind(devices, &key);
+ device;
+@@ -622,8 +874,14 @@
+ free(device->domain);
+ device->domain = strdup(replyDomain);
+
++#ifdef HAVE_DNSSD
+ DNSServiceConstructFullName(fullName, device->name, regtype,
+ replyDomain);
++#else /* HAVE_AVAHI */
++ avahi_service_name_join (fullName, kDNSServiceMaxDomainName,
++ serviceName, regtype, replyDomain);
++#endif /* HAVE_DNSSD */
++
+ free(device->fullName);
+ device->fullName = strdup(fullName);
+ }
+@@ -643,6 +901,9 @@
+ device->domain = strdup(replyDomain);
+ device->type = key.type;
+ device->priority = 50;
++#ifdef HAVE_AVAHI
++ device->resolved = 0;
++#endif /* HAVE_AVAHI */
+
+ cupsArrayAdd(devices, device);
+
+@@ -650,13 +911,20 @@
+ * Set the "full name" of this service, which is used for queries...
+ */
+
++#ifdef HAVE_DNSSD
+ DNSServiceConstructFullName(fullName, serviceName, regtype, replyDomain);
++#else /* HAVE_AVAHI */
++ avahi_service_name_join (fullName, kDNSServiceMaxDomainName,
++ serviceName, regtype, replyDomain);
++#endif /* HAVE_DNSSD */
++
+ device->fullName = strdup(fullName);
+
+ return (device);
+ }
+
+
++#ifdef HAVE_DNSSD
+ /*
+ * 'query_callback()' - Process query data.
+ */
+@@ -680,7 +948,7 @@
+ *ptr; /* Pointer into string */
+ cups_device_t dkey, /* Search key */
+ *device; /* Device */
+-
++ cups_txt_records_t txt;
+
+ fprintf(stderr, "DEBUG2: query_callback(sdRef=%p, flags=%x, "
+ "interfaceIndex=%d, errorCode=%d, fullName=\"%s\", "
+@@ -714,94 +982,233 @@
+ if ((ptr = strstr(name, "._")) != NULL)
+ *ptr = '\0';
+
+- if (strstr(fullName, "_ipp._tcp."))
+- dkey.type = CUPS_DEVICE_IPP;
+- else if (strstr(fullName, "_ipps._tcp.") ||
+- strstr(fullName, "_ipp-tls._tcp."))
+- dkey.type = CUPS_DEVICE_IPPS;
+- else if (strstr(fullName, "_fax-ipp._tcp."))
+- dkey.type = CUPS_DEVICE_FAX_IPP;
+- else if (strstr(fullName, "_printer._tcp."))
+- dkey.type = CUPS_DEVICE_PRINTER;
+- else if (strstr(fullName, "_pdl-datastream._tcp."))
+- dkey.type = CUPS_DEVICE_PDL_DATASTREAM;
++ dkey.type = device_type (fullName);
++
++ txt.data = rdata;
++ txt.dataend = rdata + rdlen;
++ device = find_device ((cups_array_t *) context, &txt, &dkey);
++ if (!device)
++ fprintf(stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", fullName);
++}
++#endif /* HAVE_DNSSD */
++
++
++#ifdef HAVE_AVAHI
++/*
++ * 'avahi_client_callback()' - Avahi client callback function.
++ */
++
++static void
++avahi_client_callback(AvahiClient *client,
++ AvahiClientState state,
++ void *context)
++{
++ /*
++ * If the connection drops, quit.
++ */
++
++ if (state == AVAHI_CLIENT_FAILURE)
++ {
++ fprintf (stderr, "ERROR: Avahi connection failed\n");
++ avahi_simple_poll_quit (simple_poll);
++ }
++}
++
++
++/*
++ * 'avahi_query_callback()' - Avahi query callback function.
++ */
++
++static void
++avahi_query_callback(AvahiServiceResolver *resolver,
++ AvahiIfIndex interface,
++ AvahiProtocol protocol,
++ AvahiResolverEvent event,
++ const char *name,
++ const char *type,
++ const char *domain,
++ const char *host_name,
++ const AvahiAddress *address,
++ uint16_t port,
++ AvahiStringList *txt,
++ AvahiLookupResultFlags flags,
++ void *context)
++{
++ AvahiClient *client;
++ cups_device_t key,
++ *device;
++ char uqname[1024],
++ *ptr;
++ cups_txt_records_t txtr;
++
++ client = avahi_service_resolver_get_client (resolver);
++ if (event != AVAHI_RESOLVER_FOUND)
++ {
++ if (event == AVAHI_RESOLVER_FAILURE)
++ {
++ fprintf (stderr, "ERROR: %s\n",
++ avahi_strerror (avahi_client_errno (client)));
++ }
++
++ avahi_service_resolver_free (resolver);
++ return;
++ }
++
++ /*
++ * Set search key for device.
++ */
++
++ key.name = uqname;
++ unquote (uqname, name, sizeof (uqname));
++ if ((ptr = strstr(name, "._")) != NULL)
++ *ptr = '\0';
++
++ key.domain = (char *) domain;
++ key.type = device_type (type);
++
++ /*
++ * Find the device and the the TXT information.
++ */
++
++ txtr.txt = txt;
++ device = find_device ((cups_array_t *) context, &txtr, &key);
++ if (device)
++ {
++ /*
++ * Let the main loop know to announce the device.
++ */
++
++ device->resolved = 1;
++ avahi_got_callback = 1;
++ }
+ else
+- dkey.type = CUPS_DEVICE_RIOUSBPRINT;
++ fprintf (stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", name);
++
++ avahi_service_resolver_free (resolver);
++}
++
++
++/*
++ * 'avahi_browse_callback()' - Avahi browse callback function.
++ */
++
++static void
++avahi_browse_callback(AvahiServiceBrowser *browser,
++ AvahiIfIndex interface,
++ AvahiProtocol protocol,
++ AvahiBrowserEvent event,
++ const char *name,
++ const char *type,
++ const char *domain,
++ AvahiLookupResultFlags flags,
++ void *context)
++{
++ AvahiClient *client = avahi_service_browser_get_client (browser);
++
++ switch (event)
++ {
++ case AVAHI_BROWSER_FAILURE:
++ fprintf (stderr, "ERROR: %s\n",
++ avahi_strerror (avahi_client_errno (client)));
++ avahi_simple_poll_quit (simple_poll);
++ return;
++
++ case AVAHI_BROWSER_NEW:
++ /*
++ * This object is new on the network.
++ */
++
++ if (flags & AVAHI_LOOKUP_RESULT_LOCAL)
++ {
++ /*
++ * This comes from the local machine so ignore it.
++ */
++
++ fprintf (stderr, "DEBUG: ignoring local service %s\n", name);
++ }
++ else
++ {
++ /*
++ * Create a device entry for it if it doesn't yet exist.
++ */
++
++ get_device ((cups_array_t *)context, name, type, domain);
++
++ /*
++ * Now look for a TXT entry.
++ */
++
++ if (avahi_service_resolver_new (client, interface, protocol,
++ name, type, domain,
++ AVAHI_PROTO_UNSPEC, 0,
++ avahi_query_callback, context) == NULL)
++ {
++ fprintf (stderr, "ERROR: failed to resolve service %s: %s\n",
++ name, avahi_strerror (avahi_client_errno (client)));
++ }
++ }
++
++ break;
++
++ case AVAHI_BROWSER_REMOVE:
++ case AVAHI_BROWSER_ALL_FOR_NOW:
++ case AVAHI_BROWSER_CACHE_EXHAUSTED:
++ break;
++ }
++}
++#endif /* HAVE_AVAHI */
++
+
+- for (device = cupsArrayFind(devices, &dkey);
++/*
++ * 'find_device()' - Find a device from its name and domain.
++ */
++
++static cups_device_t *
++find_device (cups_array_t *devices,
++ cups_txt_records_t *txt,
++ cups_device_t *dkey)
++{
++ cups_device_t *device;
++ char *ptr;
++
++ for (device = cupsArrayFind(devices, dkey);
+ device;
+ device = cupsArrayNext(devices))
+ {
+- if (_cups_strcasecmp(device->name, dkey.name) ||
+- _cups_strcasecmp(device->domain, dkey.domain))
++ if (_cups_strcasecmp(device->name, dkey->name) ||
++ _cups_strcasecmp(device->domain, dkey->domain))
+ {
+ device = NULL;
+ break;
+ }
+- else if (device->type == dkey.type)
++ else if (device->type == dkey->type)
+ {
+ /*
+ * Found it, pull out the priority and make and model from the TXT
+ * record and save it...
+ */
+
+- const uint8_t *data, /* Pointer into data */
+- *datanext, /* Next key/value pair */
+- *dataend; /* End of entire TXT record */
+- uint8_t datalen; /* Length of current key/value pair */
+- char key[256], /* Key string */
+- value[256], /* Value string */
+- make_and_model[512],
++ char make_and_model[512],
+ /* Manufacturer and model */
+ model[256], /* Model */
+- device_id[2048];/* 1284 device ID */
+-
++ device_id[2048]; /* 1284 device ID */
+
+ device_id[0] = '\0';
+ make_and_model[0] = '\0';
+
+ strcpy(model, "Unknown");
+
+- for (data = rdata, dataend = data + rdlen;
+- data < dataend;
+- data = datanext)
++ for (;;)
+ {
+- /*
+- * Read a key/value pair starting with an 8-bit length. Since the
+- * length is 8 bits and the size of the key/value buffers is 256, we
+- * don't need to check for overflow...
+- */
+-
+- datalen = *data++;
+-
+- if (!datalen || (data + datalen) >= dataend)
+- break;
+-
+- datanext = data + datalen;
+-
+- for (ptr = key; data < datanext && *data != '='; data ++)
+- *ptr++ = *data;
+- *ptr = '\0';
++ char *key;
++ char *value;
+
+- if (data < datanext && *data == '=')
+- {
+- data ++;
+-
+- if (data < datanext)
+- memcpy(value, data, datanext - data);
+- value[datanext - data] = '\0';
++ if (parse_txt_record_pair (txt))
++ goto next;
+
+- fprintf(stderr, "DEBUG2: query_callback: \"%s=%s\".\n",
+- key, value);
+- }
+- else
+- {
+- fprintf(stderr, "DEBUG2: query_callback: \"%s\" with no value.\n",
+- key);
+- continue;
+- }
+-
+- if (!_cups_strncasecmp(key, "usb_", 4))
++ key = txt->key;
++ value = txt->value;
++ if (!strncasecmp(key, "usb_", 4))
+ {
+ /*
+ * Add USB device ID information...
+@@ -856,6 +1263,10 @@
+ if (device->type == CUPS_DEVICE_PRINTER)
+ device->sent = 1;
+ }
++
++ next:
++ if (next_txt_record (txt) == NULL)
++ break;
+ }
+
+ if (device->device_id)
+@@ -905,11 +1316,9 @@
+ }
+ }
+
+- if (!device)
+- fprintf(stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", fullName);
++ return device;
+ }
+
+-
+ /*
+ * 'sigterm_handler()' - Handle termination signals...
+ */
+--- a/config-scripts/cups-dnssd.m4
++++ b/config-scripts/cups-dnssd.m4
+@@ -23,6 +23,21 @@
+ DNSSDLIBS=""
+ DNSSD_BACKEND=""
+
++AC_ARG_ENABLE(avahi, [ --enable-avahi turn on DNS Service Discovery support, default=no],
++ [if test x$enable_avahi = xyes; then
++ AC_MSG_CHECKING(for Avahi)
++ if $PKGCONFIG --exists avahi-client; then
++ AC_MSG_RESULT(yes)
++ CFLAGS="$CFLAGS `$PKGCONFIG --cflags avahi-client`"
++ DNSSDLIBS="`$PKGCONFIG --libs avahi-client`"
++ DNSSD_BACKEND="dnssd"
++ AC_DEFINE(HAVE_AVAHI)
++ enable_dnssd=no
++ else
++ AC_MSG_RESULT(no)
++ fi
++ fi])
++
+ if test x$enable_dnssd != xno; then
+ AC_CHECK_HEADER(dns_sd.h, [
+ case "$uname" in
+--- a/config.h.in
++++ b/config.h.in
+@@ -390,6 +390,13 @@
+
+
+ /*
++ * Do we have Avahi for DNS Service Discovery?
++ */
++
++#undef HAVE_AVAHI
++
++
++/*
+ * Do we have <sys/ioctl.h>?
+ */
+
+--- a/cups/http-support.c
++++ b/cups/http-support.c
+@@ -43,6 +43,10 @@
+ * http_copy_decode() - Copy and decode a URI.
+ * http_copy_encode() - Copy and encode a URI.
+ * http_resolve_cb() - Build a device URI for the given service name.
++ * avahi_resolve_uri_client_cb()
++ * - Avahi client callback for resolving URI.
++ * avahi_resolve_uri_resolver_cb()
++ * - Avahi resolver callback for resolving URI.
+ */
+
+ /*
+@@ -60,6 +64,11 @@
+ # include <sys/select.h>
+ # endif /* WIN32 */
+ #endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++# include <avahi-client/client.h>
++# include <avahi-client/lookup.h>
++# include <avahi-common/simple-watch.h>
++#endif /* HAVE_AVAHI */
+
+
+ /*
+@@ -127,6 +136,24 @@
+ void *context);
+ #endif /* HAVE_DNSSD */
+
++#ifdef HAVE_AVAHI
++static void avahi_resolve_uri_client_cb(AvahiClient *client,
++ AvahiClientState state,
++ void *simple_poll);
++static void avahi_resolve_uri_resolver_cb(AvahiServiceResolver *resolver,
++ AvahiIfIndex interface,
++ AvahiProtocol protocol,
++ AvahiResolverEvent event,
++ const char *name,
++ const char *type,
++ const char *domain,
++ const char *host_name,
++ const AvahiAddress *address,
++ uint16_t port,
++ AvahiStringList *txt,
++ AvahiLookupResultFlags flags,
++ void *context);
++#endif /* HAVE_AVAHI */
+
+ /*
+ * 'httpAssembleURI()' - Assemble a uniform resource identifier from its
+@@ -1431,6 +1458,9 @@
+
+ if (strstr(hostname, "._tcp"))
+ {
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
++ char *regtype, /* Pointer to type in hostname */
++ *domain; /* Pointer to domain in hostname */
+ #ifdef HAVE_DNSSD
+ # ifdef WIN32
+ # pragma comment(lib, "dnssd.lib")
+@@ -1449,6 +1479,17 @@
+ fd_set input_set; /* Input set for select() */
+ struct timeval stimeout; /* Timeout value for select() */
+ #endif /* HAVE_POLL */
++#else /* HAVE_AVAHI */
++ AvahiSimplePoll *simple_poll;
++ AvahiClient *client;
++ int error;
++ struct
++ {
++ AvahiSimplePoll *poll;
++ _http_uribuf_t uribuf;
++ } user_data;
++#endif /* HAVE_DNSSD */
++
+
+ if (options & _HTTP_RESOLVE_STDERR)
+ fprintf(stderr, "DEBUG: Resolving \"%s\"...\n", hostname);
+@@ -1485,9 +1526,16 @@
+ if (domain)
+ *domain++ = '\0';
+
++#ifdef HAVE_DNSSD
+ uribuf.buffer = resolved_uri;
+ uribuf.bufsize = resolved_size;
+ uribuf.options = options;
++#else
++ user_data.uribuf.buffer = resolved_uri;
++ user_data.uribuf.bufsize = resolved_size;
++ user_data.uribuf.options = options;
++#endif
++
+ resolved_uri[0] = '\0';
+
+ DEBUG_printf(("6_httpResolveURI: Resolving hostname=\"%s\", regtype=\"%s\", "
+@@ -1501,6 +1549,7 @@
+
+ uri = NULL;
+
++#ifdef HAVE_DNSSD
+ if (DNSServiceCreateConnection(&ref) == kDNSServiceErr_NoError)
+ {
+ localref = ref;
+@@ -1608,6 +1657,36 @@
+
+ DNSServiceRefDeallocate(ref);
+ }
++#else /* HAVE_AVAHI */
++ if ((simple_poll = avahi_simple_poll_new ()) != NULL)
++ {
++ if ((client = avahi_client_new (avahi_simple_poll_get (simple_poll),
++ 0, avahi_resolve_uri_client_cb,
++ &simple_poll, &error)) != NULL)
++ {
++ user_data.poll = simple_poll;
++ if (avahi_service_resolver_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC, hostname,
++ regtype, domain, AVAHI_PROTO_UNSPEC, 0,
++ avahi_resolve_uri_resolver_cb,
++ &user_data) != NULL)
++ {
++ avahi_simple_poll_loop (simple_poll);
++
++ /*
++ * Collect the result.
++ */
++
++ if (resolved_uri[0])
++ uri = resolved_uri;
++ }
++
++ avahi_client_free (client);
++ }
++
++ avahi_simple_poll_free (simple_poll);
++ }
++#endif /* HAVE_DNSSD */
+
+ if (options & _HTTP_RESOLVE_STDERR)
+ {
+@@ -1619,13 +1698,13 @@
+ fputs("STATE: -connecting-to-device,offline-report\n", stderr);
+ }
+
+-#else
++#else /* HAVE_DNSSD || HAVE_AVAHI */
+ /*
+ * No DNS-SD support...
+ */
+
+ uri = NULL;
+-#endif /* HAVE_DNSSD */
++#endif /* HAVE_DNSSD || HAVE_AVAHI */
+
+ if ((options & _HTTP_RESOLVE_STDERR) && !uri)
+ _cupsLangPrintFilter(stderr, "ERROR", _("Unable to find printer."));
+@@ -1895,6 +1974,116 @@
+ #endif /* HAVE_DNSSD */
+
+
++#ifdef HAVE_AVAHI
++/*
++ * 'avahi_resolve_uri_client_cb()' - Avahi client callback for resolving URI.
++ */
++
++static void
++avahi_resolve_uri_client_cb (AvahiClient *client,
++ AvahiClientState state,
++ void *simple_poll)
++{
++ DEBUG_printf(("avahi_resolve_uri_client_callback(client=%p, state=%d, "
++ "simple_poll=%p)\n", client, state, simple_poll));
++
++ /*
++ * If the connection drops, quit.
++ */
++
++ if (state == AVAHI_CLIENT_FAILURE)
++ avahi_simple_poll_quit (simple_poll);
++}
++
++
++/*
++ * 'avahi_resolve_uri_resolver_cb()' - Avahi resolver callback for resolving
++ * URI.
++ */
++
++static void
++avahi_resolve_uri_resolver_cb (AvahiServiceResolver *resolver,
++ AvahiIfIndex interface,
++ AvahiProtocol protocol,
++ AvahiResolverEvent event,
++ const char *name,
++ const char *type,
++ const char *domain,
++ const char *host_name,
++ const AvahiAddress *address,
++ uint16_t port,
++ AvahiStringList *txt,
++ AvahiLookupResultFlags flags,
++ void *context)
++{
++ const char *scheme; /* URI scheme */
++ char rp[256]; /* Remote printer */
++ AvahiStringList *pair;
++ char *value;
++ size_t valueLen = 0;
++ char addr[AVAHI_ADDRESS_STR_MAX];
++ struct
++ {
++ AvahiSimplePoll *poll;
++ _http_uribuf_t uribuf;
++ } *poll_uribuf = context;
++
++ DEBUG_printf(("avahi_resolve_uri_resolver_callback(resolver=%p, "
++ "interface=%d, protocol=%d, event=%d, name=\"%s\", "
++ "type=\"%s\", domain=\"%s\", host_name=\"%s\", address=%p, "
++ "port=%d, txt=%p, flags=%d, context=%p)\n",
++ resolver, interface, protocol, event, name, type, domain,
++ host_name, address, port, txt, flags, context));
++
++ if (event != AVAHI_RESOLVER_FOUND)
++ {
++ avahi_service_resolver_free (resolver);
++ avahi_simple_poll_quit (poll_uribuf->poll);
++ return;
++ }
++
++ /*
++ * Figure out the scheme from the full name...
++ */
++
++ if (strstr(type, "_ipp."))
++ scheme = "ipp";
++ else if (strstr(type, "_printer."))
++ scheme = "lpd";
++ else if (strstr(type, "_pdl-datastream."))
++ scheme = "socket";
++ else
++ scheme = "riousbprint";
++
++ /*
++ * Extract the "remote printer key from the TXT record...
++ */
++
++ if ((pair = avahi_string_list_find (txt, "rp")) != NULL)
++ {
++ avahi_string_list_get_pair (pair, NULL, &value, &valueLen);
++ rp[0] = '/';
++ memcpy (rp + 1, value, valueLen);
++ rp[valueLen + 1] = '\0';
++ }
++ else
++ rp[0] = '\0';
++
++ /*
++ * Assemble the final device URI...
++ */
++
++ avahi_address_snprint (addr, AVAHI_ADDRESS_STR_MAX, address);
++ httpAssembleURI(HTTP_URI_CODING_ALL, poll_uribuf->uribuf.buffer,
++ poll_uribuf->uribuf.bufsize, scheme, NULL,
++ addr, port, rp);
++ DEBUG_printf(("avahi_resolve_uri_resolver_callback: Resolved URI is \"%s\"\n",
++ poll_uribuf->uribuf.buffer));
++ avahi_simple_poll_quit (poll_uribuf->poll);
++}
++#endif /* HAVE_AVAHI */
++
++
+ /*
+ * End of "$Id: http-support.c 9820 2011-06-10 22:06:26Z mike $".
+ */
+--- a/scheduler/Makefile
++++ b/scheduler/Makefile
+@@ -17,6 +17,7 @@
+
+ CUPSDOBJS = \
+ auth.o \
++ avahi.o \
+ banners.o \
+ cert.o \
+ classes.o \
+@@ -39,7 +40,8 @@
+ server.o \
+ statbuf.o \
+ subscriptions.o \
+- sysman.o
++ sysman.o \
++ timeout.o
+ LIBOBJS = \
+ filter.o \
+ mime.o \
+--- /dev/null
++++ b/scheduler/avahi.c
+@@ -0,0 +1,445 @@
++/*
++ * "$Id$"
++ *
++ * Avahi poll implementation for the CUPS scheduler.
++ *
++ * Copyright (C) 2010 Red Hat, Inc.
++ * Authors:
++ * Tim Waugh <twaugh@redhat.com>
++ *
++ * Distribution and use rights are outlined in the file "LICENSE.txt"
++ * "LICENSE" which should have been included with this file. If this
++ * file is missing or damaged, see the license at "http://www.cups.org/".
++ *
++ * Contents:
++ *
++ * watch_read_cb - Read callback for file descriptor
++ * watch_write_cb - Write callback for file descriptor
++ * watched_fd_add_select() - Call cupsdAddSelect() as needed
++ * watch_new() - Create a new file descriptor watch
++ * watch_free() - Free a file descriptor watch
++ * watch_update() - Update watched events for a file descriptor
++ * watch_get_events() - Get events that happened for a file descriptor
++ * timeout_cb() - Run a timed Avahi callback
++ * timeout_new() - Set a wakeup time
++ * timeout_update() - Update the expiration time for a timeout
++ * timeout_free() - Free a timeout
++ * compare_watched_fds() - Compare watched file descriptors for array sorting
++ * compare_timeouts() - Compare timeouts for array sorting
++ * avahi_cups_poll_new() - Create a new Avahi main loop object for CUPS
++ * avahi_cups_poll_free() - Free an Avahi main loop object for CUPS
++ * avahi_cups_poll_get() - Get the abstract poll API structure
++ */
++
++#include <config.h>
++
++#ifdef HAVE_AVAHI /* Applies to entire file... */
++
++/*
++ * Include necessary headers...
++ */
++
++#include "cupsd.h"
++
++#if defined(HAVE_MALLOC_H) && defined(HAVE_MALLINFO)
++# include <malloc.h>
++#endif /* HAVE_MALLOC_H && HAVE_MALLINFO */
++
++#ifdef HAVE_AVAHI
++# include <avahi-common/timeval.h>
++#endif /* HAVE_AVAHI */
++
++
++typedef struct
++{
++ AvahiCupsPoll *cups_poll;
++
++ int fd;
++ AvahiWatchEvent occurred;
++ cups_array_t *watches;
++} cupsd_watched_fd_t;
++
++struct AvahiWatch
++{
++ cupsd_watched_fd_t *watched_fd;
++
++ AvahiWatchEvent events;
++ AvahiWatchCallback callback;
++ void *userdata;
++};
++
++struct AvahiTimeout
++{
++ AvahiCupsPoll *cups_poll;
++ AvahiTimeoutCallback callback;
++ void *userdata;
++ cupsd_timeout_t *cupsd_timeout;
++};
++
++/*
++ * Local functions...
++ */
++
++static AvahiWatch * watch_new(const AvahiPoll *api,
++ int fd,
++ AvahiWatchEvent events,
++ AvahiWatchCallback callback,
++ void *userdata);
++static void watch_free(AvahiWatch *watch);
++static void watch_update(AvahiWatch *watch,
++ AvahiWatchEvent events);
++static AvahiWatchEvent watch_get_events(AvahiWatch *watch);
++static int compare_watches(AvahiWatch *p0,
++ AvahiWatch *p1);
++
++
++/*
++ * 'watch_read_cb' - Read callback for file descriptor
++ */
++
++static void
++watch_read_cb (void *userdata)
++{
++ AvahiWatch *watch;
++ cupsd_watched_fd_t *watched_fd = userdata;
++ watched_fd->occurred |= AVAHI_WATCH_IN;
++ for (watch = (AvahiWatch *)cupsArrayFirst(watched_fd->watches);
++ watch;
++ watch = (AvahiWatch *)cupsArrayNext(watched_fd->watches)) {
++ if (watch->events & watched_fd->occurred) {
++ (watch->callback) (watch, watched_fd->fd,
++ AVAHI_WATCH_IN, watch->userdata);
++ watched_fd->occurred &= ~AVAHI_WATCH_IN;
++ break;
++ }
++ }
++}
++
++
++/*
++ * 'watch_write_cb' - Write callback for file descriptor
++ */
++
++static void
++watch_write_cb (void *userdata)
++{
++ AvahiWatch *watch;
++ cupsd_watched_fd_t *watched_fd = userdata;
++ watched_fd->occurred |= AVAHI_WATCH_OUT;
++ for (watch = (AvahiWatch *)cupsArrayFirst(watched_fd->watches);
++ watch;
++ watch = (AvahiWatch *)cupsArrayNext(watched_fd->watches)) {
++ if (watch->events & watched_fd->occurred) {
++ (watch->callback) (watch, watched_fd->fd,
++ AVAHI_WATCH_OUT, watch->userdata);
++ watched_fd->occurred &= ~AVAHI_WATCH_OUT;
++ break;
++ }
++ }
++}
++
++
++/*
++ * 'watched_fd_add_select' - Call cupsdAddSelect() as needed
++ */
++
++static int /* O - Watches? */
++watched_fd_add_select (cupsd_watched_fd_t *watched_fd)
++{
++ AvahiWatch *watch;
++ cupsd_selfunc_t read_cb = NULL, write_cb = NULL;
++
++ for (watch = (AvahiWatch *)cupsArrayFirst(watched_fd->watches);
++ watch;
++ watch = (AvahiWatch *)cupsArrayNext(watched_fd->watches)) {
++ if (watch->events & (AVAHI_WATCH_IN |
++ AVAHI_WATCH_ERR |
++ AVAHI_WATCH_HUP)) {
++ read_cb = (cupsd_selfunc_t)watch_read_cb;
++ if (write_cb != NULL)
++ break;
++ }
++
++ if (watch->events & AVAHI_WATCH_OUT) {
++ write_cb = (cupsd_selfunc_t)watch_write_cb;
++ if (read_cb != NULL)
++ break;
++ }
++ }
++
++ if (read_cb || write_cb)
++ cupsdAddSelect (watched_fd->fd, read_cb, write_cb, watched_fd);
++ else
++ cupsdRemoveSelect (watched_fd->fd);
++
++ return (read_cb || write_cb);
++}
++
++/*
++ * 'watch_new' - Create a new file descriptor watch
++ */
++
++static AvahiWatch *
++watch_new (const AvahiPoll *api,
++ int fd,
++ AvahiWatchEvent events,
++ AvahiWatchCallback callback,
++ void *userdata)
++{
++ cupsd_watched_fd_t key, *watched_fd;
++ AvahiCupsPoll *cups_poll = api->userdata;
++ AvahiWatch *watch = malloc(sizeof(AvahiWatch));
++ if (watch == NULL)
++ return (NULL);
++
++ watch->events = events;
++ watch->callback = callback;
++ watch->userdata = userdata;
++
++ key.fd = fd;
++ watched_fd = cupsArrayFind (cups_poll->watched_fds, &key);
++ if (watched_fd == NULL) {
++ watched_fd = malloc(sizeof(cupsd_watched_fd_t));
++ if (watched_fd == NULL) {
++ free (watch);
++ return (NULL);
++ }
++
++ watched_fd->fd = fd;
++ watched_fd->occurred = 0;
++ watched_fd->cups_poll = cups_poll;
++ watched_fd->watches = cupsArrayNew ((cups_array_func_t)compare_watches,
++ NULL);
++ }
++
++ watch->watched_fd = watched_fd;
++ cupsArrayAdd(watched_fd->watches, watch);
++ watched_fd_add_select (watched_fd);
++ return (watch);
++}
++
++
++/*
++ * 'watch_free' - Free a file descriptor watch
++ */
++
++static void
++watch_free (AvahiWatch *watch)
++{
++ cupsd_watched_fd_t *watched_fd = watch->watched_fd;
++ AvahiCupsPoll *cups_poll = watched_fd->cups_poll;
++
++ cupsArrayRemove (watched_fd->watches, watch);
++ free (watch);
++
++ if (!watched_fd_add_select (watched_fd)) {
++ /* No more watches */
++ cupsArrayRemove (cups_poll->watched_fds, watched_fd);
++ free (watched_fd);
++ }
++}
++
++
++/*
++ * 'watch_update' - Update watched events for a file descriptor
++ */
++
++static void
++watch_update (AvahiWatch *watch,
++ AvahiWatchEvent events)
++{
++ watch->events = events;
++ watched_fd_add_select (watch->watched_fd);
++}
++
++
++/*
++ * 'watch_get_events' - Get events that happened for a file descriptor
++ */
++
++static AvahiWatchEvent
++watch_get_events (AvahiWatch *watch)
++{
++ return (watch->watched_fd->occurred);
++}
++
++
++/*
++ * 'compare_watches' - Compare watches for array sorting
++ */
++
++static int
++compare_watches (AvahiWatch *p0,
++ AvahiWatch *p1)
++{
++ if (p0->watched_fd->fd < p1->watched_fd->fd)
++ return (-1);
++
++ return ((p0->watched_fd->fd == p1->watched_fd->fd) ? 0 : 1);
++}
++
++
++/*
++ * 'timeout_cb()' - Run a timed Avahi callback
++ */
++
++static void
++timeout_cb (cupsd_timeout_t *cupsd_timeout, void *userdata)
++{
++ AvahiTimeout *timeout = userdata;
++ (timeout->callback) (timeout, timeout->userdata);
++}
++
++
++/*
++ * 'timeout_new' - Set a wakeup time
++ */
++
++static AvahiTimeout *
++timeout_new (const AvahiPoll *api,
++ const struct timeval *tv,
++ AvahiTimeoutCallback callback,
++ void *userdata)
++{
++ AvahiTimeout *timeout;
++ AvahiCupsPoll *cups_poll = api->userdata;
++
++ timeout = malloc(sizeof(AvahiTimeout));
++ if (timeout == NULL)
++ return (NULL);
++
++ timeout->cups_poll = cups_poll;
++ timeout->callback = callback;
++ timeout->userdata = userdata;
++ timeout->cupsd_timeout = cupsdAddTimeout (tv,
++ (cupsd_timeoutfunc_t)timeout_cb,
++ timeout);
++ cupsArrayAdd (cups_poll->timeouts, timeout);
++ return (timeout);
++}
++
++
++/*
++ * 'timeout_update' - Update the expiration time for a timeout
++ */
++
++static void
++timeout_update (AvahiTimeout *timeout,
++ const struct timeval *tv)
++{
++ cupsdUpdateTimeout (timeout->cupsd_timeout, tv);
++}
++
++
++/*
++ * ' timeout_free' - Free a timeout
++ */
++
++static void
++timeout_free (AvahiTimeout *timeout)
++{
++ cupsArrayRemove (timeout->cups_poll->timeouts, timeout);
++ cupsdRemoveTimeout (timeout->cupsd_timeout);
++ free (timeout);
++}
++
++
++/*
++ * 'compare_watched_fds' - Compare watched file descriptors for array sorting
++ */
++static int
++compare_watched_fds(cupsd_watched_fd_t *p0,
++ cupsd_watched_fd_t *p1)
++{
++ if (p0->fd != p1->fd)
++ return (p0->fd < p1->fd ? -1 : 1);
++
++ if (p0 == p1)
++ return (0);
++
++ return (p0 < p1 ? -1 : 1);
++}
++
++
++/*
++ * 'compare_timeouts' - Compare timeouts for array sorting
++ */
++static int
++compare_timeouts(AvahiTimeout *p0,
++ AvahiTimeout *p1)
++{
++ /*
++ * Just compare pointers to make it a stable sort.
++ */
++
++ if (p0->cupsd_timeout < p1->cupsd_timeout)
++ return (-1);
++ return ((p0->cupsd_timeout == p1->cupsd_timeout) ? 0 : 1);
++}
++
++
++/*
++ * 'avahi_cups_poll_new' - Create a new Avahi main loop object for CUPS
++ */
++
++AvahiCupsPoll *
++avahi_cups_poll_new (void)
++{
++ AvahiCupsPoll *cups_poll = malloc(sizeof(AvahiCupsPoll));
++ if (cups_poll == NULL)
++ return (NULL);
++
++ cups_poll->watched_fds = cupsArrayNew ((cups_array_func_t)compare_watched_fds,
++ NULL);
++ cups_poll->timeouts = cupsArrayNew ((cups_array_func_t)compare_timeouts,
++ NULL);
++
++ cups_poll->api.userdata = cups_poll;
++ cups_poll->api.watch_new = watch_new;
++ cups_poll->api.watch_free = watch_free;
++ cups_poll->api.watch_update = watch_update;
++ cups_poll->api.watch_get_events = watch_get_events;
++
++ cups_poll->api.timeout_new = timeout_new;
++ cups_poll->api.timeout_update = timeout_update;
++ cups_poll->api.timeout_free = timeout_free;
++
++ return (cups_poll);
++}
++
++
++/*
++ * 'avahi_cups_poll_free' - Free an Avahi main loop object for CUPS
++ */
++void
++avahi_cups_poll_free (AvahiCupsPoll *cups_poll)
++{
++ cupsd_watched_fd_t *watched_fd;
++
++ for (watched_fd = (cupsd_watched_fd_t*)cupsArrayFirst(cups_poll->watched_fds);
++ watched_fd;
++ watched_fd = (cupsd_watched_fd_t*)cupsArrayNext(cups_poll->watched_fds)){
++ cupsArrayClear (watched_fd->watches);
++ }
++
++ cupsArrayClear (cups_poll->watched_fds);
++ cupsArrayClear (cups_poll->timeouts);
++}
++
++
++/*
++ * 'avahi_cups_poll_get' - Get the abstract poll API structure
++ */
++
++const AvahiPoll *
++avahi_cups_poll_get (AvahiCupsPoll *cups_poll)
++{
++ return (&cups_poll->api);
++}
++
++
++#endif /* HAVE_AVAHI ... from top of file */
++
++/*
++ * End of "$Id$".
++ */
+--- /dev/null
++++ b/scheduler/avahi.h
+@@ -0,0 +1,49 @@
++/*
++ * "$Id$"
++ *
++ * Avahi poll implementation for the CUPS scheduler.
++ *
++ * Copyright (C) 2010 Red Hat, Inc.
++ * Authors:
++ * Tim Waugh <twaugh@redhat.com>
++ *
++ * Distribution and use rights are outlined in the file "LICENSE.txt"
++ * which should have been included with this file. If this file is
++ * file is missing or damaged, see the license at "http://www.cups.org/".
++ */
++
++#include <config.h>
++
++#ifdef HAVE_AVAHI
++# include <avahi-client/client.h>
++# include <avahi-client/publish.h>
++#endif /* HAVE_AVAHI */
++
++#ifdef HAVE_AUTHORIZATION_H
++# include <Security/Authorization.h>
++#endif /* HAVE_AUTHORIZATION_H */
++
++
++#ifdef HAVE_AVAHI
++typedef struct
++{
++ AvahiPoll api;
++ cups_array_t *watched_fds;
++ cups_array_t *timeouts;
++} AvahiCupsPoll;
++#endif /* HAVE_AVAHI */
++
++/*
++ * Prototypes...
++ */
++
++#ifdef HAVE_AVAHI
++extern AvahiCupsPoll * avahi_cups_poll_new(void);
++extern void avahi_cups_poll_free(AvahiCupsPoll *cups_poll);
++extern const AvahiPoll *avahi_cups_poll_get(AvahiCupsPoll *cups_poll);
++#endif /* HAVE_AVAHI */
++
++
++/*
++ * End of "$Id$".
++ */
+--- a/scheduler/cupsd.h
++++ b/scheduler/cupsd.h
+@@ -140,6 +140,15 @@
+
+ typedef void (*cupsd_selfunc_t)(void *data);
+
++#ifdef HAVE_AVAHI
++/*
++ * Timeout callback function type...
++ */
++
++typedef struct _cupsd_timeout_s cupsd_timeout_t;
++typedef void (*cupsd_timeoutfunc_t)(cupsd_timeout_t *timeout, void *data);
++#endif /* HAVE_AVAHI */
++
+
+ /*
+ * Globals...
+@@ -173,6 +182,11 @@
+ /* Running from launchd */
+ #endif /* HAVE_LAUNCH_H */
+
++#ifdef HAVE_AVAHI
++VAR cups_array_t *Timeouts; /* Timed callbacks for main loop */
++#endif /* HAVE_AVAHI */
++
++
+
+ /*
+ * Prototypes...
+@@ -242,6 +256,20 @@
+ extern void cupsdStartServer(void);
+ extern void cupsdStopServer(void);
+
++#ifdef HAVE_AVAHI
++extern void cupsdInitTimeouts(void);
++extern cupsd_timeout_t *cupsdAddTimeout (const struct timeval *tv,
++ cupsd_timeoutfunc_t cb,
++ void *data);
++extern cupsd_timeout_t *cupsdNextTimeout (long *delay);
++extern void cupsdRunTimeout (cupsd_timeout_t *timeout);
++extern void cupsdUpdateTimeout (cupsd_timeout_t *timeout,
++ const struct timeval *tv);
++extern void cupsdRemoveTimeout (cupsd_timeout_t *timeout);
++#endif /* HAVE_AVAHI */
++
++extern int cupsdRemoveFile(const char *filename);
++
+
+ /*
+ * End of "$Id: cupsd.h 9766 2011-05-11 22:17:34Z mike $".
+--- a/scheduler/main.c
++++ b/scheduler/main.c
+@@ -122,6 +122,10 @@
+ cupsd_listener_t *lis; /* Current listener */
+ time_t current_time, /* Current time */
+ activity, /* Client activity timer */
++#ifdef HAVE_AVAHI
++ avahi_client_time, /* Time for next Avahi client
++ check */
++#endif /* HAVE_AVAHI */
+ browse_time, /* Next browse send time */
+ senddoc_time, /* Send-Document time */
+ expire_time, /* Subscription expire time */
+@@ -148,6 +152,10 @@
+ int launchd_idle_exit;
+ /* Idle exit on select timeout? */
+ #endif /* HAVE_LAUNCHD */
++#ifdef HAVE_AVAHI
++ cupsd_timeout_t *tmo; /* Next scheduled timed callback */
++ long tmo_delay; /* Time before it must be called */
++#endif /* HAVE_AVAHI */
+
+
+ #ifdef HAVE_GETEUID
+@@ -527,6 +535,14 @@
+
+ httpInitialize();
+
++#ifdef HAVE_AVAHI
++ /*
++ * Initialize timed callback structures.
++ */
++
++ cupsdInitTimeouts();
++#endif /* HAVE_AVAHI */
++
+ cupsdStartServer();
+
+ /*
+@@ -657,6 +673,9 @@
+ */
+
+ current_time = time(NULL);
++#ifdef HAVE_AVAHI
++ avahi_client_time = current_time;
++#endif /* HAVE_AVAHI */
+ browse_time = current_time;
+ event_time = current_time;
+ expire_time = current_time;
+@@ -871,6 +890,26 @@
+ }
+ #endif /* __APPLE__ */
+
++#ifdef HAVE_AVAHI
++ /*
++ * If a timed callback is due, run it.
++ */
++
++ tmo = cupsdNextTimeout (&tmo_delay);
++ if (tmo && tmo_delay == 0)
++ cupsdRunTimeout (tmo);
++
++ /*
++ * Try to restart the Avahi client every 10 seconds if needed...
++ */
++
++ if ((current_time - avahi_client_time) >= 10)
++ {
++ avahi_client_time = current_time;
++ cupsdStartAvahiClient();
++ }
++#endif /* HAVE_AVAHI */
++
+ #ifndef __APPLE__
+ /*
+ * Update the network interfaces once a minute...
+@@ -1815,6 +1854,10 @@
+ cupsd_job_t *job; /* Job information */
+ cupsd_subscription_t *sub; /* Subscription information */
+ const char *why; /* Debugging aid */
++#ifdef HAVE_AVAHI
++ cupsd_timeout_t *tmo; /* Timed callback */
++ long tmo_delay; /* Seconds before calling it */
++#endif /* HAVE_AVAHI */
+
+
+ /*
+@@ -1857,6 +1900,19 @@
+ }
+ #endif /* __APPLE__ */
+
++#ifdef HAVE_AVAHI
++ /*
++ * See if there are any scheduled timed callbacks to run.
++ */
++
++ tmo = cupsdNextTimeout (&tmo_delay);
++ if (tmo)
++ {
++ timeout = tmo_delay;
++ why = "run a timed callback";
++ }
++#endif /* HAVE_AVAHI */
++
+ /*
+ * Check whether we are accepting new connections...
+ */
+--- /dev/null
++++ b/scheduler/timeout.c
+@@ -0,0 +1,195 @@
++/*
++ * "$Id$"
++ *
++ * Timeout functions for the Common UNIX Printing System (CUPS).
++ *
++ * Copyright (C) 2010 Red Hat, Inc.
++ * Authors:
++ * Tim Waugh <twaugh@redhat.com>
++ *
++ * Distribution and use rights are outlined in the file "LICENSE.txt"
++ * which should have been included with this file. If this file is
++ * file is missing or damaged, see the license at "http://www.cups.org/".
++ *
++ * Contents:
++ *
++ * cupsdInitTimeouts() - Initialise timeout structure.
++ * cupsdAddTimeout() - Add a timed callback.
++ * cupsdNextTimeout() - Find the next enabled timed callback.
++ * cupsdUpdateTimeout() - Adjust the time of a timed callback or disable it.
++ * cupsdRemoveTimeout() - Discard a timed callback.
++ * compare_timeouts() - Compare timed callbacks for array sorting.
++ */
++
++#include <config.h>
++
++#ifdef HAVE_AVAHI /* Applies to entire file... */
++
++/*
++ * Include necessary headers...
++ */
++
++#include "cupsd.h"
++
++#if defined(HAVE_MALLOC_H) && defined(HAVE_MALLINFO)
++# include <malloc.h>
++#endif /* HAVE_MALLOC_H && HAVE_MALLINFO */
++
++#ifdef HAVE_AVAHI
++# include <avahi-common/timeval.h>
++#endif /* HAVE_AVAHI */
++
++
++struct _cupsd_timeout_s
++{
++ struct timeval when;
++ int enabled;
++ cupsd_timeoutfunc_t callback;
++ void *data;
++};
++
++/*
++ * Local functions...
++ */
++
++/*
++ * 'compare_timeouts()' - Compare timed callbacks for array sorting.
++ */
++
++static int
++compare_timeouts (cupsd_timeout_t *p0, cupsd_timeout_t *p1)
++{
++ if (!p0->enabled || !p1->enabled)
++ {
++ if (!p0->enabled && !p1->enabled)
++ return (0);
++
++ return (p0->enabled ? -1 : 1);
++ }
++
++ return (avahi_timeval_compare (&p0->when, &p1->when));
++}
++
++
++/*
++ * 'cupsdInitTimeouts()' - Initialise timeout structures.
++ */
++
++void
++cupsdInitTimeouts(void)
++{
++ Timeouts = cupsArrayNew ((cups_array_func_t)compare_timeouts, NULL);
++}
++
++
++/*
++ * 'cupsdAddTimeout()' - Add a timed callback.
++ */
++
++cupsd_timeout_t * /* O - Timeout handle */
++cupsdAddTimeout(const struct timeval *tv, /* I - Absolute time */
++ cupsd_timeoutfunc_t cb, /* I - Callback function */
++ void *data) /* I - User data */
++{
++ cupsd_timeout_t *timeout;
++
++ timeout = malloc (sizeof(cupsd_timeout_t));
++ if (timeout != NULL)
++ {
++ timeout->enabled = (tv != NULL);
++ if (tv)
++ {
++ timeout->when.tv_sec = tv->tv_sec;
++ timeout->when.tv_usec = tv->tv_usec;
++ }
++
++ timeout->callback = cb;
++ timeout->data = data;
++ cupsArrayAdd (Timeouts, timeout);
++ }
++
++ return timeout;
++}
++
++
++/*
++ * 'cupsdNextTimeout()' - Find the next enabled timed callback.
++ */
++
++cupsd_timeout_t * /* O - Next enabled timeout or NULL */
++cupsdNextTimeout(long *delay) /* O - Seconds before scheduled */
++{
++ cupsd_timeout_t *first = cupsArrayFirst (Timeouts);
++ struct timeval curtime;
++
++ if (first && !first->enabled)
++ first = NULL;
++
++ if (first && delay)
++ {
++ gettimeofday (&curtime, NULL);
++ if (avahi_timeval_compare (&curtime, &first->when) > 0)
++ {
++ *delay = 0;
++ } else {
++ *delay = 1 + first->when.tv_sec - curtime.tv_sec;
++ if (first->when.tv_usec < curtime.tv_usec)
++ (*delay)--;
++ }
++ }
++
++ return (first);
++}
++
++
++/*
++ * 'cupsdRunTimeout()' - Run a timed callback.
++ */
++
++void
++cupsdRunTimeout(cupsd_timeout_t *timeout) /* I - Timeout */
++{
++ if (!timeout)
++ return;
++ timeout->enabled = 0;
++ if (!timeout->callback)
++ return;
++ timeout->callback (timeout, timeout->data);
++}
++
++/*
++ * 'cupsdUpdateTimeout()' - Adjust the time of a timed callback or disable it.
++ */
++
++void
++cupsdUpdateTimeout(cupsd_timeout_t *timeout, /* I - Timeout */
++ const struct timeval *tv) /* I - Absolute time or NULL */
++{
++ cupsArrayRemove (Timeouts, timeout);
++ timeout->enabled = (tv != NULL);
++ if (tv)
++ {
++ timeout->when.tv_sec = tv->tv_sec;
++ timeout->when.tv_usec = tv->tv_usec;
++ }
++ cupsArrayAdd (Timeouts, timeout);
++}
++
++
++/*
++ * 'cupsdRemoveTimeout()' - Discard a timed callback.
++ */
++
++void
++cupsdRemoveTimeout(cupsd_timeout_t *timeout) /* I - Timeout */
++{
++ cupsArrayRemove (Timeouts, timeout);
++ free (timeout);
++}
++
++
++#endif /* HAVE_AVAHI ... from top of file */
++
++/*
++ * End of "$Id$".
++ */
+--- a/cgi-bin/admin.c
++++ b/cgi-bin/admin.c
+@@ -1643,7 +1643,7 @@
+ else
+ local_protocols[0] = '\0';
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ if (cgiGetVariable("BROWSE_LOCAL_DNSSD"))
+ {
+ if (local_protocols[0])
+@@ -1651,7 +1651,7 @@
+ else
+ strcat(local_protocols, "dnssd");
+ }
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ #ifdef HAVE_LDAP
+ if (cgiGetVariable("BROWSE_LOCAL_LDAP"))
+@@ -2718,9 +2718,9 @@
+ #endif /* HAVE_GSSAPI */
+ cgiSetVariable("KERBEROS", "");
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ cgiSetVariable("HAVE_DNSSD", "1");
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ #ifdef HAVE_LDAP
+ cgiSetVariable("HAVE_LDAP", "1");
+--- a/scheduler/client.c
++++ b/scheduler/client.c
+@@ -4987,7 +4987,7 @@
+ !strncmp(host, "[::1]:", 6));
+ }
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ /*
+ * Check if the hostname is something.local (Bonjour); if so, allow it.
+ */
+@@ -4996,7 +4996,7 @@
+ (!_cups_strcasecmp(end, ".local") || !_cups_strncasecmp(end, ".local:", 7) ||
+ !_cups_strcasecmp(end, ".local.") || !_cups_strncasecmp(end, ".local.:", 8)))
+ return (1);
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ /*
+ * Check if the hostname is an IP address...
+--- a/scheduler/dirsvc.c
++++ b/scheduler/dirsvc.c
+@@ -27,6 +27,7 @@
+ * ldap_connect() - Start new LDAP connection
+ * ldap_reconnect() - Reconnect to LDAP Server
+ * ldap_disconnect() - Disconnect from LDAP Server
++ * cupsdStartAvahiClient() - Start an Avahi client if needed
+ * cupsdStartBrowsing() - Start sending and receiving broadcast
+ * information.
+ * cupsdStartPolling() - Start polling servers as needed.
+@@ -45,6 +46,8 @@
+ * printer.
+ * dnssdPackTxtRecord() - Pack an array of key/value pairs into the TXT
+ * record format.
++ * avahiPackTxtRecord() - Pack an array of key/value pairs into an
++ * AvahiStringList.
+ * dnssdRegisterCallback() - DNSServiceRegister callback.
+ * dnssdRegisterPrinter() - Start sending broadcast information for a
+ * printer or update the broadcast contents.
+@@ -83,6 +86,7 @@
+ */
+
+ #include "cupsd.h"
++#include <assert.h>
+ #include <grp.h>
+
+ #ifdef HAVE_DNSSD
+@@ -97,6 +101,17 @@
+ # endif /* HAVE_SYSTEMCONFIGURATION */
+ # endif /* __APPLE__ */
+ #endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++# include <avahi-common/domain.h>
++#endif /* HAVE_AVAHI */
++
++
++#ifdef HAVE_DNSSD
++typedef char *cupsd_txt_record_t;
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++typedef AvahiStringList *cupsd_txt_record_t;
++#endif /* HAVE_AVAHI */
+
+
+ /*
+@@ -159,27 +174,39 @@
+ static void update_smb(int onoff);
+
+
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
++static cupsd_txt_record_t dnssdBuildTxtRecord(int *txt_len, cupsd_printer_t *p,
++ int for_lpd);
++static int dnssdComparePrinters(cupsd_printer_t *a, cupsd_printer_t *b);
++static void dnssdDeregisterPrinter(cupsd_printer_t *p);
++static void dnssdRegisterPrinter(cupsd_printer_t *p);
++static void dnssdStop(void);
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
++
+ #ifdef HAVE_DNSSD
+ # ifdef HAVE_COREFOUNDATION
+ static void dnssdAddAlias(const void *key, const void *value,
+ void *context);
+ # endif /* HAVE_COREFOUNDATION */
+-static char *dnssdBuildTxtRecord(int *txt_len, cupsd_printer_t *p,
+- int for_lpd);
+-static int dnssdComparePrinters(cupsd_printer_t *a, cupsd_printer_t *b);
+-static void dnssdDeregisterPrinter(cupsd_printer_t *p);
+-static char *dnssdPackTxtRecord(int *txt_len, char *keyvalue[][2],
+- int count);
+ static void dnssdRegisterCallback(DNSServiceRef sdRef,
+ DNSServiceFlags flags,
+ DNSServiceErrorType errorCode,
+ const char *name, const char *regtype,
+ const char *domain, void *context);
+-static void dnssdRegisterPrinter(cupsd_printer_t *p);
+-static void dnssdStop(void);
+ static void dnssdUpdate(void);
+ #endif /* HAVE_DNSSD */
+
++#ifdef HAVE_AVAHI
++static AvahiStringList *avahiPackTxtRecord(char *keyvalue[][2],
++ int count);
++static void avahi_entry_group_cb (AvahiEntryGroup *group,
++ AvahiEntryGroupState state,
++ void *userdata);
++static void avahi_client_cb (AvahiClient *client,
++ AvahiClientState state,
++ void *userdata);
++#endif /* HAVE_AVAHI */
++
+ #ifdef HAVE_LDAP
+ static const char * const ldap_attrs[] =/* CUPS LDAP attributes */
+ {
+@@ -283,10 +310,10 @@
+ ldap_dereg_printer(p);
+ #endif /* HAVE_LDAP */
+
+-#ifdef HAVE_DNSSD
+- if (removeit && (BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDRef)
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
++ if (removeit && (BrowseLocalProtocols & BROWSE_DNSSD))
+ dnssdDeregisterPrinter(p);
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+ }
+
+
+@@ -702,10 +729,10 @@
+ slpRegisterPrinter(p); */
+ #endif /* HAVE_LIBSLP */
+
+-#ifdef HAVE_DNSSD
+- if ((BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDRef)
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
++ if ((BrowseLocalProtocols & BROWSE_DNSSD))
+ dnssdRegisterPrinter(p);
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+ }
+
+
+@@ -1419,6 +1446,27 @@
+ #endif /* HAVE_LDAP */
+
+
++#ifdef HAVE_AVAHI
++/*
++ * 'cupsdStartAvahiClient()' - Start an Avahi client if needed
++ */
++
++void
++cupsdStartAvahiClient(void)
++{
++ if (!AvahiCupsClient && !AvahiCupsClientConnecting)
++ {
++ if (!AvahiCupsPollHandle)
++ AvahiCupsPollHandle = avahi_cups_poll_new ();
++
++ if (AvahiCupsPollHandle)
++ avahi_client_new (avahi_cups_poll_get (AvahiCupsPollHandle),
++ AVAHI_CLIENT_NO_FAIL, avahi_client_cb, NULL, NULL);
++ }
++}
++#endif /* HAVE_AVAHI */
++
++
+ /*
+ * 'cupsdStartBrowsing()' - Start sending and receiving broadcast information.
+ */
+@@ -1542,13 +1590,16 @@
+ else
+ BrowseSocket = -1;
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ if ((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_DNSSD)
+ {
++#ifdef HAVE_DNSSD
+ DNSServiceErrorType error; /* Error from service creation */
++#endif /* HAVE_DNSSD */
+ cupsd_listener_t *lis; /* Current listening socket */
+
+
++#ifdef HAVE_DNSSD
+ /*
+ * First create a "master" connection for all registrations...
+ */
+@@ -1573,6 +1624,7 @@
+ fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
+
+ cupsdAddSelect(fd, (cupsd_selfunc_t)dnssdUpdate, NULL, NULL);
++#endif /* HAVE_DNSSD */
+
+ /*
+ * Then get the port we use for registrations. If we are not listening
+@@ -1606,9 +1658,16 @@
+ */
+
+ cupsdUpdateDNSSDName();
++
++#ifdef HAVE_AVAHI
++ cupsdStartAvahiClient ();
++#endif /* HAVE_AVAHI */
++
++#ifdef HAVE_DNSSD
+ }
+- }
+ #endif /* HAVE_DNSSD */
++ }
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ #ifdef HAVE_LIBSLP
+ if ((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_SLP)
+@@ -1834,10 +1893,10 @@
+ BrowseSocket = -1;
+ }
+
+-#ifdef HAVE_DNSSD
+- if ((BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDRef)
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
++ if ((BrowseLocalProtocols & BROWSE_DNSSD))
+ dnssdStop();
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ #ifdef HAVE_LIBSLP
+ if (((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_SLP) &&
+@@ -1902,7 +1961,7 @@
+ }
+
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ /*
+ * 'cupsdUpdateDNSSDName()' - Update the computer name we use for browsing...
+ */
+@@ -1910,8 +1969,14 @@
+ void
+ cupsdUpdateDNSSDName(void)
+ {
++#ifdef HAVE_DNSSD
+ DNSServiceErrorType error; /* Error from service creation */
+ char webif[1024]; /* Web interface share name */
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ int ret; /* Error from service creation */
++ char webif[AVAHI_LABEL_MAX]; /* Web interface share name */
++#endif /* HAVE_AVAHI */
+ # ifdef HAVE_SYSTEMCONFIGURATION
+ SCDynamicStoreRef sc; /* Context for dynamic store */
+ CFDictionaryRef btmm; /* Back-to-My-Mac domains */
+@@ -2042,6 +2107,7 @@
+ else
+ strlcpy(webif, "CUPS Web Interface", sizeof(webif));
+
++#ifdef HAVE_DNSSD
+ if (WebIFRef)
+ DNSServiceRefDeallocate(WebIFRef);
+
+@@ -2054,9 +2120,45 @@
+ NULL)) != kDNSServiceErr_NoError)
+ cupsdLogMessage(CUPSD_LOG_ERROR,
+ "DNS-SD web interface registration failed: %d", error);
++#endif /* HAVE_DNSSD */
++
++#ifdef HAVE_AVAHI
++ if (!AvahiCupsClient)
++ /*
++ * Client not yet running.
++ */
++ return;
++
++ if (AvahiWebIFGroup)
++ avahi_entry_group_reset (AvahiWebIFGroup);
++ else
++ AvahiWebIFGroup = avahi_entry_group_new (AvahiCupsClient,
++ avahi_entry_group_cb,
++ NULL);
++
++ if (AvahiWebIFGroup)
++ {
++ ret = avahi_entry_group_add_service (AvahiWebIFGroup,
++ AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ 0, /* flags */
++ webif, /* name */
++ "_http._tcp", /* type */
++ NULL, /* domain */
++ NULL, /* host */
++ DNSSDPort, /* port */
++ "path=/", NULL);
++ if (ret == 0)
++ ret = avahi_entry_group_commit (AvahiWebIFGroup);
++
++ if (ret != 0)
++ cupsdLogMessage (CUPSD_LOG_ERROR,
++ "Avahi web interface registration failed: %d", ret);
++ }
++#endif /* HAVE_AVAHI */
+ }
+ }
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+
+ #ifdef HAVE_LDAP
+@@ -2334,13 +2436,15 @@
+ "Bad Back to My Mac domain in dynamic store!");
+ }
+ # endif /* HAVE_COREFOUNDATION */
++#endif /* HAVE_DNSSD */
+
+
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ /*
+ * 'dnssdBuildTxtRecord()' - Build a TXT record from printer info.
+ */
+
+-static char * /* O - TXT record */
++static cupsd_txt_record_t /* O - TXT record */
+ dnssdBuildTxtRecord(
+ int *txt_len, /* O - TXT record length */
+ cupsd_printer_t *p, /* I - Printer information */
+@@ -2379,7 +2483,12 @@
+ keyvalue[i ][0] = "ty";
+ keyvalue[i++][1] = p->make_model ? p->make_model : "Unknown";
+
+- snprintf(admin_hostname, sizeof(admin_hostname), "%s.local.", DNSSDHostName);
++ snprintf(admin_hostname, sizeof(admin_hostname),
++ "%s.local"
++#ifdef HAVE_DNSSD
++ "." /* terminating dot no good for Avahi */
++#endif /* HAVE_DNSSD */
++ , DNSSDHostName);
+ httpAssembleURIf(HTTP_URI_CODING_ALL, adminurl_str, sizeof(adminurl_str),
+ "http", NULL, admin_hostname, DNSSDPort, "/%s/%s",
+ (p->type & CUPS_PRINTER_CLASS) ? "classes" : "printers",
+@@ -2462,7 +2571,12 @@
+ * Then pack them into a proper txt record...
+ */
+
++#ifdef HAVE_DNSSD
+ return (dnssdPackTxtRecord(txt_len, keyvalue, i));
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ return (avahiPackTxtRecord(keyvalue, i));
++#endif /* HAVE_AVAHI */
+ }
+
+
+@@ -2474,7 +2588,16 @@
+ dnssdComparePrinters(cupsd_printer_t *a,/* I - First printer */
+ cupsd_printer_t *b)/* I - Second printer */
+ {
+- return (_cups_strcasecmp(a->reg_name, b->reg_name));
++ if (!a->reg_name)
++ if (!b->reg_name)
++ return 0;
++ else
++ return -1;
++ else
++ if (!b->reg_name)
++ return 1;
++ else
++ return (_cups_strcasecmp(a->reg_name, b->reg_name));
+ }
+
+
+@@ -2489,6 +2612,10 @@
+ {
+ cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdDeregisterPrinter(%s)", p->name);
+
++#ifdef HAVE_DNSSD
++ if (!DNSSDRef)
++ return;
++
+ /*
+ * Closing the socket deregisters the service
+ */
+@@ -2524,6 +2651,24 @@
+ free(p->printer_txt);
+ p->printer_txt = NULL;
+ }
++#endif /* HAVE_DNSSD */
++
++#ifdef HAVE_AVAHI
++ if (p->avahi_group)
++ {
++ avahi_entry_group_reset (p->avahi_group);
++ avahi_entry_group_free (p->avahi_group);
++ p->avahi_group = NULL;
++
++ if (p->ipp_txt)
++ avahi_string_list_free (p->ipp_txt);
++
++ if (p->printer_txt)
++ avahi_string_list_free (p->printer_txt);
++
++ p->ipp_txt = p->printer_txt = NULL;
++ }
++#endif /* HAVE_AVAHI */
+
+ /*
+ * Remove the printer from the array of DNS-SD printers, then clear the
+@@ -2533,8 +2678,10 @@
+ cupsArrayRemove(DNSSDPrinters, p);
+ cupsdClearString(&p->reg_name);
+ }
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+
++#ifdef HAVE_DNSSD
+ /*
+ * 'dnssdPackTxtRecord()' - Pack an array of key/value pairs into the
+ * TXT record format.
+@@ -2644,8 +2791,10 @@
+ LastEvent |= CUPSD_EVENT_PRINTER_MODIFIED;
+ }
+ }
++#endif /* HAVE_DNSSD */
+
+
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ /*
+ * 'dnssdRegisterPrinter()' - Start sending broadcast information for a printer
+ * or update the broadcast contents.
+@@ -2654,20 +2803,40 @@
+ static void
+ dnssdRegisterPrinter(cupsd_printer_t *p)/* I - Printer */
+ {
++#ifdef HAVE_DNSSD
+ DNSServiceErrorType se; /* dnssd errors */
+ char *ipp_txt, /* IPP TXT record buffer */
+ *printer_txt, /* LPD TXT record buffer */
+- name[1024], /* Service name */
+- *nameptr; /* Pointer into name */
++ name[1024]; /* Service name */
+ int ipp_len, /* IPP TXT record length */
+ printer_len, /* LPD TXT record length */
+ printer_port; /* LPD port number */
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ int ret; /* Error code */
++ AvahiStringList *ipp_txt, /* IPP TXT record */
++ *printer_txt; /* LPD TXT record */
++ char name[AVAHI_LABEL_MAX], /* Service name */
++ fullsubtype[AVAHI_LABEL_MAX]; /* Full subtype */
++ char *regtype_copy, /* Writeable copy of reg type */
++ *subtype, /* Current service sub type */
++ *nextsubtype; /* Next service sub type */
++#endif /* HAVE_AVAHI */
++ char *nameptr; /* Pointer into name */
+ const char *regtype; /* Registration type */
+
+
++#ifdef HAVE_DNSSD
++ if (!DNSSDRef)
++ return;
++
+ cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdRegisterPrinter(%s) %s", p->name,
+ !p->ipp_ref ? "new" : "update");
+-
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdRegisterPrinter(%s) %s", p->name,
++ !p->avahi_group ? "new" : "update");
++#endif /* HAVE_AVAHI */
+ /*
+ * If per-printer sharing was just disabled make sure we're not
+ * registered before returning.
+@@ -2686,12 +2855,36 @@
+ if (p->info && strlen(p->info) > 0)
+ {
+ if (DNSSDComputerName)
+- snprintf(name, sizeof(name), "%s @ %s", p->info, DNSSDComputerName);
++ {
++ /*
++ * Make sure there is room for at least 15 characters of
++ * DNSSDComputerName.
++ */
++
++ assert(sizeof(name) >= 15 + 4);
++ nameptr = name + strlcpy(name, p->info,
++ sizeof(name) - 4 -
++ strnlen(DNSSDComputerName, 15));
++ nameptr += strlcpy(nameptr, " @ ", sizeof(name) - (nameptr - name));
++ strlcpy(nameptr, DNSSDComputerName, sizeof(name) - (nameptr - name));
++ }
+ else
+ strlcpy(name, p->info, sizeof(name));
+ }
+ else if (DNSSDComputerName)
+- snprintf(name, sizeof(name), "%s @ %s", p->name, DNSSDComputerName);
++ {
++ /*
++ * Make sure there is room for at least 15 characters of
++ * DNSSDComputerName.
++ */
++
++ assert(sizeof(name) >= 15 + 4);
++ nameptr = name + strlcpy(name, p->info,
++ sizeof(name) - 4 -
++ strnlen(DNSSDComputerName, 15));
++ nameptr += strlcpy(nameptr, " @ ", sizeof(name) - (nameptr - name));
++ strlcpy(nameptr, DNSSDComputerName, sizeof(name) - (nameptr - name));
++ }
+ else
+ strlcpy(name, p->name, sizeof(name));
+
+@@ -2712,6 +2905,7 @@
+ * Register IPP and (optionally) LPD...
+ */
+
++#ifdef HAVE_DNSSD
+ ipp_len = 0; /* anti-compiler-warning-code */
+ ipp_txt = dnssdBuildTxtRecord(&ipp_len, p, 0);
+
+@@ -2884,6 +3078,209 @@
+
+ if (printer_txt)
+ free(printer_txt);
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ if (!AvahiCupsClient)
++ /*
++ * Client not running yet. The client callback will call us again later.
++ */
++ return;
++
++ ipp_txt = dnssdBuildTxtRecord(NULL, p, 0);
++ printer_txt = dnssdBuildTxtRecord(NULL, p, 1);
++ regtype = (p->type & CUPS_PRINTER_FAX) ? "_fax-ipp._tcp" : DNSSDRegType;
++
++ if (p->avahi_group && p->ipp_txt && ipp_txt &&
++ !avahi_string_list_equal (p->ipp_txt, ipp_txt))
++ {
++ /*
++ * Update the existing registration...
++ */
++
++ avahi_string_list_free (p->ipp_txt);
++
++ if (p->printer_txt)
++ avahi_string_list_free (p->printer_txt);
++
++ /*
++ * Update the service group entry.
++ */
++
++ regtype_copy = strdup (regtype);
++ subtype = strchr (regtype_copy, ',');
++ if (subtype)
++ *subtype = '\0';
++
++ cupsdLogMessage (CUPSD_LOG_DEBUG,
++ "Updating TXT record for %s (%s)", name, regtype_copy);
++ ret = avahi_entry_group_update_service_txt_strlst (p->avahi_group,
++ AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ 0, name,
++ regtype_copy,
++ NULL, ipp_txt);
++ free (regtype_copy);
++
++ if (ret < 0)
++ goto update_failed;
++
++ p->ipp_txt = ipp_txt;
++ ipp_txt = NULL;
++
++ if (BrowseLocalProtocols & BROWSE_LPD)
++ {
++ ret = avahi_entry_group_update_service_txt_strlst (p->avahi_group,
++ AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ 0, name,
++ "_printer._tcp", NULL,
++ printer_txt);
++ if (ret < 0)
++ goto update_failed;
++
++ p->printer_txt = printer_txt;
++ printer_txt = NULL;
++ }
++
++ ret = avahi_entry_group_commit (p->avahi_group);
++ if (ret < 0)
++ {
++ update_failed:
++ cupsdLogMessage (CUPSD_LOG_ERROR,
++ "Failed to update TXT record for %s: %d",
++ name, ret);
++ avahi_entry_group_reset (p->avahi_group);
++ avahi_entry_group_free (p->avahi_group);
++ p->avahi_group = NULL;
++ ipp_txt = p->ipp_txt;
++ p->ipp_txt = NULL;
++ }
++ }
++
++ if (!p->avahi_group)
++ {
++ /*
++ * Initial registration. Use the _fax subtype for fax queues...
++ */
++
++ p->avahi_group = avahi_entry_group_new (AvahiCupsClient,
++ avahi_entry_group_cb,
++ p);
++
++ cupsdLogMessage(CUPSD_LOG_DEBUG,
++ "Registering Avahi printer %s with name \"%s\" and "
++ "type \"%s\"", p->name, name, regtype);
++
++ if (!p->avahi_group)
++ {
++ ret = 0;
++ goto add_failed;
++ }
++
++ /*
++ * Add each service type (DNSSDRegType may contain several,
++ * separated by commas).
++ */
++
++ subtype = regtype_copy = strdup (regtype);
++ while (subtype && *subtype)
++ {
++ nextsubtype = strchr (subtype, ',');
++ if (nextsubtype)
++ *nextsubtype++ = '\0';
++
++ if (subtype == regtype_copy)
++ {
++ /*
++ * Main type entry.
++ */
++
++ cupsdLogMessage (CUPSD_LOG_DEBUG,
++ "Adding TXT record for %s (%s)", name, regtype_copy);
++ ret = avahi_entry_group_add_service_strlst (p->avahi_group,
++ AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ 0, name, regtype_copy,
++ NULL, NULL,
++ DNSSDPort,
++ ipp_txt);
++ }
++ else
++ {
++ /*
++ * Sub-type entry.
++ */
++
++ snprintf (fullsubtype, sizeof(fullsubtype),
++ "%s._sub.%s", subtype, regtype_copy);
++ cupsdLogMessage (CUPSD_LOG_DEBUG,
++ "Adding TXT record for %s (%s)", name, fullsubtype);
++ ret = avahi_entry_group_add_service_subtype (p->avahi_group,
++ AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ 0, name,
++ regtype_copy,
++ NULL, fullsubtype);
++ }
++
++ if (ret < 0)
++ {
++ free (regtype_copy);
++ goto add_failed;
++ }
++
++ subtype = nextsubtype;
++ }
++
++ free (regtype_copy);
++ p->ipp_txt = ipp_txt;
++ ipp_txt = NULL;
++
++ if (BrowseLocalProtocols & BROWSE_LPD)
++ {
++ cupsdLogMessage(CUPSD_LOG_DEBUG,
++ "Registering Avahi printer %s with name \"%s\" and "
++ "type \"_printer._tcp\"", p->name, name);
++
++ ret = avahi_entry_group_add_service_strlst (p->avahi_group,
++ AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ 0, name,
++ "_printer._tcp", NULL, NULL,
++ 515,
++ printer_txt);
++ if (ret < 0)
++ goto add_failed;
++
++ p->printer_txt = printer_txt;
++ printer_txt = NULL;
++ }
++
++ ret = avahi_entry_group_commit (p->avahi_group);
++
++ if (ret < 0)
++ {
++ add_failed:
++ cupsdLogMessage (CUPSD_LOG_ERROR,
++ "Failed to add Avahi entry for %s: %d",
++ name, ret);
++ if (p->avahi_group)
++ {
++ avahi_entry_group_reset (p->avahi_group);
++ avahi_entry_group_free (p->avahi_group);
++ p->avahi_group = NULL;
++ }
++ ipp_txt = p->ipp_txt;
++ p->ipp_txt = NULL;
++ }
++ }
++
++ if (ipp_txt)
++ avahi_string_list_free (ipp_txt);
++
++ if (printer_txt)
++ avahi_string_list_free (printer_txt);
++#endif /* HAVE_AVAHI */
+ }
+
+
+@@ -2896,6 +3293,10 @@
+ {
+ cupsd_printer_t *p; /* Current printer */
+
++#ifdef HAVE_DNSSD
++ if (!DNSSDRef)
++ return;
++#endif /* HAVE_DNSSD */
+
+ /*
+ * De-register the individual printers
+@@ -2906,6 +3307,7 @@
+ p = (cupsd_printer_t *)cupsArrayNext(Printers))
+ dnssdDeregisterPrinter(p);
+
++#ifdef HAVE_DNSSD
+ /*
+ * Shutdown the rest of the service refs...
+ */
+@@ -2926,14 +3328,17 @@
+
+ DNSServiceRefDeallocate(DNSSDRef);
+ DNSSDRef = NULL;
++#endif /* HAVE_DNSSD */
+
+ cupsArrayDelete(DNSSDPrinters);
+ DNSSDPrinters = NULL;
+
+ DNSSDPort = 0;
+ }
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+
++#ifdef HAVE_DNSSD
+ /*
+ * 'dnssdUpdate()' - Handle DNS-SD queries.
+ */
+@@ -2955,6 +3360,147 @@
+ #endif /* HAVE_DNSSD */
+
+
++#ifdef HAVE_AVAHI
++/*
++ * 'avahiPackTxtRecord()' - Pack an array of key/value pairs into an
++ * AvahiStringList.
++ */
++
++static AvahiStringList * /* O - new string list */
++avahiPackTxtRecord(char *keyvalue[][2], /* I - Table of key value pairs */
++ int count) /* I - Number of items in table */
++{
++ AvahiStringList *strlst = NULL;
++ char **elements;
++ size_t len;
++ int i = 0;
++
++ elements = malloc ((1 + count) * sizeof (char *));
++ if (!elements)
++ goto cleanup;
++
++ for (i = 0; i < count; i++)
++ {
++ len = (1 + strlen (keyvalue[i][0]) +
++ (keyvalue[i][1] ? 1 + strlen (keyvalue[i][1]) : 1));
++ elements[i] = malloc (len * sizeof (char));
++ if (!elements[i])
++ goto cleanup;
++
++ snprintf (elements[i], len, "%s=%s", keyvalue[i][0], keyvalue[i][1]);
++ }
++
++ strlst = avahi_string_list_new_from_array ((const char **) elements, count);
++
++cleanup:
++ while (--i >= 0)
++ free (elements[i]);
++
++ free (elements);
++ return (strlst);
++}
++
++
++/*
++ * 'avahi_entry_group_cb()' - Avahi entry group callback function.
++ */
++static void
++avahi_entry_group_cb (AvahiEntryGroup *group,
++ AvahiEntryGroupState state,
++ void *userdata)
++{
++ char *name;
++
++ if (userdata)
++ name = ((cupsd_printer_t *) userdata)->reg_name;
++ else
++ name = "CUPS web interface";
++
++ switch (state)
++ {
++ case AVAHI_ENTRY_GROUP_UNCOMMITED:
++ case AVAHI_ENTRY_GROUP_REGISTERING:
++ break;
++
++ case AVAHI_ENTRY_GROUP_ESTABLISHED:
++ cupsdLogMessage (CUPSD_LOG_DEBUG,
++ "Avahi entry group established for %s", name);
++ break;
++
++ default:
++ cupsdLogMessage (CUPSD_LOG_DEBUG,
++ "Avahi entry group %s has state %d",
++ name, state);
++ break;
++ }
++}
++
++
++/*
++ * 'avahi_client_cb()' - Avahi client callback function.
++ */
++static void
++avahi_client_cb (AvahiClient *client,
++ AvahiClientState state,
++ void *userdata)
++{
++ cupsd_printer_t *printer;
++ switch (state)
++ {
++ case AVAHI_CLIENT_S_RUNNING:
++ /*
++ * Avahi client started successfully.
++ */
++ AvahiCupsClient = client;
++ AvahiCupsClientConnecting = 0;
++ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client started");
++
++ cupsdUpdateDNSSDName ();
++
++ for (printer = (cupsd_printer_t *)cupsArrayFirst(Printers);
++ printer;
++ printer = (cupsd_printer_t *)cupsArrayNext(Printers))
++ if (Browsing && (BrowseLocalProtocols & BROWSE_DNSSD) &&
++ (!(printer->type & (CUPS_PRINTER_REMOTE | CUPS_PRINTER_IMPLICIT |
++ CUPS_PRINTER_SCANNER))) && printer->shared)
++ dnssdRegisterPrinter (printer);
++
++ break;
++
++ case AVAHI_CLIENT_CONNECTING:
++ /*
++ * No Avahi daemon, client is waiting.
++ */
++ AvahiCupsClientConnecting = 1;
++ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client connecting");
++ break;
++
++ case AVAHI_CLIENT_FAILURE:
++ /*
++ * Avahi client failed, close it to allow a clean restart.
++ */
++ cupsdLogMessage (CUPSD_LOG_ERROR,
++ "Avahi client failed, "
++ "closing client to allow a clean restart");
++
++ for (printer = (cupsd_printer_t *)cupsArrayFirst(Printers);
++ printer;
++ printer = (cupsd_printer_t *)cupsArrayNext(Printers))
++ dnssdDeregisterPrinter (printer);
++
++ avahi_client_free(client);
++ AvahiCupsClientConnecting = 0;
++ AvahiCupsClient = NULL;
++
++ break;
++
++ default:
++ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client state: %d", state);
++ }
++}
++#endif /* HAVE_AVAHI */
++
++
+ /*
+ * 'get_auth_info_required()' - Get the auth-info-required value to advertise.
+ */
+--- a/scheduler/dirsvc.h
++++ b/scheduler/dirsvc.h
+@@ -31,6 +31,10 @@
+ # endif /* HAVE_LDAP_SSL_H */
+ #endif /* HAVE_LDAP */
+
++#ifdef HAVE_AVAHI
++# include <avahi-client/publish.h>
++#endif /* HAVE_AVAHI */
++
+ /*
+ * Browse protocols...
+ */
+@@ -131,19 +135,22 @@
+ VAR cupsd_statbuf_t *PollStatusBuffer VALUE(NULL);
+ /* Status buffer for pollers */
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ VAR char *DNSSDComputerName VALUE(NULL),
+ /* Computer/server name */
+ *DNSSDHostName VALUE(NULL),
+ /* Hostname */
+ *DNSSDRegType VALUE(NULL);
+ /* Bonjour registration type */
+-VAR cups_array_t *DNSSDAlias VALUE(NULL);
+- /* List of dynamic ServerAlias's */
+ VAR int DNSSDPort VALUE(0);
+ /* Port number to register */
+ VAR cups_array_t *DNSSDPrinters VALUE(NULL);
+ /* Printers we have registered */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
++
++#ifdef HAVE_DNSSD
++VAR cups_array_t *DNSSDAlias VALUE(NULL);
++ /* List of dynamic ServerAlias's */
+ VAR DNSServiceRef DNSSDRef VALUE(NULL),
+ /* Master DNS-SD service reference */
+ WebIFRef VALUE(NULL),
+@@ -152,6 +159,17 @@
+ /* Remote printer browse reference */
+ #endif /* HAVE_DNSSD */
+
++#ifdef HAVE_AVAHI
++VAR AvahiCupsPoll *AvahiCupsPollHandle VALUE(NULL);
++ /* AvahiCupsPoll object */
++VAR AvahiClient *AvahiCupsClient VALUE(NULL);
++ /* AvahiClient object */
++VAR int AvahiCupsClientConnecting VALUE(0);
++ /* Is AvahiClient object connecting? */
++VAR AvahiEntryGroup *AvahiWebIFGroup VALUE(NULL);
++ /* Web interface entry group */
++#endif /* HAVE_AVAHI */
++
+ #ifdef HAVE_LIBSLP
+ VAR SLPHandle BrowseSLPHandle VALUE(NULL);
+ /* SLP API handle */
+@@ -195,13 +213,14 @@
+ extern void cupsdRestartPolling(void);
+ extern void cupsdSaveRemoteCache(void);
+ extern void cupsdSendBrowseList(void);
++extern void cupsdStartAvahiClient(void);
+ extern void cupsdStartBrowsing(void);
+ extern void cupsdStartPolling(void);
+ extern void cupsdStopBrowsing(void);
+ extern void cupsdStopPolling(void);
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ extern void cupsdUpdateDNSSDName(void);
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+ #ifdef HAVE_LDAP
+ extern void cupsdUpdateLDAPBrowse(void);
+ #endif /* HAVE_LDAP */
+--- a/scheduler/ipp.c
++++ b/scheduler/ipp.c
+@@ -6087,7 +6087,7 @@
+ ippAddDate(con->response, IPP_TAG_PRINTER, "printer-current-time",
+ ippTimeToDate(curtime));
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ if (!ra || cupsArrayFind(ra, "printer-dns-sd-name"))
+ {
+ if (printer->reg_name)
+@@ -6097,7 +6097,7 @@
+ ippAddInteger(con->response, IPP_TAG_PRINTER, IPP_TAG_NOVALUE,
+ "printer-dns-sd-name", 0);
+ }
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ if (!ra || cupsArrayFind(ra, "printer-error-policy"))
+ ippAddString(con->response, IPP_TAG_PRINTER, IPP_TAG_NAME,
+--- a/scheduler/printers.c
++++ b/scheduler/printers.c
+@@ -883,9 +883,9 @@
+ cupsdClearString(&p->alert);
+ cupsdClearString(&p->alert_description);
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ cupsdClearString(&p->pdl);
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ cupsArrayDelete(p->filetypes);
+
+@@ -3765,7 +3765,7 @@
+ attr->values[i].string.text = _cupsStrAlloc(mimetype);
+ }
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ {
+ char pdl[1024]; /* Buffer to build pdl list */
+ mime_filter_t *filter; /* MIME filter looping var */
+@@ -3821,7 +3821,7 @@
+
+ cupsdSetString(&p->pdl, pdl);
+ }
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+ }
+
+
+--- a/scheduler/printers.h
++++ b/scheduler/printers.h
+@@ -16,6 +16,9 @@
+ #ifdef HAVE_DNSSD
+ # include <dns_sd.h>
+ #endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++# include "avahi.h"
++#endif /* HAVE_AVAHI */
+ #include <cups/pwg-private.h>
+
+
+@@ -95,16 +98,23 @@
+ time_t marker_time; /* Last time marker attributes were updated */
+ _ppd_cache_t *pc; /* PPD cache and mapping data */
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ char *reg_name, /* Name used for service registration */
+- *pdl, /* pdl value for TXT record */
+- *ipp_txt, /* IPP TXT record contents */
++ *pdl; /* pdl value for TXT record */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
++#ifdef HAVE_DNSSD
++ char *ipp_txt, /* IPP TXT record contents */
+ *printer_txt; /* LPD TXT record contents */
+ int ipp_len, /* IPP TXT record length */
+ printer_len; /* LPD TXT record length */
+ DNSServiceRef ipp_ref, /* Reference for _ipp._tcp,_cups */
+ printer_ref; /* Reference for _printer._tcp */
+ #endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ AvahiStringList *ipp_txt, /* IPP TXT record */
++ *printer_txt; /* LPD TXT record */
++ AvahiEntryGroup *avahi_group; /* Avahi entry group */
++#endif /* HAVE_AVAHI */
+ };
+
+
+--- a/scheduler/conf.c
++++ b/scheduler/conf.c
+@@ -650,7 +650,7 @@
+ Browsing = CUPS_DEFAULT_BROWSING;
+ DefaultShared = CUPS_DEFAULT_DEFAULT_SHARED;
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ cupsdSetString(&DNSSDRegType, "_ipp._tcp,_cups");
+ #endif /* HAVE_DNSSD */
+
+
diff --git a/libre/cups-libre/cups-no-export-ssllibs.patch b/libre/cups-libre/cups-no-export-ssllibs.patch
new file mode 100644
index 000000000..24bac2e56
--- /dev/null
+++ b/libre/cups-libre/cups-no-export-ssllibs.patch
@@ -0,0 +1,13 @@
+diff -up cups-1.5b1/config-scripts/cups-ssl.m4.no-export-ssllibs cups-1.5b1/config-scripts/cups-ssl.m4
+--- cups-1.5b1/config-scripts/cups-ssl.m4.no-export-ssllibs 2011-05-11 02:52:08.000000000 +0200
++++ cups-1.5b1/config-scripts/cups-ssl.m4 2011-05-23 17:47:27.000000000 +0200
+@@ -164,7 +164,7 @@ AC_SUBST(IPPALIASES)
+ AC_SUBST(SSLFLAGS)
+ AC_SUBST(SSLLIBS)
+
+-EXPORT_SSLLIBS="$SSLLIBS"
++EXPORT_SSLLIBS=""
+ AC_SUBST(EXPORT_SSLLIBS)
+
+
+
diff --git a/libre/cups-libre/cups-no-gcrypt.patch b/libre/cups-libre/cups-no-gcrypt.patch
new file mode 100644
index 000000000..ab299d989
--- /dev/null
+++ b/libre/cups-libre/cups-no-gcrypt.patch
@@ -0,0 +1,39 @@
+diff -ruN cups-1.4.7.orig//config-scripts/cups-ssl.m4 cups-1.4.7/config-scripts/cups-ssl.m4
+--- cups-1.5.0.orig//config-scripts/cups-ssl.m4 2011-01-11 08:05:58.000000000 +0100
++++ cups-1.5.0/config-scripts/cups-ssl.m4 2011-08-02 10:44:26.011047900 +0200
+@@ -96,7 +96,6 @@
+ dnl Then look for GNU TLS...
+ if test $have_ssl = 0 -a "x$enable_gnutls" != "xno" -a "x$PKGCONFIG" != x; then
+ AC_PATH_PROG(LIBGNUTLSCONFIG,libgnutls-config)
+- AC_PATH_PROG(LIBGCRYPTCONFIG,libgcrypt-config)
+ if $PKGCONFIG --exists gnutls; then
+ have_ssl=1
+ SSLLIBS=`$PKGCONFIG --libs gnutls`
+@@ -110,16 +109,6 @@
+ AC_DEFINE(HAVE_SSL)
+ AC_DEFINE(HAVE_GNUTLS)
+ fi
+-
+- if test $have_ssl = 1; then
+- if $PKGCONFIG --exists gcrypt; then
+- SSLLIBS="$SSLLIBS `$PKGCONFIG --libs gcrypt`"
+- SSLFLAGS="$SSLFLAGS `$PKGCONFIG --cflags gcrypt`"
+- elif test "x$LIBGCRYPTCONFIG" != x; then
+- SSLLIBS="$SSLLIBS `$LIBGCRYPTCONFIG --libs`"
+- SSLFLAGS="$SSLFLAGS `$LIBGCRYPTCONFIG --cflags`"
+- fi
+- fi
+ fi
+
+ dnl Check for the OpenSSL library last...
+--- cups-1.5.0.orig//cups/http-private.h 2011-01-22 01:07:22.000000000 +0100
++++ cups-1.5.0/cups/http-private.h 2011-08-02 10:42:43.341604107 +0200
+@@ -93,7 +93,6 @@
+ # elif defined HAVE_GNUTLS
+ # include <gnutls/gnutls.h>
+ # include <gnutls/x509.h>
+-# include <gcrypt.h>
+ # elif defined(HAVE_CDSASSL)
+ # include <CoreFoundation/CoreFoundation.h>
+ # include <Security/Security.h>
+
diff --git a/libre/cups-libre/cups.install b/libre/cups-libre/cups.install
new file mode 100644
index 000000000..f73c3b44b
--- /dev/null
+++ b/libre/cups-libre/cups.install
@@ -0,0 +1,27 @@
+post_install() {
+ if [ -x usr/bin/xdg-icon-resource ]; then
+ xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
+ fi
+ echo ">> If you use an HTTPS connection to CUPS, the first time you access"
+ echo ">> the interface it may take a very long time before the site comes up."
+ echo ">> This is because the first request triggers the generation of the CUPS"
+ echo ">> SSL certificates which can be a very time-consuming job."
+}
+
+post_upgrade() {
+ if [ -x usr/bin/xdg-icon-resource ]; then
+ xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
+ fi
+ if [ "`vercmp $2 1.4.7-2`" -lt 0 ]; then
+ # important upgrade notice
+ echo "daemon script has been renamed to /etc/rc.d/cupsd"
+ echo "change your entry in /etc/rc.conf"
+ fi
+}
+
+post_remove() {
+ if [ -x usr/bin/xdg-icon-resource ]; then
+ xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
+ fi
+}
+
diff --git a/libre/cups-libre/cups.logrotate b/libre/cups-libre/cups.logrotate
new file mode 100644
index 000000000..67c4cdd39
--- /dev/null
+++ b/libre/cups-libre/cups.logrotate
@@ -0,0 +1,9 @@
+/var/log/cups/*log {
+ missingok
+ notifempty
+ delaycompress
+ postrotate
+ /bin/kill -HUP `cat /var/run/cups.pid 2>/dev/null` 2>/dev/null || true
+ endscript
+}
+
diff --git a/libre/cups-libre/cups.pam b/libre/cups-libre/cups.pam
new file mode 100644
index 000000000..5a31a927a
--- /dev/null
+++ b/libre/cups-libre/cups.pam
@@ -0,0 +1,4 @@
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
+
diff --git a/libre/cups-libre/rePKGBUILD b/libre/cups-libre/rePKGBUILD
new file mode 100644
index 000000000..2ae999f9c
--- /dev/null
+++ b/libre/cups-libre/rePKGBUILD
@@ -0,0 +1,52 @@
+# This is an example rePKGBUILD file. Use this as a start to creating your own,
+# and remove these comments. For more information, see 'man PKGBUILD'.
+# NOTE: Please fill out the license field for your package! If it is unknown,
+# then please put 'unknown'.
+
+# Maintainer: Nicolas Reynolds <fauno@kiwwwi.com.ar>
+source PKGBUILD
+CARCH=x86_64
+unset build package md5sums source check
+_repo=extra
+pkgname='cups-libre'
+options=(!strip)
+source=(PKGBUILD
+ http://mirrors.kernel.org/archlinux/${_repo}/os/$CARCH/${pkgbase}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}
+ # files for pkg modifications
+ )
+
+build() {
+ cd "${srcdir}/"
+ rm -v .{INSTALL,PKGINFO} ${pkgname%-libre}-$pkgver-$pkgrel-$CARCH$PKGEXT || true
+ # put actions for package modifications below this line
+}
+
+package_cups-libre() {
+ pkgdesc="The CUPS Printing System - daemon package"
+ provides=("${pkgbase}=${pkgver}")
+ replaces=("${pkgbase}")
+ conflicts=("${pkgbase}")
+ install=cups.install
+ backup=(etc/cups/cupsd.conf
+ etc/cups/mime.convs
+ etc/cups/mime.types
+ etc/cups/snmp.conf
+ etc/cups/printers.conf
+ etc/cups/classes.conf
+ etc/cups/client.conf
+ etc/cups/subscriptions.conf
+ etc/dbus-1/system.d/cups.conf
+ etc/logrotate.d/cups
+ etc/pam.d/cups
+ etc/xinetd.d/cups-lpd)
+ depends=('acl' 'openslp' 'pam' "libcups>=${pkgver}" 'poppler>=0.12.3' 'libusb-compat' 'dbus-core' 'hicolor-icon-theme')
+ optdepends=('php: for included phpcups.so module'
+ 'ghostscript: for non-PostScript printers to print with CUPS to convert PostScript to raster images'
+ 'foomatic-db: drivers use Ghostscript to convert PostScript to a printable form directly'
+ 'foomatic-db-engine: drivers use Ghostscript to convert PostScript to a printable form directly'
+ 'xdg-utils: xdg .desktop file support')
+
+ find ${srcdir} -type l -maxdepth 1 -delete
+ cd ${srcdir}
+ cp -a ./* ${pkgdir}
+}
diff --git a/libre/hplip-libre/PKGBUILD b/libre/hplip-libre/PKGBUILD
new file mode 100644
index 000000000..058573d05
--- /dev/null
+++ b/libre/hplip-libre/PKGBUILD
@@ -0,0 +1,70 @@
+# $Id: PKGBUILD 144357 2011-12-05 03:44:51Z eric $
+# Maintainer : Rémy Oudompheng <remy@archlinux.org>
+# Contributor: Morgan LEFIEUX <comete@archlinuxfr.org>
+
+_pkgname=hplip
+pkgname=hplip-libre
+pkgver=3.11.10
+pkgrel=2
+pkgdesc="Drivers for HP DeskJet, OfficeJet, Photosmart, Business Inkjet and some LaserJet"
+arch=('i686' 'x86_64')
+url="http://hplipopensource.com"
+license=('GPL')
+depends=('python2' 'ghostscript>=8.64-6' 'foomatic-db' 'foomatic-db-engine'
+ 'net-snmp>=5.7.1')
+makedepends=('python2-qt' 'python2-gobject2' 'sane' 'rpcbind' 'cups')
+optdepends=('cups: for printing support'
+ 'dbus-python: for dbus support'
+ 'sane: for scanner support'
+ 'python-imaging: for commandline scanning support'
+ 'python-notify: for Desktop notification support'
+ 'rpcbind: for network support'
+ 'python2-qt: for running hp-toolbox'
+ 'python2-gobject2: for running hp-toolbox')
+replaces=('hpijs' "${_pkgname}")
+conflicts=("${_pkgname}")
+provides=("${_pkgname}=${pkgver}")
+options=('!libtool')
+install=hplip.install
+source=(http://downloads.sourceforge.net/${_pkgname}/$_pkgname-$pkgver.tar.gz{,.asc})
+md5sums=('6143f30f3b6905ef22105176a3b80db0'
+ '396bbd8c5cc92aa8295e5bcb508692f3')
+
+build() {
+ cd "$srcdir/$_pkgname-$pkgver"
+ export PYTHON=python2
+ find . -type f -exec sed -i 's~^#.*env python~#!/usr/bin/env python2~' {} +
+ sed -i '1s|#!/usr/bin/python|#!/usr/bin/python2|' base/magic.py
+ sed -i 's|python ./print.py|python2 ./print.py|' scan.py
+ sed -i 's|python ./testpage.py|python2 ./testpage.py|' setup.py
+ sed -i 's|python ./setup.py|python2 ./setup.py|' ui4/devmgr5.py ui4/nodevicesdialog.py
+ sed -i 's|python %HOME%|python2 %HOME%|' base/utils.py
+ sed -i 's|python ./plugin.py|python2 ./plugin.py|' base/pkit.py
+
+ # fix sysfs rules
+ sed -i -e "s|SYSFS|ATTR|g" \
+ -e "s|sysfs|attr|g" \
+ data/rules/56-hpmud_support.rules
+
+ ./configure --prefix=/usr \
+ --enable-qt4 \
+ --enable-foomatic-rip-hplip-install \
+ --enable-foomatic-ppd-install \
+ --enable-hpcups-install \
+ --enable-new-hpcups \
+ --enable-cups-ppd-install \
+ --enable-cups-drv-install \
+ --enable-hpijs-install \
+ --enable-foomatic-drv-install \
+ --enable-pp-build \
+ --enable-udev-acl-rules
+
+ make
+}
+
+package() {
+ cd "$srcdir/$_pkgname-$pkgver"
+ make rulesdir=/lib/udev/rules.d DESTDIR="$pkgdir/" install
+ # remove config provided by sane and autostart of hp-daemon
+ rm -rf "$pkgdir"/etc/{sane.d,xdg}
+}
diff --git a/libre/hplip-libre/hplip.install b/libre/hplip-libre/hplip.install
new file mode 100644
index 000000000..a05cbdd50
--- /dev/null
+++ b/libre/hplip-libre/hplip.install
@@ -0,0 +1,11 @@
+post_install() {
+ cat << EOF
+
+NOTE
+----
+# If you want to use this driver with sane:
+# echo "hpaio" >> /etc/sane.d/dll.conf
+
+EOF
+}
+
diff --git a/libre/hplip-libre/rePKGBUILD b/libre/hplip-libre/rePKGBUILD
new file mode 100644
index 000000000..753b348e3
--- /dev/null
+++ b/libre/hplip-libre/rePKGBUILD
@@ -0,0 +1,26 @@
+# This is an example rePKGBUILD file. Use this as a start to creating your own,
+# and remove these comments. For more information, see 'man PKGBUILD'.
+# NOTE: Please fill out the license field for your package! If it is unknown,
+# then please put 'unknown'.
+
+# Maintainer: Nicolas Reynolds <fauno@kiwwwi.com.ar>
+source PKGBUILD
+CARCH=x86_64
+unset build package md5sums source check
+_repo=extra
+options=(!strip)
+source=(PKGBUILD
+ http://mirrors.kernel.org/archlinux/${_repo}/os/$CARCH/${_pkgname}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}
+ # files for pkg modifications
+ )
+
+build() {
+ cd "${srcdir}/"
+ rm -v .{INSTALL,PKGINFO} ${pkgname%-libre}-$pkgver-$pkgrel-$CARCH$PKGEXT || true
+ # put actions for package modifications below this line
+}
+
+package() {
+ find ${srcdir} -type l -maxdepth 1 -delete
+ cp -a ${srcdir}/* ${pkgdir}
+}
diff --git a/libre/metalog/PKGBUILD b/libre/metalog/PKGBUILD
index 5a2aea8b3..dee52d986 100644
--- a/libre/metalog/PKGBUILD
+++ b/libre/metalog/PKGBUILD
@@ -4,7 +4,7 @@
pkgname=metalog
pkgver=2.0
-pkgrel=1
+pkgrel=2
pkgdesc="Metalog is a modern replacement for syslogd and klogd"
url="http://metalog.sourceforge.net"
license=('GPL')
@@ -17,6 +17,9 @@ conflicts=('syslog-ng')
backup=('etc/metalog.conf' 'etc/conf.d/metalog')
source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-2.tar.xz"
'metalog' 'metalog.confd')
+md5sums=('e948d10d780205eae17645c89aee1361'
+ 'cdd1d34eedbfbc2d9e659bf0a0f58f56'
+ '86bccd5a02996921e29eff8a0394d11f')
build() {
cd $srcdir/$pkgname-2
@@ -36,11 +39,5 @@ package() {
install -D -m644 $srcdir/metalog.confd $pkgdir/etc/conf.d/metalog
install -D -m644 metalog.conf $pkgdir/etc/metalog.conf
-# compat symlink
- ln -s metalog $pkgdir/etc/rc.d/syslog-ng
-
}
-md5sums=('e948d10d780205eae17645c89aee1361'
- 'cdd1d34eedbfbc2d9e659bf0a0f58f56'
- '86bccd5a02996921e29eff8a0394d11f')
diff --git a/libre/texlive-bin-libre/PKGBUILD b/libre/texlive-bin-libre/PKGBUILD
index 8ca94ddab..25048150c 100644
--- a/libre/texlive-bin-libre/PKGBUILD
+++ b/libre/texlive-bin-libre/PKGBUILD
@@ -5,7 +5,7 @@
pkgname=texlive-bin-libre
pkgver=2011.1
_luatex_ver=0.70.1
-pkgrel=5
+pkgrel=5.1
pkgdesc="TeX Live binaries"
license=('GPL')
arch=('i686' 'x86_64')
@@ -13,7 +13,7 @@ depends=('t1lib' 'gd' 'poppler>=0.18.1' 'libsigsegv' 'zziplib')
makedepends=('perl' 'clisp' 'ffcall' 'pkg-config')
optdepends=('ed: for texconfig')
provides=('lcdf-typetools' 'kpathsea' 'xindy' 'pdfjam' 'texlive-bin')
-conflicts=('pdfjam' 'texlive-bin' 'poppler>=0.18.2')
+conflicts=('pdfjam' 'texlive-bin' 'poppler>=0.18.3')
replaces=('texlive-bin')
options=('!libtool')
url='http://tug.org/texlive/'
diff --git a/multilib/lib32-keyutils/PKGBUILD b/multilib/lib32-keyutils/PKGBUILD
index 8398edd1d..4a840c87b 100644
--- a/multilib/lib32-keyutils/PKGBUILD
+++ b/multilib/lib32-keyutils/PKGBUILD
@@ -2,7 +2,7 @@
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
_pkgbasename=keyutils
pkgname=lib32-$_pkgbasename
-pkgver=1.5.2
+pkgver=1.5.5
pkgrel=1
pkgdesc="Linux Key Management Utilities (32-bit)"
arch=(x86_64)
@@ -11,7 +11,7 @@ license=('GPL2' 'LGPL2.1')
depends=(lib32-glibc $_pkgbasename)
makedepends=(gcc-multilib)
source=(http://people.redhat.com/~dhowells/$_pkgbasename/$_pkgbasename-$pkgver.tar.bz2)
-md5sums=('19811ee31f683058a9aae3e6a3a23a7f')
+md5sums=('9e8ab5164bc8f84be148761cc89e9d6f')
build() {
cd "$srcdir/$_pkgbasename-$pkgver"
diff --git a/multilib/lib32-krb5/PKGBUILD b/multilib/lib32-krb5/PKGBUILD
index 32debcbae..1b70b9d2b 100644
--- a/multilib/lib32-krb5/PKGBUILD
+++ b/multilib/lib32-krb5/PKGBUILD
@@ -4,7 +4,7 @@
_pkgbasename=krb5
pkgname=lib32-$_pkgbasename
-pkgver=1.9.1
+pkgver=1.9.2
pkgrel=1
pkgdesc="The Kerberos network authentication system (32-bit)"
arch=('x86_64')
@@ -15,14 +15,21 @@ makedepends=('perl' gcc-multilib)
provides=('lib32-heimdal')
replaces=('lib32-heimdal')
conflicts=('lib32-heimdal')
-source=(http://web.mit.edu/kerberos/dist/${_pkgbasename}/1.9/${_pkgbasename}-${pkgver}-signed.tar)
-sha1sums=('e23a1795a237521493da9cf3443ac8b98a90c066')
+source=(http://web.mit.edu/kerberos/dist/${_pkgbasename}/1.9/${_pkgbasename}-${pkgver}-signed.tar
+krb5-1.9.1-2011-007.patch)
+sha1sums=('aa06f778ee1f9791cd4c5cf4c9e9465769ffec92'
+ '31a130542e92b70c807b2dbe6f9b182dc14f5e9f')
options=('!emptydirs')
build() {
tar zxvf ${_pkgbasename}-${pkgver}.tar.gz
cd "${srcdir}/${_pkgbasename}-${pkgver}/src"
+ # Apply upstream patch to fix a null pointer dereference when processing TGS requests
+ # CVE-2011-1530
+ # see http://web.mit.edu/kerberos/advisories/MITKRB5-SA-2011-007.txt
+ patch -Np2 -i ${srcdir}/krb5-1.9.1-2011-007.patch
+
export CC="gcc -m32"
export CXX="g++ -m32"
export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
diff --git a/multilib/lib32-krb5/krb5-1.9.1-2011-007.patch b/multilib/lib32-krb5/krb5-1.9.1-2011-007.patch
new file mode 100644
index 000000000..f1ffdd4d1
--- /dev/null
+++ b/multilib/lib32-krb5/krb5-1.9.1-2011-007.patch
@@ -0,0 +1,40 @@
+diff --git a/src/kdc/Makefile.in b/src/kdc/Makefile.in
+index f46cad3..102fbaa 100644
+--- a/src/kdc/Makefile.in
++++ b/src/kdc/Makefile.in
+@@ -67,6 +67,7 @@ check-unix:: rtest
+
+ check-pytests::
+ $(RUNPYTEST) $(srcdir)/t_workers.py $(PYTESTFLAGS)
++ $(RUNPYTEST) $(srcdir)/t_emptytgt.py $(PYTESTFLAGS)
+
+ install::
+ $(INSTALL_PROGRAM) krb5kdc ${DESTDIR}$(SERVER_BINDIR)/krb5kdc
+diff --git a/src/kdc/do_tgs_req.c b/src/kdc/do_tgs_req.c
+index c169c54..840a2ef 100644
+--- a/src/kdc/do_tgs_req.c
++++ b/src/kdc/do_tgs_req.c
+@@ -243,7 +243,8 @@ tgt_again:
+ if (!tgs_1 || !data_eq(*server_1, *tgs_1)) {
+ errcode = find_alternate_tgs(request, &server);
+ firstpass = 0;
+- goto tgt_again;
++ if (errcode == 0)
++ goto tgt_again;
+ }
+ }
+ status = "UNKNOWN_SERVER";
+diff --git a/src/kdc/t_emptytgt.py b/src/kdc/t_emptytgt.py
+new file mode 100644
+index 0000000..1760bcd
+--- /dev/null
++++ b/src/kdc/t_emptytgt.py
+@@ -0,0 +1,8 @@
++#!/usr/bin/python
++from k5test import *
++
++realm = K5Realm(start_kadmind=False, create_host=False)
++output = realm.run_as_client([kvno, 'krbtgt/'], expected_code=1)
++if 'not found in Kerberos database' not in output:
++ fail('TGT lookup for empty realm failed in unexpected way')
++success('Empty tgt lookup.')
diff --git a/multilib/lib32-libcap/PKGBUILD b/multilib/lib32-libcap/PKGBUILD
index 5846329f3..5f5c6ba46 100644
--- a/multilib/lib32-libcap/PKGBUILD
+++ b/multilib/lib32-libcap/PKGBUILD
@@ -3,16 +3,17 @@
_pkgbasename=libcap
pkgname=lib32-$_pkgbasename
-pkgver=2.21
+pkgver=2.22
pkgrel=1
pkgdesc="POSIX 1003.1e capabilities (32-bit)"
arch=(x86_64)
url="http://www.kernel.org/pub/linux/libs/security/linux-privs/"
-license=('GPL')
+license=('GPL2')
depends=('lib32-attr' $_pkgbasename)
makedepends=('gcc-multilib')
-source=(http://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/${_pkgbasename}-${pkgver}.tar.gz)
-md5sums=('61966ef40f2dee8731b69db895e4548d')
+source=(http://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/${_pkgbasename}-${pkgver}.tar.gz{,.asc})
+md5sums=('b4896816b626bea445f0b3849bdd4077'
+ '9d0983e25e5a251d098507f9561d2b27')
build() {
cd ${srcdir}/${_pkgbasename}-${pkgver}
diff --git a/multilib/lib32-libdrm/PKGBUILD b/multilib/lib32-libdrm/PKGBUILD
index f139d9267..93f3763a3 100644
--- a/multilib/lib32-libdrm/PKGBUILD
+++ b/multilib/lib32-libdrm/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 57787 2011-11-02 16:54:51Z lcarlier $
+# $Id: PKGBUILD 60845 2011-12-19 13:05:47Z lcarlier $
# Contributor: Jan de Groot <jgc@archlinux.org>
_pkgbasename=libdrm
pkgname=lib32-$_pkgbasename
-pkgver=2.4.27
-pkgrel=2
+pkgver=2.4.29
+pkgrel=1
pkgdesc="Userspace interface to kernel DRM services (32-bit)"
arch=(x86_64)
license=('custom')
@@ -13,9 +13,11 @@ makedepends=(gcc-multilib)
options=('!libtool')
url="http://dri.freedesktop.org/"
source=(http://dri.freedesktop.org/${_pkgbasename}/${_pkgbasename}-${pkgver}.tar.bz2
- no-pthread-stubs.patch)
-md5sums=('0fba4f42735cd3d24dd7a8cde0023fbd'
- 'c722c8406507b7e3a8da7a3030d1d9cf')
+ no-pthread-stubs.patch
+ git_fixes.diff)
+md5sums=('96d5e3e9edd55f4b016fe3b5dd0a1953'
+ 'c722c8406507b7e3a8da7a3030d1d9cf'
+ 'aebd5336568090b8ec084fabcfb08071')
build() {
cd "${srcdir}/${_pkgbasename}-${pkgver}"
@@ -26,6 +28,9 @@ build() {
patch -Np1 -i "${srcdir}/no-pthread-stubs.patch"
+ # git fixes - currently none
+ patch -Np1 -i ${srcdir}/git_fixes.diff
+
# libtoolize --force
autoreconf --force --install
./configure --prefix=/usr --libdir=/usr/lib32 \
diff --git a/multilib/lib32-libdrm/git_fixes.diff b/multilib/lib32-libdrm/git_fixes.diff
new file mode 100644
index 000000000..dc80155f2
--- /dev/null
+++ b/multilib/lib32-libdrm/git_fixes.diff
@@ -0,0 +1,13 @@
+diff --git a/intel/intel_bufmgr_gem.c b/intel/intel_bufmgr_gem.c
+index 19441f3..eb9dd32 100644
+--- a/intel/intel_bufmgr_gem.c
++++ b/intel/intel_bufmgr_gem.c
+@@ -958,7 +958,7 @@ static void drm_intel_gem_bo_purge_vma_cache(drm_intel_bufmgr_gem *bufmgr_gem)
+ bufmgr_gem->vma_cache.next,
+ vma_list);
+ assert(bo_gem->map_count == 0);
+- DRMLISTDEL(&bo_gem->vma_list);
++ DRMLISTDELINIT(&bo_gem->vma_list);
+
+ if (bo_gem->mem_virtual) {
+ munmap(bo_gem->mem_virtual, bo_gem->bo.size);
diff --git a/multilib/lib32-libogg/PKGBUILD b/multilib/lib32-libogg/PKGBUILD
index ff8614b23..966a76789 100644
--- a/multilib/lib32-libogg/PKGBUILD
+++ b/multilib/lib32-libogg/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 40915 2011-03-01 15:20:49Z bluewind $
+# $Id: PKGBUILD 60957 2011-12-19 19:09:59Z bluewind $
# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
_pkgbasename=libogg
pkgname=lib32-$_pkgbasename
-pkgver=1.2.2
+pkgver=1.3.0
pkgrel=1
pkgdesc="Ogg bitstream and framing library (32-bit)"
arch=('x86_64')
@@ -13,7 +13,7 @@ depends=('lib32-glibc' $_pkgbasename)
makedepends=(gcc-multilib)
options=('!libtool')
source=(http://downloads.xiph.org/releases/ogg/$_pkgbasename-$pkgver.tar.gz)
-md5sums=('5a9fcabc9a1b7c6f1cd75ddc78f36c56')
+md5sums=('0a7eb40b86ac050db3a789ab65fe21c2')
build() {
export CC="gcc -m32"
diff --git a/multilib/lib32-libssh2/PKGBUILD b/multilib/lib32-libssh2/PKGBUILD
index 963693b7b..88ac921e1 100644
--- a/multilib/lib32-libssh2/PKGBUILD
+++ b/multilib/lib32-libssh2/PKGBUILD
@@ -1,5 +1,5 @@
# Maintainer: Florian Pritz <flo@xssn.at>
-# $Id: PKGBUILD 53557 2011-08-05 17:14:21Z bluewind $
+# $Id: PKGBUILD 60959 2011-12-19 19:12:57Z bluewind $
# Contributor: Angel Velasquez <angvp@archlinux.org>
# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Andrea Scarpino <andrea@archlinux.org>
@@ -7,17 +7,17 @@
_pkgbasename=libssh2
pkgname=lib32-$_pkgbasename
-pkgver=1.2.7
-pkgrel=2
+pkgver=1.3.0
+pkgrel=1
pkgdesc="A library implementing the SSH2 protocol as defined by Internet Drafts (32-bit)"
url="http://www.libssh2.org/"
arch=('i686' 'x86_64')
license=('BSD')
-depends=('openssl' $_pkgbasename)
+depends=('lib32-openssl' $_pkgbasename)
makedepends=('zlib' "gcc-multilib")
options=('!libtool')
source=("http://www.libssh2.org/download/${_pkgbasename}-${pkgver}.tar.gz")
-md5sums=('a5d78344886f1282e4008c09bf568076')
+md5sums=('6425331899ccf1015f1ed79448cb4709')
build() {
export CC="gcc -m32"
diff --git a/multilib/lib32-libxcursor/PKGBUILD b/multilib/lib32-libxcursor/PKGBUILD
index ee8df1005..75d09684a 100644
--- a/multilib/lib32-libxcursor/PKGBUILD
+++ b/multilib/lib32-libxcursor/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 31535 2010-11-02 00:00:15Z heftig $
+# $Id: PKGBUILD 60955 2011-12-19 19:05:52Z bluewind $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: Alexander Baldeck <alexander@archlinux.org>
_pkgbasename=libxcursor
pkgname=lib32-$_pkgbasename
-pkgver=1.1.11
+pkgver=1.1.12
pkgrel=1
pkgdesc="X cursor management library (32-bit)"
arch=(x86_64)
@@ -13,7 +13,7 @@ depends=('lib32-libxfixes' 'lib32-libxrender' $_pkgbasename)
makedepends=('xorg-util-macros' gcc-multilib)
options=('!libtool')
source=(${url}/releases/individual/lib/libXcursor-${pkgver}.tar.bz2)
-sha1sums=('35491bd17cbcdda712e1a064c67ccbc523e2702c')
+sha1sums=('f68d7baed5ecf4b1ae88004dd05ef4680d63ee2c')
build() {
export CC="gcc -m32"
diff --git a/multilib/lib32-libxext/PKGBUILD b/multilib/lib32-libxext/PKGBUILD
index 7c6e68080..00c6cb8e5 100644
--- a/multilib/lib32-libxext/PKGBUILD
+++ b/multilib/lib32-libxext/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 31542 2010-11-02 00:03:44Z heftig $
+# $Id: PKGBUILD 60953 2011-12-19 19:05:14Z bluewind $
# Maintainer: Jan de Groot <jgc@archlinux.org>
_pkgbasename=libxext
pkgname=lib32-$_pkgbasename
-pkgver=1.2.0
+pkgver=1.3.0
pkgrel=1
pkgdesc="X11 miscellaneous extensions library (32-bit)"
arch=(x86_64)
@@ -13,7 +13,7 @@ depends=('lib32-libx11' 'xextproto' $_pkgbasename)
makedepends=('xorg-util-macros' 'gcc-multilib')
options=('!libtool')
source=(${url}/releases/individual/lib/libXext-${pkgver}.tar.bz2)
-sha1sums=('090d7109c5fffde8a0063e10f22f3e2ec48cf19e')
+sha1sums=('0bf3708177b9320091ebc069e905c042c31d859d')
build() {
cd "${srcdir}/libXext-${pkgver}"
diff --git a/multilib/lib32-libxfixes/PKGBUILD b/multilib/lib32-libxfixes/PKGBUILD
index a8b980fa5..2e2e1553e 100644
--- a/multilib/lib32-libxfixes/PKGBUILD
+++ b/multilib/lib32-libxfixes/PKGBUILD
@@ -1,19 +1,19 @@
-# $Id: PKGBUILD 26653 2010-09-15 22:47:51Z bluewind $
+# $Id: PKGBUILD 60948 2011-12-19 19:00:52Z bluewind $
#Maintainer: Jan de Groot <jgc@archlinux.org>
_pkgbasename=libxfixes
pkgname=lib32-$_pkgbasename
-pkgver=4.0.5
-pkgrel=3
+pkgver=5.0
+pkgrel=1
pkgdesc="X11 miscellaneous 'fixes' extension library (32-bit)"
arch=('x86_64')
url="http://xorg.freedesktop.org/"
license=('custom')
-depends=('lib32-libx11>=1.3.4' $_pkgbasename)
-makedepends=('pkg-config' gcc-multilib "fixesproto>=4.1.1")
+depends=('lib32-libx11' $_pkgbasename)
+makedepends=('pkg-config' gcc-multilib )
options=('!libtool')
source=(${url}/releases/individual/lib/libXfixes-${pkgver}.tar.bz2)
-sha1sums=('255dfb9a8c50d795c60711ec4764f76cd0620cbf')
+sha1sums=('3e4d374e9026111a04cd669d4b3434273fc34fe0')
build() {
export CC="gcc -m32"
diff --git a/multilib/lib32-libxi/PKGBUILD b/multilib/lib32-libxi/PKGBUILD
index 4f3f85361..f8e99e866 100644
--- a/multilib/lib32-libxi/PKGBUILD
+++ b/multilib/lib32-libxi/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 39079 2011-02-06 10:58:56Z ibiru $
+# $Id: PKGBUILD 60951 2011-12-19 19:03:45Z bluewind $
# Maintainer: Jan de Groot <jgc@archlinux.org>
_pkgbasename=libxi
pkgname=lib32-$_pkgbasename
-pkgver=1.4.1
+pkgver=1.4.4
pkgrel=1
pkgdesc="X11 Input extension library (32-bit)"
arch=('x86_64')
@@ -13,7 +13,7 @@ makedepends=('pkgconfig' 'xorg-util-macros' gcc-multilib)
options=(!libtool)
license=('custom')
source=(${url}/releases/individual/lib/libXi-${pkgver}.tar.bz2)
-sha1sums=('15c9d369cc76c73b5e3833ba3b39355e6cc06636')
+sha1sums=('e4ca1b45368214ba246bfad398ea087125c79f31')
build() {
export CC="gcc -m32"
diff --git a/multilib/lib32-libxrandr/PKGBUILD b/multilib/lib32-libxrandr/PKGBUILD
index 370b5cde2..9f8e38ce7 100644
--- a/multilib/lib32-libxrandr/PKGBUILD
+++ b/multilib/lib32-libxrandr/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 31551 2010-11-02 00:08:36Z heftig $
+# $Id: PKGBUILD 60945 2011-12-19 18:58:48Z bluewind $
# Maintainer: Alexander Baldeck <alexander@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>
_pkgbasename=libxrandr
pkgname=lib32-$_pkgbasename
-pkgver=1.3.1
+pkgver=1.3.2
pkgrel=1
pkgdesc="X11 RandR extension library (32-bit)"
arch=('x86_64')
@@ -13,7 +13,7 @@ depends=('lib32-libxext' 'lib32-libxrender' 'randrproto' $_pkgbasename)
makedepends=('xorg-util-macros' gcc-multilib)
options=('!libtool')
source=(${url}/releases/individual/lib/libXrandr-${pkgver}.tar.bz2)
-sha1sums=('8e89622b0656cb2eb22c1f3c646c797dc648ead5')
+sha1sums=('0c844a4c5237f96794f0c18a5af16dc5ab7a36ec')
build() {
export CC="gcc -m32"
diff --git a/multilib/lib32-llvm/PKGBUILD b/multilib/lib32-llvm/PKGBUILD
index 4b990ad39..e7ff5c5ef 100644
--- a/multilib/lib32-llvm/PKGBUILD
+++ b/multilib/lib32-llvm/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 51447 2011-07-09 06:18:32Z lcarlier $
+# $Id: PKGBUILD 60966 2011-12-19 19:56:09Z lcarlier $
# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
# Contributor: Sebastian Nowicki <sebnow@gmail.com>
@@ -10,32 +10,21 @@
# Contributor: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
pkgname=('lib32-llvm')
-pkgver=2.9
-#_gcc_ver=4.6.1
-pkgrel=2
+pkgver=3.0
+pkgrel=1
arch=('x86_64')
url="http://llvm.org/"
license=('custom:University of Illinois/NCSA Open Source License')
makedepends=('lib32-libffi' 'python2' 'gcc-multilib')
-source=(http://llvm.org/releases/$pkgver/llvm-$pkgver.tgz
- http://llvm.org/releases/$pkgver/clang-$pkgver.tgz
- ftp://ftp.archlinux.org/other/community/clang/gcc-headers-4.5.2.tar.xz
- clang-plugin-loader-registry.patch
- cindexer-clang-path.patch
- clang-toolchains-gcc-versions.patch
- clang-pure64.patch
- enable-lto.patch)
-md5sums=('793138412d2af2c7c7f54615f8943771'
- '634de18d04b7a4ded19ec4c17d23cfca'
- '70e23a3dc2b38ecb2bb4d2c48f47295d'
- '02c23b4aaca3445b8bf39fddb2f9906e'
- '87a7162dbe99e9ffce6c40bd09f5f4f0'
- '8da236120a9a287a977b575b8b905c93'
- '225ee6b531f8327f34f344a18cb4ec81'
- '8f7582d7440e4a8342c3aea9ec714fb4')
+source=(http://llvm.org/releases/$pkgver/llvm-$pkgver.tar.gz
+ http://llvm.org/releases/$pkgver/clang-$pkgver.tar.gz
+ clang-plugin-loader-registry.patch)
+sha256sums=('519eb11d3499ce99c6ffdb8718651fc91425ed7690eac91c8d6853474f7c0477'
+ 'b64e72da356d7c3428cfd7ac620d49ec042c84eaee13c26024879f555f4e126d'
+ 'a0a4494f2a692789670be37fd390906dcaa37b1824f740bdaaea21182f2f3a9c')
build() {
- cd "$srcdir/llvm-$pkgver"
+ cd "$srcdir/llvm-$pkgver.src"
export CC="gcc -m32"
export CXX="g++ -m32"
@@ -57,19 +46,6 @@ build() {
# See http://lists.cs.uiuc.edu/pipermail/cfe-dev/2010-April/008559.html
patch -Np1 -i "$srcdir/clang-plugin-loader-registry.patch"
- # Fix clang path in CIndexer.cpp (https://bugs.archlinux.org/task/22799)
- #patch -d tools/clang -Np0 -i "$srcdir/cindexer-clang-path.patch"
-
- # Add GCC 4.6.0 to GccVersions (FS#23631)
- #patch -d tools/clang -Np1 -i "$srcdir/clang-toolchains-gcc-versions.patch"
-
- # Adjust lib paths
- #patch -d tools/clang -Np0 -i "$srcdir/clang-pure64.patch"
-
- # Make -flto work
- # Use gold instead of default linker, and always use the plugin
- #patch -d tools/clang -Np0 -i "$srcdir/enable-lto.patch"
-
# Apply strip option to configure
_optimized_switch="enable"
[[ $(check_option strip) == n ]] && _optimized_switch="disable"
@@ -77,12 +53,6 @@ build() {
# Include location of libffi headers in CPPFLAGS
export CPPFLAGS="$CPPFLAGS $(pkg-config --cflags libffi)"
- # TODO: Uncomment when clang works with GCC 4.6+
- #_cxx_headers="/usr/include/c++/$_gcc_ver"
- #if [[ ! -d $_cxx_headers ]]; then
- # error "Couldn't find the C++ headers, PKGBUILD needs fixing!"
- # return 1
- #fi
_cxx_headers="/usr/include/c++/clang-$pkgver"
_32bit_headers=""
@@ -114,21 +84,13 @@ package() {
pkgdesc="Low Level Virtual Machine (32 bits version)"
depends=('perl' 'lib32-libffi' 'llvm')
- cd "$srcdir/llvm-$pkgver"
+ cd "$srcdir/llvm-$pkgver.src"
# We move the clang directory out of the tree so it won't get installed and
# then we bring it back in for the clang package
# mv tools/clang "$srcdir"
# -j1 is due to race conditions during the installation of the OCaml bindings
make -j1 DESTDIR="$pkgdir" install
- # mv "$srcdir/clang" tools
-
- # OCaml bindings go to a separate package
- # rm -rf "$srcdir"/{ocaml,ocamldoc}
- # mv "$pkgdir"/usr/{lib/ocaml,share/doc/llvm/ocamldoc} "$srcdir"
-
- # Remove duplicate files installed by the OCaml bindings
- # rm "$pkgdir"/usr/{lib/llvm/libllvm*,share/doc/llvm/ocamldoc.tar.gz}
# Fix permissions of static libs
chmod -x "$pkgdir"/usr/lib32/llvm/*.a
diff --git a/multilib/lib32-llvm/clang-pure64.patch b/multilib/lib32-llvm/clang-pure64.patch
index da6178519..9bbbfaa8b 100644
--- a/multilib/lib32-llvm/clang-pure64.patch
+++ b/multilib/lib32-llvm/clang-pure64.patch
@@ -3,36 +3,11 @@ Index: lib/Driver/Tools.cpp
--- lib/Driver/Tools.cpp (revision 123373)
+++ lib/Driver/Tools.cpp (working copy)
@@ -3306,7 +3306,7 @@
- else if (ToolChain.getArch() == llvm::Triple::arm)
- CmdArgs.push_back("/lib/ld-linux.so.3");
+ else if (ToolChain.getArch() == llvm::Triple::ppc64)
+ CmdArgs.push_back("/lib64/ld64.so.1");
else
- CmdArgs.push_back("/lib64/ld-linux-x86-64.so.2");
+ CmdArgs.push_back("/lib/ld-linux-x86-64.so.2");
}
CmdArgs.push_back("-o");
-Index: lib/Driver/ToolChains.cpp
-===================================================================
---- lib/Driver/ToolChains.cpp (revision 123373)
-+++ lib/Driver/ToolChains.cpp (working copy)
-@@ -1317,18 +1317,10 @@
- if (Arch == llvm::Triple::x86)
- Suffix64 = "/64";
-
-- std::string Lib32 = "lib";
--
-- bool Exists;
-- if (!llvm::sys::fs::exists("/lib32", Exists) && Exists)
-- Lib32 = "lib32";
--
-+ std::string Lib32 = "lib32";
- std::string Lib64 = "lib";
-- bool Symlink;
-- if (!llvm::sys::fs::exists("/lib64", Exists) && Exists &&
-- (llvm::sys::fs::is_symlink("/lib64", Symlink) || !Symlink))
-- Lib64 = "lib64";
-
-+ bool Exists;
- std::string GccTriple = "";
- if (Arch == llvm::Triple::arm) {
- if (!llvm::sys::fs::exists("/usr/lib/gcc/arm-linux-gnueabi", Exists) &&
diff --git a/multilib/lib32-llvm/enable-lto.patch b/multilib/lib32-llvm/enable-lto.patch
index 40d93104a..3c8691b17 100644
--- a/multilib/lib32-llvm/enable-lto.patch
+++ b/multilib/lib32-llvm/enable-lto.patch
@@ -2,17 +2,12 @@ Index: lib/Driver/ToolChains.cpp
===================================================================
--- lib/Driver/ToolChains.cpp (revision 123373)
+++ lib/Driver/ToolChains.cpp (working copy)
-@@ -1398,11 +1398,11 @@
- Lib = Lib64;
- }
+@@ -1398,7 +1398,7 @@
+ PPaths.push_back(Twine(GCCInstallation.getParentLibPath() + "/../" +
+ GCCInstallation.getTriple() + "/bin").str());
-- llvm::sys::Path LinkerPath(Base + "/../../../../" + GccTriple + "/bin/ld");
-+ llvm::sys::Path LinkerPath(Base + "/../../../../" + GccTriple + "/bin/ld.gold");
- if (!llvm::sys::fs::exists(LinkerPath.str(), Exists) && Exists)
- Linker = LinkerPath.str();
- else
-- Linker = GetProgramPath("ld");
-+ Linker = GetProgramPath("ld.gold");
+- Linker = GetProgramPath("ld");
++ Linker = GetProgramPath("ld.gold");
LinuxDistro Distro = DetectLinuxDistro(Arch);
@@ -27,7 +22,8 @@ Index: lib/Driver/Tools.cpp
- if (Args.hasArg(options::OPT_use_gold_plugin)) {
+ // if (Args.hasArg(options::OPT_use_gold_plugin)) {
CmdArgs.push_back("-plugin");
- std::string Plugin = ToolChain.getDriver().Dir + "/../lib/LLVMgold.so";
+- std::string Plugin = ToolChain.getDriver().Dir + "/../lib/LLVMgold.so";
++ std::string Plugin = ToolChain.getDriver().Dir + "/../lib/llvm/LLVMgold.so";
CmdArgs.push_back(Args.MakeArgString(Plugin));
- }
+ // }
diff --git a/multilib/lib32-llvm/fix-gold-lto-linking.patch b/multilib/lib32-llvm/fix-gold-lto-linking.patch
new file mode 100644
index 000000000..84d166471
--- /dev/null
+++ b/multilib/lib32-llvm/fix-gold-lto-linking.patch
@@ -0,0 +1,11 @@
+diff -upr llvm-3.0.src.orig/tools/gold/Makefile llvm-3.0.src/tools/gold/Makefile
+--- llvm-3.0.src.orig/tools/gold/Makefile 2011-05-31 23:00:45.000000000 +0300
++++ llvm-3.0.src/tools/gold/Makefile 2011-12-04 22:06:59.000000000 +0200
+@@ -26,6 +26,6 @@ LINK_COMPONENTS := support
+ # Because off_t is used in the public API, the largefile parts are required for
+ # ABI compatibility.
+ CXXFLAGS+=-I$(BINUTILS_INCDIR) -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
+-CXXFLAGS+=$(SharedLibDir)/$(SharedPrefix)LTO$(SHLIBEXT)
++CXXFLAGS+=-L $(SharedLibDir) -lLTO
+
+ include $(LEVEL)/Makefile.common
diff --git a/multilib/lib32-mesa/PKGBUILD b/multilib/lib32-mesa/PKGBUILD
index 04d00d5de..b88939af8 100644
--- a/multilib/lib32-mesa/PKGBUILD
+++ b/multilib/lib32-mesa/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 59540 2011-11-27 22:56:07Z lcarlier $
+# $Id: PKGBUILD 60968 2011-12-19 20:44:35Z lcarlier $
# Contributor: Jan de Groot <jgc@archlinux.org>
# Contributor: Andreas Radke <andyrtr@archlinux.org>
@@ -19,8 +19,8 @@ if [ "${_git}" = "true" ]; then
pkgver=7.11.2
fi
-pkgrel=1
-arch=(x86_64)
+pkgrel=2
+arch=('x86_64')
makedepends=('glproto>=1.4.14' 'lib32-libdrm>=2.4.26' 'lib32-libxxf86vm>=1.1.1' 'lib32-libxdamage>=1.1.3' 'lib32-expat>=2.0.1' 'lib32-libx11>=1.4.3'
'lib32-libxt>=1.1.1' 'lib32-gcc-libs>=4.6.1' 'dri2proto>=2.6' 'python2' 'libxml2' 'gcc-multilib' imake 'lib32-udev' 'lib32-llvm' 'namcap')
url="http://mesa3d.sourceforge.net"
@@ -31,9 +31,9 @@ if [ "${_git}" = "true" ]; then
source=("MesaLib-git${_gitdate}.zip"::"http://cgit.freedesktop.org/mesa/mesa/snapshot/mesa-ef9f16f6322a89fb699fbe3da868b10f9acaef98.tar.bz2")
md5sums=('817a63bb60b81f4f817ffc9ed0a3dddd')
else
- source=("ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/MesaLib-${pkgver}.tar.bz2")
+ source=("ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/MesaLib-${pkgver}.tar.bz2" fix-build-with-llvm-3.0.patch)
#source=(${source[@]} "MesaLib-git${_gitdate}.zip"::"http://cgit.freedesktop.org/mesa/mesa/snapshot/mesa-4464ee1a9aa3745109cee23531e3fb2323234d07.tar.bz2")
- md5sums=('0837c52698fe3252369c3fdb5195afcc')
+ md5sums=('0837c52698fe3252369c3fdb5195afcc' '73501728793dc895bfc80dfb3253d39e')
fi
build() {
@@ -43,7 +43,13 @@ build() {
# for our llvm-config for 32 bit
export LLVM_CONFIG=/usr/lib32/llvm/llvm-config
- cd ${srcdir}/?esa-*
+ cd ${srcdir}/?esa-*
+
+ if [ "${_git}" = "false" ]; then
+ # fix building of mesa-7.11.2 with llvm-3.0
+ patch -Np1 -i ../fix-build-with-llvm-3.0.patch
+ fi
+
autoreconf -vfi
if [ "${_git}" = "true" ]; then
diff --git a/multilib/lib32-mesa/fix-build-with-llvm-3.0.patch b/multilib/lib32-mesa/fix-build-with-llvm-3.0.patch
new file mode 100644
index 000000000..ceb5aa129
--- /dev/null
+++ b/multilib/lib32-mesa/fix-build-with-llvm-3.0.patch
@@ -0,0 +1,330 @@
+diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c
+index 56c26f5..d477c40 100644
+--- a/src/gallium/auxiliary/draw/draw_llvm.c
++++ b/src/gallium/auxiliary/draw/draw_llvm.c
+@@ -96,7 +96,7 @@ draw_llvm_generate_elts(struct draw_llvm *llvm, struct draw_llvm_variant *var);
+ * Create LLVM type for struct draw_jit_texture
+ */
+ static LLVMTypeRef
+-create_jit_texture_type(struct gallivm_state *gallivm)
++create_jit_texture_type(struct gallivm_state *gallivm, const char *struct_name)
+ {
+ LLVMTargetDataRef target = gallivm->target;
+ LLVMTypeRef texture_type;
+@@ -120,13 +120,21 @@ create_jit_texture_type(struct gallivm_state *gallivm)
+ elem_types[DRAW_JIT_TEXTURE_BORDER_COLOR] =
+ LLVMArrayType(LLVMFloatTypeInContext(gallivm->context), 4);
+
++#if HAVE_LLVM >= 0x0300
++ texture_type = LLVMStructCreateNamed(gallivm->context, struct_name);
++ LLVMStructSetBody(texture_type, elem_types,
++ Elements(elem_types), 0);
++#else
+ texture_type = LLVMStructTypeInContext(gallivm->context, elem_types,
+ Elements(elem_types), 0);
+
++ LLVMAddTypeName(gallivm->module, struct_name, texture_type);
++
+ /* Make sure the target's struct layout cache doesn't return
+ * stale/invalid data.
+ */
+ LLVMInvalidateStructLayout(gallivm->target, texture_type);
++#endif
+
+ LP_CHECK_MEMBER_OFFSET(struct draw_jit_texture, width,
+ target, texture_type,
+@@ -176,7 +184,7 @@ create_jit_texture_type(struct gallivm_state *gallivm)
+ */
+ static LLVMTypeRef
+ create_jit_context_type(struct gallivm_state *gallivm,
+- LLVMTypeRef texture_type)
++ LLVMTypeRef texture_type, const char *struct_name)
+ {
+ LLVMTargetDataRef target = gallivm->target;
+ LLVMTypeRef float_type = LLVMFloatTypeInContext(gallivm->context);
+@@ -189,11 +197,17 @@ create_jit_context_type(struct gallivm_state *gallivm,
+ elem_types[3] = LLVMPointerType(float_type, 0); /* viewport */
+ elem_types[4] = LLVMArrayType(texture_type,
+ PIPE_MAX_VERTEX_SAMPLERS); /* textures */
+-
++#if HAVE_LLVM >= 0x0300
++ context_type = LLVMStructCreateNamed(gallivm->context, struct_name);
++ LLVMStructSetBody(context_type, elem_types,
++ Elements(elem_types), 0);
++#else
+ context_type = LLVMStructTypeInContext(gallivm->context, elem_types,
+ Elements(elem_types), 0);
++ LLVMAddTypeName(gallivm->module, struct_name, context_type);
+
+ LLVMInvalidateStructLayout(gallivm->target, context_type);
++#endif
+
+ LP_CHECK_MEMBER_OFFSET(struct draw_jit_context, vs_constants,
+ target, context_type, 0);
+@@ -215,7 +229,7 @@ create_jit_context_type(struct gallivm_state *gallivm,
+ * Create LLVM type for struct pipe_vertex_buffer
+ */
+ static LLVMTypeRef
+-create_jit_vertex_buffer_type(struct gallivm_state *gallivm)
++create_jit_vertex_buffer_type(struct gallivm_state *gallivm, const char *struct_name)
+ {
+ LLVMTargetDataRef target = gallivm->target;
+ LLVMTypeRef elem_types[3];
+@@ -225,10 +239,17 @@ create_jit_vertex_buffer_type(struct gallivm_state *gallivm)
+ elem_types[1] = LLVMInt32TypeInContext(gallivm->context);
+ elem_types[2] = LLVMPointerType(LLVMInt8TypeInContext(gallivm->context), 0); /* vs_constants */
+
++#if HAVE_LLVM >= 0x0300
++ vb_type = LLVMStructCreateNamed(gallivm->context, struct_name);
++ LLVMStructSetBody(vb_type, elem_types,
++ Elements(elem_types), 0);
++#else
+ vb_type = LLVMStructTypeInContext(gallivm->context, elem_types,
+ Elements(elem_types), 0);
++ LLVMAddTypeName(gallivm->module, struct_name, vb_type);
+
+ LLVMInvalidateStructLayout(gallivm->target, vb_type);
++#endif
+
+ LP_CHECK_MEMBER_OFFSET(struct pipe_vertex_buffer, stride,
+ target, vb_type, 0);
+@@ -258,10 +279,17 @@ create_jit_vertex_header(struct gallivm_state *gallivm, int data_elems)
+ elem_types[1] = LLVMArrayType(LLVMFloatTypeInContext(gallivm->context), 4);
+ elem_types[2] = LLVMArrayType(elem_types[1], data_elems);
+
++#if HAVE_LLVM >= 0x0300
++ vertex_header = LLVMStructCreateNamed(gallivm->context, struct_name);
++ LLVMStructSetBody(vertex_header, elem_types,
++ Elements(elem_types), 0);
++#else
+ vertex_header = LLVMStructTypeInContext(gallivm->context, elem_types,
+ Elements(elem_types), 0);
++ LLVMAddTypeName(gallivm->module, struct_name, vertex_header);
+
+ LLVMInvalidateStructLayout(gallivm->target, vertex_header);
++#endif
+
+ /* these are bit-fields and we can't take address of them
+ LP_CHECK_MEMBER_OFFSET(struct vertex_header, clipmask,
+@@ -284,8 +312,6 @@ create_jit_vertex_header(struct gallivm_state *gallivm, int data_elems)
+ target, vertex_header,
+ DRAW_JIT_VERTEX_DATA);
+
+- LLVMAddTypeName(gallivm->module, struct_name, vertex_header);
+-
+ return vertex_header;
+ }
+
+@@ -299,19 +325,15 @@ create_jit_types(struct draw_llvm *llvm)
+ struct gallivm_state *gallivm = llvm->gallivm;
+ LLVMTypeRef texture_type, context_type, buffer_type, vb_type;
+
+- texture_type = create_jit_texture_type(gallivm);
+- LLVMAddTypeName(gallivm->module, "texture", texture_type);
++ texture_type = create_jit_texture_type(gallivm, "texture");
+
+- context_type = create_jit_context_type(gallivm, texture_type);
+- LLVMAddTypeName(gallivm->module, "draw_jit_context", context_type);
++ context_type = create_jit_context_type(gallivm, texture_type, "draw_jit_context");
+ llvm->context_ptr_type = LLVMPointerType(context_type, 0);
+
+ buffer_type = LLVMPointerType(LLVMIntTypeInContext(gallivm->context, 8), 0);
+- LLVMAddTypeName(gallivm->module, "buffer", buffer_type);
+ llvm->buffer_ptr_type = LLVMPointerType(buffer_type, 0);
+
+- vb_type = create_jit_vertex_buffer_type(gallivm);
+- LLVMAddTypeName(gallivm->module, "pipe_vertex_buffer", vb_type);
++ vb_type = create_jit_vertex_buffer_type(gallivm, "pipe_vertex_buffer");
+ llvm->vb_ptr_type = LLVMPointerType(vb_type, 0);
+ }
+
+diff --git a/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp b/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp
+index 8636cd6..f44749d 100644
+--- a/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp
++++ b/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp
+@@ -27,17 +27,23 @@
+
+ #include <llvm-c/Core.h>
+ #include <llvm/Target/TargetMachine.h>
+-#include <llvm/Target/TargetRegistry.h>
+-#include <llvm/Target/TargetSelect.h>
+ #include <llvm/Target/TargetInstrInfo.h>
+ #include <llvm/Support/raw_ostream.h>
+ #include <llvm/Support/MemoryObject.h>
+
++#if HAVE_LLVM >= 0x0300
++#include <llvm/Support/TargetRegistry.h>
++#include <llvm/Support/TargetSelect.h>
++#else /* HAVE_LLVM < 0x0300 */
++#include <llvm/Target/TargetRegistry.h>
++#include <llvm/Target/TargetSelect.h>
++#endif /* HAVE_LLVM < 0x0300 */
++
+ #if HAVE_LLVM >= 0x0209
+ #include <llvm/Support/Host.h>
+-#else
++#else /* HAVE_LLVM < 0x0209 */
+ #include <llvm/System/Host.h>
+-#endif
++#endif /* HAVE_LLVM < 0x0209 */
+
+ #if HAVE_LLVM >= 0x0207
+ #include <llvm/MC/MCDisassembler.h>
+@@ -193,14 +199,23 @@ lp_disassemble(const void* func)
+
+ InitializeAllDisassemblers();
+
++#if HAVE_LLVM >= 0x0300
++ OwningPtr<const MCAsmInfo> AsmInfo(T->createMCAsmInfo(Triple));
++#else
+ OwningPtr<const MCAsmInfo> AsmInfo(T->createAsmInfo(Triple));
++#endif
+
+ if (!AsmInfo) {
+ debug_printf("error: no assembly info for target %s\n", Triple.c_str());
+ return;
+ }
+
++#if HAVE_LLVM >= 0x0300
++ const MCSubtargetInfo *STI = T->createMCSubtargetInfo(Triple, sys::getHostCPUName(), "");
++ OwningPtr<const MCDisassembler> DisAsm(T->createMCDisassembler(*STI));
++#else
+ OwningPtr<const MCDisassembler> DisAsm(T->createMCDisassembler());
++#endif
+ if (!DisAsm) {
+ debug_printf("error: no disassembler for target %s\n", Triple.c_str());
+ return;
+@@ -213,7 +228,11 @@ lp_disassemble(const void* func)
+ #else
+ int AsmPrinterVariant = AsmInfo->getAssemblerDialect();
+ #endif
+-#if HAVE_LLVM >= 0x0208
++
++#if HAVE_LLVM >= 0x0300
++ OwningPtr<MCInstPrinter> Printer(
++ T->createMCInstPrinter(AsmPrinterVariant, *AsmInfo, *STI));
++#elif HAVE_LLVM >= 0x0208
+ OwningPtr<MCInstPrinter> Printer(
+ T->createMCInstPrinter(AsmPrinterVariant, *AsmInfo));
+ #else
+@@ -253,7 +272,11 @@ lp_disassemble(const void* func)
+
+ if (!DisAsm->getInstruction(Inst, Size, memoryObject,
+ pc,
+- nulls())) {
++#if HAVE_LLVM >= 0x0300
++ nulls(), nulls())) {
++#else
++ nulls())) {
++#endif
+ debug_printf("invalid\n");
+ pc += 1;
+ }
+@@ -276,7 +299,9 @@ lp_disassemble(const void* func)
+ * Print the instruction.
+ */
+
+-#if HAVE_LLVM >= 0x208
++#if HAVE_LLVM >= 0x0300
++ Printer->printInst(&Inst, Out, "");
++#elif HAVE_LLVM >= 0x208
+ Printer->printInst(&Inst, Out);
+ #else
+ Printer->printInst(&Inst);
+@@ -289,7 +314,11 @@ lp_disassemble(const void* func)
+
+ pc += Size;
+
++#if HAVE_LLVM >= 0x0300
++ const MCInstrDesc &TID = TII->get(Inst.getOpcode());
++#else
+ const TargetInstrDesc &TID = TII->get(Inst.getOpcode());
++#endif
+
+ /*
+ * Keep track of forward jumps to a nearby address.
+diff --git a/src/gallium/auxiliary/gallivm/lp_bld_type.c b/src/gallium/auxiliary/gallivm/lp_bld_type.c
+index c5cf6d4..efd159f 100644
+--- a/src/gallium/auxiliary/gallivm/lp_bld_type.c
++++ b/src/gallium/auxiliary/gallivm/lp_bld_type.c
+@@ -325,16 +325,18 @@ lp_typekind_name(LLVMTypeKind t)
+ return "LLVMArrayTypeKind";
+ case LLVMPointerTypeKind:
+ return "LLVMPointerTypeKind";
++#if HAVE_LLVM < 0x0300
+ case LLVMOpaqueTypeKind:
+ return "LLVMOpaqueTypeKind";
++#endif
+ case LLVMVectorTypeKind:
+ return "LLVMVectorTypeKind";
+ case LLVMMetadataTypeKind:
+ return "LLVMMetadataTypeKind";
+- /* Only in LLVM 2.7 and later???
++#if HAVE_LLVM == 0x0207
+ case LLVMUnionTypeKind:
+ return "LLVMUnionTypeKind";
+- */
++#endif
+ default:
+ return "unknown LLVMTypeKind";
+ }
+diff --git a/src/gallium/drivers/llvmpipe/lp_jit.c b/src/gallium/drivers/llvmpipe/lp_jit.c
+index 268f0fa..ce92a80 100644
+--- a/src/gallium/drivers/llvmpipe/lp_jit.c
++++ b/src/gallium/drivers/llvmpipe/lp_jit.c
+@@ -68,10 +68,17 @@ lp_jit_create_types(struct llvmpipe_context *lp)
+ elem_types[LP_JIT_TEXTURE_BORDER_COLOR] =
+ LLVMArrayType(LLVMFloatTypeInContext(lc), 4);
+
++#if HAVE_LLVM >= 0x0300
++ texture_type = LLVMStructCreateNamed(gallivm->context, "texture");
++ LLVMStructSetBody(texture_type, elem_types,
++ Elements(elem_types), 0);
++#else
+ texture_type = LLVMStructTypeInContext(lc, elem_types,
+ Elements(elem_types), 0);
++ LLVMAddTypeName(gallivm->module, "texture", texture_type);
+
+ LLVMInvalidateStructLayout(gallivm->target, texture_type);
++#endif
+
+ LP_CHECK_MEMBER_OFFSET(struct lp_jit_texture, width,
+ gallivm->target, texture_type,
+@@ -112,8 +119,6 @@ lp_jit_create_types(struct llvmpipe_context *lp)
+
+ LP_CHECK_STRUCT_SIZE(struct lp_jit_texture,
+ gallivm->target, texture_type);
+-
+- LLVMAddTypeName(gallivm->module, "texture", texture_type);
+ }
+
+ /* struct lp_jit_context */
+@@ -129,11 +134,19 @@ lp_jit_create_types(struct llvmpipe_context *lp)
+ elem_types[LP_JIT_CTX_TEXTURES] = LLVMArrayType(texture_type,
+ PIPE_MAX_SAMPLERS);
+
++#if HAVE_LLVM >= 0x0300
++ context_type = LLVMStructCreateNamed(gallivm->context, "context");
++ LLVMStructSetBody(context_type, elem_types,
++ Elements(elem_types), 0);
++#else
+ context_type = LLVMStructTypeInContext(lc, elem_types,
+ Elements(elem_types), 0);
+
+ LLVMInvalidateStructLayout(gallivm->target, context_type);
+
++ LLVMAddTypeName(gallivm->module, "context", context_type);
++#endif
++
+ LP_CHECK_MEMBER_OFFSET(struct lp_jit_context, constants,
+ gallivm->target, context_type,
+ LP_JIT_CTX_CONSTANTS);
+@@ -155,8 +168,6 @@ lp_jit_create_types(struct llvmpipe_context *lp)
+ LP_CHECK_STRUCT_SIZE(struct lp_jit_context,
+ gallivm->target, context_type);
+
+- LLVMAddTypeName(gallivm->module, "context", context_type);
+-
+ lp->jit_context_ptr_type = LLVMPointerType(context_type, 0);
+ }
+
diff --git a/multilib/lib32-pcre/PKGBUILD b/multilib/lib32-pcre/PKGBUILD
index 63bc0da22..b798dc530 100644
--- a/multilib/lib32-pcre/PKGBUILD
+++ b/multilib/lib32-pcre/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 57529 2011-10-30 08:00:24Z bluewind $
+# $Id: PKGBUILD 60943 2011-12-19 18:57:19Z bluewind $
# Maintainer: Ionut Biru <ibiru@archlinux.org>
_pkgbasename=pcre
pkgname=lib32-$_pkgbasename
-pkgver=8.20
+pkgver=8.21
pkgrel=1
pkgdesc="A library that implements Perl 5-style regular expressions (32-bit)"
arch=('x86_64')
@@ -13,7 +13,7 @@ depends=('lib32-gcc-libs' $_pkgbasename)
makedepends=('gcc-multilib')
options=('!libtool')
source=(ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/${_pkgbasename}-${pkgver}.tar.bz2)
-md5sums=('a1931c70e1273e3450d5036fe273d25c')
+md5sums=('0a7b592bea64b7aa7f4011fc7171a730')
build() {
cd "${srcdir}"/${_pkgbasename}-${pkgver}
diff --git a/multilib/lib32-pixman/PKGBUILD b/multilib/lib32-pixman/PKGBUILD
index b2e57ee93..a064566ee 100644
--- a/multilib/lib32-pixman/PKGBUILD
+++ b/multilib/lib32-pixman/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 38980 2011-02-04 14:53:22Z ibiru $
+# $Id: PKGBUILD 60941 2011-12-19 18:56:50Z bluewind $
# Maintainer : Ionut Biru <ibiru@archlinux.org>
_pkgbasename=pixman
pkgname=lib32-$_pkgbasename
-pkgver=0.20.2
+pkgver=0.24.0
pkgrel=1
pkgdesc="Pixman library (32-bit)"
arch=('x86_64')
@@ -12,7 +12,7 @@ depends=('lib32-glibc' $_pkgbasename)
makedepends=('gcc-multilib')
options=('!libtool')
source=(http://xorg.freedesktop.org/releases/individual/lib/${_pkgbasename}-${pkgver}.tar.bz2)
-sha1sums=('9972c8f8ce484f7649d9f588168cd29f61c05c63')
+sha1sums=('a3b73c3ea6cada20d705203a394f574aa69e2177')
build() {
export CC="gcc -m32"
diff --git a/multilib/lib32-readline/PKGBUILD b/multilib/lib32-readline/PKGBUILD
index ea951db7b..7ec1ea250 100644
--- a/multilib/lib32-readline/PKGBUILD
+++ b/multilib/lib32-readline/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 57756 2011-11-02 09:06:48Z bluewind $
+# $Id: PKGBUILD 60938 2011-12-19 18:55:02Z bluewind $
# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
_pkgbasename=readline
pkgname=lib32-$_pkgbasename
_basever=6.2
-_patchlevel=001 #prepare for some patches
+_patchlevel=002 #prepare for some patches
pkgver=$_basever.$_patchlevel
pkgrel=1
pkgdesc="GNU readline library (32-bit)"
@@ -17,11 +17,14 @@ makedepends=('gcc-multilib')
source=(http://ftp.gnu.org/gnu/readline/readline-$_basever.tar.gz)
if [ $_patchlevel -gt 00 ]; then
for (( p=1; p<=$((10#${_patchlevel})); p++ )); do
- source=(${source[@]} http://ftp.gnu.org/gnu/readline/readline-$_basever-patches/readline${_basever//./}-$(printf "%03d" $p))
+ source=(${source[@]} http://ftp.gnu.org/gnu/readline/readline-$_basever-patches/readline${_basever//./}-$(printf "%03d" $p){,.sig})
done
fi
md5sums=('67948acb2ca081f23359d0256e9a271c'
- '83287d52a482f790dfb30ec0a8746669')
+ '83287d52a482f790dfb30ec0a8746669'
+ '8e6a51e2e0e6e45a82752e3692c111ac'
+ '0665020ea118e8434bd145fb71f452cc'
+ '285361ca6d48c51ae2428157e174e812')
build() {
cd ${srcdir}/${_pkgbasename}-$_basever
@@ -30,10 +33,9 @@ build() {
export CXX="g++ -m32"
export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
- for p in ../readline61-*; do
- [ -e "$p" ] || continue
- msg "applying patch ${p}"
- patch -Np0 -i ${p}
+ for (( p=1; p<=$((10#${_patchlevel})); p++ )); do
+ msg "applying patch readline${_basever//./}-$(printf "%03d" $p)"
+ patch -Np0 -i $srcdir/readline${_basever//./}-$(printf "%03d" $p)
done
# Remove RPATH from shared objects (FS#14366)
diff --git a/multilib/lib32-udev/PKGBUILD b/multilib/lib32-udev/PKGBUILD
index 21c6b26d0..36240f6c1 100644
--- a/multilib/lib32-udev/PKGBUILD
+++ b/multilib/lib32-udev/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id$
+# $Id: PKGBUILD 60965 2011-12-19 19:41:38Z lcarlier $
# Maintainer: Aaron Griffin <aaron@archlinux.org>
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
# Maintainer: Thomas Bächler <thomas@archlinux.org>
pkgname=('lib32-udev')
-pkgver=174
+pkgver=175
pkgrel=1
arch=('x86_64')
pkgdesc="The userspace dev tools (udev) (32-bit)"
@@ -14,8 +14,8 @@ options=(!makeflags !libtool)
depends=('lib32-glibc' 'lib32-glib2' 'lib32-acl' 'lib32-libusb-compat' 'udev')
makedepends=('gcc-multilib' 'gperf')
#source=(http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev-$pkgver.tar.bz2)
-source=(http://people.freedesktop.org/~kay/udev-$pkgver.tar.bz2)
-md5sums=('3b84706046a33d7a7e00491a1136804d')
+source=(http://people.freedesktop.org/~kay/udev/udev-$pkgver.tar.bz2)
+md5sums=('2fc9c1efcbde98e3d73ffee7a77aea47')
build() {
export CC="gcc -m32"
diff --git a/testing/apr-util/PKGBUILD b/testing/apr-util/PKGBUILD
new file mode 100644
index 000000000..987581358
--- /dev/null
+++ b/testing/apr-util/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 145219 2011-12-19 18:04:03Z andrea $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=apr-util
+pkgver=1.3.12
+pkgrel=4
+pkgdesc="The Apache Portable Runtime"
+arch=('i686' 'x86_64')
+url="http://apr.apache.org/"
+depends=('apr' 'gdbm' 'expat' 'db' 'libldap' 'unixodbc')
+options=('!libtool')
+license=('APACHE')
+source=("http://www.apache.org/dist/apr/apr-util-${pkgver}.tar.bz2")
+md5sums=('0f671b037ca62751a8a7005578085560')
+
+build() {
+ cd "${srcdir}/apr-util-${pkgver}"
+ ./configure --prefix=/usr --with-apr=/usr \
+ --without-pgsql --without-mysql --without-sqlite2 --without-sqlite3 \
+ --with-berkeley-db=/usr --with-gdbm=/usr --with-ldap
+ make
+}
+
+package() {
+ cd "${srcdir}/apr-util-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/arora/PKGBUILD b/testing/arora/PKGBUILD
new file mode 100644
index 000000000..cfe65b628
--- /dev/null
+++ b/testing/arora/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 145213 2011-12-19 18:03:53Z andrea $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=arora
+pkgver=0.11.0
+pkgrel=3
+pkgdesc='Lightweight cross-platform Web browser'
+url='http://www.arora-browser.org/'
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('qtwebkit' 'desktop-file-utils')
+source=("http://${pkgname}.googlecode.com/files/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('480cfd7482cccbb7ece866fa10afe9acace29b31')
+
+install=install
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ qmake PREFIX='/usr' 'CONFIG-=debug' -r
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make INSTALL_ROOT="${pkgdir}" install
+}
diff --git a/testing/arora/install b/testing/arora/install
new file mode 100644
index 000000000..6c87527e2
--- /dev/null
+++ b/testing/arora/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/erlang/PKGBUILD b/testing/erlang/PKGBUILD
new file mode 100644
index 000000000..b2b701fb8
--- /dev/null
+++ b/testing/erlang/PKGBUILD
@@ -0,0 +1,71 @@
+# $Id: PKGBUILD 145221 2011-12-19 18:04:05Z andrea $
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+# Contributor: Tom Burdick <thomas.burdick@wrightwoodtech.com>
+
+pkgname=erlang
+pkgver=R14B04
+pkgrel=2
+pkgdesc="A small concurrent functional programming language developed by Ericsson."
+arch=(i686 x86_64)
+url="http://www.erlang.org/index.html"
+license=('custom')
+depends=('ncurses' 'glibc')
+makedepends=('java-environment' 'perl' 'openssl' 'wxgtk' 'unixodbc>=2.3.1' 'mesa')
+optdepends=('wxgtk: for wx support' 'unixodbc: database')
+
+options=('!makeflags')
+source=(http://www.erlang.org/download/otp_src_${pkgver/./-}.tar.gz
+ http://www.erlang.org/download/otp_doc_man_${pkgver/./-}.tar.gz)
+md5sums=('4b469729f103f52702bfb1fb24529dc0'
+ 'f31e72518daae4007f595c0b224dd59f')
+
+# please check these deps reported by namcap when you do the next build:
+#erlang E: Dependency java-environment detected and not included (found class files usr/lib/erlang/lib/jinterface-1.5.4/priv/OtpErlang.jar, usr/lib/erlang/lib/ic-4.2.27/priv/ic.jar)
+#erlang E: Dependency mesa detected and not included (libraries ['usr/lib/libGLU.so.1'] needed in files ['usr/lib/erlang/lib/wx-0.99/priv/erl_gl.so'])
+
+
+build() {
+ cd "$srcdir/otp_src_${pkgver/./-}"
+ export ERTSVERSION=$(sed -n 's/^VSN[ ]*=[ ]*\([0-9.]\)/\1/p' < erts/vsn.mk)
+ export ERLINTERFACEVERSION=$(sed -n 's/^EI_VSN[ ]*=[ ]*\([0-9.]\)/\1/p' < lib/erl_interface/vsn.mk)
+
+ sed -i '/SSL_DYNAMIC_ONLY=/s:no:yes:' erts/configure
+
+ CFLAGS="${CFLAGS} -fno-strict-aliasing" ./configure --prefix=/usr --enable-smp-support --enable-threads -enable-native-libs
+ make
+}
+
+package() {
+ cd "$srcdir/otp_src_${pkgver/./-}"
+ make INSTALL_PREFIX="$pkgdir" install
+
+# fix prefix
+ cd "$pkgdir"
+ for i in usr/lib/erlang/bin/erl \
+ usr/lib/erlang/bin/start \
+ usr/lib/erlang/erts-${ERTSVERSION}/bin/erl \
+ usr/lib/erlang/erts-${ERTSVERSION}/bin/start \
+ usr/lib/erlang/releases/RELEASES ;do
+ sed -i "s#$pkgdir##" $i
+ done
+
+# fix symlinks
+ cd "$pkgdir/usr/lib/erlang/bin"
+ ln -sf ../erts-${ERTSVERSION}/bin/epmd
+
+ cd "$pkgdir/usr/bin"
+ for file in *; do
+ ln -sfv ../lib/erlang/bin/$file
+ done
+
+ ln -s ../lib/erlang/lib/erl_interface-${ERLINTERFACEVERSION}/bin/erl_call "$pkgdir/usr/bin/erl_call"
+
+# install documentation
+ install -d "$pkgdir/usr/share/doc/erlang"
+ install -D -m644 "$srcdir"/{COPYRIGHT,PR.template,README} "$pkgdir/usr/share/doc/erlang"
+ cp -r "$srcdir/man" "$pkgdir/usr/lib/erlang"
+
+ install -Dm644 "$srcdir/otp_src_${pkgver/./-}/EPLICENCE" "$pkgdir/usr/share/licenses/$pkgname/EPLICENCE"
+
+}
diff --git a/testing/freetds/PKGBUILD b/testing/freetds/PKGBUILD
new file mode 100644
index 000000000..c91427f2c
--- /dev/null
+++ b/testing/freetds/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 11362 2010-02-09 23:57:26Z dgriffiths $
+# Contributor: Aaron Malone <aaron@munge.net>
+
+pkgname=freetds
+pkgver=0.91
+pkgrel=2
+pkgdesc='Library for accessing Sybase and MS SQL Server databases'
+url='http://www.freetds.org'
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('unixodbc')
+options=('!libtool')
+backup=('etc/freetds/freetds.conf'
+ 'etc/freetds/locales.conf'
+ 'etc/freetds/pool.conf')
+source=("ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/stable/${pkgname}-${pkgver}.tar.gz")
+md5sums=('b14db5823980a32f0643d1a84d3ec3ad')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc/freetds --mandir=/usr/share/man --enable-msdblib --with-tdsver=7.0
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/gtk3/PKGBUILD b/testing/gtk3/PKGBUILD
new file mode 100644
index 000000000..2f2c35127
--- /dev/null
+++ b/testing/gtk3/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 145199 2011-12-19 16:29:29Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=gtk3
+pkgver=3.2.3
+pkgrel=1
+pkgdesc="GTK+ is a multi-platform toolkit (v3)"
+arch=('i686' 'x86_64')
+url="http://www.gtk.org/"
+install=gtk3.install
+depends=('atk' 'cairo' 'gtk-update-icon-cache' 'libcups' 'libxcursor' 'libxinerama' 'libxrandr' 'libxi' 'libxcomposite' 'libxdamage' 'pango' 'shared-mime-info' 'colord')
+makedepends=('gobject-introspection')
+options=('!libtool' '!docs')
+backup=(etc/gtk-3.0/settings.ini)
+license=('LGPL')
+source=(http://ftp.gnome.org/pub/gnome/sources/gtk+/3.2/gtk+-$pkgver.tar.xz
+ settings.ini)
+sha256sums=('e2cf20f2510ebbc7be122a1a33dd1f472a7d06aaf16b4f2a63eb048cd9141d3d'
+ 'c214d3dcdcadda3d642112287524ab3e526ad592b70895c9f3e3733c23701621')
+
+build() {
+ cd "$srcdir/gtk+-$pkgver"
+ CXX=/bin/false ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --enable-gtk2-dependency \
+ --disable-schemas-compile
+ #https://bugzilla.gnome.org/show_bug.cgi?id=655517
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+ make
+}
+
+package() {
+ cd "$srcdir/gtk+-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 "$srcdir/settings.ini" "$pkgdir/etc/gtk-3.0/settings.ini"
+}
diff --git a/testing/gtk3/gtk3.install b/testing/gtk3/gtk3.install
new file mode 100644
index 000000000..cd8965d1f
--- /dev/null
+++ b/testing/gtk3/gtk3.install
@@ -0,0 +1,15 @@
+post_install() {
+ usr/bin/gtk-query-immodules-3.0 --update-cache
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ rm -f usr/lib/gtk-3.0/3.0.0/immodules.cache
+}
+post_remove() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+}
diff --git a/testing/gtk3/settings.ini b/testing/gtk3/settings.ini
new file mode 100644
index 000000000..039000d38
--- /dev/null
+++ b/testing/gtk3/settings.ini
@@ -0,0 +1,2 @@
+[Settings]
+gtk-fallback-icon-theme = gnome
diff --git a/testing/kdelibs/PKGBUILD b/testing/kdelibs/PKGBUILD
new file mode 100644
index 000000000..d0b93d61c
--- /dev/null
+++ b/testing/kdelibs/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 145215 2011-12-19 18:03:56Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdelibs
+pkgver=4.7.4
+pkgrel=2
+pkgdesc="KDE Core Libraries"
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+depends=('strigi' 'attica' 'libxss' 'xz' 'openssl' 'soprano' 'krb5'
+ 'shared-desktop-ontologies' 'qca' 'libdbusmenu-qt' 'polkit-qt' 'grantlee'
+ 'shared-mime-info' 'enchant' 'giflib' 'jasper' 'openexr' 'xdg-utils'
+ 'phonon' 'hicolor-icon-theme' 'upower' 'udisks' 'libxcursor'
+ 'docbook-xsl' 'qtwebkit')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'avahi' 'libgl' 'hspell')
+replaces=('kdelibs-experimental')
+install='kdelibs.install'
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2"
+ 'kde-applications-menu.patch' 'archlinux-menu.patch')
+sha1sums=('78b25e93a8c70ccc1e0f117cce960fe4e1deb8d8'
+ '86ee8c8660f19de8141ac99cd6943964d97a1ed7'
+ '63a850ab4196b9d06934f2b4a13acd9f7739bc67')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+
+ # avoid file conflict with gnome-menus
+ patch -p1 -i "${srcdir}"/kde-applications-menu.patch
+ # add Archlinux menu entry
+ patch -p1 -i "${srcdir}"/archlinux-menu.patch
+
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DKDE_DISTRIBUTION_TEXT='Arch Linux' \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DSYSCONF_INSTALL_DIR=/etc \
+ -DHTML_INSTALL_DIR=/usr/share/doc/kde/html \
+ -DKDE_DEFAULT_HOME='.kde4' \
+ -DWITH_FAM=OFF
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+
+ # cert bundle seems to be hardcoded
+ # link it to the one from ca-certificates
+ rm -f "${pkgdir}"/usr/share/apps/kssl/ca-bundle.crt
+ ln -sf /etc/ssl/certs/ca-certificates.crt "${pkgdir}"/usr/share/apps/kssl/ca-bundle.crt
+}
diff --git a/testing/kdelibs/archlinux-menu.patch b/testing/kdelibs/archlinux-menu.patch
new file mode 100644
index 000000000..546784fa2
--- /dev/null
+++ b/testing/kdelibs/archlinux-menu.patch
@@ -0,0 +1,22 @@
+--- kdelibs-4.3.98/kded/applications.menu 2010-01-31 19:28:11.000000000 +0000
++++ kdelibs-4.3.98/kded/applications.menu 2010-01-31 22:25:53.556043077 +0000
+@@ -16,11 +16,19 @@
+ </DefaultLayout>
+ <Layout>
+ <Merge type="menus"/>
++ <Menuname>Arch Linux</Menuname>
+ <Menuname>Applications</Menuname>
+ <Merge type="files"/>
+ </Layout>
+
+ <Menu>
++ <Name>Arch Linux</Name>
++ <Directory>Archlinux.directory</Directory>
++ <Include>
++ <Category>Archlinux</Category>
++ </Include>
++ </Menu>
++ <Menu>
+ <Name>Applications</Name>
+ <Directory>kde-unknown.directory</Directory>
+ <OnlyUnallocated/>
diff --git a/testing/kdelibs/kde-applications-menu.patch b/testing/kdelibs/kde-applications-menu.patch
new file mode 100644
index 000000000..4b513298a
--- /dev/null
+++ b/testing/kdelibs/kde-applications-menu.patch
@@ -0,0 +1,22 @@
+--- kdelibs-4.3.98/kded/CMakeLists.txt 2009-10-02 14:55:17.000000000 +0000
++++ kdelibs-4.3.98/kded/CMakeLists.txt 2010-01-31 22:16:13.946933892 +0000
+@@ -69,7 +69,7 @@
+ if (WIN32)
+ install( FILES applications.menu DESTINATION ${SHARE_INSTALL_PREFIX}/xdg/menus )
+ else (WIN32)
+-install( FILES applications.menu DESTINATION ${SYSCONF_INSTALL_DIR}/xdg/menus )
++install( FILES applications.menu DESTINATION ${SYSCONF_INSTALL_DIR}/xdg/menus RENAME kde-applications.menu )
+ endif (WIN32)
+ install( FILES kdedmodule.desktop DESTINATION ${SERVICETYPES_INSTALL_DIR} )
+ install( FILES kded.upd DESTINATION ${DATA_INSTALL_DIR}/kconf_update )
+--- kdelibs-4.3.98/kded/kbuildsycoca.cpp 2009-12-04 23:10:18.000000000 +0000
++++ kdelibs-4.3.98/kded/kbuildsycoca.cpp 2010-01-31 22:16:13.962766572 +0000
+@@ -302,7 +302,7 @@
+ if (!m_trackId.isEmpty())
+ g_vfolder->setTrackId(m_trackId);
+
+- VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("applications.menu", true);
++ VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("kde-applications.menu", true);
+
+ KServiceGroup::Ptr entry = g_bsgf->addNew("/", kdeMenu->directoryFile, KServiceGroup::Ptr(), false);
+ entry->setLayoutInfo(kdeMenu->layoutList);
diff --git a/testing/kdelibs/kdelibs.install b/testing/kdelibs/kdelibs.install
new file mode 100644
index 000000000..c77e68041
--- /dev/null
+++ b/testing/kdelibs/kdelibs.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
+}
diff --git a/testing/kwebkitpart/PKGBUILD b/testing/kwebkitpart/PKGBUILD
new file mode 100644
index 000000000..79cc0759e
--- /dev/null
+++ b/testing/kwebkitpart/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 145211 2011-12-19 18:03:51Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kwebkitpart
+pkgver=1.2.0
+pkgrel=2
+pkgdesc="A WebKit browser component for KDE"
+url="http://opendesktop.org/content/show.php?content=127960"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.xz")
+md5sums=('e736d7b26cf6e3c0eed837837b3f032b')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/kwebkitpart/kwebkitpart.install b/testing/kwebkitpart/kwebkitpart.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/testing/kwebkitpart/kwebkitpart.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/libreoffice/PKGBUILD b/testing/libreoffice/PKGBUILD
new file mode 100644
index 000000000..9edbc55e5
--- /dev/null
+++ b/testing/libreoffice/PKGBUILD
@@ -0,0 +1,923 @@
+# $Id: PKGBUILD 145225 2011-12-19 18:04:12Z andrea $
+# 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-extension-barcode' #
+ 'libreoffice-extension-diagram'
+ 'libreoffice-extension-google-docs'
+ 'libreoffice-extension-hunart'
+ #'libreoffice-extension-lightproof' # no source integration
+ #'libreoffice-extension-mysql-connector' # missing libmysqlcppconn-dev configure: error: mysql_driver.h not found. install MySQL C++ Connectivity
+ 'libreoffice-extension-nlpsolver'
+ 'libreoffice-extension-ct2n'
+ 'libreoffice-extension-numbertext'
+ 'libreoffice-extension-oooblogger'
+ 'libreoffice-extension-pdfimport'
+ 'libreoffice-extension-presenter-screen'
+ 'libreoffice-extension-presentation-minimizer'
+ 'libreoffice-extension-report-builder'
+ 'libreoffice-extension-scripting-beanshell'
+ 'libreoffice-extension-scripting-javascript'
+ 'libreoffice-extension-scripting-python'
+ 'libreoffice-extension-typo'
+ 'libreoffice-extension-validator'
+ 'libreoffice-extension-watch-window'
+ 'libreoffice-extension-wiki-publisher')
+_LOver=3.4.4.2
+pkgver=3.4.4
+pkgrel=4
+arch=('i686' 'x86_64')
+#_LO_tree="3.4"
+_OFFICEUPD="340"
+license=('LGPL3')
+url="http://www.libreoffice.org/"
+makedepends=( # makedepends
+ 'sane' 'perl-archive-zip' 'zip' 'unzip' 'xulrunner' 'unixodbc>=2.3.1' 'hsqldb-java' 'boost'
+ 'apache-ant' 'gperf' 'poppler>=0.18.0' 'kdelibs' 'gconf' 'cppunit' #'libmysqlclient'
+ 'beanshell' 'vigra' 'libldap' 'lucene' 'libmythes' 'junit' 'libwpg' 'imagemagick'
+ 'mesa' 'gstreamer0.10-base' 'java-environment'
+ #'saxon' - currently broken
+ # the depends from libreoffice main pkg
+ "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' "icu>=4.6" 'libxslt'
+ 'redland' 'hyphen' 'lpsolve' 'gcc-libs' 'sh' 'libtextcat' 'graphite'
+ 'hicolor-icon-theme' 'desktop-file-utils' 'shared-mime-info' 'gtk2' 'orbit2' 'translate-toolkit' # keep gtk2 for install script
+ '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://hg.services.openoffice.org/binaries"
+source=(${_mirror}/${pkgbase}-{artwork,base,bootstrap,calc,components,extensions,extras,filters,help,impress,libs-core,libs-extern,libs-extern-sys,libs-gui,postprocess,sdk,testing,ure,writer}-${_LOver}.tar.bz2 #,translations
+ ${_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}/18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz
+ http://download.go-oo.org/src/0ff7d225d087793c8c2c680d77aac3e7-mdds_0.5.3.tar.bz2
+ http://download.go-oo.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll
+ http://download.go-oo.org/src/90401bca927835b6fbae4a707ed187c8-nlpsolver-0.9.tar.bz2
+ http://download.go-oo.org/src/451ccf439a36a568653b024534669971-ConvertTextToNumber-1.3.2.oxt
+ http://ooo.itc.hu/oxygenoffice/download/libreoffice/7e7efc5d4a03126bb9ae3ae9aa2c4e87-Barcode_1.3.1.0.oxt
+ http://ooo.itc.hu/oxygenoffice/download/libreoffice/41c9b65ad60af4b3255bbecdfef11736-Diagram_1.1.0.0.oxt
+ http://ooo.itc.hu/oxygenoffice/download/libreoffice/bbdd5639ada63e3130761daaecae1a10-Validator_1.1.0.0.oxt
+ http://ooo.itc.hu/oxygenoffice/download/libreoffice/23bd75552206dfcd8fd4e29137dcac84-WatchWindow_1.2.0.0.oxt
+ http://ooo.itc.hu/oxygenoffice/download/libreoffice/b8cbca7b3363e6ca2d02bc0ba2b63904-numbertext_0.9.4.oxt
+ http://ooo.itc.hu/oxygenoffice/download/libreoffice/b632bdd25649cc4067bcb410bae23d2b-hunart_0.3.oxt
+ http://ooo.itc.hu/oxygenoffice/download/libreoffice/9d60b6cfa3ef1926848710bbcd11115b-typo_0.4.2.oxt
+ http://ooo.itc.hu/oxygenoffice/download/libreoffice/dbaafd21de055e582d92d7d32fe9da13-gdocs_2.3.1.oxt
+ http://ooo.itc.hu/oxygenoffice/download/libreoffice/b7b2d0e04e142f26dd96119c80757d1f-oooblogger_0.1.oxt
+ buildfix_boost.diff
+ buildfix_ct2n.diff
+ vbahelper.visibility.patch
+ scp2-more-reasonable-file-access-rights.diff
+ oracle-recognition.diff::http://cgit.freedesktop.org/libreoffice/core/patch/?id=549e54fb2f8113502743c443d6deadfe648dede1
+ RemovetheoslSecuritygetHomeDircheck.diff::http://cgit.freedesktop.org/libreoffice/ure/patch/?id=bc9b86940a707e9e2e1076f2954f38075398b5d7
+ gcc462_buildfix.diff)
+noextract=(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
+ 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
+ 18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz
+ 7e7efc5d4a03126bb9ae3ae9aa2c4e87-Barcode_1.3.1.0.oxt
+ 41c9b65ad60af4b3255bbecdfef11736-Diagram_1.1.0.0.oxt
+ 451ccf439a36a568653b024534669971-ConvertTextToNumber-1.3.2.oxt
+ bbdd5639ada63e3130761daaecae1a10-Validator_1.1.0.0.oxt
+ 23bd75552206dfcd8fd4e29137dcac84-WatchWindow_1.2.0.0.oxt
+ b8cbca7b3363e6ca2d02bc0ba2b63904-numbertext_0.9.4.oxt
+ b632bdd25649cc4067bcb410bae23d2b-hunart_0.3.oxt
+ 9d60b6cfa3ef1926848710bbcd11115b-typo_0.4.2.oxt
+ dbaafd21de055e582d92d7d32fe9da13-gdocs_2.3.1.oxt
+ b7b2d0e04e142f26dd96119c80757d1f-oooblogger_0.1.oxt
+ 90401bca927835b6fbae4a707ed187c8-nlpsolver-0.9.tar.bz2)
+md5sums=('be8b13f83045f0a53b69fe76d6d72e9c'
+ 'db423cbb1cee416b718138044a5de930'
+ '31944d2139d6d81ef1131bd513530621'
+ 'f447fd4ffe54aab9561c6caa262754b3'
+ '97fe698737a35c8803712d4e08007620'
+ 'acff44d97a5106d9b53c747dabeb0800'
+ '620d43a0b9f36388f423e030513864ef'
+ '4c5b1ed870363eca2602f0cb42a8415a'
+ '702c6ca31525d7d2c2ded86c77b0bd2e'
+ 'ac9b3acf78f43c1395d0e2dedc860f30'
+ 'd8d2c41cb86bc8ba2a07e001a5317abb'
+ '4d4af2fc06dbe33ec2307df812f7abe1'
+ '1398a566eb76598bf3005e187fc2386c'
+ 'dd962d2d57f88b9e07e665adad3cabbc'
+ 'fff0fc9cd16ef1eb2b2ed5d0a6e77f95'
+ 'e54d41d39e63d04ac4a88ce79e37af98'
+ 'dbc71403040f447683bf55d1f0be3cad'
+ '69ce5b72f44b008d0e78767c5b1dbf39'
+ '34a2e8ae6b81a042966740263c53e135'
+ '1f24ab1d39f4a51faf22244c94a6203f'
+ '35c94d2df8893241173de1d16b6034c0'
+ '798b2ffdc8bcfe7bca2cf92b62caf685'
+ 'fdb27bfe2dbe2e7b57ae194d9bf36bab'
+ 'ada24d37d8d638b3d8a9985e80bc2978'
+ '2a177023f9ea8ec8bd00837605c5df1b'
+ 'a7983f859eafb2677d7ff386a023bc40'
+ '3c219630e4302863a9a83d0efde889db'
+ '2ae988b339daec234019a7066f96733e'
+ '2c9b0f83ed5890af02c0df1c1776f39b'
+ 'af3c3acf618de6108d65fcdc92b492e1'
+ 'eeb2c7ddf0d302fba4bfc6e97eac9624'
+ '39bb3fcea1514f1369fcfc87542390fd'
+ '3404ab6b1792ae5f16bbd603bd1e1d03'
+ '97b2d4dba862397f446b217e2b623e71'
+ 'f94d9870737518e3b597f9265f4e9803'
+ '8ce2fcd72becf06c41f7201d15373ed9'
+ 'd8bd5eed178db6e2b18eeed243f85aa8'
+ '3bdf40c0d199af31923e900d082ca2dd'
+ 'ace6ab49184e329db254e454a010f56d'
+ 'db60e4fde8dd6d6807523deb71ee34dc'
+ 'ba2930200c9f019c2d93a8c88c651a0f'
+ '18f577b374d60b3c760a3a3350407632'
+ '0ff7d225d087793c8c2c680d77aac3e7'
+ '185d60944ea767075d27247c3162b3bc'
+ '90401bca927835b6fbae4a707ed187c8'
+ '451ccf439a36a568653b024534669971'
+ '7e7efc5d4a03126bb9ae3ae9aa2c4e87'
+ '41c9b65ad60af4b3255bbecdfef11736'
+ 'bbdd5639ada63e3130761daaecae1a10'
+ '23bd75552206dfcd8fd4e29137dcac84'
+ 'b8cbca7b3363e6ca2d02bc0ba2b63904'
+ 'b632bdd25649cc4067bcb410bae23d2b'
+ '9d60b6cfa3ef1926848710bbcd11115b'
+ 'dbaafd21de055e582d92d7d32fe9da13'
+ 'b7b2d0e04e142f26dd96119c80757d1f'
+ 'bc228237108cab7745897a9f466b6d39'
+ 'eee273f501ff45dc5f1365e78c6d57c0'
+ '43b145db28e6c0d73578ae6fd35e510d'
+ '37638431e7e40baf2e47966ebb9bc0e9'
+ '3c6c62e77c30649a3dfe73512947cc9a'
+ 'eb35d4c715e0dfc23bbc706996033829'
+ '10600d04ee81014bc9b5cc04e615d799')
+
+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 "${MOZ_PLUGIN_PATH}" ] && . /etc/profile.d/mozilla-common.sh
+ [ -z "${ANT_HOME}" ] && . /etc/profile.d/apache-ant.sh
+
+ # move all LibO sources into one build directory
+ mkdir ${srcdir}/build && cd ${srcdir}/build
+ for i in libreoffice-{artwork,base,bootstrap,calc,components,extensions,extras,filters,help,impress,libs-core,libs-extern,libs-extern-sys,libs-gui,postprocess,sdk,testing,ure,writer}-${_LOver}; do #,translations
+ mv ${srcdir}/$i/* .
+ done
+# mv ${srcdir}/libreoffice-bootstrap-${_LOver}/* .
+# ./bin/unpack-sources ${srcdir}/build
+
+ # move external sources into place
+ mkdir ${srcdir}/ext_sources && cd ${srcdir}/ext_sources
+ for source in "${noextract[@]}"; do
+ ln -s ${srcdir}/$source .
+ done
+
+ cd ${srcdir}/build
+
+ # buildfixes & bugfixes
+ #patch -Np1 -i ${srcdir}/buildfix_boost.diff
+ patch -Np1 -i ${srcdir}/buildfix_ct2n.diff
+ patch -Np0 -i ${srcdir}/vbahelper.visibility.patch
+ patch -Np0 -i ${srcdir}/scp2-more-reasonable-file-access-rights.diff
+ patch -Np1 -i ${srcdir}/oracle-recognition.diff
+ patch -Np1 -i ${srcdir}/RemovetheoslSecuritygetHomeDircheck.diff
+ # https://www.libreoffice.org/bugzilla/show_bug.cgi?id=43139
+ patch -Np1 -i ${srcdir}/gcc462_buildfix.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
+
+ # http://wiki.documentfoundation.org/Development/How_to_build/Configure_options
+
+# if [ "$CARCH" = "x86_64" ]; then
+# EXTRAOPTS="--without-stlport"
+# else
+# EXTRAOPTS="--with-stlport" # --without-system-boost"
+# # # avoid problems with ixion for now
+# sed -i '/fields-table-formula.diff/d' patches/dev300/apply || return 1
+# fi
+
+ # needed for 0003-distro-install-fix-en-US-only-installation.patch
+ autoconf -f
+
+ # non-SMP test build
+# export MAKEFLAGS="-j1"
+ ./configure --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" \
+ --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc \
+ --with-install-dirname="${pkgbase}" --libdir=/usr/lib --mandir=/usr/share/man \
+ --disable-verbose \
+ --with-lang="" \
+ --enable-cairo\
+ --enable-crashdump \
+ --enable-dbus \
+ --enable-evolution2\
+ --enable-gio\
+ --disable-gnome-vfs\
+ --disable-kde\
+ --enable-kde4\
+ --enable-ldap \
+ --enable-lockdown\
+ --enable-opengl \
+ --enable-odk\
+ --enable-opengl\
+ --enable-ext-barcode \
+ --enable-ext-diagram \
+ --enable-ext-google-docs \
+ --enable-ext-hunart \
+ --disable-ext-lightproof \
+ --disable-ext-mysql-connector \
+ --with-system-mysql \
+ --enable-ext-nlpsolver \
+ --enable-ext-ct2n \
+ --enable-ext-numbertext \
+ --enable-ext-oooblogger \
+ --enable-ext-pdfimport \
+ --enable-ext-presenter-console \
+ --enable-ext-presenter-minimizer \
+ --enable-ext-report-builder \
+ --enable-ext-scripting-beanshell \
+ --enable-ext-scripting-javascript \
+ --enable-ext-scripting-python \
+ --enable-ext-typo \
+ --enable-ext-validator \
+ --enable-ext-watch-window \
+ --enable-ext-wiki-publisher \
+ --without-fonts\
+ --without-afms\
+ --without-ppds\
+ --without-system-libwps\
+ --without-system-mdds\
+ --without-myspell-dicts \
+ --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-cppunit\
+ --with-system-graphite\
+ --with-system-libwpg \
+ --with-system-libwps \
+ --with-system-redland\
+ --without-system-saxon\
+ --with-system-libtextcat \
+ --with-external-libtextcat-data \
+ --with-openldap\
+ --with-ant-home="/usr/share/java/apache-ant"\
+ --with-system-boost\
+ --with-system-cairo\
+ --with-system-libs\
+ --with-system-mozilla\
+ --with-system-mythes\
+ --with-system-xrender-headers\
+ --with-system-headers\
+ --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 || return 1
+
+#--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
+ unset MAKEFLAGS
+ ./bootstrap
+ 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=${pkgbase}.install
+ depends=('libreoffice-langpack' "curl>=7.20.0" "hunspell>=1.2.8" "python2>=2.7" 'libxaw' "neon>=0.28.6"
+ 'pango' 'nspr' 'libjpeg' 'libxrandr' 'libgl' 'libxslt' "icu>=4.6"
+ 'redland' 'hyphen' 'gcc-libs' 'sh' 'libtextcat' 'graphite'
+ 'hicolor-icon-theme' 'desktop-file-utils' 'shared-mime-info' 'gtk2' 'orbit2') # keep gtk2 for install script
+ #'java-runtime'
+ #'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'
+ 'hsqldb-java: default database format for OpenOffice.org'
+ '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'
+ 'libldap: to get profiles via ldap'
+ '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}/build/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/build/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
+
+ # # remove version in menu entry and make it visible
+# sed -i -e "/NoDisplay=true/d" ${pkgdir}/usr/share/applications/libreoffice-qstart.desktop
+# echo "Icon=startcenter" >> ${pkgdir}/usr/share/applications/libreoffice-qstart.desktop
+
+ # 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/basis3.4/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/basis3.4/share/psprint/
+ ln -vsf /etc/libreoffice/psprint.conf .
+
+ #fix http://bugs.archlinux.org/task/17656
+ find ${pkgdir} -perm 444 -exec ls -lh {} \;
+ find ${pkgdir} -perm 444 -exec chmod 644 {} \;
+ find ${pkgdir} -perm 555 -exec ls -lh {} \;
+ find ${pkgdir} -perm 555 -exec chmod 755 {} \;
+}
+
+package_libreoffice-base() {
+ pkgdesc="GUI Spreadsheet Applicationdatabase front-end for LibreOffice. Allows creation and management of databases through a GUI."
+ depends=('libreoffice-common')
+ optdepends=()
+ backup=()
+ groups=('libreoffice')
+ replaces=('libreoffice')
+
+ # create directories from *list.txt file
+ for directory in `grep ^%dir ${srcdir}/build/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/build/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-calc() {
+ pkgdesc="Spreadsheet application for LibreOffice."
+ depends=('libreoffice-common' 'lpsolve' )
+ optdepends=()
+ backup=()
+ groups=('libreoffice')
+ replaces=('libreoffice')
+
+ # create directories from *list.txt file
+ for directory in `grep ^%dir ${srcdir}/build/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/build/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."
+ depends=('libreoffice-common')
+ optdepends=()
+ backup=()
+ groups=('libreoffice')
+ replaces=('libreoffice')
+
+ # create directories from *list.txt file
+ for directory in `grep ^%dir ${srcdir}/build/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/build/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' 'dbus-glib')
+ optdepends=()
+ backup=()
+ groups=('libreoffice')
+
+ # create directories from *list.txt file
+ for directory in `grep ^%dir ${srcdir}/build/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/build/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."
+ 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}/build/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/build/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}/build/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/build/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}/build/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/build/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}/build/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/build/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 ArchLinux LibreOffice installation paths
+ sed -i -e "s,@OO_SDK_NAME@,libreoffice-sdk," \
+ -e "s,@OO_SDK_HOME@,/usr/lib/libreoffice/basis3.4/sdk," \
+ -e "s,@OFFICE_HOME@,/usr/lib/libreoffice," \
+ -e "s,@OFFICE_BASE_HOME@,/usr/lib/libreoffice/basis3.4," \
+ -e "s,@OO_SDK_URE_HOME@,/usr/lib/libreoffice/ure," \
+ -e "s,@OO_SDK_MAKE_HOME@,/usr/bin," \
+ -e "s,@OO_SDK_ZIP_HOME@,/usr/bin," \
+ -e "s,@OO_SDK_CPP_HOME@,/usr/bin," \
+ -e "s,@OO_SDK_CC_55_OR_HIGHER@,," \
+ -e "s,@OO_SDK_JAVA_HOME@,\$J2SDKDIR," \
+ -e "s,@OO_SDK_OUTPUT_DIR@,\$HOME," \
+ -e "s,@SDK_AUTO_DEPLOYMENT@,NO," ${pkgdir}/usr/lib/libreoffice/basis3.4/sdk/setsdkenv_unix.{csh,sh}.in
+}
+
+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}/build/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/build/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/basis3.4/sdk/examples -type f -exec chmod -x {} \;
+}
+
+package_libreoffice-writer() {
+ pkgdesc="Word Processor Applicationfor LibreOffice."
+ 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}/build/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/build/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}/build/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/build/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-barcode() {
+
+ pkgdesc="This extension generates UPC-A, EAN-13, ISBN and JAN barcodes in Draw "
+ #arch=('any')
+ depends=('libreoffice-common')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/7e7efc5d4a03126bb9ae3ae9aa2c4e87-Barcode_1.3.1.0.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/Barcode
+ chmod o-w -R ${pkgdir}/usr/lib/libreoffice/share/extensions/Barcode
+}
+
+package_libreoffice-extension-diagram() {
+
+ pkgdesc="An OOo Draw and Impress extension that creates your favorite diagrams with a few clicks"
+ #arch=('any')
+ depends=('libreoffice-common' 'java-environment')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/41c9b65ad60af4b3255bbecdfef11736-Diagram_1.1.0.0.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/diagram
+}
+
+package_libreoffice-extension-google-docs() {
+
+ pkgdesc="Google Documents extension for LibreOffice"
+ #arch=('any')
+ depends=('libreoffice-common' 'java-environment')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/dbaafd21de055e582d92d7d32fe9da13-gdocs_2.3.1.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/google-docs
+}
+
+package_libreoffice-extension-hunart() {
+
+ pkgdesc="Hungarian cross-reference toolbar extension"
+ #arch=('any')
+ depends=('libreoffice-common')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/b632bdd25649cc4067bcb410bae23d2b-hunart_0.3.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/hunart
+}
+
+#package_libreoffice-extension-lightproof() {
+
+# pkgdesc="Lightproof extension for LibreOffice"
+ #arch=('any')
+# depends=('libreoffice-common')
+# groups=('libreoffice-extensions')
+
+# install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+# unzip -q ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/Lightproof.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/lightproof
+#}
+
+#package_libreoffice-extension-mysql-connector() {
+
+# pkgdesc="MySQL Connector extension for LibreOffice"
+ #arch=('any')
+# depends=('libreoffice-common')
+# groups=('libreoffice-extensions')
+
+# install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+# unzip -q ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/Mysql-connector.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/mysql-connector
+#}
+
+package_libreoffice-extension-nlpsolver() {
+
+ pkgdesc="This extension integrates into Calc and offers new Solver engines to use for optimizing nonlinear programming models"
+ #arch=('any')
+ depends=('libreoffice-common' 'java-environment')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/NLPSolver.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/nlpsolver
+}
+
+package_libreoffice-extension-ct2n() {
+
+ pkgdesc="This extension enables you to convert text-cells in Calc with numbers and dates, to real numbers and dates."
+ #arch=('any')
+ depends=('libreoffice-common')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/ConvertTextToNumber.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/ct2n
+}
+
+package_libreoffice-extension-numbertext() {
+
+ pkgdesc="NUMBERTEXT/MONEYTEXT extensions"
+ #arch=('any')
+ depends=('libreoffice-common')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/b8cbca7b3363e6ca2d02bc0ba2b63904-numbertext_0.9.4.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/numbertext
+}
+
+package_libreoffice-extension-oooblogger() {
+
+ pkgdesc="An extensions for blogging"
+ #arch=('any')
+ depends=('libreoffice-common' 'coreutils' 'python')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/b7b2d0e04e142f26dd96119c80757d1f-oooblogger_0.1.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/oooblogger
+}
+
+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}/build/solver/${_OFFICEUPD}/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}/build/solver/${_OFFICEUPD}/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}/build/solver/${_OFFICEUPD}/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}/build/solver/${_OFFICEUPD}/unxlng*/bin/report-builder.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/report-builder
+}
+
+package_libreoffice-extension-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/share/extensions
+ unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/script-provider-for-beanshell.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/script-provider-for-beanshell
+}
+
+package_libreoffice-extension-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/share/extensions
+ unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/script-provider-for-javascript.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/script-provider-for-javascript
+}
+
+package_libreoffice-extension-scripting-python() {
+
+ pkgdesc="LibreOffice extension - Enables support for scripts in Python"
+ depends=('libreoffice-common' 'python')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/script-provider-for-python.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/script-provider-for-python
+}
+
+package_libreoffice-extension-typo() {
+
+ pkgdesc="Typography toolbar extension"
+ #arch=('any')
+ depends=('libreoffice-common')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/9d60b6cfa3ef1926848710bbcd11115b-typo_0.4.2.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/typo
+ find ${pkgdir} -type d -exec chmod 755 {} \;
+ #chmod o+r -R ${pkgdir}/usr/lib/libreoffice/share/extensions/typo
+}
+
+package_libreoffice-extension-validator() {
+
+ pkgdesc="Validator extension for LibreOffice"
+ #arch=('any')
+ depends=('libreoffice-common' 'java-environment')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/bbdd5639ada63e3130761daaecae1a10-Validator_1.1.0.0.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/validator
+}
+
+package_libreoffice-extension-wiki-publisher() {
+
+ pkgdesc="This extension enables you to create Wiki articles on MediaWiki servers without having to know the syntax of the MediaWiki markup language"
+ #arch=('any')
+ depends=('libreoffice-common' 'java-environment')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/wiki-publisher.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/wiki-publisher
+}
+
+package_libreoffice-extension-watch-window() {
+
+ pkgdesc="A OOo Calc extension to add a Watch Window, which keeps the value of the monitored cell on the screen."
+ #arch=('any')
+ depends=('libreoffice-common' 'java-environment')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/23bd75552206dfcd8fd4e29137dcac84-WatchWindow_1.2.0.0.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/watch-window
+}
diff --git a/testing/libreoffice/PKGBUILD.next_stable b/testing/libreoffice/PKGBUILD.next_stable
new file mode 100644
index 000000000..1005760ac
--- /dev/null
+++ b/testing/libreoffice/PKGBUILD.next_stable
@@ -0,0 +1,924 @@
+# $Id: PKGBUILD 142692 2011-11-12 20:22:14Z ibiru $
+# 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-extension-barcode' #
+# 'libreoffice-extension-diagram'
+# 'libreoffice-extension-google-docs'
+# 'libreoffice-extension-hunart'
+ #'libreoffice-extension-lightproof' # no source integration
+ #'libreoffice-extension-mysql-connector' # missing libmysqlcppconn-dev configure: error: mysql_driver.h not found. install MySQL C++ Connectivity
+# 'libreoffice-extension-nlpsolver'
+# 'libreoffice-extension-ct2n'
+# 'libreoffice-extension-numbertext'
+# 'libreoffice-extension-oooblogger'
+ 'libreoffice-extension-pdfimport'
+ 'libreoffice-extension-presenter-screen'
+ 'libreoffice-extension-presentation-minimizer'
+ 'libreoffice-extension-report-builder'
+# 'libreoffice-extension-scripting-beanshell'
+# 'libreoffice-extension-scripting-javascript'
+# 'libreoffice-extension-scripting-python'
+# 'libreoffice-extension-typo'
+# 'libreoffice-extension-validator'
+# 'libreoffice-extension-watch-window'
+# 'libreoffice-extension-wiki-publisher'
+)
+_LOver=3.5.0.0
+pkgver=3.5.0beta1
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('LGPL3')
+url="http://www.libreoffice.org/"
+makedepends=( # makedepends
+ 'sane' 'perl-archive-zip' 'zip' 'unzip' 'unixodbc' 'hsqldb-java' 'boost' #'xulrunner'
+ 'apache-ant' 'gperf' 'poppler>=0.18.0' 'kdelibs' 'gconf' 'cppunit' #'libmysqlclient'
+ 'beanshell' 'vigra' 'lucene' 'junit' 'libmythes' 'libwpg' 'imagemagick' # 'libldap'
+ 'mesa' 'gstreamer0.10-base' 'java-environment' 'zenity' # for build icon :D
+ #'saxon' - currently broken
+ # the depends from libreoffice main pkg
+ "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' "icu>=4.6" 'libxslt' 'librsvg'
+ 'redland' 'hyphen' 'lpsolve' 'gcc-libs' 'sh' 'libtextcat' 'graphite'
+ 'hicolor-icon-theme' 'desktop-file-utils' 'shared-mime-info' 'gtk2' 'orbit2' 'translate-toolkit' # keep gtk2 for install script
+ '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.bz2
+ ${_additional_source_url}/8f107ffb3fc9d9b920b7bbd0bc79c7e8-libvisio-0.0.10.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}/18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz
+ ${_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
+# ${_additional_source_url}/451ccf439a36a568653b024534669971-ConvertTextToNumber-1.3.2.oxt
+# http://ooo.itc.hu/oxygenoffice/download/libreoffice/4a433efb6d385264ebc1d5513782d51c-SmART_0.9.4.oxt
+# http://ooo.itc.hu/oxygenoffice/download/libreoffice/7e7efc5d4a03126bb9ae3ae9aa2c4e87-Barcode_1.3.1.0.oxt
+# http://ooo.itc.hu/oxygenoffice/download/libreoffice/41c9b65ad60af4b3255bbecdfef11736-Diagram_1.1.0.0.oxt
+# http://ooo.itc.hu/oxygenoffice/download/libreoffice/bbdd5639ada63e3130761daaecae1a10-Validator_1.1.0.0.oxt
+# http://ooo.itc.hu/oxygenoffice/download/libreoffice/23bd75552206dfcd8fd4e29137dcac84-WatchWindow_1.2.0.0.oxt
+# http://ooo.itc.hu/oxygenoffice/download/libreoffice/b8cbca7b3363e6ca2d02bc0ba2b63904-numbertext_0.9.4.oxt
+# http://ooo.itc.hu/oxygenoffice/download/libreoffice/b632bdd25649cc4067bcb410bae23d2b-hunart_0.3.oxt
+# http://ooo.itc.hu/oxygenoffice/download/libreoffice/9d60b6cfa3ef1926848710bbcd11115b-typo_0.4.2.oxt
+# http://ooo.itc.hu/oxygenoffice/download/libreoffice/dbaafd21de055e582d92d7d32fe9da13-gdocs_2.3.1.oxt
+# http://ooo.itc.hu/oxygenoffice/download/libreoffice/b7b2d0e04e142f26dd96119c80757d1f-oooblogger_0.1.oxt
+# buildfix_boost.diff
+# buildfix_ct2n.diff
+# vbahelper.visibility.patch
+# scp2-more-reasonable-file-access-rights.diff
+# oracle-recognition.diff::http://cgit.freedesktop.org/libreoffice/core/patch/?id=549e54fb2f8113502743c443d6deadfe648dede1
+# RemovetheoslSecuritygetHomeDircheck.diff::http://cgit.freedesktop.org/libreoffice/ure/patch/?id=bc9b86940a707e9e2e1076f2954f38075398b5d7
+)
+
+noextract=(8f107ffb3fc9d9b920b7bbd0bc79c7e8-libvisio-0.0.10.tar.bz2
+ 185d60944ea767075d27247c3162b3bc-unowinreg.dll
+ 0ff7d225d087793c8c2c680d77aac3e7-mdds_0.5.3.tar.bz2
+ ada24d37d8d638b3d8a9985e80bc2978-source-9.0.0.7-bj.zip
+ 798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
+ 1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz
+ fdb27bfe2dbe2e7b57ae194d9bf36bab-SampleICC-1.3.2.tar.gz
+ 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
+# 18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz
+ #4a433efb6d385264ebc1d5513782d51c-SmART_0.9.4.oxt
+ #7e7efc5d4a03126bb9ae3ae9aa2c4e87-Barcode_1.3.1.0.oxt
+ #41c9b65ad60af4b3255bbecdfef11736-Diagram_1.1.0.0.oxt
+ #451ccf439a36a568653b024534669971-ConvertTextToNumber-1.3.2.oxt
+ #bbdd5639ada63e3130761daaecae1a10-Validator_1.1.0.0.oxt
+ #23bd75552206dfcd8fd4e29137dcac84-WatchWindow_1.2.0.0.oxt
+ #b8cbca7b3363e6ca2d02bc0ba2b63904-numbertext_0.9.4.oxt
+ #b632bdd25649cc4067bcb410bae23d2b-hunart_0.3.oxt
+ #9d60b6cfa3ef1926848710bbcd11115b-typo_0.4.2.oxt
+ #dbaafd21de055e582d92d7d32fe9da13-gdocs_2.3.1.oxt
+ #b7b2d0e04e142f26dd96119c80757d1f-oooblogger_0.1.oxt
+)
+md5sums=('bf6ce92d8d69f1dec4836a7249e10436'
+ 'a0b19441245d7627c299d7014d110b32'
+ 'b9dee0572120c87906ed6e2fb4696b69'
+ '8f107ffb3fc9d9b920b7bbd0bc79c7e8'
+ '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')
+
+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 .
+
+# ln -s ${srcdir}/ext_sources/*Barcode* solver/unxlngx6.pro/bin/Barcode.oxt
+# ln -s ${srcdir}/ext_sources/*SmART* solver/unxlngx6.pro/bin/SmART.oxt
+# ln -s ${srcdir}/ext_sources/*gdocs* solver/unxlngx6.pro/bin/gdocs.oxt
+# ln -s ${srcdir}/ext_sources/*hunart* solver/unxlngx6.pro/bin/hunart.oxt
+# ln -s ${srcdir}/ext_sources/*numbertext* solver/unxlngx6.pro/bin/numbertext.oxt
+# ln -s ${srcdir}/ext_sources/*oooblogger* solver/unxlngx6.pro/bin/oooblogger.oxt
+# ln -s ${srcdir}/ext_sources/*typo* solver/unxlngx6.pro/bin/typo.oxt
+# ln -s ${srcdir}/ext_sources/*Validator* solver/unxlngx6.pro/bin/Validator.oxt
+# ln -s ${srcdir}/ext_sources/*WatchWindow* solver/unxlngx6.pro/bin/WatchWindow.oxt
+
+ # buildfixes & bugfixes
+ #patch -Np1 -i ${srcdir}/buildfix_boost.diff
+# patch -Np1 -i ${srcdir}/buildfix_ct2n.diff
+# patch -Np0 -i ${srcdir}/vbahelper.visibility.patch
+# patch -Np0 -i ${srcdir}/scp2-more-reasonable-file-access-rights.diff
+# patch -Np1 -i ${srcdir}/oracle-recognition.diff
+# patch -Np1 -i ${srcdir}/RemovetheoslSecuritygetHomeDircheck.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
+
+ # http://wiki.documentfoundation.org/Development/How_to_build/Configure_options
+
+# if [ "$CARCH" = "x86_64" ]; then
+# EXTRAOPTS="--without-stlport"
+# else
+# EXTRAOPTS="--with-stlport" # --without-system-boost"
+# # # avoid problems with ixion for now
+# sed -i '/fields-table-formula.diff/d' patches/dev300/apply || return 1
+# fi
+
+ # needed for 0003-distro-install-fix-en-US-only-installation.patch
+# autoconf -f
+
+ # non-SMP test build
+# export MAKEFLAGS="-j1"
+ #./configure --with-build-version="${_LOver} ArchLinux build-${pkgrel}" --with-vendor="ArchLinux" \
+ ./autogen.sh --with-build-version="${_LOver} ArchLinux build-${pkgrel}" --with-vendor="ArchLinux" \
+ --with-unix-wrapper="libreoffice" \
+ --enable-split-app-modules \
+ --with-max-jobs=${MAKEFLAGS/-j/} --with-num-cpus=${MAKEFLAGS/-j/} \
+ --with-external-tar="${srcdir}/ext_sources" \
+ --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-opengl\
+ --disable-ext-lightproof \
+ --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|| return 1
+
+# --enable-ext-barcode \
+# --enable-ext-diagram \
+# --enable-ext-google-docs \
+# --enable-ext-hunart \
+# --enable-ext-nlpsolver \
+# --enable-ext-ct2n \
+# --enable-ext-numbertext \
+# --enable-ext-oooblogger \
+# --enable-ext-pdfimport \
+# --enable-ext-presenter-console \
+# --enable-ext-presenter-minimizer \
+# --enable-ext-report-builder \
+# --enable-ext-scripting-beanshell \
+# --enable-ext-scripting-javascript \
+# --enable-ext-typo \
+# --enable-ext-validator \
+# --enable-ext-watch-window \
+# --enable-ext-wiki-publisher \
+
+# --disable-mozilla \
+# --enable-ldap \
+# --with-openldap\
+
+# --with-system-mozilla\
+
+#--with-install-dirname="${pkgbase}"
+# --enable-cairo\
+# --enable-ext-scripting-python \
+# --with-system-libtextcat \
+# --with-external-libtextcat-data \
+# --with-system-xrender-headers\
+
+
+
+
+
+#--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
+ unset MAKEFLAGS
+ ./bootstrap
+ 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=${pkgbase}.install
+ depends=('libreoffice-langpack' "curl>=7.20.0" "hunspell>=1.2.8" "python2>=2.7" 'libxaw' "neon>=0.28.6"
+ 'pango' 'nspr' 'libjpeg' 'libxrandr' 'libgl' 'libxslt' "icu>=4.6" 'librsvg'
+ 'redland' 'hyphen' 'gcc-libs' 'sh' 'libtextcat' 'graphite'
+ 'hicolor-icon-theme' 'desktop-file-utils' 'shared-mime-info' 'gtk2' 'orbit2') # keep gtk2 for install script
+ #'java-runtime'
+ #'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'
+ 'hsqldb-java: default database format for OpenOffice.org'
+ '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'
+ #'libldap: to get profiles via ldap'
+ '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
+
+ # # remove version in menu entry and make it visible
+# sed -i -e "/NoDisplay=true/d" ${pkgdir}/usr/share/applications/libreoffice-qstart.desktop
+# echo "Icon=startcenter" >> ${pkgdir}/usr/share/applications/libreoffice-qstart.desktop
+
+ # 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 .
+
+ #fix http://bugs.archlinux.org/task/17656
+ find ${pkgdir} -perm 444 -exec ls -lh {} \;
+ find ${pkgdir} -perm 444 -exec chmod 644 {} \;
+ find ${pkgdir} -perm 555 -exec ls -lh {} \;
+ find ${pkgdir} -perm 555 -exec chmod 755 {} \;
+}
+
+package_libreoffice-base() {
+ pkgdesc="GUI Spreadsheet Applicationdatabase front-end for LibreOffice. Allows creation and management of databases through a GUI."
+ 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/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-calc() {
+ pkgdesc="Spreadsheet application for LibreOffice."
+ 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."
+ 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' 'dbus-glib' 'gtk3')
+ 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."
+ 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 ArchLinux LibreOffice installation paths
+ sed -i -e "s,@OO_SDK_NAME@,libreoffice-sdk," \
+ -e "s,@OO_SDK_HOME@,/usr/lib/libreoffice/sdk," \
+ -e "s,@OFFICE_HOME@,/usr/lib/libreoffice," \
+ -e "s,@OFFICE_BASE_HOME@,/usr/lib/libreoffice," \
+ -e "s,@OO_SDK_URE_HOME@,/usr/lib/libreoffice/ure," \
+ -e "s,@OO_SDK_MAKE_HOME@,/usr/bin," \
+ -e "s,@OO_SDK_ZIP_HOME@,/usr/bin," \
+ -e "s,@OO_SDK_CPP_HOME@,/usr/bin," \
+ -e "s,@OO_SDK_CC_55_OR_HIGHER@,," \
+ -e "s,@OO_SDK_JAVA_HOME@,\$J2SDKDIR," \
+ -e "s,@OO_SDK_OUTPUT_DIR@,\$HOME," \
+ -e "s,@SDK_AUTO_DEPLOYMENT@,NO," ${pkgdir}/usr/lib/libreoffice/sdk/setsdkenv_unix.{csh,sh}.in
+}
+
+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."
+ 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-barcode() {
+
+ pkgdesc="This extension generates UPC-A, EAN-13, ISBN and JAN barcodes in Draw "
+ #arch=('any')
+ depends=('libreoffice-common')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/7e7efc5d4a03126bb9ae3ae9aa2c4e87-Barcode_1.3.1.0.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/Barcode
+ chmod o-w -R ${pkgdir}/usr/lib/libreoffice/share/extensions/Barcode
+}
+
+package_libreoffice-extension-diagram() {
+
+ pkgdesc="An OOo Draw and Impress extension that creates your favorite diagrams with a few clicks"
+ #arch=('any')
+ depends=('libreoffice-common' 'java-environment')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/41c9b65ad60af4b3255bbecdfef11736-Diagram_1.1.0.0.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/diagram
+}
+
+package_libreoffice-extension-google-docs() {
+
+ pkgdesc="Google Documents extension for LibreOffice"
+ #arch=('any')
+ depends=('libreoffice-common' 'java-environment')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/dbaafd21de055e582d92d7d32fe9da13-gdocs_2.3.1.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/google-docs
+}
+
+package_libreoffice-extension-hunart() {
+
+ pkgdesc="Hungarian cross-reference toolbar extension"
+ #arch=('any')
+ depends=('libreoffice-common')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/b632bdd25649cc4067bcb410bae23d2b-hunart_0.3.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/hunart
+}
+
+#package_libreoffice-extension-lightproof() {
+
+# pkgdesc="Lightproof extension for LibreOffice"
+ #arch=('any')
+# depends=('libreoffice-common')
+# groups=('libreoffice-extensions')
+
+# install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+# unzip -q ${srcdir}/${pkgbase}-libreoffice-core-$_LOver-${_LOver}/libreoffice-core-$_LOver/libreoffice-${_LOver}/solver/unxlng*/bin/Lightproof.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/lightproof
+#}
+
+#package_libreoffice-extension-mysql-connector() {
+
+# pkgdesc="MySQL Connector extension for LibreOffice"
+ #arch=('any')
+# depends=('libreoffice-common')
+# groups=('libreoffice-extensions')
+
+# install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+# unzip -q ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/unxlng*/bin/Mysql-connector.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/mysql-connector
+#}
+
+package_libreoffice-extension-nlpsolver() {
+
+ pkgdesc="This extension integrates into Calc and offers new Solver engines to use for optimizing nonlinear programming models"
+ #arch=('any')
+ depends=('libreoffice-common' 'java-environment')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/libreoffice-core-$_LOver/solver/unxlng*/bin/NLPSolver.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/nlpsolver
+}
+
+package_libreoffice-extension-ct2n() {
+
+ pkgdesc="This extension enables you to convert text-cells in Calc with numbers and dates, to real numbers and dates."
+ #arch=('any')
+ depends=('libreoffice-common')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/libreoffice-core-$_LOver/solver/unxlng*/bin/ConvertTextToNumber.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/ct2n
+}
+
+package_libreoffice-extension-numbertext() {
+
+ pkgdesc="NUMBERTEXT/MONEYTEXT extensions"
+ #arch=('any')
+ depends=('libreoffice-common')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/b8cbca7b3363e6ca2d02bc0ba2b63904-numbertext_0.9.4.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/numbertext
+}
+
+package_libreoffice-extension-oooblogger() {
+
+ pkgdesc="An extensions for blogging"
+ #arch=('any')
+ depends=('libreoffice-common' 'coreutils' 'python')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/b7b2d0e04e142f26dd96119c80757d1f-oooblogger_0.1.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/oooblogger
+}
+
+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-extension-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/share/extensions
+ unzip -q ${srcdir}/libreoffice-core-$_LOver/solver/unxlng*/bin/script-provider-for-beanshell.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/script-provider-for-beanshell
+}
+
+package_libreoffice-extension-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/share/extensions
+ unzip -q ${srcdir}/libreoffice-core-$_LOver/solver/unxlng*/bin/script-provider-for-javascript.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/script-provider-for-javascript
+}
+
+package_libreoffice-extension-scripting-python() {
+
+ pkgdesc="LibreOffice extension - Enables support for scripts in Python"
+ depends=('libreoffice-common' 'python')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/libreoffice-core-$_LOver/solver/unxlng*/bin/script-provider-for-python.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/script-provider-for-python
+}
+
+package_libreoffice-extension-typo() {
+
+ pkgdesc="Typography toolbar extension"
+ #arch=('any')
+ depends=('libreoffice-common')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/9d60b6cfa3ef1926848710bbcd11115b-typo_0.4.2.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/typo
+ find ${pkgdir} -type d -exec chmod 755 {} \;
+ #chmod o+r -R ${pkgdir}/usr/lib/libreoffice/share/extensions/typo
+}
+
+package_libreoffice-extension-validator() {
+
+ pkgdesc="Validator extension for LibreOffice"
+ #arch=('any')
+ depends=('libreoffice-common' 'java-environment')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/bbdd5639ada63e3130761daaecae1a10-Validator_1.1.0.0.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/validator
+}
+
+package_libreoffice-extension-wiki-publisher() {
+
+ pkgdesc="This extension enables you to create Wiki articles on MediaWiki servers without having to know the syntax of the MediaWiki markup language"
+ #arch=('any')
+ depends=('libreoffice-common' 'java-environment')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/libreoffice-core-$_LOver/solver/unxlng*/bin/wiki-publisher.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/wiki-publisher
+}
+
+package_libreoffice-extension-watch-window() {
+
+ pkgdesc="A OOo Calc extension to add a Watch Window, which keeps the value of the monitored cell on the screen."
+ #arch=('any')
+ depends=('libreoffice-common' 'java-environment')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ unzip -q ${srcdir}/23bd75552206dfcd8fd4e29137dcac84-WatchWindow_1.2.0.0.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/watch-window
+}
diff --git a/testing/libreoffice/buildfix_boost.diff b/testing/libreoffice/buildfix_boost.diff
new file mode 100644
index 000000000..d8608d0d4
--- /dev/null
+++ b/testing/libreoffice/buildfix_boost.diff
@@ -0,0 +1,40 @@
+From bae4fdbd105142cd3f317445eddc826da529a732 Mon Sep 17 00:00:00 2001
+From: Caolán McNamara <caolanm@redhat.com>
+Date: Tue, 05 Apr 2011 14:07:02 +0000
+Subject: silence some more of that annoying gcc#47679
+
+---
+diff --git a/boost/boost.gcc47679.patch b/boost/boost.gcc47679.patch
+index 1c804aa..9b33a5f 100644
+--- a/boost/boost.gcc47679.patch
++++ b/boost/boost.gcc47679.patch
+@@ -36,3 +36,26 @@
+ template <int MaxDigits>
+ inline bool allow_more_digits(std::size_t i)
+ {
++--- misc/boost_1_44_0/boost/optional/optional.hpp 2011-04-05 13:19:01.223587256 +0100
+++++ misc/build/boost_1_44_0/boost/optional/optional.hpp 2011-04-05 13:19:01.223587256 +0100
++@@ -31,6 +31,8 @@
++
++ #include "boost/optional/optional_fwd.hpp"
++
+++#include <string.h>
+++
++ #if BOOST_WORKAROUND(BOOST_MSVC, == 1200)
++ // VC6.0 has the following bug:
++ // When a templated assignment operator exist, an implicit conversion
++@@ -114,6 +116,11 @@
++
++ public:
++
+++ aligned_storage()
+++ {
+++ memset(&dummy_, 0, sizeof(dummy_));
+++ }
+++
++ void const* address() const { return &dummy_.data[0]; }
++ void * address() { return &dummy_.data[0]; }
++ } ;
+--
+cgit v0.8.3-6-g21f6
+
diff --git a/testing/libreoffice/buildfix_ct2n.diff b/testing/libreoffice/buildfix_ct2n.diff
new file mode 100644
index 000000000..979587f79
--- /dev/null
+++ b/testing/libreoffice/buildfix_ct2n.diff
@@ -0,0 +1,17 @@
+From 90de903b28cb1884042be0eae3f8a55458c5bc29 Mon Sep 17 00:00:00 2001
+From: Caolán McNamara <caolanm@redhat.com>
+Date: Tue, 12 Apr 2011 19:35:51 +0000
+Subject: duplicate NULLs
+
+---
+diff --git a/ct2n/prj/build.lst b/ct2n/prj/build.lst
+index 91f44b7..714d926 100644
+--- a/ct2n/prj/build.lst
++++ b/ct2n/prj/build.lst
+@@ -1,3 +1,3 @@
+-ct2n ct2n : solenv NULL NULL
++ct2n ct2n : solenv NULL
+ ct2n ct2n usr1 - all ct2n_mkout NULL
+ ct2n ct2n nmake - all ct2n_ct2n NULL
+--
+cgit v0.8.3-6-g21f6
diff --git a/testing/libreoffice/gcc462_buildfix.diff b/testing/libreoffice/gcc462_buildfix.diff
new file mode 100644
index 000000000..c19e520dc
--- /dev/null
+++ b/testing/libreoffice/gcc462_buildfix.diff
@@ -0,0 +1,138 @@
+--- ./framework/source/accelerators/acceleratorcache.cxx.orig 2011-12-15 15:08:41.329168423 -0200
++++ ./framework/source/accelerators/acceleratorcache.cxx 2011-12-15 15:17:59.473190664 -0200
+@@ -61,7 +61,7 @@ AcceleratorCache::AcceleratorCache()
+ AcceleratorCache::AcceleratorCache(const AcceleratorCache& rCopy)
+ : ThreadHelpBase(&Application::GetSolarMutex())
+ {
+- m_lCommand2Keys = rCopy.m_lCommand2Keys;
++ m_lCommand2Keys = const_cast< framework::BaseHash<comphelper::SequenceAsVector<com::sun::star::awt::KeyEvent> >& > (rCopy.m_lCommand2Keys);
+ m_lKey2Commands = rCopy.m_lKey2Commands;
+ }
+
+@@ -78,7 +78,7 @@ void AcceleratorCache::takeOver(const Ac
+ // SAFE -> ----------------------------------
+ WriteGuard aWriteLock(m_aLock);
+
+- m_lCommand2Keys = rCopy.m_lCommand2Keys;
++ m_lCommand2Keys = const_cast< framework::BaseHash<comphelper::SequenceAsVector<com::sun::star::awt::KeyEvent> >& > (rCopy.m_lCommand2Keys);
+ m_lKey2Commands = rCopy.m_lKey2Commands;
+
+ aWriteLock.unlock();
+--- ./framework/source/loadenv/loadenv.cxx.orig 2011-12-15 15:08:15.771487938 -0200
++++ ./framework/source/loadenv/loadenv.cxx 2011-12-15 15:19:06.038358483 -0200
+@@ -255,7 +255,8 @@ void LoadEnv::initializeLoading(const ::
+ // take over all new parameters.
+ m_xTargetFrame.clear();
+ m_xBaseFrame = xBaseFrame ;
+- m_lMediaDescriptor = impl_mergeMediaDescriptorWithMightExistingModelArgs(lMediaDescriptor);
++ ::comphelper::MediaDescriptor tmp = impl_mergeMediaDescriptorWithMightExistingModelArgs(lMediaDescriptor);
++ m_lMediaDescriptor = tmp;
+ m_sTarget = sTarget ;
+ m_nSearchFlags = nSearchFlags ;
+ m_eFeature = eFeature ;
+--- ./framework/source/uiconfiguration/uiconfigurationmanagerimpl.hxx.orig 2011-12-15 15:08:49.033072112 -0200
++++ ./framework/source/uiconfiguration/uiconfigurationmanagerimpl.hxx 2011-12-15 15:11:07.209344668 -0200
+@@ -175,6 +175,15 @@ namespace framework
+ sal_Int16 nElementType;
+ UIElementDataHashMap aElementsHashMap;
+ com::sun::star::uno::Reference< com::sun::star::embed::XStorage > xStorage;
++ UIElementType& operator=(const UIElementType& rRight) {
++ bModified = rRight.bModified;
++ bLoaded = rRight.bLoaded;
++ bDefaultLayer = rRight.bDefaultLayer;
++ nElementType = rRight.nElementType;
++ aElementsHashMap = rRight.aElementsHashMap;
++ xStorage = rRight.xStorage;
++ return *this;
++ };
+ };
+
+ typedef ::std::vector< UIElementType > UIElementTypesVector;
+--- ./framework/inc/uiconfiguration/moduleuiconfigurationmanager.hxx.orig 2011-12-19 11:10:56.000000000 +0000
++++ ./framework/inc/uiconfiguration/moduleuiconfigurationmanager.hxx 2011-12-19 11:12:06.000000000 +0000
+@@ -185,6 +185,15 @@ namespace framework
+ sal_Int16 nElementType;
+ UIElementDataHashMap aElementsHashMap;
+ com::sun::star::uno::Reference< com::sun::star::embed::XStorage > xStorage;
++ UIElementType& operator=(const UIElementType& rRight) {
++ bModified = rRight.bModified;
++ bLoaded = rRight.bLoaded;
++ bDefaultLayer = rRight.bDefaultLayer;
++ nElementType = rRight.nElementType;
++ aElementsHashMap = rRight.aElementsHashMap;
++ xStorage = rRight.xStorage;
++ return *this;
++ };
+ };
+
+ typedef ::std::vector< UIElementType > UIElementTypesVector;
+--- ./framework/inc/uiconfiguration/uiconfigurationmanager.hxx.orig 2011-12-19 11:14:17.000000000 +0000
++++ ./framework/inc/uiconfiguration/uiconfigurationmanager.hxx 2011-12-19 11:15:16.000000000 +0000
+@@ -171,6 +171,15 @@ namespace framework
+ sal_Int16 nElementType;
+ UIElementDataHashMap aElementsHashMap;
+ com::sun::star::uno::Reference< com::sun::star::embed::XStorage > xStorage;
++ UIElementType& operator=(const UIElementType& rRight) {
++ bModified = rRight.bModified;
++ bLoaded = rRight.bLoaded;
++ bDefaultLayer = rRight.bDefaultLayer;
++ nElementType = rRight.nElementType;
++ aElementsHashMap = rRight.aElementsHashMap;
++ xStorage = rRight.xStorage;
++ return *this;
++ };
+ };
+
+ typedef ::std::vector< UIElementType > UIElementTypesVector;
+
+--- ./padmin/source/prtsetup.cxx.orig 2011-12-15 15:09:05.133870823 -0200
++++ ./padmin/source/prtsetup.cxx 2011-12-15 15:13:55.626239170 -0200
+@@ -813,7 +813,7 @@ extern "C" {
+
+ if( aDialog.Execute() )
+ {
+- rJobData = aDialog.getSetup();
++ rJobData = const_cast< ::psp::PrinterInfo & > ( aDialog.getSetup() );
+ nRet = 1;
+ }
+
+--- ./sfx2/source/doc/guisaveas.cxx.orig 2011-12-15 15:08:58.332955848 -0200
++++ ./sfx2/source/doc/guisaveas.cxx 2011-12-15 15:12:39.953185212 -0200
+@@ -731,7 +731,7 @@ sal_Int8 ModelData_Impl::CheckFilter( co
+ if ( aFilterName.getLength() )
+ m_pOwner->GetFilterConfiguration()->getByName( aFilterName ) >>= aFilterProps;
+
+- aFiltPropsHM = ::comphelper::SequenceAsHashMap( aFilterProps );
++ aFiltPropsHM << aFilterProps;
+ nFiltFlags = aFiltPropsHM.getUnpackedValueOrDefault( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Flags")), (sal_Int32)0 );
+ }
+
+--- ./framework/inc/classes/filtercachedata.hxx.orig 2011-12-17 13:14:22.102898902 +0000
++++ ./framework/inc/classes/filtercachedata.hxx 2011-12-17 13:17:51.524424012 +0000
+@@ -230,7 +230,7 @@
+ {
+ bPreferred = rCopy.bPreferred ;
+ sName = rCopy.sName ;
+- lUINames = rCopy.lUINames ;
++ lUINames = const_cast < framework::BaseHash<rtl::OUString>& > (rCopy.lUINames);
+ sMediaType = rCopy.sMediaType ;
+ sClipboardFormat = rCopy.sClipboardFormat;
+ nDocumentIconID = rCopy.nDocumentIconID ;
+@@ -298,7 +298,7 @@
+ nOrder = rCopy.nOrder ;
+ sName = rCopy.sName ;
+ sType = rCopy.sType ;
+- lUINames = rCopy.lUINames ;
++ lUINames = const_cast < framework::BaseHash<rtl::OUString>& > (rCopy.lUINames);
+ sDocumentService = rCopy.sDocumentService ;
+ sFilterService = rCopy.sFilterService ;
+ sUIComponent = rCopy.sUIComponent ;
+@@ -405,7 +405,7 @@
+ inline Loader& impl_copy( const Loader& rCopy )
+ {
+ sName = rCopy.sName ;
+- lUINames = rCopy.lUINames ;
++ lUINames = const_cast < framework::BaseHash<rtl::OUString>& > (rCopy.lUINames);
+ lTypes = rCopy.lTypes ;
+ return (*this);
+ }
diff --git a/testing/libreoffice/libreoffice.install b/testing/libreoffice/libreoffice.install
new file mode 100644
index 000000000..809472f89
--- /dev/null
+++ b/testing/libreoffice/libreoffice.install
@@ -0,0 +1,47 @@
+post_install() {
+
+gtk-update-icon-cache -f -q /usr/share/icons/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
+gtk-update-icon-cache -f -q /usr/share/icons/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
+gtk-update-icon-cache -f -q /usr/share/icons/hicolor
+update-mime-database usr/share/mime > /dev/null 2>&1
+}
diff --git a/testing/libreoffice/scp2-more-reasonable-file-access-rights.diff b/testing/libreoffice/scp2-more-reasonable-file-access-rights.diff
new file mode 100644
index 000000000..fd61cb4ca
--- /dev/null
+++ b/testing/libreoffice/scp2-more-reasonable-file-access-rights.diff
@@ -0,0 +1,15 @@
+--- scp2/inc/macros.inc.old 2011-05-18 17:51:47.000000000 +0200
++++ scp2/inc/macros.inc 2011-07-18 19:58:27.000000000 +0200
+@@ -92,10 +92,10 @@
+ #endif
+
+ #define BIN_FILE_BODY \
+- UnixRights = 555
++ UnixRights = 755
+
+ #define TXT_FILE_BODY \
+- UnixRights = 444
++ UnixRights = 644
+
+ #define USER_FILE_BODY \
+ UnixRights = 644
diff --git a/testing/libreoffice/vbahelper.visibility.patch b/testing/libreoffice/vbahelper.visibility.patch
new file mode 100644
index 000000000..5739100d0
--- /dev/null
+++ b/testing/libreoffice/vbahelper.visibility.patch
@@ -0,0 +1,33 @@
+--- vbahelper/inc/vbahelper/vbacollectionimpl.hxx 2011-01-28 20:27:51.507604173 +0000
++++ vbahelper/inc/vbahelper/vbacollectionimpl.hxx 2011-01-28 20:28:26.230045727 +0000
+@@ -238,7 +238,7 @@
+
+ // including a HelperInterface implementation
+ template< typename Ifc1 >
+-class ScVbaCollectionBase : public InheritedHelperInterfaceImpl< Ifc1 >
++class VBAHELPER_DLLPUBLIC ScVbaCollectionBase : public InheritedHelperInterfaceImpl< Ifc1 >
+ {
+ typedef InheritedHelperInterfaceImpl< Ifc1 > BaseColBase;
+ protected:
+--- sc/Library_vbaobj.mk
++++ sc/Library_vbaobj.mk
+@@ -118,7 +118,6 @@ $(eval $(call gb_Library_add_exception_objects,vbaobj,\
+ sc/source/ui/vba/vbaquerytable \
+ sc/source/ui/vba/vbarange \
+ sc/source/ui/vba/vbasheetobject \
+- sc/source/ui/vba/vbasheetobjects \
+ sc/source/ui/vba/vbastyle \
+ sc/source/ui/vba/vbastyles \
+ sc/source/ui/vba/vbatextboxshape \
+@@ -133,6 +132,11 @@ $(eval $(call gb_Library_add_exception_objects,vbaobj,\
+ sc/source/ui/vba/vbawsfunction \
+ ))
+
++$(eval $(call gb_Library_add_cxxobjects,vbaobj,\
++ sc/source/ui/vba/vbasheetobjects \
++ , $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
++))
++
+ ifneq (,$(filter LINUX DRAGONFLY OPENBSD FREEBSD NETBSD, $(OS)))
+ $(eval $(call gb_Library_set_ldflags,vbaobj,\
+ $$(LDFLAGS) \
diff --git a/testing/php/PKGBUILD b/testing/php/PKGBUILD
new file mode 100644
index 000000000..a449de573
--- /dev/null
+++ b/testing/php/PKGBUILD
@@ -0,0 +1,365 @@
+# $Id: PKGBUILD 145227 2011-12-19 18:04:16Z andrea $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=php
+pkgname=('php'
+ 'php-cgi'
+ 'php-apache'
+ 'php-fpm'
+ 'php-embed'
+ 'php-pear'
+ 'php-enchant'
+ 'php-gd'
+ 'php-intl'
+ 'php-ldap'
+ 'php-mcrypt'
+ 'php-mssql'
+ 'php-odbc'
+ 'php-pgsql'
+ 'php-pspell'
+ 'php-snmp'
+ 'php-sqlite'
+ 'php-tidy'
+ 'php-xsl')
+pkgver=5.3.8
+_suhosinver=5.3.7-0.9.10
+pkgrel=6
+arch=('i686' 'x86_64')
+license=('PHP')
+url='http://www.php.net'
+makedepends=('apache' 'imap' 'postgresql-libs' 'libldap' 'postfix'
+ 'sqlite3' 'unixodbc' 'net-snmp' 'libzip' 'enchant' 'file' 'freetds'
+ 'libmcrypt' 'tidyhtml' 'aspell' 'libltdl' 'libpng' 'libjpeg' 'icu'
+ 'curl' 'libxslt' 'openssl' 'bzip2' 'db' 'gmp' 'freetype2')
+source=("http://www.php.net/distributions/${pkgbase}-${pkgver}.tar.bz2"
+ "http://download.suhosin.org/suhosin-patch-${_suhosinver}.patch.gz"
+ "http://download.suhosin.org/suhosin-patch-${_suhosinver}.patch.gz.sig"
+ 'php.ini.patch' 'apache.conf' 'rc.d.php-fpm' 'php-fpm.conf.in.patch'
+ 'logrotate.d.php-fpm')
+md5sums=('704cd414a0565d905e1074ffdc1fadfb'
+ '08582e502fed8221c6577042ca45ddb8'
+ '5bf4473f658404aa9a97bf026ecef8e9'
+ '65606c606df97a0760dfe5aaf9893afc'
+ 'dec2cbaad64e3abf4f0ec70e1de4e8e9'
+ 'b01be5f816988fcee7e78225836e5e27'
+ '09005dabd90c48ddd392b3dbf05f8a82'
+ '07c4e412909ac65a44ec90e7a2c4bade')
+
+build() {
+ phpconfig="--srcdir=../${pkgbase}-${pkgver} \
+ --prefix=/usr \
+ --sysconfdir=/etc/php \
+ --localstatedir=/var \
+ --with-layout=GNU \
+ --with-config-file-path=/etc/php \
+ --with-config-file-scan-dir=/etc/php/conf.d \
+ --enable-inline-optimization \
+ --disable-debug \
+ --disable-rpath \
+ --disable-static \
+ --enable-shared \
+ --mandir=/usr/share/man \
+ --without-pear \
+ "
+
+ phpextensions="--enable-bcmath=shared \
+ --enable-calendar=shared \
+ --enable-dba=shared \
+ --enable-exif=shared \
+ --enable-ftp=shared \
+ --enable-gd-native-ttf \
+ --enable-intl=shared \
+ --enable-json=shared \
+ --enable-mbregex \
+ --enable-mbstring \
+ --enable-pdo \
+ --enable-phar=shared \
+ --enable-posix=shared \
+ --enable-session \
+ --enable-shmop=shared \
+ --enable-soap=shared \
+ --enable-sockets=shared \
+ --enable-sqlite-utf8 \
+ --enable-sysvmsg=shared \
+ --enable-sysvsem=shared \
+ --enable-sysvshm=shared \
+ --enable-xml \
+ --enable-zip=shared \
+ --with-bz2=shared \
+ --with-curl=shared \
+ --with-db4=/usr \
+ --with-enchant=shared,/usr \
+ --with-freetype-dir=shared,/usr \
+ --with-gd=shared \
+ --with-gdbm=shared \
+ --with-gettext=shared \
+ --with-gmp=shared \
+ --with-iconv=shared \
+ --with-icu-dir=/usr \
+ --with-imap-ssl=shared \
+ --with-imap=shared \
+ --with-jpeg-dir=shared,/usr \
+ --with-ldap=shared \
+ --with-ldap-sasl \
+ --with-mcrypt=shared \
+ --with-mhash \
+ --with-mssql=shared \
+ --with-mysql-sock=/var/run/mysqld/mysqld.sock \
+ --with-mysql=shared,mysqlnd \
+ --with-mysqli=shared,mysqlnd \
+ --with-openssl=shared \
+ --with-pcre-regex=/usr \
+ --with-pdo-mysql=shared,mysqlnd \
+ --with-pdo-odbc=shared,unixODBC,/usr \
+ --with-pdo-pgsql=shared \
+ --with-pdo-sqlite=shared,/usr \
+ --with-pgsql=shared \
+ --with-png-dir=shared,/usr \
+ --with-pspell=shared \
+ --with-regex=php \
+ --with-snmp=shared \
+ --with-sqlite3=shared,/usr \
+ --with-sqlite=shared \
+ --with-tidy=shared \
+ --with-unixODBC=shared,/usr \
+ --with-xmlrpc=shared \
+ --with-xsl=shared \
+ --with-zlib \
+ --without-db2 \
+ --without-db3 \
+ "
+
+ EXTENSION_DIR=/usr/lib/php/modules
+ export EXTENSION_DIR
+ PEAR_INSTALLDIR=/usr/share/pear
+ export PEAR_INSTALLDIR
+
+ cd ${srcdir}/${pkgbase}-${pkgver}
+
+ # apply suhosin patch
+ patch -p1 -i ${srcdir}/suhosin-patch-${_suhosinver}.patch
+
+ # adjust paths
+ patch -p0 -i ${srcdir}/php.ini.patch
+ patch -p0 -i ${srcdir}/php-fpm.conf.in.patch
+
+ # php
+ mkdir ${srcdir}/build-php
+ cd ${srcdir}/build-php
+ ln -s ../${pkgbase}-${pkgver}/configure
+ ./configure ${phpconfig} \
+ --disable-cgi \
+ --with-readline \
+ --enable-pcntl \
+ ${phpextensions}
+ make
+
+ # cgi and fcgi
+ # reuse the previous run; this will save us a lot of time
+ cp -a ${srcdir}/build-php ${srcdir}/build-cgi
+ cd ${srcdir}/build-cgi
+ ./configure ${phpconfig} \
+ --disable-cli \
+ --enable-cgi \
+ ${phpextensions}
+ make
+
+ # apache
+ cp -a ${srcdir}/build-php ${srcdir}/build-apache
+ cd ${srcdir}/build-apache
+ ./configure ${phpconfig} \
+ --disable-cli \
+ --with-apxs2 \
+ ${phpextensions}
+ make
+
+ # fpm
+ cp -a ${srcdir}/build-php ${srcdir}/build-fpm
+ cd ${srcdir}/build-fpm
+ ./configure ${phpconfig} \
+ --disable-cli \
+ --enable-fpm \
+ --with-fpm-user=http \
+ --with-fpm-group=http \
+ ${phpextensions}
+ make
+
+ # embed
+ cp -a ${srcdir}/build-php ${srcdir}/build-embed
+ cd ${srcdir}/build-embed
+ ./configure ${phpconfig} \
+ --disable-cli \
+ --enable-embed=shared \
+ ${phpextensions}
+ make
+
+ # pear
+ cp -a ${srcdir}/build-php ${srcdir}/build-pear
+ cd ${srcdir}/build-pear
+ ./configure ${phpconfig} \
+ --disable-cgi \
+ --with-readline \
+ --enable-pcntl \
+ --with-pear \
+ ${phpextensions}
+ make
+}
+
+# check() {
+# cd ${srcdir}/build-php
+# make test
+# }
+
+package_php() {
+ pkgdesc='An HTML-embedded scripting language'
+ depends=('pcre' 'libxml2' 'bzip2' 'curl')
+ replaces=('php-fileinfo' 'php-gmp' 'php-curl')
+ provides=('php-fileinfo' 'php-gmp' 'php-curl')
+ conflicts=('php-fileinfo' 'php-gmp' 'php-curl')
+ backup=('etc/php/php.ini')
+
+ cd ${srcdir}/build-php
+ make -j1 INSTALL_ROOT=${pkgdir} install
+ install -d -m755 ${pkgdir}/usr/share/pear
+ # install php.ini
+ install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/php.ini-production ${pkgdir}/etc/php/php.ini
+ install -d -m755 ${pkgdir}/etc/php/conf.d/
+
+ # remove static modules
+ rm -f ${pkgdir}/usr/lib/php/modules/*.a
+ # remove modules provided by sub packages
+ rm -f ${pkgdir}/usr/lib/php/modules/{enchant,gd,intl,ldap,mcrypt,mssql,odbc,pdo_odbc,pgsql,pdo_pgsql,pspell,snmp,sqlite3,pdo_sqlite,tidy,xsl}.so
+ # remove empty directory
+ rmdir ${pkgdir}/usr/include/php/include
+}
+
+package_php-cgi() {
+ pkgdesc='CGI and FCGI SAPI for PHP'
+ depends=('php')
+
+ install -D -m755 ${srcdir}/build-cgi/sapi/cgi/php-cgi ${pkgdir}/usr/bin/php-cgi
+}
+
+package_php-apache() {
+ pkgdesc='Apache SAPI for PHP'
+ depends=('php' 'apache')
+ backup=('etc/httpd/conf/extra/php5_module.conf')
+
+ install -D -m755 ${srcdir}/build-apache/libs/libphp5.so ${pkgdir}/usr/lib/httpd/modules/libphp5.so
+ install -D -m644 ${srcdir}/apache.conf ${pkgdir}/etc/httpd/conf/extra/php5_module.conf
+}
+
+package_php-fpm() {
+ pkgdesc='FastCGI Process Manager for PHP'
+ depends=('php')
+ backup=('etc/php/php-fpm.conf')
+
+ install -D -m755 ${srcdir}/build-fpm/sapi/fpm/php-fpm ${pkgdir}/usr/sbin/php-fpm
+ install -D -m644 ${srcdir}/build-fpm/sapi/fpm/php-fpm.8 ${pkgdir}/usr/share/man/man8/php-fpm.8
+ install -D -m644 ${srcdir}/build-fpm/sapi/fpm/php-fpm.conf ${pkgdir}/etc/php/php-fpm.conf
+ install -D -m755 ${srcdir}/rc.d.php-fpm ${pkgdir}/etc/rc.d/php-fpm
+ install -D -m644 ${srcdir}/logrotate.d.php-fpm ${pkgdir}/etc/logrotate.d/php-fpm
+ install -d -m755 ${pkgdir}/etc/php/fpm.d
+}
+
+package_php-embed() {
+ pkgdesc='Embed SAPI for PHP'
+ depends=('php')
+
+ install -D -m755 ${srcdir}/build-embed/libs/libphp5.so ${pkgdir}/usr/lib/libphp5.so
+ install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/sapi/embed/php_embed.h ${pkgdir}/usr/include/php/sapi/embed/php_embed.h
+}
+
+package_php-pear() {
+ pkgdesc='PHP Extension and Application Repository'
+ depends=('php')
+ backup=('etc/php/pear.conf')
+
+ cd ${srcdir}/build-pear
+ make -j1 install-pear INSTALL_ROOT=${pkgdir}
+ local i
+ while read i; do
+ [ ! -e "$i" ] || rm -rf "$i"
+ done < <(find ${pkgdir} -name '.*')
+}
+
+package_php-enchant() {
+ depends=('php' 'enchant')
+ pkgdesc='enchant module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/enchant.so ${pkgdir}/usr/lib/php/modules/enchant.so
+}
+
+package_php-gd() {
+ depends=('php' 'libpng' 'libjpeg' 'freetype2')
+ pkgdesc='gd module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/gd.so ${pkgdir}/usr/lib/php/modules/gd.so
+}
+
+package_php-intl() {
+ depends=('php' 'icu')
+ pkgdesc='intl module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/intl.so ${pkgdir}/usr/lib/php/modules/intl.so
+}
+
+package_php-ldap() {
+ depends=('php' 'libldap')
+ pkgdesc='ldap module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/ldap.so ${pkgdir}/usr/lib/php/modules/ldap.so
+}
+
+package_php-mcrypt() {
+ depends=('php' 'libmcrypt' 'libltdl')
+ pkgdesc='mcrypt module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/mcrypt.so ${pkgdir}/usr/lib/php/modules/mcrypt.so
+}
+
+package_php-mssql() {
+ depends=('php' 'freetds')
+ pkgdesc='mssql module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/mssql.so ${pkgdir}/usr/lib/php/modules/mssql.so
+}
+
+package_php-odbc() {
+ depends=('php' 'unixodbc')
+ pkgdesc='ODBC modules for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/odbc.so ${pkgdir}/usr/lib/php/modules/odbc.so
+ install -D -m755 ${srcdir}/build-php/modules/pdo_odbc.so ${pkgdir}/usr/lib/php/modules/pdo_odbc.so
+}
+
+package_php-pgsql() {
+ depends=('php' 'postgresql-libs')
+ pkgdesc='PostgreSQL modules for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/pgsql.so ${pkgdir}/usr/lib/php/modules/pgsql.so
+ install -D -m755 ${srcdir}/build-php/modules/pdo_pgsql.so ${pkgdir}/usr/lib/php/modules/pdo_pgsql.so
+}
+
+package_php-pspell() {
+ depends=('php' 'aspell')
+ pkgdesc='pspell module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/pspell.so ${pkgdir}/usr/lib/php/modules/pspell.so
+}
+
+package_php-snmp() {
+ depends=('php' 'net-snmp')
+ pkgdesc='snmp module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/snmp.so ${pkgdir}/usr/lib/php/modules/snmp.so
+}
+
+package_php-sqlite() {
+ depends=('php' 'sqlite3')
+ pkgdesc='sqlite3 module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/sqlite3.so ${pkgdir}/usr/lib/php/modules/sqlite3.so
+ install -D -m755 ${srcdir}/build-php/modules/pdo_sqlite.so ${pkgdir}/usr/lib/php/modules/pdo_sqlite.so
+}
+
+package_php-tidy() {
+ depends=('php' 'tidyhtml')
+ pkgdesc='tidy module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/tidy.so ${pkgdir}/usr/lib/php/modules/tidy.so
+}
+
+package_php-xsl() {
+ depends=('php' 'libxslt')
+ pkgdesc='xsl module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/xsl.so ${pkgdir}/usr/lib/php/modules/xsl.so
+}
diff --git a/testing/php/apache.conf b/testing/php/apache.conf
new file mode 100644
index 000000000..c3ca0aad5
--- /dev/null
+++ b/testing/php/apache.conf
@@ -0,0 +1,13 @@
+# Required modules: dir_module, php5_module
+
+<IfModule dir_module>
+ <IfModule php5_module>
+ DirectoryIndex index.php index.html
+ <FilesMatch "\.php$">
+ SetHandler application/x-httpd-php
+ </FilesMatch>
+ <FilesMatch "\.phps$">
+ SetHandler application/x-httpd-php-source
+ </FilesMatch>
+ </IfModule>
+</IfModule>
diff --git a/testing/php/logrotate.d.php-fpm b/testing/php/logrotate.d.php-fpm
new file mode 100644
index 000000000..7a1ba2597
--- /dev/null
+++ b/testing/php/logrotate.d.php-fpm
@@ -0,0 +1,6 @@
+/var/log/php-fpm.log {
+ missingok
+ postrotate
+ /etc/rc.d/php-fpm logrotate >/dev/null || true
+ endscript
+}
diff --git a/testing/php/php-fpm.conf.in.patch b/testing/php/php-fpm.conf.in.patch
new file mode 100644
index 000000000..b4dd32f96
--- /dev/null
+++ b/testing/php/php-fpm.conf.in.patch
@@ -0,0 +1,80 @@
+--- sapi/fpm/php-fpm.conf.in 2011-07-04 23:22:56.000000000 +0200
++++ sapi/fpm/php-fpm.conf.in 2011-08-12 16:56:23.686606725 +0200
+@@ -12,7 +12,7 @@
+ ; Relative path can also be used. They will be prefixed by:
+ ; - the global prefix if it's been set (-p arguement)
+ ; - @prefix@ otherwise
+-;include=etc/fpm.d/*.conf
++;include=/etc/php/fpm.d/*.conf
+
+ ;;;;;;;;;;;;;;;;;;
+ ; Global Options ;
+@@ -22,7 +22,7 @@
+ ; Pid file
+ ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@
+ ; Default Value: none
+-;pid = run/php-fpm.pid
++pid = run/php-fpm/php-fpm.pid
+
+ ; Error log file
+ ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@
+@@ -102,7 +102,8 @@
+ ; specific port;
+ ; '/path/to/unix/socket' - to listen on a unix socket.
+ ; Note: This value is mandatory.
+-listen = 127.0.0.1:9000
++;listen = 127.0.0.1:9000
++listen = /var/run/php-fpm/php-fpm.sock
+
+ ; Set listen(2) backlog. A value of '-1' means unlimited.
+ ; Default Value: 128 (-1 on FreeBSD and OpenBSD)
+@@ -121,9 +122,9 @@
+ ; BSD-derived systems allow connections regardless of permissions.
+ ; Default Values: user and group are set as the running user
+ ; mode is set to 0666
+-;listen.owner = @php_fpm_user@
+-;listen.group = @php_fpm_group@
+-;listen.mode = 0666
++listen.owner = @php_fpm_user@
++listen.group = @php_fpm_group@
++listen.mode = 0660
+
+ ; Unix user/group of processes
+ ; Note: The user is mandatory. If the group is not set, the default user's group
+@@ -163,23 +164,23 @@
+ ; The number of child processes created on startup.
+ ; Note: Used only when pm is set to 'dynamic'
+ ; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
+-;pm.start_servers = 20
++pm.start_servers = 20
+
+ ; The desired minimum number of idle server processes.
+ ; Note: Used only when pm is set to 'dynamic'
+ ; Note: Mandatory when pm is set to 'dynamic'
+-;pm.min_spare_servers = 5
++pm.min_spare_servers = 5
+
+ ; The desired maximum number of idle server processes.
+ ; Note: Used only when pm is set to 'dynamic'
+ ; Note: Mandatory when pm is set to 'dynamic'
+-;pm.max_spare_servers = 35
++pm.max_spare_servers = 35
+
+ ; The number of requests each child process should execute before respawning.
+ ; This can be useful to work around memory leaks in 3rd party libraries. For
+ ; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
+ ; Default Value: 0
+-;pm.max_requests = 500
++pm.max_requests = 500
+
+ ; The URI to view the FPM status page. If this value is not set, no URI will be
+ ; recognized as a status page. By default, the status page shows the following
+@@ -333,7 +334,7 @@
+ ; Chdir to this directory at the start.
+ ; Note: relative path can be used.
+ ; Default Value: current directory or / when chroot
+-;chdir = /var/www
++;chdir = /srv/http
+
+ ; Redirect worker stdout and stderr into main error log. If not set, stdout and
+ ; stderr will be redirected to /dev/null according to FastCGI specs.
diff --git a/testing/php/php.ini.patch b/testing/php/php.ini.patch
new file mode 100644
index 000000000..46c842921
--- /dev/null
+++ b/testing/php/php.ini.patch
@@ -0,0 +1,126 @@
+--- php.ini-production 2011-02-09 01:25:44.000000000 +0100
++++ php.ini-production 2011-03-19 11:11:44.496987763 +0100
+@@ -376,7 +376,7 @@
+ ; or per-virtualhost web server configuration file. This directive is
+ ; *NOT* affected by whether Safe Mode is turned On or Off.
+ ; http://php.net/open-basedir
+-;open_basedir =
++open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/
+
+ ; This directive allows you to disable certain functions for security reasons.
+ ; It receives a comma-delimited list of function names. This directive is
+@@ -781,7 +781,7 @@
+ ;;;;;;;;;;;;;;;;;;;;;;;;;
+
+ ; UNIX: "/path1:/path2"
+-;include_path = ".:/php/includes"
++include_path = ".:/usr/share/pear"
+ ;
+ ; Windows: "\path1;\path2"
+ ;include_path = ".;c:\php\includes"
+@@ -804,7 +804,7 @@
+
+ ; Directory in which the loadable extensions (modules) reside.
+ ; http://php.net/extension-dir
+-; extension_dir = "./"
++extension_dir = "/usr/lib/php/modules/"
+ ; On windows:
+ ; extension_dir = "ext"
+
+@@ -938,53 +938,49 @@
+ ; If you only provide the name of the extension, PHP will look for it in its
+ ; default extension directory.
+ ;
+-; Windows Extensions
+-; Note that ODBC support is built in, so no dll is needed for it.
+-; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5)
+-; extension folders as well as the separate PECL DLL download (PHP 5).
+-; Be sure to appropriately set the extension_dir directive.
+-;
+-;extension=php_bz2.dll
+-;extension=php_curl.dll
+-;extension=php_fileinfo.dll
+-;extension=php_gd2.dll
+-;extension=php_gettext.dll
+-;extension=php_gmp.dll
+-;extension=php_intl.dll
+-;extension=php_imap.dll
+-;extension=php_interbase.dll
+-;extension=php_ldap.dll
+-;extension=php_mbstring.dll
+-;extension=php_exif.dll ; Must be after mbstring as it depends on it
+-;extension=php_mysql.dll
+-;extension=php_mysqli.dll
+-;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client
+-;extension=php_oci8_11g.dll ; Use with Oracle 11g Instant Client
+-;extension=php_openssl.dll
+-;extension=php_pdo_firebird.dll
+-;extension=php_pdo_mssql.dll
+-;extension=php_pdo_mysql.dll
+-;extension=php_pdo_oci.dll
+-;extension=php_pdo_odbc.dll
+-;extension=php_pdo_pgsql.dll
+-;extension=php_pdo_sqlite.dll
+-;extension=php_pgsql.dll
+-;extension=php_pspell.dll
+-;extension=php_shmop.dll
+-
+-; The MIBS data available in the PHP distribution must be installed.
+-; See http://www.php.net/manual/en/snmp.installation.php
+-;extension=php_snmp.dll
+-
+-;extension=php_soap.dll
+-;extension=php_sockets.dll
+-;extension=php_sqlite.dll
+-;extension=php_sqlite3.dll
+-;extension=php_sybase_ct.dll
+-;extension=php_tidy.dll
+-;extension=php_xmlrpc.dll
+-;extension=php_xsl.dll
+-;extension=php_zip.dll
++;extension=bcmath.so
++;extension=bz2.so
++;extension=calendar.so
++extension=curl.so
++;extension=dba.so
++;extension=enchant.so
++;extension=exif.so
++;extension=ftp.so
++;extension=gd.so
++extension=gettext.so
++;extension=gmp.so
++;extension=iconv.so
++;extension=imap.so
++;extension=intl.so
++extension=json.so
++;extension=ldap.so
++;extension=mcrypt.so
++;extension=mssql.so
++;extension=mysqli.so
++;extension=mysql.so
++;extension=odbc.so
++;extension=openssl.so
++;extension=pdo_mysql.so
++;extension=pdo_odbc.so
++;extension=pdo_pgsql.so
++;extension=pdo_sqlite.so
++;extension=pgsql.so
++;extension=phar.so
++;extension=posix.so
++;extension=pspell.so
++;extension=shmop.so
++;extension=snmp.so
++;extension=soap.so
++;extension=sockets.so
++;extension=sqlite3.so
++;extension=sqlite.so
++;extension=sysvmsg.so
++;extension=sysvsem.so
++;extension=sysvshm.so
++;extension=tidy.so
++;extension=xmlrpc.so
++;extension=xsl.so
++;extension=zip.so
+
+ ;;;;;;;;;;;;;;;;;;;
+ ; Module Settings ;
diff --git a/testing/php/rc.d.php-fpm b/testing/php/rc.d.php-fpm
new file mode 100644
index 000000000..54bcf4d5b
--- /dev/null
+++ b/testing/php/rc.d.php-fpm
@@ -0,0 +1,158 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+
+wait_for_pid () {
+ try=0
+ while test $try -lt 35 ; do
+ case "$1" in
+ 'created')
+ if [ -f "$2" ] ; then
+ try=''
+ break
+ fi
+ ;;
+ 'removed')
+ if [ ! -f "$2" ] ; then
+ try=''
+ break
+ fi
+ ;;
+ esac
+
+ stat_append '.'
+ try=`expr $try + 1`
+ sleep 1
+ done
+}
+
+test_config() {
+ stat_busy 'Checking configuration'
+ if [ $(id -u) -ne 0 ]; then
+ stat_append '(This script must be run as root)'
+ stat_die
+ fi
+
+ if [ ! -r /etc/php/php-fpm.conf ]; then
+ stat_append '(/etc/php/php-fpm.conf not found)'
+ stat_die
+ fi
+
+ local test=$(/usr/sbin/php-fpm -t 2>&1)
+ if [ $? -gt 0 ]; then
+ stat_append '(error in /etc/php/php-fpm.conf)'
+ stat_die
+ elif echo $test | grep -qi 'error'; then
+ stat_append '(error in /etc/php/php.ini)'
+ stat_die
+ fi
+
+ [ -d /var/run/php-fpm ] || install -d -m755 /var/run/php-fpm
+
+ stat_done
+}
+
+case "$1" in
+ start)
+ test_config
+ stat_busy 'Starting php-fpm'
+
+ /usr/sbin/php-fpm
+
+ if [ "$?" != 0 ] ; then
+ stat_fail
+ exit 1
+ fi
+
+ wait_for_pid created /var/run/php-fpm/php-fpm.pid
+
+ if [ -n "$try" ] ; then
+ stat_fail
+ exit 1
+ else
+ add_daemon php-fpm
+ stat_done
+ fi
+ ;;
+
+ stop)
+ test_config
+ stat_busy 'Gracefully shutting down php-fpm'
+
+ if [ ! -r /var/run/php-fpm/php-fpm.pid ] ; then
+ stat_fail
+ exit 1
+ fi
+
+ kill -QUIT `cat /var/run/php-fpm/php-fpm.pid`
+
+ wait_for_pid removed /var/run/php-fpm.pid
+
+ if [ -n "$try" ] ; then
+ stat_fail
+ exit 1
+ else
+ rm_daemon php-fpm
+ stat_done
+ fi
+ ;;
+
+ force-quit)
+ stat_busy 'Terminating php-fpm'
+
+ if [ ! -r /var/run/php-fpm/php-fpm.pid ] ; then
+ stat_fail
+ exit 1
+ fi
+
+ kill -TERM `cat /var/run/php-fpm/php-fpm.pid`
+
+ wait_for_pid removed /var/run/php-fpm/php-fpm.pid
+
+ if [ -n "$try" ] ; then
+ stat_fail
+ exit 1
+ else
+ rm_daemon php-fpm
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ $0 start
+ ;;
+
+ reload)
+ test_config
+ stat_busy 'Reload service php-fpm'
+
+ if [ ! -r /var/run/php-fpm/php-fpm.pid ] ; then
+ stat_fail
+ exit 1
+ fi
+
+ kill -USR2 `cat /var/run/php-fpm/php-fpm.pid`
+ stat_done
+ ;;
+
+ logrotate)
+ stat_busy 'Reopen php-fpm log'
+
+ if [ ! -r /var/run/php-fpm/php-fpm.pid ] ; then
+ stat_fail
+ exit 1
+ fi
+
+ kill -USR1 `cat /var/run/php-fpm/php-fpm.pid`
+ stat_done
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|force-quit|restart|reload|logrotate}"
+ exit 1
+ ;;
+
+esac
diff --git a/testing/pyqt/PKGBUILD b/testing/pyqt/PKGBUILD
new file mode 100644
index 000000000..df569bb5b
--- /dev/null
+++ b/testing/pyqt/PKGBUILD
@@ -0,0 +1,79 @@
+# $Id: PKGBUILD 145217 2011-12-19 18:04:00Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+# Contributor: riai <riai@bigfoot.com> Ben <ben@benmazer.net>
+
+pkgbase=pyqt
+pkgname=('pyqt' 'python2-pyqt')
+pkgver=4.8.6
+pkgrel=2
+arch=('i686' 'x86_64')
+url="http://riverbankcomputing.co.uk/software/pyqt/intro"
+license=('GPL')
+makedepends=('qt' 'python-sip' 'dbus-python' 'python2-sip' 'phonon'
+ 'python-opengl' 'qt-assistant-compat' 'qtwebkit')
+source=("http://riverbankcomputing.co.uk/static/Downloads/PyQt4/PyQt-x11-gpl-${pkgver}.tar.gz")
+md5sums=('9bfd7b08b8e438b83cc50d5c58191f97')
+
+build() {
+ cd "${srcdir}"
+ cp -r PyQt-x11-gpl-${pkgver} Py2Qt-x11-gpl-${pkgver}
+
+ cd "${srcdir}/PyQt-x11-gpl-${pkgver}"
+ python configure.py \
+ --confirm-license \
+ --qsci-api
+
+ # Thanks Gerardo for the rpath fix
+ find -name 'Makefile' | xargs sed -i 's|-Wl,-rpath,/usr/lib||g;s|-Wl,-rpath,.* ||g'
+
+ make
+
+ ### Python2 version ###
+ cd "${srcdir}/Py2Qt-x11-gpl-${pkgver}"
+ python2 configure.py \
+ --confirm-license \
+ -v /usr/share/sip \
+ --qsci-api
+
+ # Thanks Gerardo for the rpath fix
+ find -name 'Makefile' | xargs sed -i 's|-Wl,-rpath,/usr/lib||g;s|-Wl,-rpath,.* ||g'
+
+ make
+}
+
+package_pyqt(){
+ pkgdesc="A set of Python 3.x bindings for the Qt toolkit"
+ depends=('qtwebkit' 'python-sip')
+ optdepends=('phonon: enable audio and video in PyQt applications'
+ 'qscintilla: QScintilla API'
+ 'qt-assistant-compat: add PyQt online help in Qt Assistant')
+ replaces=('python-qt')
+ provides=('python-qt')
+
+ cd "${srcdir}/PyQt-x11-gpl-${pkgver}"
+ # INSTALL_ROOT is needed for the QtDesigner module, the other Makefiles use DESTDIR
+ make DESTDIR="${pkgdir}" INSTALL_ROOT="${pkgdir}" install
+}
+
+package_python2-pyqt(){
+ pkgdesc="A set of Python 2.x bindings for the Qt toolkit"
+ depends=('pyqt' 'python2-sip' 'dbus-python')
+ optdepends=('phonon: enable audio and video in PyQt applications'
+ 'python-opengl: enable OpenGL 3D graphics in PyQt applications'
+ 'qscintilla: QScintilla API'
+ 'qt-assistant-compat: add PyQt online help in Qt Assistant')
+ replaces=('python2-qt')
+ provides=('python2-qt')
+ options=('!emptydirs')
+
+ cd "${srcdir}/Py2Qt-x11-gpl-${pkgver}"
+ # INSTALL_ROOT is needed for the QtDesigner module, the other Makefiles use DESTDIR
+ make DESTDIR="${pkgdir}" INSTALL_ROOT="${pkgdir}" install
+
+ # Provided by pyqt
+ rm ${pkgdir}/usr/bin/{pylupdate4,pyrcc4,pyuic4}
+ rm ${pkgdir}/usr/lib/qt/plugins/designer/libpythonplugin.so
+ rm ${pkgdir}/usr/share/qt/qsci/api/python/PyQt4.api
+}
diff --git a/testing/qt/PKGBUILD b/testing/qt/PKGBUILD
new file mode 100644
index 000000000..cc2b26f1d
--- /dev/null
+++ b/testing/qt/PKGBUILD
@@ -0,0 +1,126 @@
+# $Id: PKGBUILD 145207 2011-12-19 18:03:03Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=qt
+pkgname=('qt' 'qt-private-headers')
+pkgver=4.8.0
+pkgrel=2
+arch=('i686' 'x86_64')
+url='http://qt-project.org/'
+license=('GPL3' 'LGPL')
+makedepends=('libtiff' 'libpng' 'libmng' 'sqlite3' 'ca-certificates' 'glib2' 'dbus'
+ 'fontconfig' 'libgl' 'libsm' 'libxrandr' 'libxv' 'libxi' 'alsa-lib'
+ 'xdg-utils' 'hicolor-icon-theme' 'desktop-file-utils' 'mesa' 'postgresql-libs'
+ 'mysql' 'unixodbc' 'cups' 'gtk2')
+options=('!libtool')
+_pkgfqn="${pkgbase}-everywhere-opensource-src-${pkgver}"
+source=("http://get.qt.nokia.com/qt/source/${_pkgfqn}.tar.gz"
+ 'assistant.desktop' 'designer.desktop' 'linguist.desktop'
+ 'qtconfig.desktop')
+md5sums=('e8a5fdbeba2927c948d9f477a6abe904'
+ 'fc211414130ab2764132e7370f8e5caa'
+ '85179f5e0437514f8639957e1d8baf62'
+ 'f11852b97583610f3dbb669ebc3e21bc'
+ '6b771c8a81dd90b45e8a79afa0e5bbfd')
+
+build() {
+ cd "${srcdir}"/${_pkgfqn}
+
+ export QT4DIR="${srcdir}"/${_pkgfqn}
+ export LD_LIBRARY_PATH=${QT4DIR}/lib:${LD_LIBRARY_PATH}
+
+ sed -i "s|-O2|${CXXFLAGS}|" mkspecs/common/g++-base.conf
+ sed -i "/^QMAKE_LFLAGS_RPATH/s| -Wl,-rpath,||g" mkspecs/common/gcc-base-unix.conf
+ sed -i "/^QMAKE_LFLAGS\s/s|+=|+= ${LDFLAGS}|g" mkspecs/common/gcc-base.conf
+
+ ./configure -confirm-license -opensource \
+ -prefix /usr \
+ -docdir /usr/share/doc/qt \
+ -plugindir /usr/lib/qt/plugins \
+ -importdir /usr/lib/qt/imports \
+ -datadir /usr/share/qt \
+ -translationdir /usr/share/qt/translations \
+ -sysconfdir /etc \
+ -examplesdir /usr/share/doc/qt/examples \
+ -demosdir /usr/share/doc/qt/demos \
+ -plugin-sql-{psql,mysql,sqlite,odbc} \
+ -system-sqlite \
+ -no-phonon \
+ -no-phonon-backend \
+ -no-webkit \
+ -graphicssystem raster \
+ -openssl-linked \
+ -nomake demos \
+ -nomake examples \
+ -nomake docs \
+ -silent \
+ -no-rpath \
+ -optimized-qmake \
+ -reduce-relocations \
+ -dbus-linked \
+ -no-openvg
+ make
+}
+
+package_qt() {
+ pkgdesc='A cross-platform application and UI framework'
+ depends=('libtiff' 'libpng' 'libmng' 'sqlite3' 'ca-certificates' 'glib2' 'dbus'
+ 'fontconfig' 'libgl' 'libsm' 'libxrandr' 'libxv' 'libxi' 'alsa-lib'
+ 'xdg-utils' 'hicolor-icon-theme' 'desktop-file-utils')
+ optdepends=('postgresql-libs: PostgreSQL driver'
+ 'libmysqlclient: MySQL driver'
+ 'unixodbc: ODBC driver'
+ 'libxinerama: Xinerama support'
+ 'libxcursor: Xcursor support'
+ 'libxfixes: Xfixes support')
+ install='qt.install'
+
+ cd "${srcdir}"/${_pkgfqn}
+ make INSTALL_ROOT="${pkgdir}" install
+
+ # install missing icons and desktop files
+ for icon in tools/linguist/linguist/images/icons/linguist-*-32.png ; do
+ size=$(echo $(basename ${icon}) | cut -d- -f2)
+ install -p -D -m644 ${icon} \
+ "${pkgdir}/usr/share/icons/hicolor/${size}x${size}/apps/linguist.png"
+ done
+ install -p -D -m644 src/gui/dialogs/images/qtlogo-64.png \
+ "${pkgdir}/usr/share/icons/hicolor/64x64/apps/qtlogo.png"
+ install -p -D -m644 tools/assistant/tools/assistant/images/assistant.png \
+ "${pkgdir}/usr/share/icons/hicolor/32x32/apps/assistant.png"
+ install -p -D -m644 tools/designer/src/designer/images/designer.png \
+ "${pkgdir}/usr/share/icons/hicolor/128x128/apps/designer.png"
+ install -d "${pkgdir}/usr/share/applications"
+ install -m644 "${srcdir}"/{linguist,designer,assistant,qtconfig}.desktop \
+ "${pkgdir}/usr/share/applications/"
+
+ # install license addition
+ install -D -m644 LGPL_EXCEPTION.txt \
+ ${pkgdir}/usr/share/licenses/qt/LGPL_EXCEPTION.txt
+
+ # Fix wrong path in pkgconfig files
+ find "${pkgdir}/usr/lib/pkgconfig" -type f -name '*.pc' \
+ -exec perl -pi -e "s, -L${srcdir}/?\S+,,g" {} \;
+
+ # Fix wrong path in prl files
+ find "${pkgdir}/usr/lib" -type f -name '*.prl' \
+ -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \;
+}
+
+package_qt-private-headers(){
+ pkgdesc="Qt private headers for development"
+ depends=("qt=${pkgver}")
+
+ install -d "${pkgdir}"/usr/include/{QtCore,QtDeclarative,QtGui,QtScript}
+ install -d "${pkgdir}"/usr/src/{corelib,declarative,gui,script}
+
+ for i in QtCore QtDeclarative QtGui QtScript; do
+ cp -r "${srcdir}"/${_pkgfqn}/include/${i}/private/ \
+ "${pkgdir}"/usr/include/${i}/
+ done
+
+ for i in corelib declarative gui script; do
+ cp -r "${srcdir}"/${_pkgfqn}/src/${i} "${pkgdir}"/usr/src/
+ done
+}
diff --git a/testing/qt/assistant.desktop b/testing/qt/assistant.desktop
new file mode 100644
index 000000000..a9e98c44b
--- /dev/null
+++ b/testing/qt/assistant.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Qt Assistant
+Comment=Shows Qt documentation and examples
+Exec=/usr/bin/assistant
+Icon=assistant
+Terminal=false
+Encoding=UTF-8
+Type=Application
+Categories=Qt;Development;Documentation;
diff --git a/testing/qt/designer.desktop b/testing/qt/designer.desktop
new file mode 100644
index 000000000..9b7b6e9aa
--- /dev/null
+++ b/testing/qt/designer.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Name=Qt Designer
+GenericName=Interface Designer
+Comment=Design GUIs for Qt applications
+Exec=/usr/bin/designer
+Icon=designer
+MimeType=application/x-designer;
+Terminal=false
+Encoding=UTF-8
+Type=Application
+Categories=Qt;Development;
diff --git a/testing/qt/linguist.desktop b/testing/qt/linguist.desktop
new file mode 100644
index 000000000..8cbe86599
--- /dev/null
+++ b/testing/qt/linguist.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=Qt Linguist
+Comment=Add translations to Qt applications
+Exec=/usr/bin/linguist
+Icon=linguist
+MimeType=text/vnd.trolltech.linguist;application/x-linguist;
+Terminal=false
+Encoding=UTF-8
+Type=Application
+Categories=Qt;Development;
diff --git a/testing/qt/qt.install b/testing/qt/qt.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/testing/qt/qt.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/qt/qtconfig.desktop b/testing/qt/qtconfig.desktop
new file mode 100644
index 000000000..46dcf9e3d
--- /dev/null
+++ b/testing/qt/qtconfig.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=Qt Config
+Comment=Configure Qt behavior, styles, fonts
+Exec=/usr/bin/qtconfig
+Icon=qtlogo
+Terminal=false
+Encoding=UTF-8
+Type=Application
+Categories=Qt;Settings;
+NoDisplay=true
diff --git a/testing/qt3/PKGBUILD b/testing/qt3/PKGBUILD
new file mode 100644
index 000000000..ea8a2a76f
--- /dev/null
+++ b/testing/qt3/PKGBUILD
@@ -0,0 +1,133 @@
+# $Id: PKGBUILD 145229 2011-12-19 18:04:21Z andrea $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=qt3
+pkgver=3.3.8
+pkgrel=21
+pkgdesc="The QT3 gui toolkit"
+arch=('i686' 'x86_64')
+url="http://www.trolltech.com/products/qt/index.html"
+license=('GPL')
+depends=('libpng' 'libxmu' 'libxcursor' 'libxinerama' 'mesa' 'libxft'
+ 'libxrandr' 'libmng')
+makedepends=('mysql' 'postgresql' 'unixodbc' 'sqlite3')
+optdepends=('libmysqlclient' 'postgresql-libs' 'unixodbc')
+options=('!libtool')
+install=qt.install
+source=(ftp://ftp.trolltech.com/qt/source/qt-x11-free-${pkgver}.tar.bz2
+ qt.profile qt3-png14.patch qt-copy-kde-patches.tar.bz2
+ qt-patches.tar.bz2 utf8-bug-qt3.diff qt-font-default-subst.diff
+ mysql.patch eastern_asian_languagues.diff qt-odbc.patch gcc-4.6.patch)
+sha1sums=('91b192cb8e80679607d24ae35d6e20ed68d149d7'
+ 'd2e257a9011208b2cb81b9cf47915b9a2f9dab83'
+ 'c8ea644266f4d6d6be9adf894f03138b8eca3fc2'
+ '9cb2e5bec782069692ee337cfa171539d9d73753'
+ '116afa0e737bdf27ea27f9b3653aeb56db9ec151'
+ 'ca5ecb29c7f1c826d48703339a3371038e306bb7'
+ 'd928ff55adb52c4bab2fb268df022651551cd70c'
+ 'bb6aad81cce143c23ff7840b1d79f6b2007a0c04'
+ '40c7b8f06a21f809ddeb8b5560e9da63ccac6a17'
+ '1346320614f6f86fbeb10b9fbad721dea29f5b61'
+ 'd9b83b8f6f9c8bd98d290dc1d0e9913a00b62c3f')
+
+# qt-copy-kde-patches come from http://websvn.kde.org/trunk/qt-copy/patches/
+# other qt-patches come from fedora and gentoo
+
+build() {
+ unset QMAKESPEC
+ export QTDIR="${srcdir}"/qt-x11-free-${pkgver}
+ export PATH=${QTDIR}/bin:${PATH}
+ export LD_LIBRARY_PATH=${QTDIR}/lib:${LD_LIBRARY_PATH}
+ export QMAKESPEC=$QTDIR/mkspecs/linux-g++
+ cd "${srcdir}"/qt-x11-free-${pkgver}
+ # apply qt patches from kde.org
+ for i in ../qt-copy-kde-patches/*; do
+ patch -Np0 -i $i
+ done
+ # apply other qt patches and one security fix from debian/gentoo
+ for i in ../qt-patches/*; do
+ patch -Np1 -i $i
+ done
+ # fix utf8 bug
+ patch -p0 -i "${srcdir}"/utf8-bug-qt3.diff
+ # fix asia fonts
+ patch -p0 -i "${srcdir}"/qt-font-default-subst.diff
+ # fix segfaults on exit when using mysql DB driver
+ patch -p0 -i "${srcdir}"/mysql.patch
+ # fix CJK font/chars select error (FS#11245)
+ patch -p1 -i "${srcdir}"/eastern_asian_languagues.diff
+ # fix build problem against new unixODBC
+ patch -p1 -i "${srcdir}"/qt-odbc.patch
+ # fix build with gcc 4.6.0
+ patch -p1 -i "${srcdir}"/gcc-4.6.patch
+
+ patch -p0 -i "${srcdir}"/qt3-png14.patch
+ # start compiling qt
+ sed -i 's|-cp -P -f|-cp -L -f|' qmake/Makefile.unix
+ rm -rf doc/html examples tutorial
+ sed -i "s|sub-tutorial sub-examples||" Makefile
+ sed -i "s|-O2|$CXXFLAGS|" mkspecs/linux-g++/qmake.conf
+ sed -i "s|-O2|$CXXFLAGS|" mkspecs/linux-g++-32/qmake.conf
+ sed -i "s|-O2|$CXXFLAGS|" mkspecs/linux-g++-64/qmake.conf
+ sed -i "s|-I. |$CXXFLAGS -I. |" qmake/Makefile.unix
+ sed -i "s|read acceptance|acceptance=yes|" configure
+
+ # remove unwanted mkspecs
+ rm -rf mkspecs/{*aix*,*bsd*,cygwin*,dgux*,darwin*,hpux*,hurd*,irix*,lynxos*,macx*,qnx*,reliant*,sco*,solaris*,tru64*,unixware*,win32*}
+
+ if [ "$CARCH" = "x86_64" ]; then
+ export ARCH="-64"
+ else unset ARCH
+ fi
+
+ ./configure -prefix /opt/qt \
+ -platform linux-g++$ARCH \
+ -system-zlib \
+ -qt-gif \
+ -release \
+ -shared \
+ -sm \
+ -nis \
+ -thread \
+ -stl \
+ -system-lib{png,jpeg,mng} \
+ -no-g++-exceptions \
+ -plugin-sql-{mysql,psql,sqlite,odbc}
+
+ # fix /opt/qt/lib path
+ [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/qt-x11-free-${pkgver}/src/Makefile
+ [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/qt-x11-free-${pkgver}/tools/designer/designer/Makefile
+ [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/qt-x11-free-${pkgver}/tools/designer/editor/Makefile
+ [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/qt-x11-free-${pkgver}/tools/assistant/lib/Makefile
+ [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/qt-x11-free-${pkgver}/tools/designer/uilib/Makefile
+
+ cd "${srcdir}"/qt-x11-free-${pkgver}
+ make -C qmake
+ cd "${srcdir}"/qt-x11-free-${pkgver}/plugins/src/sqldrivers/mysql
+ "${srcdir}"/qt-x11-free-${pkgver}/bin/qmake -o Makefile "INCPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql -lmysqlclient" mysql.pro
+ cd "${srcdir}"/qt-x11-free-${pkgver}/plugins/src/sqldrivers/psql
+ "${srcdir}"/qt-x11-free-${pkgver}/bin/qmake -o Makefile "INCPATH+=/usr/src/include /usr/include/postgresql/server" "LIBS+=-L/usr/lib -lpq" psql.pro
+
+ cd "${srcdir}"/qt-x11-free-${pkgver}
+ # fix the broken makefiles
+ #sed -i 's|[[:space:]]*strip.*doc/html.*$|#|g' src/Makefile
+ make
+}
+
+package() {
+ cd "${srcdir}"/qt-x11-free-${pkgver}
+ make INSTALL_ROOT="${pkgdir}" install
+ rm -rf "${pkgdir}"/opt/qt/{phrasebooks,templates,translations}
+ sed -i "s|-L${srcdir}/qt-x11-free-${pkgver}/lib ||g" "${pkgdir}"/opt/qt/lib/*.prl
+ install -D -m755 qmake/qmake "${pkgdir}"/opt/qt/bin/qmake
+ install -D -m755 "${srcdir}"/qt.profile "${pkgdir}"/etc/profile.d/qt3.sh
+ ln -sf /opt/qt/bin/qtconfig "${pkgdir}"/opt/qt/bin/qt3config
+ rm -f "${pkgdir}"/opt/qt/mkspecs/linux-g++$ARCH/linux-g++$ARCH
+
+ # install man pages
+ install -d -m755 "${pkgdir}"/opt/qt/man
+ cp -r "${srcdir}"/qt-x11-free-${pkgver}/doc/man/{man1,man3} "${pkgdir}"/opt/qt/man/
+
+ install -d -m755 "${pkgdir}"/etc/ld.so.conf.d/
+ echo '/opt/qt/lib' > "${pkgdir}"/etc/ld.so.conf.d/qt3.conf
+}
diff --git a/testing/qt3/eastern_asian_languagues.diff b/testing/qt3/eastern_asian_languagues.diff
new file mode 100644
index 000000000..7c25eef7d
--- /dev/null
+++ b/testing/qt3/eastern_asian_languagues.diff
@@ -0,0 +1,39 @@
+--- qt-x11-free-3.3.8b/src/kernel/qfontdatabase.cpp 2008-01-15 21:09:13.000000000 +0200
++++ qt-x11-free-3.3.8b/src/kernel/qfontdatabase.cpp 2008-03-10 11:34:22.000000000 +0200
+@@ -966,20 +966,22 @@
+
+ #ifdef Q_WS_X11
+ if (script == QFont::Han) {
+- // modify script according to locale
+- static QFont::Script defaultHan = QFont::UnknownScript;
+- if (defaultHan == QFont::UnknownScript) {
+- QCString locale = setlocale(LC_ALL, NULL);
+- if (locale.contains("ko"))
+- defaultHan = QFont::Han_Korean;
+- else if (locale.contains("zh_TW") || locale.contains("zh_HK"))
+- defaultHan = QFont::Han_TraditionalChinese;
+- else if (locale.contains("zh"))
+- defaultHan = QFont::Han_SimplifiedChinese;
+- else
+- defaultHan = QFont::Han_Japanese;
+- }
+- script = defaultHan;
++ // modify script according to locale
++ static QFont::Script defaultHan;
++ QCString locale = setlocale(LC_ALL, NULL);
++
++ if (locale.contains("ko"))
++ defaultHan = QFont::Han_Korean;
++ else if (locale.contains("zh_TW") || locale.contains("zh_HK"))
++ defaultHan = QFont::Han_TraditionalChinese;
++ else if (locale.contains("zh"))
++ defaultHan = QFont::Han_SimplifiedChinese;
++ else if (locale.contains("ja"))
++ defaultHan = QFont::Han_Japanese;
++ else
++ defaultHan = QFont::Han; // don't change
++
++ script = defaultHan;
+ }
+ #endif
+
diff --git a/testing/qt3/gcc-4.6.patch b/testing/qt3/gcc-4.6.patch
new file mode 100644
index 000000000..bcbffcea6
--- /dev/null
+++ b/testing/qt3/gcc-4.6.patch
@@ -0,0 +1,33 @@
+diff -up qt-x11-free-3.3.8b/src/tools/qmap.h.cstddef qt-x11-free-3.3.8b/src/tools/qmap.h
+--- qt-x11-free-3.3.8b/src/tools/qmap.h.cstddef 2008-01-15 13:09:13.000000000 -0600
++++ qt-x11-free-3.3.8b/src/tools/qmap.h 2011-01-30 21:14:29.275088725 -0600
+@@ -49,6 +49,7 @@
+ #include "qvaluelist.h"
+ #endif // QT_H
+
++#include <cstddef>
+ #ifndef QT_NO_STL
+ #include <iterator>
+ #include <map>
+diff -up qt-x11-free-3.3.8b/src/tools/qvaluelist.h.cstddef qt-x11-free-3.3.8b/src/tools/qvaluelist.h
+--- qt-x11-free-3.3.8b/src/tools/qvaluelist.h.cstddef 2008-01-15 13:09:13.000000000 -0600
++++ qt-x11-free-3.3.8b/src/tools/qvaluelist.h 2011-01-30 21:14:01.765846592 -0600
+@@ -47,6 +47,7 @@
+ #include "qdatastream.h"
+ #endif // QT_H
+
++#include <cstddef>
+ #ifndef QT_NO_STL
+ #include <iterator>
+ #include <list>
+diff -up qt-x11-free-3.3.8b/src/tools/qvaluevector.h.cstddef qt-x11-free-3.3.8b/src/tools/qvaluevector.h
+--- qt-x11-free-3.3.8b/src/tools/qvaluevector.h.cstddef 2008-01-15 13:09:13.000000000 -0600
++++ qt-x11-free-3.3.8b/src/tools/qvaluevector.h 2011-01-30 21:14:01.765846592 -0600
+@@ -45,6 +45,7 @@
+ #include "qdatastream.h"
+ #endif // QT_H
+
++#include <cstddef>
+ #ifndef QT_NO_STL
+ #include <vector>
+ #endif
diff --git a/testing/qt3/mysql.patch b/testing/qt3/mysql.patch
new file mode 100644
index 000000000..5f61edc67
--- /dev/null
+++ b/testing/qt3/mysql.patch
@@ -0,0 +1,47 @@
+--- src/sql/drivers/mysql/qsql_mysql.cpp
++++ src/sql/drivers/mysql/qsql_mysql.cpp
+@@ -37,7 +37,6 @@
+ #include "qsql_mysql.h"
+ #include <private/qsqlextension_p.h>
+
+-#include <qapplication.h>
+ #include <qdatetime.h>
+ #include <qvaluevector.h>
+ #include <qsqlrecord.h>
+@@ -341,14 +340,6 @@ int QMYSQLResult::numRowsAffected()
+ }
+
+ /////////////////////////////////////////////////////////
+-static void qServerEnd()
+-{
+-#ifndef Q_NO_MYSQL_EMBEDDED
+-# if MYSQL_VERSION_ID >= 40000
+- mysql_server_end();
+-# endif // MYSQL_VERSION_ID
+-#endif // Q_NO_MYSQL_EMBEDDED
+-}
+
+ static void qServerInit()
+ {
+@@ -366,9 +357,7 @@ static void qServerInit()
+ qWarning( "QMYSQLDriver::qServerInit: unable to start server." );
+ # endif
+ }
+- qAddPostRoutine(qServerEnd);
+ init = TRUE;
+-
+ # endif // MYSQL_VERSION_ID
+ #endif // Q_NO_MYSQL_EMBEDDED
+ }
+@@ -411,6 +400,11 @@ QMYSQLDriver::~QMYSQLDriver()
+ QSqlOpenExtension *ext = qSqlOpenExtDict()->take( this );
+ delete ext;
+ }
++#ifndef Q_NO_MYSQL_EMBEDDED
++# if MYSQL_VERSION_ID > 40000
++ mysql_server_end();
++# endif
++#endif
+ }
+
+ bool QMYSQLDriver::hasFeature( DriverFeature f ) const
diff --git a/testing/qt3/qt-copy-kde-patches.tar.bz2 b/testing/qt3/qt-copy-kde-patches.tar.bz2
new file mode 100644
index 000000000..19d899963
--- /dev/null
+++ b/testing/qt3/qt-copy-kde-patches.tar.bz2
Binary files differ
diff --git a/testing/qt3/qt-font-default-subst.diff b/testing/qt3/qt-font-default-subst.diff
new file mode 100644
index 000000000..3e286f74e
--- /dev/null
+++ b/testing/qt3/qt-font-default-subst.diff
@@ -0,0 +1,77 @@
+--- src/kernel/qfontdatabase_x11.cpp
++++ src/kernel/qfontdatabase_x11.cpp
+@@ -1589,15 +1589,6 @@ QFontEngine *loadEngine( QFont::Script s
+ if (script == QFont::Latin)
+ // add Euro character
+ FcCharSetAddChar(cs, 0x20ac);
+- if (script == QFont::Han_SimplifiedChinese)
+- FcCharSetAddChar(cs, 0x3400);
+- if (script == QFont::Han_TraditionalChinese){
+- FcCharSetAddChar(cs, 0x3435);
+- FcCharSetAddChar(cs, 0xE000);
+- FcCharSetAddChar(cs, 0xF6B1);
+- }
+- if (script == QFont::MiscellaneousSymbols)
+- FcCharSetAddChar(cs, 0x2714);
+ FcPatternAddCharSet(pattern, FC_CHARSET, cs);
+ FcCharSetDestroy(cs);
+ }
+@@ -1813,7 +1804,11 @@ static QFontEngine *loadFontConfigFont(c
+ FcPatternPrint(pattern);
+ #endif
+
++ // XftFontMatch calls the right ConfigSubstitute variants, but as we use
++ // FcFontMatch/Sort here we have to do it manually.
+ FcConfigSubstitute(0, pattern, FcMatchPattern);
++ XftDefaultSubstitute(QPaintDevice::x11AppDisplay(), QPaintDevice::x11AppScreen(), pattern);
++
+ // qDebug("1: pattern contains:");
+ // FcPatternPrint(pattern);
+
+@@ -1847,10 +1842,6 @@ static QFontEngine *loadFontConfigFont(c
+ value.u.s = (const FcChar8 *)cs.data();
+ FcPatternAddWeak(pattern, FC_FAMILY, value, FcTrue);
+ }
+-#ifdef FONT_MATCH_DEBUG
+- printf("final pattern contains:\n");
+- FcPatternPrint(pattern);
+-#endif
+ }
+
+ if (script != QFont::Unicode) {
+@@ -1860,19 +1851,15 @@ static QFontEngine *loadFontConfigFont(c
+ if (script == QFont::Latin)
+ // add Euro character
+ FcCharSetAddChar(cs, 0x20ac);
+- if (script == QFont::Han_SimplifiedChinese)
+- FcCharSetAddChar(cs, 0x3400);
+- if (script == QFont::Han_TraditionalChinese) {
+- FcCharSetAddChar(cs, 0x3435);
+- FcCharSetAddChar(cs, 0xE000);
+- FcCharSetAddChar(cs, 0xF6B1);
+- }
+- if (script == QFont::MiscellaneousSymbols)
+- FcCharSetAddChar(cs, 0x2714);
+ FcPatternAddCharSet(pattern, FC_CHARSET, cs);
+ FcCharSetDestroy(cs);
+ }
+
++#ifdef FONT_MATCH_DEBUG
++ printf("final pattern contains:\n");
++ FcPatternPrint(pattern);
++#endif
++
+ QFontEngine *fe = 0;
+
+ for( int jj = (FcGetVersion() >= 20392 ? 0 : 1); jj < 2; ++jj ) {
+--- src/kernel/qfontdatabase.cpp
++++ src/kernel/qfontdatabase.cpp
+@@ -554,7 +554,7 @@ static const unsigned short sample_chars
+ // GeometricSymbols,
+ { 0x2500, 0x0 },
+ // MiscellaneousSymbols,
+- { 0x2640, 0x0 },
++ { 0x2640, 0x2714, 0x0 },
+ // EnclosedAndSquare,
+ { 0x2460, 0x0 },
+ // Braille,
diff --git a/testing/qt3/qt-odbc.patch b/testing/qt3/qt-odbc.patch
new file mode 100644
index 000000000..6f21e3cf1
--- /dev/null
+++ b/testing/qt3/qt-odbc.patch
@@ -0,0 +1,19 @@
+diff -up qt-x11-free-3.3.8/src/sql/drivers/odbc/qsql_odbc.cpp.orig qt-x11-free-3.3.8/src/sql/drivers/odbc/qsql_odbc.cpp
+--- qt-x11-free-3.3.8/src/sql/drivers/odbc/qsql_odbc.cpp.orig 2009-02-24 11:32:27.000000000 +0100
++++ qt-x11-free-3.3.8/src/sql/drivers/odbc/qsql_odbc.cpp 2009-02-24 11:33:43.000000000 +0100
+@@ -57,13 +57,13 @@
+ #endif
+
+ // newer platform SDKs use SQLLEN instead of SQLINTEGER
+-#ifdef SQLLEN
++#if defined(SQLLEN) || defined(Q_OS_WIN64) || defined(Q_OS_UNIX)
+ # define QSQLLEN SQLLEN
+ #else
+ # define QSQLLEN SQLINTEGER
+ #endif
+
+-#ifdef SQLULEN
++#if defined(SQLULEN) || defined(Q_OS_WIN64) || defined(Q_OS_UNIX)
+ # define QSQLULEN SQLULEN
+ #else
+ # define QSQLULEN SQLUINTEGER
diff --git a/testing/qt3/qt-patches.tar.bz2 b/testing/qt3/qt-patches.tar.bz2
new file mode 100644
index 000000000..3f4aee171
--- /dev/null
+++ b/testing/qt3/qt-patches.tar.bz2
Binary files differ
diff --git a/testing/qt3/qt.install b/testing/qt3/qt.install
new file mode 100644
index 000000000..6d042daae
--- /dev/null
+++ b/testing/qt3/qt.install
@@ -0,0 +1,12 @@
+post_install() {
+ post_remove
+}
+
+post_upgrade() {
+ post_remove
+}
+
+post_remove() {
+ # this can be removed in future versions
+ sed -e '/\/opt\/qt\/lib/d' -i etc/ld.so.conf
+}
diff --git a/testing/qt3/qt.profile b/testing/qt3/qt.profile
new file mode 100644
index 000000000..ed4d232ae
--- /dev/null
+++ b/testing/qt3/qt.profile
@@ -0,0 +1,4 @@
+export QTDIR=/opt/qt
+export QT_XFT=true
+export PATH=$PATH:$QTDIR/bin
+export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/qt/lib/pkgconfig
diff --git a/testing/qt3/qt3-png14.patch b/testing/qt3/qt3-png14.patch
new file mode 100644
index 000000000..e8a194529
--- /dev/null
+++ b/testing/qt3/qt3-png14.patch
@@ -0,0 +1,33 @@
+--- src/kernel/qpngio.cpp.orig 2010-01-16 22:02:41.000000000 +0100
++++ src/kernel/qpngio.cpp 2010-01-16 22:03:56.000000000 +0100
+@@ -159,7 +159,7 @@
+ image.setColor( i, qRgba(c,c,c,0xff) );
+ }
+ if ( png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS) ) {
+- const int g = info_ptr->trans_values.gray;
++ const int g = info_ptr->trans_color.gray;
+ if (g < ncols) {
+ image.setAlphaBuffer(TRUE);
+ image.setColor(g, image.color(g) & RGB_MASK);
+@@ -187,7 +187,7 @@
+ info_ptr->palette[i].red,
+ info_ptr->palette[i].green,
+ info_ptr->palette[i].blue,
+- info_ptr->trans[i]
++ info_ptr->trans_alpha[i]
+ )
+ );
+ i++;
+@@ -321,9 +321,9 @@
+ png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)
+ if (image.depth()==32 && png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) {
+ QRgb trans = 0xFF000000 | qRgb(
+- (info_ptr->trans_values.red << 8 >> bit_depth)&0xff,
+- (info_ptr->trans_values.green << 8 >> bit_depth)&0xff,
+- (info_ptr->trans_values.blue << 8 >> bit_depth)&0xff);
++ (info_ptr->trans_color.red << 8 >> bit_depth)&0xff,
++ (info_ptr->trans_color.green << 8 >> bit_depth)&0xff,
++ (info_ptr->trans_color.blue << 8 >> bit_depth)&0xff);
+ for (uint y=0; y<height; y++) {
+ for (uint x=0; x<info_ptr->width; x++) {
+ if (((uint**)jt)[y][x] == trans) {
diff --git a/testing/qt3/utf8-bug-qt3.diff b/testing/qt3/utf8-bug-qt3.diff
new file mode 100644
index 000000000..43e84a99f
--- /dev/null
+++ b/testing/qt3/utf8-bug-qt3.diff
@@ -0,0 +1,101 @@
+--- src/codecs/qutfcodec.cpp
++++ src/codecs/qutfcodec.cpp
+@@ -154,6 +154,7 @@
+
+ class QUtf8Decoder : public QTextDecoder {
+ uint uc;
++ uint min_uc;
+ int need;
+ bool headerDone;
+ public:
+@@ -167,8 +168,9 @@
+ result.setLength( len ); // worst case
+ QChar *qch = (QChar *)result.unicode();
+ uchar ch;
++ int error = -1;
+ for (int i=0; i<len; i++) {
+- ch = *chars++;
++ ch = chars[i];
+ if (need) {
+ if ( (ch&0xc0) == 0x80 ) {
+ uc = (uc << 6) | (ch & 0x3f);
+@@ -182,6 +184,8 @@
+ *qch++ = QChar(high);
+ *qch++ = QChar(low);
+ headerDone = TRUE;
++ } else if ((uc < min_uc) || (uc >= 0xd800 && uc <= 0xdfff) || (uc >= 0xfffe)) {
++ *qch++ = QChar::replacement;
+ } else {
+ if (headerDone || QChar(uc) != QChar::byteOrderMark)
+ *qch++ = uc;
+@@ -190,6 +194,7 @@
+ }
+ } else {
+ // error
++ i = error;
+ *qch++ = QChar::replacement;
+ need = 0;
+ }
+@@ -200,12 +205,21 @@
+ } else if ((ch & 0xe0) == 0xc0) {
+ uc = ch & 0x1f;
+ need = 1;
++ error = i;
++ min_uc = 0x80;
+ } else if ((ch & 0xf0) == 0xe0) {
+ uc = ch & 0x0f;
+ need = 2;
++ error = i;
++ min_uc = 0x800;
+ } else if ((ch&0xf8) == 0xf0) {
+ uc = ch & 0x07;
+ need = 3;
++ error = i;
++ min_uc = 0x10000;
++ } else {
++ // error
++ *qch++ = QChar::replacement;
+ }
+ }
+ }
+--- src/tools/qstring.cpp
++++ src/tools/qstring.cpp
+@@ -5805,6 +5805,7 @@
+ result.setLength( len ); // worst case
+ QChar *qch = (QChar *)result.unicode();
+ uint uc = 0;
++ uint min_uc = 0;
+ int need = 0;
+ int error = -1;
+ uchar ch;
+@@ -5822,6 +5823,12 @@
+ unsigned short low = uc%0x400 + 0xdc00;
+ *qch++ = QChar(high);
+ *qch++ = QChar(low);
++ } else if (uc < min_uc || (uc >= 0xd800 && uc <= 0xdfff) || (uc >= 0xfffe)) {
++ // overlong seqence, UTF16 surrogate or BOM
++ i = error;
++ qch = addOne(qch, result);
++ *qch++ = QChar(0xdbff);
++ *qch++ = QChar(0xde00+((uchar)utf8[i]));
+ } else {
+ *qch++ = uc;
+ }
+@@ -5844,14 +5851,17 @@
+ uc = ch & 0x1f;
+ need = 1;
+ error = i;
++ min_uc = 0x80;
+ } else if ((ch & 0xf0) == 0xe0) {
+ uc = ch & 0x0f;
+ need = 2;
+ error = i;
++ min_uc = 0x800;
+ } else if ((ch&0xf8) == 0xf0) {
+ uc = ch & 0x07;
+ need = 3;
+ error = i;
++ min_uc = 0x10000;
+ } else {
+ // Error
+ qch = addOne(qch, result);
diff --git a/testing/qtwebkit/PKGBUILD b/testing/qtwebkit/PKGBUILD
new file mode 100644
index 000000000..80cca8b44
--- /dev/null
+++ b/testing/qtwebkit/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 145209 2011-12-19 18:03:48Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=qtwebkit
+pkgver=2.2.0
+pkgrel=3
+arch=('i686' 'x86_64')
+url='http://trac.webkit.org/wiki/QtWebKit'
+pkgdesc='An open source web browser engine (Qt port)'
+license=('LGPL2.1' 'GPL3')
+depends=('qt' 'gperf' 'bison' 'phonon' 'gstreamer0.10-base')
+makedepends=('python2' 'mesa' 'chrpath')
+conflicts=('qt<4.8')
+source=("http://get.qt.nokia.com/${pkgname}/QtWebKit-${pkgver}.tar.gz"
+ 'python2-path.patch')
+sha1sums=('3582f3a8b593140af004a19479f5ec19693b3df7'
+ 'b0ef3d5596171e3900a685df9bcfac3068ad6330')
+
+build() {
+ cd "${srcdir}"/QtWebKit-${pkgver}
+
+ patch -p1 -i "${srcdir}"/python2-path.patch
+
+ cd Tools/Scripts
+ ./build-webkit --qt \
+ --prefix=/usr \
+ --makeargs="${MAKEFLAGS}" \
+ --release \
+ --3d-canvas
+}
+
+package() {
+ cd "${srcdir}"/QtWebKit-${pkgver}
+ make INSTALL_ROOT="${pkgdir}" -C WebKitBuild/Release install
+
+ # Fix RPATH
+ chrpath -r /usr/lib/ "${pkgdir}"/usr/lib/qt/imports/QtWebKit/libqmlwebkitplugin.so
+}
diff --git a/testing/qtwebkit/python2-path.patch b/testing/qtwebkit/python2-path.patch
new file mode 100644
index 000000000..2e270e6fc
--- /dev/null
+++ b/testing/qtwebkit/python2-path.patch
@@ -0,0 +1,29 @@
+--- QtWebKit-2.2.0/Source/JavaScriptCore/DerivedSources.pro~ 2011-10-20 22:39:56.044519075 +0000
++++ QtWebKit-2.2.0/Source/JavaScriptCore/DerivedSources.pro 2011-10-20 22:41:21.302047082 +0000
+@@ -88,5 +88,5 @@
+ retgen.output = $$JSC_GENERATED_SOURCES_DIR/RegExpJitTables.h
+ retgen.wkScript = $$PWD/create_regex_tables
+ retgen.input = retgen.wkScript
+-retgen.commands = python $$retgen.wkScript > ${QMAKE_FILE_OUT}
++retgen.commands = python2 $$retgen.wkScript > ${QMAKE_FILE_OUT}
+ addExtraCompiler(retgen)
+--- QtWebKit-2.2.0/Source/WebCore/CodeGenerators.pri~ 2011-10-20 22:44:23.827225580 +0000
++++ QtWebKit-2.2.0/Source/WebCore/CodeGenerators.pri 2011-10-20 22:44:38.550707819 +0000
+@@ -640,7 +640,7 @@
+ inspectorJSON.output = $${WC_GENERATED_SOURCES_DIR}/Inspector.idl
+ inspectorJSON.input = INSPECTOR_JSON
+ inspectorJSON.wkScript = $$PWD/inspector/generate-inspector-idl
+-inspectorJSON.commands = python $$inspectorJSON.wkScript -o $${WC_GENERATED_SOURCES_DIR}/Inspector.idl $$PWD/inspector/Inspector.json
++inspectorJSON.commands = python2 $$inspectorJSON.wkScript -o $${WC_GENERATED_SOURCES_DIR}/Inspector.idl $$PWD/inspector/Inspector.json
+ inspectorJSON.depends = $$PWD/inspector/generate-inspector-idl
+ inspectorJSON.wkAddOutputToSources = false
+ addExtraCompiler(inspectorJSON)
+@@ -723,7 +723,7 @@
+ entities.output = $${WC_GENERATED_SOURCES_DIR}/HTMLEntityTable.cpp
+ entities.input = HTML_ENTITIES
+ entities.wkScript = $$PWD/html/parser/create-html-entity-table
+-entities.commands = python $$entities.wkScript -o $${WC_GENERATED_SOURCES_DIR}/HTMLEntityTable.cpp $$HTML_ENTITIES
++entities.commands = python2 $$entities.wkScript -o $${WC_GENERATED_SOURCES_DIR}/HTMLEntityTable.cpp $$HTML_ENTITIES
+ entities.clean = ${QMAKE_FILE_OUT}
+ entities.depends = $$PWD/html/parser/create-html-entity-table
+ addExtraCompiler(entities)
diff --git a/testing/redland/PKGBUILD b/testing/redland/PKGBUILD
new file mode 100644
index 000000000..cbc431c39
--- /dev/null
+++ b/testing/redland/PKGBUILD
@@ -0,0 +1,79 @@
+# $Id: PKGBUILD 145231 2011-12-19 18:04:25Z andrea $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Francois Charette <francois.archlinux.org>
+
+pkgbase=redland
+epoch=1
+pkgname=('redland' 'redland-storage-mysql' 'redland-storage-postgresql' 'redland-storage-virtuoso' 'redland-storage-sqlite')
+pkgver=1.0.15
+pkgrel=2
+url="http://librdf.org/"
+license=("GPL")
+arch=('i686' 'x86_64')
+makedepends=('rasqal>=0.9.26' 'raptor>=2.0.6' 'db>=5.2' 'postgresql-libs' 'libmysqlclient' 'unixodbc' 'sqlite3')
+options=('!libtool')
+source=(http://download.librdf.org/source/$pkgname-$pkgver.tar.gz{,.asc}
+ rpath.diff)
+sha1sums=('e93d6fafaeebdf9f15a1044be6f4a88270f007af'
+ '3aeef38a7247ae33db6a0a19511ef4132240164b'
+ 'f5db05c925b6bcd6402d5abd75c648b137f069c7')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --enable-release \
+ --disable-static \
+ --with-raptor=system \
+ --with-rasqal=system \
+ --with-sqlite=3
+
+ # nuke rpath
+ patch -Np0 -i "${srcdir}/rpath.diff"
+
+ make
+}
+
+package_redland() {
+ pkgdesc="Library that provides a high-level interface to RDF data"
+ depends=('rasqal>=0.9.26' 'raptor>=2.0.6' 'libltdl')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ rm -rf "${pkgdir}/usr/lib/redland"
+}
+
+package_redland-storage-mysql() {
+ pkgdesc="MySQL storage support for Redland"
+ depends=('redland' 'libmysqlclient')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ install -dm755 "${pkgdir}/usr/lib/redland"
+ install -m755 src/.libs/librdf_storage_mysql.so "${pkgdir}/usr/lib/redland/librdf_storage_mysql.so"
+}
+
+package_redland-storage-postgresql() {
+ pkgdesc="PostgreSQL storage support for Redland"
+ depends=('redland' 'postgresql-libs')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ install -dm755 "${pkgdir}/usr/lib/redland"
+ install -m755 src/.libs/librdf_storage_postgresql.so "${pkgdir}/usr/lib/redland/"
+}
+
+package_redland-storage-virtuoso() {
+ pkgdesc="Virtuoso storage support for Redland"
+ depends=('redland' 'unixodbc' 'db')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ install -dm755 "${pkgdir}/usr/lib/redland"
+ install -m755 src/.libs/librdf_storage_virtuoso.so "${pkgdir}/usr/lib/redland/"
+}
+
+package_redland-storage-sqlite() {
+ pkgdesc="SQLite storage support for Redland"
+ depends=('redland' 'sqlite3' 'db')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ install -dm755 "${pkgdir}/usr/lib/redland"
+ install -m755 src/.libs/librdf_storage_sqlite.so "${pkgdir}/usr/lib/redland/"
+}
diff --git a/testing/redland/rpath.diff b/testing/redland/rpath.diff
new file mode 100644
index 000000000..831bc80ed
--- /dev/null
+++ b/testing/redland/rpath.diff
@@ -0,0 +1,11 @@
+--- libtool 2011-02-20 10:46:47.000000000 +0100
++++ libtool.new 2011-02-20 10:52:58.285764909 +0100
+@@ -324,7 +324,7 @@
+
+ # Flag to hardcode $libdir into a binary during linking.
+ # This must work even if $libdir does not exist
+-hardcode_libdir_flag_spec="\${wl}-rpath \${wl}\$libdir"
++hardcode_libdir_flag_spec=" "
+
+ # If ld is used when linking, flag to hardcode $libdir into a binary
+ # during linking. This must work even if $libdir does not exist.
diff --git a/testing/unixodbc/PKGBUILD b/testing/unixodbc/PKGBUILD
new file mode 100644
index 000000000..8d19b5a7c
--- /dev/null
+++ b/testing/unixodbc/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 145233 2011-12-19 18:04:27Z andrea $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=unixodbc
+pkgver=2.3.1
+pkgrel=1
+pkgdesc="ODBC is an open specification for providing application developers with a predictable API with which to access Data Sources"
+arch=('i686' 'x86_64')
+license=('GPL2' 'LGPL2.1')
+url="http://www.unixodbc.org/"
+backup=('etc/odbc.ini' 'etc/odbcinst.ini')
+depends=('readline' 'libltdl')
+options=('!libtool')
+source=("http://www.unixodbc.org/unixODBC-$pkgver.tar.gz")
+md5sums=('86788d4006620fa1f171c13d07fdcaab')
+
+build() {
+ cd ${srcdir}/unixODBC-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd ${srcdir}/unixODBC-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/~mtjm/python-coverage/LICENSE b/~mtjm/python-coverage/LICENSE
new file mode 100644
index 000000000..304031cb6
--- /dev/null
+++ b/~mtjm/python-coverage/LICENSE
@@ -0,0 +1,29 @@
+# COPYRIGHT AND LICENSE
+#
+# Copyright 2001 Gareth Rees. All rights reserved.
+# Copyright 2004-2010 Ned Batchelder. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the
+# distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+# DAMAGE.
diff --git a/~mtjm/python-coverage/PKGBUILD b/~mtjm/python-coverage/PKGBUILD
new file mode 100644
index 000000000..f9acc0d94
--- /dev/null
+++ b/~mtjm/python-coverage/PKGBUILD
@@ -0,0 +1,47 @@
+# Maintainer: Michał Masłowski <mtjm@mtjm.eu>
+
+pkgname=(python-coverage python2-coverage)
+pkgver=3.5.1
+pkgrel=1
+pkgdesc="Code coverage measurement for Python"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://nedbatchelder.com/code/coverage/"
+license=('BSD')
+makedepends=('python' 'python2' 'python-distribute' 'python2-distribute')
+provides=()
+conflicts=()
+replaces=()
+backup=()
+options=(!emptydirs)
+install=
+source=("http://pypi.python.org/packages/source/c/coverage/coverage-${pkgver}.tar.gz" LICENSE)
+md5sums=('410d4c8155a4dab222f2bc51212d4a24'
+ 'f86a7dcb9a1bc636cdbcc19a96d19b2c')
+
+# Tests are not run, since upstream removes them from release tarballs.
+
+build() {
+ cd $srcdir
+ cp -r coverage-$pkgver build-py2k
+ cp -r coverage-$pkgver build-py3k
+ cd build-py2k
+ python2 setup.py build
+ cd ../build-py3k
+ python setup.py build
+}
+
+package_python-coverage() {
+ depends=('python' 'python-distribute')
+ cd "$srcdir/build-py3k"
+ python setup.py install --root="$pkgdir/" --optimize=1
+ install -D -m644 $srcdir/LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
+
+package_python2-coverage() {
+ depends=('python2' 'python2-distribute')
+ cd "$srcdir/build-py2k"
+ python2 setup.py install --root="$pkgdir/" --optimize=1
+ # Name the script differently.
+ mv $pkgdir/usr/bin/coverage $pkgdir/usr/bin/coverage2
+ install -D -m644 $srcdir/LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}