summaryrefslogtreecommitdiff
path: root/testing
diff options
context:
space:
mode:
Diffstat (limited to 'testing')
-rw-r--r--testing/apr-util/PKGBUILD28
-rw-r--r--testing/arora/PKGBUILD28
-rw-r--r--testing/arora/install12
-rw-r--r--testing/binutils/PKGBUILD83
-rw-r--r--testing/binutils/binutils.install17
-rw-r--r--testing/erlang/PKGBUILD71
-rw-r--r--testing/fakeroot/PKGBUILD35
-rw-r--r--testing/fakeroot/fakeroot.install14
-rw-r--r--testing/fontforge/PKGBUILD39
-rw-r--r--testing/freetds/PKGBUILD28
-rw-r--r--testing/gcc/PKGBUILD259
-rw-r--r--testing/gcc/gcc-ada.install20
-rw-r--r--testing/gcc/gcc-fortran.install16
-rw-r--r--testing/gcc/gcc-go.install20
-rw-r--r--testing/gcc/gcc-hash-style-both.patch122
-rw-r--r--testing/gcc/gcc-libs.install16
-rw-r--r--testing/gcc/gcc-pr49720.patch26
-rw-r--r--testing/gcc/gcc.install20
-rw-r--r--testing/gcc/gcc_pure64.patch26
-rw-r--r--testing/ghc/PKGBUILD43
-rw-r--r--testing/ghc/build.mk150
-rw-r--r--testing/ghc/ghc.install19
-rw-r--r--testing/glibc/PKGBUILD204
-rw-r--r--testing/glibc/glibc-2.10-bz4781.patch42
-rw-r--r--testing/glibc/glibc-2.10-dont-build-timezone.patch13
-rw-r--r--testing/glibc/glibc-2.12.1-static-shared-getpagesize.patch11
-rw-r--r--testing/glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch26
-rw-r--r--testing/glibc/glibc-2.13-futex.patch31
-rw-r--r--testing/glibc/glibc-2.14-libdl-crash.patch132
-rw-r--r--testing/glibc/glibc-2.14-reexport-rpc-interface.patch26
-rw-r--r--testing/glibc/glibc-2.14-reinstall-nis-rpc-headers.patch28
-rw-r--r--testing/glibc/glibc-2.14-revert-4768ae77.patch37
-rw-r--r--testing/glibc/glibc-2.14.1-tzfile-overflow.patch72
-rw-r--r--testing/glibc/glibc-__i686.patch13
-rw-r--r--testing/glibc/glibc.install20
-rwxr-xr-xtesting/glibc/locale-gen42
-rw-r--r--testing/glibc/locale.gen.txt23
-rwxr-xr-xtesting/glibc/nscd40
-rw-r--r--testing/gtk3/PKGBUILD38
-rw-r--r--testing/gtk3/gtk3.install15
-rw-r--r--testing/gtk3/settings.ini2
-rw-r--r--testing/kdelibs/PKGBUILD57
-rw-r--r--testing/kdelibs/archlinux-menu.patch22
-rw-r--r--testing/kdelibs/kde-applications-menu.patch22
-rw-r--r--testing/kdelibs/kdelibs.install13
-rw-r--r--testing/kdevplatform/PKGBUILD39
-rw-r--r--testing/kdevplatform/subversion17.patch127
-rw-r--r--testing/keyutils/PKGBUILD24
-rw-r--r--testing/krb5/PKGBUILD90
-rw-r--r--testing/krb5/krb5-1.9.1-2011-007.patch40
-rw-r--r--testing/krb5/krb5-1.9.1-canonicalize-fallback.patch58
-rw-r--r--testing/krb5/krb5-1.9.1-config-script.patch27
-rw-r--r--testing/krb5/krb5-kadmind40
-rw-r--r--testing/krb5/krb5-kdc40
-rw-r--r--testing/krb5/krb5-kpropd40
-rw-r--r--testing/kwebkitpart/PKGBUILD30
-rw-r--r--testing/kwebkitpart/kwebkitpart.install (renamed from testing/kdevplatform/kdevplatform.install)0
-rw-r--r--testing/libdrm/COPYING48
-rw-r--r--testing/libdrm/PKGBUILD56
-rw-r--r--testing/libdrm/git_fixes.diff19
-rw-r--r--testing/libdrm/list.h137
-rw-r--r--testing/libdrm/no-pthread-stubs.patch66
-rw-r--r--testing/libdrm/rbo.h50
-rw-r--r--testing/libreoffice/PKGBUILD923
-rw-r--r--testing/libreoffice/PKGBUILD.next_stable924
-rw-r--r--testing/libreoffice/buildfix_boost.diff40
-rw-r--r--testing/libreoffice/buildfix_ct2n.diff17
-rw-r--r--testing/libreoffice/gcc462_buildfix.diff138
-rw-r--r--testing/libreoffice/libreoffice.install47
-rw-r--r--testing/libreoffice/scp2-more-reasonable-file-access-rights.diff15
-rw-r--r--testing/libreoffice/vbahelper.visibility.patch33
-rw-r--r--testing/linux-api-headers/PKGBUILD42
-rw-r--r--testing/llvm/PKGBUILD199
-rw-r--r--testing/llvm/cindexer-clang-path.patch10
-rw-r--r--testing/llvm/clang-plugin-loader-registry.patch11
-rw-r--r--testing/llvm/clang-pure64.patch13
-rw-r--r--testing/llvm/enable-lto.patch32
-rw-r--r--testing/llvm/fix-gold-lto-linking.patch11
-rw-r--r--testing/module-init-tools/PKGBUILD49
-rw-r--r--testing/module-init-tools/depmod.conf5
-rw-r--r--testing/module-init-tools/docfix.patch90
-rw-r--r--testing/module-init-tools/modprobe.conf3
-rw-r--r--testing/openldap/PKGBUILD96
-rw-r--r--testing/openldap/ntlm.patch230
-rw-r--r--testing/openldap/openldap.install20
-rwxr-xr-xtesting/openldap/slapd49
-rw-r--r--testing/openldap/slapd.default6
-rw-r--r--testing/pcre/PKGBUILD43
-rw-r--r--testing/php/PKGBUILD365
-rw-r--r--testing/php/apache.conf13
-rw-r--r--testing/php/logrotate.d.php-fpm6
-rw-r--r--testing/php/php-fpm.conf.in.patch80
-rw-r--r--testing/php/php.ini.patch126
-rw-r--r--testing/php/rc.d.php-fpm158
-rw-r--r--testing/pyalpm/PKGBUILD23
-rw-r--r--testing/pyqt/PKGBUILD79
-rw-r--r--testing/qt/PKGBUILD126
-rw-r--r--testing/qt/assistant.desktop9
-rw-r--r--testing/qt/designer.desktop11
-rw-r--r--testing/qt/linguist.desktop10
-rw-r--r--testing/qt/qt.install12
-rw-r--r--testing/qt/qtconfig.desktop10
-rw-r--r--testing/qt3/PKGBUILD133
-rw-r--r--testing/qt3/eastern_asian_languagues.diff39
-rw-r--r--testing/qt3/gcc-4.6.patch33
-rw-r--r--testing/qt3/mysql.patch47
-rw-r--r--testing/qt3/qt-copy-kde-patches.tar.bz2bin0 -> 31498 bytes
-rw-r--r--testing/qt3/qt-font-default-subst.diff77
-rw-r--r--testing/qt3/qt-odbc.patch19
-rw-r--r--testing/qt3/qt-patches.tar.bz2bin0 -> 3708 bytes
-rw-r--r--testing/qt3/qt.install12
-rw-r--r--testing/qt3/qt.profile4
-rw-r--r--testing/qt3/qt3-png14.patch33
-rw-r--r--testing/qt3/utf8-bug-qt3.diff101
-rw-r--r--testing/qtwebkit/PKGBUILD38
-rw-r--r--testing/qtwebkit/python2-path.patch29
-rw-r--r--testing/redland/PKGBUILD79
-rw-r--r--testing/redland/rpath.diff11
-rw-r--r--testing/shadow/LICENSE31
-rw-r--r--testing/shadow/PKGBUILD107
-rw-r--r--testing/shadow/adduser399
-rw-r--r--testing/shadow/chgpasswd4
-rw-r--r--testing/shadow/chpasswd6
-rw-r--r--testing/shadow/defaults.pam6
-rw-r--r--testing/shadow/login21
-rw-r--r--testing/shadow/login.defs197
-rw-r--r--testing/shadow/newusers6
-rw-r--r--testing/shadow/passwd4
-rw-r--r--testing/shadow/shadow-add-missing-include.patch11
-rw-r--r--testing/shadow/shadow-strncpy-usage.patch27
-rwxr-xr-xtesting/shadow/shadow.cron.daily6
-rw-r--r--testing/shadow/shadow.install9
-rw-r--r--testing/shadow/shadow_CVE-2011-0721.patch57
-rw-r--r--testing/shadow/useradd.defaults9
-rw-r--r--testing/shadow/xstrdup.patch9
-rw-r--r--testing/subversion/PKGBUILD79
-rw-r--r--testing/subversion/subversion.rpath.fix.patch10
-rw-r--r--testing/subversion/svn11
-rw-r--r--testing/subversion/svnmerge.py2370
-rwxr-xr-xtesting/subversion/svnserve42
-rw-r--r--testing/subversion/svnserve.conf7
-rw-r--r--testing/syslinux/PKGBUILD49
-rw-r--r--testing/syslinux/syslinux-dont-build-dos-windows-targets.patch12
-rw-r--r--testing/syslinux/syslinux-install_update459
-rw-r--r--testing/syslinux/syslinux.cfg79
-rw-r--r--testing/syslinux/syslinux.install13
-rw-r--r--testing/texinfo/PKGBUILD34
-rw-r--r--testing/texinfo/texinfo-4.13a-data_types.patch32
-rw-r--r--testing/texinfo/texinfo.install21
-rw-r--r--testing/unixodbc/PKGBUILD28
-rw-r--r--testing/xulrunner/PKGBUILD52
-rw-r--r--testing/xulrunner/mozconfig38
-rw-r--r--testing/xulrunner/mozilla-pkgconfig.patch40
153 files changed, 4393 insertions, 7573 deletions
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/binutils/PKGBUILD b/testing/binutils/PKGBUILD
deleted file mode 100644
index a1b61d31f..000000000
--- a/testing/binutils/PKGBUILD
+++ /dev/null
@@ -1,83 +0,0 @@
-# $Id: PKGBUILD 144110 2011-12-04 03:46:03Z allan $
-# Maintainer: Allan McRae <allan@archlinux.org>
-
-# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
-
-pkgname=binutils
-pkgver=2.22
-pkgrel=2
-_date=20111201
-pkgdesc="A set of programs to assemble and manipulate binary and object files"
-arch=('i686' 'x86_64')
-url="http://www.gnu.org/software/binutils/"
-license=('GPL')
-groups=('base-devel')
-depends=('glibc>=2.14' 'zlib')
-checkdepends=('dejagnu')
-options=('!libtool' '!distcc' '!ccache')
-install=binutils.install
-source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}_${_date}.tar.bz2)
-md5sums=('77c15027ac112c65fd5f73ca91b0651c')
-
-mksource() {
- mkdir ${pkgname}-${_date}
- cd ${pkgname}-${_date}
- export _TAG=binutils-2_22-branch
- export 'CVSROOT=:pserver:anoncvs@sourceware.org:/cvs/src'
- cvs -z9 co -r $_TAG binutils || return 1
- mv src binutils
- tar -cvjf ../binutils-${pkgver}_${_date}.tar.bz2 binutils/*
-}
-
-build() {
- cd ${srcdir}
- mkdir binutils-build && cd binutils-build
-
- [[ $CARCH == "x86_64" ]] && CONFIGFLAG="--enable-64-bit-bfd --disable-multilib"
-
- ${srcdir}/binutils/configure --prefix=/usr \
- --enable-ld=default --enable-gold \
- --enable-plugins --enable-threads \
- --enable-shared $CONFIGFLAG
-
- # check the host environment and makes sure all the necessary tools are available
- make configure-host
-
- make tooldir=${pkgdir}/usr
-}
-
-check() {
- cd ${srcdir}/binutils-build
-
- # do not abort on errors - manually check log files
- make -k -j1 check || true
-}
-
-package() {
- cd ${srcdir}/binutils-build
- make prefix=${pkgdir}/usr tooldir=${pkgdir}/usr install
-
- # Add some useful headers
- install -m644 ${srcdir}/binutils/include/libiberty.h ${pkgdir}/usr/include
- install -m644 ${srcdir}/binutils/include/demangle.h ${pkgdir}/usr/include
-
- # Rebuild libiberty.a with -fPIC
- make -C libiberty clean
- make CFLAGS="$CFLAGS -fPIC" -C libiberty
- install -m644 libiberty/libiberty.a ${pkgdir}/usr/lib
-
- # Rebuild libbfd.a with -fPIC
- make -C bfd clean
- # hidden visability prevent 3rd party shared libraries exporting bfd non-stable API
- make CFLAGS="$CFLAGS -fPIC -fvisibility=hidden" -C bfd
- install -m644 bfd/libbfd.a ${pkgdir}/usr/lib
-
- # Remove Windows/Novell specific man pages
- rm -f ${pkgdir}/usr/share/man/man1/{dlltool,nlmconv,windres,windmc}*
-
- # Remove these symlinks, they are not ABI stable.
- # Programs should compile static to the .a file.
- rm -f ${pkgdir}/usr/lib/lib{bfd,opcodes}.so
- echo "INPUT ( /usr/lib/libbfd.a -liberty -lz )" >${pkgdir}/usr/lib/libbfd.so
- echo "INPUT ( /usr/lib/libopcodes.a -lbfd )" >${pkgdir}/usr/lib/libopcodes.so
-}
diff --git a/testing/binutils/binutils.install b/testing/binutils/binutils.install
deleted file mode 100644
index 8bf9f3a47..000000000
--- a/testing/binutils/binutils.install
+++ /dev/null
@@ -1,17 +0,0 @@
-infodir=usr/share/info
-filelist=(as.info bfd.info binutils.info configure.info gprof.info ld.info standards.info)
-
-post_upgrade() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- install-info $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
-
-pre_remove() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
-
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/fakeroot/PKGBUILD b/testing/fakeroot/PKGBUILD
deleted file mode 100644
index 966f32b38..000000000
--- a/testing/fakeroot/PKGBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# $Id: PKGBUILD 144101 2011-12-03 22:12:51Z allan $
-# Maintainer: Allan McRae <allan@archlinux.org>
-# Contributor: Jochem Kossen <j.kossen@home.nl>
-
-pkgname=fakeroot
-pkgver=1.18.2
-pkgrel=1
-pkgdesc="Gives a fake root environment, useful for building packages as a non-privileged user"
-arch=('i686' 'x86_64')
-license=('GPL')
-url="http://packages.debian.org/fakeroot"
-groups=('base-devel')
-install=fakeroot.install
-depends=('glibc' 'filesystem' 'sed' 'util-linux' 'sh')
-options=('!libtool')
-source=(http://ftp.debian.org/debian/pool/main/f/${pkgname}/${pkgname}_${pkgver}.orig.tar.bz2)
-md5sums=('79f32331358ad58499704ea5e19fd0ae')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- ./configure --prefix=/usr --libdir=/usr/lib/libfakeroot \
- --disable-static --with-ipc=sysv
- make
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR=${pkgdir} install
-
- install -dm755 ${pkgdir}/etc/ld.so.conf.d/
- echo '/usr/lib/libfakeroot' > ${pkgdir}/etc/ld.so.conf.d/fakeroot.conf
-
- # install README for sysv/tcp usage
- install -Dm644 $srcdir/$pkgname-$pkgver/README $pkgdir/usr/share/doc/$pkgname/README
-}
diff --git a/testing/fakeroot/fakeroot.install b/testing/fakeroot/fakeroot.install
deleted file mode 100644
index 986c91b06..000000000
--- a/testing/fakeroot/fakeroot.install
+++ /dev/null
@@ -1,14 +0,0 @@
-post_install() {
- sbin/ldconfig -r .
-}
-
-post_upgrade() {
- if [ "$(vercmp $2 1.14.4-2)" -lt 0 ]; then
- sed -i -e '/\/usr\/lib\/libfakeroot/d' etc/ld.so.conf
- fi
- sbin/ldconfig -r .
-}
-
-pre_remove() {
- sbin/ldconfig -r .
-}
diff --git a/testing/fontforge/PKGBUILD b/testing/fontforge/PKGBUILD
deleted file mode 100644
index 91f7527d4..000000000
--- a/testing/fontforge/PKGBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# $Id: PKGBUILD 145014 2011-12-14 10:50:55Z bisson $
-# Maintainer: Gaetan Bisson <bisson@archlinux.org>
-# Contributor: Eric Belanger <eric@archlinux.org>
-# Contributor: William Rea <sillywilly@gmail.com>
-
-pkgname=fontforge
-pkgver=20111214
-pkgrel=1
-pkgdesc='Outline and bitmap font editor'
-arch=('i686' 'x86_64')
-url='http://fontforge.sourceforge.net/'
-license=('BSD')
-depends=('libxkbui' 'libxi' 'libxml2' 'pango' 'giflib' 'libtiff' 'python2')
-options=('!libtool' '!makeflags')
-source=("ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.xz")
-sha1sums=('55c3f00c0b486492ba071fc479e1feb426562e2b')
-
-# git clone git://fontforge.git.sourceforge.net/gitroot/fontforge/fontforge; cd fontforge; git archive --prefix=${pkgname}-${pkgver}/ master | xz > ../${pkgname}-${pkgver}.tar.xz
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- sed -i 's/python /python2 /g' Makefile.dynamic.in
- ./configure \
- --prefix=/usr \
- --mandir=/usr/share/man \
- --enable-type3 \
- --enable-devicetables \
- --with-regular-link \
- --with-python=python2 \
- --enable-pyextension \
-
- make
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
- install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
-}
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/gcc/PKGBUILD b/testing/gcc/PKGBUILD
deleted file mode 100644
index d57464ec6..000000000
--- a/testing/gcc/PKGBUILD
+++ /dev/null
@@ -1,259 +0,0 @@
-# $Id: PKGBUILD 144107 2011-12-04 02:41:48Z allan $
-# Maintainer: Allan McRae <allan@archlinux.org>
-
-# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
-# NOTE: libtool requires rebuilt with each new gcc version
-
-pkgname=('gcc' 'gcc-libs' 'gcc-fortran' 'gcc-objc' 'gcc-ada' 'gcc-go')
-pkgver=4.6.2
-pkgrel=3
-_snapshot=4.6-20111125
-_libstdcppmanver=20110814 # Note: check source directory name when updating this
-pkgdesc="The GNU Compiler Collection"
-arch=('i686' 'x86_64')
-license=('GPL' 'LGPL' 'FDL' 'custom')
-url="http://gcc.gnu.org"
-makedepends=('binutils>=2.22' 'libmpc' 'cloog' 'ppl' 'gcc-ada')
-checkdepends=('dejagnu')
-options=('!libtool' '!emptydirs')
-source=(#ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2
- ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-${_snapshot}.tar.bz2
- ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-api.${_libstdcppmanver}.man.tar.bz2
- gcc_pure64.patch
- gcc-hash-style-both.patch
- gcc-pr49720.patch)
-md5sums=('922b0ee688669c188d237bbd21d42d07'
- 'ce920d2550ff7e042b9f091d27764d8f'
- '4030ee1c08dd1e843c0225b772360e76'
- '4df25b623799b148a0703eaeec8fdf3f'
- 'f9d7e5b792c59175f3da3f8421447512')
-
-if [ -n "${_snapshot}" ]; then
- _basedir="${srcdir}/gcc-${_snapshot}"
-else
- _basedir="${srcdir}/gcc-${pkgver}"
-fi
-
-build() {
- cd ${_basedir}
-
- # Do not install libiberty
- sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in
-
- # Do not run fixincludes
- sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
-
- if [ "${CARCH}" = "x86_64" ]; then
- patch -Np1 -i ${srcdir}/gcc_pure64.patch
- fi
- patch -Np0 -i ${srcdir}/gcc-hash-style-both.patch
-
- # fix compiler segfault in binutils testsuite
- patch -Np1 -i ${srcdir}/gcc-pr49720.patch
-
- echo ${pkgver} > gcc/BASE-VER
-
- cd ${srcdir}
- mkdir gcc-build && cd gcc-build
-
- ${_basedir}/configure --prefix=/usr \
- --libdir=/usr/lib --libexecdir=/usr/lib \
- --mandir=/usr/share/man --infodir=/usr/share/info \
- --with-bugurl=https://bugs.archlinux.org/ \
- --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ \
- --enable-shared --enable-threads=posix \
- --with-system-zlib --enable-__cxa_atexit \
- --disable-libunwind-exceptions --enable-clocale=gnu \
- --enable-gnu-unique-object --enable-linker-build-id \
- --with-ppl --enable-cloog-backend=isl \
- --enable-lto --enable-gold --enable-ld=default \
- --enable-plugin --with-plugin-ld=ld.gold \
- --disable-multilib --disable-libssp --disable-libstdcxx-pch \
- --enable-checking=release
- make
-}
-
-check() {
- cd gcc-build
-
- # increase stack size to prevent test failures
- # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31827
- ulimit -s 32768
-
- # do not abort on error as some are "expected"
- make -k check || true
- ${_basedir}/contrib/test_summary
-}
-
-package_gcc-libs()
-{
- pkgdesc="Runtime libraries shipped by GCC"
- groups=('base')
- depends=('glibc>=2.14')
- install=gcc-libs.install
-
- cd gcc-build
- make -j1 -C $CHOST/libgcc DESTDIR=${pkgdir} install-shared
- for lib in libmudflap libgomp libstdc++-v3/src; do
- make -j1 -C $CHOST/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
- done
- make -j1 -C $CHOST/libstdc++-v3/po DESTDIR=${pkgdir} install
- make -j1 -C $CHOST/libgomp DESTDIR=${pkgdir} install-info
-
- make -j1 DESTDIR=${pkgdir} install-target-libquadmath
- make -j1 DESTDIR=${pkgdir} install-target-libgfortran
- make -j1 DESTDIR=${pkgdir} install-target-libobjc
-
- # remove unnecessary files installed by install-target-{libquadmath,libgfortran,libobjc}
- rm -rf ${pkgdir}/usr/lib/{gcc/,libgfortran.spec}
-
- # remove static libraries
- find ${pkgdir} -name *.a -delete
-
- # Install Runtime Library Exception
- install -Dm644 ${_basedir}/COPYING.RUNTIME \
- ${pkgdir}/usr/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION
-}
-
-package_gcc()
-{
- pkgdesc="The GNU Compiler Collection - C and C++ frontends"
- depends=("gcc-libs=$pkgver-$pkgrel" 'binutils>=2.22' 'libmpc' 'cloog' 'ppl')
- groups=('base-devel')
- install=gcc.install
-
- cd gcc-build
-
- # unfortunately it is much, much easier to install the lot and clean-up the mess...
- make -j1 DESTDIR=${pkgdir} install
- rm $pkgdir/usr/bin/{{$CHOST-,}gfortran,{$CHOST-,}gccgo,gnat*}
- rm $pkgdir/usr/lib/*.so*
- rm $pkgdir/usr/lib/lib{ffi,gfortran,go{,begin},objc,quadmath}.a
- rm $pkgdir/usr/lib/libgfortran.spec
- rm -r $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{ada{include,lib},finclude,include/objc}
- rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/include/{ffi{,target}.h,quadmath{,_weak}.h}
- rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{cc1obj{,plus},f951,gnat1,go1,libgfortranbegin.a}
- rm -r $pkgdir/usr/lib/go
- rm $pkgdir/usr/share/info/{gccgo,gfortran,gnat*,libgomp,libquadmath}.info
- rm $pkgdir/usr/share/locale/{de,fr}/LC_MESSAGES/libstdc++.mo
- rm $pkgdir/usr/share/man/man1/{gccgo,gfortran}.1
- rm $pkgdir/usr/share/man/man3/ffi*
-
- # many packages require these symlinks
- install -dm755 ${pkgdir}/lib
- ln -sf /usr/bin/cpp ${pkgdir}/lib/cpp
- ln -sf gcc ${pkgdir}/usr/bin/cc
- ln -sf g++ ${pkgdir}/usr/bin/c++
-
- # install gengtype for plugin support
- install -m755 gcc/build/gengtype $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/
- install -m644 gcc/gtype.state $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/
-
- # POSIX conformance launcher scripts for c89 and c99
- cat > $pkgdir/usr/bin/c89 <<"EOF"
-#!/bin/sh
-fl="-std=c89"
-for opt; do
- case "$opt" in
- -ansi|-std=c89|-std=iso9899:1990) fl="";;
- -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2
- exit 1;;
- esac
-done
-exec gcc $fl ${1+"$@"}
-EOF
-
- cat > $pkgdir/usr/bin/c99 <<"EOF"
-#!/bin/sh
-fl="-std=c99"
-for opt; do
- case "$opt" in
- -std=c99|-std=iso9899:1999) fl="";;
- -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2
- exit 1;;
- esac
-done
-exec gcc $fl ${1+"$@"}
-EOF
-
- chmod 755 $pkgdir/usr/bin/c{8,9}9
-
- # install the libstdc++ man pages
- install -dm755 ${pkgdir}/usr/share/man/man3
- install -m644 ${srcdir}/man/man3/* ${pkgdir}/usr/share/man/man3/
-
- # Install Runtime Library Exception
- install -Dm644 ${_basedir}/COPYING.RUNTIME \
- ${pkgdir}/usr/share/licenses/gcc/RUNTIME.LIBRARY.EXCEPTION
-}
-
-package_gcc-fortran()
-{
- pkgdesc="Fortran front-end for GCC"
- depends=("gcc=$pkgver-$pkgrel")
- install=gcc-fortran.install
-
- cd gcc-build
- make -j1 DESTDIR=${pkgdir} install-target-libquadmath
- make -j1 DESTDIR=$pkgdir install-target-libgfortran
- make -j1 -C $CHOST/libgomp DESTDIR=$pkgdir install-nodist_fincludeHEADERS
- make -j1 -C gcc DESTDIR=$pkgdir fortran.install-{common,man,info}
- install -Dm755 gcc/f951 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/f951
-
- # remove libraries included in gcc-libs
- rm ${pkgdir}/usr/lib/lib{gfortran,quadmath}.so*
- rm ${pkgdir}/usr/share/info/libquadmath.info
-
- # Install Runtime Library Exception
- install -Dm644 ${_basedir}/COPYING.RUNTIME \
- ${pkgdir}/usr/share/licenses/gcc-fortran/RUNTIME.LIBRARY.EXCEPTION
-}
-
-package_gcc-objc()
-{
- pkgdesc="Objective-C front-end for GCC"
- depends=("gcc=$pkgver-$pkgrel")
-
- cd gcc-build
- make -j1 DESTDIR=$pkgdir install-target-libobjc
- install -dm755 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/
- install -m755 gcc/cc1obj{,plus} $pkgdir/usr/lib/gcc/$CHOST/$pkgver/
-
- # remove libraries included in gcc-libs
- rm ${pkgdir}/usr/lib/libobjc.so*
-
- # Install Runtime Library Exception
- install -Dm644 ${_basedir}/COPYING.RUNTIME \
- ${pkgdir}/usr/share/licenses/gcc-objc/RUNTIME.LIBRARY.EXCEPTION
-}
-
-package_gcc-ada()
-{
- pkgdesc="Ada front-end for GCC (GNAT)"
- depends=("gcc=$pkgver-$pkgrel")
- install=gcc-ada.install
-
- cd gcc-build/gcc
- make -j1 DESTDIR=$pkgdir ada.install-{common,info}
- install -m755 gnat1 $pkgdir/usr/lib/gcc/$CHOST/$pkgver
-
- # Install Runtime Library Exception
- install -Dm644 ${_basedir}/COPYING.RUNTIME \
- ${pkgdir}/usr/share/licenses/gcc-ada/RUNTIME.LIBRARY.EXCEPTION
-}
-
-package_gcc-go()
-{
- pkgdesc="Go front-end for GCC"
- depends=("gcc=$pkgver-$pkgrel")
- install=gcc-go.install
-
- cd gcc-build
- make -j1 DESTDIR=$pkgdir install-target-libgo
- make -j1 -C gcc DESTDIR=$pkgdir go.install-{common,man,info}
- install -Dm755 gcc/go1 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/go1
-
- # Install Runtime Library Exception
- install -Dm644 ${_basedir}/COPYING.RUNTIME \
- ${pkgdir}/usr/share/licenses/gcc-go/RUNTIME.LIBRARY.EXCEPTION
-}
diff --git a/testing/gcc/gcc-ada.install b/testing/gcc/gcc-ada.install
deleted file mode 100644
index df0553a4f..000000000
--- a/testing/gcc/gcc-ada.install
+++ /dev/null
@@ -1,20 +0,0 @@
-infodir=usr/share/info
-filelist=(gnat-style.info gnat_rm.info gnat_ugn.info)
-
-post_install() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- install-info $infodir/$file.gz $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.gz $infodir/dir 2> /dev/null
- done
-}
diff --git a/testing/gcc/gcc-fortran.install b/testing/gcc/gcc-fortran.install
deleted file mode 100644
index b15d89a97..000000000
--- a/testing/gcc/gcc-fortran.install
+++ /dev/null
@@ -1,16 +0,0 @@
-infodir=usr/share/info
-file="gfortran.info"
-
-post_install() {
- [ -x usr/bin/install-info ] || return 0
- install-info $infodir/$file.gz $infodir/dir 2> /dev/null
-}
-
-post_upgrade() {
- post_install $1
-}
-
-pre_remove() {
- [ -x usr/bin/install-info ] || return 0
- install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
-}
diff --git a/testing/gcc/gcc-go.install b/testing/gcc/gcc-go.install
deleted file mode 100644
index 7dc50dee5..000000000
--- a/testing/gcc/gcc-go.install
+++ /dev/null
@@ -1,20 +0,0 @@
-infodir=usr/share/info
-filelist=(gccgo.info)
-
-post_install() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- install-info $infodir/$file.gz $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.gz $infodir/dir 2> /dev/null
- done
-}
diff --git a/testing/gcc/gcc-hash-style-both.patch b/testing/gcc/gcc-hash-style-both.patch
deleted file mode 100644
index 8b59f4535..000000000
--- a/testing/gcc/gcc-hash-style-both.patch
+++ /dev/null
@@ -1,122 +0,0 @@
---- gcc/config/alpha/linux-elf.h.orig 2010-12-09 23:27:07.000000000 +1000
-+++ gcc/config/alpha/linux-elf.h 2011-03-11 10:01:47.770000457 +1000
-@@ -41,7 +41,7 @@
-
- #define ELF_DYNAMIC_LINKER LINUX_DYNAMIC_LINKER
-
--#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \
-+#define LINK_SPEC "-m elf64alpha --hash-style=both %{G*} %{relax:-relax} \
- %{O*:-O3} %{!O*:-O1} \
- %{shared:-shared} \
- %{!shared: \
---- gcc/config/i386/linux64.h.orig 2011-03-03 08:35:36.000000000 +1000
-+++ gcc/config/i386/linux64.h 2011-03-11 10:01:47.770000457 +1000
-@@ -78,7 +78,7 @@
- %{!mno-sse2avx:%{mavx:-msse2avx}} %{msse2avx:%{!mavx:-msse2avx}}"
-
- #undef LINK_SPEC
--#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} \
-+#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} --hash-style=both \
- %{shared:-shared} \
- %{!shared: \
- %{!static: \
---- gcc/config/i386/linux.h.orig 2011-01-15 04:45:06.000000000 +1000
-+++ gcc/config/i386/linux.h 2011-03-11 10:01:47.770000457 +1000
-@@ -104,7 +104,7 @@
- { "dynamic_linker", LINUX_DYNAMIC_LINKER }
-
- #undef LINK_SPEC
--#define LINK_SPEC "-m %(link_emulation) %{shared:-shared} \
-+#define LINK_SPEC "-m %(link_emulation) --hash-style=both %{shared:-shared} \
- %{!shared: \
- %{!static: \
- %{rdynamic:-export-dynamic} \
---- gcc/config/ia64/linux.h.orig 2010-12-09 23:27:07.000000000 +1000
-+++ gcc/config/ia64/linux.h 2011-03-11 10:01:47.770000457 +1000
-@@ -64,7 +64,7 @@
- #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
-
- #undef LINK_SPEC
--#define LINK_SPEC "\
-+#define LINK_SPEC "--hash-style=both \
- %{shared:-shared} \
- %{!shared: \
- %{!static: \
---- gcc/config/rs6000/linux64.h.orig 2011-02-11 03:30:10.000000000 +1000
-+++ gcc/config/rs6000/linux64.h 2011-03-11 10:03:34.280000457 +1000
-@@ -389,11 +389,11 @@
- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64)
-
-
--#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \
-+#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \
- %{rdynamic:-export-dynamic} \
- -dynamic-linker " LINUX_DYNAMIC_LINKER32 "}}"
-
--#define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \
-+#define LINK_OS_LINUX_SPEC64 "-m elf64ppc --hash-style=both %{!shared: %{!static: \
- %{rdynamic:-export-dynamic} \
- -dynamic-linker " LINUX_DYNAMIC_LINKER64 "}}"
-
---- gcc/config/rs6000/sysv4.h.orig 2011-01-28 04:36:03.000000000 +1000
-+++ gcc/config/rs6000/sysv4.h 2011-03-11 10:01:47.773333792 +1000
-@@ -830,7 +830,7 @@
- #define LINUX_DYNAMIC_LINKER \
- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)
-
--#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
-+#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \
- %{rdynamic:-export-dynamic} \
- -dynamic-linker " LINUX_DYNAMIC_LINKER "}}"
-
---- gcc/config/s390/linux.h.orig 2010-12-09 23:27:07.000000000 +1000
-+++ gcc/config/s390/linux.h 2011-03-11 10:01:47.770000457 +1000
-@@ -77,7 +77,7 @@
-
- #undef LINK_SPEC
- #define LINK_SPEC \
-- "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
-+ "%{m31:-m elf_s390}%{m64:-m elf64_s390} --hash-style=both \
- %{shared:-shared} \
- %{!shared: \
- %{static:-static} \
---- gcc/config/sparc/linux64.h.orig 2011-02-17 23:57:21.000000000 +1000
-+++ gcc/config/sparc/linux64.h 2011-03-11 10:01:47.770000457 +1000
-@@ -113,7 +113,7 @@
- { "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \
- { "link_arch", LINK_ARCH_SPEC },
-
--#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,%R/usr/lib %{shared:-shared} \
-+#define LINK_ARCH32_SPEC "-m elf32_sparc --hash-style=both -Y P,%R/usr/lib %{shared:-shared} \
- %{!shared: \
- %{!static: \
- %{rdynamic:-export-dynamic} \
-@@ -121,7 +121,7 @@
- %{static:-static}} \
- "
-
--#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
-+#define LINK_ARCH64_SPEC "-m elf64_sparc --hash-style=both -Y P,%R/usr/lib64 %{shared:-shared} \
- %{!shared: \
- %{!static: \
- %{rdynamic:-export-dynamic} \
-@@ -193,7 +193,7 @@
- #else /* !SPARC_BI_ARCH */
-
- #undef LINK_SPEC
--#define LINK_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
-+#define LINK_SPEC "-m elf64_sparc --hash-style=both -Y P,%R/usr/lib64 %{shared:-shared} \
- %{!shared: \
- %{!static: \
- %{rdynamic:-export-dynamic} \
---- gcc/config/sparc/linux.h.orig 2011-01-27 06:30:12.000000000 +1000
-+++ gcc/config/sparc/linux.h 2011-03-11 10:01:47.770000457 +1000
-@@ -74,7 +74,7 @@
- #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
-
- #undef LINK_SPEC
--#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
-+#define LINK_SPEC "-m elf32_sparc --hash-style=both -Y P,/usr/lib %{shared:-shared} \
- %{!mno-relax:%{!r:-relax}} \
- %{!shared: \
- %{!static: \
diff --git a/testing/gcc/gcc-libs.install b/testing/gcc/gcc-libs.install
deleted file mode 100644
index 23553b8f0..000000000
--- a/testing/gcc/gcc-libs.install
+++ /dev/null
@@ -1,16 +0,0 @@
-infodir=usr/share/info
-filelist=(libgomp.info libquadmath.info)
-
-post_upgrade() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- install-info $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
-
-pre_remove() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
diff --git a/testing/gcc/gcc-pr49720.patch b/testing/gcc/gcc-pr49720.patch
deleted file mode 100644
index 8f50c4120..000000000
--- a/testing/gcc/gcc-pr49720.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- trunk/gcc/simplify-rtx.c 2011/10/28 05:55:10 180603
-+++ trunk/gcc/simplify-rtx.c 2011/10/28 06:35:31 180604
-@@ -4352,10 +4352,20 @@
- {
- rtx x = XEXP (op0, 0);
- rtx c = XEXP (op0, 1);
-+ enum rtx_code invcode = op0code == PLUS ? MINUS : PLUS;
-+ rtx tem = simplify_gen_binary (invcode, cmp_mode, op1, c);
-
-- c = simplify_gen_binary (op0code == PLUS ? MINUS : PLUS,
-- cmp_mode, op1, c);
-- return simplify_gen_relational (code, mode, cmp_mode, x, c);
-+ /* Detect an infinite recursive condition, where we oscillate at this
-+ simplification case between:
-+ A + B == C <---> C - B == A,
-+ where A, B, and C are all constants with non-simplifiable expressions,
-+ usually SYMBOL_REFs. */
-+ if (GET_CODE (tem) == invcode
-+ && CONSTANT_P (x)
-+ && rtx_equal_p (c, XEXP (tem, 1)))
-+ return NULL_RTX;
-+
-+ return simplify_gen_relational (code, mode, cmp_mode, x, tem);
- }
-
- /* (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))) is
diff --git a/testing/gcc/gcc.install b/testing/gcc/gcc.install
deleted file mode 100644
index 3407a5e1f..000000000
--- a/testing/gcc/gcc.install
+++ /dev/null
@@ -1,20 +0,0 @@
-infodir=usr/share/info
-filelist=(cpp.info cppinternals.info gcc.info gccinstall.info gccint.info)
-
-post_install() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- install-info $infodir/$file.gz $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.gz $infodir/dir 2> /dev/null
- done
-}
diff --git a/testing/gcc/gcc_pure64.patch b/testing/gcc/gcc_pure64.patch
deleted file mode 100644
index 8c0baf8e2..000000000
--- a/testing/gcc/gcc_pure64.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff -Naur gcc-4.2.0.orig/gcc/config/i386/linux64.h gcc-4.2.0/gcc/config/i386/linux64.h
---- gcc-4.2.0.orig/gcc/config/i386/linux64.h 2007-05-16 19:21:19.000000000 -0400
-+++ gcc-4.2.0/gcc/config/i386/linux64.h 2007-05-18 17:04:05.000000000 -0400
-@@ -49,8 +49,8 @@
- When the -shared link option is used a final link is not being
- done. */
-
--#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
--#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
-+#define GLIBC_DYNAMIC_LINKER32 "/lib32/ld-linux.so.2"
-+#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux-x86-64.so.2"
-
- #undef LINK_SPEC
- #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \
-diff -Naur gcc-4.2.0.orig/gcc/config/i386/t-linux64 gcc-4.2.0/gcc/config/i386/t-linux64
---- gcc-4.2.0.orig/gcc/config/i386/t-linux64 2007-05-16 19:21:19.000000000 -0400
-+++ gcc-4.2.0/gcc/config/i386/t-linux64 2007-05-18 17:04:36.000000000 -0400
-@@ -6,7 +6,7 @@
-
- MULTILIB_OPTIONS = m64/m32
- MULTILIB_DIRNAMES = 64 32
--MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)
-+MULTILIB_OSDIRNAMES = ../lib ../lib32
-
- LIBGCC = stmp-multilib
- INSTALL_LIBGCC = install-multilib
diff --git a/testing/ghc/PKGBUILD b/testing/ghc/PKGBUILD
deleted file mode 100644
index aef26d06e..000000000
--- a/testing/ghc/PKGBUILD
+++ /dev/null
@@ -1,43 +0,0 @@
-# $Id: PKGBUILD 142984 2011-11-19 18:41:40Z vesa $
-# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
-# Special note for devs looking to upgrade this package:
-# ghc places a unique hash for each library when it is built.
-# Libraries depend on versions specified by those hashes.
-# This implies that all libraries need to be rebuilt when ghc is rebuilt.
-# Also, due to dependency loop problems, haskell-ghc-paths and haddock
-# do not carry version dependencies. You will have to remember to build them too.
-pkgname=ghc
-pkgver=7.2.2
-pkgrel=1
-pkgdesc="The Glasgow Haskell Compiler"
-arch=(i686 x86_64)
-url="http://www.haskell.org/ghc/"
-license=("custom")
-depends=('perl' 'gmp>=5.0' gcc)
-makedepends=(ghc happy perl libxslt docbook-xsl)
-install=ghc.install
-options=(!strip)
-groups=(haskell)
-source=("http://www.haskell.org/ghc/dist/$pkgver/ghc-$pkgver-src.tar.bz2"
- build.mk)
-
-build() {
- cd $srcdir/$pkgname-$pkgver
-
- cp $srcdir/build.mk mk/build.mk
-
- ./configure --prefix=/usr
- make -j1 || return 1
-}
-
-package() {
- cd $srcdir/$pkgname-$pkgver
-
- make DESTDIR=$pkgdir install
-
- install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/ghc/license
- install -d $pkgdir/usr/share/haskell
-}
-
-md5sums=('fa19d9fe5049b7a1352b0b7c9880c141'
- '5a3e0880c80b1dcecf779ff2e63a9c0d')
diff --git a/testing/ghc/build.mk b/testing/ghc/build.mk
deleted file mode 100644
index f918a0f16..000000000
--- a/testing/ghc/build.mk
+++ /dev/null
@@ -1,150 +0,0 @@
-# -----------------------------------------------------------------------------
-# A Sample build.mk
-#
-# Uncomment one of the following BuildFlavour settings to get the desired
-# overall build type, and then tweak the options in the relevant section
-# below.
-
-# Uncomment one of these to select a build profile below:
-
-# Full build with max optimisation (slow build)
-BuildFlavour = perf
-
-# Fastest build (libs unoptimised):
-#BuildFlavour = quickest
-
-# Fast build with optimised libraries:
-#BuildFlavour = quick
-
-# Profile the stage2 compiler:
-#BuildFlavour = prof
-
-# A development build, working on the stage 1 compiler:
-#BuildFlavour = devel1
-
-# A development build, working on the stage 2 compiler:
-#BuildFlavour = devel2
-
-GhcLibWays = v
-
-# -------- 1. A Performance/Distribution build--------------------------------
-
-ifeq "$(BuildFlavour)" "perf"
-
-# perf matches the default settings, repeated here for comparison:
-
-SRC_HC_OPTS = -O -H64m
-GhcStage1HcOpts = -O -fasm
-GhcStage2HcOpts = -O2 -fasm
-GhcHcOpts = -Rghc-timing
-GhcLibHcOpts = -O2 -XGenerics
-GhcLibWays += p
-
-ifeq "$(PlatformSupportsSharedLibs)" "YES"
-GhcLibWays += dyn
-endif
-
-endif
-
-# -------- A Fast build ------------------------------------------------------
-
-ifeq "$(BuildFlavour)" "quickest"
-
-SRC_HC_OPTS = -H64m -O0 -fasm
-GhcStage1HcOpts = -O -fasm
-GhcStage2HcOpts = -O0 -fasm
-GhcLibHcOpts = -O0 -fasm
-SplitObjs = NO
-HADDOCK_DOCS = NO
-BUILD_DOCBOOK_HTML = NO
-BUILD_DOCBOOK_PS = NO
-BUILD_DOCBOOK_PDF = NO
-
-endif
-
-# -------- A Fast build with optimised libs ----------------------------------
-
-ifeq "$(BuildFlavour)" "quick"
-
-SRC_HC_OPTS = -H64m -O0 -fasm
-GhcStage1HcOpts = -O -fasm
-GhcStage2HcOpts = -O0 -fasm
-GhcLibHcOpts = -O -fasm
-SplitObjs = NO
-HADDOCK_DOCS = NO
-BUILD_DOCBOOK_HTML = NO
-BUILD_DOCBOOK_PS = NO
-BUILD_DOCBOOK_PDF = NO
-
-endif
-
-# -------- Profile the stage2 compiler ---------------------------------------
-
-ifeq "$(BuildFlavour)" "prof"
-
-SRC_HC_OPTS = -H64m -O0 -fasm
-GhcStage1HcOpts = -O -fasm
-GhcStage2HcOpts = -O -fasm
-GhcLibHcOpts = -O -fasm
-
-GhcLibWays += p
-GhcProfiled = YES
-
-SplitObjs = NO
-HADDOCK_DOCS = NO
-BUILD_DOCBOOK_HTML = NO
-BUILD_DOCBOOK_PS = NO
-BUILD_DOCBOOK_PDF = NO
-
-endif
-
-
-# -------- A Development build (stage 1) -------------------------------------
-
-ifeq "$(BuildFlavour)" "devel1"
-
-SRC_HC_OPTS = -H64m -O -fasm
-GhcLibHcOpts = -O -dcore-lint
-GhcStage1HcOpts = -Rghc-timing -O0 -DDEBUG
-GhcStage2HcOpts = -Rghc-timing -O -fasm
-SplitObjs = NO
-HADDOCK_DOCS = NO
-BUILD_DOCBOOK_HTML = NO
-BUILD_DOCBOOK_PS = NO
-BUILD_DOCBOOK_PDF = NO
-
-endif
-
-# -------- A Development build (stage 2) -------------------------------------
-
-ifeq "$(BuildFlavour)" "devel2"
-
-SRC_HC_OPTS = -H64m -O -fasm
-GhcLibHcOpts = -O -dcore-lint
-GhcStage1HcOpts = -Rghc-timing -O -fasm
-GhcStage2HcOpts = -Rghc-timing -O0 -DDEBUG
-SplitObjs = NO
-HADDOCK_DOCS = NO
-BUILD_DOCBOOK_HTML = NO
-BUILD_DOCBOOK_PS = NO
-BUILD_DOCBOOK_PDF = NO
-
-endif
-
-# -----------------------------------------------------------------------------
-# Other settings that might be useful
-
-# profiled RTS
-#GhcRtsCcOpts = -pg -g
-
-# Optimised/profiled RTS
-#GhcRtsCcOpts = -O2 -pg
-
-#GhcRtsWithFrontPanel = YES
-#SRC_HC_OPTS += `gtk-config --libs`
-
-# NoFib settings
-NoFibWays =
-STRIP=:
-
-
diff --git a/testing/ghc/ghc.install b/testing/ghc/ghc.install
deleted file mode 100644
index 7d56083bc..000000000
--- a/testing/ghc/ghc.install
+++ /dev/null
@@ -1,19 +0,0 @@
-pkgname=ghc
-
-pre_upgrade() {
- cat << EOF
- ==> Unregistering cabalized packages...
-EOF
- cd /usr/share/haskell/ && (for a in *; do ghc-pkg unregister --force $a &> /dev/null; done; cd - > /dev/null )
- cat << EOF
- ==> Done.
-EOF
-
-}
-
-post_upgrade() {
- cat << EOF
- ==> All cabalized and yaourt-installed packages need to be reinstalled now.
- ==> See /usr/share/haskell/ and ghc-pkg list --user for a tentative list of affected packages.
-EOF
-}
diff --git a/testing/glibc/PKGBUILD b/testing/glibc/PKGBUILD
deleted file mode 100644
index 4e0c2d26e..000000000
--- a/testing/glibc/PKGBUILD
+++ /dev/null
@@ -1,204 +0,0 @@
-# $Id: PKGBUILD 144073 2011-12-02 21:32:48Z allan $
-# Maintainer: Allan McRae <allan@archlinux.org>
-
-# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
-# NOTE: valgrind requires rebuilt with each major glibc version
-
-pkgname=glibc
-pkgver=2.14.1
-pkgrel=2
-_glibcdate=20111025
-pkgdesc="GNU C Library"
-arch=('i686' 'x86_64')
-url="http://www.gnu.org/software/libc"
-license=('GPL' 'LGPL')
-groups=('base')
-depends=('linux-api-headers>=3.1' 'tzdata')
-makedepends=('gcc>=4.6')
-backup=(etc/gai.conf
- etc/locale.gen
- etc/nscd.conf)
-options=('!strip')
-install=glibc.install
-source=(ftp://ftp.archlinux.org/other/glibc/${pkgname}-${pkgver}_${_glibcdate}.tar.xz
- glibc-2.10-dont-build-timezone.patch
- glibc-2.10-bz4781.patch
- glibc-__i686.patch
- glibc-2.12.1-static-shared-getpagesize.patch
- glibc-2.12.2-ignore-origin-of-privileged-program.patch
- glibc-2.13-futex.patch
- glibc-2.14-libdl-crash.patch
- glibc-2.14-revert-4768ae77.patch
- glibc-2.14-reexport-rpc-interface.patch
- glibc-2.14-reinstall-nis-rpc-headers.patch
- nscd
- locale.gen.txt
- locale-gen)
-md5sums=('c52a15134dfa9f2c94f2ccd4cb155cf1'
- '4dadb9203b69a3210d53514bb46f41c3'
- '0c5540efc51c0b93996c51b57a8540ae'
- '40cd342e21f71f5e49e32622b25acc52'
- 'a3ac6f318d680347bb6e2805d42b73b2'
- 'b042647ea7d6f22ad319e12e796bd13e'
- '7d0154b7e17ea218c9fa953599d24cc4'
- '6970bcfeb3bf88913436d5112d16f588'
- '7da8c554a3b591c7401d7023b1928afc'
- 'c5de2a946215d647c8af5432ec4b0da0'
- '55febbb72139ac7b65757df085024b83'
- 'b587ee3a70c9b3713099295609afde49'
- '07ac979b6ab5eeb778d55f041529d623'
- '476e9113489f93b348b21e144b6a8fcf')
-
-
-mksource() {
- git clone git://sourceware.org/git/glibc.git
- pushd glibc
- git checkout -b glibc-2.14-arch origin/release/2.14/master
- popd
- tar -cvJf glibc-${pkgver}_${_glibcdate}.tar.xz glibc/*
-}
-
-build() {
- cd ${srcdir}/glibc
-
- # timezone data is in separate package (tzdata)
- patch -Np1 -i ${srcdir}/glibc-2.10-dont-build-timezone.patch
-
- # http://sources.redhat.com/bugzilla/show_bug.cgi?id=4781
- patch -Np1 -i ${srcdir}/glibc-2.10-bz4781.patch
-
- # http://sources.redhat.com/bugzilla/show_bug.cgi?id=411
- # http://sourceware.org/ml/libc-alpha/2009-07/msg00072.html
- patch -Np1 -i ${srcdir}/glibc-__i686.patch
-
- # http://sourceware.org/bugzilla/show_bug.cgi?id=11929
- # using Fedora "fix" as patch in that bug report causes breakages...
- patch -Np1 -i ${srcdir}/glibc-2.12.1-static-shared-getpagesize.patch
-
- # http://www.exploit-db.com/exploits/15274/
- # http://sourceware.org/git/?p=glibc.git;a=patch;h=d14e6b09 (only fedora branch...)
- patch -Np1 -i ${srcdir}/glibc-2.12.2-ignore-origin-of-privileged-program.patch
-
- # http://sourceware.org/bugzilla/show_bug.cgi?id=12403
- patch -Np1 -i ${srcdir}/glibc-2.13-futex.patch
-
- # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=675155e9 (only fedora branch...)
- # http://sourceware.org/ml/libc-alpha/2011-06/msg00006.html
- patch -Np1 -i ${srcdir}/glibc-2.14-libdl-crash.patch
-
- # Revert commit causing issues with crappy DNS servers...
- # Will be removed when workaround becomes annoying to maintain - USE A BETTER DNS SERVER!
- # Note that both these patches do not fix the issue completely:
- # http://sourceware.org/bugzilla/show_bug.cgi?id=13013
- # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=032c0ee3 (only fedora branch...)
- patch -Np1 -i ${srcdir}/glibc-2.14-revert-4768ae77.patch
-
- # re-export RPC interface until libtirpc is ready as a replacement
- # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=acee4873 (only fedora branch...)
- patch -Np1 -i ${srcdir}/glibc-2.14-reexport-rpc-interface.patch
- # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=bdd816a3 (only fedora branch...)
- patch -Np1 -i ${srcdir}/glibc-2.14-reinstall-nis-rpc-headers.patch
-
- install -dm755 ${pkgdir}/etc
- touch ${pkgdir}/etc/ld.so.conf
-
- cd ${srcdir}
- mkdir glibc-build
- cd glibc-build
-
- if [[ ${CARCH} = "i686" ]]; then
- # Hack to fix NPTL issues with Xen, only required on 32bit platforms
- export CFLAGS="${CFLAGS} -mno-tls-direct-seg-refs"
- fi
-
- echo "slibdir=/lib" >> configparms
-
- # remove hardening options from CFLAGS for building libraries
- CFLAGS=${CFLAGS/-fstack-protector/}
- CFLAGS=${CFLAGS/-D_FORTIFY_SOURCE=2/}
-
- ${srcdir}/glibc/configure --prefix=/usr \
- --libdir=/usr/lib --libexecdir=/usr/lib \
- --with-headers=/usr/include \
- --enable-add-ons=nptl,libidn \
- --enable-kernel=2.6.27 \
- --with-tls --with-__thread \
- --enable-bind-now --without-gd \
- --without-cvs --disable-profile \
- --enable-multi-arch
-
- # build libraries with hardening disabled
- echo "build-programs=no" >> configparms
- make
-
- # re-enable hardening for programs
- sed -i "s#=no#=yes#" configparms
- echo "CC += -fstack-protector -D_FORTIFY_SOURCE=2" >> configparms
- echo "CXX += -fstack-protector -D_FORTIFY_SOURCE=2" >> configparms
- make
-
- # remove harding in preparation to run test-suite
- sed -i '2,4d' configparms
-}
-
-check() {
- cd ${srcdir}/glibc-build
-
- # some errors are expected - manually check log files
- make -k check || true
-}
-
-package() {
- cd ${srcdir}/glibc-build
- make install_root=${pkgdir} install
-
- rm -f ${pkgdir}/etc/ld.so.{cache,conf}
-
- install -dm755 ${pkgdir}/etc/rc.d
- install -dm755 ${pkgdir}/usr/sbin
- install -dm755 ${pkgdir}/usr/lib/locale
- install -m644 ${srcdir}/glibc/nscd/nscd.conf ${pkgdir}/etc/nscd.conf
- install -m755 ${srcdir}/nscd ${pkgdir}/etc/rc.d/nscd
- install -m755 ${srcdir}/locale-gen ${pkgdir}/usr/sbin
- install -m644 ${srcdir}/glibc/posix/gai.conf ${pkgdir}/etc/gai.conf
-
- sed -i -e 's/^\tserver-user/#\tserver-user/' ${pkgdir}/etc/nscd.conf
-
- # create /etc/locale.gen
- install -m644 ${srcdir}/locale.gen.txt ${pkgdir}/etc/locale.gen
- sed -i "s|/| |g" ${srcdir}/glibc/localedata/SUPPORTED
- sed -i 's|\\| |g' ${srcdir}/glibc/localedata/SUPPORTED
- sed -i "s|SUPPORTED-LOCALES=||" ${srcdir}/glibc/localedata/SUPPORTED
- cat ${srcdir}/glibc/localedata/SUPPORTED >> ${pkgdir}/etc/locale.gen
- sed -i "s|^|#|g" ${pkgdir}/etc/locale.gen
-
- if [[ ${CARCH} = "x86_64" ]]; then
- # fix for the linker
- sed -i '/RTLDLIST/s%lib64%lib%' ${pkgdir}/usr/bin/ldd
- # Comply with multilib binaries, they look for the linker in /lib64
- mkdir ${pkgdir}/lib64
- cd ${pkgdir}/lib64
- ln -v -s ../lib/ld* .
- fi
-
- # manually strip files as stripping libpthread-*.so and libthread_db.so
- # with the default $STRIP_SHARED breaks gdb and stripping ld-*.so breaks
- # valgrind on x86_64
-
- cd $pkgdir
- strip $STRIP_BINARIES sbin/{ldconfig,sln} \
- usr/bin/{gencat,getconf,getent,iconv,locale} \
- usr/bin/{localedef,pcprofiledump,rpcgen,sprof} \
- usr/lib/getconf/* \
- usr/sbin/{iconvconfig,nscd}
- [[ $CARCH = "i686" ]] && strip $STRIP_BINARIES usr/bin/lddlibc4
-
- strip $STRIP_STATIC usr/lib/*.a \
- lib/{{ld,libpthread}-${pkgver},libthread_db-1.0}.so
-
- strip $STRIP_SHARED lib/{libanl,libBrokenLocale,libc,libcidn,libcrypt}-${pkgver}.so \
- lib/libnss_{compat,dns,files,hesiod,nis,nisplus}-${pkgver}.so \
- lib/{libdl,libm,libnsl,libresolv,librt,libutil}-${pkgver}.so \
- lib/{libmemusage,libpcprofile,libSegFault}.so \
- usr/lib/{pt_chown,{audit,gconv}/*.so}
-}
diff --git a/testing/glibc/glibc-2.10-bz4781.patch b/testing/glibc/glibc-2.10-bz4781.patch
deleted file mode 100644
index cf1a97a18..000000000
--- a/testing/glibc/glibc-2.10-bz4781.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-diff -Naur glibc-old/sysdeps/unix/sysv/linux/i386/clone.S glibc/sysdeps/unix/sysv/linux/i386/clone.S
---- glibc-old/sysdeps/unix/sysv/linux/i386/clone.S 2009-05-09 13:35:30.000000000 +1000
-+++ glibc/sysdeps/unix/sysv/linux/i386/clone.S 2009-05-23 13:27:46.000000000 +1000
-@@ -120,9 +120,6 @@
- ret
-
- L(thread_start):
-- cfi_startproc;
-- /* Clearing frame pointer is insufficient, use CFI. */
-- cfi_undefined (eip);
- /* Note: %esi is zero. */
- movl %esi,%ebp /* terminate the stack frame */
- #ifdef RESET_PID
-@@ -155,7 +152,6 @@
- jmp L(haspid)
- .previous
- #endif
-- cfi_endproc;
-
- cfi_startproc
- PSEUDO_END (BP_SYM (__clone))
-diff -Naur glibc-old/sysdeps/unix/sysv/linux/x86_64/clone.S glibc/sysdeps/unix/sysv/linux/x86_64/clone.S
---- glibc-old/sysdeps/unix/sysv/linux/x86_64/clone.S 2009-05-09 13:35:30.000000000 +1000
-+++ glibc/sysdeps/unix/sysv/linux/x86_64/clone.S 2009-05-23 13:27:46.000000000 +1000
-@@ -89,9 +89,6 @@
- ret
-
- L(thread_start):
-- cfi_startproc;
-- /* Clearing frame pointer is insufficient, use CFI. */
-- cfi_undefined (rip);
- /* Clear the frame pointer. The ABI suggests this be done, to mark
- the outermost frame obviously. */
- xorl %ebp, %ebp
-@@ -116,7 +113,6 @@
- /* Call exit with return value from function call. */
- movq %rax, %rdi
- call HIDDEN_JUMPTARGET (_exit)
-- cfi_endproc;
-
- cfi_startproc;
- PSEUDO_END (BP_SYM (__clone))
diff --git a/testing/glibc/glibc-2.10-dont-build-timezone.patch b/testing/glibc/glibc-2.10-dont-build-timezone.patch
deleted file mode 100644
index d3abeff17..000000000
--- a/testing/glibc/glibc-2.10-dont-build-timezone.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-timezone data has been split into the package sys-libs/timezone-data
-
---- glibc-2.4/Makeconfig
-+++ glibc-2.4/Makeconfig
-@@ -931,7 +931,7 @@
- stdlib stdio-common libio malloc string wcsmbs time dirent \
- grp pwd posix io termios resource misc socket sysvipc gmon \
- gnulib iconv iconvdata wctype manual shadow gshadow po argp \
-- crypt nss localedata timezone rt conform debug \
-+ crypt nss localedata rt conform debug \
- $(add-on-subdirs) $(dlfcn) $(binfmt-subdir)
-
- ifndef avoid-generated
diff --git a/testing/glibc/glibc-2.12.1-static-shared-getpagesize.patch b/testing/glibc/glibc-2.12.1-static-shared-getpagesize.patch
deleted file mode 100644
index e84754279..000000000
--- a/testing/glibc/glibc-2.12.1-static-shared-getpagesize.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- glibc-2.12-192-g7c08a05/sysdeps/unix/sysv/linux/getpagesize.c
-+++ glibc-2.12.90-17/sysdeps/unix/sysv/linux/getpagesize.c
-@@ -28,7 +28,7 @@
- int
- __getpagesize ()
- {
--#ifdef __ASSUME_AT_PAGESIZE
-+#if 0 && defined __ASSUME_AT_PAGESIZE
- assert (GLRO(dl_pagesize) != 0);
- return GLRO(dl_pagesize);
- #else
diff --git a/testing/glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch b/testing/glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch
deleted file mode 100644
index ce089b49c..000000000
--- a/testing/glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From d14e6b09d60d52cc12f0396c3106b14e1bd0fe8f Mon Sep 17 00:00:00 2001
-From: Andreas Schwab <schwab@redhat.com>
-Date: Thu, 9 Dec 2010 15:00:59 +0100
-Subject: [PATCH 1/1] Ignore origin of privileged program
-
----
- ChangeLog | 5 +++++
- elf/dl-object.c | 3 +++
- 2 files changed, 8 insertions(+), 0 deletions(-)
-
-diff --git a/elf/dl-object.c b/elf/dl-object.c
-index 22a1635..7674d49 100644
---- a/elf/dl-object.c
-+++ b/elf/dl-object.c
-@@ -214,6 +214,9 @@ _dl_new_object (char *realname, const char *libname, int type,
- out:
- new->l_origin = origin;
- }
-+ else if (INTUSE(__libc_enable_secure) && type == lt_executable)
-+ /* The origin of a privileged program cannot be trusted. */
-+ new->l_origin = (char *) -1;
-
- return new;
- }
---
-1.7.2
diff --git a/testing/glibc/glibc-2.13-futex.patch b/testing/glibc/glibc-2.13-futex.patch
deleted file mode 100644
index 9b9c3ac45..000000000
--- a/testing/glibc/glibc-2.13-futex.patch
+++ /dev/null
@@ -1,31 +0,0 @@
---- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
-+++ a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
-@@ -210,7 +210,7 @@ pthread_rwlock_timedrdlock:
- cfi_restore(%r12)
- retq
-
--#ifdef __ASSUME_PRIVATE_FUTEX
-+#ifdef __ASSUME_FUTEX_CLOCK_REALTIME
- cfi_adjust_cfa_offset(16)
- cfi_rel_offset(%r12, 8)
- cfi_rel_offset(%r13, 0)
---- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
-+++ a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
-@@ -192,7 +192,7 @@ pthread_rwlock_timedwrlock:
-
- 7: movq %rdx, %rax
-
--#ifndef __ASSUME_PRIVATE_FUTEX
-+#ifndef __ASSUME_FUTEX_CLOCK_REALTIME
- addq $16, %rsp
- cfi_adjust_cfa_offset(-16)
- popq %r14
-@@ -207,7 +207,7 @@ pthread_rwlock_timedwrlock:
- cfi_restore(%r12)
- retq
-
--#ifdef __ASSUME_PRIVATE_FUTEX
-+#ifdef __ASSUME_FUTEX_CLOCK_REALTIME
- cfi_adjust_cfa_offset(16)
- cfi_rel_offset(%r12, 8)
- cfi_rel_offset(%r13, 0)
diff --git a/testing/glibc/glibc-2.14-libdl-crash.patch b/testing/glibc/glibc-2.14-libdl-crash.patch
deleted file mode 100644
index 6c9d2718e..000000000
--- a/testing/glibc/glibc-2.14-libdl-crash.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-diff --git a/elf/dl-close.c b/elf/dl-close.c
-index 73b2a2f..9bd91e3 100644
---- a/elf/dl-close.c
-+++ b/elf/dl-close.c
-@@ -1,5 +1,5 @@
- /* Close a shared object opened by `_dl_open'.
-- Copyright (C) 1996-2007, 2009, 2010, 2011 Free Software Foundation, Inc.
-+ Copyright (C) 1996-2007, 2009, 2010 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -119,17 +119,8 @@ _dl_close_worker (struct link_map *map)
- if (map->l_direct_opencount > 0 || map->l_type != lt_loaded
- || dl_close_state != not_pending)
- {
-- if (map->l_direct_opencount == 0)
-- {
-- if (map->l_type == lt_loaded)
-- dl_close_state = rerun;
-- else if (map->l_type == lt_library)
-- {
-- struct link_map **oldp = map->l_initfini;
-- map->l_initfini = map->l_orig_initfini;
-- _dl_scope_free (oldp);
-- }
-- }
-+ if (map->l_direct_opencount == 0 && map->l_type == lt_loaded)
-+ dl_close_state = rerun;
-
- /* There are still references to this object. Do nothing more. */
- if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0))
-diff --git a/elf/dl-deps.c b/elf/dl-deps.c
-index 9e30594..3890d00 100644
---- a/elf/dl-deps.c
-+++ b/elf/dl-deps.c
-@@ -478,6 +478,7 @@ _dl_map_object_deps (struct link_map *map,
- nneeded * sizeof needed[0]);
- atomic_write_barrier ();
- l->l_initfini = l_initfini;
-+ l->l_free_initfini = 1;
- }
-
- /* If we have no auxiliary objects just go on to the next map. */
-@@ -681,6 +682,7 @@ Filters not supported with LD_TRACE_PRELINKING"));
- l_initfini[nlist] = NULL;
- atomic_write_barrier ();
- map->l_initfini = l_initfini;
-+ map->l_free_initfini = 1;
- if (l_reldeps != NULL)
- {
- atomic_write_barrier ();
-@@ -689,5 +691,5 @@ Filters not supported with LD_TRACE_PRELINKING"));
- _dl_scope_free (old_l_reldeps);
- }
- if (old_l_initfini != NULL)
-- map->l_orig_initfini = old_l_initfini;
-+ _dl_scope_free (old_l_initfini);
-
-diff --git a/elf/dl-libc.c b/elf/dl-libc.c
-index 7be9483..a13fce3 100644
---- a/elf/dl-libc.c
-+++ b/elf/dl-libc.c
-@@ -265,13 +265,13 @@ libc_freeres_fn (free_mem)
-
- for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns)
- {
-- /* Remove all additional names added to the objects. */
- for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next)
- {
- struct libname_list *lnp = l->l_libname->next;
-
- l->l_libname->next = NULL;
-
-+ /* Remove all additional names added to the objects. */
- while (lnp != NULL)
- {
- struct libname_list *old = lnp;
-@@ -279,6 +279,10 @@ libc_freeres_fn (free_mem)
- if (! old->dont_free)
- free (old);
- }
-+
-+ /* Free the initfini dependency list. */
-+ if (l->l_free_initfini)
-+ free (l->l_initfini);
- }
-
- if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0
-diff --git a/elf/rtld.c b/elf/rtld.c
-index 4a9109e..617e30e 100644
---- a/elf/rtld.c
-+++ b/elf/rtld.c
-@@ -2251,6 +2251,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
- lnp->dont_free = 1;
- lnp = lnp->next;
- }
-+ l->l_free_initfini = 0;
-
- if (l != &GL(dl_rtld_map))
- _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0,
-diff --git a/include/link.h b/include/link.h
-index e877104..051b99a 100644
---- a/include/link.h
-+++ b/include/link.h
-@@ -1,6 +1,6 @@
- /* Data structure for communication from the run-time dynamic linker for
- loaded ELF shared objects.
-- Copyright (C) 1995-2006, 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
-+ Copyright (C) 1995-2006, 2007, 2009, 2010 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -192,6 +192,9 @@ struct link_map
- during LD_TRACE_PRELINKING=1
- contains any DT_SYMBOLIC
- libraries. */
-+ unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be
-+ freed, ie. not allocated with
-+ the dummy malloc in ld.so. */
-
- /* Collected information about own RPATH directories. */
- struct r_search_path_struct l_rpath_dirs;
-@@ -240,9 +243,6 @@ struct link_map
-
- /* List of object in order of the init and fini calls. */
- struct link_map **l_initfini;
-- /* The init and fini list generated at startup, saved when the
-- object is also loaded dynamically. */
-- struct link_map **l_orig_initfini;
-
- /* List of the dependencies introduced through symbol binding. */
- struct link_map_reldeps
diff --git a/testing/glibc/glibc-2.14-reexport-rpc-interface.patch b/testing/glibc/glibc-2.14-reexport-rpc-interface.patch
deleted file mode 100644
index e2beea881..000000000
--- a/testing/glibc/glibc-2.14-reexport-rpc-interface.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/include/libc-symbols.h b/include/libc-symbols.h
-index 67e1ca2..5e7cca5 100644
---- a/include/libc-symbols.h
-+++ b/include/libc-symbols.h
-@@ -635,7 +635,7 @@ for linking")
- # define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
- # define libc_hidden_def(name) hidden_def (name)
- # define libc_hidden_weak(name) hidden_weak (name)
--# define libc_hidden_nolink(name, version) hidden_nolink (name, libc, version)
-+# define libc_hidden_nolink(name, version) hidden_def (name)
- # define libc_hidden_ver(local, name) hidden_ver (local, name)
- # define libc_hidden_data_def(name) hidden_data_def (name)
- # define libc_hidden_data_weak(name) hidden_data_weak (name)
-diff --git a/sunrpc/Makefile b/sunrpc/Makefile
-index 5134ce9..40c73d1 100644
---- a/sunrpc/Makefile
-+++ b/sunrpc/Makefile
-@@ -53,7 +53,7 @@ headers-in-tirpc = $(addprefix rpc/,auth.h auth_unix.h clnt.h pmap_clnt.h \
- des_crypt.h)
- headers-not-in-tirpc = $(addprefix rpc/,key_prot.h rpc_des.h) \
- $(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.h
--headers = rpc/netdb.h
-+headers = rpc/netdb.h $(headers-in-tirpc) $(headers-not-in-tirpc)
- install-others = $(inst_sysconfdir)/rpc
- generated = $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) $(rpcsvc:%.x=x%.stmp) \
- $(rpcsvc:%.x=rpcsvc/%.stmp) rpcgen
diff --git a/testing/glibc/glibc-2.14-reinstall-nis-rpc-headers.patch b/testing/glibc/glibc-2.14-reinstall-nis-rpc-headers.patch
deleted file mode 100644
index eb0fd822d..000000000
--- a/testing/glibc/glibc-2.14-reinstall-nis-rpc-headers.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From bdd816a366c4e5bba5de7157d948e0c0737fb4fb Mon Sep 17 00:00:00 2001
-From: Andreas Schwab <schwab@redhat.com>
-Date: Tue, 17 May 2011 17:42:30 +0200
-Subject: [PATCH] Reinstall NIS RPC headers
-
----
- nis/Makefile | 4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/nis/Makefile b/nis/Makefile
-index b5c9609..d2934d9 100644
---- a/nis/Makefile
-+++ b/nis/Makefile
-@@ -23,9 +23,9 @@ subdir := nis
-
- aux := nis_hash
-
-+headers := $(wildcard rpcsvc/*.[hx])
- distribute := nss-nis.h nss-nisplus.h nis_intern.h Banner \
-- nisplus-parser.h nis_xdr.h nss \
-- $(wildcard rpcsvc/*.[hx])
-+ nisplus-parser.h nis_xdr.h nss
-
- # These are the databases available for the nis (and perhaps later nisplus)
- # service. This must be a superset of the services in nss.
---
-1.7.5.4
-
diff --git a/testing/glibc/glibc-2.14-revert-4768ae77.patch b/testing/glibc/glibc-2.14-revert-4768ae77.patch
deleted file mode 100644
index 11f087cb7..000000000
--- a/testing/glibc/glibc-2.14-revert-4768ae77.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-diff -Naur glibc-orig//resolv/res_send.c glibc/resolv/res_send.c
---- glibc-orig//resolv/res_send.c 2011-06-10 18:59:03.041436996 +1000
-+++ glibc/resolv/res_send.c 2011-06-10 19:08:09.379309323 +1000
-@@ -549,7 +549,7 @@
- ns, ansp, ansp2, nansp2, resplen2);
- if (n < 0)
- return (-1);
-- if (n == 0 && (buf2 == NULL || *resplen2 == 0))
-+ if (n == 0)
- goto next_ns;
- } else {
- /* Use datagrams. */
-@@ -559,7 +559,7 @@
- ansp2, nansp2, resplen2);
- if (n < 0)
- return (-1);
-- if (n == 0 && (buf2 == NULL || *resplen2 == 0))
-+ if (n == 0)
- goto next_ns;
- if (v_circuit)
- // XXX Check whether both requests failed or
-@@ -1275,14 +1275,10 @@
- (*thisresplenp > *thisanssizp)
- ? *thisanssizp : *thisresplenp);
-
-- if (recvresp1 || (buf2 != NULL && recvresp2)) {
-- *resplen2 = 0;
-+ if (recvresp1 || (buf2 != NULL && recvresp2))
- return resplen;
-- }
- if (buf2 != NULL)
- {
-- /* No data from the first reply. */
-- resplen = 0;
- /* We are waiting for a possible second reply. */
- if (hp->id == anhp->id)
- recvresp1 = 1;
diff --git a/testing/glibc/glibc-2.14.1-tzfile-overflow.patch b/testing/glibc/glibc-2.14.1-tzfile-overflow.patch
new file mode 100644
index 000000000..9e21cbfd3
--- /dev/null
+++ b/testing/glibc/glibc-2.14.1-tzfile-overflow.patch
@@ -0,0 +1,72 @@
+diff --git a/time/tzfile.c b/time/tzfile.c
+index 144e20b..402389c 100644
+--- a/time/tzfile.c
++++ b/time/tzfile.c
+@@ -234,23 +234,58 @@ __tzfile_read (const char *file, size_t extra, char **extrap)
+ goto read_again;
+ }
+
++ if (__builtin_expect (num_transitions
++ > ((SIZE_MAX - (__alignof__ (struct ttinfo) - 1))
++ / (sizeof (time_t) + 1)), 0))
++ goto lose;
+ total_size = num_transitions * (sizeof (time_t) + 1);
+ total_size = ((total_size + __alignof__ (struct ttinfo) - 1)
+ & ~(__alignof__ (struct ttinfo) - 1));
+ types_idx = total_size;
+- total_size += num_types * sizeof (struct ttinfo) + chars;
++ if (__builtin_expect (num_types
++ > (SIZE_MAX - total_size) / sizeof (struct ttinfo), 0))
++ goto lose;
++ total_size += num_types * sizeof (struct ttinfo);
++ if (__builtin_expect (chars > SIZE_MAX - total_size, 0))
++ goto lose;
++ total_size += chars;
++ if (__builtin_expect (__alignof__ (struct leap) - 1
++ > SIZE_MAX - total_size, 0))
++ goto lose;
+ total_size = ((total_size + __alignof__ (struct leap) - 1)
+ & ~(__alignof__ (struct leap) - 1));
+ leaps_idx = total_size;
++ if (__builtin_expect (num_leaps
++ > (SIZE_MAX - total_size) / sizeof (struct leap), 0))
++ goto lose;
+ total_size += num_leaps * sizeof (struct leap);
+- tzspec_len = (sizeof (time_t) == 8 && trans_width == 8
+- ? st.st_size - (ftello (f)
+- + num_transitions * (8 + 1)
+- + num_types * 6
+- + chars
+- + num_leaps * 12
+- + num_isstd
+- + num_isgmt) - 1 : 0);
++ tzspec_len = 0;
++ if (sizeof (time_t) == 8 && trans_width == 8)
++ {
++ off_t rem = st.st_size - ftello (f);
++ if (__builtin_expect (rem < 0
++ || (size_t) rem < (num_transitions * (8 + 1)
++ + num_types * 6
++ + chars), 0))
++ goto lose;
++ tzspec_len = (size_t) rem - (num_transitions * (8 + 1)
++ + num_types * 6
++ + chars);
++ if (__builtin_expect (num_leaps > SIZE_MAX / 12
++ || tzspec_len < num_leaps * 12, 0))
++ goto lose;
++ tzspec_len -= num_leaps * 12;
++ if (__builtin_expect (tzspec_len < num_isstd, 0))
++ goto lose;
++ tzspec_len -= num_isstd;
++ if (__builtin_expect (tzspec_len == 0 || tzspec_len - 1 < num_isgmt, 0))
++ goto lose;
++ tzspec_len -= num_isgmt + 1;
++ if (__builtin_expect (SIZE_MAX - total_size < tzspec_len, 0))
++ goto lose;
++ }
++ if (__builtin_expect (SIZE_MAX - total_size - tzspec_len < extra, 0))
++ goto lose;
+
+ /* Allocate enough memory including the extra block requested by the
+ caller. */
diff --git a/testing/glibc/glibc-__i686.patch b/testing/glibc/glibc-__i686.patch
deleted file mode 100644
index 28d5dd424..000000000
--- a/testing/glibc/glibc-__i686.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -Naur glibc-old//sysdeps/i386/Makefile glibc//sysdeps/i386/Makefile
---- glibc-old//sysdeps/i386/Makefile 2010-03-18 11:52:30.000000000 +1000
-+++ glibc//sysdeps/i386/Makefile 2010-04-16 15:05:50.000000000 +1000
-@@ -1,6 +1,7 @@
- # The mpn functions need a #define for asm syntax flavor.
--# Every i386 port in use uses gas syntax (I think).
--asm-CPPFLAGS += -DGAS_SYNTAX
-+# Every i386 port in use uses gas syntax (I think). Don't replace
-+# __i686 in __i686.get_pc_thunk.bx.
-+asm-CPPFLAGS += -DGAS_SYNTAX -U __i686
-
- # The i386 `long double' is a distinct type we support.
- long-double-fcts = yes
diff --git a/testing/glibc/glibc.install b/testing/glibc/glibc.install
deleted file mode 100644
index 7f85ade96..000000000
--- a/testing/glibc/glibc.install
+++ /dev/null
@@ -1,20 +0,0 @@
-infodir=usr/share/info
-filelist=(libc.info{,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11})
-
-post_upgrade() {
- sbin/ldconfig -r .
- [ -x sbin/init ] && sbin/init u
- usr/sbin/locale-gen
-
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- usr/bin/install-info $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
-
-pre_remove() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- usr/bin/install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
diff --git a/testing/glibc/locale-gen b/testing/glibc/locale-gen
deleted file mode 100755
index 5aff344c4..000000000
--- a/testing/glibc/locale-gen
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/sh
-
-set -e
-
-LOCALEGEN=/etc/locale.gen
-LOCALES=/usr/share/i18n/locales
-if [ -n "$POSIXLY_CORRECT" ]; then
- unset POSIXLY_CORRECT
-fi
-
-
-[ -f $LOCALEGEN -a -s $LOCALEGEN ] || exit 0;
-
-# Remove all old locale dir and locale-archive before generating new
-# locale data.
-rm -rf /usr/lib/locale/* || true
-
-umask 022
-
-is_entry_ok() {
- if [ -n "$locale" -a -n "$charset" ] ; then
- true
- else
- echo "error: Bad entry '$locale $charset'"
- false
- fi
-}
-
-echo "Generating locales..."
-while read locale charset; do \
- case $locale in \#*) continue;; "") continue;; esac; \
- is_entry_ok || continue
- echo -n " `echo $locale | sed 's/\([^.\@]*\).*/\1/'`"; \
- echo -n ".$charset"; \
- echo -n `echo $locale | sed 's/\([^\@]*\)\(\@.*\)*/\2/'`; \
- echo -n '...'; \
- if [ -f $LOCALES/$locale ]; then input=$locale; else \
- input=`echo $locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; fi; \
- localedef -i $input -c -f $charset -A /usr/share/locale/locale.alias $locale; \
- echo ' done'; \
-done < $LOCALEGEN
-echo "Generation complete."
diff --git a/testing/glibc/locale.gen.txt b/testing/glibc/locale.gen.txt
deleted file mode 100644
index ccdd81734..000000000
--- a/testing/glibc/locale.gen.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-# Configuration file for locale-gen
-#
-# lists of locales that are to be generated by the locale-gen command.
-#
-# Each line is of the form:
-#
-# <locale> <charset>
-#
-# where <locale> is one of the locales given in /usr/share/i18n/locales
-# and <charset> is one of the character sets listed in /usr/share/i18n/charmaps
-#
-# Examples:
-# en_US ISO-8859-1
-# en_US.UTF-8 UTF-8
-# de_DE ISO-8859-1
-# de_DE@euro ISO-8859-15
-#
-# The locale-gen command will generate all the locales,
-# placing them in /usr/lib/locale.
-#
-# A list of supported locales is included in this file.
-# Uncomment the ones you need.
-#
diff --git a/testing/glibc/nscd b/testing/glibc/nscd
deleted file mode 100755
index 8b14f2a3f..000000000
--- a/testing/glibc/nscd
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/bash
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-
-PID=`pidof -o %PPID /usr/sbin/nscd`
-case "$1" in
- start)
- stat_busy "Starting nscd"
- # create necessary directories if they don't already exist
- mkdir -p /var/run/nscd /var/db/nscd 2>/dev/null
- # remove stale files
- rm -f /var/db/nscd/* /var/run/nscd/* 2>/dev/null
- [ -z "$PID" ] && /usr/sbin/nscd
- if [ $? -gt 0 ]; then
- stat_fail
- else
- add_daemon nscd
- stat_done
- fi
- ;;
- stop)
- stat_busy "Stopping nscd"
- [ ! -z "$PID" ] && kill $PID &> /dev/null
- if [ $? -gt 0 ]; then
- stat_fail
- else
- rm_daemon nscd
- stat_done
- fi
- ;;
- restart)
- $0 stop
- sleep 1
- $0 start
- ;;
- *)
- echo "usage: $0 {start|stop|restart}"
-esac
-exit 0
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/kdevplatform/PKGBUILD b/testing/kdevplatform/PKGBUILD
deleted file mode 100644
index 75e543a98..000000000
--- a/testing/kdevplatform/PKGBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# $Id: PKGBUILD 144746 2011-12-08 09:39:48Z andrea $
-# Maintainer:
-# Contributor: Andrea Scarpino <andrea@archlinux.org>
-# Contributor: Giovanni Scafora <giovanni@archlinux.org>
-
-pkgname=kdevplatform
-pkgver=1.2.3
-_pkgver=4.2.3
-pkgrel=2
-pkgdesc="A C/C++ development platform for KDE"
-arch=('i686' 'x86_64')
-url="http://www.kdevelop.org/"
-license=('GPL')
-depends=('kdelibs''subversion' 'qjson')
-optdepends=("kdesdk-kompare: difference checking")
-makedepends=('cmake' 'automoc4' 'boost')
-install=${pkgname}.install
-source=("http://download.kde.org/stable/kdevelop/${_pkgver}/src/${pkgname}-${pkgver}.tar.bz2"
- 'subversion17.patch')
-sha1sums=('c8badd157c2477b1b299403d01d40f68a1ba14cd'
- '08e2ab2005a7a447f1733e8449a9bc926035fb9e')
-
-build() {
- cd "${srcdir}"/${pkgname}-${pkgver}
- patch -p1 -i "${srcdir}"/subversion17.patch
-
- 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/kdevplatform/subversion17.patch b/testing/kdevplatform/subversion17.patch
deleted file mode 100644
index 782ac38ea..000000000
--- a/testing/kdevplatform/subversion17.patch
+++ /dev/null
@@ -1,127 +0,0 @@
-commit 74dec52749e3c3af2ac6492f50e2676128f35b27
-Author: Milian Wolff <mail@milianw.de>
-Date: Fri Nov 18 16:26:06 2011 +0100
-
- fix svn api usage: use svn_dirent_canonicalize instead of svn_path_internal_style
-
- this was suggested by Stephan Sperling
-
- CCBUG: 284061
-
-diff --git a/plugins/subversion/kdevsvncpp/path.cpp b/plugins/subversion/kdevsvncpp/path.cpp
-index eaa84c1..4dced08 100644
---- a/plugins/subversion/kdevsvncpp/path.cpp
-+++ b/plugins/subversion/kdevsvncpp/path.cpp
-@@ -24,6 +24,7 @@
-
- // subversion api
- #include "svn_path.h"
-+#include "svn_dirent_uri.h"
-
- // apr api
- #include "apr_file_io.h"
-@@ -63,8 +64,7 @@ namespace svn
- m_path = "";
- else
- {
-- const char * int_path =
-- svn_path_internal_style(path, pool.pool());
-+ const char * int_path = svn_dirent_canonicalize(path, pool);
-
- m_path = int_path;
-
-commit cc7f0798d314cdac14b90e427abe22e99c6bd591
-Author: Milian Wolff <mail@milianw.de>
-Date: Fri Nov 18 16:23:36 2011 +0100
-
- properly initialize client context for compatibility with subversion API
-
- this should hopefully fix the crash with svn 1.7 in kdevelop, please test
-
- BUG: 284061
-
-diff --git a/plugins/subversion/kdevsvncpp/context.cpp b/plugins/subversion/kdevsvncpp/context.cpp
-index d277591..ddbb657 100644
---- a/plugins/subversion/kdevsvncpp/context.cpp
-+++ b/plugins/subversion/kdevsvncpp/context.cpp
-@@ -65,7 +65,7 @@ public:
- bool logIsSet;
- int promptCounter;
- Pool pool;
-- svn_client_ctx_t ctx;
-+ svn_client_ctx_t * ctx;
- std::string username;
- std::string password;
- std::string logMessage;
-@@ -205,26 +205,26 @@ public:
- svn_auth_open(&ab, providers, pool);
-
- // initialize ctx structure
-- memset(&ctx, 0, sizeof(ctx));
-+ svn_client_create_context(&ctx, pool);
-
- // get the config based on the configDir passed in
-- svn_config_get_config(&ctx.config, c_configDir, pool);
-+ svn_config_get_config(&ctx->config, c_configDir, pool);
-
- // tell the auth functions where the config is
- svn_auth_set_parameter(ab, SVN_AUTH_PARAM_CONFIG_DIR,
- c_configDir);
-
-- ctx.auth_baton = ab;
-- ctx.log_msg_func = onLogMsg;
-- ctx.log_msg_baton = this;
-- ctx.notify_func = onNotify;
-- ctx.notify_baton = this;
-- ctx.cancel_func = onCancel;
-- ctx.cancel_baton = this;
-+ ctx->auth_baton = ab;
-+ ctx->log_msg_func = onLogMsg;
-+ ctx->log_msg_baton = this;
-+ ctx->notify_func = onNotify;
-+ ctx->notify_baton = this;
-+ ctx->cancel_func = onCancel;
-+ ctx->cancel_baton = this;
-
- #if (SVN_VER_MAJOR >= 1) && (SVN_VER_MINOR >= 2)
-- ctx.notify_func2 = onNotify2;
-- ctx.notify_baton2 = this;
-+ ctx->notify_func2 = onNotify2;
-+ ctx->notify_baton2 = this;
- #endif
- }
-
-@@ -234,7 +234,7 @@ public:
- if (!value)
- param = (void *)"1";
-
-- svn_auth_set_parameter(ctx.auth_baton,
-+ svn_auth_set_parameter(ctx->auth_baton,
- SVN_AUTH_PARAM_NO_AUTH_CACHE,
- param);
- }
-@@ -245,7 +245,7 @@ public:
- username = usr;
- password = pwd;
-
-- svn_auth_baton_t * ab = ctx.auth_baton;
-+ svn_auth_baton_t * ab = ctx->auth_baton;
- svn_auth_set_parameter(ab, SVN_AUTH_PARAM_DEFAULT_USERNAME,
- username.c_str());
- svn_auth_set_parameter(ab, SVN_AUTH_PARAM_DEFAULT_PASSWORD,
-@@ -654,13 +654,13 @@ public:
-
- Context::operator svn_client_ctx_t * ()
- {
-- return &(m->ctx);
-+ return m->ctx;
- }
-
- svn_client_ctx_t *
- Context::ctx()
- {
-- return &(m->ctx);
-+ return m->ctx;
- }
-
- void
diff --git a/testing/keyutils/PKGBUILD b/testing/keyutils/PKGBUILD
deleted file mode 100644
index 79bde8741..000000000
--- a/testing/keyutils/PKGBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# $Id: PKGBUILD 143944 2011-11-30 21:52:16Z stephane $
-# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
-pkgname=keyutils
-pkgver=1.5.5
-pkgrel=1
-pkgdesc="Linux Key Management Utilities"
-arch=(i686 x86_64)
-url="http://www.kernel.org"
-license=('GPL2' 'LGPL2.1')
-depends=('glibc' 'sh')
-backup=(etc/request-key.conf)
-source=(http://people.redhat.com/~dhowells/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('9e8ab5164bc8f84be148761cc89e9d6f')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- sed -i "s|/lib64|/lib|g" Makefile
- make CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}"
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
-}
diff --git a/testing/krb5/PKGBUILD b/testing/krb5/PKGBUILD
deleted file mode 100644
index 9cbe8c3d7..000000000
--- a/testing/krb5/PKGBUILD
+++ /dev/null
@@ -1,90 +0,0 @@
-# $Id: PKGBUILD 144605 2011-12-07 21:28:52Z stephane $
-# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
-
-pkgname=krb5
-pkgver=1.9.2
-pkgrel=2
-pkgdesc="The Kerberos network authentication system"
-arch=('i686' 'x86_64')
-url="http://web.mit.edu/kerberos/"
-license=('custom')
-depends=('e2fsprogs' 'libldap' 'keyutils')
-makedepends=('perl')
-provides=('heimdal')
-replaces=('heimdal')
-conflicts=('heimdal')
-backup=('etc/krb5.conf' 'var/lib/krb5kdc/kdc.conf')
-source=(http://web.mit.edu/kerberos/dist/${pkgname}/1.9/${pkgname}-${pkgver}-signed.tar
- krb5-kadmind
- krb5-kdc
- krb5-kpropd
- krb5-1.9.1-config-script.patch
- krb5-1.9.1-2011-007.patch)
-sha1sums=('aa06f778ee1f9791cd4c5cf4c9e9465769ffec92'
- '2aa229369079ed1bbb201a1ef72c47bf143f4dbe'
- '77d2312ecd8bf12a6e72cc8fd871a8ac93b23393'
- '7f402078fa65bb9ff1beb6cbbbb017450df78560'
- '7342410760cf44bfa01bb99bb4c49e12496cb46f'
- 'ec917dd1d1c96fa331f512331d5aa37c2e9b9df7')
-options=('!emptydirs')
-
-build() {
- tar zxvf ${pkgname}-${pkgver}.tar.gz
- cd "${srcdir}/${pkgname}-${pkgver}/src"
-
- # - Make krb5-config suppress CFLAGS output when called with --libs
- # cf https://bugzilla.redhat.com/show_bug.cgi?id=544391
- #
- # - Omit extra libraries because their interfaces are not exposed to applications
- # by libkrb5, unless do_deps is set to 1, which indicates that the caller
- # wants the whole list.
- #
- # Patch from upstream :
- # http://anonsvn.mit.edu/viewvc/krb5/trunk/src/krb5-config.in?r1=23662&r2=25236
- patch -Np2 -i ${srcdir}/krb5-1.9.1-config-script.patch
-
- # 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
-
- # FS#25384
- sed -i "/KRB5ROOT=/s/\/local//" util/ac_check_krb5.m4
-
- export CFLAGS+=" -fPIC -fno-strict-aliasing -fstack-protector-all"
- export CPPFLAGS+=" -I/usr/include/et"
- ./configure --prefix=/usr \
- --mandir=/usr/share/man \
- --localstatedir=/var/lib \
- --enable-shared \
- --with-system-et \
- --with-system-ss \
- --disable-rpath \
- --without-tcl \
- --enable-dns-for-realm \
- --with-ldap
- make
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}/src"
- make DESTDIR="${pkgdir}" EXAMPLEDIR="/usr/share/doc/${pkgname}/examples" install
-
- # Sample KDC config file
- install -dm 755 "${pkgdir}"/var/lib/krb5kdc
- install -pm 644 config-files/kdc.conf "${pkgdir}"/var/lib/krb5kdc/kdc.conf
-
- # Default configuration file
- install -dm 755 "${pkgdir}"/etc
- install -pm 644 config-files/krb5.conf "${pkgdir}"/etc/krb5.conf
-
- install -dm 755 "${pkgdir}"/etc/rc.d
- install -m 755 ../../krb5-kdc "${pkgdir}"/etc/rc.d
- install -m 755 ../../krb5-kadmind "${pkgdir}"/etc/rc.d
- install -m 755 ../../krb5-kpropd "${pkgdir}"/etc/rc.d
-
- install -dm 755 "${pkgdir}"/usr/share/aclocal
- install -m 644 util/ac_check_krb5.m4 "${pkgdir}"/usr/share/aclocal
-
- install -Dm644 "${srcdir}"/${pkgname}-${pkgver}/NOTICE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
-}
diff --git a/testing/krb5/krb5-1.9.1-2011-007.patch b/testing/krb5/krb5-1.9.1-2011-007.patch
deleted file mode 100644
index 336a4ad31..000000000
--- a/testing/krb5/krb5-1.9.1-2011-007.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-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/testing/krb5/krb5-1.9.1-canonicalize-fallback.patch b/testing/krb5/krb5-1.9.1-canonicalize-fallback.patch
deleted file mode 100644
index e5a38498f..000000000
--- a/testing/krb5/krb5-1.9.1-canonicalize-fallback.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-diff -Naur krb5-1.9.1.ori/src/lib/krb5/krb/get_creds.c krb5-1.9.1/src/lib/krb5/krb/get_creds.c
---- krb5-1.9.1.ori/src/lib/krb5/krb/get_creds.c 2011-02-09 16:55:36.000000000 -0500
-+++ krb5-1.9.1/src/lib/krb5/krb/get_creds.c 2011-09-26 18:42:01.465190278 -0400
-@@ -470,13 +470,10 @@
-
- /***** STATE_REFERRALS *****/
-
--/*
-- * Possibly retry a request in the fallback realm after a referral request
-- * failure in the local realm. Expects ctx->reply_code to be set to the error
-- * from a referral request.
-- */
-+/* Possibly try a non-referral request after a referral request failure.
-+ * Expects ctx->reply_code to be set to the error from a referral request. */
- static krb5_error_code
--try_fallback_realm(krb5_context context, krb5_tkt_creds_context ctx)
-+try_fallback(krb5_context context, krb5_tkt_creds_context ctx)
- {
- krb5_error_code code;
- char **hrealms;
-@@ -485,9 +482,10 @@
- if (ctx->referral_count > 1)
- return ctx->reply_code;
-
-- /* Only fall back if the original request used the referral realm. */
-+ /* If the request used a specified realm, make a non-referral request to
-+ * that realm (in case it's a KDC which rejects KDC_OPT_CANONICALIZE). */
- if (!krb5_is_referral_realm(&ctx->req_server->realm))
-- return ctx->reply_code;
-+ return begin_non_referral(context, ctx);
-
- if (ctx->server->length < 2) {
- /* We need a type/host format principal to find a fallback realm. */
-@@ -500,10 +498,10 @@
- if (code != 0)
- return code;
-
-- /* Give up if the fallback realm isn't any different. */
-+ /* If the fallback realm isn't any different, use the existing TGT. */
- if (data_eq_string(ctx->server->realm, hrealms[0])) {
- krb5_free_host_realm(context, hrealms);
-- return ctx->reply_code;
-+ return begin_non_referral(context, ctx);
- }
-
- /* Rewrite server->realm to be the fallback realm. */
-@@ -540,9 +538,9 @@
- krb5_error_code code;
- const krb5_data *referral_realm;
-
-- /* Possibly retry with the fallback realm on error. */
-+ /* Possibly try a non-referral fallback request on error. */
- if (ctx->reply_code != 0)
-- return try_fallback_realm(context, ctx);
-+ return try_fallback(context, ctx);
-
- if (krb5_principal_compare(context, ctx->reply_creds->server,
- ctx->server)) {
diff --git a/testing/krb5/krb5-1.9.1-config-script.patch b/testing/krb5/krb5-1.9.1-config-script.patch
deleted file mode 100644
index a72a75edf..000000000
--- a/testing/krb5/krb5-1.9.1-config-script.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff -Naur krb5-1.9.1.ori/src/krb5-config.in krb5-1.9.1/src/krb5-config.in
---- krb5-1.9.1.ori/src/krb5-config.in 2010-01-19 13:44:57.000000000 -0500
-+++ krb5-1.9.1/src/krb5-config.in 2011-09-26 18:27:09.018487087 -0400
-@@ -186,7 +186,7 @@
- -e 's#\$(RPATH_FLAG)#'"$RPATH_FLAG"'#' \
- -e 's#\$(LDFLAGS)#'"$LDFLAGS"'#' \
- -e 's#\$(PTHREAD_CFLAGS)#'"$PTHREAD_CFLAGS"'#' \
-- -e 's#\$(CFLAGS)#'"$CFLAGS"'#'`
-+ -e 's#\$(CFLAGS)##'`
-
- if test $library = 'kdb'; then
- lib_flags="$lib_flags -lkdb5 $KDB5_DB_LIB"
-@@ -214,9 +214,13 @@
- fi
-
- if test $library = 'krb5'; then
-- lib_flags="$lib_flags -lkrb5 -lk5crypto -lcom_err $GEN_LIB $LIBS $DL_LIB"
-+ lib_flags="$lib_flags -lkrb5 -lk5crypto -lcom_err"
- fi
-
-+ # If we ever support a flag to generate output suitable for static
-+ # linking, we would output "-lkrb5support $GEN_LIB $LIBS $DL_LIB"
-+ # here.
-+
- echo $lib_flags
- fi
-
diff --git a/testing/krb5/krb5-kadmind b/testing/krb5/krb5-kadmind
deleted file mode 100644
index 04df0dcff..000000000
--- a/testing/krb5/krb5-kadmind
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/bash
-
-# general config
-. /etc/rc.conf
-. /etc/rc.d/functions
-
-PID=`pidof -o %PPID /usr/sbin/kadmind`
-case "$1" in
- start)
- stat_busy "Starting Kerberos Admin Daemon"
- if [ -z "$PID" ]; then
- /usr/sbin/kadmind
- fi
- if [ ! -z "$PID" -o $? -gt 0 ]; then
- stat_fail
- else
- add_daemon krb5-kadmind
- stat_done
- fi
- ;;
- stop)
- stat_busy "Stopping Kerberos Admin Daemon"
- [ ! -z "$PID" ] && kill $PID &> /dev/null
- if [ $? -gt 0 ]; then
- stat_fail
- else
- rm_daemon krb5-kadmind
- stat_done
- fi
- ;;
- restart)
- $0 stop
- sleep 1
- $0 start
- ;;
- *)
- echo "usage: $0 {start|stop|restart}"
- ;;
-esac
-exit 0
diff --git a/testing/krb5/krb5-kdc b/testing/krb5/krb5-kdc
deleted file mode 100644
index 05a03411e..000000000
--- a/testing/krb5/krb5-kdc
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/bash
-
-# general config
-. /etc/rc.conf
-. /etc/rc.d/functions
-
-PID=`pidof -o %PPID /usr/sbin/krb5kdc`
-case "$1" in
- start)
- stat_busy "Starting Kerberos Authentication"
- if [ -z "$PID" ]; then
- /usr/sbin/krb5kdc
- fi
- if [ ! -z "$PID" -o $? -gt 0 ]; then
- stat_fail
- else
- add_daemon krb5-kdc
- stat_done
- fi
- ;;
- stop)
- stat_busy "Stopping Kerberos Authentication"
- [ ! -z "$PID" ] && kill $PID &> /dev/null
- if [ $? -gt 0 ]; then
- stat_fail
- else
- rm_daemon krb5-kdc
- stat_done
- fi
- ;;
- restart)
- $0 stop
- sleep 1
- $0 start
- ;;
- *)
- echo "usage: $0 {start|stop|restart}"
- ;;
-esac
-exit 0
diff --git a/testing/krb5/krb5-kpropd b/testing/krb5/krb5-kpropd
deleted file mode 100644
index a0077d68e..000000000
--- a/testing/krb5/krb5-kpropd
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/bash
-
-# general config
-. /etc/rc.conf
-. /etc/rc.d/functions
-
-PID=`pidof -o %PPID /usr/sbin/kpropd`
-case "$1" in
- start)
- stat_busy "Starting Kerberos Database Propagation Daemon"
- if [ -z "$PID" ]; then
- /usr/sbin/kpropd -S
- fi
- if [ ! -z "$PID" -o $? -gt 0 ]; then
- stat_fail
- else
- add_daemon kpropd
- stat_done
- fi
- ;;
- stop)
- stat_busy "Stopping Kerberos Database Propagation Daemon"
- [ ! -z "$PID" ] && kill $PID &> /dev/null
- if [ $? -gt 0 ]; then
- stat_fail
- else
- rm_daemon kpropd
- stat_done
- fi
- ;;
- restart)
- $0 stop
- sleep 1
- $0 start
- ;;
- *)
- echo "usage: $0 {start|stop|restart}"
- ;;
-esac
-exit 0
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/kdevplatform/kdevplatform.install b/testing/kwebkitpart/kwebkitpart.install
index e70c054ec..e70c054ec 100644
--- a/testing/kdevplatform/kdevplatform.install
+++ b/testing/kwebkitpart/kwebkitpart.install
diff --git a/testing/libdrm/COPYING b/testing/libdrm/COPYING
deleted file mode 100644
index 6e74c337c..000000000
--- a/testing/libdrm/COPYING
+++ /dev/null
@@ -1,48 +0,0 @@
- Copyright 2005 Adam Jackson.
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- "Software"), to deal in the Software without restriction, including
- without limitation on the rights to use, copy, modify, merge,
- publish, distribute, sub license, and/or sell copies of the Software,
- and to permit persons to whom the Software is furnished to do so,
- subject to the following conditions:
-
- The above copyright notice and this permission notice (including the
- next paragraph) shall be included in all copies or substantial
- portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NON-INFRINGEMENT. IN NO EVENT SHALL ADAM JACKSON BE LIABLE FOR ANY
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-------------------------------------------------------------------------
-
- Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
- Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
- All Rights Reserved.
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- "Software"), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice (including the
- next paragraph) shall be included in all copies or substantial
- portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS
- SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- DEALINGS IN THE SOFTWARE.
diff --git a/testing/libdrm/PKGBUILD b/testing/libdrm/PKGBUILD
deleted file mode 100644
index 91583d99a..000000000
--- a/testing/libdrm/PKGBUILD
+++ /dev/null
@@ -1,56 +0,0 @@
-# $Id: PKGBUILD 144601 2011-12-07 17:32:22Z andyrtr $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-
-pkgname=libdrm
-pkgver=2.4.28
-pkgrel=1
-pkgdesc="Userspace interface to kernel DRM services"
-arch=(i686 x86_64)
-license=('custom')
-depends=('glibc' 'libpciaccess')
-makedepends=('cairo')
-options=('!libtool')
-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'
- 'c722c8406507b7e3a8da7a3030d1d9cf'
- 'ba65e71c481b94ef0fb6c23c7f21ffa1'
- '671b87f9670e709e54a19cd292c6330d'
- '073846ea43fb4d6130062c1897d92e40'
- 'ce867d3331862c2b87d1a37461b42dbe')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- patch -Np1 -i "${srcdir}/no-pthread-stubs.patch"
-
- # add a missing file in the release tarball
- patch -Np1 -i ${srcdir}/git_fixes.diff
- cp ${srcdir}/{rbo,list}.h "${srcdir}/${pkgname}-${pkgver}"/tests/radeon/
-
- #libtoolize --force
- autoreconf --force --install
- ./configure --prefix=/usr \
- --enable-udev \
- --enable-intel \
- --enable-radeon \
- --enable-vmwgfx-experimental-api \
- --enable-nouveau-experimental-api
- make
-}
-
-check() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make -k check
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
- install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
- install -m644 "${srcdir}/COPYING" "${pkgdir}/usr/share/licenses/${pkgname}/"
-}
diff --git a/testing/libdrm/git_fixes.diff b/testing/libdrm/git_fixes.diff
deleted file mode 100644
index 5ebcb606a..000000000
--- a/testing/libdrm/git_fixes.diff
+++ /dev/null
@@ -1,19 +0,0 @@
-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 = \
-
- radeon_ttm_SOURCES = \
- rbo.c \
-+ rbo.h \
-+ list.h \
- radeon_ttm.c
---
-cgit v0.9.0.2-2-gbebe
diff --git a/testing/libdrm/list.h b/testing/libdrm/list.h
deleted file mode 100644
index 305c903e1..000000000
--- a/testing/libdrm/list.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- *
- * Copyright 2006 Tungsten Graphics, Inc., Bismarck, ND. USA.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- * USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- */
-
-/**
- * \file
- * List macros heavily inspired by the Linux kernel
- * list handling. No list looping yet.
- *
- * Is not threadsafe, so common operations need to
- * be protected using an external mutex.
- */
-#ifndef _U_DOUBLE_LIST_H_
-#define _U_DOUBLE_LIST_H_
-
-#include <stddef.h>
-
-struct list_head
-{
- struct list_head *prev;
- struct list_head *next;
-};
-
-static void list_inithead(struct list_head *item)
-{
- item->prev = item;
- item->next = item;
-}
-
-static void list_add(struct list_head *item, struct list_head *list)
-{
- item->prev = list;
- item->next = list->next;
- list->next->prev = item;
- list->next = item;
-}
-
-static void list_addtail(struct list_head *item, struct list_head *list)
-{
- item->next = list;
- item->prev = list->prev;
- list->prev->next = item;
- list->prev = item;
-}
-
-static void list_replace(struct list_head *from, struct list_head *to)
-{
- to->prev = from->prev;
- to->next = from->next;
- from->next->prev = to;
- from->prev->next = to;
-}
-
-static void list_del(struct list_head *item)
-{
- item->prev->next = item->next;
- item->next->prev = item->prev;
-}
-
-static void list_delinit(struct list_head *item)
-{
- item->prev->next = item->next;
- item->next->prev = item->prev;
- item->next = item;
- item->prev = item;
-}
-
-#define LIST_INITHEAD(__item) list_inithead(__item)
-#define LIST_ADD(__item, __list) list_add(__item, __list)
-#define LIST_ADDTAIL(__item, __list) list_addtail(__item, __list)
-#define LIST_REPLACE(__from, __to) list_replace(__from, __to)
-#define LIST_DEL(__item) list_del(__item)
-#define LIST_DELINIT(__item) list_delinit(__item)
-
-#define LIST_ENTRY(__type, __item, __field) \
- ((__type *)(((char *)(__item)) - offsetof(__type, __field)))
-
-#define LIST_IS_EMPTY(__list) \
- ((__list)->next == (__list))
-
-#ifndef container_of
-#define container_of(ptr, sample, member) \
- (void *)((char *)(ptr) \
- - ((char *)&(sample)->member - (char *)(sample)))
-#endif
-
-#define LIST_FOR_EACH_ENTRY(pos, head, member) \
- for (pos = container_of((head)->next, pos, member); \
- &pos->member != (head); \
- pos = container_of(pos->member.next, pos, member))
-
-#define LIST_FOR_EACH_ENTRY_SAFE(pos, storage, head, member) \
- for (pos = container_of((head)->next, pos, member), \
- storage = container_of(pos->member.next, pos, member); \
- &pos->member != (head); \
- pos = storage, storage = container_of(storage->member.next, storage, member))
-
-#define LIST_FOR_EACH_ENTRY_SAFE_REV(pos, storage, head, member) \
- for (pos = container_of((head)->prev, pos, member), \
- storage = container_of(pos->member.prev, pos, member); \
- &pos->member != (head); \
- pos = storage, storage = container_of(storage->member.prev, storage, member))
-
-#define LIST_FOR_EACH_ENTRY_FROM(pos, start, head, member) \
- for (pos = container_of((start), pos, member); \
- &pos->member != (head); \
- pos = container_of(pos->member.next, pos, member))
-
-#define LIST_FOR_EACH_ENTRY_FROM_REV(pos, start, head, member) \
- for (pos = container_of((start), pos, member); \
- &pos->member != (head); \
- pos = container_of(pos->member.prev, pos, member))
-
-#endif /*_U_DOUBLE_LIST_H_*/
diff --git a/testing/libdrm/no-pthread-stubs.patch b/testing/libdrm/no-pthread-stubs.patch
deleted file mode 100644
index 348c2a795..000000000
--- a/testing/libdrm/no-pthread-stubs.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-diff -ru libdrm-2.4.0/configure.ac libdrm-2.4.0-nostubs/configure.ac
---- libdrm-2.4.0/configure.ac 2008-10-09 21:57:09.000000000 +0200
-+++ libdrm-2.4.0-nostubs/configure.ac 2008-10-21 10:48:24.000000000 +0200
-@@ -47,10 +47,6 @@
- LT_INIT([disable-static])
-
-
--PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs)
--AC_SUBST(PTHREADSTUBS_CFLAGS)
--AC_SUBST(PTHREADSTUBS_LIBS)
--
- PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10])
- AC_SUBST(PCIACCESS_CFLAGS)
- AC_SUBST(PCIACCESS_LIBS)
---- libdrm-2.4.16/intel/Makefile.am 2009-11-20 23:54:36.000000000 +0000
-+++ libdrm-2.4.16/intel/Makefile.am.new 2009-12-07 08:11:32.235748069 +0000
-@@ -26,14 +26,13 @@
- $(WARN_CFLAGS) \
- -I$(top_srcdir) \
- -I$(top_srcdir)/intel \
-- $(PTHREADSTUBS_CFLAGS) \
- $(PCIACCESS_CFLAGS) \
- -I$(top_srcdir)/include/drm
-
- libdrm_intel_la_LTLIBRARIES = libdrm_intel.la
- libdrm_intel_ladir = $(libdir)
- libdrm_intel_la_LDFLAGS = -version-number 1:0:0 -no-undefined
--libdrm_intel_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ @PCIACCESS_LIBS@ @CLOCK_LIB@
-+libdrm_intel_la_LIBADD = ../libdrm.la @PCIACCESS_LIBS@ @CLOCK_LIB@
-
- libdrm_intel_la_SOURCES = \
- intel_bufmgr.c \
---- libdrm-2.4.16/radeon/Makefile.am 2009-11-20 23:54:36.000000000 +0000
-+++ libdrm-2.4.16/radeon/Makefile.am.new 2009-12-07 08:12:31.889075388 +0000
-@@ -26,13 +26,12 @@
- $(WARN_CFLAGS) \
- -I$(top_srcdir) \
- -I$(top_srcdir)/radeon \
-- $(PTHREADSTUBS_CFLAGS) \
- -I$(top_srcdir)/include/drm
-
- libdrm_radeon_la_LTLIBRARIES = libdrm_radeon.la
- libdrm_radeon_ladir = $(libdir)
- libdrm_radeon_la_LDFLAGS = -version-number 1:0:0 -no-undefined
--libdrm_radeon_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
-+libdrm_radeon_la_LIBADD = ../libdrm.la
-
- libdrm_radeon_la_SOURCES = \
- radeon_bo_gem.c \
---- libdrm-2.4.16/nouveau/Makefile.am 2009-11-20 23:54:36.000000000 +0000
-+++ libdrm-2.4.16/nouveau/Makefile.am.new 2009-12-07 08:13:01.489072320 +0000
-@@ -2,13 +2,12 @@
- $(WARN_CFLAGS) \
- -I$(top_srcdir) \
- -I$(top_srcdir)/nouveau \
-- $(PTHREADSTUBS_CFLAGS) \
- -I$(top_srcdir)/include/drm
-
- libdrm_nouveau_la_LTLIBRARIES = libdrm_nouveau.la
- libdrm_nouveau_ladir = $(libdir)
- libdrm_nouveau_la_LDFLAGS = -version-number 1:0:0 -no-undefined
--libdrm_nouveau_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
-+libdrm_nouveau_la_LIBADD = ../libdrm.la
-
- libdrm_nouveau_la_SOURCES = \
- nouveau_device.c \
diff --git a/testing/libdrm/rbo.h b/testing/libdrm/rbo.h
deleted file mode 100644
index c25c73a4c..000000000
--- a/testing/libdrm/rbo.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright © 2011 Red Hat
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- * Jerome Glisse <j.glisse@gmail.com>
- */
-#ifndef RBO_H
-#define RBO_H
-
-#include "list.h"
-
-struct rbo {
- struct list_head list;
- int fd;
- unsigned refcount;
- unsigned mapcount;
- unsigned handle;
- unsigned size;
- unsigned alignment;
- void *data;
-};
-
-struct rbo *rbo(int fd, unsigned handle, unsigned size,
- unsigned alignment, void *ptr);
-int rbo_map(struct rbo *bo);
-void rbo_unmap(struct rbo *bo);
-struct rbo *rbo_incref(struct rbo *bo);
-struct rbo *rbo_decref(struct rbo *bo);
-int rbo_wait(struct rbo *bo);
-
-#endif
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/linux-api-headers/PKGBUILD b/testing/linux-api-headers/PKGBUILD
deleted file mode 100644
index 7cb4c6034..000000000
--- a/testing/linux-api-headers/PKGBUILD
+++ /dev/null
@@ -1,42 +0,0 @@
-# $Id: PKGBUILD 144067 2011-12-02 21:02:11Z allan $
-# Maintainer: Allan McRae <allan@archlinux.org>
-
-# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
-
-pkgname=linux-api-headers
-pkgver=3.1.4
-_basever=3.1
-pkgrel=1
-pkgdesc="Kernel headers sanitized for use in userspace"
-arch=('i686' 'x86_64')
-url="http://www.gnu.org/software/libc"
-license=('GPL2')
-provides=("kernel-headers=${pkgver}")
-conflicts=('kernel-headers')
-replaces=('kernel-headers')
-source=(http://www.kernel.org/pub/linux/kernel/v3.x/linux-${_basever}.tar.xz
- http://www.kernel.org/pub/linux/kernel/v3.x/patch-${pkgver}.xz)
-# NOTE: signatures are not automatically verified by makepkg
- #http://www.kernel.org/pub/linux/kernel/v3.x/linux-${_basever}.tar.sign
- #http://www.kernel.org/pub/linux/kernel/v3.x/patch-${pkgver}.sign
-md5sums=('edbdc798f23ae0f8045c82f6fa22c536'
- 'ffb768bb3c42c94876f3f84aa6f779e5')
-
-build() {
- cd ${srcdir}/linux-${_basever}
- [[ $pkgver != $_basever ]] && patch -Np1 -i ${srcdir}/patch-${pkgver}
-
- make mrproper
- make headers_check
-}
-
-package() {
- cd ${srcdir}/linux-${_basever}
- make INSTALL_HDR_PATH=${pkgdir}/usr headers_install
-
- # use headers from libdrm
- rm -rf ${pkgdir}/usr/include/drm
-
- # clean-up unnecessary files generated during install
- find ${pkgdir} -name .install -or -name ..install.cmd | xargs rm -f
-}
diff --git a/testing/llvm/PKGBUILD b/testing/llvm/PKGBUILD
deleted file mode 100644
index 6248f6406..000000000
--- a/testing/llvm/PKGBUILD
+++ /dev/null
@@ -1,199 +0,0 @@
-# $Id: PKGBUILD 144360 2011-12-05 04:48:47Z foutrelis $
-# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
-# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
-# Contributor: Sebastian Nowicki <sebnow@gmail.com>
-# Contributor: Devin Cofer <ranguvar{AT]archlinux[DOT}us>
-# Contributor: Tobias Kieslich <tobias@justdreams.de>
-# Contributor: Geoffroy Carrier <geoffroy.carrier@aur.archlinux.org>
-# Contributor: Tomas Lindquist Olsen <tomas@famolsen.dk>
-# Contributor: Roberto Alsina <ralsina@kde.org>
-# Contributor: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
-
-pkgname=('llvm' 'llvm-ocaml' 'clang' 'clang-analyzer')
-pkgver=3.0
-pkgrel=1
-arch=('i686' 'x86_64')
-url="http://llvm.org/"
-license=('custom:University of Illinois/NCSA Open Source License')
-makedepends=('libffi' 'python2' 'ocaml')
-source=(http://llvm.org/releases/$pkgver/$pkgname-$pkgver.tar.gz
- http://llvm.org/releases/$pkgver/clang-$pkgver.tar.gz
- clang-plugin-loader-registry.patch
- cindexer-clang-path.patch
- clang-pure64.patch
- enable-lto.patch
- fix-gold-lto-linking.patch)
-sha256sums=('519eb11d3499ce99c6ffdb8718651fc91425ed7690eac91c8d6853474f7c0477'
- 'b64e72da356d7c3428cfd7ac620d49ec042c84eaee13c26024879f555f4e126d'
- 'a0a4494f2a692789670be37fd390906dcaa37b1824f740bdaaea21182f2f3a9c'
- '3074df5322900e087377a8e03a02115463ccc0011c25917c2f06df11facd9b92'
- '288a82fbff17bc554f5863734246500e637882af33ee8511019d5e0d6cd20524'
- 'cf8922a932e1859f3783bef2af8ac1e90ce96f8eec79928392327b71b3d7cb89'
- '24d275cdf170f53844bc7174b065fb51b6ddbb9642ced34702cde1f0f74d9192')
-
-build() {
- cd "$srcdir/$pkgname-$pkgver.src"
-
- # At the present, clang must reside inside the LLVM source code tree to build
- # See http://llvm.org/bugs/show_bug.cgi?id=4840
- rm -rf tools/clang
- cp -r "$srcdir/clang-$pkgver.src" tools/clang
-
- # Fix symbolic links from OCaml bindings to LLVM libraries
- sed -i 's:\$(PROJ_libdir):/usr/lib/llvm:' bindings/ocaml/Makefile.ocaml
-
- # Fix installation directories, ./configure doesn't seem to set them right
- sed -i -e 's:\$(PROJ_prefix)/etc/llvm:/etc/llvm:' \
- -e 's:\$(PROJ_prefix)/lib:$(PROJ_prefix)/lib/llvm:' \
- -e 's:\$(PROJ_prefix)/docs/llvm:$(PROJ_prefix)/share/doc/llvm:' \
- Makefile.config.in
-
- # Fix insecure rpath (http://bugs.archlinux.org/task/14017)
- sed -i 's:$(RPATH) -Wl,$(\(ToolDir\|LibDir\|ExmplDir\))::g' Makefile.rules
-
- # Get the correct list of symbols to export
- # 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"
-
- if [[ $CARCH == x86_64 ]]; then
- # Adjust linker path
- patch -d tools/clang -Np0 -i "$srcdir/clang-pure64.patch"
- fi
-
- # Make -flto work
- # Use gold instead of default linker, and always use the plugin
- patch -d tools/clang -Np0 -i "$srcdir/enable-lto.patch"
-
- # Fix libLTO.so location in gold plugin
- patch -Np1 -i "$srcdir/fix-gold-lto-linking.patch"
-
- # Apply strip option to configure
- _optimized_switch="enable"
- [[ $(check_option strip) == n ]] && _optimized_switch="disable"
-
- # Include location of libffi headers in CPPFLAGS
- export CPPFLAGS="$CPPFLAGS $(pkg-config --cflags libffi)"
-
- # Force the use of GCC instead of clang
- CC=gcc CXX=g++ \
- ./configure \
- --prefix=/usr \
- --libdir=/usr/lib/llvm \
- --sysconfdir=/etc \
- --enable-shared \
- --enable-libffi \
- --enable-targets=all \
- --disable-expensive-checks \
- --disable-debug-runtime \
- --disable-assertions \
- --with-binutils-include=/usr/include \
- --$_optimized_switch-optimized
-
- make REQUIRES_RTTI=1
-}
-
-package_llvm() {
- pkgdesc="Low Level Virtual Machine"
- depends=('perl' 'libffi')
-
- cd "$srcdir/$pkgname-$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"
- # Copy missing file into the expected location
- cp bindings/ocaml/llvm/META.llvm bindings/ocaml/llvm/Release/
- # -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/lib/llvm/*.a
-
- # Fix libdir in llvm-config (http://bugs.archlinux.org/task/14487)
- sed -i 's:\(ABS_RUN_DIR/lib\):\1/llvm:' "$pkgdir/usr/bin/llvm-config"
-
- # Get rid of example Hello transformation
- rm "$pkgdir"/usr/lib/llvm/*LLVMHello.*
-
- # Add ld.so.conf.d entry
- install -d "$pkgdir/etc/ld.so.conf.d"
- echo /usr/lib/llvm >"$pkgdir/etc/ld.so.conf.d/llvm.conf"
-
- install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
-}
-
-package_llvm-ocaml() {
- pkgdesc="OCaml bindings for LLVM"
- depends=("llvm=$pkgver-$pkgrel" 'ocaml')
-
- cd "$srcdir/llvm-$pkgver.src"
-
- install -d "$pkgdir"/{usr/lib,usr/share/doc/llvm}
- cp -r "$srcdir/ocaml" "$pkgdir/usr/lib"
- cp -r "$srcdir/ocamldoc" "$pkgdir/usr/share/doc/llvm"
-
- # Remove execute bit from static libraries
- chmod -x "$pkgdir"/usr/lib/ocaml/libllvm*.a
-
- install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/llvm-ocaml/LICENSE"
-}
-
-package_clang() {
- pkgdesc="C language family frontend for LLVM"
- url="http://clang.llvm.org/"
- depends=("llvm=$pkgver-$pkgrel" 'gcc')
-
- # Fix installation path for clang docs
- sed -i 's:$(PROJ_prefix)/share/doc/llvm:$(PROJ_prefix)/share/doc/clang:' \
- "$srcdir/llvm-$pkgver.src/Makefile.config"
-
- cd "$srcdir/llvm-$pkgver.src/tools/clang"
- make DESTDIR="$pkgdir" install
-
- # Fix permissions of static libs
- chmod -x "$pkgdir"/usr/lib/llvm/*.a
-
- # Revert the path change in case we want to do a repackage later
- sed -i 's:$(PROJ_prefix)/share/doc/clang:$(PROJ_prefix)/share/doc/llvm:' \
- "$srcdir/llvm-$pkgver.src/Makefile.config"
-
- install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/clang/LICENSE"
-}
-
-package_clang-analyzer() {
- pkgdesc="A source code analysis framework"
- url="http://clang-analyzer.llvm.org/"
- depends=("clang=$pkgver-$pkgrel" 'python2')
-
- cd "$srcdir/llvm-$pkgver.src/tools/clang"
-
- install -d "$pkgdir"/usr/{bin,lib/clang-analyzer}
- for _tool in scan-{build,view}; do
- cp -r tools/$_tool "$pkgdir/usr/lib/clang-analyzer/"
- ln -s /usr/lib/clang-analyzer/$_tool/$_tool "$pkgdir/usr/bin/"
- done
-
- # Use Python 2
- sed -i 's/env python$/&2/' \
- "$pkgdir/usr/lib/clang-analyzer/scan-view/scan-view" \
- "$pkgdir/usr/lib/clang-analyzer/scan-build/set-xcode-analyzer"
-
- # Compile Python scripts
- python2 -m compileall "$pkgdir/usr/lib/clang-analyzer"
- python2 -O -m compileall "$pkgdir/usr/lib/clang-analyzer"
-
- install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/clang-analyzer/LICENSE"
-}
-
-# vim:set ts=2 sw=2 et:
diff --git a/testing/llvm/cindexer-clang-path.patch b/testing/llvm/cindexer-clang-path.patch
deleted file mode 100644
index ddaab690e..000000000
--- a/testing/llvm/cindexer-clang-path.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- tools/libclang/CIndexer.cpp.orig 2011-04-07 13:08:24.000000000 +0300
-+++ tools/libclang/CIndexer.cpp 2011-04-07 13:11:52.224884642 +0300
-@@ -80,6 +80,7 @@ std::string CIndexer::getClangResourcesP
-
- // We now have the CIndex directory, locate clang relative to it.
- LibClangPath.eraseComponent();
-+ LibClangPath.eraseComponent();
- #endif
-
- LibClangPath.appendComponent("clang");
diff --git a/testing/llvm/clang-plugin-loader-registry.patch b/testing/llvm/clang-plugin-loader-registry.patch
deleted file mode 100644
index f46eb9fce..000000000
--- a/testing/llvm/clang-plugin-loader-registry.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -upr llvm-2.7.orig/autoconf/ExportMap.map llvm-2.7/autoconf/ExportMap.map
---- llvm-2.7.orig/autoconf/ExportMap.map 2010-02-25 00:33:41.000000000 +0200
-+++ llvm-2.7/autoconf/ExportMap.map 2010-05-10 14:14:22.000000000 +0300
-@@ -2,6 +2,7 @@
- global: main;
- __progname;
- environ;
-+ _ZN4llvm8RegistryIN5clang14FrontendActionENS_14RegistryTraitsIS2_EEE4HeadE;
-
- local: *;
- };
diff --git a/testing/llvm/clang-pure64.patch b/testing/llvm/clang-pure64.patch
deleted file mode 100644
index 9bbbfaa8b..000000000
--- a/testing/llvm/clang-pure64.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-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::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");
diff --git a/testing/llvm/enable-lto.patch b/testing/llvm/enable-lto.patch
deleted file mode 100644
index 3c8691b17..000000000
--- a/testing/llvm/enable-lto.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-Index: lib/Driver/ToolChains.cpp
-===================================================================
---- lib/Driver/ToolChains.cpp (revision 123373)
-+++ lib/Driver/ToolChains.cpp (working copy)
-@@ -1398,7 +1398,7 @@
- PPaths.push_back(Twine(GCCInstallation.getParentLibPath() + "/../" +
- GCCInstallation.getTriple() + "/bin").str());
-
-- Linker = GetProgramPath("ld");
-+ Linker = GetProgramPath("ld.gold");
-
- LinuxDistro Distro = DetectLinuxDistro(Arch);
-
-Index: lib/Driver/Tools.cpp
-===================================================================
---- lib/Driver/Tools.cpp (revision 123373)
-+++ lib/Driver/Tools.cpp (working copy)
-@@ -3412,11 +3412,11 @@
- }
- }
-
-- 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/llvm/LLVMgold.so";
- CmdArgs.push_back(Args.MakeArgString(Plugin));
-- }
-+ // }
-
- C.addCommand(new Command(JA, *this, ToolChain.Linker.c_str(), CmdArgs));
- }
diff --git a/testing/llvm/fix-gold-lto-linking.patch b/testing/llvm/fix-gold-lto-linking.patch
deleted file mode 100644
index 84d166471..000000000
--- a/testing/llvm/fix-gold-lto-linking.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-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/testing/module-init-tools/PKGBUILD b/testing/module-init-tools/PKGBUILD
deleted file mode 100644
index 918527cd2..000000000
--- a/testing/module-init-tools/PKGBUILD
+++ /dev/null
@@ -1,49 +0,0 @@
-# $Id: PKGBUILD 144112 2011-12-04 04:52:36Z dreisner $
-# Maintainer: Dave Reisner <dreisner@archlinux.org>
-# Maintainer: Aaron Griffin <aaron@archlinux.org>
-# Contributor: judd <jvinet@zeroflux.org>
-
-pkgname=module-init-tools
-pkgver=3.16
-pkgrel=3
-pkgdesc="Utilities needed by Linux systems for managing loadable kernel modules"
-arch=('i686' 'x86_64')
-url="https://modules.wiki.kernel.org"
-license=('GPL')
-depends=('glibc')
-makedepends=('docbook2x')
-backup=('etc/modprobe.d/modprobe.conf'
- 'etc/depmod.d/depmod.conf')
-source=("http://www.kernel.org/pub/linux/utils/kernel/$pkgname/$pkgname-$pkgver.tar.bz2"
- modprobe.conf
- depmod.conf
- docfix.patch)
-md5sums=('bc44832c6e41707b8447e2847d2019f5'
- '325657db471b3190f685e5a89c9b90e3'
- '4b8cbcbc54b9029c99fd730e257d4436'
- '4320d19902ded43bed55c804b065cdc7')
-
-build() {
- cd "$srcdir/$pkgname-$pkgver"
-
- # fix headers in SGML manpage sources and an XML typo
- patch -Np0 < "$srcdir/docfix.patch"
-
- ./configure --prefix=/usr --exec-prefix=/ --enable-zlib
- make
-}
-
-package() {
- cd "$srcdir/$pkgname-$pkgver"
-
- make DESTDIR=$pkgdir install
-
- # extra modprobe.d and depmod.d conf dirs
- install -dm755 "$pkgdir/lib/modprobe.d" "$pkgdir/etc/depmod.d"
-
- # Install custom depmod config to allow searching extramodules/
- install -Dm644 "$srcdir/depmod.conf" "$pkgdir/etc/depmod.d/depmod.conf"
-
- # Install our custom (empty) modprobe.conf
- install -Dm644 "$srcdir/modprobe.conf" "$pkgdir/etc/modprobe.d/modprobe.conf"
-}
diff --git a/testing/module-init-tools/depmod.conf b/testing/module-init-tools/depmod.conf
deleted file mode 100644
index 3feb67b05..000000000
--- a/testing/module-init-tools/depmod.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# /etc/depmod.d/depmod.conf
-#
-
-search updates extramodules built-in
diff --git a/testing/module-init-tools/docfix.patch b/testing/module-init-tools/docfix.patch
deleted file mode 100644
index 0151ca3f1..000000000
--- a/testing/module-init-tools/docfix.patch
+++ /dev/null
@@ -1,90 +0,0 @@
---- doc/depmod.conf.sgml.orig 2011-06-25 10:07:15.897805024 -0400
-+++ doc/depmod.conf.sgml 2011-06-25 10:07:48.810805020 -0400
-@@ -1,4 +1,5 @@
--<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
-+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
-+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
- <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
- <!ENTITY docbook "<productname>DocBook</productname>">
- <!ENTITY sgml "<abbrev>SGML</abbrev>">
---- doc/depmod.sgml.orig 2011-06-25 10:07:15.898805024 -0400
-+++ doc/depmod.sgml 2011-06-25 10:07:56.636805021 -0400
-@@ -1,4 +1,5 @@
--<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
-+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
-+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
- <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
- <!ENTITY docbook "<productname>DocBook</productname>">
- <!ENTITY sgml "<abbrev>SGML</abbrev>">
-@@ -52,7 +52,7 @@
- <arg><option>-n</option></arg>
- <arg><option>-v</option></arg>
- <arg><option>-P <replaceable>prefix</replaceable></option></arg>
-- <arg><option>-w</option><arg>
-+ <arg><option>-w</option></arg>
- <arg><option><replaceable>version</replaceable></option></arg>
- <arg rep='repeat'><option><replaceable>filename</replaceable></option></arg>
- </cmdsynopsis>
---- doc/insmod.sgml.orig 2011-06-25 10:07:15.899805024 -0400
-+++ doc/insmod.sgml 2011-06-25 10:07:59.228805019 -0400
-@@ -1,4 +1,5 @@
--<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
-+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
-+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
- <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
- <!ENTITY docbook "<productname>DocBook</productname>">
- <!ENTITY sgml "<abbrev>SGML</abbrev>">
---- doc/lsmod.sgml.orig 2011-06-25 10:07:15.899805024 -0400
-+++ doc/lsmod.sgml 2011-06-25 10:08:04.804805020 -0400
-@@ -1,4 +1,5 @@
--<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
-+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
-+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
- <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
- <!ENTITY docbook "<productname>DocBook</productname>">
- <!ENTITY sgml "<abbrev>SGML</abbrev>">
---- doc/modinfo.sgml.orig 2011-06-25 10:07:15.900805024 -0400
-+++ doc/modinfo.sgml 2011-06-25 10:08:07.630805019 -0400
-@@ -1,4 +1,5 @@
--<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
-+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
-+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
- <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
- <!ENTITY docbook "<productname>DocBook</productname>">
- <!ENTITY sgml "<abbrev>SGML</abbrev>">
---- doc/modprobe.conf.sgml.orig 2011-06-25 10:07:15.901805024 -0400
-+++ doc/modprobe.conf.sgml 2011-06-25 10:08:10.173805018 -0400
-@@ -1,4 +1,5 @@
--<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
-+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
-+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
- <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
- <!ENTITY docbook "<productname>DocBook</productname>">
- <!ENTITY sgml "<abbrev>SGML</abbrev>">
---- doc/modprobe.sgml.orig 2011-06-25 10:07:15.902805024 -0400
-+++ doc/modprobe.sgml 2011-06-25 10:08:13.623805019 -0400
-@@ -1,4 +1,5 @@
--<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
-+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
-+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
- <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
- <!ENTITY docbook "<productname>DocBook</productname>">
- <!ENTITY sgml "<abbrev>SGML</abbrev>">
---- doc/modules.dep.sgml.orig 2011-06-25 10:07:15.903805024 -0400
-+++ doc/modules.dep.sgml 2011-06-25 10:08:19.323805019 -0400
-@@ -1,4 +1,5 @@
--<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
-+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
-+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
- <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
- <!ENTITY docbook "<productname>DocBook</productname>">
- <!ENTITY sgml "<abbrev>SGML</abbrev>">
---- doc/rmmod.sgml.orig 2011-06-25 10:07:15.904805024 -0400
-+++ doc/rmmod.sgml 2011-06-25 10:08:27.691805017 -0400
-@@ -1,4 +1,5 @@
--<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
-+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
-+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
- <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
- <!ENTITY docbook "<productname>DocBook</productname>">
- <!ENTITY sgml "<abbrev>SGML</abbrev>">
diff --git a/testing/module-init-tools/modprobe.conf b/testing/module-init-tools/modprobe.conf
deleted file mode 100644
index 551bdfbdf..000000000
--- a/testing/module-init-tools/modprobe.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-#
-# /etc/modprobe.d/modprobe.conf
-#
diff --git a/testing/openldap/PKGBUILD b/testing/openldap/PKGBUILD
deleted file mode 100644
index 8a06572b5..000000000
--- a/testing/openldap/PKGBUILD
+++ /dev/null
@@ -1,96 +0,0 @@
-# $Id: PKGBUILD 145019 2011-12-14 23:01:42Z eric $
-# Maintainer:
-
-pkgbase=openldap
-pkgname=('libldap' 'openldap')
-pkgver=2.4.28
-pkgrel=1
-arch=('i686' 'x86_64')
-url="http://www.openldap.org/"
-license=('custom')
-makedepends=('libfetch' 'libltdl' 'libsasl' 'e2fsprogs' 'util-linux')
-source=(ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/${pkgbase}-${pkgver}.tgz
- slapd slapd.default ntlm.patch)
-sha1sums=('d888beae1723002a5a2ff5509d3040df40885774'
- 'bd1ea19256d3d467f1f803e0f4046ef50f17628f'
- 'd89b8a533045123f1ab46c9c430cf132d58a20a4'
- 'e4afd9f1c810ef4c4cd8fe1101dfe5887f2b7eef')
-
-build() {
- cd "${srcdir}"/${pkgbase}-${pkgver}
- patch -Np1 -i "${srcdir}"/ntlm.patch
- sed -i 's|-m 644 $(LIBRARY)|-m 755 $(LIBRARY)|' libraries/{liblber,libldap,libldap_r}/Makefile.in
- sed -i 's|#define LDAPI_SOCK LDAP_RUNDIR LDAP_DIRSEP "run" LDAP_DIRSEP "ldapi"|#define LDAPI_SOCK LDAP_DIRSEP "run" LDAP_DIRSEP "openldap" LDAP_DIRSEP "ldapi"|' include/ldap_defaults.h
- sed -i 's|%LOCALSTATEDIR%/run|/run/openldap|' servers/slapd/slapd.conf
- sed -i 's|-$(MKDIR) $(DESTDIR)$(localstatedir)/run|-$(MKDIR) $(DESTDIR)/run/openldap|' servers/slapd/Makefile.in
-
- LDFLAGS="$LDFLAGS -L\"${pkgdir}\"/libldap/usr/lib"
- ./configure --prefix=/usr --mandir=/usr/share/man --libexecdir=/usr/lib \
- --sysconfdir=/etc --localstatedir=/var/lib/openldap \
- --enable-ipv6 --enable-syslog --enable-local \
- --enable-bdb --enable-hdb \
- --enable-crypt --enable-dynamic \
- --with-threads --disable-wrappers \
- --enable-spasswd --with-cyrus-sasl \
- --enable-overlays=mod --enable-modules=yes
- make
-}
-
-check() {
- cd "${srcdir}"/${pkgbase}-${pkgver}
- make test
-}
-
-package_libldap() {
- pkgdesc="Lightweight Directory Access Protocol (LDAP) client libraries"
- depends=('libsasl' 'libfetch' 'e2fsprogs')
- backup=('etc/openldap/ldap.conf')
- options=('!libtool')
-
- cd "${srcdir}"/${pkgbase}-${pkgver}
- for dir in include libraries doc/man/man3 ; do
- pushd ${dir}
- make DESTDIR="${pkgdir}" install
- popd
- done
- install -Dm644 doc/man/man5/ldap.conf.5.tmp "${pkgdir}"/usr/share/man/man5/ldap.conf.5
-
-# get rid of duplicate default conf files
- rm "${pkgdir}"/etc/openldap/*.default
-
- ln -sf liblber.so "${pkgdir}"/usr/lib/liblber.so.2
- ln -sf libldap.so "${pkgdir}"/usr/lib/libldap.so.2
-
- install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
-}
-
-package_openldap() {
- pkgdesc="Lightweight Directory Access Protocol (LDAP) client and server"
- depends=("libldap>=${pkgver}" 'libltdl' 'util-linux')
- backup=('etc/openldap/slapd.conf' 'etc/conf.d/slapd')
- options=('!libtool' 'emptydirs')
- install=openldap.install
-
- cd "${srcdir}"/${pkgbase}-${pkgver}
- for dir in clients servers doc/man/man{1,5,8} ; do
- pushd ${dir}
- make DESTDIR="${pkgdir}" install
- popd
- done
- rm "${pkgdir}"/usr/share/man/man5/ldap.conf.5
- rm -r "${pkgdir}"/run
-
-# get rid of duplicate default conf files
- rm "${pkgdir}"/etc/openldap/*.default
-
- ln -s ../lib/slapd "${pkgdir}"/usr/sbin/slapd
-
- chown root:439 "${pkgdir}"/etc/openldap/{slapd.conf,DB_CONFIG.example}
- chmod 640 "${pkgdir}"/etc/openldap/{slapd.conf,DB_CONFIG.example}
-
- install -dm700 -o 439 -g 439 "${pkgdir}"/var/lib/openldap
- install -dm700 -o 439 -g 439 "${pkgdir}"/etc/openldap/slapd.d
- install -Dm755 "${srcdir}"/slapd "${pkgdir}"/etc/rc.d/slapd
- install -Dm644 "${srcdir}"/slapd.default "${pkgdir}"/etc/conf.d/slapd
- install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
-}
diff --git a/testing/openldap/ntlm.patch b/testing/openldap/ntlm.patch
deleted file mode 100644
index 6804b610d..000000000
--- a/testing/openldap/ntlm.patch
+++ /dev/null
@@ -1,230 +0,0 @@
-Patch from evolution-exchange (2.10.3). The ldap_ntlm_bind function is
-actually called by evolution-data-server, checked at version 1.12.2.
-Without this patch, the Exchange addressbook integration uses simple binds
-with cleartext passwords.
-
-Russ checked with openldap-software for upstream's opinion on this patch
-on 2007-12-21. Upstream had never received it as a patch submission and
-given that it's apparently only for older Exchange servers that can't do
-SASL and DIGEST-MD5, it's not very appealing.
-
-Bug#457374 filed against evolution-data-server asking if this support is
-still required on 2007-12-21.
-
-Index: trunk/include/ldap.h
-===================================================================
---- trunk.orig/include/ldap.h
-+++ trunk/include/ldap.h
-@@ -2461,5 +2461,25 @@
- LDAPControl **ctrls,
- LDAPDerefRes **drp ));
-
-+/*
-+ * hacks for NTLM
-+ */
-+#define LDAP_AUTH_NTLM_REQUEST ((ber_tag_t) 0x8aU)
-+#define LDAP_AUTH_NTLM_RESPONSE ((ber_tag_t) 0x8bU)
-+LDAP_F( int )
-+ldap_ntlm_bind LDAP_P((
-+ LDAP *ld,
-+ LDAP_CONST char *dn,
-+ ber_tag_t tag,
-+ struct berval *cred,
-+ LDAPControl **sctrls,
-+ LDAPControl **cctrls,
-+ int *msgidp ));
-+LDAP_F( int )
-+ldap_parse_ntlm_bind_result LDAP_P((
-+ LDAP *ld,
-+ LDAPMessage *res,
-+ struct berval *challenge));
-+
- LDAP_END_DECL
- #endif /* _LDAP_H */
-Index: trunk/libraries/libldap/ntlm.c
-===================================================================
---- /dev/null
-+++ trunk/libraries/libldap/ntlm.c
-@@ -0,0 +1,138 @@
-+/* $OpenLDAP: pkg/ldap/libraries/libldap/ntlm.c,v 1.1.4.10 2002/01/04 20:38:21 kurt Exp $ */
-+/*
-+ * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved.
-+ * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
-+ */
-+
-+/* Mostly copied from sasl.c */
-+
-+#include "portable.h"
-+
-+#include <stdlib.h>
-+#include <stdio.h>
-+
-+#include <ac/socket.h>
-+#include <ac/string.h>
-+#include <ac/time.h>
-+#include <ac/errno.h>
-+
-+#include "ldap-int.h"
-+
-+int
-+ldap_ntlm_bind(
-+ LDAP *ld,
-+ LDAP_CONST char *dn,
-+ ber_tag_t tag,
-+ struct berval *cred,
-+ LDAPControl **sctrls,
-+ LDAPControl **cctrls,
-+ int *msgidp )
-+{
-+ BerElement *ber;
-+ int rc;
-+ ber_int_t id;
-+
-+ Debug( LDAP_DEBUG_TRACE, "ldap_ntlm_bind\n", 0, 0, 0 );
-+
-+ assert( ld != NULL );
-+ assert( LDAP_VALID( ld ) );
-+ assert( msgidp != NULL );
-+
-+ if( msgidp == NULL ) {
-+ ld->ld_errno = LDAP_PARAM_ERROR;
-+ return ld->ld_errno;
-+ }
-+
-+ /* create a message to send */
-+ if ( (ber = ldap_alloc_ber_with_options( ld )) == NULL ) {
-+ ld->ld_errno = LDAP_NO_MEMORY;
-+ return ld->ld_errno;
-+ }
-+
-+ assert( LBER_VALID( ber ) );
-+
-+ LDAP_NEXT_MSGID( ld, id );
-+ rc = ber_printf( ber, "{it{istON}" /*}*/,
-+ id, LDAP_REQ_BIND,
-+ ld->ld_version, dn, tag,
-+ cred );
-+
-+ /* Put Server Controls */
-+ if( ldap_int_put_controls( ld, sctrls, ber ) != LDAP_SUCCESS ) {
-+ ber_free( ber, 1 );
-+ return ld->ld_errno;
-+ }
-+
-+ if ( ber_printf( ber, /*{*/ "N}" ) == -1 ) {
-+ ld->ld_errno = LDAP_ENCODING_ERROR;
-+ ber_free( ber, 1 );
-+ return ld->ld_errno;
-+ }
-+
-+ /* send the message */
-+ *msgidp = ldap_send_initial_request( ld, LDAP_REQ_BIND, dn, ber, id );
-+
-+ if(*msgidp < 0)
-+ return ld->ld_errno;
-+
-+ return LDAP_SUCCESS;
-+}
-+
-+int
-+ldap_parse_ntlm_bind_result(
-+ LDAP *ld,
-+ LDAPMessage *res,
-+ struct berval *challenge)
-+{
-+ ber_int_t errcode;
-+ ber_tag_t tag;
-+ BerElement *ber;
-+ ber_len_t len;
-+
-+ Debug( LDAP_DEBUG_TRACE, "ldap_parse_ntlm_bind_result\n", 0, 0, 0 );
-+
-+ assert( ld != NULL );
-+ assert( LDAP_VALID( ld ) );
-+ assert( res != NULL );
-+
-+ if ( ld == NULL || res == NULL ) {
-+ return LDAP_PARAM_ERROR;
-+ }
-+
-+ if( res->lm_msgtype != LDAP_RES_BIND ) {
-+ ld->ld_errno = LDAP_PARAM_ERROR;
-+ return ld->ld_errno;
-+ }
-+
-+ if ( ld->ld_error ) {
-+ LDAP_FREE( ld->ld_error );
-+ ld->ld_error = NULL;
-+ }
-+ if ( ld->ld_matched ) {
-+ LDAP_FREE( ld->ld_matched );
-+ ld->ld_matched = NULL;
-+ }
-+
-+ /* parse results */
-+
-+ ber = ber_dup( res->lm_ber );
-+
-+ if( ber == NULL ) {
-+ ld->ld_errno = LDAP_NO_MEMORY;
-+ return ld->ld_errno;
-+ }
-+
-+ tag = ber_scanf( ber, "{ioa" /*}*/,
-+ &errcode, challenge, &ld->ld_error );
-+ ber_free( ber, 0 );
-+
-+ if( tag == LBER_ERROR ) {
-+ ld->ld_errno = LDAP_DECODING_ERROR;
-+ return ld->ld_errno;
-+ }
-+
-+ ld->ld_errno = errcode;
-+
-+ return( ld->ld_errno );
-+}
-+
-Index: trunk/libraries/libldap/Makefile.in
-===================================================================
---- trunk.orig/libraries/libldap/Makefile.in
-+++ trunk/libraries/libldap/Makefile.in
-@@ -27,7 +27,7 @@
- init.c options.c print.c string.c util-int.c schema.c \
- charray.c os-local.c dnssrv.c utf-8.c utf-8-conv.c \
- tls2.c tls_o.c tls_g.c tls_m.c \
-- turn.c ppolicy.c dds.c txn.c ldap_sync.c stctrl.c \
-+ turn.c ppolicy.c dds.c txn.c ldap_sync.c stctrl.c ntlm.c \
- assertion.c deref.c ldif.c fetch.c
-
- OBJS = bind.lo open.lo result.lo error.lo compare.lo search.lo \
-@@ -40,7 +40,7 @@
- init.lo options.lo print.lo string.lo util-int.lo schema.lo \
- charray.lo os-local.lo dnssrv.lo utf-8.lo utf-8-conv.lo \
- tls2.lo tls_o.lo tls_g.lo tls_m.lo \
-- turn.lo ppolicy.lo dds.lo txn.lo ldap_sync.lo stctrl.lo \
-+ turn.lo ppolicy.lo dds.lo txn.lo ldap_sync.lo stctrl.lo ntlm.lo \
- assertion.lo deref.lo ldif.lo fetch.lo
-
- LDAP_INCDIR= ../../include
-Index: trunk/libraries/libldap_r/Makefile.in
-===================================================================
---- trunk.orig/libraries/libldap_r/Makefile.in
-+++ trunk/libraries/libldap_r/Makefile.in
-@@ -29,7 +29,7 @@
- init.c options.c print.c string.c util-int.c schema.c \
- charray.c os-local.c dnssrv.c utf-8.c utf-8-conv.c \
- tls2.c tls_o.c tls_g.c tls_m.c \
-- turn.c ppolicy.c dds.c txn.c ldap_sync.c stctrl.c \
-+ turn.c ppolicy.c dds.c txn.c ldap_sync.c stctrl.c ntlm.c \
- assertion.c deref.c ldif.c fetch.c
- SRCS = threads.c rdwr.c rmutex.c tpool.c rq.c \
- thr_posix.c thr_cthreads.c thr_thr.c thr_lwp.c thr_nt.c \
-@@ -47,7 +47,7 @@
- init.lo options.lo print.lo string.lo util-int.lo schema.lo \
- charray.lo os-local.lo dnssrv.lo utf-8.lo utf-8-conv.lo \
- tls2.lo tls_o.lo tls_g.lo tls_m.lo \
-- turn.lo ppolicy.lo dds.lo txn.lo ldap_sync.lo stctrl.lo \
-+ turn.lo ppolicy.lo dds.lo txn.lo ldap_sync.lo stctrl.lo ntlm.lo \
- assertion.lo deref.lo ldif.lo fetch.lo
-
- LDAP_INCDIR= ../../include
diff --git a/testing/openldap/openldap.install b/testing/openldap/openldap.install
deleted file mode 100644
index cf3cb9f25..000000000
--- a/testing/openldap/openldap.install
+++ /dev/null
@@ -1,20 +0,0 @@
-post_install(){
- groupadd -g 439 ldap &>/dev/null
- useradd -u 439 -g ldap -d /var/lib/openldap -s /bin/false ldap &>/dev/null
- chown -R ldap:ldap var/lib/openldap &>/dev/null
-}
-
-post_upgrade(){
- getent group ldap >/dev/null 2>&1 || groupadd -g 439 ldap &>/dev/null
- getent passwd ldap >/dev/null 2>&1 || useradd -u 439 -g ldap -d /var/lib/openldap -s /bin/false ldap &>/dev/null
- chown -R ldap:ldap var/lib/openldap &>/dev/null
-}
-
-post_remove(){
- if getent passwd ldap >/dev/null 2>&1; then
- userdel ldap
- fi
- if getent group ldap >/dev/null 2>&1; then
- groupdel ldap
- fi
-}
diff --git a/testing/openldap/slapd b/testing/openldap/slapd
deleted file mode 100755
index 4f212da66..000000000
--- a/testing/openldap/slapd
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/bash
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-
-[ -f "/etc/conf.d/slapd" ] && . /etc/conf.d/slapd
-
-PID=`pidof -o %PPID /usr/sbin/slapd`
-case "$1" in
- start)
- stat_busy "Starting OpenLDAP"
- [ ! -d /run/openldap ] && install -d -m755 -o ldap -g ldap /run/openldap
- if [ -z "$PID" ]; then
- if [ -z "$SLAPD_SERVICES" ]; then
- /usr/sbin/slapd -u ldap -g ldap $SLAPD_OPTIONS
- else
- /usr/sbin/slapd -u ldap -g ldap -h "$SLAPD_SERVICES" $SLAPD_OPTIONS
- fi
- if [ $? -gt 0 ]; then
- stat_fail
- else
- stat_done
- fi
- add_daemon slapd
- else
- stat_fail
- fi
- ;;
- stop)
- stat_busy "Stopping OpenLDAP"
- [ ! -z "$PID" ] && kill $PID &> /dev/null
- if [ $? -gt 0 ]; then
- stat_fail
- else
- rm -f /run/openldap/slapd.pid
- rm -f /run/openldap/slapd.args
- rm_daemon slapd
- stat_done
- fi
- ;;
- restart)
- $0 stop
- sleep 3
- $0 start
- ;;
- *)
- echo "usage: $0 {start|stop|restart}"
-esac
-exit 0
diff --git a/testing/openldap/slapd.default b/testing/openldap/slapd.default
deleted file mode 100644
index 72ae2a6a7..000000000
--- a/testing/openldap/slapd.default
+++ /dev/null
@@ -1,6 +0,0 @@
-# slapd normally serves ldap only on all TCP-ports 389. slapd can also
-# service requests on TCP-port 636 (ldaps) and requests via unix
-# sockets.
-# Example usage:
-#SLAPD_SERVICES="ldap://127.0.0.1:389/ ldaps:/// ldapi:///"
-SLAPD_OPTIONS=""
diff --git a/testing/pcre/PKGBUILD b/testing/pcre/PKGBUILD
deleted file mode 100644
index 88e858d56..000000000
--- a/testing/pcre/PKGBUILD
+++ /dev/null
@@ -1,43 +0,0 @@
-# $Id: PKGBUILD 144981 2011-12-13 00:29:03Z allan $
-# Maintainer: Allan McRae <allan@archlinux.org>
-# Contributor: Eric Belanger <eric@archlinux.org>
-# Contributor: John Proctor <jproctor@prium.net>
-
-pkgname=pcre
-pkgver=8.21
-pkgrel=1
-pkgdesc="A library that implements Perl 5-style regular expressions"
-arch=('i686' 'x86_64')
-url="http://www.pcre.org/"
-license=('BSD')
-depends=('gcc-libs')
-options=('!libtool')
-source=(ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/${pkgname}-${pkgver}.tar.bz2{,.sig})
-md5sums=('0a7b592bea64b7aa7f4011fc7171a730'
- '4768871445dff956e620a9e902b4db55')
-
-build() {
- cd "${srcdir}"/${pkgname}-${pkgver}
-
- [ "${CARCH}" = "x86_64" ] && export CFLAGS="${CFLAGS} -fPIC"
- ./configure --prefix=/usr --enable-jit \
- --enable-utf8 --enable-unicode-properties
- make
-}
-
-check() {
- cd "${srcdir}"/${pkgname}-${pkgver}
- make check
-}
-
-package() {
- cd "${srcdir}"/${pkgname}-${pkgver}
- make DESTDIR="${pkgdir}" install
-
- # grep uses pcre, so we need the libs in /lib
- install -dm755 "${pkgdir}"/lib
- mv "${pkgdir}"/usr/lib/libpcre.so.* "${pkgdir}"/lib/
- ln -sf /lib/libpcre.so.0 "${pkgdir}"/usr/lib/libpcre.so
-
- install -Dm644 LICENCE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
-}
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/pyalpm/PKGBUILD b/testing/pyalpm/PKGBUILD
deleted file mode 100644
index 6053b3214..000000000
--- a/testing/pyalpm/PKGBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Maintainer : Rémy Oudompheng <remy@archlinux.org>
-
-pkgname=pyalpm
-pkgver=0.5.3
-pkgrel=1
-pkgdesc="Libalpm bindings for Python 3"
-arch=('i686' 'x86_64')
-url="http://projects.archlinux.org/users/remy/pyalpm.git/"
-license=('GPL')
-depends=('python>=3.2' 'pacman>=4')
-source=("ftp://ftp.archlinux.org/other/pyalpm/$pkgname-$pkgver.tar.gz")
-md5sums=('a76019106d17de3a5933c773013a63d1')
-
-build() {
- cd ${srcdir}/${pkgname}-${pkgver}
- python setup.py build
-}
-
-package() {
- cd ${srcdir}/${pkgname}-${pkgver}
- python setup.py install --root=${pkgdir}
-}
-
diff --git a/testing/pyqt/PKGBUILD b/testing/pyqt/PKGBUILD
new file mode 100644
index 000000000..df569bb5b
--- /dev/null
+++ b/testing/pyqt/PKGBUILD
@@ -0,0 +1,79 @@
+# $Id: PKGBUILD 145217 2011-12-19 18:04:00Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+# Contributor: riai <riai@bigfoot.com> Ben <ben@benmazer.net>
+
+pkgbase=pyqt
+pkgname=('pyqt' 'python2-pyqt')
+pkgver=4.8.6
+pkgrel=2
+arch=('i686' 'x86_64')
+url="http://riverbankcomputing.co.uk/software/pyqt/intro"
+license=('GPL')
+makedepends=('qt' 'python-sip' 'dbus-python' 'python2-sip' 'phonon'
+ 'python-opengl' 'qt-assistant-compat' 'qtwebkit')
+source=("http://riverbankcomputing.co.uk/static/Downloads/PyQt4/PyQt-x11-gpl-${pkgver}.tar.gz")
+md5sums=('9bfd7b08b8e438b83cc50d5c58191f97')
+
+build() {
+ cd "${srcdir}"
+ cp -r PyQt-x11-gpl-${pkgver} Py2Qt-x11-gpl-${pkgver}
+
+ cd "${srcdir}/PyQt-x11-gpl-${pkgver}"
+ python configure.py \
+ --confirm-license \
+ --qsci-api
+
+ # Thanks Gerardo for the rpath fix
+ find -name 'Makefile' | xargs sed -i 's|-Wl,-rpath,/usr/lib||g;s|-Wl,-rpath,.* ||g'
+
+ make
+
+ ### Python2 version ###
+ cd "${srcdir}/Py2Qt-x11-gpl-${pkgver}"
+ python2 configure.py \
+ --confirm-license \
+ -v /usr/share/sip \
+ --qsci-api
+
+ # Thanks Gerardo for the rpath fix
+ find -name 'Makefile' | xargs sed -i 's|-Wl,-rpath,/usr/lib||g;s|-Wl,-rpath,.* ||g'
+
+ make
+}
+
+package_pyqt(){
+ pkgdesc="A set of Python 3.x bindings for the Qt toolkit"
+ depends=('qtwebkit' 'python-sip')
+ optdepends=('phonon: enable audio and video in PyQt applications'
+ 'qscintilla: QScintilla API'
+ 'qt-assistant-compat: add PyQt online help in Qt Assistant')
+ replaces=('python-qt')
+ provides=('python-qt')
+
+ cd "${srcdir}/PyQt-x11-gpl-${pkgver}"
+ # INSTALL_ROOT is needed for the QtDesigner module, the other Makefiles use DESTDIR
+ make DESTDIR="${pkgdir}" INSTALL_ROOT="${pkgdir}" install
+}
+
+package_python2-pyqt(){
+ pkgdesc="A set of Python 2.x bindings for the Qt toolkit"
+ depends=('pyqt' 'python2-sip' 'dbus-python')
+ optdepends=('phonon: enable audio and video in PyQt applications'
+ 'python-opengl: enable OpenGL 3D graphics in PyQt applications'
+ 'qscintilla: QScintilla API'
+ 'qt-assistant-compat: add PyQt online help in Qt Assistant')
+ replaces=('python2-qt')
+ provides=('python2-qt')
+ options=('!emptydirs')
+
+ cd "${srcdir}/Py2Qt-x11-gpl-${pkgver}"
+ # INSTALL_ROOT is needed for the QtDesigner module, the other Makefiles use DESTDIR
+ make DESTDIR="${pkgdir}" INSTALL_ROOT="${pkgdir}" install
+
+ # Provided by pyqt
+ rm ${pkgdir}/usr/bin/{pylupdate4,pyrcc4,pyuic4}
+ rm ${pkgdir}/usr/lib/qt/plugins/designer/libpythonplugin.so
+ rm ${pkgdir}/usr/share/qt/qsci/api/python/PyQt4.api
+}
diff --git a/testing/qt/PKGBUILD b/testing/qt/PKGBUILD
new file mode 100644
index 000000000..cc2b26f1d
--- /dev/null
+++ b/testing/qt/PKGBUILD
@@ -0,0 +1,126 @@
+# $Id: PKGBUILD 145207 2011-12-19 18:03:03Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=qt
+pkgname=('qt' 'qt-private-headers')
+pkgver=4.8.0
+pkgrel=2
+arch=('i686' 'x86_64')
+url='http://qt-project.org/'
+license=('GPL3' 'LGPL')
+makedepends=('libtiff' 'libpng' 'libmng' 'sqlite3' 'ca-certificates' 'glib2' 'dbus'
+ 'fontconfig' 'libgl' 'libsm' 'libxrandr' 'libxv' 'libxi' 'alsa-lib'
+ 'xdg-utils' 'hicolor-icon-theme' 'desktop-file-utils' 'mesa' 'postgresql-libs'
+ 'mysql' 'unixodbc' 'cups' 'gtk2')
+options=('!libtool')
+_pkgfqn="${pkgbase}-everywhere-opensource-src-${pkgver}"
+source=("http://get.qt.nokia.com/qt/source/${_pkgfqn}.tar.gz"
+ 'assistant.desktop' 'designer.desktop' 'linguist.desktop'
+ 'qtconfig.desktop')
+md5sums=('e8a5fdbeba2927c948d9f477a6abe904'
+ 'fc211414130ab2764132e7370f8e5caa'
+ '85179f5e0437514f8639957e1d8baf62'
+ 'f11852b97583610f3dbb669ebc3e21bc'
+ '6b771c8a81dd90b45e8a79afa0e5bbfd')
+
+build() {
+ cd "${srcdir}"/${_pkgfqn}
+
+ export QT4DIR="${srcdir}"/${_pkgfqn}
+ export LD_LIBRARY_PATH=${QT4DIR}/lib:${LD_LIBRARY_PATH}
+
+ sed -i "s|-O2|${CXXFLAGS}|" mkspecs/common/g++-base.conf
+ sed -i "/^QMAKE_LFLAGS_RPATH/s| -Wl,-rpath,||g" mkspecs/common/gcc-base-unix.conf
+ sed -i "/^QMAKE_LFLAGS\s/s|+=|+= ${LDFLAGS}|g" mkspecs/common/gcc-base.conf
+
+ ./configure -confirm-license -opensource \
+ -prefix /usr \
+ -docdir /usr/share/doc/qt \
+ -plugindir /usr/lib/qt/plugins \
+ -importdir /usr/lib/qt/imports \
+ -datadir /usr/share/qt \
+ -translationdir /usr/share/qt/translations \
+ -sysconfdir /etc \
+ -examplesdir /usr/share/doc/qt/examples \
+ -demosdir /usr/share/doc/qt/demos \
+ -plugin-sql-{psql,mysql,sqlite,odbc} \
+ -system-sqlite \
+ -no-phonon \
+ -no-phonon-backend \
+ -no-webkit \
+ -graphicssystem raster \
+ -openssl-linked \
+ -nomake demos \
+ -nomake examples \
+ -nomake docs \
+ -silent \
+ -no-rpath \
+ -optimized-qmake \
+ -reduce-relocations \
+ -dbus-linked \
+ -no-openvg
+ make
+}
+
+package_qt() {
+ pkgdesc='A cross-platform application and UI framework'
+ depends=('libtiff' 'libpng' 'libmng' 'sqlite3' 'ca-certificates' 'glib2' 'dbus'
+ 'fontconfig' 'libgl' 'libsm' 'libxrandr' 'libxv' 'libxi' 'alsa-lib'
+ 'xdg-utils' 'hicolor-icon-theme' 'desktop-file-utils')
+ optdepends=('postgresql-libs: PostgreSQL driver'
+ 'libmysqlclient: MySQL driver'
+ 'unixodbc: ODBC driver'
+ 'libxinerama: Xinerama support'
+ 'libxcursor: Xcursor support'
+ 'libxfixes: Xfixes support')
+ install='qt.install'
+
+ cd "${srcdir}"/${_pkgfqn}
+ make INSTALL_ROOT="${pkgdir}" install
+
+ # install missing icons and desktop files
+ for icon in tools/linguist/linguist/images/icons/linguist-*-32.png ; do
+ size=$(echo $(basename ${icon}) | cut -d- -f2)
+ install -p -D -m644 ${icon} \
+ "${pkgdir}/usr/share/icons/hicolor/${size}x${size}/apps/linguist.png"
+ done
+ install -p -D -m644 src/gui/dialogs/images/qtlogo-64.png \
+ "${pkgdir}/usr/share/icons/hicolor/64x64/apps/qtlogo.png"
+ install -p -D -m644 tools/assistant/tools/assistant/images/assistant.png \
+ "${pkgdir}/usr/share/icons/hicolor/32x32/apps/assistant.png"
+ install -p -D -m644 tools/designer/src/designer/images/designer.png \
+ "${pkgdir}/usr/share/icons/hicolor/128x128/apps/designer.png"
+ install -d "${pkgdir}/usr/share/applications"
+ install -m644 "${srcdir}"/{linguist,designer,assistant,qtconfig}.desktop \
+ "${pkgdir}/usr/share/applications/"
+
+ # install license addition
+ install -D -m644 LGPL_EXCEPTION.txt \
+ ${pkgdir}/usr/share/licenses/qt/LGPL_EXCEPTION.txt
+
+ # Fix wrong path in pkgconfig files
+ find "${pkgdir}/usr/lib/pkgconfig" -type f -name '*.pc' \
+ -exec perl -pi -e "s, -L${srcdir}/?\S+,,g" {} \;
+
+ # Fix wrong path in prl files
+ find "${pkgdir}/usr/lib" -type f -name '*.prl' \
+ -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \;
+}
+
+package_qt-private-headers(){
+ pkgdesc="Qt private headers for development"
+ depends=("qt=${pkgver}")
+
+ install -d "${pkgdir}"/usr/include/{QtCore,QtDeclarative,QtGui,QtScript}
+ install -d "${pkgdir}"/usr/src/{corelib,declarative,gui,script}
+
+ for i in QtCore QtDeclarative QtGui QtScript; do
+ cp -r "${srcdir}"/${_pkgfqn}/include/${i}/private/ \
+ "${pkgdir}"/usr/include/${i}/
+ done
+
+ for i in corelib declarative gui script; do
+ cp -r "${srcdir}"/${_pkgfqn}/src/${i} "${pkgdir}"/usr/src/
+ done
+}
diff --git a/testing/qt/assistant.desktop b/testing/qt/assistant.desktop
new file mode 100644
index 000000000..a9e98c44b
--- /dev/null
+++ b/testing/qt/assistant.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Qt Assistant
+Comment=Shows Qt documentation and examples
+Exec=/usr/bin/assistant
+Icon=assistant
+Terminal=false
+Encoding=UTF-8
+Type=Application
+Categories=Qt;Development;Documentation;
diff --git a/testing/qt/designer.desktop b/testing/qt/designer.desktop
new file mode 100644
index 000000000..9b7b6e9aa
--- /dev/null
+++ b/testing/qt/designer.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Name=Qt Designer
+GenericName=Interface Designer
+Comment=Design GUIs for Qt applications
+Exec=/usr/bin/designer
+Icon=designer
+MimeType=application/x-designer;
+Terminal=false
+Encoding=UTF-8
+Type=Application
+Categories=Qt;Development;
diff --git a/testing/qt/linguist.desktop b/testing/qt/linguist.desktop
new file mode 100644
index 000000000..8cbe86599
--- /dev/null
+++ b/testing/qt/linguist.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=Qt Linguist
+Comment=Add translations to Qt applications
+Exec=/usr/bin/linguist
+Icon=linguist
+MimeType=text/vnd.trolltech.linguist;application/x-linguist;
+Terminal=false
+Encoding=UTF-8
+Type=Application
+Categories=Qt;Development;
diff --git a/testing/qt/qt.install b/testing/qt/qt.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/testing/qt/qt.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/qt/qtconfig.desktop b/testing/qt/qtconfig.desktop
new file mode 100644
index 000000000..46dcf9e3d
--- /dev/null
+++ b/testing/qt/qtconfig.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=Qt Config
+Comment=Configure Qt behavior, styles, fonts
+Exec=/usr/bin/qtconfig
+Icon=qtlogo
+Terminal=false
+Encoding=UTF-8
+Type=Application
+Categories=Qt;Settings;
+NoDisplay=true
diff --git a/testing/qt3/PKGBUILD b/testing/qt3/PKGBUILD
new file mode 100644
index 000000000..ea8a2a76f
--- /dev/null
+++ b/testing/qt3/PKGBUILD
@@ -0,0 +1,133 @@
+# $Id: PKGBUILD 145229 2011-12-19 18:04:21Z andrea $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=qt3
+pkgver=3.3.8
+pkgrel=21
+pkgdesc="The QT3 gui toolkit"
+arch=('i686' 'x86_64')
+url="http://www.trolltech.com/products/qt/index.html"
+license=('GPL')
+depends=('libpng' 'libxmu' 'libxcursor' 'libxinerama' 'mesa' 'libxft'
+ 'libxrandr' 'libmng')
+makedepends=('mysql' 'postgresql' 'unixodbc' 'sqlite3')
+optdepends=('libmysqlclient' 'postgresql-libs' 'unixodbc')
+options=('!libtool')
+install=qt.install
+source=(ftp://ftp.trolltech.com/qt/source/qt-x11-free-${pkgver}.tar.bz2
+ qt.profile qt3-png14.patch qt-copy-kde-patches.tar.bz2
+ qt-patches.tar.bz2 utf8-bug-qt3.diff qt-font-default-subst.diff
+ mysql.patch eastern_asian_languagues.diff qt-odbc.patch gcc-4.6.patch)
+sha1sums=('91b192cb8e80679607d24ae35d6e20ed68d149d7'
+ 'd2e257a9011208b2cb81b9cf47915b9a2f9dab83'
+ 'c8ea644266f4d6d6be9adf894f03138b8eca3fc2'
+ '9cb2e5bec782069692ee337cfa171539d9d73753'
+ '116afa0e737bdf27ea27f9b3653aeb56db9ec151'
+ 'ca5ecb29c7f1c826d48703339a3371038e306bb7'
+ 'd928ff55adb52c4bab2fb268df022651551cd70c'
+ 'bb6aad81cce143c23ff7840b1d79f6b2007a0c04'
+ '40c7b8f06a21f809ddeb8b5560e9da63ccac6a17'
+ '1346320614f6f86fbeb10b9fbad721dea29f5b61'
+ 'd9b83b8f6f9c8bd98d290dc1d0e9913a00b62c3f')
+
+# qt-copy-kde-patches come from http://websvn.kde.org/trunk/qt-copy/patches/
+# other qt-patches come from fedora and gentoo
+
+build() {
+ unset QMAKESPEC
+ export QTDIR="${srcdir}"/qt-x11-free-${pkgver}
+ export PATH=${QTDIR}/bin:${PATH}
+ export LD_LIBRARY_PATH=${QTDIR}/lib:${LD_LIBRARY_PATH}
+ export QMAKESPEC=$QTDIR/mkspecs/linux-g++
+ cd "${srcdir}"/qt-x11-free-${pkgver}
+ # apply qt patches from kde.org
+ for i in ../qt-copy-kde-patches/*; do
+ patch -Np0 -i $i
+ done
+ # apply other qt patches and one security fix from debian/gentoo
+ for i in ../qt-patches/*; do
+ patch -Np1 -i $i
+ done
+ # fix utf8 bug
+ patch -p0 -i "${srcdir}"/utf8-bug-qt3.diff
+ # fix asia fonts
+ patch -p0 -i "${srcdir}"/qt-font-default-subst.diff
+ # fix segfaults on exit when using mysql DB driver
+ patch -p0 -i "${srcdir}"/mysql.patch
+ # fix CJK font/chars select error (FS#11245)
+ patch -p1 -i "${srcdir}"/eastern_asian_languagues.diff
+ # fix build problem against new unixODBC
+ patch -p1 -i "${srcdir}"/qt-odbc.patch
+ # fix build with gcc 4.6.0
+ patch -p1 -i "${srcdir}"/gcc-4.6.patch
+
+ patch -p0 -i "${srcdir}"/qt3-png14.patch
+ # start compiling qt
+ sed -i 's|-cp -P -f|-cp -L -f|' qmake/Makefile.unix
+ rm -rf doc/html examples tutorial
+ sed -i "s|sub-tutorial sub-examples||" Makefile
+ sed -i "s|-O2|$CXXFLAGS|" mkspecs/linux-g++/qmake.conf
+ sed -i "s|-O2|$CXXFLAGS|" mkspecs/linux-g++-32/qmake.conf
+ sed -i "s|-O2|$CXXFLAGS|" mkspecs/linux-g++-64/qmake.conf
+ sed -i "s|-I. |$CXXFLAGS -I. |" qmake/Makefile.unix
+ sed -i "s|read acceptance|acceptance=yes|" configure
+
+ # remove unwanted mkspecs
+ rm -rf mkspecs/{*aix*,*bsd*,cygwin*,dgux*,darwin*,hpux*,hurd*,irix*,lynxos*,macx*,qnx*,reliant*,sco*,solaris*,tru64*,unixware*,win32*}
+
+ if [ "$CARCH" = "x86_64" ]; then
+ export ARCH="-64"
+ else unset ARCH
+ fi
+
+ ./configure -prefix /opt/qt \
+ -platform linux-g++$ARCH \
+ -system-zlib \
+ -qt-gif \
+ -release \
+ -shared \
+ -sm \
+ -nis \
+ -thread \
+ -stl \
+ -system-lib{png,jpeg,mng} \
+ -no-g++-exceptions \
+ -plugin-sql-{mysql,psql,sqlite,odbc}
+
+ # fix /opt/qt/lib path
+ [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/qt-x11-free-${pkgver}/src/Makefile
+ [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/qt-x11-free-${pkgver}/tools/designer/designer/Makefile
+ [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/qt-x11-free-${pkgver}/tools/designer/editor/Makefile
+ [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/qt-x11-free-${pkgver}/tools/assistant/lib/Makefile
+ [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/qt-x11-free-${pkgver}/tools/designer/uilib/Makefile
+
+ cd "${srcdir}"/qt-x11-free-${pkgver}
+ make -C qmake
+ cd "${srcdir}"/qt-x11-free-${pkgver}/plugins/src/sqldrivers/mysql
+ "${srcdir}"/qt-x11-free-${pkgver}/bin/qmake -o Makefile "INCPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql -lmysqlclient" mysql.pro
+ cd "${srcdir}"/qt-x11-free-${pkgver}/plugins/src/sqldrivers/psql
+ "${srcdir}"/qt-x11-free-${pkgver}/bin/qmake -o Makefile "INCPATH+=/usr/src/include /usr/include/postgresql/server" "LIBS+=-L/usr/lib -lpq" psql.pro
+
+ cd "${srcdir}"/qt-x11-free-${pkgver}
+ # fix the broken makefiles
+ #sed -i 's|[[:space:]]*strip.*doc/html.*$|#|g' src/Makefile
+ make
+}
+
+package() {
+ cd "${srcdir}"/qt-x11-free-${pkgver}
+ make INSTALL_ROOT="${pkgdir}" install
+ rm -rf "${pkgdir}"/opt/qt/{phrasebooks,templates,translations}
+ sed -i "s|-L${srcdir}/qt-x11-free-${pkgver}/lib ||g" "${pkgdir}"/opt/qt/lib/*.prl
+ install -D -m755 qmake/qmake "${pkgdir}"/opt/qt/bin/qmake
+ install -D -m755 "${srcdir}"/qt.profile "${pkgdir}"/etc/profile.d/qt3.sh
+ ln -sf /opt/qt/bin/qtconfig "${pkgdir}"/opt/qt/bin/qt3config
+ rm -f "${pkgdir}"/opt/qt/mkspecs/linux-g++$ARCH/linux-g++$ARCH
+
+ # install man pages
+ install -d -m755 "${pkgdir}"/opt/qt/man
+ cp -r "${srcdir}"/qt-x11-free-${pkgver}/doc/man/{man1,man3} "${pkgdir}"/opt/qt/man/
+
+ install -d -m755 "${pkgdir}"/etc/ld.so.conf.d/
+ echo '/opt/qt/lib' > "${pkgdir}"/etc/ld.so.conf.d/qt3.conf
+}
diff --git a/testing/qt3/eastern_asian_languagues.diff b/testing/qt3/eastern_asian_languagues.diff
new file mode 100644
index 000000000..7c25eef7d
--- /dev/null
+++ b/testing/qt3/eastern_asian_languagues.diff
@@ -0,0 +1,39 @@
+--- qt-x11-free-3.3.8b/src/kernel/qfontdatabase.cpp 2008-01-15 21:09:13.000000000 +0200
++++ qt-x11-free-3.3.8b/src/kernel/qfontdatabase.cpp 2008-03-10 11:34:22.000000000 +0200
+@@ -966,20 +966,22 @@
+
+ #ifdef Q_WS_X11
+ if (script == QFont::Han) {
+- // modify script according to locale
+- static QFont::Script defaultHan = QFont::UnknownScript;
+- if (defaultHan == QFont::UnknownScript) {
+- QCString locale = setlocale(LC_ALL, NULL);
+- if (locale.contains("ko"))
+- defaultHan = QFont::Han_Korean;
+- else if (locale.contains("zh_TW") || locale.contains("zh_HK"))
+- defaultHan = QFont::Han_TraditionalChinese;
+- else if (locale.contains("zh"))
+- defaultHan = QFont::Han_SimplifiedChinese;
+- else
+- defaultHan = QFont::Han_Japanese;
+- }
+- script = defaultHan;
++ // modify script according to locale
++ static QFont::Script defaultHan;
++ QCString locale = setlocale(LC_ALL, NULL);
++
++ if (locale.contains("ko"))
++ defaultHan = QFont::Han_Korean;
++ else if (locale.contains("zh_TW") || locale.contains("zh_HK"))
++ defaultHan = QFont::Han_TraditionalChinese;
++ else if (locale.contains("zh"))
++ defaultHan = QFont::Han_SimplifiedChinese;
++ else if (locale.contains("ja"))
++ defaultHan = QFont::Han_Japanese;
++ else
++ defaultHan = QFont::Han; // don't change
++
++ script = defaultHan;
+ }
+ #endif
+
diff --git a/testing/qt3/gcc-4.6.patch b/testing/qt3/gcc-4.6.patch
new file mode 100644
index 000000000..bcbffcea6
--- /dev/null
+++ b/testing/qt3/gcc-4.6.patch
@@ -0,0 +1,33 @@
+diff -up qt-x11-free-3.3.8b/src/tools/qmap.h.cstddef qt-x11-free-3.3.8b/src/tools/qmap.h
+--- qt-x11-free-3.3.8b/src/tools/qmap.h.cstddef 2008-01-15 13:09:13.000000000 -0600
++++ qt-x11-free-3.3.8b/src/tools/qmap.h 2011-01-30 21:14:29.275088725 -0600
+@@ -49,6 +49,7 @@
+ #include "qvaluelist.h"
+ #endif // QT_H
+
++#include <cstddef>
+ #ifndef QT_NO_STL
+ #include <iterator>
+ #include <map>
+diff -up qt-x11-free-3.3.8b/src/tools/qvaluelist.h.cstddef qt-x11-free-3.3.8b/src/tools/qvaluelist.h
+--- qt-x11-free-3.3.8b/src/tools/qvaluelist.h.cstddef 2008-01-15 13:09:13.000000000 -0600
++++ qt-x11-free-3.3.8b/src/tools/qvaluelist.h 2011-01-30 21:14:01.765846592 -0600
+@@ -47,6 +47,7 @@
+ #include "qdatastream.h"
+ #endif // QT_H
+
++#include <cstddef>
+ #ifndef QT_NO_STL
+ #include <iterator>
+ #include <list>
+diff -up qt-x11-free-3.3.8b/src/tools/qvaluevector.h.cstddef qt-x11-free-3.3.8b/src/tools/qvaluevector.h
+--- qt-x11-free-3.3.8b/src/tools/qvaluevector.h.cstddef 2008-01-15 13:09:13.000000000 -0600
++++ qt-x11-free-3.3.8b/src/tools/qvaluevector.h 2011-01-30 21:14:01.765846592 -0600
+@@ -45,6 +45,7 @@
+ #include "qdatastream.h"
+ #endif // QT_H
+
++#include <cstddef>
+ #ifndef QT_NO_STL
+ #include <vector>
+ #endif
diff --git a/testing/qt3/mysql.patch b/testing/qt3/mysql.patch
new file mode 100644
index 000000000..5f61edc67
--- /dev/null
+++ b/testing/qt3/mysql.patch
@@ -0,0 +1,47 @@
+--- src/sql/drivers/mysql/qsql_mysql.cpp
++++ src/sql/drivers/mysql/qsql_mysql.cpp
+@@ -37,7 +37,6 @@
+ #include "qsql_mysql.h"
+ #include <private/qsqlextension_p.h>
+
+-#include <qapplication.h>
+ #include <qdatetime.h>
+ #include <qvaluevector.h>
+ #include <qsqlrecord.h>
+@@ -341,14 +340,6 @@ int QMYSQLResult::numRowsAffected()
+ }
+
+ /////////////////////////////////////////////////////////
+-static void qServerEnd()
+-{
+-#ifndef Q_NO_MYSQL_EMBEDDED
+-# if MYSQL_VERSION_ID >= 40000
+- mysql_server_end();
+-# endif // MYSQL_VERSION_ID
+-#endif // Q_NO_MYSQL_EMBEDDED
+-}
+
+ static void qServerInit()
+ {
+@@ -366,9 +357,7 @@ static void qServerInit()
+ qWarning( "QMYSQLDriver::qServerInit: unable to start server." );
+ # endif
+ }
+- qAddPostRoutine(qServerEnd);
+ init = TRUE;
+-
+ # endif // MYSQL_VERSION_ID
+ #endif // Q_NO_MYSQL_EMBEDDED
+ }
+@@ -411,6 +400,11 @@ QMYSQLDriver::~QMYSQLDriver()
+ QSqlOpenExtension *ext = qSqlOpenExtDict()->take( this );
+ delete ext;
+ }
++#ifndef Q_NO_MYSQL_EMBEDDED
++# if MYSQL_VERSION_ID > 40000
++ mysql_server_end();
++# endif
++#endif
+ }
+
+ bool QMYSQLDriver::hasFeature( DriverFeature f ) const
diff --git a/testing/qt3/qt-copy-kde-patches.tar.bz2 b/testing/qt3/qt-copy-kde-patches.tar.bz2
new file mode 100644
index 000000000..19d899963
--- /dev/null
+++ b/testing/qt3/qt-copy-kde-patches.tar.bz2
Binary files differ
diff --git a/testing/qt3/qt-font-default-subst.diff b/testing/qt3/qt-font-default-subst.diff
new file mode 100644
index 000000000..3e286f74e
--- /dev/null
+++ b/testing/qt3/qt-font-default-subst.diff
@@ -0,0 +1,77 @@
+--- src/kernel/qfontdatabase_x11.cpp
++++ src/kernel/qfontdatabase_x11.cpp
+@@ -1589,15 +1589,6 @@ QFontEngine *loadEngine( QFont::Script s
+ if (script == QFont::Latin)
+ // add Euro character
+ FcCharSetAddChar(cs, 0x20ac);
+- if (script == QFont::Han_SimplifiedChinese)
+- FcCharSetAddChar(cs, 0x3400);
+- if (script == QFont::Han_TraditionalChinese){
+- FcCharSetAddChar(cs, 0x3435);
+- FcCharSetAddChar(cs, 0xE000);
+- FcCharSetAddChar(cs, 0xF6B1);
+- }
+- if (script == QFont::MiscellaneousSymbols)
+- FcCharSetAddChar(cs, 0x2714);
+ FcPatternAddCharSet(pattern, FC_CHARSET, cs);
+ FcCharSetDestroy(cs);
+ }
+@@ -1813,7 +1804,11 @@ static QFontEngine *loadFontConfigFont(c
+ FcPatternPrint(pattern);
+ #endif
+
++ // XftFontMatch calls the right ConfigSubstitute variants, but as we use
++ // FcFontMatch/Sort here we have to do it manually.
+ FcConfigSubstitute(0, pattern, FcMatchPattern);
++ XftDefaultSubstitute(QPaintDevice::x11AppDisplay(), QPaintDevice::x11AppScreen(), pattern);
++
+ // qDebug("1: pattern contains:");
+ // FcPatternPrint(pattern);
+
+@@ -1847,10 +1842,6 @@ static QFontEngine *loadFontConfigFont(c
+ value.u.s = (const FcChar8 *)cs.data();
+ FcPatternAddWeak(pattern, FC_FAMILY, value, FcTrue);
+ }
+-#ifdef FONT_MATCH_DEBUG
+- printf("final pattern contains:\n");
+- FcPatternPrint(pattern);
+-#endif
+ }
+
+ if (script != QFont::Unicode) {
+@@ -1860,19 +1851,15 @@ static QFontEngine *loadFontConfigFont(c
+ if (script == QFont::Latin)
+ // add Euro character
+ FcCharSetAddChar(cs, 0x20ac);
+- if (script == QFont::Han_SimplifiedChinese)
+- FcCharSetAddChar(cs, 0x3400);
+- if (script == QFont::Han_TraditionalChinese) {
+- FcCharSetAddChar(cs, 0x3435);
+- FcCharSetAddChar(cs, 0xE000);
+- FcCharSetAddChar(cs, 0xF6B1);
+- }
+- if (script == QFont::MiscellaneousSymbols)
+- FcCharSetAddChar(cs, 0x2714);
+ FcPatternAddCharSet(pattern, FC_CHARSET, cs);
+ FcCharSetDestroy(cs);
+ }
+
++#ifdef FONT_MATCH_DEBUG
++ printf("final pattern contains:\n");
++ FcPatternPrint(pattern);
++#endif
++
+ QFontEngine *fe = 0;
+
+ for( int jj = (FcGetVersion() >= 20392 ? 0 : 1); jj < 2; ++jj ) {
+--- src/kernel/qfontdatabase.cpp
++++ src/kernel/qfontdatabase.cpp
+@@ -554,7 +554,7 @@ static const unsigned short sample_chars
+ // GeometricSymbols,
+ { 0x2500, 0x0 },
+ // MiscellaneousSymbols,
+- { 0x2640, 0x0 },
++ { 0x2640, 0x2714, 0x0 },
+ // EnclosedAndSquare,
+ { 0x2460, 0x0 },
+ // Braille,
diff --git a/testing/qt3/qt-odbc.patch b/testing/qt3/qt-odbc.patch
new file mode 100644
index 000000000..6f21e3cf1
--- /dev/null
+++ b/testing/qt3/qt-odbc.patch
@@ -0,0 +1,19 @@
+diff -up qt-x11-free-3.3.8/src/sql/drivers/odbc/qsql_odbc.cpp.orig qt-x11-free-3.3.8/src/sql/drivers/odbc/qsql_odbc.cpp
+--- qt-x11-free-3.3.8/src/sql/drivers/odbc/qsql_odbc.cpp.orig 2009-02-24 11:32:27.000000000 +0100
++++ qt-x11-free-3.3.8/src/sql/drivers/odbc/qsql_odbc.cpp 2009-02-24 11:33:43.000000000 +0100
+@@ -57,13 +57,13 @@
+ #endif
+
+ // newer platform SDKs use SQLLEN instead of SQLINTEGER
+-#ifdef SQLLEN
++#if defined(SQLLEN) || defined(Q_OS_WIN64) || defined(Q_OS_UNIX)
+ # define QSQLLEN SQLLEN
+ #else
+ # define QSQLLEN SQLINTEGER
+ #endif
+
+-#ifdef SQLULEN
++#if defined(SQLULEN) || defined(Q_OS_WIN64) || defined(Q_OS_UNIX)
+ # define QSQLULEN SQLULEN
+ #else
+ # define QSQLULEN SQLUINTEGER
diff --git a/testing/qt3/qt-patches.tar.bz2 b/testing/qt3/qt-patches.tar.bz2
new file mode 100644
index 000000000..3f4aee171
--- /dev/null
+++ b/testing/qt3/qt-patches.tar.bz2
Binary files differ
diff --git a/testing/qt3/qt.install b/testing/qt3/qt.install
new file mode 100644
index 000000000..6d042daae
--- /dev/null
+++ b/testing/qt3/qt.install
@@ -0,0 +1,12 @@
+post_install() {
+ post_remove
+}
+
+post_upgrade() {
+ post_remove
+}
+
+post_remove() {
+ # this can be removed in future versions
+ sed -e '/\/opt\/qt\/lib/d' -i etc/ld.so.conf
+}
diff --git a/testing/qt3/qt.profile b/testing/qt3/qt.profile
new file mode 100644
index 000000000..ed4d232ae
--- /dev/null
+++ b/testing/qt3/qt.profile
@@ -0,0 +1,4 @@
+export QTDIR=/opt/qt
+export QT_XFT=true
+export PATH=$PATH:$QTDIR/bin
+export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/qt/lib/pkgconfig
diff --git a/testing/qt3/qt3-png14.patch b/testing/qt3/qt3-png14.patch
new file mode 100644
index 000000000..e8a194529
--- /dev/null
+++ b/testing/qt3/qt3-png14.patch
@@ -0,0 +1,33 @@
+--- src/kernel/qpngio.cpp.orig 2010-01-16 22:02:41.000000000 +0100
++++ src/kernel/qpngio.cpp 2010-01-16 22:03:56.000000000 +0100
+@@ -159,7 +159,7 @@
+ image.setColor( i, qRgba(c,c,c,0xff) );
+ }
+ if ( png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS) ) {
+- const int g = info_ptr->trans_values.gray;
++ const int g = info_ptr->trans_color.gray;
+ if (g < ncols) {
+ image.setAlphaBuffer(TRUE);
+ image.setColor(g, image.color(g) & RGB_MASK);
+@@ -187,7 +187,7 @@
+ info_ptr->palette[i].red,
+ info_ptr->palette[i].green,
+ info_ptr->palette[i].blue,
+- info_ptr->trans[i]
++ info_ptr->trans_alpha[i]
+ )
+ );
+ i++;
+@@ -321,9 +321,9 @@
+ png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)
+ if (image.depth()==32 && png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) {
+ QRgb trans = 0xFF000000 | qRgb(
+- (info_ptr->trans_values.red << 8 >> bit_depth)&0xff,
+- (info_ptr->trans_values.green << 8 >> bit_depth)&0xff,
+- (info_ptr->trans_values.blue << 8 >> bit_depth)&0xff);
++ (info_ptr->trans_color.red << 8 >> bit_depth)&0xff,
++ (info_ptr->trans_color.green << 8 >> bit_depth)&0xff,
++ (info_ptr->trans_color.blue << 8 >> bit_depth)&0xff);
+ for (uint y=0; y<height; y++) {
+ for (uint x=0; x<info_ptr->width; x++) {
+ if (((uint**)jt)[y][x] == trans) {
diff --git a/testing/qt3/utf8-bug-qt3.diff b/testing/qt3/utf8-bug-qt3.diff
new file mode 100644
index 000000000..43e84a99f
--- /dev/null
+++ b/testing/qt3/utf8-bug-qt3.diff
@@ -0,0 +1,101 @@
+--- src/codecs/qutfcodec.cpp
++++ src/codecs/qutfcodec.cpp
+@@ -154,6 +154,7 @@
+
+ class QUtf8Decoder : public QTextDecoder {
+ uint uc;
++ uint min_uc;
+ int need;
+ bool headerDone;
+ public:
+@@ -167,8 +168,9 @@
+ result.setLength( len ); // worst case
+ QChar *qch = (QChar *)result.unicode();
+ uchar ch;
++ int error = -1;
+ for (int i=0; i<len; i++) {
+- ch = *chars++;
++ ch = chars[i];
+ if (need) {
+ if ( (ch&0xc0) == 0x80 ) {
+ uc = (uc << 6) | (ch & 0x3f);
+@@ -182,6 +184,8 @@
+ *qch++ = QChar(high);
+ *qch++ = QChar(low);
+ headerDone = TRUE;
++ } else if ((uc < min_uc) || (uc >= 0xd800 && uc <= 0xdfff) || (uc >= 0xfffe)) {
++ *qch++ = QChar::replacement;
+ } else {
+ if (headerDone || QChar(uc) != QChar::byteOrderMark)
+ *qch++ = uc;
+@@ -190,6 +194,7 @@
+ }
+ } else {
+ // error
++ i = error;
+ *qch++ = QChar::replacement;
+ need = 0;
+ }
+@@ -200,12 +205,21 @@
+ } else if ((ch & 0xe0) == 0xc0) {
+ uc = ch & 0x1f;
+ need = 1;
++ error = i;
++ min_uc = 0x80;
+ } else if ((ch & 0xf0) == 0xe0) {
+ uc = ch & 0x0f;
+ need = 2;
++ error = i;
++ min_uc = 0x800;
+ } else if ((ch&0xf8) == 0xf0) {
+ uc = ch & 0x07;
+ need = 3;
++ error = i;
++ min_uc = 0x10000;
++ } else {
++ // error
++ *qch++ = QChar::replacement;
+ }
+ }
+ }
+--- src/tools/qstring.cpp
++++ src/tools/qstring.cpp
+@@ -5805,6 +5805,7 @@
+ result.setLength( len ); // worst case
+ QChar *qch = (QChar *)result.unicode();
+ uint uc = 0;
++ uint min_uc = 0;
+ int need = 0;
+ int error = -1;
+ uchar ch;
+@@ -5822,6 +5823,12 @@
+ unsigned short low = uc%0x400 + 0xdc00;
+ *qch++ = QChar(high);
+ *qch++ = QChar(low);
++ } else if (uc < min_uc || (uc >= 0xd800 && uc <= 0xdfff) || (uc >= 0xfffe)) {
++ // overlong seqence, UTF16 surrogate or BOM
++ i = error;
++ qch = addOne(qch, result);
++ *qch++ = QChar(0xdbff);
++ *qch++ = QChar(0xde00+((uchar)utf8[i]));
+ } else {
+ *qch++ = uc;
+ }
+@@ -5844,14 +5851,17 @@
+ uc = ch & 0x1f;
+ need = 1;
+ error = i;
++ min_uc = 0x80;
+ } else if ((ch & 0xf0) == 0xe0) {
+ uc = ch & 0x0f;
+ need = 2;
+ error = i;
++ min_uc = 0x800;
+ } else if ((ch&0xf8) == 0xf0) {
+ uc = ch & 0x07;
+ need = 3;
+ error = i;
++ min_uc = 0x10000;
+ } else {
+ // Error
+ qch = addOne(qch, result);
diff --git a/testing/qtwebkit/PKGBUILD b/testing/qtwebkit/PKGBUILD
new file mode 100644
index 000000000..80cca8b44
--- /dev/null
+++ b/testing/qtwebkit/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 145209 2011-12-19 18:03:48Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=qtwebkit
+pkgver=2.2.0
+pkgrel=3
+arch=('i686' 'x86_64')
+url='http://trac.webkit.org/wiki/QtWebKit'
+pkgdesc='An open source web browser engine (Qt port)'
+license=('LGPL2.1' 'GPL3')
+depends=('qt' 'gperf' 'bison' 'phonon' 'gstreamer0.10-base')
+makedepends=('python2' 'mesa' 'chrpath')
+conflicts=('qt<4.8')
+source=("http://get.qt.nokia.com/${pkgname}/QtWebKit-${pkgver}.tar.gz"
+ 'python2-path.patch')
+sha1sums=('3582f3a8b593140af004a19479f5ec19693b3df7'
+ 'b0ef3d5596171e3900a685df9bcfac3068ad6330')
+
+build() {
+ cd "${srcdir}"/QtWebKit-${pkgver}
+
+ patch -p1 -i "${srcdir}"/python2-path.patch
+
+ cd Tools/Scripts
+ ./build-webkit --qt \
+ --prefix=/usr \
+ --makeargs="${MAKEFLAGS}" \
+ --release \
+ --3d-canvas
+}
+
+package() {
+ cd "${srcdir}"/QtWebKit-${pkgver}
+ make INSTALL_ROOT="${pkgdir}" -C WebKitBuild/Release install
+
+ # Fix RPATH
+ chrpath -r /usr/lib/ "${pkgdir}"/usr/lib/qt/imports/QtWebKit/libqmlwebkitplugin.so
+}
diff --git a/testing/qtwebkit/python2-path.patch b/testing/qtwebkit/python2-path.patch
new file mode 100644
index 000000000..2e270e6fc
--- /dev/null
+++ b/testing/qtwebkit/python2-path.patch
@@ -0,0 +1,29 @@
+--- QtWebKit-2.2.0/Source/JavaScriptCore/DerivedSources.pro~ 2011-10-20 22:39:56.044519075 +0000
++++ QtWebKit-2.2.0/Source/JavaScriptCore/DerivedSources.pro 2011-10-20 22:41:21.302047082 +0000
+@@ -88,5 +88,5 @@
+ retgen.output = $$JSC_GENERATED_SOURCES_DIR/RegExpJitTables.h
+ retgen.wkScript = $$PWD/create_regex_tables
+ retgen.input = retgen.wkScript
+-retgen.commands = python $$retgen.wkScript > ${QMAKE_FILE_OUT}
++retgen.commands = python2 $$retgen.wkScript > ${QMAKE_FILE_OUT}
+ addExtraCompiler(retgen)
+--- QtWebKit-2.2.0/Source/WebCore/CodeGenerators.pri~ 2011-10-20 22:44:23.827225580 +0000
++++ QtWebKit-2.2.0/Source/WebCore/CodeGenerators.pri 2011-10-20 22:44:38.550707819 +0000
+@@ -640,7 +640,7 @@
+ inspectorJSON.output = $${WC_GENERATED_SOURCES_DIR}/Inspector.idl
+ inspectorJSON.input = INSPECTOR_JSON
+ inspectorJSON.wkScript = $$PWD/inspector/generate-inspector-idl
+-inspectorJSON.commands = python $$inspectorJSON.wkScript -o $${WC_GENERATED_SOURCES_DIR}/Inspector.idl $$PWD/inspector/Inspector.json
++inspectorJSON.commands = python2 $$inspectorJSON.wkScript -o $${WC_GENERATED_SOURCES_DIR}/Inspector.idl $$PWD/inspector/Inspector.json
+ inspectorJSON.depends = $$PWD/inspector/generate-inspector-idl
+ inspectorJSON.wkAddOutputToSources = false
+ addExtraCompiler(inspectorJSON)
+@@ -723,7 +723,7 @@
+ entities.output = $${WC_GENERATED_SOURCES_DIR}/HTMLEntityTable.cpp
+ entities.input = HTML_ENTITIES
+ entities.wkScript = $$PWD/html/parser/create-html-entity-table
+-entities.commands = python $$entities.wkScript -o $${WC_GENERATED_SOURCES_DIR}/HTMLEntityTable.cpp $$HTML_ENTITIES
++entities.commands = python2 $$entities.wkScript -o $${WC_GENERATED_SOURCES_DIR}/HTMLEntityTable.cpp $$HTML_ENTITIES
+ entities.clean = ${QMAKE_FILE_OUT}
+ entities.depends = $$PWD/html/parser/create-html-entity-table
+ addExtraCompiler(entities)
diff --git a/testing/redland/PKGBUILD b/testing/redland/PKGBUILD
new file mode 100644
index 000000000..cbc431c39
--- /dev/null
+++ b/testing/redland/PKGBUILD
@@ -0,0 +1,79 @@
+# $Id: PKGBUILD 145231 2011-12-19 18:04:25Z andrea $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Francois Charette <francois.archlinux.org>
+
+pkgbase=redland
+epoch=1
+pkgname=('redland' 'redland-storage-mysql' 'redland-storage-postgresql' 'redland-storage-virtuoso' 'redland-storage-sqlite')
+pkgver=1.0.15
+pkgrel=2
+url="http://librdf.org/"
+license=("GPL")
+arch=('i686' 'x86_64')
+makedepends=('rasqal>=0.9.26' 'raptor>=2.0.6' 'db>=5.2' 'postgresql-libs' 'libmysqlclient' 'unixodbc' 'sqlite3')
+options=('!libtool')
+source=(http://download.librdf.org/source/$pkgname-$pkgver.tar.gz{,.asc}
+ rpath.diff)
+sha1sums=('e93d6fafaeebdf9f15a1044be6f4a88270f007af'
+ '3aeef38a7247ae33db6a0a19511ef4132240164b'
+ 'f5db05c925b6bcd6402d5abd75c648b137f069c7')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --enable-release \
+ --disable-static \
+ --with-raptor=system \
+ --with-rasqal=system \
+ --with-sqlite=3
+
+ # nuke rpath
+ patch -Np0 -i "${srcdir}/rpath.diff"
+
+ make
+}
+
+package_redland() {
+ pkgdesc="Library that provides a high-level interface to RDF data"
+ depends=('rasqal>=0.9.26' 'raptor>=2.0.6' 'libltdl')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ rm -rf "${pkgdir}/usr/lib/redland"
+}
+
+package_redland-storage-mysql() {
+ pkgdesc="MySQL storage support for Redland"
+ depends=('redland' 'libmysqlclient')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ install -dm755 "${pkgdir}/usr/lib/redland"
+ install -m755 src/.libs/librdf_storage_mysql.so "${pkgdir}/usr/lib/redland/librdf_storage_mysql.so"
+}
+
+package_redland-storage-postgresql() {
+ pkgdesc="PostgreSQL storage support for Redland"
+ depends=('redland' 'postgresql-libs')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ install -dm755 "${pkgdir}/usr/lib/redland"
+ install -m755 src/.libs/librdf_storage_postgresql.so "${pkgdir}/usr/lib/redland/"
+}
+
+package_redland-storage-virtuoso() {
+ pkgdesc="Virtuoso storage support for Redland"
+ depends=('redland' 'unixodbc' 'db')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ install -dm755 "${pkgdir}/usr/lib/redland"
+ install -m755 src/.libs/librdf_storage_virtuoso.so "${pkgdir}/usr/lib/redland/"
+}
+
+package_redland-storage-sqlite() {
+ pkgdesc="SQLite storage support for Redland"
+ depends=('redland' 'sqlite3' 'db')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ install -dm755 "${pkgdir}/usr/lib/redland"
+ install -m755 src/.libs/librdf_storage_sqlite.so "${pkgdir}/usr/lib/redland/"
+}
diff --git a/testing/redland/rpath.diff b/testing/redland/rpath.diff
new file mode 100644
index 000000000..831bc80ed
--- /dev/null
+++ b/testing/redland/rpath.diff
@@ -0,0 +1,11 @@
+--- libtool 2011-02-20 10:46:47.000000000 +0100
++++ libtool.new 2011-02-20 10:52:58.285764909 +0100
+@@ -324,7 +324,7 @@
+
+ # Flag to hardcode $libdir into a binary during linking.
+ # This must work even if $libdir does not exist
+-hardcode_libdir_flag_spec="\${wl}-rpath \${wl}\$libdir"
++hardcode_libdir_flag_spec=" "
+
+ # If ld is used when linking, flag to hardcode $libdir into a binary
+ # during linking. This must work even if $libdir does not exist.
diff --git a/testing/shadow/LICENSE b/testing/shadow/LICENSE
deleted file mode 100644
index c5ab15a56..000000000
--- a/testing/shadow/LICENSE
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 1990 - 1994, Julianne Frances Haugh
- * Copyright (c) 1996 - 2000, Marek Michałkiewicz
- * Copyright (c) 2001 - 2006, Tomasz Kłoczko
- * Copyright (c) 2007 - 2009, Nicolas François
- * 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.
- * 3. The name of the copyright holders or contributors may not be used to
- * endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * 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 OR 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/testing/shadow/PKGBUILD b/testing/shadow/PKGBUILD
deleted file mode 100644
index c7196a385..000000000
--- a/testing/shadow/PKGBUILD
+++ /dev/null
@@ -1,107 +0,0 @@
-# $Id: PKGBUILD 144103 2011-12-04 01:16:49Z dreisner $
-# Maintainer: Dave Reisner <dreisner@archlinux.org>
-# Maintainer: Aaron Griffin <aaron@archlinux.org>
-
-pkgname=shadow
-pkgver=4.1.4.3
-pkgrel=5
-pkgdesc="Password and account management tool suite with support for shadow files and PAM"
-arch=('i686' 'x86_64')
-url='http://pkg-shadow.alioth.debian.org/'
-license=('BSD')
-groups=('base')
-depends=('bash' 'pam' 'acl')
-backup=(etc/login.defs
- etc/pam.d/{chage,login,passwd,shadow,useradd,usermod,userdel}
- etc/pam.d/{chpasswd,newusers,groupadd,groupdel,groupmod}
- etc/pam.d/{chfn,chgpasswd,groupmems,chsh}
- etc/default/useradd)
-options=('!libtool')
-install=shadow.install
-#http://pkg-shadow.alioth.debian.org/releases/shadow-$pkgver.tar.bz2
-# shadow 4.1.4.3 is just shadow 4.1.4.2 with shadow_CVE-2011-0721.patch applied
-source=(ftp://ftp.archlinux.org/other/shadow/shadow_4.1.4.2+svn3283.orig.tar.gz
- adduser chgpasswd chpasswd defaults.pam login login.defs newusers
- passwd shadow.cron.daily useradd.defaults LICENSE
- xstrdup.patch shadow_CVE-2011-0721.patch shadow-strncpy-usage.patch
- shadow-add-missing-include.patch)
-sha1sums=('8b704b8f07718e329205f23d457c3121c0f3679e'
- '78ec184a499f9708adcfcf0b7a3b22a60bf39f91'
- '4ad0e059406a305c8640ed30d93c2a1f62c2f4ad'
- '12427b1ca92a9b85ca8202239f0d9f50198b818f'
- '0e56fed7fc93572c6bf0d8f3b099166558bb46f1'
- '895aad07c192b288b457e19dd7b8c55841b4ad22'
- 'e5cab2118ecb1e61874cde842d7d04d1003f35cb'
- '12427b1ca92a9b85ca8202239f0d9f50198b818f'
- '611be25d91c3f8f307c7fe2485d5f781e5dee75f'
- '5d83ba7e11c765c951867cbe00b0ae7ff57148fa'
- '9ae93de5987dd0ae428f0cc1a5a5a5cd53583f19'
- '33a6cf1e44a1410e5c9726c89e5de68b78f5f922'
- '6010fffeed1fc6673ad9875492e1193b1a847b53'
- '6bfe6528391eb38d338beacedd620407877b637d'
- '9db9e62ad173f31e1039121c0124cf60826ffd7e'
- '0697a21f7519de30821da7772677035652df4ad2')
-
-build() {
- cd "$srcdir/$pkgname-4.1.4.2+svn3283"
-
- #Ugh, force this to build shared libraries, for god's sake
- sed -i "s/noinst_LTLIBRARIES/lib_LTLIBRARIES/g" lib/Makefile.am
- libtoolize
- autoreconf
- export LDFLAGS="$LDFLAGS -lcrypt"
-
- patch -p1 -i "$srcdir/xstrdup.patch"
- patch -p1 -i "$srcdir/shadow_CVE-2011-0721.patch"
- patch -p1 -i "$srcdir/shadow-strncpy-usage.patch"
- patch -p1 -i "$srcdir/shadow-add-missing-include.patch"
-
- # supress etc/pam.d/*, we provide our own
- sed -i '/^SUBDIRS/s/pam.d//' etc/Makefile.in
-
- ./configure \
- --prefix=/usr --libdir=/lib \
- --mandir=/usr/share/man --sysconfdir=/etc \
- --enable-shared --disable-static \
- --with-libpam --without-selinux
- make
-}
-
-package() {
- cd "$srcdir/$pkgname-4.1.4.2+svn3283"
- make DESTDIR="$pkgdir" install
-
- # license
- install -Dm644 "$srcdir/LICENSE" "$pkgdir/usr/share/licenses/shadow/LICENSE"
-
- # interactive useradd
- install -Dm755 "$srcdir/adduser" "$pkgdir/usr/sbin/adduser"
-
- # useradd defaults
- install -Dm644 "$srcdir/useradd.defaults" "$pkgdir/etc/default/useradd"
-
- # cron job
- install -Dm744 "$srcdir/shadow.cron.daily" "$pkgdir/etc/cron.daily/shadow"
-
- # login.defs
- install -Dm644 "$srcdir/login.defs" "$pkgdir/etc/login.defs"
-
- # PAM config - custom
- install -Dm644 "$srcdir/login" "$pkgdir/etc/pam.d/login"
- install -Dm644 "$srcdir/passwd" "$pkgdir/etc/pam.d/passwd"
- install -Dm644 "$srcdir/chgpasswd" "$pkgdir/etc/pam.d/chgpasswd"
- install -Dm644 "$srcdir/chpasswd" "$pkgdir/etc/pam.d/chpasswd"
- install -Dm644 "$srcdir/newusers" "$pkgdir/etc/pam.d/newusers"
- # PAM config - from tarball
- install -Dm644 etc/pam.d/groupmems "$pkgdir/etc/pam.d/groupmems"
-
- # we use the 'useradd' PAM file for other similar utilities
- for file in chage chfn chsh groupadd groupdel groupmod shadow \
- useradd usermod userdel; do
- install -Dm644 "$srcdir/defaults.pam" "$pkgdir/etc/pam.d/$file"
- done
-
- # Remove su - using su from coreutils instead
- rm "$pkgdir/bin/su"
- find "$pkgdir/usr/share/man" -name 'su.1' -delete
-}
diff --git a/testing/shadow/adduser b/testing/shadow/adduser
deleted file mode 100644
index a5d7fd4fa..000000000
--- a/testing/shadow/adduser
+++ /dev/null
@@ -1,399 +0,0 @@
-#!/bin/bash
-#
-# Copyright 1995 Hrvoje Dogan, Croatia.
-# Copyright 2002, 2003, 2004 Stuart Winter, West Midlands, England, UK.
-# Copyright 2004 Slackware Linux, Inc., Concord, CA, USA
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
-#
-#
-##########################################################################
-# Program: /usr/sbin/adduser
-# Purpose: Interactive front end to /usr/sbin/useradd for Slackware Linux
-# Author : Stuart Winter <stuart@polplex.co.uk>
-# Based on the original Slackware adduser by Hrvoje Dogan
-# with modifications by Patrick Volkerding
-# Version: 1.09
-##########################################################################
-# Usage..: adduser [<new_user_name>]
-##########################################################################
-# History #
-###########
-# v1.09 - 07/06/04
-# * Added standard Slackware script licence to the head of this file.
-# v1.08 - 25/04/04
-# * Disallow user names that begin with a numeric because useradd
-# (from shadow v4.03) does not allow them. <sw>
-# v1.07 - 07/03/03
-# * When supplying a null string for the uid (meaning 'Choose next available'),
-# if there were file names in the range 'a-z' in the pwd then the
-# egrep command considered these files rather than the null string.
-# The egrep expression is now in quotes.
-# Reported & fixed by Vadim O. Ustiansky <sw>
-# v1.06 - 31/03/03
-# * Ask to chown user.group the home directory if it already exists.
-# This helps reduce later confusion when adding users whose home dir
-# already exists (mounted partition for example) and is owned
-# by a user other than the user to which the directory is being
-# assigned as home. Default is not to chown.
-# Brought to my attention by mRgOBLIN. <sw>
-# v1.05 - 04/01/03
-# * Advise & prevent users from creating logins with '.' characters
-# in the user name. <sw>
-# * Made pending account creation info look neater <sw>
-# v1.04 - 09/06/02
-# * Catered for shadow-4.0.3's 'useradd' binary that no longer
-# will let you create a user that has any uppercase chars in it
-# This was reported on the userlocal.org forums
-# by 'xcp' - thanks. <sw,pjv>
-# v1.03 - 20/05/02
-# * Support 'broken' (null lines in) /etc/passwd and
-# /etc/group files <sw>
-# * For recycling UIDs (default still 'off'), we now look in
-# /etc/login.defs for the UID_MIN value and use it
-# If not found then default to 1000 <sw>
-# v1.02 - 10/04/02
-# * Fix user-specified UID bug. <pjv>
-# v1.01 - 23/03/02
-# * Match Slackware indenting style, simplify. <pjv>
-# v1.00 - 22/03/02
-# * Created
-#######################################################################
-
-# Path to files
-pfile=/etc/passwd
-gfile=/etc/group
-sfile=/etc/shells
-
-# Paths to binaries
-useradd=/usr/sbin/useradd
-chfn=/usr/bin/chfn
-passwd=/usr/bin/passwd
-
-# Defaults
-defhome=/home
-defshell=/bin/bash
-defgroup=users
-
-# Determine what the minimum UID is (for UID recycling)
-# (we ignore it if it's not at the beginning of the line (i.e. commented out with #))
-export recycleUIDMIN="$(grep ^UID_MIN /etc/login.defs | awk '{print $2}' 2>/dev/null)"
-# If we couldn't find it, set it to the default of 1000
-if [ -z "$recycleUIDMIN" ]; then
- export recycleUIDMIN=1000 # this is the default from Slackware's /etc/login.defs
-fi
-
-
-# This setting enables the 'recycling' of older unused UIDs.
-# When you userdel a user, it removes it from passwd and shadow but it will
-# never get used again unless you specify it expliticly -- useradd (appears to) just
-# look at the last line in passwd and increment the uid. I like the idea of
-# recycling uids but you may have very good reasons not to (old forgotten
-# confidential files still on the system could then be owned by this new user).
-# We'll set this to no because this is what the original adduser shell script
-# did and it's what users expect.
-recycleuids=no
-
-# Function to read keyboard input.
-# bash1 is broken (even ash will take read -ep!), so we work around
-# it (even though bash1 is no longer supported on Slackware).
-function get_input() {
- local output
- if [ "`echo $BASH_VERSION | cut -b1`" = "1" ]; then
- echo -n "${1} " >&2 # fudge for use with bash v1
- read output
- else # this should work with any other /bin/sh
- read -ep "${1} " output
- fi
- echo $output
-}
-
-# Function to display the account info
-function display () {
- local goose
- goose="$(echo $2 | cut -d ' ' -f 2-)" # lop off the prefixed argument useradd needs
- echo -n "$1 "
- # If it's null then display the 'other' information
- if [ -z "$goose" -a ! -z "$3" ]; then
- echo "$3"
- else
- echo "$goose"
- fi
-}
-
-# Function to check whether groups exist in the /etc/group file
-function check_group () {
- local got_error group
- if [ ! -z "$@" ]; then
- for group in $@ ; do
- local uid_not_named="" uid_not_num=""
- grep -v "$^" $gfile | awk -F: '{print $1}' | grep "^${group}$" >/dev/null 2>&1 || uid_not_named=yes
- grep -v "$^" $gfile | awk -F: '{print $3}' | grep "^${group}$" >/dev/null 2>&1 || uid_not_num=yes
- if [ ! -z "$uid_not_named" -a ! -z "$uid_not_num" ]; then
- echo "- Group '$group' does not exist"
- got_error=yes
- fi
- done
- fi
- # Return exit code of 1 if at least one of the groups didn't exist
- if [ ! -z "$got_error" ]; then
- return 1
- fi
-}
-
-#: Read the login name for the new user :#
-#
-# Remember that most Mail Transfer Agents are case independant, so having
-# 'uSer' and 'user' may cause confusion/things to break. Because of this,
-# useradd from shadow-4.0.3 no longer accepts usernames containing uppercase,
-# and we must reject them, too.
-
-# Set the login variable to the command line param
-echo
-LOGIN="$1"
-needinput=yes
-while [ ! -z $needinput ]; do
- if [ -z "$LOGIN" ]; then
- while [ -z "$LOGIN" ]; do LOGIN="$(get_input "Login name for new user []:")" ; done
- fi
- grep "^${LOGIN}:" $pfile >/dev/null 2>&1 # ensure it's not already used
- if [ $? -eq 0 ]; then
- echo "- User '$LOGIN' already exists; please choose another"
- unset LOGIN
- elif [ ! -z "$( echo $LOGIN | grep "^[0-9]" )" ]; then
- echo "- User names cannot begin with a number; please choose another"
- unset LOGIN
- elif [ ! "$LOGIN" = "`echo $LOGIN | tr A-Z a-z`" ]; then # useradd does not allow uppercase
- echo "- User '$LOGIN' contains illegal characters (uppercase); please choose another"
- unset LOGIN
- elif [ ! -z "$( echo $LOGIN | grep '\.' )" ]; then
- echo "- User '$LOGIN' contains illegal characters (period/dot); please choose another"
- unset LOGIN
- else
- unset needinput
- fi
-done
-
-# Display the user name passed from the shell if it hasn't changed
-if [ "$1" = "$LOGIN" ]; then
- echo "Login name for new user: $LOGIN"
-fi
-
-#: Get the UID for the user & ensure it's not already in use :#
-#
-# Whilst we _can_ allow users with identical UIDs, it's not a 'good thing' because
-# when you change password for the uid, it finds the first match in /etc/passwd
-# which isn't necessarily the correct user
-#
-echo
-needinput=yes
-while [ ! -z "$needinput" ]; do
- _UID="$(get_input "User ID ('UID') [ defaults to next available ]:")"
- grep -v "^$" $pfile | awk -F: '{print $3}' | grep "^${_UID}$" >/dev/null 2>&1
- if [ $? -eq 0 ]; then
- echo "- That UID is already in use; please choose another"
- elif [ ! -z "$(echo $_UID | egrep '[A-Za-z]')" ]; then
- echo "- UIDs are numerics only"
- else
- unset needinput
- fi
-done
-# If we were given a UID, then syntax up the variable to pass to useradd
-if [ ! -z "$_UID" ]; then
- U_ID="-u ${_UID}"
-else
- # Will we be recycling UIDs?
- if [ "$recycleuids" = "yes" ]; then
- U_ID="-u $(awk -F: '{uid[$3]=1} END { for (i=ENVIRON["recycleUIDMIN"];i in uid;i++);print i}' $pfile)"
- fi
-fi
-
-#: Get the initial group for the user & ensure it exists :#
-#
-# We check /etc/group for both the text version and the group ID number
-echo
-needinput=yes
-while [ ! -z "$needinput" ]; do
- GID="$(get_input "Initial group [ ${defgroup} ]:")"
- check_group "$GID"
- if [ $? -gt 0 ]; then
- echo "- Please choose another"
- else
- unset needinput
- fi
-done
-# Syntax the variable ready for useradd
-if [ -z "$GID" ]; then
- GID="-g ${defgroup}"
-else
- GID="-g ${GID}"
-fi
-
-#: Get additional groups for the user :#
-#
-echo
-needinput=yes
-while [ ! -z "$needinput" ]; do
- AGID="$(get_input "Additional groups (comma separated) []:")"
- AGID="$(echo "$AGID" | tr -d ' ' | tr , ' ')" # fix up for parsing
- if [ ! -z "$AGID" ]; then
- check_group "$AGID" # check all groups at once (treated as N # of params)
- if [ $? -gt 0 ]; then
- echo "- Please re-enter the group(s)"
- else
- unset needinput # we found all groups specified
- AGID="-G $(echo "$AGID" | tr ' ' ,)"
- fi
- else
- unset needinput # we don't *have* to have additional groups
- fi
-done
-
-#: Get the new user's home dir :#
-#
-echo
-needinput=yes
-while [ ! -z "$needinput" ]; do
- HME="$(get_input "Home directory [ ${defhome}/${LOGIN} ]")"
- if [ -z "$HME" ]; then
- HME="${defhome}/${LOGIN}"
- fi
- # Warn the user if the home dir already exists
- if [ -d "$HME" ]; then
- echo "- Warning: '$HME' already exists !"
- getyn="$(get_input " Do you wish to change the home directory path ? (Y/n) ")"
- if [ "$(echo $getyn | grep -i "n")" ]; then
- unset needinput
- # You're most likely going to only do this if you have the dir *mounted* for this user's $HOME
- getyn="$(get_input " Do you want to chown $LOGIN.$( echo $GID | awk '{print $2}') $HME ? (y/N) ")"
- if [ "$(echo $getyn | grep -i "y")" ]; then
- CHOWNHOMEDIR=$HME # set this to the home directory
- fi
- fi
- else
- unset needinput
- fi
-done
-HME="-d ${HME}"
-
-#: Get the new user's shell :#
-echo
-needinput=yes
-while [ ! -z "$needinput" ]; do
- unset got_error
- SHL="$(get_input "Shell [ ${defshell} ]")"
- if [ -z "$SHL" ]; then
- SHL="${defshell}"
- fi
- # Warn the user if the shell doesn't exist in /etc/shells or as a file
- if [ -z "$(grep "^${SHL}$" $sfile)" ]; then
- echo "- Warning: ${SHL} is not in ${sfile} (potential problem using FTP)"
- got_error=yes
- fi
- if [ ! -f "$SHL" ]; then
- echo "- Warning: ${SHL} does not exist as a file"
- got_error=yes
- fi
- if [ ! -z "$got_error" ]; then
- getyn="$(get_input " Do you wish to change the shell ? (Y/n) ")"
- if [ "$(echo $getyn | grep -i "n")" ]; then
- unset needinput
- fi
- else
- unset needinput
- fi
-done
-SHL="-s ${SHL}"
-
-#: Get the expiry date :#
-echo
-needinput=yes
-while [ ! -z "$needinput" ]; do
- EXP="$(get_input "Expiry date (YYYY-MM-DD) []:")"
- if [ ! -z "$EXP" ]; then
- # Check to see whether the expiry date is in the valid format
- if [ -z "$(echo "$EXP" | grep "^[[:digit:]]\{4\}[-]\?[[:digit:]]\{2\}[-]\?[[:digit:]]\{2\}$")" ]; then
- echo "- That is not a valid expiration date"
- else
- unset needinput
- EXP="-e ${EXP}"
- fi
- else
- unset needinput
- fi
-done
-
-# Display the info about the new impending account
-echo
-echo "New account will be created as follows:"
-echo
-echo "---------------------------------------"
-display "Login name.......: " "$LOGIN"
-display "UID..............: " "$_UID" "[ Next available ]"
-display "Initial group....: " "$GID"
-display "Additional groups: " "$AGID" "[ None ]"
-display "Home directory...: " "$HME"
-display "Shell............: " "$SHL"
-display "Expiry date......: " "$EXP" "[ Never ]"
-echo
-
-echo "This is it... if you want to bail out, hit Control-C. Otherwise, press"
-echo "ENTER to go ahead and make the account."
-read junk
-
-echo
-echo "Creating new account..."
-echo
-echo
-
-# Add the account to the system
-CMD="$useradd "$HME" -m "$EXP" "$U_ID" "$GID" "$AGID" "$SHL" "$LOGIN""
-$CMD
-
-if [ $? -gt 0 ]; then
- echo "- Error running useradd command -- account not created!"
- echo "(cmd: $CMD)"
- exit 1
-fi
-
-# chown the home dir ? We can only do this once the useradd has
-# completed otherwise the user name doesn't exist.
-if [ ! -z "${CHOWNHOMEDIR}" ]; then
- chown "$LOGIN"."$( echo $GID | awk '{print $2}')" "${CHOWNHOMEDIR}"
-fi
-
-# Set the finger information
-$chfn "$LOGIN"
-if [ $? -gt 0 ]; then
- echo "- Warning: an error occurred while setting finger information"
-fi
-
-# Set a password
-$passwd "$LOGIN"
-if [ $? -gt 0 ]; then
- echo "* WARNING: An error occured while setting the password for"
- echo " this account. Please manually investigate this *"
- exit 1
-fi
-
-echo
-echo
-echo "Account setup complete."
-exit 0
-
diff --git a/testing/shadow/chgpasswd b/testing/shadow/chgpasswd
deleted file mode 100644
index 8f49f5cc8..000000000
--- a/testing/shadow/chgpasswd
+++ /dev/null
@@ -1,4 +0,0 @@
-#%PAM-1.0
-auth sufficient pam_rootok.so
-account required pam_permit.so
-password include system-auth
diff --git a/testing/shadow/chpasswd b/testing/shadow/chpasswd
deleted file mode 100644
index 5d447985a..000000000
--- a/testing/shadow/chpasswd
+++ /dev/null
@@ -1,6 +0,0 @@
-#%PAM-1.0
-auth sufficient pam_rootok.so
-auth required pam_unix.so
-account required pam_unix.so
-session required pam_unix.so
-password required pam_unix.so sha512 shadow
diff --git a/testing/shadow/defaults.pam b/testing/shadow/defaults.pam
deleted file mode 100644
index a7bf8a4a5..000000000
--- a/testing/shadow/defaults.pam
+++ /dev/null
@@ -1,6 +0,0 @@
-#%PAM-1.0
-auth sufficient pam_rootok.so
-auth required pam_unix.so
-account required pam_unix.so
-session required pam_unix.so
-password required pam_permit.so
diff --git a/testing/shadow/login b/testing/shadow/login
deleted file mode 100644
index b8555f89c..000000000
--- a/testing/shadow/login
+++ /dev/null
@@ -1,21 +0,0 @@
-#%PAM-1.0
-auth required pam_securetty.so
-auth requisite pam_nologin.so
-auth required pam_unix.so nullok
-auth required pam_tally.so onerr=succeed file=/var/log/faillog
-# use this to lockout accounts for 10 minutes after 3 failed attempts
-#auth required pam_tally.so deny=2 unlock_time=600 onerr=succeed file=/var/log/faillog
-account required pam_access.so
-account required pam_time.so
-account required pam_unix.so
-#password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
-#password required pam_unix.so sha512 shadow use_authtok
-session required pam_unix.so
-session required pam_env.so
-session required pam_motd.so
-session required pam_limits.so
-session optional pam_mail.so dir=/var/spool/mail standard
-session optional pam_lastlog.so
-session optional pam_loginuid.so
--session optional pam_ck_connector.so nox11
--session optional pam_systemd.so
diff --git a/testing/shadow/login.defs b/testing/shadow/login.defs
deleted file mode 100644
index 2500ee447..000000000
--- a/testing/shadow/login.defs
+++ /dev/null
@@ -1,197 +0,0 @@
-#
-# /etc/login.defs - Configuration control definitions for the login package.
-#
-# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH.
-# If unspecified, some arbitrary (and possibly incorrect) value will
-# be assumed. All other items are optional - if not specified then
-# the described action or option will be inhibited.
-#
-# Comment lines (lines beginning with "#") and blank lines are ignored.
-#
-# Modified for Linux. --marekm
-
-#
-# Delay in seconds before being allowed another attempt after a login failure
-#
-FAIL_DELAY 3
-
-#
-# Enable display of unknown usernames when login failures are recorded.
-#
-LOG_UNKFAIL_ENAB no
-
-#
-# Enable logging of successful logins
-#
-LOG_OK_LOGINS no
-
-#
-# Enable "syslog" logging of su activity - in addition to sulog file logging.
-# SYSLOG_SG_ENAB does the same for newgrp and sg.
-#
-SYSLOG_SU_ENAB yes
-SYSLOG_SG_ENAB yes
-
-#
-# If defined, either full pathname of a file containing device names or
-# a ":" delimited list of device names. Root logins will be allowed only
-# upon these devices.
-#
-CONSOLE /etc/securetty
-#CONSOLE console:tty01:tty02:tty03:tty04
-
-#
-# If defined, all su activity is logged to this file.
-#
-#SULOG_FILE /var/log/sulog
-
-#
-# If defined, file which maps tty line to TERM environment parameter.
-# Each line of the file is in a format something like "vt100 tty01".
-#
-#TTYTYPE_FILE /etc/ttytype
-
-#
-# If defined, the command name to display when running "su -". For
-# example, if this is defined as "su" then a "ps" will display the
-# command is "-su". If not defined, then "ps" would display the
-# name of the shell actually being run, e.g. something like "-sh".
-#
-SU_NAME su
-
-#
-# *REQUIRED*
-# Directory where mailboxes reside, _or_ name of file, relative to the
-# home directory. If you _do_ define both, MAIL_DIR takes precedence.
-# QMAIL_DIR is for Qmail
-#
-#QMAIL_DIR Maildir
-MAIL_DIR /var/spool/mail
-
-#
-# If defined, file which inhibits all the usual chatter during the login
-# sequence. If a full pathname, then hushed mode will be enabled if the
-# user's name or shell are found in the file. If not a full pathname, then
-# hushed mode will be enabled if the file exists in the user's home directory.
-#
-HUSHLOGIN_FILE .hushlogin
-#HUSHLOGIN_FILE /etc/hushlogins
-
-#
-# *REQUIRED* The default PATH settings, for superuser and normal users.
-#
-# (they are minimal, add the rest in the shell startup files)
-ENV_SUPATH PATH=/sbin:/bin:/usr/sbin:/usr/bin
-ENV_PATH PATH=/bin:/usr/bin
-
-#
-# Terminal permissions
-#
-# TTYGROUP Login tty will be assigned this group ownership.
-# TTYPERM Login tty will be set to this permission.
-#
-# If you have a "write" program which is "setgid" to a special group
-# which owns the terminals, define TTYGROUP to the group number and
-# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign
-# TTYPERM to either 622 or 600.
-#
-TTYGROUP tty
-TTYPERM 0600
-
-#
-# Login configuration initializations:
-#
-# ERASECHAR Terminal ERASE character ('\010' = backspace).
-# KILLCHAR Terminal KILL character ('\025' = CTRL/U).
-# UMASK Default "umask" value.
-#
-# The ERASECHAR and KILLCHAR are used only on System V machines.
-# The ULIMIT is used only if the system supports it.
-# (now it works with setrlimit too; ulimit is in 512-byte units)
-#
-# Prefix these values with "0" to get octal, "0x" to get hexadecimal.
-#
-ERASECHAR 0177
-KILLCHAR 025
-UMASK 077
-
-#
-# Password aging controls:
-#
-# PASS_MAX_DAYS Maximum number of days a password may be used.
-# PASS_MIN_DAYS Minimum number of days allowed between password changes.
-# PASS_WARN_AGE Number of days warning given before a password expires.
-#
-PASS_MAX_DAYS 99999
-PASS_MIN_DAYS 0
-PASS_WARN_AGE 7
-
-#
-# Min/max values for automatic uid selection in useradd
-#
-UID_MIN 1000
-UID_MAX 60000
-# System accounts
-SYS_UID_MIN 500
-SYS_UID_MAX 999
-
-#
-# Min/max values for automatic gid selection in groupadd
-#
-GID_MIN 1000
-GID_MAX 60000
-# System accounts
-SYS_GID_MIN 500
-SYS_GID_MAX 999
-
-#
-# Max number of login retries if password is bad
-#
-LOGIN_RETRIES 5
-
-#
-# Max time in seconds for login
-#
-LOGIN_TIMEOUT 60
-
-#
-# Which fields may be changed by regular users using chfn - use
-# any combination of letters "frwh" (full name, room number, work
-# phone, home phone). If not defined, no changes are allowed.
-# For backward compatibility, "yes" = "rwh" and "no" = "frwh".
-#
-CHFN_RESTRICT rwh
-
-#
-# List of groups to add to the user's supplementary group set
-# when logging in on the console (as determined by the CONSOLE
-# setting). Default is none.
-#
-# Use with caution - it is possible for users to gain permanent
-# access to these groups, even when not logged in on the console.
-# How to do it is left as an exercise for the reader...
-#
-#CONSOLE_GROUPS floppy:audio:cdrom
-
-#
-# Should login be allowed if we can't cd to the home directory?
-# Default in no.
-#
-DEFAULT_HOME yes
-
-#
-# If defined, this command is run when removing a user.
-# It should remove any at/cron/print jobs etc. owned by
-# the user to be removed (passed as the first argument).
-#
-#USERDEL_CMD /usr/sbin/userdel_local
-
-#
-# Enable setting of the umask group bits to be the same as owner bits
-# (examples: 022 -> 002, 077 -> 007) for non-root users, if the uid is
-# the same as gid, and username is the same as the primary group name.
-#
-# This also enables userdel to remove user groups if no members exist.
-#
-USERGROUPS_ENAB yes
-
diff --git a/testing/shadow/newusers b/testing/shadow/newusers
deleted file mode 100644
index 5d447985a..000000000
--- a/testing/shadow/newusers
+++ /dev/null
@@ -1,6 +0,0 @@
-#%PAM-1.0
-auth sufficient pam_rootok.so
-auth required pam_unix.so
-account required pam_unix.so
-session required pam_unix.so
-password required pam_unix.so sha512 shadow
diff --git a/testing/shadow/passwd b/testing/shadow/passwd
deleted file mode 100644
index ab56da496..000000000
--- a/testing/shadow/passwd
+++ /dev/null
@@ -1,4 +0,0 @@
-#%PAM-1.0
-#password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
-#password required pam_unix.so sha512 shadow use_authtok
-password required pam_unix.so sha512 shadow nullok
diff --git a/testing/shadow/shadow-add-missing-include.patch b/testing/shadow/shadow-add-missing-include.patch
deleted file mode 100644
index 5c9e946ef..000000000
--- a/testing/shadow/shadow-add-missing-include.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -Naur shadow-4.1.4.2+svn3283/libmisc/copydir.c shadow-4.1.4.2+svn3283.new/libmisc/copydir.c
---- shadow-4.1.4.2+svn3283/libmisc/copydir.c 2010-09-05 11:35:26.000000000 -0400
-+++ shadow-4.1.4.2+svn3283.new/libmisc/copydir.c 2011-06-26 01:26:52.000000000 -0400
-@@ -34,6 +34,7 @@
-
- #ident "$Id: copydir.c 3283 2010-09-05 15:34:42Z nekral-guest $"
-
-+#include <stdarg.h>
- #include <assert.h>
- #include <sys/stat.h>
- #include <sys/types.h>
diff --git a/testing/shadow/shadow-strncpy-usage.patch b/testing/shadow/shadow-strncpy-usage.patch
deleted file mode 100644
index 46df74ace..000000000
--- a/testing/shadow/shadow-strncpy-usage.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff -ur shadow-4.1.4.3.orig/src/login.c shadow-4.1.4.3/src/login.c
---- shadow-4.1.4.3.orig/src/login.c 2011-03-05 22:17:10.032524948 -0800
-+++ shadow-4.1.4.3/src/login.c 2011-03-05 22:17:59.154342059 -0800
-@@ -748,8 +748,9 @@
- sizeof (loginprompt),
- _("%s login: "), hostn);
- } else {
-+ loginprompt[sizeof (loginprompt) - 1] = '\0';
- strncpy (loginprompt, _("login: "),
-- sizeof (loginprompt));
-+ sizeof (loginprompt) - 1);
- }
-
- retcode = pam_set_item (pamh, PAM_USER_PROMPT, loginprompt);
-diff -ur shadow-4.1.4.3.orig/src/usermod.c shadow-4.1.4.3/src/usermod.c
---- shadow-4.1.4.3.orig/src/usermod.c 2011-03-05 22:17:10.029191265 -0800
-+++ shadow-4.1.4.3/src/usermod.c 2011-03-05 22:18:42.665576968 -0800
-@@ -182,7 +182,8 @@
- struct tm *tp;
-
- if ((negativ != NULL) && (date < 0)) {
-- strncpy (buf, negativ, maxsize);
-+ buf[maxsize - 1] = '\0';
-+ strncpy (buf, negativ, maxsize - 1);
- } else {
- time_t t = (time_t) date;
- tp = gmtime (&t);
diff --git a/testing/shadow/shadow.cron.daily b/testing/shadow/shadow.cron.daily
deleted file mode 100755
index 1931a793e..000000000
--- a/testing/shadow/shadow.cron.daily
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-# Verify integrity of password and group files
-/usr/sbin/pwck -r
-/usr/sbin/grpck -r
-
diff --git a/testing/shadow/shadow.install b/testing/shadow/shadow.install
deleted file mode 100644
index e990bfe39..000000000
--- a/testing/shadow/shadow.install
+++ /dev/null
@@ -1,9 +0,0 @@
-post_upgrade() {
- grpck -r >/dev/null 2>&1
- if [ $? -eq 2 ]; then
- printf '%s\n' \
- "==> Warning: /etc/group or /etc/gshadow are inconsistant." \
- " Run 'grpck' to correct this."
- fi
- return 0
-}
diff --git a/testing/shadow/shadow_CVE-2011-0721.patch b/testing/shadow/shadow_CVE-2011-0721.patch
deleted file mode 100644
index eb9ad80a2..000000000
--- a/testing/shadow/shadow_CVE-2011-0721.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-Goal: Input sanitization for chfn and chsh
-
-Fixes: CVE-2011-0721
-
-Status wrt upstream: Already applied upstream (4.1.4.3)
-
---- a/src/chfn.c
-+++ b/src/chfn.c
-@@ -551,14 +551,14 @@
- static void check_fields (void)
- {
- int err;
-- err = valid_field (fullnm, ":,=");
-+ err = valid_field (fullnm, ":,=\n");
- if (err > 0) {
- fprintf (stderr, _("%s: name with non-ASCII characters: '%s'\n"), Prog, fullnm);
- } else if (err < 0) {
- fprintf (stderr, _("%s: invalid name: '%s'\n"), Prog, fullnm);
- fail_exit (E_NOPERM);
- }
-- err = valid_field (roomno, ":,=");
-+ err = valid_field (roomno, ":,=\n");
- if (err > 0) {
- fprintf (stderr, _("%s: room number with non-ASCII characters: '%s'\n"), Prog, roomno);
- } else if (err < 0) {
-@@ -566,17 +566,17 @@
- Prog, roomno);
- fail_exit (E_NOPERM);
- }
-- if (valid_field (workph, ":,=") != 0) {
-+ if (valid_field (workph, ":,=\n") != 0) {
- fprintf (stderr, _("%s: invalid work phone: '%s'\n"),
- Prog, workph);
- fail_exit (E_NOPERM);
- }
-- if (valid_field (homeph, ":,=") != 0) {
-+ if (valid_field (homeph, ":,=\n") != 0) {
- fprintf (stderr, _("%s: invalid home phone: '%s'\n"),
- Prog, homeph);
- fail_exit (E_NOPERM);
- }
-- err = valid_field (slop, ":");
-+ err = valid_field (slop, ":\n");
- if (err > 0) {
- fprintf (stderr, _("%s: '%s' contains non-ASCII characters\n"), Prog, slop);
- } else if (err < 0) {
---- a/src/chsh.
-+++ b/src/chsh.c
-@@ -528,7 +528,7 @@
- * users are restricted to using the shells in /etc/shells.
- * The shell must be executable by the user.
- */
-- if (valid_field (loginsh, ":,=") != 0) {
-+ if (valid_field (loginsh, ":,=\n") != 0) {
- fprintf (stderr, _("%s: Invalid entry: %s\n"), Prog, loginsh);
- fail_exit (1);
- }
diff --git a/testing/shadow/useradd.defaults b/testing/shadow/useradd.defaults
deleted file mode 100644
index b800b1777..000000000
--- a/testing/shadow/useradd.defaults
+++ /dev/null
@@ -1,9 +0,0 @@
-# useradd defaults file for ArchLinux
-# original changes by TomK
-GROUP=100
-HOME=/home
-INACTIVE=-1
-EXPIRE=
-SHELL=/bin/bash
-SKEL=/etc/skel
-CREATE_MAIL_SPOOL=no
diff --git a/testing/shadow/xstrdup.patch b/testing/shadow/xstrdup.patch
deleted file mode 100644
index bce434264..000000000
--- a/testing/shadow/xstrdup.patch
+++ /dev/null
@@ -1,9 +0,0 @@
---- shadow-4.1.2.1/libmisc/xmalloc.c 2008-08-30 21:55:44.000000000 -0500
-+++ shadow-4.1.2.1/libmisc/xmalloc.c.new 2008-08-30 21:55:36.000000000 -0500
-@@ -61,5 +61,6 @@
-
- char *xstrdup (const char *str)
- {
-+ if(str == NULL) return NULL;
- return strcpy (xmalloc (strlen (str) + 1), str);
- }
diff --git a/testing/subversion/PKGBUILD b/testing/subversion/PKGBUILD
deleted file mode 100644
index 9d587905d..000000000
--- a/testing/subversion/PKGBUILD
+++ /dev/null
@@ -1,79 +0,0 @@
-# $Id: PKGBUILD 144461 2011-12-06 07:12:44Z eric $
-# Maintainer: Paul Mattal <paul@archlinux.org>
-# Contributor: Jason Chu <jason@archlinux.org>
-
-pkgname=subversion
-pkgver=1.7.2
-pkgrel=1
-pkgdesc="A Modern Concurrent Version Control System"
-arch=('i686' 'x86_64')
-license=('APACHE')
-depends=('neon' 'apr-util' 'sqlite3' 'file')
-optdepends=('libgnome-keyring' 'kdeutils-kwallet' 'bash-completion: for svn bash completion' \
- 'python2: for some hook scripts' 'ruby: for some hook scripts')
-makedepends=('krb5' 'apache' 'python2' 'perl' 'swig' 'java-runtime' 'java-environment'
- 'autoconf' 'db' 'e2fsprogs' 'libgnome-keyring' 'kdelibs')
-backup=('etc/xinetd.d/svn' 'etc/conf.d/svnserve')
-url="http://subversion.apache.org/"
-provides=('svn')
-options=('!makeflags' '!libtool')
-source=(http://apache.mirror.rafal.ca/subversion/$pkgname-$pkgver.tar.bz2{,.asc}
- svnserve svn svnserve.conf svnmerge.py
- subversion.rpath.fix.patch)
-sha1sums=('8c0824aeb7f42da1ff4f7cd296877af7f59812bb'
- '66293923ddc1b12a43b0e86f6b6a3c23b70df6ae'
- '64ba3e6ebafc08ac62f59d788f7a825fdce69573'
- '73b36c046c09cec2093354911c89e3ba8056af6c'
- 'ad117bf3b2a838a9a678a93fd8db1a066ad46c41'
- 'd240228e5755495c26e89d7ef47a75fb097dd040'
- '3d1e28408a9abb42af2e531adc0d01ce21acfad6')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- export PYTHON=/usr/bin/python2
-
- patch -p0 -i ../subversion.rpath.fix.patch
- sed -i 's|/usr/bin/env python|/usr/bin/env python2|' tools/hook-scripts/{,mailer/{,tests/}}*.py
-
- ./configure --prefix=/usr --with-apr=/usr --with-apr-util=/usr \
- --with-zlib=/usr --with-neon=/usr --with-apxs \
- --with-sqlite=/usr --with-berkeley-db=:/usr/include/:/usr/lib:db-5.2 \
- --enable-javahl --with-gnome-keyring --with-kwallet
-
- make external-all
- make LT_LDFLAGS="-L$Fdestdir/usr/lib" local-all
- make swig_pydir=/usr/lib/python2.7/site-packages/libsvn \
- swig_pydir_extra=/usr/lib/python2.7/site-packages/svn swig-py swig-pl javahl # swig-rb
-}
-
-#check() {
-# cd "${srcdir}/${pkgname}-${pkgver}"
-# export LANG=C LC_ALL=C
-# make check check-swig-pl check-swig-py check-javahl CLEANUP=yes # check-swig-rb
-#}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
-
- export LD_LIBRARY_PATH="${pkgdir}"/usr/lib:$LD_LIBRARY_PATH
- make DESTDIR="${pkgdir}" INSTALLDIRS=vendor \
- swig_pydir=/usr/lib/python2.7/site-packages/libsvn \
- swig_pydir_extra=/usr/lib/python2.7/site-packages/svn \
- install install-swig-py install-swig-pl install-javahl # install-swig-rb
-
- install -d "${pkgdir}"/usr/share/subversion
- cp -a tools/hook-scripts "${pkgdir}"/usr/share/subversion/
- rm -f "${pkgdir}"/usr/share/subversion/hook-scripts/*.in
-
- rm -f "${pkgdir}"/usr/lib/perl5/vendor_perl/auto/SVN/_Core/.packlist
- rm -rf "${pkgdir}"/usr/lib/perl5/core_perl
-
- install -D -m 755 "${srcdir}"/svnserve "${pkgdir}"/etc/rc.d/svnserve
- install -D -m 644 "${srcdir}"/svn "${pkgdir}"/etc/xinetd.d/svn
- install -D -m 644 "${srcdir}"/svnserve.conf "${pkgdir}"/etc/conf.d/svnserve
- install -m 755 "${srcdir}"/svnmerge.py "${pkgdir}"/usr/bin/svnmerge
-
- # bash completion
- install -Dm 644 tools/client-side/bash_completion \
- "${pkgdir}"/etc/bash_completion.d/subversion
-}
diff --git a/testing/subversion/subversion.rpath.fix.patch b/testing/subversion/subversion.rpath.fix.patch
deleted file mode 100644
index ba6ee9e4e..000000000
--- a/testing/subversion/subversion.rpath.fix.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- Makefile.in.orig 2009-02-16 14:10:48.000000000 -0200
-+++ Makefile.in 2009-06-04 00:56:29.000000000 -0300
-@@ -678,6 +678,7 @@
-
- $(SWIG_PL_DIR)/native/Makefile: $(SWIG_PL_DIR)/native/Makefile.PL
- cd $(SWIG_PL_DIR)/native; $(PERL) Makefile.PL
-+ cd $(SWIG_PL_DIR)/native; sed -i 's|LD_RUN_PATH|DIE_RPATH_DIE|g' Makefile{,.{client,delta,fs,ra,repos,wc}}
-
- swig-pl_DEPS = autogen-swig-pl libsvn_swig_perl \
- $(SWIG_PL_DIR)/native/Makefile
diff --git a/testing/subversion/svn b/testing/subversion/svn
deleted file mode 100644
index 8988aaf63..000000000
--- a/testing/subversion/svn
+++ /dev/null
@@ -1,11 +0,0 @@
-service svn
-{
- flags = REUSE
- socket_type = stream
- wait = no
- user = root
- server = /usr/bin/svnserve
- server_args = -i
- log_on_failure += USERID
- disable = yes
-}
diff --git a/testing/subversion/svnmerge.py b/testing/subversion/svnmerge.py
deleted file mode 100644
index d8931648f..000000000
--- a/testing/subversion/svnmerge.py
+++ /dev/null
@@ -1,2370 +0,0 @@
-#!/usr/bin/env python2
-# -*- coding: utf-8 -*-
-# Copyright (c) 2005, Giovanni Bajo
-# Copyright (c) 2004-2005, Awarix, Inc.
-# All rights reserved.
-#
-# 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
-#
-# Author: Archie Cobbs <archie at awarix dot com>
-# Rewritten in Python by: Giovanni Bajo <rasky at develer dot com>
-#
-# Acknowledgments:
-# John Belmonte <john at neggie dot net> - metadata and usability
-# improvements
-# Blair Zajac <blair at orcaware dot com> - random improvements
-# Raman Gupta <rocketraman at fastmail dot fm> - bidirectional and transitive
-# merging support
-# Dustin J. Mitchell <dustin at zmanda dot com> - support for multiple
-# location identifier formats
-#
-# $HeadURL$
-# $LastChangedDate$
-# $LastChangedBy$
-# $LastChangedRevision$
-#
-# Requisites:
-# svnmerge.py has been tested with all SVN major versions since 1.1 (both
-# client and server). It is unknown if it works with previous versions.
-#
-# Differences from svnmerge.sh:
-# - More portable: tested as working in FreeBSD and OS/2.
-# - Add double-verbose mode, which shows every svn command executed (-v -v).
-# - "svnmerge avail" now only shows commits in source, not also commits in
-# other parts of the repository.
-# - Add "svnmerge block" to flag some revisions as blocked, so that
-# they will not show up anymore in the available list. Added also
-# the complementary "svnmerge unblock".
-# - "svnmerge avail" has grown two new options:
-# -B to display a list of the blocked revisions
-# -A to display both the blocked and the available revisions.
-# - Improved generated commit message to make it machine parsable even when
-# merging commits which are themselves merges.
-# - Add --force option to skip working copy check
-# - Add --record-only option to "svnmerge merge" to avoid performing
-# an actual merge, yet record that a merge happened.
-# - Can use a variety of location-identifier formats
-#
-# TODO:
-# - Add "svnmerge avail -R": show logs in reverse order
-#
-# Information for Hackers:
-#
-# Identifiers for branches:
-# A branch is identified in three ways within this source:
-# - as a working copy (variable name usually includes 'dir')
-# - as a fully qualified URL
-# - as a path identifier (an opaque string indicating a particular path
-# in a particular repository; variable name includes 'pathid')
-# A "target" is generally user-specified, and may be a working copy or
-# a URL.
-
-import sys, os, getopt, re, types, tempfile, time, locale
-from bisect import bisect
-from xml.dom import pulldom
-
-NAME = "svnmerge"
-if not hasattr(sys, "version_info") or sys.version_info < (2, 0):
- error("requires Python 2.0 or newer")
-
-# Set up the separator used to separate individual log messages from
-# each revision merged into the target location. Also, create a
-# regular expression that will find this same separator in already
-# committed log messages, so that the separator used for this run of
-# svnmerge.py will have one more LOG_SEPARATOR appended to the longest
-# separator found in all the commits.
-LOG_SEPARATOR = 8 * '.'
-LOG_SEPARATOR_RE = re.compile('^((%s)+)' % re.escape(LOG_SEPARATOR),
- re.MULTILINE)
-
-# Each line of the embedded log messages will be prefixed by LOG_LINE_PREFIX.
-LOG_LINE_PREFIX = 2 * ' '
-
-# Set python to the default locale as per environment settings, same as svn
-# TODO we should really parse config and if log-encoding is specified, set
-# the locale to match that encoding
-locale.setlocale(locale.LC_ALL, '')
-
-# We want the svn output (such as svn info) to be non-localized
-# Using LC_MESSAGES should not affect localized output of svn log, for example
-if os.environ.has_key("LC_ALL"):
- del os.environ["LC_ALL"]
-os.environ["LC_MESSAGES"] = "C"
-
-###############################################################################
-# Support for older Python versions
-###############################################################################
-
-# True/False constants are Python 2.2+
-try:
- True, False
-except NameError:
- True, False = 1, 0
-
-def lstrip(s, ch):
- """Replacement for str.lstrip (support for arbitrary chars to strip was
- added in Python 2.2.2)."""
- i = 0
- try:
- while s[i] == ch:
- i = i+1
- return s[i:]
- except IndexError:
- return ""
-
-def rstrip(s, ch):
- """Replacement for str.rstrip (support for arbitrary chars to strip was
- added in Python 2.2.2)."""
- try:
- if s[-1] != ch:
- return s
- i = -2
- while s[i] == ch:
- i = i-1
- return s[:i+1]
- except IndexError:
- return ""
-
-def strip(s, ch):
- """Replacement for str.strip (support for arbitrary chars to strip was
- added in Python 2.2.2)."""
- return lstrip(rstrip(s, ch), ch)
-
-def rsplit(s, sep, maxsplits=0):
- """Like str.rsplit, which is Python 2.4+ only."""
- L = s.split(sep)
- if not 0 < maxsplits <= len(L):
- return L
- return [sep.join(L[0:-maxsplits])] + L[-maxsplits:]
-
-###############################################################################
-
-def kwextract(s):
- """Extract info from a svn keyword string."""
- try:
- return strip(s, "$").strip().split(": ")[1]
- except IndexError:
- return "<unknown>"
-
-__revision__ = kwextract('$Rev$')
-__date__ = kwextract('$Date$')
-
-# Additional options, not (yet?) mapped to command line flags
-default_opts = {
- "svn": "svn",
- "prop": NAME + "-integrated",
- "block-prop": NAME + "-blocked",
- "commit-verbose": True,
- "verbose": 0,
-}
-logs = {}
-
-def console_width():
- """Get the width of the console screen (if any)."""
- try:
- return int(os.environ["COLUMNS"])
- except (KeyError, ValueError):
- pass
-
- try:
- # Call the Windows API (requires ctypes library)
- from ctypes import windll, create_string_buffer
- h = windll.kernel32.GetStdHandle(-11)
- csbi = create_string_buffer(22)
- res = windll.kernel32.GetConsoleScreenBufferInfo(h, csbi)
- if res:
- import struct
- (bufx, bufy,
- curx, cury, wattr,
- left, top, right, bottom,
- maxx, maxy) = struct.unpack("hhhhHhhhhhh", csbi.raw)
- return right - left + 1
- except ImportError:
- pass
-
- # Parse the output of stty -a
- if os.isatty(1):
- out = os.popen("stty -a").read()
- m = re.search(r"columns (\d+);", out)
- if m:
- return int(m.group(1))
-
- # sensible default
- return 80
-
-def error(s):
- """Subroutine to output an error and bail."""
- print >> sys.stderr, "%s: %s" % (NAME, s)
- sys.exit(1)
-
-def report(s):
- """Subroutine to output progress message, unless in quiet mode."""
- if opts["verbose"]:
- print "%s: %s" % (NAME, s)
-
-def prefix_lines(prefix, lines):
- """Given a string representing one or more lines of text, insert the
- specified prefix at the beginning of each line, and return the result.
- The input must be terminated by a newline."""
- assert lines[-1] == "\n"
- return prefix + lines[:-1].replace("\n", "\n"+prefix) + "\n"
-
-def recode_stdout_to_file(s):
- if locale.getdefaultlocale()[1] is None or not hasattr(sys.stdout, "encoding") \
- or sys.stdout.encoding is None:
- return s
- u = s.decode(sys.stdout.encoding)
- return u.encode(locale.getdefaultlocale()[1])
-
-class LaunchError(Exception):
- """Signal a failure in execution of an external command. Parameters are the
- exit code of the process, the original command line, and the output of the
- command."""
-
-try:
- """Launch a sub-process. Return its output (both stdout and stderr),
- optionally split by lines (if split_lines is True). Raise a LaunchError
- exception if the exit code of the process is non-zero (failure).
-
- This function has two implementations, one based on subprocess (preferred),
- and one based on popen (for compatibility).
- """
- import subprocess
- import shlex
-
- def launch(cmd, split_lines=True):
- # Requiring python 2.4 or higher, on some platforms we get
- # much faster performance from the subprocess module (where python
- # doesn't try to close an exhorbitant number of file descriptors)
- stdout = ""
- stderr = ""
- try:
- if os.name == 'nt':
- p = subprocess.Popen(cmd, stdout=subprocess.PIPE, \
- close_fds=False, stderr=subprocess.PIPE)
- else:
- # Use shlex to break up the parameters intelligently,
- # respecting quotes. shlex can't handle unicode.
- args = shlex.split(cmd.encode('ascii'))
- p = subprocess.Popen(args, stdout=subprocess.PIPE, \
- close_fds=False, stderr=subprocess.PIPE)
- stdoutAndErr = p.communicate()
- stdout = stdoutAndErr[0]
- stderr = stdoutAndErr[1]
- except OSError, inst:
- # Using 1 as failure code; should get actual number somehow? For
- # examples see svnmerge_test.py's TestCase_launch.test_failure and
- # TestCase_launch.test_failurecode.
- raise LaunchError(1, cmd, stdout + " " + stderr + ": " + str(inst))
-
- if p.returncode == 0:
- if split_lines:
- # Setting keepends=True for compatibility with previous logic
- # (where file.readlines() preserves newlines)
- return stdout.splitlines(True)
- else:
- return stdout
- else:
- raise LaunchError(p.returncode, cmd, stdout + stderr)
-except ImportError:
- # support versions of python before 2.4 (slower on some systems)
- def launch(cmd, split_lines=True):
- if os.name not in ['nt', 'os2']:
- import popen2
- p = popen2.Popen4(cmd)
- p.tochild.close()
- if split_lines:
- out = p.fromchild.readlines()
- else:
- out = p.fromchild.read()
- ret = p.wait()
- if ret == 0:
- ret = None
- else:
- ret >>= 8
- else:
- i,k = os.popen4(cmd)
- i.close()
- if split_lines:
- out = k.readlines()
- else:
- out = k.read()
- ret = k.close()
-
- if ret is None:
- return out
- raise LaunchError(ret, cmd, out)
-
-def launchsvn(s, show=False, pretend=False, **kwargs):
- """Launch SVN and grab its output."""
- username = password = configdir = ""
- if opts.get("username", None):
- username = "--username=" + opts["username"]
- if opts.get("password", None):
- password = "--password=" + opts["password"]
- if opts.get("config-dir", None):
- configdir = "--config-dir=" + opts["config-dir"]
- cmd = ' '.join(filter(None, [opts["svn"], "--non-interactive",
- username, password, configdir, s]))
- if show or opts["verbose"] >= 2:
- print cmd
- if pretend:
- return None
- return launch(cmd, **kwargs)
-
-def svn_command(s):
- """Do (or pretend to do) an SVN command."""
- out = launchsvn(s, show=opts["show-changes"] or opts["dry-run"],
- pretend=opts["dry-run"],
- split_lines=False)
- if not opts["dry-run"]:
- print out
-
-def check_dir_clean(dir):
- """Check the current status of dir for local mods."""
- if opts["force"]:
- report('skipping status check because of --force')
- return
- report('checking status of "%s"' % dir)
-
- # Checking with -q does not show unversioned files or external
- # directories. Though it displays a debug message for external
- # directories, after a blank line. So, practically, the first line
- # matters: if it's non-empty there is a modification.
- out = launchsvn("status -q %s" % dir)
- if out and out[0].strip():
- error('"%s" has local modifications; it must be clean' % dir)
-
-class PathIdentifier:
- """Abstraction for a path identifier, so that we can start talking
- about it before we know the form that it takes in the properties (its
- external_form). Objects are referenced in the class variable 'locobjs',
- keyed by all known forms."""
-
- # a map of UUID (or None) to repository root URL.
- repo_hints = {}
-
- # a map from any known string form to the corresponding PathIdentifier
- locobjs = {}
-
- def __init__(self, repo_relative_path, uuid=None, url=None, external_form=None):
- self.repo_relative_path = repo_relative_path
- self.uuid = uuid
- self.url = url
- self.external_form = external_form
-
- def __repr__(self):
- return "<PathIdentifier " + ', '.join('%s=%r' % i for i in self.__dict__.items()) + '>'
-
- def __str__(self):
- """Return a printable string representation"""
- if self.external_form:
- return self.external_form
- if self.url:
- return self.format('url')
- if self.uuid:
- return self.format('uuid')
- return self.format('path')
-
- def from_pathid(pathid_str):
- """convert pathid_str to a PathIdentifier"""
- if not PathIdentifier.locobjs.has_key(pathid_str):
- if is_url(pathid_str):
- # we can determine every form; PathIdentifier.hint knows how to do that
- PathIdentifier.hint(pathid_str)
- elif pathid_str[:7] == 'uuid://':
- mo = re.match('uuid://([^/]*)(.*)', pathid_str)
- if not mo:
- error("Invalid path identifier '%s'" % pathid_str)
- uuid, repo_relative_path = mo.groups()
- pathid = PathIdentifier(repo_relative_path, uuid=uuid)
- # we can cache this by uuid:// pathid and by repo-relative path
- PathIdentifier.locobjs[pathid_str] = PathIdentifier.locobjs[repo_relative_path] = pathid
- elif pathid_str and pathid_str[0] == '/':
- # strip any trailing slashes
- pathid_str = pathid_str.rstrip('/')
- pathid = PathIdentifier(repo_relative_path=pathid_str)
- # we can only cache this by repo-relative path
- PathIdentifier.locobjs[pathid_str] = pathid
- else:
- error("Invalid path identifier '%s'" % pathid_str)
- return PathIdentifier.locobjs[pathid_str]
- from_pathid = staticmethod(from_pathid)
-
- def from_target(target):
- """Convert a target (either a working copy path or an URL) into a
- path identifier."""
- # prime the cache first if we don't know about this target yet
- if not PathIdentifier.locobjs.has_key(target):
- PathIdentifier.hint(target)
-
- try:
- return PathIdentifier.locobjs[target]
- except KeyError:
- error("Could not recognize path identifier '%s'" % target)
- from_target = staticmethod(from_target)
-
- def hint(target):
- """Cache some information about target, as it may be referenced by
- repo-relative path in subversion properties; the cache can help to
- expand such a relative path to a full path identifier."""
- if PathIdentifier.locobjs.has_key(target): return
- if not is_url(target) and not is_wc(target): return
-
- url = target_to_url(target)
-
- root = get_repo_root(url)
- assert root[-1] != "/"
- assert url[:len(root)] == root, "url=%r, root=%r" % (url, root)
- repo_relative_path = url[len(root):]
-
- try:
- uuid = get_svninfo(target)['Repository UUID']
- uuid_pathid = 'uuid://%s%s' % (uuid, repo_relative_path)
- except KeyError:
- uuid = None
- uuid_pathid = None
-
- locobj = PathIdentifier.locobjs.get(url) or \
- (uuid_pathid and PathIdentifier.locobjs.get(uuid_pathid))
- if not locobj:
- locobj = PathIdentifier(repo_relative_path, uuid=uuid, url=url)
-
- PathIdentifier.repo_hints[uuid] = root # (uuid may be None)
-
- PathIdentifier.locobjs[target] = locobj
- PathIdentifier.locobjs[url] = locobj
- if uuid_pathid:
- PathIdentifier.locobjs[uuid_pathid] = locobj
- if not PathIdentifier.locobjs.has_key(repo_relative_path):
- PathIdentifier.locobjs[repo_relative_path] = locobj
- hint = staticmethod(hint)
-
- def format(self, fmt):
- if fmt == 'path':
- return self.repo_relative_path
- elif fmt == 'uuid':
- return "uuid://%s%s" % (self.uuid, self.repo_relative_path)
- elif fmt == 'url':
- return self.url
- else:
- error("Unkonwn path type '%s'" % fmt)
-
- def match_substring(self, str):
- """Test whether str is a substring of any representation of this
- PathIdentifier."""
- if self.repo_relative_path.find(str) >= 0:
- return True
-
- if self.uuid:
- if ("uuid://%s%s" % (self.uuid, self.repo_relative_path)).find(str) >= 0:
- return True
-
- if self.url:
- if (self.url + self.repo_relative_path).find(str) >= 0:
- return True
-
- return False
-
- def get_url(self):
- """Convert a pathid into a URL. If this is not possible, error out."""
- if self.url:
- return self.url
- # if we have a uuid and happen to know the URL for it, use that
- elif self.uuid and PathIdentifier.repo_hints.has_key(self.uuid):
- self.url = PathIdentifier.repo_hints[self.uuid] + self.repo_relative_path
- PathIdentifier.locobjs[self.url] = self
- return self.url
- # if we've only seen one rep, use that (a guess, but an educated one)
- elif not self.uuid and len(PathIdentifier.repo_hints) == 1:
- uuid, root = PathIdentifier.repo_hints.items()[0]
- if uuid:
- self.uuid = uuid
- PathIdentifier.locobjs['uuid://%s%s' % (uuid, self.repo_relative_path)] = self
- self.url = root + self.repo_relative_path
- PathIdentifier.locobjs[self.url] = self
- report("Guessing that '%s' refers to '%s'" % (self, self.url))
- return self.url
- else:
- error("Cannot determine URL for '%s'; " % self +
- "Explicit source argument (-S/--source) required.\n")
-
-class RevisionLog:
- """
- A log of the revisions which affected a given URL between two
- revisions.
- """
-
- def __init__(self, url, begin, end, find_propchanges=False):
- """
- Create a new RevisionLog object, which stores, in self.revs, a list
- of the revisions which affected the specified URL between begin and
- end. If find_propchanges is True, self.propchange_revs will contain a
- list of the revisions which changed properties directly on the
- specified URL. URL must be the URL for a directory in the repository.
- """
- self.url = url
-
- # Setup the log options (--quiet, so we don't show log messages)
- log_opts = '--xml --quiet -r%s:%s "%s"' % (begin, end, url)
- if find_propchanges:
- # The --verbose flag lets us grab merge tracking information
- # by looking at propchanges
- log_opts = "--verbose " + log_opts
-
- # Read the log to look for revision numbers and merge-tracking info
- self.revs = []
- self.propchange_revs = []
- repos_pathid = PathIdentifier.from_target(url)
- for chg in SvnLogParser(launchsvn("log %s" % log_opts,
- split_lines=False)):
- self.revs.append(chg.revision())
- for p in chg.paths():
- if p.action() == 'M' and p.pathid() == repos_pathid.repo_relative_path:
- self.propchange_revs.append(chg.revision())
-
- # Save the range of the log
- self.begin = int(begin)
- if end == "HEAD":
- # If end is not provided, we do not know which is the latest
- # revision in the repository. So we set 'end' to the latest
- # known revision.
- self.end = self.revs[-1]
- else:
- self.end = int(end)
-
- self._merges = None
- self._blocks = None
-
- def merge_metadata(self):
- """
- Return a VersionedProperty object, with a cached view of the merge
- metadata in the range of this log.
- """
-
- # Load merge metadata if necessary
- if not self._merges:
- self._merges = VersionedProperty(self.url, opts["prop"])
- self._merges.load(self)
-
- return self._merges
-
- def block_metadata(self):
- if not self._blocks:
- self._blocks = VersionedProperty(self.url, opts["block-prop"])
- self._blocks.load(self)
-
- return self._blocks
-
-
-class VersionedProperty:
- """
- A read-only, cached view of a versioned property.
-
- self.revs contains a list of the revisions in which the property changes.
- self.values stores the new values at each corresponding revision. If the
- value of the property is unknown, it is set to None.
-
- Initially, we set self.revs to [0] and self.values to [None]. This
- indicates that, as of revision zero, we know nothing about the value of
- the property.
-
- Later, if you run self.load(log), we cache the value of this property over
- the entire range of the log by noting each revision in which the property
- was changed. At the end of the range of the log, we invalidate our cache
- by adding the value "None" to our cache for any revisions which fall out
- of the range of our log.
-
- Once self.revs and self.values are filled, we can find the value of the
- property at any arbitrary revision using a binary search on self.revs.
- Once we find the last revision during which the property was changed,
- we can lookup the associated value in self.values. (If the associated
- value is None, the associated value was not cached and we have to do
- a full propget.)
-
- An example: We know that the 'svnmerge' property was added in r10, and
- changed in r21. We gathered log info up until r40.
-
- revs = [0, 10, 21, 40]
- values = [None, "val1", "val2", None]
-
- What these values say:
- - From r0 to r9, we know nothing about the property.
- - In r10, the property was set to "val1". This property stayed the same
- until r21, when it was changed to "val2".
- - We don't know what happened after r40.
- """
-
- def __init__(self, url, name):
- """View the history of a versioned property at URL with name"""
- self.url = url
- self.name = name
-
- # We know nothing about the value of the property. Setup revs
- # and values to indicate as such.
- self.revs = [0]
- self.values = [None]
-
- # We don't have any revisions cached
- self._initial_value = None
- self._changed_revs = []
- self._changed_values = []
-
- def load(self, log):
- """
- Load the history of property changes from the specified
- RevisionLog object.
- """
-
- # Get the property value before the range of the log
- if log.begin > 1:
- self.revs.append(log.begin-1)
- try:
- self._initial_value = self.raw_get(log.begin-1)
- except LaunchError:
- # The specified URL might not exist before the
- # range of the log. If so, we can safely assume
- # that the property was empty at that time.
- self._initial_value = { }
- self.values.append(self._initial_value)
- else:
- self._initial_value = { }
- self.values[0] = self._initial_value
-
- # Cache the property values in the log range
- old_value = self._initial_value
- for rev in log.propchange_revs:
- new_value = self.raw_get(rev)
- if new_value != old_value:
- self._changed_revs.append(rev)
- self._changed_values.append(new_value)
- self.revs.append(rev)
- self.values.append(new_value)
- old_value = new_value
-
- # Indicate that we know nothing about the value of the property
- # after the range of the log.
- if log.revs:
- self.revs.append(log.end+1)
- self.values.append(None)
-
- def raw_get(self, rev=None):
- """
- Get the property at revision REV. If rev is not specified, get
- the property at revision HEAD.
- """
- return get_revlist_prop(self.url, self.name, rev)
-
- def get(self, rev=None):
- """
- Get the property at revision REV. If rev is not specified, get
- the property at revision HEAD.
- """
-
- if rev is not None:
-
- # Find the index using a binary search
- i = bisect(self.revs, rev) - 1
-
- # Return the value of the property, if it was cached
- if self.values[i] is not None:
- return self.values[i]
-
- # Get the current value of the property
- return self.raw_get(rev)
-
- def changed_revs(self, key=None):
- """
- Get a list of the revisions in which the specified dictionary
- key was changed in this property. If key is not specified,
- return a list of revisions in which any key was changed.
- """
- if key is None:
- return self._changed_revs
- else:
- changed_revs = []
- old_val = self._initial_value
- for rev, val in zip(self._changed_revs, self._changed_values):
- if val.get(key) != old_val.get(key):
- changed_revs.append(rev)
- old_val = val
- return changed_revs
-
- def initialized_revs(self):
- """
- Get a list of the revisions in which keys were added or
- removed in this property.
- """
- initialized_revs = []
- old_len = len(self._initial_value)
- for rev, val in zip(self._changed_revs, self._changed_values):
- if len(val) != old_len:
- initialized_revs.append(rev)
- old_len = len(val)
- return initialized_revs
-
-class RevisionSet:
- """
- A set of revisions, held in dictionary form for easy manipulation. If we
- were to rewrite this script for Python 2.3+, we would subclass this from
- set (or UserSet). As this class does not include branch
- information, it's assumed that one instance will be used per
- branch.
- """
- def __init__(self, parm):
- """Constructs a RevisionSet from a string in property form, or from
- a dictionary whose keys are the revisions. Raises ValueError if the
- input string is invalid."""
-
- self._revs = {}
-
- revision_range_split_re = re.compile('[-:]')
-
- if isinstance(parm, types.DictType):
- self._revs = parm.copy()
- elif isinstance(parm, types.ListType):
- for R in parm:
- self._revs[int(R)] = 1
- else:
- parm = parm.strip()
- if parm:
- for R in parm.split(","):
- rev_or_revs = re.split(revision_range_split_re, R)
- if len(rev_or_revs) == 1:
- self._revs[int(rev_or_revs[0])] = 1
- elif len(rev_or_revs) == 2:
- for rev in range(int(rev_or_revs[0]),
- int(rev_or_revs[1])+1):
- self._revs[rev] = 1
- else:
- raise ValueError, 'Ill formatted revision range: ' + R
-
- def sorted(self):
- revnums = self._revs.keys()
- revnums.sort()
- return revnums
-
- def normalized(self):
- """Returns a normalized version of the revision set, which is an
- ordered list of couples (start,end), with the minimum number of
- intervals."""
- revnums = self.sorted()
- revnums.reverse()
- ret = []
- while revnums:
- s = e = revnums.pop()
- while revnums and revnums[-1] in (e, e+1):
- e = revnums.pop()
- ret.append((s, e))
- return ret
-
- def __str__(self):
- """Convert the revision set to a string, using its normalized form."""
- L = []
- for s,e in self.normalized():
- if s == e:
- L.append(str(s))
- else:
- L.append(str(s) + "-" + str(e))
- return ",".join(L)
-
- def __contains__(self, rev):
- return self._revs.has_key(rev)
-
- def __sub__(self, rs):
- """Compute subtraction as in sets."""
- revs = {}
- for r in self._revs.keys():
- if r not in rs:
- revs[r] = 1
- return RevisionSet(revs)
-
- def __and__(self, rs):
- """Compute intersections as in sets."""
- revs = {}
- for r in self._revs.keys():
- if r in rs:
- revs[r] = 1
- return RevisionSet(revs)
-
- def __nonzero__(self):
- return len(self._revs) != 0
-
- def __len__(self):
- """Return the number of revisions in the set."""
- return len(self._revs)
-
- def __iter__(self):
- return iter(self.sorted())
-
- def __or__(self, rs):
- """Compute set union."""
- revs = self._revs.copy()
- revs.update(rs._revs)
- return RevisionSet(revs)
-
-def merge_props_to_revision_set(merge_props, pathid):
- """A converter which returns a RevisionSet instance containing the
- revisions from PATH as known to BRANCH_PROPS. BRANCH_PROPS is a
- dictionary of pathid -> revision set branch integration information
- (as returned by get_merge_props())."""
- if not merge_props.has_key(pathid):
- error('no integration info available for path "%s"' % pathid)
- return RevisionSet(merge_props[pathid])
-
-def dict_from_revlist_prop(propvalue):
- """Given a property value as a string containing per-source revision
- lists, return a dictionary whose key is a source path identifier
- and whose value is the revisions for that source."""
- prop = {}
-
- # Multiple sources are separated by any whitespace.
- for L in propvalue.split():
- # We use rsplit to play safe and allow colons in pathids.
- pathid_str, revs = rsplit(L.strip(), ":", 1)
-
- pathid = PathIdentifier.from_pathid(pathid_str)
-
- # cache the "external" form we saw
- pathid.external_form = pathid_str
-
- prop[pathid] = revs
- return prop
-
-def get_revlist_prop(url_or_dir, propname, rev=None):
- """Given a repository URL or working copy path and a property
- name, extract the values of the property which store per-source
- revision lists and return a dictionary whose key is a source path
- identifier, and whose value is the revisions for that source."""
-
- # Note that propget does not return an error if the property does
- # not exist, it simply does not output anything. So we do not need
- # to check for LaunchError here.
- args = '--strict "%s" "%s"' % (propname, url_or_dir)
- if rev:
- args = '-r %s %s' % (rev, args)
- out = launchsvn('propget %s' % args, split_lines=False)
-
- return dict_from_revlist_prop(out)
-
-def get_merge_props(dir):
- """Extract the merged revisions."""
- return get_revlist_prop(dir, opts["prop"])
-
-def get_block_props(dir):
- """Extract the blocked revisions."""
- return get_revlist_prop(dir, opts["block-prop"])
-
-def get_blocked_revs(dir, source_pathid):
- p = get_block_props(dir)
- if p.has_key(source_pathid):
- return RevisionSet(p[source_pathid])
- return RevisionSet("")
-
-def format_merge_props(props, sep=" "):
- """Formats the hash PROPS as a string suitable for use as a
- Subversion property value."""
- assert sep in ["\t", "\n", " "] # must be a whitespace
- props = props.items()
- props.sort()
- L = []
- for h, r in props:
- L.append("%s:%s" % (h, r))
- return sep.join(L)
-
-def _run_propset(dir, prop, value):
- """Set the property 'prop' of directory 'dir' to value 'value'. We go
- through a temporary file to not run into command line length limits."""
- try:
- fd, fname = tempfile.mkstemp()
- f = os.fdopen(fd, "wb")
- except AttributeError:
- # Fallback for Python <= 2.3 which does not have mkstemp (mktemp
- # suffers from race conditions. Not that we care...)
- fname = tempfile.mktemp()
- f = open(fname, "wb")
-
- try:
- f.write(value)
- f.close()
- report("property data written to temp file: %s" % value)
- svn_command('propset "%s" -F "%s" "%s"' % (prop, fname, dir))
- finally:
- os.remove(fname)
-
-def set_props(dir, name, props):
- props = format_merge_props(props)
- if props:
- _run_propset(dir, name, props)
- else:
- # Check if NAME exists on DIR before trying to delete it.
- # As of 1.6 propdel no longer supports deleting a
- # non-existent property.
- out = launchsvn('propget "%s" "%s"' % (name, dir))
- if out:
- svn_command('propdel "%s" "%s"' % (name, dir))
-
-def set_merge_props(dir, props):
- set_props(dir, opts["prop"], props)
-
-def set_block_props(dir, props):
- set_props(dir, opts["block-prop"], props)
-
-def set_blocked_revs(dir, source_pathid, revs):
- props = get_block_props(dir)
- if revs:
- props[source_pathid] = str(revs)
- elif props.has_key(source_pathid):
- del props[source_pathid]
- set_block_props(dir, props)
-
-def is_url(url):
- """Check if url looks like a valid url."""
- return re.search(r"^[a-zA-Z][-+\.\w]*://[^\s]+$", url) is not None and url[:4] != 'uuid'
-
-def check_url(url):
- """Similar to is_url, but actually invoke get_svninfo to find out"""
- return get_svninfo(url) != {}
-
-def is_pathid(pathid):
- return isinstance(pathid, PathIdentifier)
-
-def is_wc(dir):
- """Check if a directory is a working copy."""
- return os.path.isdir(os.path.join(dir, ".svn")) or \
- os.path.isdir(os.path.join(dir, "_svn"))
-
-_cache_svninfo = {}
-def get_svninfo(target):
- """Extract the subversion information for a target (through 'svn info').
- This function uses an internal cache to let clients query information
- many times."""
- if _cache_svninfo.has_key(target):
- return _cache_svninfo[target]
- info = {}
- for L in launchsvn('info "%s"' % target):
- L = L.strip()
- if not L:
- continue
- key, value = L.split(": ", 1)
- info[key] = value.strip()
- _cache_svninfo[target] = info
- return info
-
-def target_to_url(target):
- """Convert working copy path or repos URL to a repos URL."""
- if is_wc(target):
- info = get_svninfo(target)
- return info["URL"]
- return target
-
-_cache_reporoot = {}
-def get_repo_root(target):
- """Compute the root repos URL given a working-copy path, or a URL."""
- # Try using "svn info WCDIR". This works only on SVN clients >= 1.3
- if not is_url(target):
- try:
- info = get_svninfo(target)
- root = info["Repository Root"]
- _cache_reporoot[root] = None
- return root
- except KeyError:
- pass
- url = target_to_url(target)
- assert url[-1] != '/'
- else:
- url = target
-
- # Go through the cache of the repository roots. This avoids extra
- # server round-trips if we are asking the root of different URLs
- # in the same repository (the cache in get_svninfo() cannot detect
- # that of course and would issue a remote command).
- assert is_url(url)
- for r in _cache_reporoot:
- if url.startswith(r):
- return r
-
- # Try using "svn info URL". This works only on SVN clients >= 1.2
- try:
- info = get_svninfo(url)
- # info may be {}, in which case we'll see KeyError here
- root = info["Repository Root"]
- _cache_reporoot[root] = None
- return root
- except (KeyError, LaunchError):
- pass
-
- # Constrained to older svn clients, we are stuck with this ugly
- # trial-and-error implementation. It could be made faster with a
- # binary search.
- while url:
- temp = os.path.dirname(url)
- try:
- launchsvn('proplist "%s"' % temp)
- except LaunchError:
- _cache_reporoot[url] = None
- return rstrip(url, "/")
- url = temp
-
- error("svn repos root of %s not found" % target)
-
-class SvnLogParser:
- """
- Parse the "svn log", going through the XML output and using pulldom (which
- would even allow streaming the command output).
- """
- def __init__(self, xml):
- self._events = pulldom.parseString(xml)
- def __getitem__(self, idx):
- for event, node in self._events:
- if event == pulldom.START_ELEMENT and node.tagName == "logentry":
- self._events.expandNode(node)
- return self.SvnLogRevision(node)
- raise IndexError, "Could not find 'logentry' tag in xml"
-
- class SvnLogRevision:
- def __init__(self, xmlnode):
- self.n = xmlnode
- def revision(self):
- return int(self.n.getAttribute("revision"))
- def author(self):
- return self.n.getElementsByTagName("author")[0].firstChild.data
- def paths(self):
- return [self.SvnLogPath(n)
- for n in self.n.getElementsByTagName("path")]
-
- class SvnLogPath:
- def __init__(self, xmlnode):
- self.n = xmlnode
- def action(self):
- return self.n.getAttribute("action")
- def pathid(self):
- return self.n.firstChild.data
- def copyfrom_rev(self):
- try: return self.n.getAttribute("copyfrom-rev")
- except KeyError: return None
- def copyfrom_pathid(self):
- try: return self.n.getAttribute("copyfrom-path")
- except KeyError: return None
-
-def get_copyfrom(target):
- """Get copyfrom info for a given target (it represents the
- repository-relative path from where it was branched). NOTE:
- repos root has no copyfrom info. In this case None is returned.
-
- Returns the:
- - source file or directory from which the copy was made
- - revision from which that source was copied
- - revision in which the copy was committed
- """
- repos_path = PathIdentifier.from_target(target).repo_relative_path
- for chg in SvnLogParser(launchsvn('log -v --xml --stop-on-copy "%s"'
- % target, split_lines=False)):
- for p in chg.paths():
- if p.action() == 'A' and p.pathid() == repos_path:
- # These values will be None if the corresponding elements are
- # not found in the log.
- return p.copyfrom_pathid(), p.copyfrom_rev(), chg.revision()
- return None,None,None
-
-def get_latest_rev(url):
- """Get the latest revision of the repository of which URL is part."""
- try:
- info = get_svninfo(url)
- if not info.has_key("Revision"):
- error("Not a valid URL: %s" % url)
- return info["Revision"]
- except LaunchError:
- # Alternative method for latest revision checking (for svn < 1.2)
- report('checking latest revision of "%s"' % url)
- L = launchsvn('proplist --revprop -r HEAD "%s"' % opts["source-url"])[0]
- rev = re.search("revision (\d+)", L).group(1)
- report('latest revision of "%s" is %s' % (url, rev))
- return rev
-
-def get_created_rev(url):
- """Lookup the revision at which the path identified by the
- provided URL was first created."""
- oldest_rev = -1
- report('determining oldest revision for URL "%s"' % url)
- ### TODO: Refactor this to use a modified RevisionLog class.
- lines = None
- cmd = "log -r1:HEAD --stop-on-copy -q " + url
- try:
- lines = launchsvn(cmd + " --limit=1")
- except LaunchError:
- # Assume that --limit isn't supported by the installed 'svn'.
- lines = launchsvn(cmd)
- if lines and len(lines) > 1:
- i = lines[1].find(" ")
- if i != -1:
- oldest_rev = int(lines[1][1:i])
- if oldest_rev == -1:
- error('unable to determine oldest revision for URL "%s"' % url)
- return oldest_rev
-
-def get_commit_log(url, revnum):
- """Return the log message for a specific integer revision
- number."""
- out = launchsvn("log --incremental -r%d %s" % (revnum, url))
- return recode_stdout_to_file("".join(out[1:]))
-
-def construct_merged_log_message(url, revnums):
- """Return a commit log message containing all the commit messages
- in the specified revisions at the given URL. The separator used
- in this log message is determined by searching for the longest
- svnmerge separator existing in the commit log messages and
- extending it by one more separator. This results in a new commit
- log message that is clearer in describing merges that contain
- other merges. Trailing newlines are removed from the embedded
- log messages."""
- messages = ['']
- longest_sep = ''
- for r in revnums.sorted():
- message = get_commit_log(url, r)
- if message:
- message = re.sub(r'(\r\n|\r|\n)', "\n", message)
- message = rstrip(message, "\n") + "\n"
- messages.append(prefix_lines(LOG_LINE_PREFIX, message))
- for match in LOG_SEPARATOR_RE.findall(message):
- sep = match[1]
- if len(sep) > len(longest_sep):
- longest_sep = sep
-
- longest_sep += LOG_SEPARATOR + "\n"
- messages.append('')
- return longest_sep.join(messages)
-
-def get_default_source(branch_target, branch_props):
- """Return the default source for branch_target (given its branch_props).
- Error out if there is ambiguity."""
- if not branch_props:
- error("no integration info available")
-
- props = branch_props.copy()
- pathid = PathIdentifier.from_target(branch_target)
-
- # To make bidirectional merges easier, find the target's
- # repository local path so it can be removed from the list of
- # possible integration sources.
- if props.has_key(pathid):
- del props[pathid]
-
- if len(props) > 1:
- err_msg = "multiple sources found. "
- err_msg += "Explicit source argument (-S/--source) required.\n"
- err_msg += "The merge sources available are:"
- for prop in props:
- err_msg += "\n " + str(prop)
- error(err_msg)
-
- return props.keys()[0]
-
-def should_find_reflected(branch_dir):
- should_find_reflected = opts["bidirectional"]
-
- # If the source has integration info for the target, set find_reflected
- # even if --bidirectional wasn't specified
- if not should_find_reflected:
- source_props = get_merge_props(opts["source-url"])
- should_find_reflected = source_props.has_key(PathIdentifier.from_target(branch_dir))
-
- return should_find_reflected
-
-def analyze_revs(target_pathid, url, begin=1, end=None,
- find_reflected=False):
- """For the source of the merges in the source URL being merged into
- target_pathid, analyze the revisions in the interval begin-end (which
- defaults to 1-HEAD), to find out which revisions are changes in
- the url, which are changes elsewhere (so-called 'phantom'
- revisions), optionally which are reflected changes (to avoid
- conflicts that can occur when doing bidirectional merging between
- branches), and which revisions initialize merge tracking against other
- branches. Return a tuple of four RevisionSet's:
- (real_revs, phantom_revs, reflected_revs, initialized_revs).
-
- NOTE: To maximize speed, if "end" is not provided, the function is
- not able to find phantom revisions following the last real
- revision in the URL.
- """
-
- begin = str(begin)
- if end is None:
- end = "HEAD"
- else:
- end = str(end)
- if long(begin) > long(end):
- return RevisionSet(""), RevisionSet(""), \
- RevisionSet(""), RevisionSet("")
-
- logs[url] = RevisionLog(url, begin, end, find_reflected)
- revs = RevisionSet(logs[url].revs)
-
- if end == "HEAD":
- # If end is not provided, we do not know which is the latest revision
- # in the repository. So return the phantom revision set only up to
- # the latest known revision.
- end = str(list(revs)[-1])
-
- phantom_revs = RevisionSet("%s-%s" % (begin, end)) - revs
-
- if find_reflected:
- reflected_revs = logs[url].merge_metadata().changed_revs(target_pathid)
- reflected_revs += logs[url].block_metadata().changed_revs(target_pathid)
- else:
- reflected_revs = []
-
- initialized_revs = RevisionSet(logs[url].merge_metadata().initialized_revs())
- reflected_revs = RevisionSet(reflected_revs)
-
- return revs, phantom_revs, reflected_revs, initialized_revs
-
-def analyze_source_revs(branch_target, source_url, **kwargs):
- """For the given branch and source, extract the real and phantom
- source revisions."""
- branch_url = target_to_url(branch_target)
- branch_pathid = PathIdentifier.from_target(branch_target)
-
- # Extract the latest repository revision from the URL of the branch
- # directory (which is already cached at this point).
- end_rev = get_latest_rev(source_url)
-
- # Calculate the base of analysis. If there is a "1-XX" interval in the
- # merged_revs, we do not need to check those.
- base = 1
- r = opts["merged-revs"].normalized()
- if r and r[0][0] == 1:
- base = r[0][1] + 1
-
- # See if the user filtered the revision set. If so, we are not
- # interested in something outside that range.
- if opts["revision"]:
- revs = RevisionSet(opts["revision"]).sorted()
- if base < revs[0]:
- base = revs[0]
- if end_rev > revs[-1]:
- end_rev = revs[-1]
-
- return analyze_revs(branch_pathid, source_url, base, end_rev, **kwargs)
-
-def minimal_merge_intervals(revs, phantom_revs):
- """Produce the smallest number of intervals suitable for merging. revs
- is the RevisionSet which we want to merge, and phantom_revs are phantom
- revisions which can be used to concatenate intervals, thus minimizing the
- number of operations."""
- revnums = revs.normalized()
- ret = []
-
- cur = revnums.pop()
- while revnums:
- next = revnums.pop()
- assert next[1] < cur[0] # otherwise it is not ordered
- assert cur[0] - next[1] > 1 # otherwise it is not normalized
- for i in range(next[1]+1, cur[0]):
- if i not in phantom_revs:
- ret.append(cur)
- cur = next
- break
- else:
- cur = (next[0], cur[1])
-
- ret.append(cur)
- ret.reverse()
- return ret
-
-def display_revisions(revs, display_style, revisions_msg, source_url):
- """Show REVS as dictated by DISPLAY_STYLE, either numerically, in
- log format, or as diffs. When displaying revisions numerically,
- prefix output with REVISIONS_MSG when in verbose mode. Otherwise,
- request logs or diffs using SOURCE_URL."""
- if display_style == "revisions":
- if revs:
- report(revisions_msg)
- print revs
- elif display_style == "logs":
- for start,end in revs.normalized():
- svn_command('log --incremental -v -r %d:%d %s' % \
- (start, end, source_url))
- elif display_style in ("diffs", "summarize"):
- if display_style == 'summarize':
- summarize = '--summarize '
- else:
- summarize = ''
-
- for start, end in revs.normalized():
- print
- if start == end:
- print "%s: changes in revision %d follow" % (NAME, start)
- else:
- print "%s: changes in revisions %d-%d follow" % (NAME,
- start, end)
- print
-
- # Note: the starting revision number to 'svn diff' is
- # NOT inclusive so we have to subtract one from ${START}.
- svn_command("diff -r %d:%d %s %s" % (start - 1, end, summarize,
- source_url))
- else:
- assert False, "unhandled display style: %s" % display_style
-
-def action_init(target_dir, target_props):
- """Initialize for merges."""
- # Check that directory is ready for being modified
- check_dir_clean(target_dir)
-
- target_pathid = PathIdentifier.from_target(target_dir)
- source_pathid = opts['source-pathid']
- if source_pathid == target_pathid:
- error("cannot init integration source path '%s'\nIts path identifier does not "
- "differ from the path identifier of the current directory, '%s'."
- % (source_pathid, target_pathid))
-
- source_url = opts['source-url']
-
- # If the user hasn't specified the revisions to use, see if the
- # "source" is a copy from the current tree and if so, we can use
- # the version data obtained from it.
- revision_range = opts["revision"]
- if not revision_range:
- # If source was originally copied from target, and we are merging
- # changes from source to target (the copy target is the merge source,
- # and the copy source is the merge target), then we want to mark as
- # integrated up to the rev in which the copy was committed which
- # created the merge source:
- cf_source, cf_rev, copy_committed_in_rev = get_copyfrom(source_url)
-
- cf_pathid = None
- if cf_source:
- cf_url = get_repo_root(source_url) + cf_source
- if is_url(cf_url) and check_url(cf_url):
- cf_pathid = PathIdentifier.from_target(cf_url)
-
- if target_pathid == cf_pathid:
- report('the source "%s" was copied from "%s" in rev %s and committed in rev %s' %
- (source_url, target_dir, cf_rev, copy_committed_in_rev))
- revision_range = "1-" + str(copy_committed_in_rev)
-
- if not revision_range:
- # If the reverse is true: copy source is the merge source, and
- # the copy target is the merge target, then we want to mark as
- # integrated up to the specific rev of the merge target from
- # which the merge source was copied. (Longer discussion at:
- # http://subversion.tigris.org/issues/show_bug.cgi?id=2810 )
- cf_source, cf_rev, copy_committed_in_rev = get_copyfrom(target_dir)
-
- cf_pathid = None
- if cf_source:
- cf_url = get_repo_root(target_dir) + cf_source
- if is_url(cf_url) and check_url(cf_url):
- cf_pathid = PathIdentifier.from_target(cf_url)
-
- source_pathid = PathIdentifier.from_target(source_url)
- if source_pathid == cf_pathid:
- report('the target "%s" was copied the source "%s" in rev %s and committed in rev %s' %
- (target_dir, source_url, cf_rev, copy_committed_in_rev))
- revision_range = "1-" + cf_rev
-
- # When neither the merge source nor target is a copy of the other, and
- # the user did not specify a revision range, then choose a default which is
- # the current revision; saying, in effect, "everything has been merged, so
- # mark as integrated up to the latest rev on source url).
- if not revision_range:
- revision_range = "1-" + get_latest_rev(source_url)
-
- revs = RevisionSet(revision_range)
-
- report('marking "%s" as already containing revisions "%s" of "%s"' %
- (target_dir, revs, source_url))
-
- revs = str(revs)
- # If the local svnmerge-integrated property already has an entry
- # for the source-pathid, simply error out.
- if not opts["force"] and target_props.has_key(source_pathid):
- error('Repository-relative path %s has already been initialized at %s\n'
- 'Use --force to re-initialize' % (source_pathid, target_dir))
- # set the pathid's external_form based on the user's options
- source_pathid.external_form = source_pathid.format(opts['location-type'])
-
- revs = str(revs)
- target_props[source_pathid] = revs
-
- # Set property
- set_merge_props(target_dir, target_props)
-
- # Write out commit message if desired
- if opts["commit-file"]:
- f = open(opts["commit-file"], "w")
- print >>f, 'Initialized merge tracking via "%s" with revisions "%s" from ' \
- % (NAME, revs)
- print >>f, '%s' % source_url
- f.close()
- report('wrote commit message to "%s"' % opts["commit-file"])
-
-def action_avail(branch_dir, branch_props):
- """Show commits available for merges."""
- source_revs, phantom_revs, reflected_revs, initialized_revs = \
- analyze_source_revs(branch_dir, opts["source-url"],
- find_reflected=
- should_find_reflected(branch_dir))
- report('skipping phantom revisions: %s' % phantom_revs)
- if reflected_revs:
- report('skipping reflected revisions: %s' % reflected_revs)
- report('skipping initialized revisions: %s' % initialized_revs)
-
- blocked_revs = get_blocked_revs(branch_dir, opts["source-pathid"])
- avail_revs = source_revs - opts["merged-revs"] - blocked_revs - \
- reflected_revs - initialized_revs
-
- # Compose the set of revisions to show
- revs = RevisionSet("")
- report_msg = "revisions available to be merged are:"
- if "avail" in opts["avail-showwhat"]:
- revs |= avail_revs
- if "blocked" in opts["avail-showwhat"]:
- revs |= blocked_revs
- report_msg = "revisions blocked are:"
-
- # Limit to revisions specified by -r (if any)
- if opts["revision"]:
- revs = revs & RevisionSet(opts["revision"])
-
- display_revisions(revs, opts["avail-display"],
- report_msg,
- opts["source-url"])
-
-def action_integrated(branch_dir, branch_props):
- """Show change sets already merged. This set of revisions is
- calculated from taking svnmerge-integrated property from the
- branch, and subtracting any revision older than the branch
- creation revision."""
- # Extract the integration info for the branch_dir
- branch_props = get_merge_props(branch_dir)
- revs = merge_props_to_revision_set(branch_props, opts["source-pathid"])
-
- # Lookup the oldest revision on the branch path.
- oldest_src_rev = get_created_rev(opts["source-url"])
-
- # Subtract any revisions which pre-date the branch.
- report("subtracting revisions which pre-date the source URL (%d)" %
- oldest_src_rev)
- revs = revs - RevisionSet(range(1, oldest_src_rev))
-
- # Limit to revisions specified by -r (if any)
- if opts["revision"]:
- revs = revs & RevisionSet(opts["revision"])
-
- display_revisions(revs, opts["integrated-display"],
- "revisions already integrated are:", opts["source-url"])
-
-def action_merge(branch_dir, branch_props):
- """Record merge meta data, and do the actual merge (if not
- requested otherwise via --record-only)."""
- # Check branch directory is ready for being modified
- check_dir_clean(branch_dir)
-
- source_revs, phantom_revs, reflected_revs, initialized_revs = \
- analyze_source_revs(branch_dir, opts["source-url"],
- find_reflected=
- should_find_reflected(branch_dir))
-
- if opts["revision"]:
- revs = RevisionSet(opts["revision"])
- else:
- revs = source_revs
-
- blocked_revs = get_blocked_revs(branch_dir, opts["source-pathid"])
- merged_revs = opts["merged-revs"]
-
- # Show what we're doing
- if opts["verbose"]: # just to avoid useless calculations
- if merged_revs & revs:
- report('"%s" already contains revisions %s' % (branch_dir,
- merged_revs & revs))
- if phantom_revs:
- report('memorizing phantom revision(s): %s' % phantom_revs)
- if reflected_revs:
- report('memorizing reflected revision(s): %s' % reflected_revs)
- if blocked_revs & revs:
- report('skipping blocked revisions(s): %s' % (blocked_revs & revs))
- if initialized_revs:
- report('skipping initialized revision(s): %s' % initialized_revs)
-
- # Compute final merge set.
- revs = revs - merged_revs - blocked_revs - reflected_revs - \
- phantom_revs - initialized_revs
- if not revs:
- report('no revisions to merge, exiting')
- return
-
- # When manually marking revisions as merged, we only update the
- # integration meta data, and don't perform an actual merge.
- record_only = opts["record-only"]
-
- if record_only:
- report('recording merge of revision(s) %s from "%s"' %
- (revs, opts["source-url"]))
- else:
- report('merging in revision(s) %s from "%s"' %
- (revs, opts["source-url"]))
-
- # Do the merge(s). Note: the starting revision number to 'svn merge'
- # is NOT inclusive so we have to subtract one from start.
- # We try to keep the number of merge operations as low as possible,
- # because it is faster and reduces the number of conflicts.
- old_block_props = get_block_props(branch_dir)
- merge_metadata = logs[opts["source-url"]].merge_metadata()
- block_metadata = logs[opts["source-url"]].block_metadata()
- for start,end in minimal_merge_intervals(revs, phantom_revs):
- if not record_only:
- # Preset merge/blocked properties to the source value at
- # the start rev to avoid spurious property conflicts
- set_merge_props(branch_dir, merge_metadata.get(start - 1))
- set_block_props(branch_dir, block_metadata.get(start - 1))
- # Do the merge
- svn_command("merge --force -r %d:%d %s %s" % \
- (start - 1, end, opts["source-url"], branch_dir))
- # TODO: to support graph merging, add logic to merge the property
- # meta-data manually
-
- # Update the set of merged revisions.
- merged_revs = merged_revs | revs | reflected_revs | phantom_revs | initialized_revs
- branch_props[opts["source-pathid"]] = str(merged_revs)
- set_merge_props(branch_dir, branch_props)
- # Reset the blocked revs
- set_block_props(branch_dir, old_block_props)
-
- # Write out commit message if desired
- if opts["commit-file"]:
- f = open(opts["commit-file"], "w")
- if record_only:
- print >>f, 'Recorded merge of revisions %s via %s from ' % \
- (revs, NAME)
- else:
- print >>f, 'Merged revisions %s via %s from ' % \
- (revs, NAME)
- print >>f, '%s' % opts["source-url"]
- if opts["commit-verbose"]:
- print >>f
- print >>f, construct_merged_log_message(opts["source-url"], revs),
-
- f.close()
- report('wrote commit message to "%s"' % opts["commit-file"])
-
-def action_block(branch_dir, branch_props):
- """Block revisions."""
- # Check branch directory is ready for being modified
- check_dir_clean(branch_dir)
-
- source_revs, phantom_revs, reflected_revs, initialized_revs = \
- analyze_source_revs(branch_dir, opts["source-url"])
- revs_to_block = source_revs - opts["merged-revs"]
-
- # Limit to revisions specified by -r (if any)
- if opts["revision"]:
- revs_to_block = RevisionSet(opts["revision"]) & revs_to_block
-
- if not revs_to_block:
- error('no available revisions to block')
-
- # Change blocked information
- blocked_revs = get_blocked_revs(branch_dir, opts["source-pathid"])
- blocked_revs = blocked_revs | revs_to_block
- set_blocked_revs(branch_dir, opts["source-pathid"], blocked_revs)
-
- # Write out commit message if desired
- if opts["commit-file"]:
- f = open(opts["commit-file"], "w")
- print >>f, 'Blocked revisions %s via %s' % (revs_to_block, NAME)
- if opts["commit-verbose"]:
- print >>f
- print >>f, construct_merged_log_message(opts["source-url"],
- revs_to_block),
-
- f.close()
- report('wrote commit message to "%s"' % opts["commit-file"])
-
-def action_unblock(branch_dir, branch_props):
- """Unblock revisions."""
- # Check branch directory is ready for being modified
- check_dir_clean(branch_dir)
-
- blocked_revs = get_blocked_revs(branch_dir, opts["source-pathid"])
- revs_to_unblock = blocked_revs
-
- # Limit to revisions specified by -r (if any)
- if opts["revision"]:
- revs_to_unblock = revs_to_unblock & RevisionSet(opts["revision"])
-
- if not revs_to_unblock:
- error('no available revisions to unblock')
-
- # Change blocked information
- blocked_revs = blocked_revs - revs_to_unblock
- set_blocked_revs(branch_dir, opts["source-pathid"], blocked_revs)
-
- # Write out commit message if desired
- if opts["commit-file"]:
- f = open(opts["commit-file"], "w")
- print >>f, 'Unblocked revisions %s via %s' % (revs_to_unblock, NAME)
- if opts["commit-verbose"]:
- print >>f
- print >>f, construct_merged_log_message(opts["source-url"],
- revs_to_unblock),
- f.close()
- report('wrote commit message to "%s"' % opts["commit-file"])
-
-def action_rollback(branch_dir, branch_props):
- """Rollback previously integrated revisions."""
-
- # Make sure the revision arguments are present
- if not opts["revision"]:
- error("The '-r' option is mandatory for rollback")
-
- # Check branch directory is ready for being modified
- check_dir_clean(branch_dir)
-
- # Extract the integration info for the branch_dir
- branch_props = get_merge_props(branch_dir)
- # Get the list of all revisions already merged into this source-pathid.
- merged_revs = merge_props_to_revision_set(branch_props,
- opts["source-pathid"])
-
- # At which revision was the src created?
- oldest_src_rev = get_created_rev(opts["source-url"])
- src_pre_exist_range = RevisionSet("1-%d" % oldest_src_rev)
-
- # Limit to revisions specified by -r (if any)
- revs = merged_revs & RevisionSet(opts["revision"])
-
- # make sure there's some revision to rollback
- if not revs:
- report("Nothing to rollback in revision range r%s" % opts["revision"])
- return
-
- # If even one specified revision lies outside the lifetime of the
- # merge source, error out.
- if revs & src_pre_exist_range:
- err_str = "Specified revision range falls out of the rollback range.\n"
- err_str += "%s was created at r%d" % (opts["source-pathid"],
- oldest_src_rev)
- error(err_str)
-
- record_only = opts["record-only"]
-
- if record_only:
- report('recording rollback of revision(s) %s from "%s"' %
- (revs, opts["source-url"]))
- else:
- report('rollback of revision(s) %s from "%s"' %
- (revs, opts["source-url"]))
-
- # Do the reverse merge(s). Note: the starting revision number
- # to 'svn merge' is NOT inclusive so we have to subtract one from start.
- # We try to keep the number of merge operations as low as possible,
- # because it is faster and reduces the number of conflicts.
- rollback_intervals = minimal_merge_intervals(revs, [])
- # rollback in the reverse order of merge
- rollback_intervals.reverse()
- for start, end in rollback_intervals:
- if not record_only:
- # Do the merge
- svn_command("merge --force -r %d:%d %s %s" % \
- (end, start - 1, opts["source-url"], branch_dir))
-
- # Write out commit message if desired
- # calculate the phantom revs first
- if opts["commit-file"]:
- f = open(opts["commit-file"], "w")
- if record_only:
- print >>f, 'Recorded rollback of revisions %s via %s from ' % \
- (revs , NAME)
- else:
- print >>f, 'Rolled back revisions %s via %s from ' % \
- (revs , NAME)
- print >>f, '%s' % opts["source-url"]
-
- f.close()
- report('wrote commit message to "%s"' % opts["commit-file"])
-
- # Update the set of merged revisions.
- merged_revs = merged_revs - revs
- branch_props[opts["source-pathid"]] = str(merged_revs)
- set_merge_props(branch_dir, branch_props)
-
-def action_uninit(branch_dir, branch_props):
- """Uninit SOURCE URL."""
- # Check branch directory is ready for being modified
- check_dir_clean(branch_dir)
-
- # If the source-pathid does not have an entry in the svnmerge-integrated
- # property, simply error out.
- if not branch_props.has_key(opts["source-pathid"]):
- error('Repository-relative path "%s" does not contain merge '
- 'tracking information for "%s"' \
- % (opts["source-pathid"], branch_dir))
-
- del branch_props[opts["source-pathid"]]
-
- # Set merge property with the selected source deleted
- set_merge_props(branch_dir, branch_props)
-
- # Set blocked revisions for the selected source to None
- set_blocked_revs(branch_dir, opts["source-pathid"], None)
-
- # Write out commit message if desired
- if opts["commit-file"]:
- f = open(opts["commit-file"], "w")
- print >>f, 'Removed merge tracking for "%s" for ' % NAME
- print >>f, '%s' % opts["source-url"]
- f.close()
- report('wrote commit message to "%s"' % opts["commit-file"])
-
-###############################################################################
-# Command line parsing -- options and commands management
-###############################################################################
-
-class OptBase:
- def __init__(self, *args, **kwargs):
- self.help = kwargs["help"]
- del kwargs["help"]
- self.lflags = []
- self.sflags = []
- for a in args:
- if a.startswith("--"): self.lflags.append(a)
- elif a.startswith("-"): self.sflags.append(a)
- else:
- raise TypeError, "invalid flag name: %s" % a
- if kwargs.has_key("dest"):
- self.dest = kwargs["dest"]
- del kwargs["dest"]
- else:
- if not self.lflags:
- raise TypeError, "cannot deduce dest name without long options"
- self.dest = self.lflags[0][2:]
- if kwargs:
- raise TypeError, "invalid keyword arguments: %r" % kwargs.keys()
- def repr_flags(self):
- f = self.sflags + self.lflags
- r = f[0]
- for fl in f[1:]:
- r += " [%s]" % fl
- return r
-
-class Option(OptBase):
- def __init__(self, *args, **kwargs):
- self.default = kwargs.setdefault("default", 0)
- del kwargs["default"]
- self.value = kwargs.setdefault("value", None)
- del kwargs["value"]
- OptBase.__init__(self, *args, **kwargs)
- def apply(self, state, value):
- assert value == ""
- if self.value is not None:
- state[self.dest] = self.value
- else:
- state[self.dest] += 1
-
-class OptionArg(OptBase):
- def __init__(self, *args, **kwargs):
- self.default = kwargs["default"]
- del kwargs["default"]
- self.metavar = kwargs.setdefault("metavar", None)
- del kwargs["metavar"]
- OptBase.__init__(self, *args, **kwargs)
-
- if self.metavar is None:
- if self.dest is not None:
- self.metavar = self.dest.upper()
- else:
- self.metavar = "arg"
- if self.default:
- self.help += " (default: %s)" % self.default
- def apply(self, state, value):
- assert value is not None
- state[self.dest] = value
- def repr_flags(self):
- r = OptBase.repr_flags(self)
- return r + " " + self.metavar
-
-class CommandOpts:
- class Cmd:
- def __init__(self, *args):
- self.name, self.func, self.usage, self.help, self.opts = args
- def short_help(self):
- return self.help.split(".")[0]
- def __str__(self):
- return self.name
- def __call__(self, *args, **kwargs):
- return self.func(*args, **kwargs)
-
- def __init__(self, global_opts, common_opts, command_table, version=None):
- self.progname = NAME
- self.version = version.replace("%prog", self.progname)
- self.cwidth = console_width() - 2
- self.ctable = command_table.copy()
- self.gopts = global_opts[:]
- self.copts = common_opts[:]
- self._add_builtins()
- for k in self.ctable.keys():
- cmd = self.Cmd(k, *self.ctable[k])
- opts = []
- for o in cmd.opts:
- if isinstance(o, types.StringType) or \
- isinstance(o, types.UnicodeType):
- o = self._find_common(o)
- opts.append(o)
- cmd.opts = opts
- self.ctable[k] = cmd
-
- def _add_builtins(self):
- self.gopts.append(
- Option("-h", "--help", help="show help for this command and exit"))
- if self.version is not None:
- self.gopts.append(
- Option("-V", "--version", help="show version info and exit"))
- self.ctable["help"] = (self._cmd_help,
- "help [COMMAND]",
- "Display help for a specific command. If COMMAND is omitted, "
- "display brief command description.",
- [])
-
- def _cmd_help(self, cmd=None, *args):
- if args:
- self.error("wrong number of arguments", "help")
- if cmd is not None:
- cmd = self._command(cmd)
- self.print_command_help(cmd)
- else:
- self.print_command_list()
-
- def _paragraph(self, text, width=78):
- chunks = re.split("\s+", text.strip())
- chunks.reverse()
- lines = []
- while chunks:
- L = chunks.pop()
- while chunks and len(L) + len(chunks[-1]) + 1 <= width:
- L += " " + chunks.pop()
- lines.append(L)
- return lines
-
- def _paragraphs(self, text, *args, **kwargs):
- pars = text.split("\n\n")
- lines = self._paragraph(pars[0], *args, **kwargs)
- for p in pars[1:]:
- lines.append("")
- lines.extend(self._paragraph(p, *args, **kwargs))
- return lines
-
- def _print_wrapped(self, text, indent=0):
- text = self._paragraphs(text, self.cwidth - indent)
- print text.pop(0)
- for t in text:
- print " " * indent + t
-
- def _find_common(self, fl):
- for o in self.copts:
- if fl in o.lflags+o.sflags:
- return o
- assert False, fl
-
- def _compute_flags(self, opts, check_conflicts=True):
- back = {}
- sfl = ""
- lfl = []
- for o in opts:
- sapp = lapp = ""
- if isinstance(o, OptionArg):
- sapp, lapp = ":", "="
- for s in o.sflags:
- if check_conflicts and back.has_key(s):
- raise RuntimeError, "option conflict: %s" % s
- back[s] = o
- sfl += s[1:] + sapp
- for l in o.lflags:
- if check_conflicts and back.has_key(l):
- raise RuntimeError, "option conflict: %s" % l
- back[l] = o
- lfl.append(l[2:] + lapp)
- return sfl, lfl, back
-
- def _extract_command(self, args):
- """
- Try to extract the command name from the argument list. This is
- non-trivial because we want to allow command-specific options even
- before the command itself.
- """
- opts = self.gopts[:]
- for cmd in self.ctable.values():
- opts.extend(cmd.opts)
- sfl, lfl, _ = self._compute_flags(opts, check_conflicts=False)
-
- lopts,largs = getopt.getopt(args, sfl, lfl)
- if not largs:
- return None
- return self._command(largs[0])
-
- def _fancy_getopt(self, args, opts, state=None):
- if state is None:
- state= {}
- for o in opts:
- if not state.has_key(o.dest):
- state[o.dest] = o.default
-
- sfl, lfl, back = self._compute_flags(opts)
- try:
- lopts,args = getopt.gnu_getopt(args, sfl, lfl)
- except AttributeError:
- # Before Python 2.3, there was no gnu_getopt support.
- # So we can't parse intermixed positional arguments
- # and options.
- lopts,args = getopt.getopt(args, sfl, lfl)
-
- for o,v in lopts:
- back[o].apply(state, v)
- return state, args
-
- def _command(self, cmd):
- if not self.ctable.has_key(cmd):
- self.error("unknown command: '%s'" % cmd)
- return self.ctable[cmd]
-
- def parse(self, args):
- if not args:
- self.print_small_help()
- sys.exit(0)
-
- cmd = None
- try:
- cmd = self._extract_command(args)
- opts = self.gopts[:]
- if cmd:
- opts.extend(cmd.opts)
- args.remove(cmd.name)
- state, args = self._fancy_getopt(args, opts)
- except getopt.GetoptError, e:
- self.error(e, cmd)
-
- # Handle builtins
- if self.version is not None and state["version"]:
- self.print_version()
- sys.exit(0)
- if state["help"]: # special case for --help
- if cmd:
- self.print_command_help(cmd)
- sys.exit(0)
- cmd = self.ctable["help"]
- else:
- if cmd is None:
- self.error("command argument required")
- if str(cmd) == "help":
- cmd(*args)
- sys.exit(0)
- return cmd, args, state
-
- def error(self, s, cmd=None):
- print >>sys.stderr, "%s: %s" % (self.progname, s)
- if cmd is not None:
- self.print_command_help(cmd)
- else:
- self.print_small_help()
- sys.exit(1)
- def print_small_help(self):
- print "Type '%s help' for usage" % self.progname
- def print_usage_line(self):
- print "usage: %s <subcommand> [options...] [args...]\n" % self.progname
- def print_command_list(self):
- print "Available commands (use '%s help COMMAND' for more details):\n" \
- % self.progname
- cmds = self.ctable.keys()
- cmds.sort()
- indent = max(map(len, cmds))
- for c in cmds:
- h = self.ctable[c].short_help()
- print " %-*s " % (indent, c),
- self._print_wrapped(h, indent+6)
- def print_command_help(self, cmd):
- cmd = self.ctable[str(cmd)]
- print 'usage: %s %s\n' % (self.progname, cmd.usage)
- self._print_wrapped(cmd.help)
- def print_opts(opts, self=self):
- if not opts: return
- flags = [o.repr_flags() for o in opts]
- indent = max(map(len, flags))
- for f,o in zip(flags, opts):
- print " %-*s :" % (indent, f),
- self._print_wrapped(o.help, indent+5)
- print '\nCommand options:'
- print_opts(cmd.opts)
- print '\nGlobal options:'
- print_opts(self.gopts)
-
- def print_version(self):
- print self.version
-
-###############################################################################
-# Options and Commands description
-###############################################################################
-
-global_opts = [
- Option("-F", "--force",
- help="force operation even if the working copy is not clean, or "
- "there are pending updates"),
- Option("-n", "--dry-run",
- help="don't actually change anything, just pretend; "
- "implies --show-changes"),
- Option("-s", "--show-changes",
- help="show subversion commands that make changes"),
- Option("-v", "--verbose",
- help="verbose mode: output more information about progress"),
- OptionArg("-u", "--username",
- default=None,
- help="invoke subversion commands with the supplied username"),
- OptionArg("-p", "--password",
- default=None,
- help="invoke subversion commands with the supplied password"),
- OptionArg("-c", "--config-dir", metavar="DIR",
- default=None,
- help="cause subversion commands to consult runtime config directory DIR"),
-]
-
-common_opts = [
- Option("-b", "--bidirectional",
- value=True,
- default=False,
- help="remove reflected and initialized revisions from merge candidates. "
- "Not required but may be specified to speed things up slightly"),
- OptionArg("-f", "--commit-file", metavar="FILE",
- default="svnmerge-commit-message.txt",
- help="set the name of the file where the suggested log message "
- "is written to"),
- Option("-M", "--record-only",
- value=True,
- default=False,
- help="do not perform an actual merge of the changes, yet record "
- "that a merge happened"),
- OptionArg("-r", "--revision",
- metavar="REVLIST",
- default="",
- help="specify a revision list, consisting of revision numbers "
- 'and ranges separated by commas, e.g., "534,537-539,540"'),
- OptionArg("-S", "--source", "--head",
- default=None,
- help="specify a merge source for this branch. It can be either "
- "a working directory path, a full URL, or an unambiguous "
- "substring of one of the locations for which merge tracking was "
- "already initialized. Needed only to disambiguate in case of "
- "multiple merge sources"),
-]
-
-command_table = {
- "init": (action_init,
- "init [OPTION...] [SOURCE]",
- """Initialize merge tracking from SOURCE on the current working
- directory.
-
- If SOURCE is specified, all the revisions in SOURCE are marked as already
- merged; if this is not correct, you can use --revision to specify the
- exact list of already-merged revisions.
-
- If SOURCE is omitted, then it is computed from the "svn cp" history of the
- current working directory (searching back for the branch point); in this
- case, %s assumes that no revision has been integrated yet since
- the branch point (unless you teach it with --revision).""" % NAME,
- [
- "-f", "-r", # import common opts
- OptionArg("-L", "--location-type",
- dest="location-type",
- default="path",
- help="Use this type of location identifier in the new " +
- "Subversion properties; 'uuid', 'url', or 'path' " +
- "(default)"),
- ]),
-
- "avail": (action_avail,
- "avail [OPTION...] [PATH]",
- """Show unmerged revisions available for PATH as a revision list.
- If --revision is given, the revisions shown will be limited to those
- also specified in the option.
-
- When svnmerge is used to bidirectionally merge changes between a
- branch and its source, it is necessary to not merge the same changes
- forth and back: e.g., if you committed a merge of a certain
- revision of the branch into the source, you do not want that commit
- to appear as available to merged into the branch (as the code
- originated in the branch itself!). svnmerge will automatically
- exclude these so-called "reflected" revisions.""",
- [
- Option("-A", "--all",
- dest="avail-showwhat",
- value=["blocked", "avail"],
- default=["avail"],
- help="show both available and blocked revisions (aka ignore "
- "blocked revisions)"),
- "-b",
- Option("-B", "--blocked",
- dest="avail-showwhat",
- value=["blocked"],
- help="show the blocked revision list (see '%s block')" % NAME),
- Option("-d", "--diff",
- dest="avail-display",
- value="diffs",
- default="revisions",
- help="show corresponding diff instead of revision list"),
- Option("--summarize",
- dest="avail-display",
- value="summarize",
- help="show summarized diff instead of revision list"),
- Option("-l", "--log",
- dest="avail-display",
- value="logs",
- help="show corresponding log history instead of revision list"),
- "-r",
- "-S",
- ]),
-
- "integrated": (action_integrated,
- "integrated [OPTION...] [PATH]",
- """Show merged revisions available for PATH as a revision list.
- If --revision is given, the revisions shown will be limited to
- those also specified in the option.""",
- [
- Option("-d", "--diff",
- dest="integrated-display",
- value="diffs",
- default="revisions",
- help="show corresponding diff instead of revision list"),
- Option("-l", "--log",
- dest="integrated-display",
- value="logs",
- help="show corresponding log history instead of revision list"),
- "-r",
- "-S",
- ]),
-
- "rollback": (action_rollback,
- "rollback [OPTION...] [PATH]",
- """Rollback previously merged in revisions from PATH. The
- --revision option is mandatory, and specifies which revisions
- will be rolled back. Only the previously integrated merges
- will be rolled back.
-
- When manually rolling back changes, --record-only can be used to
- instruct %s that a manual rollback of a certain revision
- already happened, so that it can record it and offer that
- revision for merge henceforth.""" % (NAME),
- [
- "-f", "-r", "-S", "-M", # import common opts
- ]),
-
- "merge": (action_merge,
- "merge [OPTION...] [PATH]",
- """Merge in revisions into PATH from its source. If --revision is omitted,
- all the available revisions will be merged. In any case, already merged-in
- revisions will NOT be merged again.
-
- When svnmerge is used to bidirectionally merge changes between a
- branch and its source, it is necessary to not merge the same changes
- forth and back: e.g., if you committed a merge of a certain
- revision of the branch into the source, you do not want that commit
- to appear as available to merged into the branch (as the code
- originated in the branch itself!). svnmerge will automatically
- exclude these so-called "reflected" revisions.
-
- When manually merging changes across branches, --record-only can
- be used to instruct %s that a manual merge of a certain revision
- already happened, so that it can record it and not offer that
- revision for merge anymore. Conversely, when there are revisions
- which should not be merged, use '%s block'.""" % (NAME, NAME),
- [
- "-b", "-f", "-r", "-S", "-M", # import common opts
- ]),
-
- "block": (action_block,
- "block [OPTION...] [PATH]",
- """Block revisions within PATH so that they disappear from the available
- list. This is useful to hide revisions which will not be integrated.
- If --revision is omitted, it defaults to all the available revisions.
-
- Do not use this option to hide revisions that were manually merged
- into the branch. Instead, use '%s merge --record-only', which
- records that a merge happened (as opposed to a merge which should
- not happen).""" % NAME,
- [
- "-f", "-r", "-S", # import common opts
- ]),
-
- "unblock": (action_unblock,
- "unblock [OPTION...] [PATH]",
- """Revert the effect of '%s block'. If --revision is omitted, all the
- blocked revisions are unblocked""" % NAME,
- [
- "-f", "-r", "-S", # import common opts
- ]),
-
- "uninit": (action_uninit,
- "uninit [OPTION...] [PATH]",
- """Remove merge tracking information from PATH. It cleans any kind of merge
- tracking information (including the list of blocked revisions). If there
- are multiple sources, use --source to indicate which source you want to
- forget about.""",
- [
- "-f", "-S", # import common opts
- ]),
-}
-
-
-def main(args):
- global opts
-
- # Initialize default options
- opts = default_opts.copy()
- logs.clear()
-
- optsparser = CommandOpts(global_opts, common_opts, command_table,
- version="%%prog r%s\n modified: %s\n\n"
- "Copyright (C) 2004,2005 Awarix Inc.\n"
- "Copyright (C) 2005, Giovanni Bajo"
- % (__revision__, __date__))
-
- cmd, args, state = optsparser.parse(args)
- opts.update(state)
-
- source = opts.get("source", None)
- branch_dir = "."
-
- if str(cmd) == "init":
- if len(args) == 1:
- source = args[0]
- elif len(args) > 1:
- optsparser.error("wrong number of parameters", cmd)
- elif str(cmd) in command_table.keys():
- if len(args) == 1:
- branch_dir = args[0]
- elif len(args) > 1:
- optsparser.error("wrong number of parameters", cmd)
- else:
- assert False, "command not handled: %s" % cmd
-
- # Validate branch_dir
- if not is_wc(branch_dir):
- if str(cmd) == "avail":
- info = None
- # it should be noted here that svn info does not error exit
- # if an invalid target is specified to it (as is
- # intuitive). so the try, except code is not absolutely
- # necessary. but, I retain it to indicate the intuitive
- # handling.
- try:
- info = get_svninfo(branch_dir)
- except LaunchError:
- pass
- # test that we definitely targeted a subversion directory,
- # mirroring the purpose of the earlier is_wc() call
- if info is None or not info.has_key("Node Kind") or info["Node Kind"] != "directory":
- error('"%s" is neither a valid URL, nor a working directory' % branch_dir)
- else:
- error('"%s" is not a subversion working directory' % branch_dir)
-
- # give out some hints as to potential pathids
- PathIdentifier.hint(branch_dir)
- if source: PathIdentifier.hint(source)
-
- # Extract the integration info for the branch_dir
- branch_props = get_merge_props(branch_dir)
-
- # Calculate source_url and source_path
- report("calculate source path for the branch")
- if not source:
- if str(cmd) == "init":
- cf_source, cf_rev, copy_committed_in_rev = get_copyfrom(branch_dir)
- if not cf_source:
- error('no copyfrom info available. '
- 'Explicit source argument (-S/--source) required.')
- opts["source-url"] = get_repo_root(branch_dir) + cf_source
- opts["source-pathid"] = PathIdentifier.from_target(opts["source-url"])
-
- if not opts["revision"]:
- opts["revision"] = "1-" + cf_rev
- else:
- opts["source-pathid"] = get_default_source(branch_dir, branch_props)
- opts["source-url"] = opts["source-pathid"].get_url()
-
- assert is_pathid(opts["source-pathid"])
- assert is_url(opts["source-url"])
- else:
- # The source was given as a command line argument and is stored in
- # SOURCE. Ensure that the specified source does not end in a /,
- # otherwise it's easy to have the same source path listed more
- # than once in the integrated version properties, with and without
- # trailing /'s.
- source = rstrip(source, "/")
- if not is_wc(source) and not is_url(source):
- # Check if it is a substring of a pathid recorded
- # within the branch properties.
- found = []
- for pathid in branch_props.keys():
- if pathid.match_substring(source):
- found.append(pathid)
- if len(found) == 1:
- # (assumes pathid is a repository-relative-path)
- source_pathid = found[0]
- source = source_pathid.get_url()
- else:
- error('"%s" is neither a valid URL, nor an unambiguous '
- 'substring of a repository path, nor a working directory'
- % source)
- else:
- source_pathid = PathIdentifier.from_target(source)
-
- source_pathid = PathIdentifier.from_target(source)
- if str(cmd) == "init" and \
- source_pathid == PathIdentifier.from_target("."):
- error("cannot init integration source path '%s'\n"
- "Its repository-relative path must differ from the "
- "repository-relative path of the current directory."
- % source_pathid)
- opts["source-pathid"] = source_pathid
- opts["source-url"] = target_to_url(source)
-
- # Sanity check source_url
- assert is_url(opts["source-url"])
- # SVN does not support non-normalized URL (and we should not
- # have created them)
- assert opts["source-url"].find("/..") < 0
-
- report('source is "%s"' % opts["source-url"])
-
- # Get previously merged revisions (except when command is init)
- if str(cmd) != "init":
- opts["merged-revs"] = merge_props_to_revision_set(branch_props,
- opts["source-pathid"])
-
- # Perform the action
- cmd(branch_dir, branch_props)
-
-
-if __name__ == "__main__":
- try:
- main(sys.argv[1:])
- except LaunchError, (ret, cmd, out):
- err_msg = "command execution failed (exit code: %d)\n" % ret
- err_msg += cmd + "\n"
- err_msg += "".join(out)
- error(err_msg)
- except KeyboardInterrupt:
- # Avoid traceback on CTRL+C
- print "aborted by user"
- sys.exit(1)
diff --git a/testing/subversion/svnserve b/testing/subversion/svnserve
deleted file mode 100755
index 670fee742..000000000
--- a/testing/subversion/svnserve
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/bash
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-. /etc/conf.d/svnserve
-
-PID=`pidof -o %PPID /usr/bin/svnserve`
-case "$1" in
- start)
- stat_busy "Starting svnserve"
- if [ -z "$PID" ]; then
- if [ -n "$SVNSERVE_USER" ]; then
- su -s '/bin/sh' $SVNSERVE_USER -c "/usr/bin/svnserve -d $SVNSERVE_ARGS" &
- else
- /usr/bin/svnserve -d $SVNSERVE_ARGS &
- fi
- fi
- if [ ! -z "$PID" -o $? -gt 0 ]; then
- stat_fail
- else
- add_daemon svnserve
- stat_done
- fi
- ;;
- stop)
- stat_busy "Stopping svnserve"
- [ ! -z "$PID" ] && kill $PID &> /dev/null
- if [ $? -gt 0 ]; then
- stat_fail
- else
- rm_daemon svnserve
- stat_done
- fi
- ;;
- restart)
- $0 stop
- sleep 1
- $0 start
- ;;
- *)
- echo "usage: $0 {start|stop|restart}"
-esac
diff --git a/testing/subversion/svnserve.conf b/testing/subversion/svnserve.conf
deleted file mode 100644
index 37fb7ea10..000000000
--- a/testing/subversion/svnserve.conf
+++ /dev/null
@@ -1,7 +0,0 @@
-#
-# Parameters to be passed to svnserve
-#
-#SVNSERVE_ARGS="-r /path/to/some/repos"
-SVNSERVE_ARGS=""
-
-#SVNSERVE_USER="svn"
diff --git a/testing/syslinux/PKGBUILD b/testing/syslinux/PKGBUILD
deleted file mode 100644
index 277bf3bf6..000000000
--- a/testing/syslinux/PKGBUILD
+++ /dev/null
@@ -1,49 +0,0 @@
-# $Id: PKGBUILD 144912 2011-12-10 00:40:44Z thomas $
-# Maintainer: Thomas Bächler <thomas@archlinux.org>
-# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
-
-pkgname=syslinux
-pkgver=4.05
-pkgrel=1
-arch=('i686' 'x86_64')
-pkgdesc="Collection of boot loaders that boot from FAT, ext2/3/4 and btrfs filesystems, from CDs and via PXE"
-url="http://syslinux.zytor.com/"
-license=('GPL2')
-depends=('perl' 'glibc')
-optdepends=('perl-passwd-md5: For md5pass'
- 'perl-digest-sha1: For sha1pass'
- 'mtools: For mkdiskimage and syslinux'
- )
-makedepends=('nasm')
-backup=('boot/syslinux/syslinux.cfg')
-install=syslinux.install
-source=(http://www.kernel.org/pub/linux/utils/boot/syslinux/$pkgname-${pkgver}.tar.bz2
- syslinux-dont-build-dos-windows-targets.patch
- syslinux.cfg
- syslinux-install_update)
-md5sums=('82299242418385da1274c9479a778cb2'
- '1528c376e43f0eaccaa80d8ad1bc13b4'
- '4dc27d8ab3802f8e50f3dda28168ce6d'
- 'b5b4953c0a5a01cd16441402f6321765')
-
-build() {
- # Do not try to build syslinux with our default LDFLAGS, it will fail
- unset LDFLAGS
- cd "$srcdir"/$pkgname-${pkgver}
- # Do not try to build the Windows or DOS installers
- patch -p1 -i "$srcdir"/syslinux-dont-build-dos-windows-targets.patch
- # Fix FHS manpage path
- sed 's|/usr/man|/usr/share/man|g' -i mk/syslinux.mk
- make
-}
-
-package() {
- cd "$srcdir"/$pkgname-${pkgver}
- make INSTALLROOT="$pkgdir" AUXDIR=/usr/lib/syslinux install
-
- # Install the default configuration
- install -D -m644 "$srcdir"/syslinux.cfg "$pkgdir"/boot/syslinux/syslinux.cfg
- # Install the installation and update script
- # This script is maintained at git://gist.github.com/772138.git
- install -D -m755 "$srcdir"/syslinux-install_update "$pkgdir"/usr/sbin/syslinux-install_update
-}
diff --git a/testing/syslinux/syslinux-dont-build-dos-windows-targets.patch b/testing/syslinux/syslinux-dont-build-dos-windows-targets.patch
deleted file mode 100644
index 2b86ab828..000000000
--- a/testing/syslinux/syslinux-dont-build-dos-windows-targets.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur syslinux-4.02.orig//Makefile syslinux-4.02//Makefile
---- syslinux-4.02.orig//Makefile 2010-07-21 21:33:13.000000000 +0200
-+++ syslinux-4.02//Makefile 2010-07-22 11:14:03.325522937 +0200
-@@ -54,7 +54,7 @@
- # files that depend only on the B phase, but may have to be regenerated
- # for "make installer".
- BSUBDIRS = codepage com32 lzo core memdisk modules mbr memdump gpxe sample \
-- diag libinstaller dos win32 win64 dosutil
-+ libinstaller
- ITARGET =
- IOBJECTS = $(ITARGET) \
- utils/gethostip utils/isohybrid utils/mkdiskimage \
diff --git a/testing/syslinux/syslinux-install_update b/testing/syslinux/syslinux-install_update
deleted file mode 100644
index f7cd123e1..000000000
--- a/testing/syslinux/syslinux-install_update
+++ /dev/null
@@ -1,459 +0,0 @@
-#!/bin/bash
-#
-# Sylinux Installer / Updater Scripts
-# Copyright (C) 2011 Matthew Gyurgyik <pyther@pyther.net>
-#
-# 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-#-----------------
-# Exit Codes:
-# 1 - get_boot_device or other function failed
-# 2 - install/update failed
-# 3 - set_active failed
-# 4 - install_mbr failed
-#
-shopt -s nullglob
-
-libpath="/usr/lib/syslinux"
-bootpath="/boot/syslinux"
-extlinux="/sbin/extlinux"
-
-autoupdate_file=/boot/syslinux/SYSLINUX_AUTOUPDATE
-com32_files=(menu.c32 vesamenu.c32 chain.c32 hdt.c32 reboot.c32 poweroff.com)
-pciids_file=/usr/share/hwdata/pci.ids
-
-## Helper functions ##
-# Taken from libui-sh
-# $1 needle
-# $2 set (array) haystack
-check_is_in() {
- local needle="$1" element
- shift
- for element; do
- [[ $element = $needle ]] && return 0
- done
- return 1
-}
-
-# return true when blockdevice is an md raid, otherwise return a unset value
-# get all devices that are part of raid device $1
-device_is_raid() {
- [[ $1 && -f /proc/mdstat ]] || return 1
- local devmajor=$(stat -c %t "$1")
- (( devmajor == 9 ))
-}
-
-mdraid_all_slaves() {
- local slave slaves
- for slave in /sys/class/block/${1##*/}/slaves/*; do
- source "$slave/uevent"
- slaves="$slaves/dev/$DEVNAME "
- unset DEVNAME
- done
- echo $slaves
-}
-
-# Check /sys/block to see if device is partitioned
-# If we have a partitioned block device (sda1) /sys/block/sda1/dev will not exist
-# However, if we have an unpartitioned block device (sda) /sys/block/sda/dev will exist
-dev_is_part() {
- # $1 - blockdevice
- local dev=$1
-
- # If block device uevent file should be found
- # If a partition is passed in path shouldn't exist
- if [[ $dev = *cciss* ]]; then
- [[ -f /sys/block/cciss\!${dev##*/}/dev ]] && return 1
- elif [[ $dev = *ida* ]]; then
- [[ -f /sys/block/ida\!${dev##*/}/dev ]] && return 1
- else
- [[ -f /sys/block/${dev##*/}/dev ]] && return 1
- fi
-
- return 0
-}
-
-# If EFI PART is present in the first 8 bytes then it must be a GPT disk
-device_is_gpt() {
- local partsig=$(dd if="$1" skip=64 bs=8 count=1 2>/dev/null)
- [[ $partsig = "EFI PART" ]]
-}
-
-clear_gpt_attr2() {
- # $1 - Block Device, no partitions
- local disk=$1
-
- # Special Exception for cciss controllers
- if [[ $disk = *cciss* ]]; then
- for part in /dev/cciss/${disk##*/}*p*; do
- local partnum="${part##*[[:alpha:]]}"
- sgdisk "$disk" --attributes="$partnum":clear:2 &>/dev/null
- done
- # Smart 2 Controllers
- elif [[ $disk = *ida* ]]; then
- for part in /dev/ida/${disk##*/}*p*; do
- local partnum="${part##*[[:alpha:]]}"
- sgdisk "$disk" --attributes="$partnum":clear:2 &>/dev/null
- done
- else
- for part in /sys/block/${disk##*/}/${disk##*/}*; do
- local partnum="${part##*[[:alpha:]]}"
- sgdisk "$disk" --attributes="$partnum":clear:2 &>/dev/null
- done
- fi
- return 0
-}
-
-usage() {
-cat << EOF
-usage: $0 options
-
-This script will install or upgrade Syslinux
-
-OPTIONS:
- -h Show this message
- -i Install Syslinux
- -u Update Syslinux
- -a Set Boot flag on boot partiton
- -m Install Syslinux MBR
- -s Updates Syslinux if /boot/syslinux/SYSLINUX_AUTOUPDATE exists
-
- Arguments Required:
- -c Chroot install (ex: -c /mnt)
-
-Example Usage: syslinux-install_update.sh -i -a -m (install, set boot flag, install mbr)
- syslinux-install_update.sh -u (update)
-EOF
-}
-
-# Trys to find the partition that /boot resides on
-# This will either be on /boot or / (root)
-getBoot() {
- if [[ ! -d "$bootpath" ]]; then
- echo "Could not find $bootpath"
- echo "Is boot mounted? Is Syslinux installed?"
- exit 1
- fi
-
- syslinux_fs=(ext2 ext3 ext4 btrfs vfat)
-
- # Use DATA from findmnt see rc.sysint for more info
- if [[ -f /proc/self/mountinfo ]]; then
- read rootdev rootfs < <(findmnt -run -t noautofs -o SOURCE,FSTYPE "$CHROOT/")
- read bootdev bootfs < <(findmnt -run -t noautofs -o SOURCE,FSTYPE "$CHROOT/boot")
- else
- echo "Could not find /proc/self/mountinfo"
- echo "Are you running a kernel greater than 2.6.24?"
- exit 1
- fi
-
- if [[ $bootfs ]]; then
- if ! check_is_in "$bootfs" "${syslinux_fs[@]}"; then
- echo "/boot file system is not supported by Syslinux"
- exit 1
- fi
- boot="boot"
- bootpart="$bootdev"
- elif [[ $rootfs ]]; then
- if ! check_is_in "$rootfs" "${syslinux_fs[@]}"; then
- echo "/ (root) file system is not supported by Syslinux"
- exit 1
- fi
- boot="root"
- bootpart="$rootdev"
- else
- echo "Could not find filesystem on / (root) or /boot."
- exit 1
- fi
-}
-
-# We store the partition table type either gpt or mbr in var ptb
-# In rare cases a user could have one raid disk using mbr and another using gpt
-# In such cases we accept that the output may be incomplete
-
-# Calls get_ptb() for $bootpart or for all device in RAID
-declare -A bootdevs
-get_boot_devices() {
- if device_is_raid "$bootpart"; then
- slaves=$(mdraid_all_slaves "$bootpart")
-
- for slave in ${slaves[@]}; do
- local disk="${slave%%[[:digit:]]*}"
- device_is_gpt "$disk" && local ptb="GPT" || local ptb="MBR"
- bootdevs[$slave]="$ptb"
- done
- else
- local disk="${bootpart%%[[:digit:]]*}"
- device_is_gpt "$disk" && local ptb="GPT" || local ptb="MBR"
- bootdevs[$bootpart]="$ptb"
- fi
-}
-
-# Function Assumes the boot partition should be marked as active
-# All other partitions should not have the boot flag set
-set_active() {
- # If any bootdev is a block device without partitions bail
- # we want to set the boot flag on partitioned disk
- for dev in "${!bootdevs[@]}"; do
- dev_is_part $dev || { echo "$dev - is a block device. Aborting set_active!"; return 1; }
- done
-
- # Clear BIOS Bootable Legacy Attribute for GPT drives
- # In rare cases where a RAID device has slaves on the same block device
- # Attribute 2 will be cleared for each partition multiple times
- for dev in "${!bootdevs[@]}"; do
- local ptb="${bootdevs[$dev]}"
- if [[ "$ptb" = GPT ]]; then
- local disk="${dev%%[[:digit:]]*}" #ex: /dev/sda
- clear_gpt_attr2 "$disk"
- fi
- done
-
- # Set the boot flag on bootdevs (generated from get_boot_devices)
- for part in "${!bootdevs[@]}"; do
- local ptb="${bootdevs[$part]}"
- local partnum="${part##*[[:alpha:]]}"
- case "$part" in
- *[[:digit:]]p[[:digit:]]*)
- local disk="${part%%p$partnum}" # get everything before p1
- ;;
- *)
- local disk="${part%%[[:digit:]]*}"
- ;;
- esac
-
- if [[ "$ptb" = MBR ]]; then
- if sfdisk "$disk" -A "$partnum" &>/dev/null; then
- echo "Boot Flag Set - $part"
- else
- echo "FAILED to Set the boot flag on $part"
- exit 3
- fi
- elif [[ "$ptb" = GPT ]]; then
- if sgdisk "$disk" --attributes="$partnum":set:2 &>/dev/null; then
- echo "Attribute Legacy Bios Bootable Set - $part"
- else
- echo "FAILED to set attribute Legacy BIOS Bootable on $part"
- exit 3
- fi
- fi
- done
- return 0
-}
-
-install_mbr() {
- # If any bootdev is a block device without partitions bail
- # we want to install the mbr to a partitioned disk
- for dev in "${!bootdevs[@]}"; do
- dev_is_part "$dev" || { echo "$dev - is a block device. Aborting MBR install"; return 1; }
- done
-
- for part in "${!bootdevs[@]}"; do
- local partnum="${part##*[[:alpha:]]}"
- case "$part" in
- *[[:digit:]]p[[:digit:]]*)
- local disk="${part%%p$partnum}" # get everything before p1
- ;;
- *)
- local disk="${part%%[[:digit:]]*}"
- ;;
- esac
- local ptb="${bootdevs[$part]}"
-
- # We want to install to the root of the block device
- # If the device is a partition - ABORT!
- dev_is_part "$disk" && \
- { echo "ABORT! MBR installation to partition ($disk)!"; exit 4;}
-
- if [[ "$ptb" = MBR ]]; then
- mbrfile="$libpath/mbr.bin"
- elif [[ "$ptb" = GPT ]]; then
- mbrfile="$libpath/gptmbr.bin"
- fi
-
- if dd bs=440 count=1 conv=notrunc if="$mbrfile" of="$disk" &> /dev/null; then
- echo "Installed MBR ($mbrfile) to $disk"
- else
- echo "Error Installing MBR ($mbrfile) to $disk"
- exit 4
- fi
- done
- return 0
-}
-
-_install() {
- # Copy files to /boot
- for file in "${com32_files[@]}"; do
- # Symlink files even if links exist
- if [[ "$boot" = root ]]; then
- ln -s "${libpath#$CHROOT}/$file" "$bootpath/$file" &> /dev/null
- elif [[ "$boot" = boot ]]; then
- cp "$libpath/$file" "$bootpath/$file"
- fi
- done
-
- # Copy / Symlink pci.ids if we copy the com32 module and if pci.ids exists in the FS
- if check_is_in "hdt.c32" "${com32_files[@]}" && [[ -f $pciids_file ]]; then
- if [[ "$boot" = root ]]; then
- ln -s "$pciids_file" "$bootpath/pci.ids" &> /dev/null
- elif [[ "$boot" = boot ]]; then
- cp "$pciids_file" "$bootpath/pci.ids" &> /dev/null
- fi
- fi
-
- if device_is_raid "$bootpart"; then
- echo "Detected RAID on /boot - installing Syslinux with --raid"
- "$extlinux" --install "$bootpath" -r > /dev/null 2>&1
- else
- "$extlinux" --install "$bootpath" > /dev/null 2>&1
- fi
-
- if (( $? )); then
- echo "Syslinux install failed"
- exit 2
- else
- echo "Syslinux install successful"
- fi
-
- touch "$CHROOT/$autoupdate_file"
-}
-
-update() {
- # Update any com and c32 files in /boot
- if [[ "$boot" = boot ]]; then
- for file in "$bootpath"/*.{c32,com}; do
- file=$(basename "$file")
- cp "$libpath/$file" "$bootpath/$file" &> /dev/null
- done
- if [[ -f "$bootpath/pci.ids" ]]; then
- cp "$pciids_file" "$bootpath/pci.ids" &> /dev/null
- fi
- fi
-
- if device_is_raid $bootpart; then
- echo "Detected RAID on /boot - installing Syslinux with --raid"
- "$extlinux" --update "$bootpath" -r &> /dev/null
- else
- "$extlinux" --update "$bootpath" &> /dev/null
- fi
-
- if (($?)); then
- echo "Syslinux update failed"
- exit 2
- else
- echo "Syslinux update successful"
- fi
-}
-
-# Make sure only root can run our script
-if (( $(id -u) != 0 )); then
- echo "This script must be run as root" 1>&2
- exit 1
-fi
-
-if (( $# == 0 )); then
- usage
- exit 1
-fi
-
-while getopts "c:uihmas" opt; do
- case $opt in
- c)
- CHROOT=$(readlink -e "$OPTARG")
- if [[ -z $CHROOT ]]; then
- echo "error: chroot path ``$OPTARG does not exist";
- exit 1
- fi
- ;;
- h)
- usage
- exit 0
- ;;
- i)
- INSTALL="True"
- ;;
- u)
- UPDATE="True"
- ;;
- m)
- MBR="True"
- ;;
- a)
- SET_ACTIVE="True"
- ;;
- s)
- # If AUTOUPDATE_FILE does not exist exit the script
- if [[ -f $autoupdate_file ]]; then
- UPDATE="True"
- else
- exit 0
- fi
- ;;
- *)
- usage
- exit 1
- ;;
- esac
-done
-
-# Display Usage Information if both Install and Update are passed
-if [[ $INSTALL && $UPDATE ]]; then
- usage
- exit 1
-fi
-
-# If a chroot dir is path set variables to reflect chroot
-if [[ "$CHROOT" ]]; then
- libpath="$CHROOT$libpath"
- bootpath="$CHROOT$bootpath"
- extlinux="$CHROOT$extlinux"
-fi
-
-# Exit if no /boot path exists
-if ( f=("$bootpath"/*); (( ! ${#f[@]} )) ); then
- echo "Error: $bootpath is empty!"
- echo "Is /boot mounted?"
- exit 1
-fi
-
-# Get the boot device if any of these options are passed
-if [[ $INSTALL || $UPDATE || $SET_ACTIVE || $MBR ]]; then
- getBoot
-fi
-
-# Install or Update
-if [[ $INSTALL ]]; then
- _install || exit
-elif [[ $UPDATE ]]; then
- update || exit
-fi
-
-
-# SET_ACTIVE and MBR
-if [[ $SET_ACTIVE ]] || [[ $MBR ]]; then
- get_boot_devices
-
- if [[ $SET_ACTIVE ]]; then
- set_active || exit
- fi
-
- if [[ $MBR ]]; then
- install_mbr || exit
- fi
-fi
-
-exit 0
-
-# vim: set et sw=4:
diff --git a/testing/syslinux/syslinux.cfg b/testing/syslinux/syslinux.cfg
deleted file mode 100644
index 02127d21d..000000000
--- a/testing/syslinux/syslinux.cfg
+++ /dev/null
@@ -1,79 +0,0 @@
-# Config file for Syslinux -
-# /boot/syslinux/syslinux.cfg
-#
-# Comboot modules:
-# * menu.c32 - provides a text menu
-# * vesamenu.c32 - provides a graphical menu
-# * chain.c32 - chainload MBRs, partition boot sectors, Windows bootloaders
-# * hdt.c32 - hardware detection tool
-# * reboot.c32 - reboots the system
-# * poweroff.com - shutdown the system
-#
-# To Use: Copy the respective files from /usr/lib/syslinux to /boot/syslinux.
-# If /usr and /boot are on the same file system, symlink the files instead
-# of copying them.
-#
-# If you do not use a menu, a 'boot:' prompt will be shown and the system
-# will boot automatically after 5 seconds.
-#
-# Please review the wiki: https://wiki.archlinux.org/index.php/Syslinux
-# The wiki provides further configuration examples
-
-DEFAULT arch
-PROMPT 0 # Change to 1 if you do not want to use a menu
-TIMEOUT 50
-# You can create syslinux keymaps with the keytab-lilo tool
-#KBDMAP de.ktl
-
-# Menu Configuration
-# Either menu.c32 or vesamenu32.c32 must be copied to /boot/syslinux
-UI menu.c32
-#UI vesamenu.c32
-
-# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu
-MENU TITLE Arch Linux
-#MENU BACKGROUND splash.png
-MENU COLOR border 30;44 #40ffffff #a0000000 std
-MENU COLOR title 1;36;44 #9033ccff #a0000000 std
-MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all
-MENU COLOR unsel 37;44 #50ffffff #a0000000 std
-MENU COLOR help 37;40 #c0ffffff #a0000000 std
-MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std
-MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std
-MENU COLOR msg07 37;40 #90ffffff #a0000000 std
-MENU COLOR tabmsg 31;40 #30ffffff #00000000 std
-
-# boot sections follow
-#
-# TIP: If you want a 1024x768 framebuffer, add "vga=773" to your kernel line.
-#
-#-*
-
-LABEL arch
- MENU LABEL Arch Linux
- LINUX ../vmlinuz-linux
- APPEND root=/dev/sda3 ro
- INITRD ../initramfs-linux.img
-
-LABEL archfallback
- MENU LABEL Arch Linux Fallback
- LINUX ../vmlinuz-linux
- APPEND root=/dev/sda3 ro
- INITRD ../initramfs-linux-fallback.img
-
-#LABEL windows
-# MENU LABEL Windows
-# COM32 chain.c32
-# APPEND hd0 1
-
-LABEL hdt
- MENU LABEL HDT (Hardware Detection Tool)
- COM32 hdt.c32
-
-LABEL reboot
- MENU LABEL Reboot
- COM32 reboot.c32
-
-LABEL off
- MENU LABEL Power Off
- COMBOOT poweroff.com
diff --git a/testing/syslinux/syslinux.install b/testing/syslinux/syslinux.install
deleted file mode 100644
index 0dc0ece36..000000000
--- a/testing/syslinux/syslinux.install
+++ /dev/null
@@ -1,13 +0,0 @@
-post_install() {
- echo "==> If you want to use syslinux as your bootloader"
- echo "==> edit /boot/syslinux/syslinux.cfg and run"
- echo "==> # /usr/sbin/syslinux-install_update -i -a -m"
- echo "==> to install it."
-}
-
-post_upgrade() {
- # auto-update syslinux if /boot/syslinux/SYSLINUX_AUTOUPDATE exists
- /usr/sbin/syslinux-install_update -s
-}
-
-# vim:set ts=2 sw=2 et:
diff --git a/testing/texinfo/PKGBUILD b/testing/texinfo/PKGBUILD
deleted file mode 100644
index cc20f22b7..000000000
--- a/testing/texinfo/PKGBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# $Id: PKGBUILD 144959 2011-12-12 08:29:38Z allan $
-# Maintainer: Allan McRae <allan@archlinux.org>
-# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
-
-pkgname=texinfo
-pkgver=4.13a
-pkgrel=7
-pkgdesc="Utilities to work with and produce manuals, ASCII text, and on-line documentation from a single source file"
-arch=('i686' 'x86_64')
-url="http://www.gnu.org/software/texinfo/"
-license=('GPL3')
-groups=('base')
-depends=('ncurses' 'findutils' 'gzip')
-install=texinfo.install
-source=(ftp://ftp.gnu.org/pub/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz{,.sig}
- texinfo-4.13a-data_types.patch)
-md5sums=('71ba711519209b5fb583fed2b3d86fcb'
- 'db2ca82c831684cd7cef181234017c46'
- 'd8574782ff7def1e2dc5c291dbeaec18')
-
-build() {
- cd ${srcdir}/${pkgname}-4.13
- patch -Np1 -i $srcdir/texinfo-4.13a-data_types.patch
- ./configure --prefix=/usr
- make
-}
-
-package() {
- cd ${srcdir}/${pkgname}-4.13
- make DESTDIR=${pkgdir} install
-
- # fix this here as it prevents make from trying to rebuild manual pages
- sed -i 's#A-z#A-Za-z#' ${pkgdir}/usr/bin/texi2dvi
-}
diff --git a/testing/texinfo/texinfo-4.13a-data_types.patch b/testing/texinfo/texinfo-4.13a-data_types.patch
deleted file mode 100644
index 2a87c2146..000000000
--- a/testing/texinfo/texinfo-4.13a-data_types.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-diff -up texinfo-4.13/info/window.c_old texinfo-4.13/info/window.c
---- texinfo-4.13/info/window.c_old 2009-08-04 13:46:15.000000000 +0200
-+++ texinfo-4.13/info/window.c 2009-08-04 13:47:29.000000000 +0200
-@@ -1581,7 +1581,7 @@ process_node_text (WINDOW *win, char *st
- const char *carried_over_ptr;
- size_t carried_over_len, carried_over_count;
- const char *cur_ptr = mbi_cur_ptr (iter);
-- int cur_len = mb_len (mbi_cur (iter));
-+ size_t cur_len = mb_len (mbi_cur (iter));
- int replen;
- int delim = 0;
- int rc;
-@@ -1754,7 +1754,7 @@ clean_manpage (char *manpage)
- mbi_advance (iter))
- {
- const char *cur_ptr = mbi_cur_ptr (iter);
-- int cur_len = mb_len (mbi_cur (iter));
-+ size_t cur_len = mb_len (mbi_cur (iter));
-
- if (cur_len == 1)
- {
-@@ -1852,8 +1852,8 @@ window_scan_line (WINDOW *win, int line,
- mbi_advance (iter))
- {
- const char *cur_ptr = mbi_cur_ptr (iter);
-- int cur_len = mb_len (mbi_cur (iter));
-- int replen;
-+ size_t cur_len = mb_len (mbi_cur (iter));
-+ size_t replen;
-
- if (cur_ptr >= endp)
- break;
diff --git a/testing/texinfo/texinfo.install b/testing/texinfo/texinfo.install
deleted file mode 100644
index f1554e4f4..000000000
--- a/testing/texinfo/texinfo.install
+++ /dev/null
@@ -1,21 +0,0 @@
-infodir=usr/share/info
-filelist=(info.info info-stnd.info texinfo texinfo-1 texinfo-2 texinfo-3)
-
-post_install() {
- # Scan *all* info files on install
- for file in $(find $infodir -type f ! -name dir); do
- install-info $file $infodir/dir 2> /dev/null
- done
-}
-
-post_upgrade() {
- for file in ${filelist[@]}; do
- install-info $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
-
-pre_remove() {
- for file in ${filelist[@]}; do
- install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
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/testing/xulrunner/PKGBUILD b/testing/xulrunner/PKGBUILD
new file mode 100644
index 000000000..58b80ace8
--- /dev/null
+++ b/testing/xulrunner/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 145256 2011-12-20 11:59:26Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+pkgname=xulrunner
+pkgver=9.0
+pkgrel=1
+pkgdesc="Mozilla Runtime Environment"
+arch=('i686' 'x86_64')
+license=('MPL' 'GPL' 'LGPL')
+depends=('gtk2' 'mozilla-common' 'nss>=3.13.1' 'libxt' 'libxrender' 'hunspell' 'startup-notification' 'mime-types' 'dbus-glib' 'alsa-lib' 'libevent' 'sqlite3>=3.7.4' 'libnotify' 'libvpx' 'python2')
+makedepends=('zip' 'unzip' 'pkg-config' 'diffutils' 'wireless_tools' 'yasm' 'mesa')
+url="http://wiki.mozilla.org/XUL:Xul_Runner"
+source=(ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases//$pkgver/source/firefox-$pkgver.source.tar.bz2
+ mozconfig
+ mozilla-pkgconfig.patch)
+options=('!emptydirs')
+replaces=('xulrunner-oss')
+md5sums=('d8d0c8c79660752b02d9e9ab69a68f94'
+ '8dfb78c5bd0581c8cf4753813132bf0b'
+ '27271ce647a83906ef7a24605e840d61')
+
+build() {
+ cd "$srcdir/mozilla-release"
+ cp "$srcdir/mozconfig" .mozconfig
+
+ #fix libdir/sdkdir - fedora
+ patch -Np1 -i "$srcdir/mozilla-pkgconfig.patch"
+
+ export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/lib/xulrunner-$pkgver"
+ export PYTHON="/usr/bin/python2"
+
+ make -j1 -f client.mk build MOZ_MAKE_FLAGS="$MAKEFLAGS"
+}
+
+package() {
+ cd "$srcdir/mozilla-release"
+ make -j1 -f client.mk DESTDIR="$pkgdir" install
+
+ rm -rf "$pkgdir"/usr/lib/xulrunner-$pkgver/{dictionaries,hyphenation}
+ ln -sf /usr/share/hunspell "$pkgdir/usr/lib/xulrunner-$pkgver/dictionaries"
+ ln -sf /usr/share/hyphen "$pkgdir/usr/lib/xulrunner-$pkgver/hyphenation"
+
+ # add xulrunner library path to ld.so.conf
+ install -d $pkgdir/etc/ld.so.conf.d
+ echo "/usr/lib/xulrunner-$pkgver" > $pkgdir/etc/ld.so.conf.d/xulrunner.conf
+
+ chmod +x "${pkgdir}/usr/lib/xulrunner-devel-$pkgver/sdk/bin/xpt.py"
+ sed -i 's|!/usr/bin/env python|!/usr/bin/env python2|' "$pkgdir/usr/lib/xulrunner-devel-$pkgver/sdk/bin/xpt.py"
+ sed -i 's|!/usr/bin/env python|!/usr/bin/env python2|' "$pkgdir/usr/lib/xulrunner-devel-$pkgver/sdk/bin/header.py"
+ sed -i 's|!/usr/bin/env python|!/usr/bin/env python2|' "$pkgdir/usr/lib/xulrunner-devel-$pkgver/sdk/bin/typelib.py"
+ sed -i 's|!/usr/bin/env python|!/usr/bin/env python2|' "$pkgdir/usr/lib/xulrunner-devel-$pkgver/sdk/bin/xpidl.py"
+}
diff --git a/testing/xulrunner/mozconfig b/testing/xulrunner/mozconfig
new file mode 100644
index 000000000..82a6ae512
--- /dev/null
+++ b/testing/xulrunner/mozconfig
@@ -0,0 +1,38 @@
+. $topsrcdir/xulrunner/config/mozconfig
+
+ac_add_options --prefix=/usr
+ac_add_options --libdir=/usr/lib
+
+# System libraries
+ac_add_options --with-system-nspr
+ac_add_options --with-system-nss
+ac_add_options --with-system-jpeg
+ac_add_options --with-system-zlib
+ac_add_options --with-system-bz2
+ac_add_options --with-system-png
+ac_add_options --with-system-libevent
+ac_add_options --with-system-libvpx
+ac_add_options --enable-system-hunspell
+ac_add_options --enable-system-sqlite
+ac_add_options --enable-system-ffi
+ac_add_options --enable-system-cairo
+ac_add_options --enable-system-pixman
+ac_add_options --with-pthreads
+
+# Features
+ac_add_options --enable-safe-browsing
+ac_add_options --enable-startup-notification
+ac_add_options --enable-gio
+
+ac_add_options --disable-gnomevfs
+ac_add_options --disable-crashreporter
+ac_add_options --disable-updater
+ac_add_options --disable-tests
+ac_add_options --disable-mochitest
+ac_add_options --disable-installer
+
+# Optimization
+ac_add_options --enable-optimize
+
+export MOZILLA_OFFICIAL=1
+mk_add_options MOZILLA_OFFICIAL=1
diff --git a/testing/xulrunner/mozilla-pkgconfig.patch b/testing/xulrunner/mozilla-pkgconfig.patch
new file mode 100644
index 000000000..037d4aee0
--- /dev/null
+++ b/testing/xulrunner/mozilla-pkgconfig.patch
@@ -0,0 +1,40 @@
+diff -Nur mozilla-release.orig/xulrunner/installer/libxul-embedding.pc.in mozilla-release/xulrunner/installer/libxul-embedding.pc.in
+--- mozilla-release.orig/xulrunner/installer/libxul-embedding.pc.in 2011-12-19 22:11:38.100005674 +0000
++++ mozilla-release/xulrunner/installer/libxul-embedding.pc.in 2011-12-19 22:14:35.095147521 +0000
+@@ -6,5 +6,6 @@
+ Name: libxul-embedding
+ Description: Static library for version-independent embedding of the Mozilla runtime
+ Version: %MOZILLA_VERSION%
++Requires: %NSPR_NAME% >= %NSPR_VERSION%
+ Libs: -L${sdkdir}/lib -lxpcomglue -ldl
+ Cflags: -DXPCOM_GLUE -I${includedir} %WCHAR_CFLAGS%
+diff -Nur mozilla-release.orig/xulrunner/installer/libxul.pc.in mozilla-release/xulrunner/installer/libxul.pc.in
+--- mozilla-release.orig/xulrunner/installer/libxul.pc.in 2011-12-19 22:11:38.126672110 +0000
++++ mozilla-release/xulrunner/installer/libxul.pc.in 2011-12-19 22:14:04.375412141 +0000
+@@ -1,5 +1,6 @@
+ prefix=%prefix%
+ sdkdir=%sdkdir%
++libdir=%libdir%
+ includedir=%includedir%
+ idldir=%idldir%
+
+diff -Nur mozilla-release.orig/xulrunner/installer/Makefile.in mozilla-release/xulrunner/installer/Makefile.in
+--- mozilla-release.orig/xulrunner/installer/Makefile.in 2011-12-19 22:11:38.126672110 +0000
++++ mozilla-release/xulrunner/installer/Makefile.in 2011-12-19 22:18:28.743135321 +0000
+@@ -108,6 +108,7 @@
+ -e "s|%includedir%|$(includedir)|" \
+ -e "s|%idldir%|$(idldir)|" \
+ -e "s|%sdkdir%|$(sdkdir)|" \
++ -e "s|%libdir%|$(installdir)|" \
+ -e "s|%MOZ_APP_NAME%|$(MOZ_APP_NAME)|" \
+ -e "s|%MOZILLA_VERSION%|$(MOZ_APP_VERSION)|" \
+ -e "s|%WCHAR_CFLAGS%|$(WCHAR_CFLAGS)|" \
+diff -Nur mozilla-release.orig/xulrunner/installer/mozilla-js.pc.in mozilla-release/xulrunner/installer/mozilla-js.pc.in
+--- mozilla-release.orig/xulrunner/installer/mozilla-js.pc.in 2011-12-19 22:11:38.126672110 +0000
++++ mozilla-release/xulrunner/installer/mozilla-js.pc.in 2011-12-19 22:18:55.569571004 +0000
+@@ -7,4 +7,4 @@
+ Version: %MOZILLA_VERSION%
+ Requires: %NSPR_NAME% >= %NSPR_VERSION%
+ Libs: -L${sdkdir}/lib %MOZ_JS_LINK%
+-Cflags: -I${includedir} -DXP_UNIX -DJS_THREADSAFE
++Cflags: -I${includedir} -I${includedir}/js -DXP_UNIX -DJS_THREADSAFE