diff options
author | root <root@rshg054.dnsready.net> | 2011-12-20 23:14:59 +0000 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2011-12-20 23:14:59 +0000 |
commit | ea1f4bece8870857691a7123bdc899562760b3fe (patch) | |
tree | b332a0692c3e63d46cb60cb1214fc57871e619c8 | |
parent | 6d2dec5c3443d142a0131c43666929490961c16a (diff) |
Tue Dec 20 23:14:59 UTC 2011
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 Binary files differnew file mode 100644 index 000000000..6e39f3d4f --- /dev/null +++ b/community-testing/paraview/paraview.png 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 Binary files differnew file mode 100644 index 000000000..19d899963 --- /dev/null +++ b/testing/qt3/qt-copy-kde-patches.tar.bz2 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 Binary files differnew file mode 100644 index 000000000..3f4aee171 --- /dev/null +++ b/testing/qt3/qt-patches.tar.bz2 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" +} |