summaryrefslogtreecommitdiff
path: root/testing
diff options
context:
space:
mode:
Diffstat (limited to 'testing')
-rw-r--r--testing/binutils/PKGBUILD83
-rw-r--r--testing/binutils/binutils.install17
-rw-r--r--testing/fakeroot/PKGBUILD35
-rw-r--r--testing/fakeroot/fakeroot.install14
-rw-r--r--testing/fontforge/PKGBUILD39
-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-__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/kdevplatform/PKGBUILD39
-rw-r--r--testing/kdevplatform/kdevplatform.install11
-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/libdrm/COPYING48
-rw-r--r--testing/libdrm/PKGBUILD51
-rw-r--r--testing/libdrm/git_fixes.diff13
-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/libspiro/PKGBUILD25
-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/nilfs-utils/PKGBUILD26
-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/pyalpm/PKGBUILD23
-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/twisted/PKGBUILD34
-rw-r--r--testing/twisted/twisted.install11
102 files changed, 0 insertions, 7669 deletions
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/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 c5326fdd6..000000000
--- a/testing/fontforge/PKGBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# $Id: PKGBUILD 145120 2011-12-17 08:00: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=2
-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' 'libspiro')
-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/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-__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/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/kdevplatform.install b/testing/kdevplatform/kdevplatform.install
deleted file mode 100644
index e70c054ec..000000000
--- a/testing/kdevplatform/kdevplatform.install
+++ /dev/null
@@ -1,11 +0,0 @@
-post_install() {
- xdg-icon-resource forceupdate --theme hicolor &> /dev/null
-}
-
-post_upgrade() {
- post_install
-}
-
-post_remove() {
- post_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/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 3212d196e..000000000
--- a/testing/libdrm/PKGBUILD
+++ /dev/null
@@ -1,51 +0,0 @@
-# $Id: PKGBUILD 145126 2011-12-17 09:08:44Z andyrtr $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-
-pkgname=libdrm
-pkgver=2.4.29
-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)
-md5sums=('96d5e3e9edd55f4b016fe3b5dd0a1953'
- 'c722c8406507b7e3a8da7a3030d1d9cf'
- 'ba65e71c481b94ef0fb6c23c7f21ffa1'
- 'aebd5336568090b8ec084fabcfb08071')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- patch -Np1 -i "${srcdir}/no-pthread-stubs.patch"
-
- # git fixes - currently none
- patch -Np1 -i ${srcdir}/git_fixes.diff
-
- #libtoolize --force
- autoreconf --force --install
- ./configure --prefix=/usr \
- --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 dc80155f2..000000000
--- a/testing/libdrm/git_fixes.diff
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/intel/intel_bufmgr_gem.c b/intel/intel_bufmgr_gem.c
-index 19441f3..eb9dd32 100644
---- a/intel/intel_bufmgr_gem.c
-+++ b/intel/intel_bufmgr_gem.c
-@@ -958,7 +958,7 @@ static void drm_intel_gem_bo_purge_vma_cache(drm_intel_bufmgr_gem *bufmgr_gem)
- bufmgr_gem->vma_cache.next,
- vma_list);
- assert(bo_gem->map_count == 0);
-- DRMLISTDEL(&bo_gem->vma_list);
-+ DRMLISTDELINIT(&bo_gem->vma_list);
-
- if (bo_gem->mem_virtual) {
- munmap(bo_gem->mem_virtual, bo_gem->bo.size);
diff --git a/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/libspiro/PKGBUILD b/testing/libspiro/PKGBUILD
deleted file mode 100644
index b3fef038a..000000000
--- a/testing/libspiro/PKGBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# $Id: PKGBUILD 145118 2011-12-17 08:00:09Z bisson $
-# Contributor: Rémy Oudompheng <oudomphe@clipper.ens.fr>
-# Maintainer: Gaetan Bisson <bisson@archlinux.org>
-
-pkgname=libspiro
-pkgver=20071029
-pkgrel=2
-pkgdesc='Simplifies the drawing of beautiful curves'
-url='http://libspiro.sourceforge.net/'
-license=('GPL')
-options=('!libtool')
-arch=('i686' 'x86_64')
-source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}_src-${pkgver}.tar.bz2")
-sha1sums=('d8b407b835b35289af2914877a4c6000b4fdd382')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- ./configure --prefix=/usr
- make
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
-}
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/nilfs-utils/PKGBUILD b/testing/nilfs-utils/PKGBUILD
deleted file mode 100644
index 51022ac0f..000000000
--- a/testing/nilfs-utils/PKGBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# $Id: PKGBUILD 145060 2011-12-15 22:33:56Z ibiru $
-# Maintainer : Ionut Biru <ibiru@archlinux.org>
-# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
-pkgname=nilfs-utils
-pkgver=2.1.0
-pkgrel=1
-pkgdesc="A log-structured file system supporting continuous snapshotting (userspace utils)"
-arch=('i686' 'x86_64')
-url="http://www.nilfs.org/"
-license=('GPL2' 'LGPL2.1')
-backup=('etc/nilfs_cleanerd.conf')
-depends=('util-linux-ng')
-options=(!libtool)
-source=(http://www.nilfs.org/download/$pkgname-$pkgver.tar.bz2)
-md5sums=('738f7bee062051c14dcff444bb17ada7')
-
-build() {
- cd "$srcdir/$pkgname-$pkgver"
- ./configure --libdir=/lib
- make
-}
-
-package() {
- cd "$srcdir/$pkgname-$pkgver"
- make DESTDIR="$pkgdir" install LDCONFIG=/bin/true
-}
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/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/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/twisted/PKGBUILD b/testing/twisted/PKGBUILD
deleted file mode 100644
index 84d918a8c..000000000
--- a/testing/twisted/PKGBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# $Id: PKGBUILD 145058 2011-12-15 22:26:04Z ibiru $
-# Maintainer : Ionut Biru <ibiru@archlinux.org>
-# Contributor: Juergen Hoetzel <juergen@archlinux.org>
-# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
-
-pkgname=twisted
-pkgver=11.1.0
-pkgrel=1
-pkgdesc="Asynchronous networking framework written in Python."
-arch=('i686' 'x86_64')
-url="http://twistedmatrix.com/"
-license=('MIT')
-depends=('python2' 'pycrypto' 'zope-interface')
-optdepends=('python2-pyopenssl'
- 'python-soappy:for twisted.web.soap')
-install=twisted.install
-source=(http://twistedmatrix.com/Releases/Twisted/${pkgver%.*}/Twisted-$pkgver.tar.bz2)
-md5sums=('972f3497e6e19318c741bf2900ffe31c')
-
-build() {
- cd "$srcdir/Twisted-$pkgver"
- python2 setup.py build
-}
-
-package() {
- cd "$srcdir/Twisted-$pkgver"
- python2 setup.py install --prefix=/usr --root="$pkgdir" --optimize=1
- install -D -m644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
-
- sed -e 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \
- -i "$pkgdir"/usr/lib/python2.7/site-packages/twisted/trial/test/scripttest.py
- sed -e 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \
- -i "$pkgdir"/usr/lib/python2.7/site-packages/twisted/mail/test/pop3testserver.py
-}
diff --git a/testing/twisted/twisted.install b/testing/twisted/twisted.install
deleted file mode 100644
index 8e93ffd3c..000000000
--- a/testing/twisted/twisted.install
+++ /dev/null
@@ -1,11 +0,0 @@
-post_install() {
- python2 -c 'from twisted.plugin import IPlugin, getPlugins; list(getPlugins(IPlugin))' >/dev/null 2>&1 || return 1
-}
-
-post_upgrade() {
- post_install
-}
-
-post_remove() {
- find /usr/lib/python2.7/site-packages/twisted/plugins -name dropin.cache | xargs -r rm -f
-}