diff options
author | Nicolas Reynolds <fauno@kiwwwi.com.ar> | 2011-12-18 21:15:15 -0300 |
---|---|---|
committer | Nicolas Reynolds <fauno@kiwwwi.com.ar> | 2011-12-18 21:15:15 -0300 |
commit | cc66c2ff866631ece4d699b041f83444988e8ad2 (patch) | |
tree | f62461cced2b9808ba2ffb42d7bcc11c57accd00 /testing | |
parent | 437136a9d1b78ff4eea10589099d343c305b9d43 (diff) |
Removing unused repos
Diffstat (limited to 'testing')
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 -} |