diff options
Diffstat (limited to 'testing')
153 files changed, 4393 insertions, 7573 deletions
diff --git a/testing/apr-util/PKGBUILD b/testing/apr-util/PKGBUILD new file mode 100644 index 000000000..987581358 --- /dev/null +++ b/testing/apr-util/PKGBUILD @@ -0,0 +1,28 @@ +# $Id: PKGBUILD 145219 2011-12-19 18:04:03Z andrea $ +# Maintainer: Jan de Groot <jgc@archlinux.org> +# Maintainer: Pierre Schmitz <pierre@archlinux.de> + +pkgname=apr-util +pkgver=1.3.12 +pkgrel=4 +pkgdesc="The Apache Portable Runtime" +arch=('i686' 'x86_64') +url="http://apr.apache.org/" +depends=('apr' 'gdbm' 'expat' 'db' 'libldap' 'unixodbc') +options=('!libtool') +license=('APACHE') +source=("http://www.apache.org/dist/apr/apr-util-${pkgver}.tar.bz2") +md5sums=('0f671b037ca62751a8a7005578085560') + +build() { + cd "${srcdir}/apr-util-${pkgver}" + ./configure --prefix=/usr --with-apr=/usr \ + --without-pgsql --without-mysql --without-sqlite2 --without-sqlite3 \ + --with-berkeley-db=/usr --with-gdbm=/usr --with-ldap + make +} + +package() { + cd "${srcdir}/apr-util-${pkgver}" + make DESTDIR="${pkgdir}" install +} diff --git a/testing/arora/PKGBUILD b/testing/arora/PKGBUILD new file mode 100644 index 000000000..cfe65b628 --- /dev/null +++ b/testing/arora/PKGBUILD @@ -0,0 +1,28 @@ +# $Id: PKGBUILD 145213 2011-12-19 18:03:53Z andrea $ +# Maintainer: Gaetan Bisson <bisson@archlinux.org> +# Contributor: Pierre Schmitz <pierre@archlinux.de> +# Contributor: Daniel J Griffiths <ghost1227@archlinux.us> + +pkgname=arora +pkgver=0.11.0 +pkgrel=3 +pkgdesc='Lightweight cross-platform Web browser' +url='http://www.arora-browser.org/' +license=('GPL') +arch=('i686' 'x86_64') +depends=('qtwebkit' 'desktop-file-utils') +source=("http://${pkgname}.googlecode.com/files/${pkgname}-${pkgver}.tar.gz") +sha1sums=('480cfd7482cccbb7ece866fa10afe9acace29b31') + +install=install + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + qmake PREFIX='/usr' 'CONFIG-=debug' -r + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make INSTALL_ROOT="${pkgdir}" install +} diff --git a/testing/arora/install b/testing/arora/install new file mode 100644 index 000000000..6c87527e2 --- /dev/null +++ b/testing/arora/install @@ -0,0 +1,12 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/testing/binutils/PKGBUILD b/testing/binutils/PKGBUILD deleted file mode 100644 index a1b61d31f..000000000 --- a/testing/binutils/PKGBUILD +++ /dev/null @@ -1,83 +0,0 @@ -# $Id: PKGBUILD 144110 2011-12-04 03:46:03Z allan $ -# Maintainer: Allan McRae <allan@archlinux.org> - -# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc - -pkgname=binutils -pkgver=2.22 -pkgrel=2 -_date=20111201 -pkgdesc="A set of programs to assemble and manipulate binary and object files" -arch=('i686' 'x86_64') -url="http://www.gnu.org/software/binutils/" -license=('GPL') -groups=('base-devel') -depends=('glibc>=2.14' 'zlib') -checkdepends=('dejagnu') -options=('!libtool' '!distcc' '!ccache') -install=binutils.install -source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}_${_date}.tar.bz2) -md5sums=('77c15027ac112c65fd5f73ca91b0651c') - -mksource() { - mkdir ${pkgname}-${_date} - cd ${pkgname}-${_date} - export _TAG=binutils-2_22-branch - export 'CVSROOT=:pserver:anoncvs@sourceware.org:/cvs/src' - cvs -z9 co -r $_TAG binutils || return 1 - mv src binutils - tar -cvjf ../binutils-${pkgver}_${_date}.tar.bz2 binutils/* -} - -build() { - cd ${srcdir} - mkdir binutils-build && cd binutils-build - - [[ $CARCH == "x86_64" ]] && CONFIGFLAG="--enable-64-bit-bfd --disable-multilib" - - ${srcdir}/binutils/configure --prefix=/usr \ - --enable-ld=default --enable-gold \ - --enable-plugins --enable-threads \ - --enable-shared $CONFIGFLAG - - # check the host environment and makes sure all the necessary tools are available - make configure-host - - make tooldir=${pkgdir}/usr -} - -check() { - cd ${srcdir}/binutils-build - - # do not abort on errors - manually check log files - make -k -j1 check || true -} - -package() { - cd ${srcdir}/binutils-build - make prefix=${pkgdir}/usr tooldir=${pkgdir}/usr install - - # Add some useful headers - install -m644 ${srcdir}/binutils/include/libiberty.h ${pkgdir}/usr/include - install -m644 ${srcdir}/binutils/include/demangle.h ${pkgdir}/usr/include - - # Rebuild libiberty.a with -fPIC - make -C libiberty clean - make CFLAGS="$CFLAGS -fPIC" -C libiberty - install -m644 libiberty/libiberty.a ${pkgdir}/usr/lib - - # Rebuild libbfd.a with -fPIC - make -C bfd clean - # hidden visability prevent 3rd party shared libraries exporting bfd non-stable API - make CFLAGS="$CFLAGS -fPIC -fvisibility=hidden" -C bfd - install -m644 bfd/libbfd.a ${pkgdir}/usr/lib - - # Remove Windows/Novell specific man pages - rm -f ${pkgdir}/usr/share/man/man1/{dlltool,nlmconv,windres,windmc}* - - # Remove these symlinks, they are not ABI stable. - # Programs should compile static to the .a file. - rm -f ${pkgdir}/usr/lib/lib{bfd,opcodes}.so - echo "INPUT ( /usr/lib/libbfd.a -liberty -lz )" >${pkgdir}/usr/lib/libbfd.so - echo "INPUT ( /usr/lib/libopcodes.a -lbfd )" >${pkgdir}/usr/lib/libopcodes.so -} diff --git a/testing/binutils/binutils.install b/testing/binutils/binutils.install deleted file mode 100644 index 8bf9f3a47..000000000 --- a/testing/binutils/binutils.install +++ /dev/null @@ -1,17 +0,0 @@ -infodir=usr/share/info -filelist=(as.info bfd.info binutils.info configure.info gprof.info ld.info standards.info) - -post_upgrade() { - [ -x usr/bin/install-info ] || return 0 - for file in ${filelist[@]}; do - install-info $infodir/$file.gz $infodir/dir 2> /dev/null - done -} - -pre_remove() { - [ -x usr/bin/install-info ] || return 0 - for file in ${filelist[@]}; do - install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null - done -} - diff --git a/testing/erlang/PKGBUILD b/testing/erlang/PKGBUILD new file mode 100644 index 000000000..b2b701fb8 --- /dev/null +++ b/testing/erlang/PKGBUILD @@ -0,0 +1,71 @@ +# $Id: PKGBUILD 145221 2011-12-19 18:04:05Z andrea $ +# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org> +# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca> +# Contributor: Tom Burdick <thomas.burdick@wrightwoodtech.com> + +pkgname=erlang +pkgver=R14B04 +pkgrel=2 +pkgdesc="A small concurrent functional programming language developed by Ericsson." +arch=(i686 x86_64) +url="http://www.erlang.org/index.html" +license=('custom') +depends=('ncurses' 'glibc') +makedepends=('java-environment' 'perl' 'openssl' 'wxgtk' 'unixodbc>=2.3.1' 'mesa') +optdepends=('wxgtk: for wx support' 'unixodbc: database') + +options=('!makeflags') +source=(http://www.erlang.org/download/otp_src_${pkgver/./-}.tar.gz + http://www.erlang.org/download/otp_doc_man_${pkgver/./-}.tar.gz) +md5sums=('4b469729f103f52702bfb1fb24529dc0' + 'f31e72518daae4007f595c0b224dd59f') + +# please check these deps reported by namcap when you do the next build: +#erlang E: Dependency java-environment detected and not included (found class files usr/lib/erlang/lib/jinterface-1.5.4/priv/OtpErlang.jar, usr/lib/erlang/lib/ic-4.2.27/priv/ic.jar) +#erlang E: Dependency mesa detected and not included (libraries ['usr/lib/libGLU.so.1'] needed in files ['usr/lib/erlang/lib/wx-0.99/priv/erl_gl.so']) + + +build() { + cd "$srcdir/otp_src_${pkgver/./-}" + export ERTSVERSION=$(sed -n 's/^VSN[ ]*=[ ]*\([0-9.]\)/\1/p' < erts/vsn.mk) + export ERLINTERFACEVERSION=$(sed -n 's/^EI_VSN[ ]*=[ ]*\([0-9.]\)/\1/p' < lib/erl_interface/vsn.mk) + + sed -i '/SSL_DYNAMIC_ONLY=/s:no:yes:' erts/configure + + CFLAGS="${CFLAGS} -fno-strict-aliasing" ./configure --prefix=/usr --enable-smp-support --enable-threads -enable-native-libs + make +} + +package() { + cd "$srcdir/otp_src_${pkgver/./-}" + make INSTALL_PREFIX="$pkgdir" install + +# fix prefix + cd "$pkgdir" + for i in usr/lib/erlang/bin/erl \ + usr/lib/erlang/bin/start \ + usr/lib/erlang/erts-${ERTSVERSION}/bin/erl \ + usr/lib/erlang/erts-${ERTSVERSION}/bin/start \ + usr/lib/erlang/releases/RELEASES ;do + sed -i "s#$pkgdir##" $i + done + +# fix symlinks + cd "$pkgdir/usr/lib/erlang/bin" + ln -sf ../erts-${ERTSVERSION}/bin/epmd + + cd "$pkgdir/usr/bin" + for file in *; do + ln -sfv ../lib/erlang/bin/$file + done + + ln -s ../lib/erlang/lib/erl_interface-${ERLINTERFACEVERSION}/bin/erl_call "$pkgdir/usr/bin/erl_call" + +# install documentation + install -d "$pkgdir/usr/share/doc/erlang" + install -D -m644 "$srcdir"/{COPYRIGHT,PR.template,README} "$pkgdir/usr/share/doc/erlang" + cp -r "$srcdir/man" "$pkgdir/usr/lib/erlang" + + install -Dm644 "$srcdir/otp_src_${pkgver/./-}/EPLICENCE" "$pkgdir/usr/share/licenses/$pkgname/EPLICENCE" + +} diff --git a/testing/fakeroot/PKGBUILD b/testing/fakeroot/PKGBUILD deleted file mode 100644 index 966f32b38..000000000 --- a/testing/fakeroot/PKGBUILD +++ /dev/null @@ -1,35 +0,0 @@ -# $Id: PKGBUILD 144101 2011-12-03 22:12:51Z allan $ -# Maintainer: Allan McRae <allan@archlinux.org> -# Contributor: Jochem Kossen <j.kossen@home.nl> - -pkgname=fakeroot -pkgver=1.18.2 -pkgrel=1 -pkgdesc="Gives a fake root environment, useful for building packages as a non-privileged user" -arch=('i686' 'x86_64') -license=('GPL') -url="http://packages.debian.org/fakeroot" -groups=('base-devel') -install=fakeroot.install -depends=('glibc' 'filesystem' 'sed' 'util-linux' 'sh') -options=('!libtool') -source=(http://ftp.debian.org/debian/pool/main/f/${pkgname}/${pkgname}_${pkgver}.orig.tar.bz2) -md5sums=('79f32331358ad58499704ea5e19fd0ae') - -build() { - cd "${srcdir}/${pkgname}-${pkgver}" - ./configure --prefix=/usr --libdir=/usr/lib/libfakeroot \ - --disable-static --with-ipc=sysv - make -} - -package() { - cd "${srcdir}/${pkgname}-${pkgver}" - make DESTDIR=${pkgdir} install - - install -dm755 ${pkgdir}/etc/ld.so.conf.d/ - echo '/usr/lib/libfakeroot' > ${pkgdir}/etc/ld.so.conf.d/fakeroot.conf - - # install README for sysv/tcp usage - install -Dm644 $srcdir/$pkgname-$pkgver/README $pkgdir/usr/share/doc/$pkgname/README -} diff --git a/testing/fakeroot/fakeroot.install b/testing/fakeroot/fakeroot.install deleted file mode 100644 index 986c91b06..000000000 --- a/testing/fakeroot/fakeroot.install +++ /dev/null @@ -1,14 +0,0 @@ -post_install() { - sbin/ldconfig -r . -} - -post_upgrade() { - if [ "$(vercmp $2 1.14.4-2)" -lt 0 ]; then - sed -i -e '/\/usr\/lib\/libfakeroot/d' etc/ld.so.conf - fi - sbin/ldconfig -r . -} - -pre_remove() { - sbin/ldconfig -r . -} diff --git a/testing/fontforge/PKGBUILD b/testing/fontforge/PKGBUILD deleted file mode 100644 index 91f7527d4..000000000 --- a/testing/fontforge/PKGBUILD +++ /dev/null @@ -1,39 +0,0 @@ -# $Id: PKGBUILD 145014 2011-12-14 10:50:55Z bisson $ -# Maintainer: Gaetan Bisson <bisson@archlinux.org> -# Contributor: Eric Belanger <eric@archlinux.org> -# Contributor: William Rea <sillywilly@gmail.com> - -pkgname=fontforge -pkgver=20111214 -pkgrel=1 -pkgdesc='Outline and bitmap font editor' -arch=('i686' 'x86_64') -url='http://fontforge.sourceforge.net/' -license=('BSD') -depends=('libxkbui' 'libxi' 'libxml2' 'pango' 'giflib' 'libtiff' 'python2') -options=('!libtool' '!makeflags') -source=("ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.xz") -sha1sums=('55c3f00c0b486492ba071fc479e1feb426562e2b') - -# git clone git://fontforge.git.sourceforge.net/gitroot/fontforge/fontforge; cd fontforge; git archive --prefix=${pkgname}-${pkgver}/ master | xz > ../${pkgname}-${pkgver}.tar.xz - -build() { - cd "${srcdir}/${pkgname}-${pkgver}" - sed -i 's/python /python2 /g' Makefile.dynamic.in - ./configure \ - --prefix=/usr \ - --mandir=/usr/share/man \ - --enable-type3 \ - --enable-devicetables \ - --with-regular-link \ - --with-python=python2 \ - --enable-pyextension \ - - make -} - -package() { - cd "${srcdir}/${pkgname}-${pkgver}" - make DESTDIR="${pkgdir}" install - install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" -} diff --git a/testing/freetds/PKGBUILD b/testing/freetds/PKGBUILD new file mode 100644 index 000000000..c91427f2c --- /dev/null +++ b/testing/freetds/PKGBUILD @@ -0,0 +1,28 @@ +# $Id: PKGBUILD 11362 2010-02-09 23:57:26Z dgriffiths $ +# Contributor: Aaron Malone <aaron@munge.net> + +pkgname=freetds +pkgver=0.91 +pkgrel=2 +pkgdesc='Library for accessing Sybase and MS SQL Server databases' +url='http://www.freetds.org' +arch=('i686' 'x86_64') +license=('LGPL') +depends=('unixodbc') +options=('!libtool') +backup=('etc/freetds/freetds.conf' + 'etc/freetds/locales.conf' + 'etc/freetds/pool.conf') +source=("ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/stable/${pkgname}-${pkgver}.tar.gz") +md5sums=('b14db5823980a32f0643d1a84d3ec3ad') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + ./configure --prefix=/usr --sysconfdir=/etc/freetds --mandir=/usr/share/man --enable-msdblib --with-tdsver=7.0 + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make DESTDIR="${pkgdir}" install +} diff --git a/testing/gcc/PKGBUILD b/testing/gcc/PKGBUILD deleted file mode 100644 index d57464ec6..000000000 --- a/testing/gcc/PKGBUILD +++ /dev/null @@ -1,259 +0,0 @@ -# $Id: PKGBUILD 144107 2011-12-04 02:41:48Z allan $ -# Maintainer: Allan McRae <allan@archlinux.org> - -# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc -# NOTE: libtool requires rebuilt with each new gcc version - -pkgname=('gcc' 'gcc-libs' 'gcc-fortran' 'gcc-objc' 'gcc-ada' 'gcc-go') -pkgver=4.6.2 -pkgrel=3 -_snapshot=4.6-20111125 -_libstdcppmanver=20110814 # Note: check source directory name when updating this -pkgdesc="The GNU Compiler Collection" -arch=('i686' 'x86_64') -license=('GPL' 'LGPL' 'FDL' 'custom') -url="http://gcc.gnu.org" -makedepends=('binutils>=2.22' 'libmpc' 'cloog' 'ppl' 'gcc-ada') -checkdepends=('dejagnu') -options=('!libtool' '!emptydirs') -source=(#ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2 - ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-${_snapshot}.tar.bz2 - ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-api.${_libstdcppmanver}.man.tar.bz2 - gcc_pure64.patch - gcc-hash-style-both.patch - gcc-pr49720.patch) -md5sums=('922b0ee688669c188d237bbd21d42d07' - 'ce920d2550ff7e042b9f091d27764d8f' - '4030ee1c08dd1e843c0225b772360e76' - '4df25b623799b148a0703eaeec8fdf3f' - 'f9d7e5b792c59175f3da3f8421447512') - -if [ -n "${_snapshot}" ]; then - _basedir="${srcdir}/gcc-${_snapshot}" -else - _basedir="${srcdir}/gcc-${pkgver}" -fi - -build() { - cd ${_basedir} - - # Do not install libiberty - sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in - - # Do not run fixincludes - sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in - - if [ "${CARCH}" = "x86_64" ]; then - patch -Np1 -i ${srcdir}/gcc_pure64.patch - fi - patch -Np0 -i ${srcdir}/gcc-hash-style-both.patch - - # fix compiler segfault in binutils testsuite - patch -Np1 -i ${srcdir}/gcc-pr49720.patch - - echo ${pkgver} > gcc/BASE-VER - - cd ${srcdir} - mkdir gcc-build && cd gcc-build - - ${_basedir}/configure --prefix=/usr \ - --libdir=/usr/lib --libexecdir=/usr/lib \ - --mandir=/usr/share/man --infodir=/usr/share/info \ - --with-bugurl=https://bugs.archlinux.org/ \ - --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ \ - --enable-shared --enable-threads=posix \ - --with-system-zlib --enable-__cxa_atexit \ - --disable-libunwind-exceptions --enable-clocale=gnu \ - --enable-gnu-unique-object --enable-linker-build-id \ - --with-ppl --enable-cloog-backend=isl \ - --enable-lto --enable-gold --enable-ld=default \ - --enable-plugin --with-plugin-ld=ld.gold \ - --disable-multilib --disable-libssp --disable-libstdcxx-pch \ - --enable-checking=release - make -} - -check() { - cd gcc-build - - # increase stack size to prevent test failures - # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31827 - ulimit -s 32768 - - # do not abort on error as some are "expected" - make -k check || true - ${_basedir}/contrib/test_summary -} - -package_gcc-libs() -{ - pkgdesc="Runtime libraries shipped by GCC" - groups=('base') - depends=('glibc>=2.14') - install=gcc-libs.install - - cd gcc-build - make -j1 -C $CHOST/libgcc DESTDIR=${pkgdir} install-shared - for lib in libmudflap libgomp libstdc++-v3/src; do - make -j1 -C $CHOST/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES - done - make -j1 -C $CHOST/libstdc++-v3/po DESTDIR=${pkgdir} install - make -j1 -C $CHOST/libgomp DESTDIR=${pkgdir} install-info - - make -j1 DESTDIR=${pkgdir} install-target-libquadmath - make -j1 DESTDIR=${pkgdir} install-target-libgfortran - make -j1 DESTDIR=${pkgdir} install-target-libobjc - - # remove unnecessary files installed by install-target-{libquadmath,libgfortran,libobjc} - rm -rf ${pkgdir}/usr/lib/{gcc/,libgfortran.spec} - - # remove static libraries - find ${pkgdir} -name *.a -delete - - # Install Runtime Library Exception - install -Dm644 ${_basedir}/COPYING.RUNTIME \ - ${pkgdir}/usr/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION -} - -package_gcc() -{ - pkgdesc="The GNU Compiler Collection - C and C++ frontends" - depends=("gcc-libs=$pkgver-$pkgrel" 'binutils>=2.22' 'libmpc' 'cloog' 'ppl') - groups=('base-devel') - install=gcc.install - - cd gcc-build - - # unfortunately it is much, much easier to install the lot and clean-up the mess... - make -j1 DESTDIR=${pkgdir} install - rm $pkgdir/usr/bin/{{$CHOST-,}gfortran,{$CHOST-,}gccgo,gnat*} - rm $pkgdir/usr/lib/*.so* - rm $pkgdir/usr/lib/lib{ffi,gfortran,go{,begin},objc,quadmath}.a - rm $pkgdir/usr/lib/libgfortran.spec - rm -r $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{ada{include,lib},finclude,include/objc} - rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/include/{ffi{,target}.h,quadmath{,_weak}.h} - rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{cc1obj{,plus},f951,gnat1,go1,libgfortranbegin.a} - rm -r $pkgdir/usr/lib/go - rm $pkgdir/usr/share/info/{gccgo,gfortran,gnat*,libgomp,libquadmath}.info - rm $pkgdir/usr/share/locale/{de,fr}/LC_MESSAGES/libstdc++.mo - rm $pkgdir/usr/share/man/man1/{gccgo,gfortran}.1 - rm $pkgdir/usr/share/man/man3/ffi* - - # many packages require these symlinks - install -dm755 ${pkgdir}/lib - ln -sf /usr/bin/cpp ${pkgdir}/lib/cpp - ln -sf gcc ${pkgdir}/usr/bin/cc - ln -sf g++ ${pkgdir}/usr/bin/c++ - - # install gengtype for plugin support - install -m755 gcc/build/gengtype $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/ - install -m644 gcc/gtype.state $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/ - - # POSIX conformance launcher scripts for c89 and c99 - cat > $pkgdir/usr/bin/c89 <<"EOF" -#!/bin/sh -fl="-std=c89" -for opt; do - case "$opt" in - -ansi|-std=c89|-std=iso9899:1990) fl="";; - -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2 - exit 1;; - esac -done -exec gcc $fl ${1+"$@"} -EOF - - cat > $pkgdir/usr/bin/c99 <<"EOF" -#!/bin/sh -fl="-std=c99" -for opt; do - case "$opt" in - -std=c99|-std=iso9899:1999) fl="";; - -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2 - exit 1;; - esac -done -exec gcc $fl ${1+"$@"} -EOF - - chmod 755 $pkgdir/usr/bin/c{8,9}9 - - # install the libstdc++ man pages - install -dm755 ${pkgdir}/usr/share/man/man3 - install -m644 ${srcdir}/man/man3/* ${pkgdir}/usr/share/man/man3/ - - # Install Runtime Library Exception - install -Dm644 ${_basedir}/COPYING.RUNTIME \ - ${pkgdir}/usr/share/licenses/gcc/RUNTIME.LIBRARY.EXCEPTION -} - -package_gcc-fortran() -{ - pkgdesc="Fortran front-end for GCC" - depends=("gcc=$pkgver-$pkgrel") - install=gcc-fortran.install - - cd gcc-build - make -j1 DESTDIR=${pkgdir} install-target-libquadmath - make -j1 DESTDIR=$pkgdir install-target-libgfortran - make -j1 -C $CHOST/libgomp DESTDIR=$pkgdir install-nodist_fincludeHEADERS - make -j1 -C gcc DESTDIR=$pkgdir fortran.install-{common,man,info} - install -Dm755 gcc/f951 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/f951 - - # remove libraries included in gcc-libs - rm ${pkgdir}/usr/lib/lib{gfortran,quadmath}.so* - rm ${pkgdir}/usr/share/info/libquadmath.info - - # Install Runtime Library Exception - install -Dm644 ${_basedir}/COPYING.RUNTIME \ - ${pkgdir}/usr/share/licenses/gcc-fortran/RUNTIME.LIBRARY.EXCEPTION -} - -package_gcc-objc() -{ - pkgdesc="Objective-C front-end for GCC" - depends=("gcc=$pkgver-$pkgrel") - - cd gcc-build - make -j1 DESTDIR=$pkgdir install-target-libobjc - install -dm755 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/ - install -m755 gcc/cc1obj{,plus} $pkgdir/usr/lib/gcc/$CHOST/$pkgver/ - - # remove libraries included in gcc-libs - rm ${pkgdir}/usr/lib/libobjc.so* - - # Install Runtime Library Exception - install -Dm644 ${_basedir}/COPYING.RUNTIME \ - ${pkgdir}/usr/share/licenses/gcc-objc/RUNTIME.LIBRARY.EXCEPTION -} - -package_gcc-ada() -{ - pkgdesc="Ada front-end for GCC (GNAT)" - depends=("gcc=$pkgver-$pkgrel") - install=gcc-ada.install - - cd gcc-build/gcc - make -j1 DESTDIR=$pkgdir ada.install-{common,info} - install -m755 gnat1 $pkgdir/usr/lib/gcc/$CHOST/$pkgver - - # Install Runtime Library Exception - install -Dm644 ${_basedir}/COPYING.RUNTIME \ - ${pkgdir}/usr/share/licenses/gcc-ada/RUNTIME.LIBRARY.EXCEPTION -} - -package_gcc-go() -{ - pkgdesc="Go front-end for GCC" - depends=("gcc=$pkgver-$pkgrel") - install=gcc-go.install - - cd gcc-build - make -j1 DESTDIR=$pkgdir install-target-libgo - make -j1 -C gcc DESTDIR=$pkgdir go.install-{common,man,info} - install -Dm755 gcc/go1 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/go1 - - # Install Runtime Library Exception - install -Dm644 ${_basedir}/COPYING.RUNTIME \ - ${pkgdir}/usr/share/licenses/gcc-go/RUNTIME.LIBRARY.EXCEPTION -} diff --git a/testing/gcc/gcc-ada.install b/testing/gcc/gcc-ada.install deleted file mode 100644 index df0553a4f..000000000 --- a/testing/gcc/gcc-ada.install +++ /dev/null @@ -1,20 +0,0 @@ -infodir=usr/share/info -filelist=(gnat-style.info gnat_rm.info gnat_ugn.info) - -post_install() { - [ -x usr/bin/install-info ] || return 0 - for file in ${filelist[@]}; do - install-info $infodir/$file.gz $infodir/dir 2> /dev/null - done -} - -post_upgrade() { - post_install $1 -} - -pre_remove() { - [ -x usr/bin/install-info ] || return 0 - for file in ${filelist[@]}; do - install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null - done -} diff --git a/testing/gcc/gcc-fortran.install b/testing/gcc/gcc-fortran.install deleted file mode 100644 index b15d89a97..000000000 --- a/testing/gcc/gcc-fortran.install +++ /dev/null @@ -1,16 +0,0 @@ -infodir=usr/share/info -file="gfortran.info" - -post_install() { - [ -x usr/bin/install-info ] || return 0 - install-info $infodir/$file.gz $infodir/dir 2> /dev/null -} - -post_upgrade() { - post_install $1 -} - -pre_remove() { - [ -x usr/bin/install-info ] || return 0 - install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null -} diff --git a/testing/gcc/gcc-go.install b/testing/gcc/gcc-go.install deleted file mode 100644 index 7dc50dee5..000000000 --- a/testing/gcc/gcc-go.install +++ /dev/null @@ -1,20 +0,0 @@ -infodir=usr/share/info -filelist=(gccgo.info) - -post_install() { - [ -x usr/bin/install-info ] || return 0 - for file in ${filelist[@]}; do - install-info $infodir/$file.gz $infodir/dir 2> /dev/null - done -} - -post_upgrade() { - post_install $1 -} - -pre_remove() { - [ -x usr/bin/install-info ] || return 0 - for file in ${filelist[@]}; do - install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null - done -} diff --git a/testing/gcc/gcc-hash-style-both.patch b/testing/gcc/gcc-hash-style-both.patch deleted file mode 100644 index 8b59f4535..000000000 --- a/testing/gcc/gcc-hash-style-both.patch +++ /dev/null @@ -1,122 +0,0 @@ ---- gcc/config/alpha/linux-elf.h.orig 2010-12-09 23:27:07.000000000 +1000 -+++ gcc/config/alpha/linux-elf.h 2011-03-11 10:01:47.770000457 +1000 -@@ -41,7 +41,7 @@ - - #define ELF_DYNAMIC_LINKER LINUX_DYNAMIC_LINKER - --#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ -+#define LINK_SPEC "-m elf64alpha --hash-style=both %{G*} %{relax:-relax} \ - %{O*:-O3} %{!O*:-O1} \ - %{shared:-shared} \ - %{!shared: \ ---- gcc/config/i386/linux64.h.orig 2011-03-03 08:35:36.000000000 +1000 -+++ gcc/config/i386/linux64.h 2011-03-11 10:01:47.770000457 +1000 -@@ -78,7 +78,7 @@ - %{!mno-sse2avx:%{mavx:-msse2avx}} %{msse2avx:%{!mavx:-msse2avx}}" - - #undef LINK_SPEC --#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} \ -+#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} --hash-style=both \ - %{shared:-shared} \ - %{!shared: \ - %{!static: \ ---- gcc/config/i386/linux.h.orig 2011-01-15 04:45:06.000000000 +1000 -+++ gcc/config/i386/linux.h 2011-03-11 10:01:47.770000457 +1000 -@@ -104,7 +104,7 @@ - { "dynamic_linker", LINUX_DYNAMIC_LINKER } - - #undef LINK_SPEC --#define LINK_SPEC "-m %(link_emulation) %{shared:-shared} \ -+#define LINK_SPEC "-m %(link_emulation) --hash-style=both %{shared:-shared} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ ---- gcc/config/ia64/linux.h.orig 2010-12-09 23:27:07.000000000 +1000 -+++ gcc/config/ia64/linux.h 2011-03-11 10:01:47.770000457 +1000 -@@ -64,7 +64,7 @@ - #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2" - - #undef LINK_SPEC --#define LINK_SPEC "\ -+#define LINK_SPEC "--hash-style=both \ - %{shared:-shared} \ - %{!shared: \ - %{!static: \ ---- gcc/config/rs6000/linux64.h.orig 2011-02-11 03:30:10.000000000 +1000 -+++ gcc/config/rs6000/linux64.h 2011-03-11 10:03:34.280000457 +1000 -@@ -389,11 +389,11 @@ - CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64) - - --#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \ -+#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \ - %{rdynamic:-export-dynamic} \ - -dynamic-linker " LINUX_DYNAMIC_LINKER32 "}}" - --#define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \ -+#define LINK_OS_LINUX_SPEC64 "-m elf64ppc --hash-style=both %{!shared: %{!static: \ - %{rdynamic:-export-dynamic} \ - -dynamic-linker " LINUX_DYNAMIC_LINKER64 "}}" - ---- gcc/config/rs6000/sysv4.h.orig 2011-01-28 04:36:03.000000000 +1000 -+++ gcc/config/rs6000/sysv4.h 2011-03-11 10:01:47.773333792 +1000 -@@ -830,7 +830,7 @@ - #define LINUX_DYNAMIC_LINKER \ - CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER) - --#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \ -+#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \ - %{rdynamic:-export-dynamic} \ - -dynamic-linker " LINUX_DYNAMIC_LINKER "}}" - ---- gcc/config/s390/linux.h.orig 2010-12-09 23:27:07.000000000 +1000 -+++ gcc/config/s390/linux.h 2011-03-11 10:01:47.770000457 +1000 -@@ -77,7 +77,7 @@ - - #undef LINK_SPEC - #define LINK_SPEC \ -- "%{m31:-m elf_s390}%{m64:-m elf64_s390} \ -+ "%{m31:-m elf_s390}%{m64:-m elf64_s390} --hash-style=both \ - %{shared:-shared} \ - %{!shared: \ - %{static:-static} \ ---- gcc/config/sparc/linux64.h.orig 2011-02-17 23:57:21.000000000 +1000 -+++ gcc/config/sparc/linux64.h 2011-03-11 10:01:47.770000457 +1000 -@@ -113,7 +113,7 @@ - { "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \ - { "link_arch", LINK_ARCH_SPEC }, - --#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,%R/usr/lib %{shared:-shared} \ -+#define LINK_ARCH32_SPEC "-m elf32_sparc --hash-style=both -Y P,%R/usr/lib %{shared:-shared} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -@@ -121,7 +121,7 @@ - %{static:-static}} \ - " - --#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \ -+#define LINK_ARCH64_SPEC "-m elf64_sparc --hash-style=both -Y P,%R/usr/lib64 %{shared:-shared} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -@@ -193,7 +193,7 @@ - #else /* !SPARC_BI_ARCH */ - - #undef LINK_SPEC --#define LINK_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \ -+#define LINK_SPEC "-m elf64_sparc --hash-style=both -Y P,%R/usr/lib64 %{shared:-shared} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ ---- gcc/config/sparc/linux.h.orig 2011-01-27 06:30:12.000000000 +1000 -+++ gcc/config/sparc/linux.h 2011-03-11 10:01:47.770000457 +1000 -@@ -74,7 +74,7 @@ - #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" - - #undef LINK_SPEC --#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \ -+#define LINK_SPEC "-m elf32_sparc --hash-style=both -Y P,/usr/lib %{shared:-shared} \ - %{!mno-relax:%{!r:-relax}} \ - %{!shared: \ - %{!static: \ diff --git a/testing/gcc/gcc-libs.install b/testing/gcc/gcc-libs.install deleted file mode 100644 index 23553b8f0..000000000 --- a/testing/gcc/gcc-libs.install +++ /dev/null @@ -1,16 +0,0 @@ -infodir=usr/share/info -filelist=(libgomp.info libquadmath.info) - -post_upgrade() { - [ -x usr/bin/install-info ] || return 0 - for file in ${filelist[@]}; do - install-info $infodir/$file.gz $infodir/dir 2> /dev/null - done -} - -pre_remove() { - [ -x usr/bin/install-info ] || return 0 - for file in ${filelist[@]}; do - install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null - done -} diff --git a/testing/gcc/gcc-pr49720.patch b/testing/gcc/gcc-pr49720.patch deleted file mode 100644 index 8f50c4120..000000000 --- a/testing/gcc/gcc-pr49720.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- trunk/gcc/simplify-rtx.c 2011/10/28 05:55:10 180603 -+++ trunk/gcc/simplify-rtx.c 2011/10/28 06:35:31 180604 -@@ -4352,10 +4352,20 @@ - { - rtx x = XEXP (op0, 0); - rtx c = XEXP (op0, 1); -+ enum rtx_code invcode = op0code == PLUS ? MINUS : PLUS; -+ rtx tem = simplify_gen_binary (invcode, cmp_mode, op1, c); - -- c = simplify_gen_binary (op0code == PLUS ? MINUS : PLUS, -- cmp_mode, op1, c); -- return simplify_gen_relational (code, mode, cmp_mode, x, c); -+ /* Detect an infinite recursive condition, where we oscillate at this -+ simplification case between: -+ A + B == C <---> C - B == A, -+ where A, B, and C are all constants with non-simplifiable expressions, -+ usually SYMBOL_REFs. */ -+ if (GET_CODE (tem) == invcode -+ && CONSTANT_P (x) -+ && rtx_equal_p (c, XEXP (tem, 1))) -+ return NULL_RTX; -+ -+ return simplify_gen_relational (code, mode, cmp_mode, x, tem); - } - - /* (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))) is diff --git a/testing/gcc/gcc.install b/testing/gcc/gcc.install deleted file mode 100644 index 3407a5e1f..000000000 --- a/testing/gcc/gcc.install +++ /dev/null @@ -1,20 +0,0 @@ -infodir=usr/share/info -filelist=(cpp.info cppinternals.info gcc.info gccinstall.info gccint.info) - -post_install() { - [ -x usr/bin/install-info ] || return 0 - for file in ${filelist[@]}; do - install-info $infodir/$file.gz $infodir/dir 2> /dev/null - done -} - -post_upgrade() { - post_install $1 -} - -pre_remove() { - [ -x usr/bin/install-info ] || return 0 - for file in ${filelist[@]}; do - install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null - done -} diff --git a/testing/gcc/gcc_pure64.patch b/testing/gcc/gcc_pure64.patch deleted file mode 100644 index 8c0baf8e2..000000000 --- a/testing/gcc/gcc_pure64.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff -Naur gcc-4.2.0.orig/gcc/config/i386/linux64.h gcc-4.2.0/gcc/config/i386/linux64.h ---- gcc-4.2.0.orig/gcc/config/i386/linux64.h 2007-05-16 19:21:19.000000000 -0400 -+++ gcc-4.2.0/gcc/config/i386/linux64.h 2007-05-18 17:04:05.000000000 -0400 -@@ -49,8 +49,8 @@ - When the -shared link option is used a final link is not being - done. */ - --#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" --#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2" -+#define GLIBC_DYNAMIC_LINKER32 "/lib32/ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux-x86-64.so.2" - - #undef LINK_SPEC - #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \ -diff -Naur gcc-4.2.0.orig/gcc/config/i386/t-linux64 gcc-4.2.0/gcc/config/i386/t-linux64 ---- gcc-4.2.0.orig/gcc/config/i386/t-linux64 2007-05-16 19:21:19.000000000 -0400 -+++ gcc-4.2.0/gcc/config/i386/t-linux64 2007-05-18 17:04:36.000000000 -0400 -@@ -6,7 +6,7 @@ - - MULTILIB_OPTIONS = m64/m32 - MULTILIB_DIRNAMES = 64 32 --MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib) -+MULTILIB_OSDIRNAMES = ../lib ../lib32 - - LIBGCC = stmp-multilib - INSTALL_LIBGCC = install-multilib diff --git a/testing/ghc/PKGBUILD b/testing/ghc/PKGBUILD deleted file mode 100644 index aef26d06e..000000000 --- a/testing/ghc/PKGBUILD +++ /dev/null @@ -1,43 +0,0 @@ -# $Id: PKGBUILD 142984 2011-11-19 18:41:40Z vesa $ -# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org> -# Special note for devs looking to upgrade this package: -# ghc places a unique hash for each library when it is built. -# Libraries depend on versions specified by those hashes. -# This implies that all libraries need to be rebuilt when ghc is rebuilt. -# Also, due to dependency loop problems, haskell-ghc-paths and haddock -# do not carry version dependencies. You will have to remember to build them too. -pkgname=ghc -pkgver=7.2.2 -pkgrel=1 -pkgdesc="The Glasgow Haskell Compiler" -arch=(i686 x86_64) -url="http://www.haskell.org/ghc/" -license=("custom") -depends=('perl' 'gmp>=5.0' gcc) -makedepends=(ghc happy perl libxslt docbook-xsl) -install=ghc.install -options=(!strip) -groups=(haskell) -source=("http://www.haskell.org/ghc/dist/$pkgver/ghc-$pkgver-src.tar.bz2" - build.mk) - -build() { - cd $srcdir/$pkgname-$pkgver - - cp $srcdir/build.mk mk/build.mk - - ./configure --prefix=/usr - make -j1 || return 1 -} - -package() { - cd $srcdir/$pkgname-$pkgver - - make DESTDIR=$pkgdir install - - install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/ghc/license - install -d $pkgdir/usr/share/haskell -} - -md5sums=('fa19d9fe5049b7a1352b0b7c9880c141' - '5a3e0880c80b1dcecf779ff2e63a9c0d') diff --git a/testing/ghc/build.mk b/testing/ghc/build.mk deleted file mode 100644 index f918a0f16..000000000 --- a/testing/ghc/build.mk +++ /dev/null @@ -1,150 +0,0 @@ -# ----------------------------------------------------------------------------- -# A Sample build.mk -# -# Uncomment one of the following BuildFlavour settings to get the desired -# overall build type, and then tweak the options in the relevant section -# below. - -# Uncomment one of these to select a build profile below: - -# Full build with max optimisation (slow build) -BuildFlavour = perf - -# Fastest build (libs unoptimised): -#BuildFlavour = quickest - -# Fast build with optimised libraries: -#BuildFlavour = quick - -# Profile the stage2 compiler: -#BuildFlavour = prof - -# A development build, working on the stage 1 compiler: -#BuildFlavour = devel1 - -# A development build, working on the stage 2 compiler: -#BuildFlavour = devel2 - -GhcLibWays = v - -# -------- 1. A Performance/Distribution build-------------------------------- - -ifeq "$(BuildFlavour)" "perf" - -# perf matches the default settings, repeated here for comparison: - -SRC_HC_OPTS = -O -H64m -GhcStage1HcOpts = -O -fasm -GhcStage2HcOpts = -O2 -fasm -GhcHcOpts = -Rghc-timing -GhcLibHcOpts = -O2 -XGenerics -GhcLibWays += p - -ifeq "$(PlatformSupportsSharedLibs)" "YES" -GhcLibWays += dyn -endif - -endif - -# -------- A Fast build ------------------------------------------------------ - -ifeq "$(BuildFlavour)" "quickest" - -SRC_HC_OPTS = -H64m -O0 -fasm -GhcStage1HcOpts = -O -fasm -GhcStage2HcOpts = -O0 -fasm -GhcLibHcOpts = -O0 -fasm -SplitObjs = NO -HADDOCK_DOCS = NO -BUILD_DOCBOOK_HTML = NO -BUILD_DOCBOOK_PS = NO -BUILD_DOCBOOK_PDF = NO - -endif - -# -------- A Fast build with optimised libs ---------------------------------- - -ifeq "$(BuildFlavour)" "quick" - -SRC_HC_OPTS = -H64m -O0 -fasm -GhcStage1HcOpts = -O -fasm -GhcStage2HcOpts = -O0 -fasm -GhcLibHcOpts = -O -fasm -SplitObjs = NO -HADDOCK_DOCS = NO -BUILD_DOCBOOK_HTML = NO -BUILD_DOCBOOK_PS = NO -BUILD_DOCBOOK_PDF = NO - -endif - -# -------- Profile the stage2 compiler --------------------------------------- - -ifeq "$(BuildFlavour)" "prof" - -SRC_HC_OPTS = -H64m -O0 -fasm -GhcStage1HcOpts = -O -fasm -GhcStage2HcOpts = -O -fasm -GhcLibHcOpts = -O -fasm - -GhcLibWays += p -GhcProfiled = YES - -SplitObjs = NO -HADDOCK_DOCS = NO -BUILD_DOCBOOK_HTML = NO -BUILD_DOCBOOK_PS = NO -BUILD_DOCBOOK_PDF = NO - -endif - - -# -------- A Development build (stage 1) ------------------------------------- - -ifeq "$(BuildFlavour)" "devel1" - -SRC_HC_OPTS = -H64m -O -fasm -GhcLibHcOpts = -O -dcore-lint -GhcStage1HcOpts = -Rghc-timing -O0 -DDEBUG -GhcStage2HcOpts = -Rghc-timing -O -fasm -SplitObjs = NO -HADDOCK_DOCS = NO -BUILD_DOCBOOK_HTML = NO -BUILD_DOCBOOK_PS = NO -BUILD_DOCBOOK_PDF = NO - -endif - -# -------- A Development build (stage 2) ------------------------------------- - -ifeq "$(BuildFlavour)" "devel2" - -SRC_HC_OPTS = -H64m -O -fasm -GhcLibHcOpts = -O -dcore-lint -GhcStage1HcOpts = -Rghc-timing -O -fasm -GhcStage2HcOpts = -Rghc-timing -O0 -DDEBUG -SplitObjs = NO -HADDOCK_DOCS = NO -BUILD_DOCBOOK_HTML = NO -BUILD_DOCBOOK_PS = NO -BUILD_DOCBOOK_PDF = NO - -endif - -# ----------------------------------------------------------------------------- -# Other settings that might be useful - -# profiled RTS -#GhcRtsCcOpts = -pg -g - -# Optimised/profiled RTS -#GhcRtsCcOpts = -O2 -pg - -#GhcRtsWithFrontPanel = YES -#SRC_HC_OPTS += `gtk-config --libs` - -# NoFib settings -NoFibWays = -STRIP=: - - diff --git a/testing/ghc/ghc.install b/testing/ghc/ghc.install deleted file mode 100644 index 7d56083bc..000000000 --- a/testing/ghc/ghc.install +++ /dev/null @@ -1,19 +0,0 @@ -pkgname=ghc - -pre_upgrade() { - cat << EOF - ==> Unregistering cabalized packages... -EOF - cd /usr/share/haskell/ && (for a in *; do ghc-pkg unregister --force $a &> /dev/null; done; cd - > /dev/null ) - cat << EOF - ==> Done. -EOF - -} - -post_upgrade() { - cat << EOF - ==> All cabalized and yaourt-installed packages need to be reinstalled now. - ==> See /usr/share/haskell/ and ghc-pkg list --user for a tentative list of affected packages. -EOF -} diff --git a/testing/glibc/PKGBUILD b/testing/glibc/PKGBUILD deleted file mode 100644 index 4e0c2d26e..000000000 --- a/testing/glibc/PKGBUILD +++ /dev/null @@ -1,204 +0,0 @@ -# $Id: PKGBUILD 144073 2011-12-02 21:32:48Z allan $ -# Maintainer: Allan McRae <allan@archlinux.org> - -# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc -# NOTE: valgrind requires rebuilt with each major glibc version - -pkgname=glibc -pkgver=2.14.1 -pkgrel=2 -_glibcdate=20111025 -pkgdesc="GNU C Library" -arch=('i686' 'x86_64') -url="http://www.gnu.org/software/libc" -license=('GPL' 'LGPL') -groups=('base') -depends=('linux-api-headers>=3.1' 'tzdata') -makedepends=('gcc>=4.6') -backup=(etc/gai.conf - etc/locale.gen - etc/nscd.conf) -options=('!strip') -install=glibc.install -source=(ftp://ftp.archlinux.org/other/glibc/${pkgname}-${pkgver}_${_glibcdate}.tar.xz - glibc-2.10-dont-build-timezone.patch - glibc-2.10-bz4781.patch - glibc-__i686.patch - glibc-2.12.1-static-shared-getpagesize.patch - glibc-2.12.2-ignore-origin-of-privileged-program.patch - glibc-2.13-futex.patch - glibc-2.14-libdl-crash.patch - glibc-2.14-revert-4768ae77.patch - glibc-2.14-reexport-rpc-interface.patch - glibc-2.14-reinstall-nis-rpc-headers.patch - nscd - locale.gen.txt - locale-gen) -md5sums=('c52a15134dfa9f2c94f2ccd4cb155cf1' - '4dadb9203b69a3210d53514bb46f41c3' - '0c5540efc51c0b93996c51b57a8540ae' - '40cd342e21f71f5e49e32622b25acc52' - 'a3ac6f318d680347bb6e2805d42b73b2' - 'b042647ea7d6f22ad319e12e796bd13e' - '7d0154b7e17ea218c9fa953599d24cc4' - '6970bcfeb3bf88913436d5112d16f588' - '7da8c554a3b591c7401d7023b1928afc' - 'c5de2a946215d647c8af5432ec4b0da0' - '55febbb72139ac7b65757df085024b83' - 'b587ee3a70c9b3713099295609afde49' - '07ac979b6ab5eeb778d55f041529d623' - '476e9113489f93b348b21e144b6a8fcf') - - -mksource() { - git clone git://sourceware.org/git/glibc.git - pushd glibc - git checkout -b glibc-2.14-arch origin/release/2.14/master - popd - tar -cvJf glibc-${pkgver}_${_glibcdate}.tar.xz glibc/* -} - -build() { - cd ${srcdir}/glibc - - # timezone data is in separate package (tzdata) - patch -Np1 -i ${srcdir}/glibc-2.10-dont-build-timezone.patch - - # http://sources.redhat.com/bugzilla/show_bug.cgi?id=4781 - patch -Np1 -i ${srcdir}/glibc-2.10-bz4781.patch - - # http://sources.redhat.com/bugzilla/show_bug.cgi?id=411 - # http://sourceware.org/ml/libc-alpha/2009-07/msg00072.html - patch -Np1 -i ${srcdir}/glibc-__i686.patch - - # http://sourceware.org/bugzilla/show_bug.cgi?id=11929 - # using Fedora "fix" as patch in that bug report causes breakages... - patch -Np1 -i ${srcdir}/glibc-2.12.1-static-shared-getpagesize.patch - - # http://www.exploit-db.com/exploits/15274/ - # http://sourceware.org/git/?p=glibc.git;a=patch;h=d14e6b09 (only fedora branch...) - patch -Np1 -i ${srcdir}/glibc-2.12.2-ignore-origin-of-privileged-program.patch - - # http://sourceware.org/bugzilla/show_bug.cgi?id=12403 - patch -Np1 -i ${srcdir}/glibc-2.13-futex.patch - - # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=675155e9 (only fedora branch...) - # http://sourceware.org/ml/libc-alpha/2011-06/msg00006.html - patch -Np1 -i ${srcdir}/glibc-2.14-libdl-crash.patch - - # Revert commit causing issues with crappy DNS servers... - # Will be removed when workaround becomes annoying to maintain - USE A BETTER DNS SERVER! - # Note that both these patches do not fix the issue completely: - # http://sourceware.org/bugzilla/show_bug.cgi?id=13013 - # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=032c0ee3 (only fedora branch...) - patch -Np1 -i ${srcdir}/glibc-2.14-revert-4768ae77.patch - - # re-export RPC interface until libtirpc is ready as a replacement - # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=acee4873 (only fedora branch...) - patch -Np1 -i ${srcdir}/glibc-2.14-reexport-rpc-interface.patch - # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=bdd816a3 (only fedora branch...) - patch -Np1 -i ${srcdir}/glibc-2.14-reinstall-nis-rpc-headers.patch - - install -dm755 ${pkgdir}/etc - touch ${pkgdir}/etc/ld.so.conf - - cd ${srcdir} - mkdir glibc-build - cd glibc-build - - if [[ ${CARCH} = "i686" ]]; then - # Hack to fix NPTL issues with Xen, only required on 32bit platforms - export CFLAGS="${CFLAGS} -mno-tls-direct-seg-refs" - fi - - echo "slibdir=/lib" >> configparms - - # remove hardening options from CFLAGS for building libraries - CFLAGS=${CFLAGS/-fstack-protector/} - CFLAGS=${CFLAGS/-D_FORTIFY_SOURCE=2/} - - ${srcdir}/glibc/configure --prefix=/usr \ - --libdir=/usr/lib --libexecdir=/usr/lib \ - --with-headers=/usr/include \ - --enable-add-ons=nptl,libidn \ - --enable-kernel=2.6.27 \ - --with-tls --with-__thread \ - --enable-bind-now --without-gd \ - --without-cvs --disable-profile \ - --enable-multi-arch - - # build libraries with hardening disabled - echo "build-programs=no" >> configparms - make - - # re-enable hardening for programs - sed -i "s#=no#=yes#" configparms - echo "CC += -fstack-protector -D_FORTIFY_SOURCE=2" >> configparms - echo "CXX += -fstack-protector -D_FORTIFY_SOURCE=2" >> configparms - make - - # remove harding in preparation to run test-suite - sed -i '2,4d' configparms -} - -check() { - cd ${srcdir}/glibc-build - - # some errors are expected - manually check log files - make -k check || true -} - -package() { - cd ${srcdir}/glibc-build - make install_root=${pkgdir} install - - rm -f ${pkgdir}/etc/ld.so.{cache,conf} - - install -dm755 ${pkgdir}/etc/rc.d - install -dm755 ${pkgdir}/usr/sbin - install -dm755 ${pkgdir}/usr/lib/locale - install -m644 ${srcdir}/glibc/nscd/nscd.conf ${pkgdir}/etc/nscd.conf - install -m755 ${srcdir}/nscd ${pkgdir}/etc/rc.d/nscd - install -m755 ${srcdir}/locale-gen ${pkgdir}/usr/sbin - install -m644 ${srcdir}/glibc/posix/gai.conf ${pkgdir}/etc/gai.conf - - sed -i -e 's/^\tserver-user/#\tserver-user/' ${pkgdir}/etc/nscd.conf - - # create /etc/locale.gen - install -m644 ${srcdir}/locale.gen.txt ${pkgdir}/etc/locale.gen - sed -i "s|/| |g" ${srcdir}/glibc/localedata/SUPPORTED - sed -i 's|\\| |g' ${srcdir}/glibc/localedata/SUPPORTED - sed -i "s|SUPPORTED-LOCALES=||" ${srcdir}/glibc/localedata/SUPPORTED - cat ${srcdir}/glibc/localedata/SUPPORTED >> ${pkgdir}/etc/locale.gen - sed -i "s|^|#|g" ${pkgdir}/etc/locale.gen - - if [[ ${CARCH} = "x86_64" ]]; then - # fix for the linker - sed -i '/RTLDLIST/s%lib64%lib%' ${pkgdir}/usr/bin/ldd - # Comply with multilib binaries, they look for the linker in /lib64 - mkdir ${pkgdir}/lib64 - cd ${pkgdir}/lib64 - ln -v -s ../lib/ld* . - fi - - # manually strip files as stripping libpthread-*.so and libthread_db.so - # with the default $STRIP_SHARED breaks gdb and stripping ld-*.so breaks - # valgrind on x86_64 - - cd $pkgdir - strip $STRIP_BINARIES sbin/{ldconfig,sln} \ - usr/bin/{gencat,getconf,getent,iconv,locale} \ - usr/bin/{localedef,pcprofiledump,rpcgen,sprof} \ - usr/lib/getconf/* \ - usr/sbin/{iconvconfig,nscd} - [[ $CARCH = "i686" ]] && strip $STRIP_BINARIES usr/bin/lddlibc4 - - strip $STRIP_STATIC usr/lib/*.a \ - lib/{{ld,libpthread}-${pkgver},libthread_db-1.0}.so - - strip $STRIP_SHARED lib/{libanl,libBrokenLocale,libc,libcidn,libcrypt}-${pkgver}.so \ - lib/libnss_{compat,dns,files,hesiod,nis,nisplus}-${pkgver}.so \ - lib/{libdl,libm,libnsl,libresolv,librt,libutil}-${pkgver}.so \ - lib/{libmemusage,libpcprofile,libSegFault}.so \ - usr/lib/{pt_chown,{audit,gconv}/*.so} -} diff --git a/testing/glibc/glibc-2.10-bz4781.patch b/testing/glibc/glibc-2.10-bz4781.patch deleted file mode 100644 index cf1a97a18..000000000 --- a/testing/glibc/glibc-2.10-bz4781.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff -Naur glibc-old/sysdeps/unix/sysv/linux/i386/clone.S glibc/sysdeps/unix/sysv/linux/i386/clone.S ---- glibc-old/sysdeps/unix/sysv/linux/i386/clone.S 2009-05-09 13:35:30.000000000 +1000 -+++ glibc/sysdeps/unix/sysv/linux/i386/clone.S 2009-05-23 13:27:46.000000000 +1000 -@@ -120,9 +120,6 @@ - ret - - L(thread_start): -- cfi_startproc; -- /* Clearing frame pointer is insufficient, use CFI. */ -- cfi_undefined (eip); - /* Note: %esi is zero. */ - movl %esi,%ebp /* terminate the stack frame */ - #ifdef RESET_PID -@@ -155,7 +152,6 @@ - jmp L(haspid) - .previous - #endif -- cfi_endproc; - - cfi_startproc - PSEUDO_END (BP_SYM (__clone)) -diff -Naur glibc-old/sysdeps/unix/sysv/linux/x86_64/clone.S glibc/sysdeps/unix/sysv/linux/x86_64/clone.S ---- glibc-old/sysdeps/unix/sysv/linux/x86_64/clone.S 2009-05-09 13:35:30.000000000 +1000 -+++ glibc/sysdeps/unix/sysv/linux/x86_64/clone.S 2009-05-23 13:27:46.000000000 +1000 -@@ -89,9 +89,6 @@ - ret - - L(thread_start): -- cfi_startproc; -- /* Clearing frame pointer is insufficient, use CFI. */ -- cfi_undefined (rip); - /* Clear the frame pointer. The ABI suggests this be done, to mark - the outermost frame obviously. */ - xorl %ebp, %ebp -@@ -116,7 +113,6 @@ - /* Call exit with return value from function call. */ - movq %rax, %rdi - call HIDDEN_JUMPTARGET (_exit) -- cfi_endproc; - - cfi_startproc; - PSEUDO_END (BP_SYM (__clone)) diff --git a/testing/glibc/glibc-2.10-dont-build-timezone.patch b/testing/glibc/glibc-2.10-dont-build-timezone.patch deleted file mode 100644 index d3abeff17..000000000 --- a/testing/glibc/glibc-2.10-dont-build-timezone.patch +++ /dev/null @@ -1,13 +0,0 @@ -timezone data has been split into the package sys-libs/timezone-data - ---- glibc-2.4/Makeconfig -+++ glibc-2.4/Makeconfig -@@ -931,7 +931,7 @@ - stdlib stdio-common libio malloc string wcsmbs time dirent \ - grp pwd posix io termios resource misc socket sysvipc gmon \ - gnulib iconv iconvdata wctype manual shadow gshadow po argp \ -- crypt nss localedata timezone rt conform debug \ -+ crypt nss localedata rt conform debug \ - $(add-on-subdirs) $(dlfcn) $(binfmt-subdir) - - ifndef avoid-generated diff --git a/testing/glibc/glibc-2.12.1-static-shared-getpagesize.patch b/testing/glibc/glibc-2.12.1-static-shared-getpagesize.patch deleted file mode 100644 index e84754279..000000000 --- a/testing/glibc/glibc-2.12.1-static-shared-getpagesize.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- glibc-2.12-192-g7c08a05/sysdeps/unix/sysv/linux/getpagesize.c -+++ glibc-2.12.90-17/sysdeps/unix/sysv/linux/getpagesize.c -@@ -28,7 +28,7 @@ - int - __getpagesize () - { --#ifdef __ASSUME_AT_PAGESIZE -+#if 0 && defined __ASSUME_AT_PAGESIZE - assert (GLRO(dl_pagesize) != 0); - return GLRO(dl_pagesize); - #else diff --git a/testing/glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch b/testing/glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch deleted file mode 100644 index ce089b49c..000000000 --- a/testing/glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch +++ /dev/null @@ -1,26 +0,0 @@ -From d14e6b09d60d52cc12f0396c3106b14e1bd0fe8f Mon Sep 17 00:00:00 2001 -From: Andreas Schwab <schwab@redhat.com> -Date: Thu, 9 Dec 2010 15:00:59 +0100 -Subject: [PATCH 1/1] Ignore origin of privileged program - ---- - ChangeLog | 5 +++++ - elf/dl-object.c | 3 +++ - 2 files changed, 8 insertions(+), 0 deletions(-) - -diff --git a/elf/dl-object.c b/elf/dl-object.c -index 22a1635..7674d49 100644 ---- a/elf/dl-object.c -+++ b/elf/dl-object.c -@@ -214,6 +214,9 @@ _dl_new_object (char *realname, const char *libname, int type, - out: - new->l_origin = origin; - } -+ else if (INTUSE(__libc_enable_secure) && type == lt_executable) -+ /* The origin of a privileged program cannot be trusted. */ -+ new->l_origin = (char *) -1; - - return new; - } --- -1.7.2 diff --git a/testing/glibc/glibc-2.13-futex.patch b/testing/glibc/glibc-2.13-futex.patch deleted file mode 100644 index 9b9c3ac45..000000000 --- a/testing/glibc/glibc-2.13-futex.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S -+++ a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S -@@ -210,7 +210,7 @@ pthread_rwlock_timedrdlock: - cfi_restore(%r12) - retq - --#ifdef __ASSUME_PRIVATE_FUTEX -+#ifdef __ASSUME_FUTEX_CLOCK_REALTIME - cfi_adjust_cfa_offset(16) - cfi_rel_offset(%r12, 8) - cfi_rel_offset(%r13, 0) ---- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S -+++ a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S -@@ -192,7 +192,7 @@ pthread_rwlock_timedwrlock: - - 7: movq %rdx, %rax - --#ifndef __ASSUME_PRIVATE_FUTEX -+#ifndef __ASSUME_FUTEX_CLOCK_REALTIME - addq $16, %rsp - cfi_adjust_cfa_offset(-16) - popq %r14 -@@ -207,7 +207,7 @@ pthread_rwlock_timedwrlock: - cfi_restore(%r12) - retq - --#ifdef __ASSUME_PRIVATE_FUTEX -+#ifdef __ASSUME_FUTEX_CLOCK_REALTIME - cfi_adjust_cfa_offset(16) - cfi_rel_offset(%r12, 8) - cfi_rel_offset(%r13, 0) diff --git a/testing/glibc/glibc-2.14-libdl-crash.patch b/testing/glibc/glibc-2.14-libdl-crash.patch deleted file mode 100644 index 6c9d2718e..000000000 --- a/testing/glibc/glibc-2.14-libdl-crash.patch +++ /dev/null @@ -1,132 +0,0 @@ -diff --git a/elf/dl-close.c b/elf/dl-close.c -index 73b2a2f..9bd91e3 100644 ---- a/elf/dl-close.c -+++ b/elf/dl-close.c -@@ -1,5 +1,5 @@ - /* Close a shared object opened by `_dl_open'. -- Copyright (C) 1996-2007, 2009, 2010, 2011 Free Software Foundation, Inc. -+ Copyright (C) 1996-2007, 2009, 2010 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or -@@ -119,17 +119,8 @@ _dl_close_worker (struct link_map *map) - if (map->l_direct_opencount > 0 || map->l_type != lt_loaded - || dl_close_state != not_pending) - { -- if (map->l_direct_opencount == 0) -- { -- if (map->l_type == lt_loaded) -- dl_close_state = rerun; -- else if (map->l_type == lt_library) -- { -- struct link_map **oldp = map->l_initfini; -- map->l_initfini = map->l_orig_initfini; -- _dl_scope_free (oldp); -- } -- } -+ if (map->l_direct_opencount == 0 && map->l_type == lt_loaded) -+ dl_close_state = rerun; - - /* There are still references to this object. Do nothing more. */ - if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0)) -diff --git a/elf/dl-deps.c b/elf/dl-deps.c -index 9e30594..3890d00 100644 ---- a/elf/dl-deps.c -+++ b/elf/dl-deps.c -@@ -478,6 +478,7 @@ _dl_map_object_deps (struct link_map *map, - nneeded * sizeof needed[0]); - atomic_write_barrier (); - l->l_initfini = l_initfini; -+ l->l_free_initfini = 1; - } - - /* If we have no auxiliary objects just go on to the next map. */ -@@ -681,6 +682,7 @@ Filters not supported with LD_TRACE_PRELINKING")); - l_initfini[nlist] = NULL; - atomic_write_barrier (); - map->l_initfini = l_initfini; -+ map->l_free_initfini = 1; - if (l_reldeps != NULL) - { - atomic_write_barrier (); -@@ -689,5 +691,5 @@ Filters not supported with LD_TRACE_PRELINKING")); - _dl_scope_free (old_l_reldeps); - } - if (old_l_initfini != NULL) -- map->l_orig_initfini = old_l_initfini; -+ _dl_scope_free (old_l_initfini); - -diff --git a/elf/dl-libc.c b/elf/dl-libc.c -index 7be9483..a13fce3 100644 ---- a/elf/dl-libc.c -+++ b/elf/dl-libc.c -@@ -265,13 +265,13 @@ libc_freeres_fn (free_mem) - - for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns) - { -- /* Remove all additional names added to the objects. */ - for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next) - { - struct libname_list *lnp = l->l_libname->next; - - l->l_libname->next = NULL; - -+ /* Remove all additional names added to the objects. */ - while (lnp != NULL) - { - struct libname_list *old = lnp; -@@ -279,6 +279,10 @@ libc_freeres_fn (free_mem) - if (! old->dont_free) - free (old); - } -+ -+ /* Free the initfini dependency list. */ -+ if (l->l_free_initfini) -+ free (l->l_initfini); - } - - if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0 -diff --git a/elf/rtld.c b/elf/rtld.c -index 4a9109e..617e30e 100644 ---- a/elf/rtld.c -+++ b/elf/rtld.c -@@ -2251,6 +2251,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n", - lnp->dont_free = 1; - lnp = lnp->next; - } -+ l->l_free_initfini = 0; - - if (l != &GL(dl_rtld_map)) - _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0, -diff --git a/include/link.h b/include/link.h -index e877104..051b99a 100644 ---- a/include/link.h -+++ b/include/link.h -@@ -1,6 +1,6 @@ - /* Data structure for communication from the run-time dynamic linker for - loaded ELF shared objects. -- Copyright (C) 1995-2006, 2007, 2009, 2010, 2011 Free Software Foundation, Inc. -+ Copyright (C) 1995-2006, 2007, 2009, 2010 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or -@@ -192,6 +192,9 @@ struct link_map - during LD_TRACE_PRELINKING=1 - contains any DT_SYMBOLIC - libraries. */ -+ unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be -+ freed, ie. not allocated with -+ the dummy malloc in ld.so. */ - - /* Collected information about own RPATH directories. */ - struct r_search_path_struct l_rpath_dirs; -@@ -240,9 +243,6 @@ struct link_map - - /* List of object in order of the init and fini calls. */ - struct link_map **l_initfini; -- /* The init and fini list generated at startup, saved when the -- object is also loaded dynamically. */ -- struct link_map **l_orig_initfini; - - /* List of the dependencies introduced through symbol binding. */ - struct link_map_reldeps diff --git a/testing/glibc/glibc-2.14-reexport-rpc-interface.patch b/testing/glibc/glibc-2.14-reexport-rpc-interface.patch deleted file mode 100644 index e2beea881..000000000 --- a/testing/glibc/glibc-2.14-reexport-rpc-interface.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/include/libc-symbols.h b/include/libc-symbols.h -index 67e1ca2..5e7cca5 100644 ---- a/include/libc-symbols.h -+++ b/include/libc-symbols.h -@@ -635,7 +635,7 @@ for linking") - # define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs) - # define libc_hidden_def(name) hidden_def (name) - # define libc_hidden_weak(name) hidden_weak (name) --# define libc_hidden_nolink(name, version) hidden_nolink (name, libc, version) -+# define libc_hidden_nolink(name, version) hidden_def (name) - # define libc_hidden_ver(local, name) hidden_ver (local, name) - # define libc_hidden_data_def(name) hidden_data_def (name) - # define libc_hidden_data_weak(name) hidden_data_weak (name) -diff --git a/sunrpc/Makefile b/sunrpc/Makefile -index 5134ce9..40c73d1 100644 ---- a/sunrpc/Makefile -+++ b/sunrpc/Makefile -@@ -53,7 +53,7 @@ headers-in-tirpc = $(addprefix rpc/,auth.h auth_unix.h clnt.h pmap_clnt.h \ - des_crypt.h) - headers-not-in-tirpc = $(addprefix rpc/,key_prot.h rpc_des.h) \ - $(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.h --headers = rpc/netdb.h -+headers = rpc/netdb.h $(headers-in-tirpc) $(headers-not-in-tirpc) - install-others = $(inst_sysconfdir)/rpc - generated = $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) $(rpcsvc:%.x=x%.stmp) \ - $(rpcsvc:%.x=rpcsvc/%.stmp) rpcgen diff --git a/testing/glibc/glibc-2.14-reinstall-nis-rpc-headers.patch b/testing/glibc/glibc-2.14-reinstall-nis-rpc-headers.patch deleted file mode 100644 index eb0fd822d..000000000 --- a/testing/glibc/glibc-2.14-reinstall-nis-rpc-headers.patch +++ /dev/null @@ -1,28 +0,0 @@ -From bdd816a366c4e5bba5de7157d948e0c0737fb4fb Mon Sep 17 00:00:00 2001 -From: Andreas Schwab <schwab@redhat.com> -Date: Tue, 17 May 2011 17:42:30 +0200 -Subject: [PATCH] Reinstall NIS RPC headers - ---- - nis/Makefile | 4 ++-- - 1 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/nis/Makefile b/nis/Makefile -index b5c9609..d2934d9 100644 ---- a/nis/Makefile -+++ b/nis/Makefile -@@ -23,9 +23,9 @@ subdir := nis - - aux := nis_hash - -+headers := $(wildcard rpcsvc/*.[hx]) - distribute := nss-nis.h nss-nisplus.h nis_intern.h Banner \ -- nisplus-parser.h nis_xdr.h nss \ -- $(wildcard rpcsvc/*.[hx]) -+ nisplus-parser.h nis_xdr.h nss - - # These are the databases available for the nis (and perhaps later nisplus) - # service. This must be a superset of the services in nss. --- -1.7.5.4 - diff --git a/testing/glibc/glibc-2.14-revert-4768ae77.patch b/testing/glibc/glibc-2.14-revert-4768ae77.patch deleted file mode 100644 index 11f087cb7..000000000 --- a/testing/glibc/glibc-2.14-revert-4768ae77.patch +++ /dev/null @@ -1,37 +0,0 @@ -diff -Naur glibc-orig//resolv/res_send.c glibc/resolv/res_send.c ---- glibc-orig//resolv/res_send.c 2011-06-10 18:59:03.041436996 +1000 -+++ glibc/resolv/res_send.c 2011-06-10 19:08:09.379309323 +1000 -@@ -549,7 +549,7 @@ - ns, ansp, ansp2, nansp2, resplen2); - if (n < 0) - return (-1); -- if (n == 0 && (buf2 == NULL || *resplen2 == 0)) -+ if (n == 0) - goto next_ns; - } else { - /* Use datagrams. */ -@@ -559,7 +559,7 @@ - ansp2, nansp2, resplen2); - if (n < 0) - return (-1); -- if (n == 0 && (buf2 == NULL || *resplen2 == 0)) -+ if (n == 0) - goto next_ns; - if (v_circuit) - // XXX Check whether both requests failed or -@@ -1275,14 +1275,10 @@ - (*thisresplenp > *thisanssizp) - ? *thisanssizp : *thisresplenp); - -- if (recvresp1 || (buf2 != NULL && recvresp2)) { -- *resplen2 = 0; -+ if (recvresp1 || (buf2 != NULL && recvresp2)) - return resplen; -- } - if (buf2 != NULL) - { -- /* No data from the first reply. */ -- resplen = 0; - /* We are waiting for a possible second reply. */ - if (hp->id == anhp->id) - recvresp1 = 1; diff --git a/testing/glibc/glibc-2.14.1-tzfile-overflow.patch b/testing/glibc/glibc-2.14.1-tzfile-overflow.patch new file mode 100644 index 000000000..9e21cbfd3 --- /dev/null +++ b/testing/glibc/glibc-2.14.1-tzfile-overflow.patch @@ -0,0 +1,72 @@ +diff --git a/time/tzfile.c b/time/tzfile.c +index 144e20b..402389c 100644 +--- a/time/tzfile.c ++++ b/time/tzfile.c +@@ -234,23 +234,58 @@ __tzfile_read (const char *file, size_t extra, char **extrap) + goto read_again; + } + ++ if (__builtin_expect (num_transitions ++ > ((SIZE_MAX - (__alignof__ (struct ttinfo) - 1)) ++ / (sizeof (time_t) + 1)), 0)) ++ goto lose; + total_size = num_transitions * (sizeof (time_t) + 1); + total_size = ((total_size + __alignof__ (struct ttinfo) - 1) + & ~(__alignof__ (struct ttinfo) - 1)); + types_idx = total_size; +- total_size += num_types * sizeof (struct ttinfo) + chars; ++ if (__builtin_expect (num_types ++ > (SIZE_MAX - total_size) / sizeof (struct ttinfo), 0)) ++ goto lose; ++ total_size += num_types * sizeof (struct ttinfo); ++ if (__builtin_expect (chars > SIZE_MAX - total_size, 0)) ++ goto lose; ++ total_size += chars; ++ if (__builtin_expect (__alignof__ (struct leap) - 1 ++ > SIZE_MAX - total_size, 0)) ++ goto lose; + total_size = ((total_size + __alignof__ (struct leap) - 1) + & ~(__alignof__ (struct leap) - 1)); + leaps_idx = total_size; ++ if (__builtin_expect (num_leaps ++ > (SIZE_MAX - total_size) / sizeof (struct leap), 0)) ++ goto lose; + total_size += num_leaps * sizeof (struct leap); +- tzspec_len = (sizeof (time_t) == 8 && trans_width == 8 +- ? st.st_size - (ftello (f) +- + num_transitions * (8 + 1) +- + num_types * 6 +- + chars +- + num_leaps * 12 +- + num_isstd +- + num_isgmt) - 1 : 0); ++ tzspec_len = 0; ++ if (sizeof (time_t) == 8 && trans_width == 8) ++ { ++ off_t rem = st.st_size - ftello (f); ++ if (__builtin_expect (rem < 0 ++ || (size_t) rem < (num_transitions * (8 + 1) ++ + num_types * 6 ++ + chars), 0)) ++ goto lose; ++ tzspec_len = (size_t) rem - (num_transitions * (8 + 1) ++ + num_types * 6 ++ + chars); ++ if (__builtin_expect (num_leaps > SIZE_MAX / 12 ++ || tzspec_len < num_leaps * 12, 0)) ++ goto lose; ++ tzspec_len -= num_leaps * 12; ++ if (__builtin_expect (tzspec_len < num_isstd, 0)) ++ goto lose; ++ tzspec_len -= num_isstd; ++ if (__builtin_expect (tzspec_len == 0 || tzspec_len - 1 < num_isgmt, 0)) ++ goto lose; ++ tzspec_len -= num_isgmt + 1; ++ if (__builtin_expect (SIZE_MAX - total_size < tzspec_len, 0)) ++ goto lose; ++ } ++ if (__builtin_expect (SIZE_MAX - total_size - tzspec_len < extra, 0)) ++ goto lose; + + /* Allocate enough memory including the extra block requested by the + caller. */ diff --git a/testing/glibc/glibc-__i686.patch b/testing/glibc/glibc-__i686.patch deleted file mode 100644 index 28d5dd424..000000000 --- a/testing/glibc/glibc-__i686.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -Naur glibc-old//sysdeps/i386/Makefile glibc//sysdeps/i386/Makefile ---- glibc-old//sysdeps/i386/Makefile 2010-03-18 11:52:30.000000000 +1000 -+++ glibc//sysdeps/i386/Makefile 2010-04-16 15:05:50.000000000 +1000 -@@ -1,6 +1,7 @@ - # The mpn functions need a #define for asm syntax flavor. --# Every i386 port in use uses gas syntax (I think). --asm-CPPFLAGS += -DGAS_SYNTAX -+# Every i386 port in use uses gas syntax (I think). Don't replace -+# __i686 in __i686.get_pc_thunk.bx. -+asm-CPPFLAGS += -DGAS_SYNTAX -U __i686 - - # The i386 `long double' is a distinct type we support. - long-double-fcts = yes diff --git a/testing/glibc/glibc.install b/testing/glibc/glibc.install deleted file mode 100644 index 7f85ade96..000000000 --- a/testing/glibc/glibc.install +++ /dev/null @@ -1,20 +0,0 @@ -infodir=usr/share/info -filelist=(libc.info{,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11}) - -post_upgrade() { - sbin/ldconfig -r . - [ -x sbin/init ] && sbin/init u - usr/sbin/locale-gen - - [ -x usr/bin/install-info ] || return 0 - for file in ${filelist[@]}; do - usr/bin/install-info $infodir/$file.gz $infodir/dir 2> /dev/null - done -} - -pre_remove() { - [ -x usr/bin/install-info ] || return 0 - for file in ${filelist[@]}; do - usr/bin/install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null - done -} diff --git a/testing/glibc/locale-gen b/testing/glibc/locale-gen deleted file mode 100755 index 5aff344c4..000000000 --- a/testing/glibc/locale-gen +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh - -set -e - -LOCALEGEN=/etc/locale.gen -LOCALES=/usr/share/i18n/locales -if [ -n "$POSIXLY_CORRECT" ]; then - unset POSIXLY_CORRECT -fi - - -[ -f $LOCALEGEN -a -s $LOCALEGEN ] || exit 0; - -# Remove all old locale dir and locale-archive before generating new -# locale data. -rm -rf /usr/lib/locale/* || true - -umask 022 - -is_entry_ok() { - if [ -n "$locale" -a -n "$charset" ] ; then - true - else - echo "error: Bad entry '$locale $charset'" - false - fi -} - -echo "Generating locales..." -while read locale charset; do \ - case $locale in \#*) continue;; "") continue;; esac; \ - is_entry_ok || continue - echo -n " `echo $locale | sed 's/\([^.\@]*\).*/\1/'`"; \ - echo -n ".$charset"; \ - echo -n `echo $locale | sed 's/\([^\@]*\)\(\@.*\)*/\2/'`; \ - echo -n '...'; \ - if [ -f $LOCALES/$locale ]; then input=$locale; else \ - input=`echo $locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; fi; \ - localedef -i $input -c -f $charset -A /usr/share/locale/locale.alias $locale; \ - echo ' done'; \ -done < $LOCALEGEN -echo "Generation complete." diff --git a/testing/glibc/locale.gen.txt b/testing/glibc/locale.gen.txt deleted file mode 100644 index ccdd81734..000000000 --- a/testing/glibc/locale.gen.txt +++ /dev/null @@ -1,23 +0,0 @@ -# Configuration file for locale-gen -# -# lists of locales that are to be generated by the locale-gen command. -# -# Each line is of the form: -# -# <locale> <charset> -# -# where <locale> is one of the locales given in /usr/share/i18n/locales -# and <charset> is one of the character sets listed in /usr/share/i18n/charmaps -# -# Examples: -# en_US ISO-8859-1 -# en_US.UTF-8 UTF-8 -# de_DE ISO-8859-1 -# de_DE@euro ISO-8859-15 -# -# The locale-gen command will generate all the locales, -# placing them in /usr/lib/locale. -# -# A list of supported locales is included in this file. -# Uncomment the ones you need. -# diff --git a/testing/glibc/nscd b/testing/glibc/nscd deleted file mode 100755 index 8b14f2a3f..000000000 --- a/testing/glibc/nscd +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash - -. /etc/rc.conf -. /etc/rc.d/functions - -PID=`pidof -o %PPID /usr/sbin/nscd` -case "$1" in - start) - stat_busy "Starting nscd" - # create necessary directories if they don't already exist - mkdir -p /var/run/nscd /var/db/nscd 2>/dev/null - # remove stale files - rm -f /var/db/nscd/* /var/run/nscd/* 2>/dev/null - [ -z "$PID" ] && /usr/sbin/nscd - if [ $? -gt 0 ]; then - stat_fail - else - add_daemon nscd - stat_done - fi - ;; - stop) - stat_busy "Stopping nscd" - [ ! -z "$PID" ] && kill $PID &> /dev/null - if [ $? -gt 0 ]; then - stat_fail - else - rm_daemon nscd - stat_done - fi - ;; - restart) - $0 stop - sleep 1 - $0 start - ;; - *) - echo "usage: $0 {start|stop|restart}" -esac -exit 0 diff --git a/testing/gtk3/PKGBUILD b/testing/gtk3/PKGBUILD new file mode 100644 index 000000000..2f2c35127 --- /dev/null +++ b/testing/gtk3/PKGBUILD @@ -0,0 +1,38 @@ +# $Id: PKGBUILD 145199 2011-12-19 16:29:29Z ibiru $ +# Maintainer: Ionut Biru <ibiru@archlinux.org> + +pkgname=gtk3 +pkgver=3.2.3 +pkgrel=1 +pkgdesc="GTK+ is a multi-platform toolkit (v3)" +arch=('i686' 'x86_64') +url="http://www.gtk.org/" +install=gtk3.install +depends=('atk' 'cairo' 'gtk-update-icon-cache' 'libcups' 'libxcursor' 'libxinerama' 'libxrandr' 'libxi' 'libxcomposite' 'libxdamage' 'pango' 'shared-mime-info' 'colord') +makedepends=('gobject-introspection') +options=('!libtool' '!docs') +backup=(etc/gtk-3.0/settings.ini) +license=('LGPL') +source=(http://ftp.gnome.org/pub/gnome/sources/gtk+/3.2/gtk+-$pkgver.tar.xz + settings.ini) +sha256sums=('e2cf20f2510ebbc7be122a1a33dd1f472a7d06aaf16b4f2a63eb048cd9141d3d' + 'c214d3dcdcadda3d642112287524ab3e526ad592b70895c9f3e3733c23701621') + +build() { + cd "$srcdir/gtk+-$pkgver" + CXX=/bin/false ./configure --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --enable-gtk2-dependency \ + --disable-schemas-compile + #https://bugzilla.gnome.org/show_bug.cgi?id=655517 + sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool + make +} + +package() { + cd "$srcdir/gtk+-$pkgver" + make DESTDIR="$pkgdir" install + + install -Dm644 "$srcdir/settings.ini" "$pkgdir/etc/gtk-3.0/settings.ini" +} diff --git a/testing/gtk3/gtk3.install b/testing/gtk3/gtk3.install new file mode 100644 index 000000000..cd8965d1f --- /dev/null +++ b/testing/gtk3/gtk3.install @@ -0,0 +1,15 @@ +post_install() { + usr/bin/gtk-query-immodules-3.0 --update-cache + usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas +} + +post_upgrade() { + post_install +} + +pre_remove() { + rm -f usr/lib/gtk-3.0/3.0.0/immodules.cache +} +post_remove() { + usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas +} diff --git a/testing/gtk3/settings.ini b/testing/gtk3/settings.ini new file mode 100644 index 000000000..039000d38 --- /dev/null +++ b/testing/gtk3/settings.ini @@ -0,0 +1,2 @@ +[Settings] +gtk-fallback-icon-theme = gnome diff --git a/testing/kdelibs/PKGBUILD b/testing/kdelibs/PKGBUILD new file mode 100644 index 000000000..d0b93d61c --- /dev/null +++ b/testing/kdelibs/PKGBUILD @@ -0,0 +1,57 @@ +# $Id: PKGBUILD 145215 2011-12-19 18:03:56Z andrea $ +# Maintainer: Andrea Scarpino <andrea@archlinux.org +# Contributor: Pierre Schmitz <pierre@archlinux.de> + +pkgname=kdelibs +pkgver=4.7.4 +pkgrel=2 +pkgdesc="KDE Core Libraries" +arch=('i686' 'x86_64') +url='http://www.kde.org' +license=('GPL' 'LGPL' 'FDL') +depends=('strigi' 'attica' 'libxss' 'xz' 'openssl' 'soprano' 'krb5' + 'shared-desktop-ontologies' 'qca' 'libdbusmenu-qt' 'polkit-qt' 'grantlee' + 'shared-mime-info' 'enchant' 'giflib' 'jasper' 'openexr' 'xdg-utils' + 'phonon' 'hicolor-icon-theme' 'upower' 'udisks' 'libxcursor' + 'docbook-xsl' 'qtwebkit') +makedepends=('pkgconfig' 'cmake' 'automoc4' 'avahi' 'libgl' 'hspell') +replaces=('kdelibs-experimental') +install='kdelibs.install' +source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2" + 'kde-applications-menu.patch' 'archlinux-menu.patch') +sha1sums=('78b25e93a8c70ccc1e0f117cce960fe4e1deb8d8' + '86ee8c8660f19de8141ac99cd6943964d97a1ed7' + '63a850ab4196b9d06934f2b4a13acd9f7739bc67') + +build() { + cd "${srcdir}"/${pkgname}-${pkgver} + + # avoid file conflict with gnome-menus + patch -p1 -i "${srcdir}"/kde-applications-menu.patch + # add Archlinux menu entry + patch -p1 -i "${srcdir}"/archlinux-menu.patch + + cd "${srcdir}" + mkdir build + cd build + cmake ../${pkgname}-${pkgver} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_SKIP_RPATH=ON \ + -DKDE_DISTRIBUTION_TEXT='Arch Linux' \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DSYSCONF_INSTALL_DIR=/etc \ + -DHTML_INSTALL_DIR=/usr/share/doc/kde/html \ + -DKDE_DEFAULT_HOME='.kde4' \ + -DWITH_FAM=OFF + make +} + +package() { + cd "${srcdir}"/build + make DESTDIR="${pkgdir}" install + + # cert bundle seems to be hardcoded + # link it to the one from ca-certificates + rm -f "${pkgdir}"/usr/share/apps/kssl/ca-bundle.crt + ln -sf /etc/ssl/certs/ca-certificates.crt "${pkgdir}"/usr/share/apps/kssl/ca-bundle.crt +} diff --git a/testing/kdelibs/archlinux-menu.patch b/testing/kdelibs/archlinux-menu.patch new file mode 100644 index 000000000..546784fa2 --- /dev/null +++ b/testing/kdelibs/archlinux-menu.patch @@ -0,0 +1,22 @@ +--- kdelibs-4.3.98/kded/applications.menu 2010-01-31 19:28:11.000000000 +0000 ++++ kdelibs-4.3.98/kded/applications.menu 2010-01-31 22:25:53.556043077 +0000 +@@ -16,11 +16,19 @@ + </DefaultLayout> + <Layout> + <Merge type="menus"/> ++ <Menuname>Arch Linux</Menuname> + <Menuname>Applications</Menuname> + <Merge type="files"/> + </Layout> + + <Menu> ++ <Name>Arch Linux</Name> ++ <Directory>Archlinux.directory</Directory> ++ <Include> ++ <Category>Archlinux</Category> ++ </Include> ++ </Menu> ++ <Menu> + <Name>Applications</Name> + <Directory>kde-unknown.directory</Directory> + <OnlyUnallocated/> diff --git a/testing/kdelibs/kde-applications-menu.patch b/testing/kdelibs/kde-applications-menu.patch new file mode 100644 index 000000000..4b513298a --- /dev/null +++ b/testing/kdelibs/kde-applications-menu.patch @@ -0,0 +1,22 @@ +--- kdelibs-4.3.98/kded/CMakeLists.txt 2009-10-02 14:55:17.000000000 +0000 ++++ kdelibs-4.3.98/kded/CMakeLists.txt 2010-01-31 22:16:13.946933892 +0000 +@@ -69,7 +69,7 @@ + if (WIN32) + install( FILES applications.menu DESTINATION ${SHARE_INSTALL_PREFIX}/xdg/menus ) + else (WIN32) +-install( FILES applications.menu DESTINATION ${SYSCONF_INSTALL_DIR}/xdg/menus ) ++install( FILES applications.menu DESTINATION ${SYSCONF_INSTALL_DIR}/xdg/menus RENAME kde-applications.menu ) + endif (WIN32) + install( FILES kdedmodule.desktop DESTINATION ${SERVICETYPES_INSTALL_DIR} ) + install( FILES kded.upd DESTINATION ${DATA_INSTALL_DIR}/kconf_update ) +--- kdelibs-4.3.98/kded/kbuildsycoca.cpp 2009-12-04 23:10:18.000000000 +0000 ++++ kdelibs-4.3.98/kded/kbuildsycoca.cpp 2010-01-31 22:16:13.962766572 +0000 +@@ -302,7 +302,7 @@ + if (!m_trackId.isEmpty()) + g_vfolder->setTrackId(m_trackId); + +- VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("applications.menu", true); ++ VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("kde-applications.menu", true); + + KServiceGroup::Ptr entry = g_bsgf->addNew("/", kdeMenu->directoryFile, KServiceGroup::Ptr(), false); + entry->setLayoutInfo(kdeMenu->layoutList); diff --git a/testing/kdelibs/kdelibs.install b/testing/kdelibs/kdelibs.install new file mode 100644 index 000000000..c77e68041 --- /dev/null +++ b/testing/kdelibs/kdelibs.install @@ -0,0 +1,13 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-mime-database usr/share/mime &> /dev/null + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/testing/kdevplatform/PKGBUILD b/testing/kdevplatform/PKGBUILD deleted file mode 100644 index 75e543a98..000000000 --- a/testing/kdevplatform/PKGBUILD +++ /dev/null @@ -1,39 +0,0 @@ -# $Id: PKGBUILD 144746 2011-12-08 09:39:48Z andrea $ -# Maintainer: -# Contributor: Andrea Scarpino <andrea@archlinux.org> -# Contributor: Giovanni Scafora <giovanni@archlinux.org> - -pkgname=kdevplatform -pkgver=1.2.3 -_pkgver=4.2.3 -pkgrel=2 -pkgdesc="A C/C++ development platform for KDE" -arch=('i686' 'x86_64') -url="http://www.kdevelop.org/" -license=('GPL') -depends=('kdelibs''subversion' 'qjson') -optdepends=("kdesdk-kompare: difference checking") -makedepends=('cmake' 'automoc4' 'boost') -install=${pkgname}.install -source=("http://download.kde.org/stable/kdevelop/${_pkgver}/src/${pkgname}-${pkgver}.tar.bz2" - 'subversion17.patch') -sha1sums=('c8badd157c2477b1b299403d01d40f68a1ba14cd' - '08e2ab2005a7a447f1733e8449a9bc926035fb9e') - -build() { - cd "${srcdir}"/${pkgname}-${pkgver} - patch -p1 -i "${srcdir}"/subversion17.patch - - cd "${srcdir}" - mkdir build - cd build - cmake ../${pkgname}-${pkgver} \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DCMAKE_BUILD_TYPE=Release - make -} - -package() { - cd "${srcdir}"/build - make DESTDIR="${pkgdir}" install -} diff --git a/testing/kdevplatform/subversion17.patch b/testing/kdevplatform/subversion17.patch deleted file mode 100644 index 782ac38ea..000000000 --- a/testing/kdevplatform/subversion17.patch +++ /dev/null @@ -1,127 +0,0 @@ -commit 74dec52749e3c3af2ac6492f50e2676128f35b27 -Author: Milian Wolff <mail@milianw.de> -Date: Fri Nov 18 16:26:06 2011 +0100 - - fix svn api usage: use svn_dirent_canonicalize instead of svn_path_internal_style - - this was suggested by Stephan Sperling - - CCBUG: 284061 - -diff --git a/plugins/subversion/kdevsvncpp/path.cpp b/plugins/subversion/kdevsvncpp/path.cpp -index eaa84c1..4dced08 100644 ---- a/plugins/subversion/kdevsvncpp/path.cpp -+++ b/plugins/subversion/kdevsvncpp/path.cpp -@@ -24,6 +24,7 @@ - - // subversion api - #include "svn_path.h" -+#include "svn_dirent_uri.h" - - // apr api - #include "apr_file_io.h" -@@ -63,8 +64,7 @@ namespace svn - m_path = ""; - else - { -- const char * int_path = -- svn_path_internal_style(path, pool.pool()); -+ const char * int_path = svn_dirent_canonicalize(path, pool); - - m_path = int_path; - -commit cc7f0798d314cdac14b90e427abe22e99c6bd591 -Author: Milian Wolff <mail@milianw.de> -Date: Fri Nov 18 16:23:36 2011 +0100 - - properly initialize client context for compatibility with subversion API - - this should hopefully fix the crash with svn 1.7 in kdevelop, please test - - BUG: 284061 - -diff --git a/plugins/subversion/kdevsvncpp/context.cpp b/plugins/subversion/kdevsvncpp/context.cpp -index d277591..ddbb657 100644 ---- a/plugins/subversion/kdevsvncpp/context.cpp -+++ b/plugins/subversion/kdevsvncpp/context.cpp -@@ -65,7 +65,7 @@ public: - bool logIsSet; - int promptCounter; - Pool pool; -- svn_client_ctx_t ctx; -+ svn_client_ctx_t * ctx; - std::string username; - std::string password; - std::string logMessage; -@@ -205,26 +205,26 @@ public: - svn_auth_open(&ab, providers, pool); - - // initialize ctx structure -- memset(&ctx, 0, sizeof(ctx)); -+ svn_client_create_context(&ctx, pool); - - // get the config based on the configDir passed in -- svn_config_get_config(&ctx.config, c_configDir, pool); -+ svn_config_get_config(&ctx->config, c_configDir, pool); - - // tell the auth functions where the config is - svn_auth_set_parameter(ab, SVN_AUTH_PARAM_CONFIG_DIR, - c_configDir); - -- ctx.auth_baton = ab; -- ctx.log_msg_func = onLogMsg; -- ctx.log_msg_baton = this; -- ctx.notify_func = onNotify; -- ctx.notify_baton = this; -- ctx.cancel_func = onCancel; -- ctx.cancel_baton = this; -+ ctx->auth_baton = ab; -+ ctx->log_msg_func = onLogMsg; -+ ctx->log_msg_baton = this; -+ ctx->notify_func = onNotify; -+ ctx->notify_baton = this; -+ ctx->cancel_func = onCancel; -+ ctx->cancel_baton = this; - - #if (SVN_VER_MAJOR >= 1) && (SVN_VER_MINOR >= 2) -- ctx.notify_func2 = onNotify2; -- ctx.notify_baton2 = this; -+ ctx->notify_func2 = onNotify2; -+ ctx->notify_baton2 = this; - #endif - } - -@@ -234,7 +234,7 @@ public: - if (!value) - param = (void *)"1"; - -- svn_auth_set_parameter(ctx.auth_baton, -+ svn_auth_set_parameter(ctx->auth_baton, - SVN_AUTH_PARAM_NO_AUTH_CACHE, - param); - } -@@ -245,7 +245,7 @@ public: - username = usr; - password = pwd; - -- svn_auth_baton_t * ab = ctx.auth_baton; -+ svn_auth_baton_t * ab = ctx->auth_baton; - svn_auth_set_parameter(ab, SVN_AUTH_PARAM_DEFAULT_USERNAME, - username.c_str()); - svn_auth_set_parameter(ab, SVN_AUTH_PARAM_DEFAULT_PASSWORD, -@@ -654,13 +654,13 @@ public: - - Context::operator svn_client_ctx_t * () - { -- return &(m->ctx); -+ return m->ctx; - } - - svn_client_ctx_t * - Context::ctx() - { -- return &(m->ctx); -+ return m->ctx; - } - - void diff --git a/testing/keyutils/PKGBUILD b/testing/keyutils/PKGBUILD deleted file mode 100644 index 79bde8741..000000000 --- a/testing/keyutils/PKGBUILD +++ /dev/null @@ -1,24 +0,0 @@ -# $Id: PKGBUILD 143944 2011-11-30 21:52:16Z stephane $ -# Maintainer: Tobias Powalowski <tpowa@archlinux.org> -pkgname=keyutils -pkgver=1.5.5 -pkgrel=1 -pkgdesc="Linux Key Management Utilities" -arch=(i686 x86_64) -url="http://www.kernel.org" -license=('GPL2' 'LGPL2.1') -depends=('glibc' 'sh') -backup=(etc/request-key.conf) -source=(http://people.redhat.com/~dhowells/${pkgname}/${pkgname}-${pkgver}.tar.bz2) -md5sums=('9e8ab5164bc8f84be148761cc89e9d6f') - -build() { - cd "${srcdir}/${pkgname}-${pkgver}" - sed -i "s|/lib64|/lib|g" Makefile - make CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" -} - -package() { - cd "${srcdir}/${pkgname}-${pkgver}" - make DESTDIR="${pkgdir}" install -} diff --git a/testing/krb5/PKGBUILD b/testing/krb5/PKGBUILD deleted file mode 100644 index 9cbe8c3d7..000000000 --- a/testing/krb5/PKGBUILD +++ /dev/null @@ -1,90 +0,0 @@ -# $Id: PKGBUILD 144605 2011-12-07 21:28:52Z stephane $ -# Maintainer: Stéphane Gaudreault <stephane@archlinux.org> - -pkgname=krb5 -pkgver=1.9.2 -pkgrel=2 -pkgdesc="The Kerberos network authentication system" -arch=('i686' 'x86_64') -url="http://web.mit.edu/kerberos/" -license=('custom') -depends=('e2fsprogs' 'libldap' 'keyutils') -makedepends=('perl') -provides=('heimdal') -replaces=('heimdal') -conflicts=('heimdal') -backup=('etc/krb5.conf' 'var/lib/krb5kdc/kdc.conf') -source=(http://web.mit.edu/kerberos/dist/${pkgname}/1.9/${pkgname}-${pkgver}-signed.tar - krb5-kadmind - krb5-kdc - krb5-kpropd - krb5-1.9.1-config-script.patch - krb5-1.9.1-2011-007.patch) -sha1sums=('aa06f778ee1f9791cd4c5cf4c9e9465769ffec92' - '2aa229369079ed1bbb201a1ef72c47bf143f4dbe' - '77d2312ecd8bf12a6e72cc8fd871a8ac93b23393' - '7f402078fa65bb9ff1beb6cbbbb017450df78560' - '7342410760cf44bfa01bb99bb4c49e12496cb46f' - 'ec917dd1d1c96fa331f512331d5aa37c2e9b9df7') -options=('!emptydirs') - -build() { - tar zxvf ${pkgname}-${pkgver}.tar.gz - cd "${srcdir}/${pkgname}-${pkgver}/src" - - # - Make krb5-config suppress CFLAGS output when called with --libs - # cf https://bugzilla.redhat.com/show_bug.cgi?id=544391 - # - # - Omit extra libraries because their interfaces are not exposed to applications - # by libkrb5, unless do_deps is set to 1, which indicates that the caller - # wants the whole list. - # - # Patch from upstream : - # http://anonsvn.mit.edu/viewvc/krb5/trunk/src/krb5-config.in?r1=23662&r2=25236 - patch -Np2 -i ${srcdir}/krb5-1.9.1-config-script.patch - - # Apply upstream patch to fix a null pointer dereference when processing TGS requests - # CVE-2011-1530 - # see http://web.mit.edu/kerberos/advisories/MITKRB5-SA-2011-007.txt - patch -Np2 -i ${srcdir}/krb5-1.9.1-2011-007.patch - - # FS#25384 - sed -i "/KRB5ROOT=/s/\/local//" util/ac_check_krb5.m4 - - export CFLAGS+=" -fPIC -fno-strict-aliasing -fstack-protector-all" - export CPPFLAGS+=" -I/usr/include/et" - ./configure --prefix=/usr \ - --mandir=/usr/share/man \ - --localstatedir=/var/lib \ - --enable-shared \ - --with-system-et \ - --with-system-ss \ - --disable-rpath \ - --without-tcl \ - --enable-dns-for-realm \ - --with-ldap - make -} - -package() { - cd "${srcdir}/${pkgname}-${pkgver}/src" - make DESTDIR="${pkgdir}" EXAMPLEDIR="/usr/share/doc/${pkgname}/examples" install - - # Sample KDC config file - install -dm 755 "${pkgdir}"/var/lib/krb5kdc - install -pm 644 config-files/kdc.conf "${pkgdir}"/var/lib/krb5kdc/kdc.conf - - # Default configuration file - install -dm 755 "${pkgdir}"/etc - install -pm 644 config-files/krb5.conf "${pkgdir}"/etc/krb5.conf - - install -dm 755 "${pkgdir}"/etc/rc.d - install -m 755 ../../krb5-kdc "${pkgdir}"/etc/rc.d - install -m 755 ../../krb5-kadmind "${pkgdir}"/etc/rc.d - install -m 755 ../../krb5-kpropd "${pkgdir}"/etc/rc.d - - install -dm 755 "${pkgdir}"/usr/share/aclocal - install -m 644 util/ac_check_krb5.m4 "${pkgdir}"/usr/share/aclocal - - install -Dm644 "${srcdir}"/${pkgname}-${pkgver}/NOTICE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE -} diff --git a/testing/krb5/krb5-1.9.1-2011-007.patch b/testing/krb5/krb5-1.9.1-2011-007.patch deleted file mode 100644 index 336a4ad31..000000000 --- a/testing/krb5/krb5-1.9.1-2011-007.patch +++ /dev/null @@ -1,40 +0,0 @@ -diff --git a/src/kdc/Makefile.in b/src/kdc/Makefile.in -index f46cad3..102fbaa 100644 ---- a/src/kdc/Makefile.in -+++ b/src/kdc/Makefile.in -@@ -67,6 +67,7 @@ check-unix:: rtest - - check-pytests:: - $(RUNPYTEST) $(srcdir)/t_workers.py $(PYTESTFLAGS) -+ $(RUNPYTEST) $(srcdir)/t_emptytgt.py $(PYTESTFLAGS) - - install:: - $(INSTALL_PROGRAM) krb5kdc ${DESTDIR}$(SERVER_BINDIR)/krb5kdc -diff --git a/src/kdc/do_tgs_req.c b/src/kdc/do_tgs_req.c -index c169c54..840a2ef 100644 ---- a/src/kdc/do_tgs_req.c -+++ b/src/kdc/do_tgs_req.c -@@ -243,7 +243,8 @@ tgt_again: - if (!tgs_1 || !data_eq(*server_1, *tgs_1)) { - errcode = find_alternate_tgs(request, &server); - firstpass = 0; -- goto tgt_again; -+ if (errcode == 0) -+ goto tgt_again; - } - } - status = "UNKNOWN_SERVER"; -diff --git a/src/kdc/t_emptytgt.py b/src/kdc/t_emptytgt.py -new file mode 100644 -index 0000000..1760bcd ---- /dev/null -+++ b/src/kdc/t_emptytgt.py -@@ -0,0 +1,8 @@ -+#!/usr/bin/python -+from k5test import * -+ -+realm = K5Realm(start_kadmind=False, create_host=False) -+output = realm.run_as_client([kvno, 'krbtgt/'], expected_code=1) -+if 'not found in Kerberos database' not in output: -+ fail('TGT lookup for empty realm failed in unexpected way') -+success('Empty tgt lookup.') diff --git a/testing/krb5/krb5-1.9.1-canonicalize-fallback.patch b/testing/krb5/krb5-1.9.1-canonicalize-fallback.patch deleted file mode 100644 index e5a38498f..000000000 --- a/testing/krb5/krb5-1.9.1-canonicalize-fallback.patch +++ /dev/null @@ -1,58 +0,0 @@ -diff -Naur krb5-1.9.1.ori/src/lib/krb5/krb/get_creds.c krb5-1.9.1/src/lib/krb5/krb/get_creds.c ---- krb5-1.9.1.ori/src/lib/krb5/krb/get_creds.c 2011-02-09 16:55:36.000000000 -0500 -+++ krb5-1.9.1/src/lib/krb5/krb/get_creds.c 2011-09-26 18:42:01.465190278 -0400 -@@ -470,13 +470,10 @@ - - /***** STATE_REFERRALS *****/ - --/* -- * Possibly retry a request in the fallback realm after a referral request -- * failure in the local realm. Expects ctx->reply_code to be set to the error -- * from a referral request. -- */ -+/* Possibly try a non-referral request after a referral request failure. -+ * Expects ctx->reply_code to be set to the error from a referral request. */ - static krb5_error_code --try_fallback_realm(krb5_context context, krb5_tkt_creds_context ctx) -+try_fallback(krb5_context context, krb5_tkt_creds_context ctx) - { - krb5_error_code code; - char **hrealms; -@@ -485,9 +482,10 @@ - if (ctx->referral_count > 1) - return ctx->reply_code; - -- /* Only fall back if the original request used the referral realm. */ -+ /* If the request used a specified realm, make a non-referral request to -+ * that realm (in case it's a KDC which rejects KDC_OPT_CANONICALIZE). */ - if (!krb5_is_referral_realm(&ctx->req_server->realm)) -- return ctx->reply_code; -+ return begin_non_referral(context, ctx); - - if (ctx->server->length < 2) { - /* We need a type/host format principal to find a fallback realm. */ -@@ -500,10 +498,10 @@ - if (code != 0) - return code; - -- /* Give up if the fallback realm isn't any different. */ -+ /* If the fallback realm isn't any different, use the existing TGT. */ - if (data_eq_string(ctx->server->realm, hrealms[0])) { - krb5_free_host_realm(context, hrealms); -- return ctx->reply_code; -+ return begin_non_referral(context, ctx); - } - - /* Rewrite server->realm to be the fallback realm. */ -@@ -540,9 +538,9 @@ - krb5_error_code code; - const krb5_data *referral_realm; - -- /* Possibly retry with the fallback realm on error. */ -+ /* Possibly try a non-referral fallback request on error. */ - if (ctx->reply_code != 0) -- return try_fallback_realm(context, ctx); -+ return try_fallback(context, ctx); - - if (krb5_principal_compare(context, ctx->reply_creds->server, - ctx->server)) { diff --git a/testing/krb5/krb5-1.9.1-config-script.patch b/testing/krb5/krb5-1.9.1-config-script.patch deleted file mode 100644 index a72a75edf..000000000 --- a/testing/krb5/krb5-1.9.1-config-script.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff -Naur krb5-1.9.1.ori/src/krb5-config.in krb5-1.9.1/src/krb5-config.in ---- krb5-1.9.1.ori/src/krb5-config.in 2010-01-19 13:44:57.000000000 -0500 -+++ krb5-1.9.1/src/krb5-config.in 2011-09-26 18:27:09.018487087 -0400 -@@ -186,7 +186,7 @@ - -e 's#\$(RPATH_FLAG)#'"$RPATH_FLAG"'#' \ - -e 's#\$(LDFLAGS)#'"$LDFLAGS"'#' \ - -e 's#\$(PTHREAD_CFLAGS)#'"$PTHREAD_CFLAGS"'#' \ -- -e 's#\$(CFLAGS)#'"$CFLAGS"'#'` -+ -e 's#\$(CFLAGS)##'` - - if test $library = 'kdb'; then - lib_flags="$lib_flags -lkdb5 $KDB5_DB_LIB" -@@ -214,9 +214,13 @@ - fi - - if test $library = 'krb5'; then -- lib_flags="$lib_flags -lkrb5 -lk5crypto -lcom_err $GEN_LIB $LIBS $DL_LIB" -+ lib_flags="$lib_flags -lkrb5 -lk5crypto -lcom_err" - fi - -+ # If we ever support a flag to generate output suitable for static -+ # linking, we would output "-lkrb5support $GEN_LIB $LIBS $DL_LIB" -+ # here. -+ - echo $lib_flags - fi - diff --git a/testing/krb5/krb5-kadmind b/testing/krb5/krb5-kadmind deleted file mode 100644 index 04df0dcff..000000000 --- a/testing/krb5/krb5-kadmind +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash - -# general config -. /etc/rc.conf -. /etc/rc.d/functions - -PID=`pidof -o %PPID /usr/sbin/kadmind` -case "$1" in - start) - stat_busy "Starting Kerberos Admin Daemon" - if [ -z "$PID" ]; then - /usr/sbin/kadmind - fi - if [ ! -z "$PID" -o $? -gt 0 ]; then - stat_fail - else - add_daemon krb5-kadmind - stat_done - fi - ;; - stop) - stat_busy "Stopping Kerberos Admin Daemon" - [ ! -z "$PID" ] && kill $PID &> /dev/null - if [ $? -gt 0 ]; then - stat_fail - else - rm_daemon krb5-kadmind - stat_done - fi - ;; - restart) - $0 stop - sleep 1 - $0 start - ;; - *) - echo "usage: $0 {start|stop|restart}" - ;; -esac -exit 0 diff --git a/testing/krb5/krb5-kdc b/testing/krb5/krb5-kdc deleted file mode 100644 index 05a03411e..000000000 --- a/testing/krb5/krb5-kdc +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash - -# general config -. /etc/rc.conf -. /etc/rc.d/functions - -PID=`pidof -o %PPID /usr/sbin/krb5kdc` -case "$1" in - start) - stat_busy "Starting Kerberos Authentication" - if [ -z "$PID" ]; then - /usr/sbin/krb5kdc - fi - if [ ! -z "$PID" -o $? -gt 0 ]; then - stat_fail - else - add_daemon krb5-kdc - stat_done - fi - ;; - stop) - stat_busy "Stopping Kerberos Authentication" - [ ! -z "$PID" ] && kill $PID &> /dev/null - if [ $? -gt 0 ]; then - stat_fail - else - rm_daemon krb5-kdc - stat_done - fi - ;; - restart) - $0 stop - sleep 1 - $0 start - ;; - *) - echo "usage: $0 {start|stop|restart}" - ;; -esac -exit 0 diff --git a/testing/krb5/krb5-kpropd b/testing/krb5/krb5-kpropd deleted file mode 100644 index a0077d68e..000000000 --- a/testing/krb5/krb5-kpropd +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash - -# general config -. /etc/rc.conf -. /etc/rc.d/functions - -PID=`pidof -o %PPID /usr/sbin/kpropd` -case "$1" in - start) - stat_busy "Starting Kerberos Database Propagation Daemon" - if [ -z "$PID" ]; then - /usr/sbin/kpropd -S - fi - if [ ! -z "$PID" -o $? -gt 0 ]; then - stat_fail - else - add_daemon kpropd - stat_done - fi - ;; - stop) - stat_busy "Stopping Kerberos Database Propagation Daemon" - [ ! -z "$PID" ] && kill $PID &> /dev/null - if [ $? -gt 0 ]; then - stat_fail - else - rm_daemon kpropd - stat_done - fi - ;; - restart) - $0 stop - sleep 1 - $0 start - ;; - *) - echo "usage: $0 {start|stop|restart}" - ;; -esac -exit 0 diff --git a/testing/kwebkitpart/PKGBUILD b/testing/kwebkitpart/PKGBUILD new file mode 100644 index 000000000..79cc0759e --- /dev/null +++ b/testing/kwebkitpart/PKGBUILD @@ -0,0 +1,30 @@ +# $Id: PKGBUILD 145211 2011-12-19 18:03:51Z andrea $ +# Maintainer: Andrea Scarpino <andrea@archlinux.org> + +pkgname=kwebkitpart +pkgver=1.2.0 +pkgrel=2 +pkgdesc="A WebKit browser component for KDE" +url="http://opendesktop.org/content/show.php?content=127960" +arch=('i686' 'x86_64') +license=('LGPL') +depends=('kdebase-runtime') +makedepends=('cmake' 'automoc4') +install=${pkgname}.install +source=("ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.xz") +md5sums=('e736d7b26cf6e3c0eed837837b3f032b') + +build() { + cd "${srcdir}" + mkdir build + cd build + cmake ../${pkgname}-${pkgver} \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_BUILD_TYPE=Release + make +} + +package() { + cd "${srcdir}"/build + make DESTDIR="${pkgdir}" install +} diff --git a/testing/kdevplatform/kdevplatform.install b/testing/kwebkitpart/kwebkitpart.install index e70c054ec..e70c054ec 100644 --- a/testing/kdevplatform/kdevplatform.install +++ b/testing/kwebkitpart/kwebkitpart.install diff --git a/testing/libdrm/COPYING b/testing/libdrm/COPYING deleted file mode 100644 index 6e74c337c..000000000 --- a/testing/libdrm/COPYING +++ /dev/null @@ -1,48 +0,0 @@ - Copyright 2005 Adam Jackson. - - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation on the rights to use, copy, modify, merge, - publish, distribute, sub license, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice (including the - next paragraph) shall be included in all copies or substantial - portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NON-INFRINGEMENT. IN NO EVENT SHALL ADAM JACKSON BE LIABLE FOR ANY - CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ------------------------------------------------------------------------- - - Copyright 1999 Precision Insight, Inc., Cedar Park, Texas. - Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California. - All Rights Reserved. - - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to - permit persons to whom the Software is furnished to do so, subject to - the following conditions: - - The above copyright notice and this permission notice (including the - next paragraph) shall be included in all copies or substantial - portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS - SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. diff --git a/testing/libdrm/PKGBUILD b/testing/libdrm/PKGBUILD deleted file mode 100644 index 91583d99a..000000000 --- a/testing/libdrm/PKGBUILD +++ /dev/null @@ -1,56 +0,0 @@ -# $Id: PKGBUILD 144601 2011-12-07 17:32:22Z andyrtr $ -# Maintainer: Jan de Groot <jgc@archlinux.org> - -pkgname=libdrm -pkgver=2.4.28 -pkgrel=1 -pkgdesc="Userspace interface to kernel DRM services" -arch=(i686 x86_64) -license=('custom') -depends=('glibc' 'libpciaccess') -makedepends=('cairo') -options=('!libtool') -url="http://dri.freedesktop.org/" -source=(http://dri.freedesktop.org/${pkgname}/${pkgname}-${pkgver}.tar.bz2 - no-pthread-stubs.patch - COPYING - git_fixes.diff - #missing files from http://cgit.freedesktop.org/mesa/drm/snapshot/drm-902ee661f1864aaf8325621085f6a1b5a6a3673a.tar.bz2 - https://bugs.freedesktop.org/show_bug.cgi?id=43538 - rbo.h list.h) -md5sums=('6488f64119c6439fa4038e9cd7b30b67' - 'c722c8406507b7e3a8da7a3030d1d9cf' - 'ba65e71c481b94ef0fb6c23c7f21ffa1' - '671b87f9670e709e54a19cd292c6330d' - '073846ea43fb4d6130062c1897d92e40' - 'ce867d3331862c2b87d1a37461b42dbe') - -build() { - cd "${srcdir}/${pkgname}-${pkgver}" - patch -Np1 -i "${srcdir}/no-pthread-stubs.patch" - - # add a missing file in the release tarball - patch -Np1 -i ${srcdir}/git_fixes.diff - cp ${srcdir}/{rbo,list}.h "${srcdir}/${pkgname}-${pkgver}"/tests/radeon/ - - #libtoolize --force - autoreconf --force --install - ./configure --prefix=/usr \ - --enable-udev \ - --enable-intel \ - --enable-radeon \ - --enable-vmwgfx-experimental-api \ - --enable-nouveau-experimental-api - make -} - -check() { - cd "${srcdir}/${pkgname}-${pkgver}" - make -k check -} - -package() { - cd "${srcdir}/${pkgname}-${pkgver}" - make DESTDIR="${pkgdir}" install - install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" - install -m644 "${srcdir}/COPYING" "${pkgdir}/usr/share/licenses/${pkgname}/" -} diff --git a/testing/libdrm/git_fixes.diff b/testing/libdrm/git_fixes.diff deleted file mode 100644 index 5ebcb606a..000000000 --- a/testing/libdrm/git_fixes.diff +++ /dev/null @@ -1,19 +0,0 @@ -From 902ee661f1864aaf8325621085f6a1b5a6a3673a Mon Sep 17 00:00:00 2001 -From: Dave Airlie <airlied@redhat.com> -Date: Mon, 05 Dec 2011 21:24:48 +0000 -Subject: test/radeon: add missing files for dist - ---- -diff --git a/tests/radeon/Makefile.am b/tests/radeon/Makefile.am -index 021ca72..1775669 100644 ---- a/tests/radeon/Makefile.am -+++ b/tests/radeon/Makefile.am -@@ -9,4 +9,6 @@ noinst_PROGRAMS = \ - - radeon_ttm_SOURCES = \ - rbo.c \ -+ rbo.h \ -+ list.h \ - radeon_ttm.c --- -cgit v0.9.0.2-2-gbebe diff --git a/testing/libdrm/list.h b/testing/libdrm/list.h deleted file mode 100644 index 305c903e1..000000000 --- a/testing/libdrm/list.h +++ /dev/null @@ -1,137 +0,0 @@ -/* - * - * Copyright 2006 Tungsten Graphics, Inc., Bismarck, ND. USA. - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sub license, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL - * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - * USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial portions - * of the Software. - * - */ - -/** - * \file - * List macros heavily inspired by the Linux kernel - * list handling. No list looping yet. - * - * Is not threadsafe, so common operations need to - * be protected using an external mutex. - */ -#ifndef _U_DOUBLE_LIST_H_ -#define _U_DOUBLE_LIST_H_ - -#include <stddef.h> - -struct list_head -{ - struct list_head *prev; - struct list_head *next; -}; - -static void list_inithead(struct list_head *item) -{ - item->prev = item; - item->next = item; -} - -static void list_add(struct list_head *item, struct list_head *list) -{ - item->prev = list; - item->next = list->next; - list->next->prev = item; - list->next = item; -} - -static void list_addtail(struct list_head *item, struct list_head *list) -{ - item->next = list; - item->prev = list->prev; - list->prev->next = item; - list->prev = item; -} - -static void list_replace(struct list_head *from, struct list_head *to) -{ - to->prev = from->prev; - to->next = from->next; - from->next->prev = to; - from->prev->next = to; -} - -static void list_del(struct list_head *item) -{ - item->prev->next = item->next; - item->next->prev = item->prev; -} - -static void list_delinit(struct list_head *item) -{ - item->prev->next = item->next; - item->next->prev = item->prev; - item->next = item; - item->prev = item; -} - -#define LIST_INITHEAD(__item) list_inithead(__item) -#define LIST_ADD(__item, __list) list_add(__item, __list) -#define LIST_ADDTAIL(__item, __list) list_addtail(__item, __list) -#define LIST_REPLACE(__from, __to) list_replace(__from, __to) -#define LIST_DEL(__item) list_del(__item) -#define LIST_DELINIT(__item) list_delinit(__item) - -#define LIST_ENTRY(__type, __item, __field) \ - ((__type *)(((char *)(__item)) - offsetof(__type, __field))) - -#define LIST_IS_EMPTY(__list) \ - ((__list)->next == (__list)) - -#ifndef container_of -#define container_of(ptr, sample, member) \ - (void *)((char *)(ptr) \ - - ((char *)&(sample)->member - (char *)(sample))) -#endif - -#define LIST_FOR_EACH_ENTRY(pos, head, member) \ - for (pos = container_of((head)->next, pos, member); \ - &pos->member != (head); \ - pos = container_of(pos->member.next, pos, member)) - -#define LIST_FOR_EACH_ENTRY_SAFE(pos, storage, head, member) \ - for (pos = container_of((head)->next, pos, member), \ - storage = container_of(pos->member.next, pos, member); \ - &pos->member != (head); \ - pos = storage, storage = container_of(storage->member.next, storage, member)) - -#define LIST_FOR_EACH_ENTRY_SAFE_REV(pos, storage, head, member) \ - for (pos = container_of((head)->prev, pos, member), \ - storage = container_of(pos->member.prev, pos, member); \ - &pos->member != (head); \ - pos = storage, storage = container_of(storage->member.prev, storage, member)) - -#define LIST_FOR_EACH_ENTRY_FROM(pos, start, head, member) \ - for (pos = container_of((start), pos, member); \ - &pos->member != (head); \ - pos = container_of(pos->member.next, pos, member)) - -#define LIST_FOR_EACH_ENTRY_FROM_REV(pos, start, head, member) \ - for (pos = container_of((start), pos, member); \ - &pos->member != (head); \ - pos = container_of(pos->member.prev, pos, member)) - -#endif /*_U_DOUBLE_LIST_H_*/ diff --git a/testing/libdrm/no-pthread-stubs.patch b/testing/libdrm/no-pthread-stubs.patch deleted file mode 100644 index 348c2a795..000000000 --- a/testing/libdrm/no-pthread-stubs.patch +++ /dev/null @@ -1,66 +0,0 @@ -diff -ru libdrm-2.4.0/configure.ac libdrm-2.4.0-nostubs/configure.ac ---- libdrm-2.4.0/configure.ac 2008-10-09 21:57:09.000000000 +0200 -+++ libdrm-2.4.0-nostubs/configure.ac 2008-10-21 10:48:24.000000000 +0200 -@@ -47,10 +47,6 @@ - LT_INIT([disable-static]) - - --PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs) --AC_SUBST(PTHREADSTUBS_CFLAGS) --AC_SUBST(PTHREADSTUBS_LIBS) -- - PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10]) - AC_SUBST(PCIACCESS_CFLAGS) - AC_SUBST(PCIACCESS_LIBS) ---- libdrm-2.4.16/intel/Makefile.am 2009-11-20 23:54:36.000000000 +0000 -+++ libdrm-2.4.16/intel/Makefile.am.new 2009-12-07 08:11:32.235748069 +0000 -@@ -26,14 +26,13 @@ - $(WARN_CFLAGS) \ - -I$(top_srcdir) \ - -I$(top_srcdir)/intel \ -- $(PTHREADSTUBS_CFLAGS) \ - $(PCIACCESS_CFLAGS) \ - -I$(top_srcdir)/include/drm - - libdrm_intel_la_LTLIBRARIES = libdrm_intel.la - libdrm_intel_ladir = $(libdir) - libdrm_intel_la_LDFLAGS = -version-number 1:0:0 -no-undefined --libdrm_intel_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ @PCIACCESS_LIBS@ @CLOCK_LIB@ -+libdrm_intel_la_LIBADD = ../libdrm.la @PCIACCESS_LIBS@ @CLOCK_LIB@ - - libdrm_intel_la_SOURCES = \ - intel_bufmgr.c \ ---- libdrm-2.4.16/radeon/Makefile.am 2009-11-20 23:54:36.000000000 +0000 -+++ libdrm-2.4.16/radeon/Makefile.am.new 2009-12-07 08:12:31.889075388 +0000 -@@ -26,13 +26,12 @@ - $(WARN_CFLAGS) \ - -I$(top_srcdir) \ - -I$(top_srcdir)/radeon \ -- $(PTHREADSTUBS_CFLAGS) \ - -I$(top_srcdir)/include/drm - - libdrm_radeon_la_LTLIBRARIES = libdrm_radeon.la - libdrm_radeon_ladir = $(libdir) - libdrm_radeon_la_LDFLAGS = -version-number 1:0:0 -no-undefined --libdrm_radeon_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ -+libdrm_radeon_la_LIBADD = ../libdrm.la - - libdrm_radeon_la_SOURCES = \ - radeon_bo_gem.c \ ---- libdrm-2.4.16/nouveau/Makefile.am 2009-11-20 23:54:36.000000000 +0000 -+++ libdrm-2.4.16/nouveau/Makefile.am.new 2009-12-07 08:13:01.489072320 +0000 -@@ -2,13 +2,12 @@ - $(WARN_CFLAGS) \ - -I$(top_srcdir) \ - -I$(top_srcdir)/nouveau \ -- $(PTHREADSTUBS_CFLAGS) \ - -I$(top_srcdir)/include/drm - - libdrm_nouveau_la_LTLIBRARIES = libdrm_nouveau.la - libdrm_nouveau_ladir = $(libdir) - libdrm_nouveau_la_LDFLAGS = -version-number 1:0:0 -no-undefined --libdrm_nouveau_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ -+libdrm_nouveau_la_LIBADD = ../libdrm.la - - libdrm_nouveau_la_SOURCES = \ - nouveau_device.c \ diff --git a/testing/libdrm/rbo.h b/testing/libdrm/rbo.h deleted file mode 100644 index c25c73a4c..000000000 --- a/testing/libdrm/rbo.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright © 2011 Red Hat - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * Authors: - * Jerome Glisse <j.glisse@gmail.com> - */ -#ifndef RBO_H -#define RBO_H - -#include "list.h" - -struct rbo { - struct list_head list; - int fd; - unsigned refcount; - unsigned mapcount; - unsigned handle; - unsigned size; - unsigned alignment; - void *data; -}; - -struct rbo *rbo(int fd, unsigned handle, unsigned size, - unsigned alignment, void *ptr); -int rbo_map(struct rbo *bo); -void rbo_unmap(struct rbo *bo); -struct rbo *rbo_incref(struct rbo *bo); -struct rbo *rbo_decref(struct rbo *bo); -int rbo_wait(struct rbo *bo); - -#endif diff --git a/testing/libreoffice/PKGBUILD b/testing/libreoffice/PKGBUILD new file mode 100644 index 000000000..9edbc55e5 --- /dev/null +++ b/testing/libreoffice/PKGBUILD @@ -0,0 +1,923 @@ +# $Id: PKGBUILD 145225 2011-12-19 18:04:12Z andrea $ +# Maintainer: AndyRTR <andyrtr@archlinux.org> + +pkgbase="libreoffice" +pkgname=('libreoffice-common' + 'libreoffice-base' + 'libreoffice-calc' + 'libreoffice-draw' + 'libreoffice-gnome' + 'libreoffice-impress' + 'libreoffice-kde4' + 'libreoffice-math' + 'libreoffice-sdk' + 'libreoffice-sdk-doc' + 'libreoffice-writer' + 'libreoffice-en-US' + #'libreoffice-extension-barcode' # + 'libreoffice-extension-diagram' + 'libreoffice-extension-google-docs' + 'libreoffice-extension-hunart' + #'libreoffice-extension-lightproof' # no source integration + #'libreoffice-extension-mysql-connector' # missing libmysqlcppconn-dev configure: error: mysql_driver.h not found. install MySQL C++ Connectivity + 'libreoffice-extension-nlpsolver' + 'libreoffice-extension-ct2n' + 'libreoffice-extension-numbertext' + 'libreoffice-extension-oooblogger' + 'libreoffice-extension-pdfimport' + 'libreoffice-extension-presenter-screen' + 'libreoffice-extension-presentation-minimizer' + 'libreoffice-extension-report-builder' + 'libreoffice-extension-scripting-beanshell' + 'libreoffice-extension-scripting-javascript' + 'libreoffice-extension-scripting-python' + 'libreoffice-extension-typo' + 'libreoffice-extension-validator' + 'libreoffice-extension-watch-window' + 'libreoffice-extension-wiki-publisher') +_LOver=3.4.4.2 +pkgver=3.4.4 +pkgrel=4 +arch=('i686' 'x86_64') +#_LO_tree="3.4" +_OFFICEUPD="340" +license=('LGPL3') +url="http://www.libreoffice.org/" +makedepends=( # makedepends + 'sane' 'perl-archive-zip' 'zip' 'unzip' 'xulrunner' 'unixodbc>=2.3.1' 'hsqldb-java' 'boost' + 'apache-ant' 'gperf' 'poppler>=0.18.0' 'kdelibs' 'gconf' 'cppunit' #'libmysqlclient' + 'beanshell' 'vigra' 'libldap' 'lucene' 'libmythes' 'junit' 'libwpg' 'imagemagick' + 'mesa' 'gstreamer0.10-base' 'java-environment' + #'saxon' - currently broken + # the depends from libreoffice main pkg + "curl>=7.20.0" "hunspell>=1.2.8" "python2>=2.7" 'libwpd>=0.9.2' 'libwps' 'libxaw' "neon>=0.28.6" + 'pango' 'nspr' 'libjpeg' 'libxrandr' 'libgl' 'dbus-glib' "icu>=4.6" 'libxslt' + 'redland' 'hyphen' 'lpsolve' 'gcc-libs' 'sh' 'libtextcat' 'graphite' + 'hicolor-icon-theme' 'desktop-file-utils' 'shared-mime-info' 'gtk2' 'orbit2' 'translate-toolkit' # keep gtk2 for install script + 'ttf-dejavu') # to satisfy regression tests + +# http://download.documentfoundation.org/mirrors/all.html +# http://wiki.documentfoundation.org/Mirrors + +_mirror="http://download.documentfoundation.org/libreoffice/src/${pkgver}" +#_mirror="http://dev-builds.libreoffice.org/pre-releases/src" +_additional_source_url="http://hg.services.openoffice.org/binaries" +source=(${_mirror}/${pkgbase}-{artwork,base,bootstrap,calc,components,extensions,extras,filters,help,impress,libs-core,libs-extern,libs-extern-sys,libs-gui,postprocess,sdk,testing,ure,writer}-${_LOver}.tar.bz2 #,translations + ${_additional_source_url}/1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz + ${_additional_source_url}/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip + ${_additional_source_url}/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip + ${_additional_source_url}/fdb27bfe2dbe2e7b57ae194d9bf36bab-SampleICC-1.3.2.tar.gz + ${_additional_source_url}/ada24d37d8d638b3d8a9985e80bc2978-source-9.0.0.7-bj.zip + ${_additional_source_url}/2a177023f9ea8ec8bd00837605c5df1b-jakarta-tomcat-5.0.30-src.tar.gz + ${_additional_source_url}/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip + ${_additional_source_url}/3c219630e4302863a9a83d0efde889db-commons-logging-1.1.1-src.tar.gz + ${_additional_source_url}/2ae988b339daec234019a7066f96733e-commons-lang-2.3-src.tar.gz + ${_additional_source_url}/2c9b0f83ed5890af02c0df1c1776f39b-commons-httpclient-3.1-src.tar.gz + ${_additional_source_url}/af3c3acf618de6108d65fcdc92b492e1-commons-codec-1.3-src.tar.gz + ${_additional_source_url}/eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip + ${_additional_source_url}/39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip + ${_additional_source_url}/3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip + ${_additional_source_url}/97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip + ${_additional_source_url}/f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip + ${_additional_source_url}/8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip + ${_additional_source_url}/d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip + ${_additional_source_url}/3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip + ${_additional_source_url}/ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip + ${_additional_source_url}/db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip + ${_additional_source_url}/ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip + ${_additional_source_url}/18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz + http://download.go-oo.org/src/0ff7d225d087793c8c2c680d77aac3e7-mdds_0.5.3.tar.bz2 + http://download.go-oo.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll + http://download.go-oo.org/src/90401bca927835b6fbae4a707ed187c8-nlpsolver-0.9.tar.bz2 + http://download.go-oo.org/src/451ccf439a36a568653b024534669971-ConvertTextToNumber-1.3.2.oxt + http://ooo.itc.hu/oxygenoffice/download/libreoffice/7e7efc5d4a03126bb9ae3ae9aa2c4e87-Barcode_1.3.1.0.oxt + http://ooo.itc.hu/oxygenoffice/download/libreoffice/41c9b65ad60af4b3255bbecdfef11736-Diagram_1.1.0.0.oxt + http://ooo.itc.hu/oxygenoffice/download/libreoffice/bbdd5639ada63e3130761daaecae1a10-Validator_1.1.0.0.oxt + http://ooo.itc.hu/oxygenoffice/download/libreoffice/23bd75552206dfcd8fd4e29137dcac84-WatchWindow_1.2.0.0.oxt + http://ooo.itc.hu/oxygenoffice/download/libreoffice/b8cbca7b3363e6ca2d02bc0ba2b63904-numbertext_0.9.4.oxt + http://ooo.itc.hu/oxygenoffice/download/libreoffice/b632bdd25649cc4067bcb410bae23d2b-hunart_0.3.oxt + http://ooo.itc.hu/oxygenoffice/download/libreoffice/9d60b6cfa3ef1926848710bbcd11115b-typo_0.4.2.oxt + http://ooo.itc.hu/oxygenoffice/download/libreoffice/dbaafd21de055e582d92d7d32fe9da13-gdocs_2.3.1.oxt + http://ooo.itc.hu/oxygenoffice/download/libreoffice/b7b2d0e04e142f26dd96119c80757d1f-oooblogger_0.1.oxt + buildfix_boost.diff + buildfix_ct2n.diff + vbahelper.visibility.patch + scp2-more-reasonable-file-access-rights.diff + oracle-recognition.diff::http://cgit.freedesktop.org/libreoffice/core/patch/?id=549e54fb2f8113502743c443d6deadfe648dede1 + RemovetheoslSecuritygetHomeDircheck.diff::http://cgit.freedesktop.org/libreoffice/ure/patch/?id=bc9b86940a707e9e2e1076f2954f38075398b5d7 + gcc462_buildfix.diff) +noextract=(185d60944ea767075d27247c3162b3bc-unowinreg.dll + 0ff7d225d087793c8c2c680d77aac3e7-mdds_0.5.3.tar.bz2 + ada24d37d8d638b3d8a9985e80bc2978-source-9.0.0.7-bj.zip + 798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip + 1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz + fdb27bfe2dbe2e7b57ae194d9bf36bab-SampleICC-1.3.2.tar.gz + 35c94d2df8893241173de1d16b6034c0-swingExSrc.zip + 2a177023f9ea8ec8bd00837605c5df1b-jakarta-tomcat-5.0.30-src.tar.gz + a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip + 3c219630e4302863a9a83d0efde889db-commons-logging-1.1.1-src.tar.gz + 2ae988b339daec234019a7066f96733e-commons-lang-2.3-src.tar.gz + 2c9b0f83ed5890af02c0df1c1776f39b-commons-httpclient-3.1-src.tar.gz + af3c3acf618de6108d65fcdc92b492e1-commons-codec-1.3-src.tar.gz + eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip + 39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip + 3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip + 97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip + f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip + 8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip + d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip + 3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip + ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip + db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip + ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip + 18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz + 7e7efc5d4a03126bb9ae3ae9aa2c4e87-Barcode_1.3.1.0.oxt + 41c9b65ad60af4b3255bbecdfef11736-Diagram_1.1.0.0.oxt + 451ccf439a36a568653b024534669971-ConvertTextToNumber-1.3.2.oxt + bbdd5639ada63e3130761daaecae1a10-Validator_1.1.0.0.oxt + 23bd75552206dfcd8fd4e29137dcac84-WatchWindow_1.2.0.0.oxt + b8cbca7b3363e6ca2d02bc0ba2b63904-numbertext_0.9.4.oxt + b632bdd25649cc4067bcb410bae23d2b-hunart_0.3.oxt + 9d60b6cfa3ef1926848710bbcd11115b-typo_0.4.2.oxt + dbaafd21de055e582d92d7d32fe9da13-gdocs_2.3.1.oxt + b7b2d0e04e142f26dd96119c80757d1f-oooblogger_0.1.oxt + 90401bca927835b6fbae4a707ed187c8-nlpsolver-0.9.tar.bz2) +md5sums=('be8b13f83045f0a53b69fe76d6d72e9c' + 'db423cbb1cee416b718138044a5de930' + '31944d2139d6d81ef1131bd513530621' + 'f447fd4ffe54aab9561c6caa262754b3' + '97fe698737a35c8803712d4e08007620' + 'acff44d97a5106d9b53c747dabeb0800' + '620d43a0b9f36388f423e030513864ef' + '4c5b1ed870363eca2602f0cb42a8415a' + '702c6ca31525d7d2c2ded86c77b0bd2e' + 'ac9b3acf78f43c1395d0e2dedc860f30' + 'd8d2c41cb86bc8ba2a07e001a5317abb' + '4d4af2fc06dbe33ec2307df812f7abe1' + '1398a566eb76598bf3005e187fc2386c' + 'dd962d2d57f88b9e07e665adad3cabbc' + 'fff0fc9cd16ef1eb2b2ed5d0a6e77f95' + 'e54d41d39e63d04ac4a88ce79e37af98' + 'dbc71403040f447683bf55d1f0be3cad' + '69ce5b72f44b008d0e78767c5b1dbf39' + '34a2e8ae6b81a042966740263c53e135' + '1f24ab1d39f4a51faf22244c94a6203f' + '35c94d2df8893241173de1d16b6034c0' + '798b2ffdc8bcfe7bca2cf92b62caf685' + 'fdb27bfe2dbe2e7b57ae194d9bf36bab' + 'ada24d37d8d638b3d8a9985e80bc2978' + '2a177023f9ea8ec8bd00837605c5df1b' + 'a7983f859eafb2677d7ff386a023bc40' + '3c219630e4302863a9a83d0efde889db' + '2ae988b339daec234019a7066f96733e' + '2c9b0f83ed5890af02c0df1c1776f39b' + 'af3c3acf618de6108d65fcdc92b492e1' + 'eeb2c7ddf0d302fba4bfc6e97eac9624' + '39bb3fcea1514f1369fcfc87542390fd' + '3404ab6b1792ae5f16bbd603bd1e1d03' + '97b2d4dba862397f446b217e2b623e71' + 'f94d9870737518e3b597f9265f4e9803' + '8ce2fcd72becf06c41f7201d15373ed9' + 'd8bd5eed178db6e2b18eeed243f85aa8' + '3bdf40c0d199af31923e900d082ca2dd' + 'ace6ab49184e329db254e454a010f56d' + 'db60e4fde8dd6d6807523deb71ee34dc' + 'ba2930200c9f019c2d93a8c88c651a0f' + '18f577b374d60b3c760a3a3350407632' + '0ff7d225d087793c8c2c680d77aac3e7' + '185d60944ea767075d27247c3162b3bc' + '90401bca927835b6fbae4a707ed187c8' + '451ccf439a36a568653b024534669971' + '7e7efc5d4a03126bb9ae3ae9aa2c4e87' + '41c9b65ad60af4b3255bbecdfef11736' + 'bbdd5639ada63e3130761daaecae1a10' + '23bd75552206dfcd8fd4e29137dcac84' + 'b8cbca7b3363e6ca2d02bc0ba2b63904' + 'b632bdd25649cc4067bcb410bae23d2b' + '9d60b6cfa3ef1926848710bbcd11115b' + 'dbaafd21de055e582d92d7d32fe9da13' + 'b7b2d0e04e142f26dd96119c80757d1f' + 'bc228237108cab7745897a9f466b6d39' + 'eee273f501ff45dc5f1365e78c6d57c0' + '43b145db28e6c0d73578ae6fd35e510d' + '37638431e7e40baf2e47966ebb9bc0e9' + '3c6c62e77c30649a3dfe73512947cc9a' + 'eb35d4c715e0dfc23bbc706996033829' + '10600d04ee81014bc9b5cc04e615d799') + +build() { + + unset J2REDIR; unset J2SDKDIR; unset JAVA_HOME; unset CLASSPATH; unset EXTRAOPTS + [ -z "${JAVA_HOME}" ] && . /etc/profile.d/jdk.sh || . /etc/profile.d/openjdk6.sh + [ -z "${MOZ_PLUGIN_PATH}" ] && . /etc/profile.d/mozilla-common.sh + [ -z "${ANT_HOME}" ] && . /etc/profile.d/apache-ant.sh + + # move all LibO sources into one build directory + mkdir ${srcdir}/build && cd ${srcdir}/build + for i in libreoffice-{artwork,base,bootstrap,calc,components,extensions,extras,filters,help,impress,libs-core,libs-extern,libs-extern-sys,libs-gui,postprocess,sdk,testing,ure,writer}-${_LOver}; do #,translations + mv ${srcdir}/$i/* . + done +# mv ${srcdir}/libreoffice-bootstrap-${_LOver}/* . +# ./bin/unpack-sources ${srcdir}/build + + # move external sources into place + mkdir ${srcdir}/ext_sources && cd ${srcdir}/ext_sources + for source in "${noextract[@]}"; do + ln -s ${srcdir}/$source . + done + + cd ${srcdir}/build + + # buildfixes & bugfixes + #patch -Np1 -i ${srcdir}/buildfix_boost.diff + patch -Np1 -i ${srcdir}/buildfix_ct2n.diff + patch -Np0 -i ${srcdir}/vbahelper.visibility.patch + patch -Np0 -i ${srcdir}/scp2-more-reasonable-file-access-rights.diff + patch -Np1 -i ${srcdir}/oracle-recognition.diff + patch -Np1 -i ${srcdir}/RemovetheoslSecuritygetHomeDircheck.diff + # https://www.libreoffice.org/bugzilla/show_bug.cgi?id=43139 + patch -Np1 -i ${srcdir}/gcc462_buildfix.diff + + # unset C(XX)FLAGS + # http://www.openoffice.org/issues/show_bug.cgi?id=103205 +# unset CFLAGS +# unset CXXFLAGS + + #use the CFLAGS but remove the LibO overridden ones + for i in $CFLAGS; do + case "$i" in + -O?|-pipe|-Wall|-g|-fexceptions) continue;; + esac + ARCH_FLAGS="$ARCH_FLAGS $i" + done + + # python2 fix + export PYTHON=python2 + + # http://wiki.documentfoundation.org/Development/How_to_build/Configure_options + +# if [ "$CARCH" = "x86_64" ]; then +# EXTRAOPTS="--without-stlport" +# else +# EXTRAOPTS="--with-stlport" # --without-system-boost" +# # # avoid problems with ixion for now +# sed -i '/fields-table-formula.diff/d' patches/dev300/apply || return 1 +# fi + + # needed for 0003-distro-install-fix-en-US-only-installation.patch + autoconf -f + + # non-SMP test build +# export MAKEFLAGS="-j1" + ./configure --with-build-version="${_LOver} ArchLinux build-${pkgrel}" --with-vendor="ArchLinux" \ + --with-unix-wrapper="libreoffice" \ + --enable-split-app-modules \ + --with-max-jobs=${MAKEFLAGS/-j/} --with-num-cpus=${MAKEFLAGS/-j/} \ + --with-external-tar="${srcdir}/ext_sources" \ + --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc \ + --with-install-dirname="${pkgbase}" --libdir=/usr/lib --mandir=/usr/share/man \ + --disable-verbose \ + --with-lang="" \ + --enable-cairo\ + --enable-crashdump \ + --enable-dbus \ + --enable-evolution2\ + --enable-gio\ + --disable-gnome-vfs\ + --disable-kde\ + --enable-kde4\ + --enable-ldap \ + --enable-lockdown\ + --enable-opengl \ + --enable-odk\ + --enable-opengl\ + --enable-ext-barcode \ + --enable-ext-diagram \ + --enable-ext-google-docs \ + --enable-ext-hunart \ + --disable-ext-lightproof \ + --disable-ext-mysql-connector \ + --with-system-mysql \ + --enable-ext-nlpsolver \ + --enable-ext-ct2n \ + --enable-ext-numbertext \ + --enable-ext-oooblogger \ + --enable-ext-pdfimport \ + --enable-ext-presenter-console \ + --enable-ext-presenter-minimizer \ + --enable-ext-report-builder \ + --enable-ext-scripting-beanshell \ + --enable-ext-scripting-javascript \ + --enable-ext-scripting-python \ + --enable-ext-typo \ + --enable-ext-validator \ + --enable-ext-watch-window \ + --enable-ext-wiki-publisher \ + --without-fonts\ + --without-afms\ + --without-ppds\ + --without-system-libwps\ + --without-system-mdds\ + --without-myspell-dicts \ + --with-system-dicts \ + --with-external-dict-dir=/usr/share/hunspell \ + --with-external-hyph-dir=/usr/share/hyphen \ + --with-external-thes-dir=/usr/share/mythes \ + --with-system-cppunit\ + --with-system-graphite\ + --with-system-libwpg \ + --with-system-libwps \ + --with-system-redland\ + --without-system-saxon\ + --with-system-libtextcat \ + --with-external-libtextcat-data \ + --with-openldap\ + --with-ant-home="/usr/share/java/apache-ant"\ + --with-system-boost\ + --with-system-cairo\ + --with-system-libs\ + --with-system-mozilla\ + --with-system-mythes\ + --with-system-xrender-headers\ + --with-system-headers\ + --with-alloc=system\ + --with-system-lucene\ + --with-lucene-core-jar=/usr/share/java/lucene-core.jar\ + --with-lucene-analyzers-jar=/usr/share/java/lucene-analyzers.jar\ + --with-java-target-version=1.5 \ + $EXTRAOPTS || return 1 + +#--enable-split-opt-features Split file lists for some optional features, .e.g. pyuno, testtool + +#--with-servlet-api-jar=JARFILE +# see http://qa.openoffice.org/issues/show_bug.cgi?id=110136 +# --with-system-saxon\ +# --with-saxon-jar=/usr/share/java/saxon/saxon9he.jar\ + + touch src.downloaded + #./download + unset MAKEFLAGS + ./bootstrap + make + + # fake installation to create split file lists + mkdir $srcdir/fakeinstall + make DESTDIR=${srcdir}/fakeinstall distro-pack-install +} + +#check() { +# cd ${srcdir}/build +# make check +#} + +package_libreoffice-common() { + + pkgdesc="common files for LibreOffice - a productivity suite that is compatible with other major office suites" + install=${pkgbase}.install + depends=('libreoffice-langpack' "curl>=7.20.0" "hunspell>=1.2.8" "python2>=2.7" 'libxaw' "neon>=0.28.6" + 'pango' 'nspr' 'libjpeg' 'libxrandr' 'libgl' 'libxslt' "icu>=4.6" + 'redland' 'hyphen' 'gcc-libs' 'sh' 'libtextcat' 'graphite' + 'hicolor-icon-theme' 'desktop-file-utils' 'shared-mime-info' 'gtk2' 'orbit2') # keep gtk2 for install script + #'java-runtime' + #'saxon' + optdepends=('libreoffice-langpack: additional language support' + 'java-runtime: adds java support' + 'libcups: adds printing support' + 'gconf: adds additional gnome support' + 'nss: adds support for signed files/macros' + 'pstoedit: translates PostScript and PDF graphics into other vector formats' + 'poppler: for shipped pdfimport extension' + 'libmythes: for use in thesaurus' + 'hsqldb-java: default database format for OpenOffice.org' + 'beanshell: interactive java -- good for prototyping /macros' + 'vigra: C++ computer vision library, usable in Basebmp' + 'libmspack: library for Microsoft compression formats for use in FontOOo' + 'libwpg: library for importing and converting Corel WordPerfect(tm) Graphics images' + 'libldap: to get profiles via ldap' + 'lucene: full-text search engine library for Java needed in the help section' + 'sane: for scanner access' + 'unixodbc: adds ODBC database support' + 'gstreamer0.10-base: + some gstr-plugins to support multimedia content, e.g. in impress') + backup=(etc/libreoffice/sofficerc + etc/libreoffice/bootstraprc + etc/libreoffice/psprint.conf) + groups=('libreoffice') + provides=('go-openoffice') + conflicts=('go-openoffice') + replaces=('go-openoffice' 'openoffice-base' 'libreoffice') + + # create directories from *list.txt file + for directory in `grep ^%dir ${srcdir}/build/file-lists/common_list.txt`; do + install -dm755 ${pkgdir}/${directory/\%dir/} + done + # install files into the pkg from fakeinstall dir + for file in `grep -v ^%dir $srcdir/build/file-lists/common_list.txt`; do + dirname=`dirname $file` + # check if directory has been already been created - some are missing like manpages + [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname + # mv file from fakeinstall to pkgdir + mv ${srcdir}/fakeinstall${file} ${pkgdir}$file + done + + # # remove version in menu entry and make it visible +# sed -i -e "/NoDisplay=true/d" ${pkgdir}/usr/share/applications/libreoffice-qstart.desktop +# echo "Icon=startcenter" >> ${pkgdir}/usr/share/applications/libreoffice-qstart.desktop + + # put configuration files into place + install -dm755 ${pkgdir}/etc/libreoffice + install -m644 ${pkgdir}/usr/lib/libreoffice/program/{bootstraprc,sofficerc} ${pkgdir}/etc/libreoffice/ + install -m644 ${pkgdir}/usr/lib/libreoffice/basis3.4/share/psprint/psprint.conf ${pkgdir}/etc/libreoffice/ + # install dummy links to make them found by LibO + cd ${pkgdir}/usr/lib/libreoffice/program/ + ln -vsf /etc/libreoffice/{bootstraprc,sofficerc} . + cd ${pkgdir}/usr/lib/libreoffice/basis3.4/share/psprint/ + ln -vsf /etc/libreoffice/psprint.conf . + + #fix http://bugs.archlinux.org/task/17656 + find ${pkgdir} -perm 444 -exec ls -lh {} \; + find ${pkgdir} -perm 444 -exec chmod 644 {} \; + find ${pkgdir} -perm 555 -exec ls -lh {} \; + find ${pkgdir} -perm 555 -exec chmod 755 {} \; +} + +package_libreoffice-base() { + pkgdesc="GUI Spreadsheet Applicationdatabase front-end for LibreOffice. Allows creation and management of databases through a GUI." + depends=('libreoffice-common') + optdepends=() + backup=() + groups=('libreoffice') + replaces=('libreoffice') + + # create directories from *list.txt file + for directory in `grep ^%dir ${srcdir}/build/file-lists/base_list.txt`; do + install -dm755 ${pkgdir}/${directory/\%dir/} + done + # install files into the pkg from fakeinstall dir + for file in `grep -v ^%dir $srcdir/build/file-lists/base_list.txt`; do + dirname=`dirname $file` + # check if directory has been already been created - some are missing like manpages + [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname + # mv file from fakeinstall to pkgdir + mv ${srcdir}/fakeinstall${file} ${pkgdir}$file + done +} + +package_libreoffice-calc() { + pkgdesc="Spreadsheet application for LibreOffice." + depends=('libreoffice-common' 'lpsolve' ) + optdepends=() + backup=() + groups=('libreoffice') + replaces=('libreoffice') + + # create directories from *list.txt file + for directory in `grep ^%dir ${srcdir}/build/file-lists/calc_list.txt`; do + install -dm755 ${pkgdir}/${directory/\%dir/} + done + # install files into the pkg from fakeinstall dir + for file in `grep -v ^%dir $srcdir/build/file-lists/calc_list.txt`; do + dirname=`dirname $file` + # check if directory has been already been created - some are missing like manpages + [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname + # mv file from fakeinstall to pkgdir + mv ${srcdir}/fakeinstall${file} ${pkgdir}$file + done +} + +package_libreoffice-draw() { + pkgdesc="Drawing Application for LibreOffice." + depends=('libreoffice-common') + optdepends=() + backup=() + groups=('libreoffice') + replaces=('libreoffice') + + # create directories from *list.txt file + for directory in `grep ^%dir ${srcdir}/build/file-lists/draw_list.txt`; do + install -dm755 ${pkgdir}/${directory/\%dir/} + done + # install files into the pkg from fakeinstall dir + for file in `grep -v ^%dir $srcdir/build/file-lists/draw_list.txt`; do + dirname=`dirname $file` + # check if directory has been already been created - some are missing like manpages + [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname + # mv file from fakeinstall to pkgdir + mv ${srcdir}/fakeinstall${file} ${pkgdir}$file + done +} + +package_libreoffice-gnome() { + pkgdesc="Plug-in for LibreOffice that enables integration into the Gnome and other gtk desktop environment." + depends=('libreoffice-common' 'dbus-glib') + optdepends=() + backup=() + groups=('libreoffice') + + # create directories from *list.txt file + for directory in `grep ^%dir ${srcdir}/build/file-lists/gnome_list.txt`; do + install -dm755 ${pkgdir}/${directory/\%dir/} + done + # install files into the pkg from fakeinstall dir + for file in `grep -v ^%dir $srcdir/build/file-lists/gnome_list.txt`; do + dirname=`dirname $file` + # check if directory has been already been created - some are missing like manpages + [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname + # mv file from fakeinstall to pkgdir + mv ${srcdir}/fakeinstall${file} ${pkgdir}$file + done +} + +package_libreoffice-impress() { + pkgdesc="Presentation Application for LibreOffice." + depends=('libreoffice-common') + optdepends=('mesa: for the OGLTrans extension') + backup=() + groups=('libreoffice') + replaces=('libreoffice') + + # create directories from *list.txt file + for directory in `grep ^%dir ${srcdir}/build/file-lists/impress_list.txt`; do + install -dm755 ${pkgdir}/${directory/\%dir/} + done + # install files into the pkg from fakeinstall dir + for file in `grep -v ^%dir $srcdir/build/file-lists/impress_list.txt`; do + dirname=`dirname $file` + # check if directory has been already been created - some are missing like manpages + [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname + # mv file from fakeinstall to pkgdir + mv ${srcdir}/fakeinstall${file} ${pkgdir}$file + done +} + +package_libreoffice-kde4() { + pkgdesc="Plug-in for LibreOffice that enables integration into the KDE4 desktop environment." + depends=('libreoffice-common' 'kdelibs') + optdepends=() + backup=() + groups=('libreoffice') + + # create directories from *list.txt file + for directory in `grep ^%dir ${srcdir}/build/file-lists/kde4_list.txt`; do + install -dm755 ${pkgdir}/${directory/\%dir/} + done + # install files into the pkg from fakeinstall dir + for file in `grep -v ^%dir $srcdir/build/file-lists/kde4_list.txt`; do + dirname=`dirname $file` + # check if directory has been already been created - some are missing like manpages + [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname + # mv file from fakeinstall to pkgdir + mv ${srcdir}/fakeinstall${file} ${pkgdir}$file + done +} + +package_libreoffice-math() { + pkgdesc="Equation Editor Applicationfor LibreOffice." + depends=('libreoffice-common') + optdepends=() + backup=() + groups=('libreoffice') + replaces=('libreoffice') + + # create directories from *list.txt file + for directory in `grep ^%dir ${srcdir}/build/file-lists/math_list.txt`; do + install -dm755 ${pkgdir}/${directory/\%dir/} + done + # install files into the pkg from fakeinstall dir + for file in `grep -v ^%dir $srcdir/build/file-lists/math_list.txt`; do + dirname=`dirname $file` + # check if directory has been already been created - some are missing like manpages + [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname + # mv file from fakeinstall to pkgdir + mv ${srcdir}/fakeinstall${file} ${pkgdir}$file + done +} + +package_libreoffice-sdk() { + pkgdesc="Software Development Kit for LibreOffice." + depends=('libreoffice-common' 'gcc-libs' 'sh' 'make' 'zip' 'gcc' 'java-environment') + optdepends=() + backup=() + groups=('libreoffice') + + # create directories from *list.txt file + for directory in `grep ^%dir ${srcdir}/build/file-lists/sdk_list.txt`; do + install -dm755 ${pkgdir}/${directory/\%dir/} + done + # install files into the pkg from fakeinstall dir + for file in `grep -v ^%dir $srcdir/build/file-lists/sdk_list.txt`; do + dirname=`dirname $file` + # check if directory has been already been created - some are missing like manpages + [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname + # mv file from fakeinstall to pkgdir + mv ${srcdir}/fakeinstall${file} ${pkgdir}$file + done + + # fix ArchLinux LibreOffice installation paths + sed -i -e "s,@OO_SDK_NAME@,libreoffice-sdk," \ + -e "s,@OO_SDK_HOME@,/usr/lib/libreoffice/basis3.4/sdk," \ + -e "s,@OFFICE_HOME@,/usr/lib/libreoffice," \ + -e "s,@OFFICE_BASE_HOME@,/usr/lib/libreoffice/basis3.4," \ + -e "s,@OO_SDK_URE_HOME@,/usr/lib/libreoffice/ure," \ + -e "s,@OO_SDK_MAKE_HOME@,/usr/bin," \ + -e "s,@OO_SDK_ZIP_HOME@,/usr/bin," \ + -e "s,@OO_SDK_CPP_HOME@,/usr/bin," \ + -e "s,@OO_SDK_CC_55_OR_HIGHER@,," \ + -e "s,@OO_SDK_JAVA_HOME@,\$J2SDKDIR," \ + -e "s,@OO_SDK_OUTPUT_DIR@,\$HOME," \ + -e "s,@SDK_AUTO_DEPLOYMENT@,NO," ${pkgdir}/usr/lib/libreoffice/basis3.4/sdk/setsdkenv_unix.{csh,sh}.in +} + +package_libreoffice-sdk-doc() { + pkgdesc="Software Development Kit documentation for LibreOffice" + depends=('libreoffice-common' 'libreoffice-sdk') + optdepends=() + backup=() + groups=('libreoffice') + + # create directories from *list.txt file + for directory in `grep ^%dir ${srcdir}/build/file-lists/sdk_doc_list.txt`; do + install -dm755 ${pkgdir}/${directory/\%dir/} + done + # install files into the pkg from fakeinstall dir + for file in `grep -v ^%dir $srcdir/build/file-lists/sdk_doc_list.txt`; do + dirname=`dirname $file` + # check if directory has been already been created - some are missing like manpages + [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname + # mv file from fakeinstall to pkgdir + mv ${srcdir}/fakeinstall${file} ${pkgdir}$file + done + + #fix permissions + find ${pkgdir}/usr/lib/libreoffice/basis3.4/sdk/examples -type f -exec chmod -x {} \; +} + +package_libreoffice-writer() { + pkgdesc="Word Processor Applicationfor LibreOffice." + depends=('libreoffice-common' 'libwpd>=0.9.2' 'libwps' 'libxml2') + optdepends=('libwpg: library for importing and converting Corel WordPerfect(tm) Graphics images') + backup=() + groups=('libreoffice') + replaces=('libreoffice') + + # create directories from *list.txt file + for directory in `grep ^%dir ${srcdir}/build/file-lists/writer_list.txt`; do + install -dm755 ${pkgdir}/${directory/\%dir/} + done + # install files into the pkg from fakeinstall dir + for file in `grep -v ^%dir $srcdir/build/file-lists/writer_list.txt`; do + dirname=`dirname $file` + # check if directory has been already been created - some are missing like manpages + [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname + # mv file from fakeinstall to pkgdir + mv ${srcdir}/fakeinstall${file} ${pkgdir}$file + done +} + +package_libreoffice-en-US() { + pkgdesc="English (US) language pack for LibreOffice" + #arch=('any') + provides=('openoffice-en-US' 'libreoffice-langpack') + replaces=(openoffice-en-US) + conflicts=(openoffice-en-US) + + # create directories from *list.txt file + for directory in `grep ^%dir ${srcdir}/build/file-lists/lang_en_US_list.txt`; do + install -dm755 ${pkgdir}/${directory/\%dir/} + done + # install files into the pkg from fakeinstall dir + for file in `grep -v ^%dir $srcdir/build/file-lists/lang_en_US_list.txt`; do + dirname=`dirname $file` + # check if directory has been already been created - some are missing like manpages + [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname + # mv file from fakeinstall to pkgdir + mv ${srcdir}/fakeinstall${file} ${pkgdir}$file + done +} + +package_libreoffice-extension-barcode() { + + pkgdesc="This extension generates UPC-A, EAN-13, ISBN and JAN barcodes in Draw " + #arch=('any') + depends=('libreoffice-common') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/7e7efc5d4a03126bb9ae3ae9aa2c4e87-Barcode_1.3.1.0.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/Barcode + chmod o-w -R ${pkgdir}/usr/lib/libreoffice/share/extensions/Barcode +} + +package_libreoffice-extension-diagram() { + + pkgdesc="An OOo Draw and Impress extension that creates your favorite diagrams with a few clicks" + #arch=('any') + depends=('libreoffice-common' 'java-environment') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/41c9b65ad60af4b3255bbecdfef11736-Diagram_1.1.0.0.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/diagram +} + +package_libreoffice-extension-google-docs() { + + pkgdesc="Google Documents extension for LibreOffice" + #arch=('any') + depends=('libreoffice-common' 'java-environment') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/dbaafd21de055e582d92d7d32fe9da13-gdocs_2.3.1.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/google-docs +} + +package_libreoffice-extension-hunart() { + + pkgdesc="Hungarian cross-reference toolbar extension" + #arch=('any') + depends=('libreoffice-common') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/b632bdd25649cc4067bcb410bae23d2b-hunart_0.3.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/hunart +} + +#package_libreoffice-extension-lightproof() { + +# pkgdesc="Lightproof extension for LibreOffice" + #arch=('any') +# depends=('libreoffice-common') +# groups=('libreoffice-extensions') + +# install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions +# unzip -q ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/Lightproof.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/lightproof +#} + +#package_libreoffice-extension-mysql-connector() { + +# pkgdesc="MySQL Connector extension for LibreOffice" + #arch=('any') +# depends=('libreoffice-common') +# groups=('libreoffice-extensions') + +# install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions +# unzip -q ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/Mysql-connector.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/mysql-connector +#} + +package_libreoffice-extension-nlpsolver() { + + pkgdesc="This extension integrates into Calc and offers new Solver engines to use for optimizing nonlinear programming models" + #arch=('any') + depends=('libreoffice-common' 'java-environment') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/NLPSolver.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/nlpsolver +} + +package_libreoffice-extension-ct2n() { + + pkgdesc="This extension enables you to convert text-cells in Calc with numbers and dates, to real numbers and dates." + #arch=('any') + depends=('libreoffice-common') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/ConvertTextToNumber.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/ct2n +} + +package_libreoffice-extension-numbertext() { + + pkgdesc="NUMBERTEXT/MONEYTEXT extensions" + #arch=('any') + depends=('libreoffice-common') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/b8cbca7b3363e6ca2d02bc0ba2b63904-numbertext_0.9.4.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/numbertext +} + +package_libreoffice-extension-oooblogger() { + + pkgdesc="An extensions for blogging" + #arch=('any') + depends=('libreoffice-common' 'coreutils' 'python') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/b7b2d0e04e142f26dd96119c80757d1f-oooblogger_0.1.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/oooblogger +} + +package_libreoffice-extension-pdfimport() { + + pkgdesc="This extension allows you to import and modify PDF documents" + depends=('libreoffice-common' 'poppler') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/pdfimport/pdfimport.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/pdfimport +} + +package_libreoffice-extension-presenter-screen() { + + pkgdesc="This extension provides more control over your slide show presentation, such as the ability to see the upcoming slide, the slide notes, and a presentation timer whereas the audience see only the current slide" + depends=('libreoffice-common' 'java-environment') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/presenter-screen.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/presenter-screen +} + +package_libreoffice-extension-presentation-minimizer() { + + pkgdesc="This extension reduce the file size of the current presentation" + depends=('libreoffice-common' 'gcc-libs') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/presentation-minimizer.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/presentation-minimizer +} + +package_libreoffice-extension-report-builder() { + + pkgdesc="This extension creates smart-looking database reports" + #arch=('any') + depends=('libreoffice-common' 'java-environment') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/report-builder.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/report-builder +} + +package_libreoffice-extension-scripting-beanshell() { + + pkgdesc="LibreOffice extension - Enables support for scripts in BeanShell" + depends=('libreoffice-common' 'java-environment') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/script-provider-for-beanshell.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/script-provider-for-beanshell +} + +package_libreoffice-extension-scripting-javascript() { + + pkgdesc="LibreOffice extension - Enables support for scripts in JavaScript" + depends=('libreoffice-common' 'java-environment') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/script-provider-for-javascript.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/script-provider-for-javascript +} + +package_libreoffice-extension-scripting-python() { + + pkgdesc="LibreOffice extension - Enables support for scripts in Python" + depends=('libreoffice-common' 'python') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/script-provider-for-python.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/script-provider-for-python +} + +package_libreoffice-extension-typo() { + + pkgdesc="Typography toolbar extension" + #arch=('any') + depends=('libreoffice-common') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/9d60b6cfa3ef1926848710bbcd11115b-typo_0.4.2.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/typo + find ${pkgdir} -type d -exec chmod 755 {} \; + #chmod o+r -R ${pkgdir}/usr/lib/libreoffice/share/extensions/typo +} + +package_libreoffice-extension-validator() { + + pkgdesc="Validator extension for LibreOffice" + #arch=('any') + depends=('libreoffice-common' 'java-environment') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/bbdd5639ada63e3130761daaecae1a10-Validator_1.1.0.0.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/validator +} + +package_libreoffice-extension-wiki-publisher() { + + pkgdesc="This extension enables you to create Wiki articles on MediaWiki servers without having to know the syntax of the MediaWiki markup language" + #arch=('any') + depends=('libreoffice-common' 'java-environment') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/wiki-publisher.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/wiki-publisher +} + +package_libreoffice-extension-watch-window() { + + pkgdesc="A OOo Calc extension to add a Watch Window, which keeps the value of the monitored cell on the screen." + #arch=('any') + depends=('libreoffice-common' 'java-environment') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/23bd75552206dfcd8fd4e29137dcac84-WatchWindow_1.2.0.0.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/watch-window +} diff --git a/testing/libreoffice/PKGBUILD.next_stable b/testing/libreoffice/PKGBUILD.next_stable new file mode 100644 index 000000000..1005760ac --- /dev/null +++ b/testing/libreoffice/PKGBUILD.next_stable @@ -0,0 +1,924 @@ +# $Id: PKGBUILD 142692 2011-11-12 20:22:14Z ibiru $ +# Maintainer: AndyRTR <andyrtr@archlinux.org> + +pkgbase="libreoffice" +pkgname=('libreoffice-common' + 'libreoffice-base' + 'libreoffice-calc' + 'libreoffice-draw' + 'libreoffice-gnome' + 'libreoffice-impress' + 'libreoffice-kde4' + 'libreoffice-math' + 'libreoffice-sdk' + 'libreoffice-sdk-doc' + 'libreoffice-writer' + 'libreoffice-en-US' + #'libreoffice-extension-barcode' # +# 'libreoffice-extension-diagram' +# 'libreoffice-extension-google-docs' +# 'libreoffice-extension-hunart' + #'libreoffice-extension-lightproof' # no source integration + #'libreoffice-extension-mysql-connector' # missing libmysqlcppconn-dev configure: error: mysql_driver.h not found. install MySQL C++ Connectivity +# 'libreoffice-extension-nlpsolver' +# 'libreoffice-extension-ct2n' +# 'libreoffice-extension-numbertext' +# 'libreoffice-extension-oooblogger' + 'libreoffice-extension-pdfimport' + 'libreoffice-extension-presenter-screen' + 'libreoffice-extension-presentation-minimizer' + 'libreoffice-extension-report-builder' +# 'libreoffice-extension-scripting-beanshell' +# 'libreoffice-extension-scripting-javascript' +# 'libreoffice-extension-scripting-python' +# 'libreoffice-extension-typo' +# 'libreoffice-extension-validator' +# 'libreoffice-extension-watch-window' +# 'libreoffice-extension-wiki-publisher' +) +_LOver=3.5.0.0 +pkgver=3.5.0beta1 +pkgrel=1 +arch=('i686' 'x86_64') +license=('LGPL3') +url="http://www.libreoffice.org/" +makedepends=( # makedepends + 'sane' 'perl-archive-zip' 'zip' 'unzip' 'unixodbc' 'hsqldb-java' 'boost' #'xulrunner' + 'apache-ant' 'gperf' 'poppler>=0.18.0' 'kdelibs' 'gconf' 'cppunit' #'libmysqlclient' + 'beanshell' 'vigra' 'lucene' 'junit' 'libmythes' 'libwpg' 'imagemagick' # 'libldap' + 'mesa' 'gstreamer0.10-base' 'java-environment' 'zenity' # for build icon :D + #'saxon' - currently broken + # the depends from libreoffice main pkg + "curl>=7.20.0" "hunspell>=1.2.8" "python2>=2.7" 'libwpd>=0.9.2' 'libwps' 'libxaw' "neon>=0.28.6" + 'pango' 'nspr' 'libjpeg' 'libxrandr' 'libgl' 'dbus-glib' "icu>=4.6" 'libxslt' 'librsvg' + 'redland' 'hyphen' 'lpsolve' 'gcc-libs' 'sh' 'libtextcat' 'graphite' + 'hicolor-icon-theme' 'desktop-file-utils' 'shared-mime-info' 'gtk2' 'orbit2' 'translate-toolkit' # keep gtk2 for install script + 'ttf-dejavu') # to satisfy regression tests + +# http://download.documentfoundation.org/mirrors/all.html +# http://wiki.documentfoundation.org/Mirrors + +#_mirror="http://download.documentfoundation.org/libreoffice/src/${pkgver}" +_mirror="http://dev-builds.libreoffice.org/pre-releases/src" +_additional_source_url="http://dev-www.libreoffice.org/src" +source=(${_mirror}/${pkgbase}-{core,help,translations}-${_LOver}.tar.bz2 + ${_additional_source_url}/8f107ffb3fc9d9b920b7bbd0bc79c7e8-libvisio-0.0.10.tar.bz2 + ${_additional_source_url}/1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz + ${_additional_source_url}/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip + ${_additional_source_url}/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip + ${_additional_source_url}/fdb27bfe2dbe2e7b57ae194d9bf36bab-SampleICC-1.3.2.tar.gz + ${_additional_source_url}/ada24d37d8d638b3d8a9985e80bc2978-source-9.0.0.7-bj.zip + ${_additional_source_url}/2a177023f9ea8ec8bd00837605c5df1b-jakarta-tomcat-5.0.30-src.tar.gz + ${_additional_source_url}/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip + ${_additional_source_url}/3c219630e4302863a9a83d0efde889db-commons-logging-1.1.1-src.tar.gz + ${_additional_source_url}/2ae988b339daec234019a7066f96733e-commons-lang-2.3-src.tar.gz + ${_additional_source_url}/2c9b0f83ed5890af02c0df1c1776f39b-commons-httpclient-3.1-src.tar.gz + ${_additional_source_url}/af3c3acf618de6108d65fcdc92b492e1-commons-codec-1.3-src.tar.gz + ${_additional_source_url}/eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip + ${_additional_source_url}/39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip + ${_additional_source_url}/3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip + ${_additional_source_url}/97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip + ${_additional_source_url}/f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip + ${_additional_source_url}/8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip + ${_additional_source_url}/d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip + ${_additional_source_url}/3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip + ${_additional_source_url}/ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip + ${_additional_source_url}/db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip + ${_additional_source_url}/ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip +# ${_additional_source_url}/18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz + ${_additional_source_url}/0ff7d225d087793c8c2c680d77aac3e7-mdds_0.5.3.tar.bz2 + ${_additional_source_url}/e1c178b18f130b40494561f02bc1a948-libexttextcat-3.2.0.tar.bz2 + ${_additional_source_url}/7c2549f6b0a8bb604e6c4c729ffdcfe6-libcmis-0.1.0.tar.gz + http://download.go-oo.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll +# ${_additional_source_url}/451ccf439a36a568653b024534669971-ConvertTextToNumber-1.3.2.oxt +# http://ooo.itc.hu/oxygenoffice/download/libreoffice/4a433efb6d385264ebc1d5513782d51c-SmART_0.9.4.oxt +# http://ooo.itc.hu/oxygenoffice/download/libreoffice/7e7efc5d4a03126bb9ae3ae9aa2c4e87-Barcode_1.3.1.0.oxt +# http://ooo.itc.hu/oxygenoffice/download/libreoffice/41c9b65ad60af4b3255bbecdfef11736-Diagram_1.1.0.0.oxt +# http://ooo.itc.hu/oxygenoffice/download/libreoffice/bbdd5639ada63e3130761daaecae1a10-Validator_1.1.0.0.oxt +# http://ooo.itc.hu/oxygenoffice/download/libreoffice/23bd75552206dfcd8fd4e29137dcac84-WatchWindow_1.2.0.0.oxt +# http://ooo.itc.hu/oxygenoffice/download/libreoffice/b8cbca7b3363e6ca2d02bc0ba2b63904-numbertext_0.9.4.oxt +# http://ooo.itc.hu/oxygenoffice/download/libreoffice/b632bdd25649cc4067bcb410bae23d2b-hunart_0.3.oxt +# http://ooo.itc.hu/oxygenoffice/download/libreoffice/9d60b6cfa3ef1926848710bbcd11115b-typo_0.4.2.oxt +# http://ooo.itc.hu/oxygenoffice/download/libreoffice/dbaafd21de055e582d92d7d32fe9da13-gdocs_2.3.1.oxt +# http://ooo.itc.hu/oxygenoffice/download/libreoffice/b7b2d0e04e142f26dd96119c80757d1f-oooblogger_0.1.oxt +# buildfix_boost.diff +# buildfix_ct2n.diff +# vbahelper.visibility.patch +# scp2-more-reasonable-file-access-rights.diff +# oracle-recognition.diff::http://cgit.freedesktop.org/libreoffice/core/patch/?id=549e54fb2f8113502743c443d6deadfe648dede1 +# RemovetheoslSecuritygetHomeDircheck.diff::http://cgit.freedesktop.org/libreoffice/ure/patch/?id=bc9b86940a707e9e2e1076f2954f38075398b5d7 +) + +noextract=(8f107ffb3fc9d9b920b7bbd0bc79c7e8-libvisio-0.0.10.tar.bz2 + 185d60944ea767075d27247c3162b3bc-unowinreg.dll + 0ff7d225d087793c8c2c680d77aac3e7-mdds_0.5.3.tar.bz2 + ada24d37d8d638b3d8a9985e80bc2978-source-9.0.0.7-bj.zip + 798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip + 1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz + fdb27bfe2dbe2e7b57ae194d9bf36bab-SampleICC-1.3.2.tar.gz + e1c178b18f130b40494561f02bc1a948-libexttextcat-3.2.0.tar.bz2 + 7c2549f6b0a8bb604e6c4c729ffdcfe6-libcmis-0.1.0.tar.gz + 35c94d2df8893241173de1d16b6034c0-swingExSrc.zip + 2a177023f9ea8ec8bd00837605c5df1b-jakarta-tomcat-5.0.30-src.tar.gz + a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip + 3c219630e4302863a9a83d0efde889db-commons-logging-1.1.1-src.tar.gz + 2ae988b339daec234019a7066f96733e-commons-lang-2.3-src.tar.gz + 2c9b0f83ed5890af02c0df1c1776f39b-commons-httpclient-3.1-src.tar.gz + af3c3acf618de6108d65fcdc92b492e1-commons-codec-1.3-src.tar.gz + eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip + 39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip + 3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip + 97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip + f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip + 8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip + d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip + 3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip + ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip + db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip + ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip +# 18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz + #4a433efb6d385264ebc1d5513782d51c-SmART_0.9.4.oxt + #7e7efc5d4a03126bb9ae3ae9aa2c4e87-Barcode_1.3.1.0.oxt + #41c9b65ad60af4b3255bbecdfef11736-Diagram_1.1.0.0.oxt + #451ccf439a36a568653b024534669971-ConvertTextToNumber-1.3.2.oxt + #bbdd5639ada63e3130761daaecae1a10-Validator_1.1.0.0.oxt + #23bd75552206dfcd8fd4e29137dcac84-WatchWindow_1.2.0.0.oxt + #b8cbca7b3363e6ca2d02bc0ba2b63904-numbertext_0.9.4.oxt + #b632bdd25649cc4067bcb410bae23d2b-hunart_0.3.oxt + #9d60b6cfa3ef1926848710bbcd11115b-typo_0.4.2.oxt + #dbaafd21de055e582d92d7d32fe9da13-gdocs_2.3.1.oxt + #b7b2d0e04e142f26dd96119c80757d1f-oooblogger_0.1.oxt +) +md5sums=('bf6ce92d8d69f1dec4836a7249e10436' + 'a0b19441245d7627c299d7014d110b32' + 'b9dee0572120c87906ed6e2fb4696b69' + '8f107ffb3fc9d9b920b7bbd0bc79c7e8' + '1f24ab1d39f4a51faf22244c94a6203f' + '35c94d2df8893241173de1d16b6034c0' + '798b2ffdc8bcfe7bca2cf92b62caf685' + 'fdb27bfe2dbe2e7b57ae194d9bf36bab' + 'ada24d37d8d638b3d8a9985e80bc2978' + '2a177023f9ea8ec8bd00837605c5df1b' + 'a7983f859eafb2677d7ff386a023bc40' + '3c219630e4302863a9a83d0efde889db' + '2ae988b339daec234019a7066f96733e' + '2c9b0f83ed5890af02c0df1c1776f39b' + 'af3c3acf618de6108d65fcdc92b492e1' + 'eeb2c7ddf0d302fba4bfc6e97eac9624' + '39bb3fcea1514f1369fcfc87542390fd' + '3404ab6b1792ae5f16bbd603bd1e1d03' + '97b2d4dba862397f446b217e2b623e71' + 'f94d9870737518e3b597f9265f4e9803' + '8ce2fcd72becf06c41f7201d15373ed9' + 'd8bd5eed178db6e2b18eeed243f85aa8' + '3bdf40c0d199af31923e900d082ca2dd' + 'ace6ab49184e329db254e454a010f56d' + 'db60e4fde8dd6d6807523deb71ee34dc' + 'ba2930200c9f019c2d93a8c88c651a0f' + '0ff7d225d087793c8c2c680d77aac3e7' + 'e1c178b18f130b40494561f02bc1a948' + '7c2549f6b0a8bb604e6c4c729ffdcfe6' + '185d60944ea767075d27247c3162b3bc') + +build() { + + unset J2REDIR; unset J2SDKDIR; unset JAVA_HOME; unset CLASSPATH; unset EXTRAOPTS + [ -z "${JAVA_HOME}" ] && . /etc/profile.d/jdk.sh || . /etc/profile.d/openjdk6.sh + [ -z "${ANT_HOME}" ] && . /etc/profile.d/apache-ant.sh + + cd ${srcdir}/libreoffice-core-$_LOver + + # move external sources into place + mkdir ${srcdir}/ext_sources && pushd ${srcdir}/ext_sources + for source in "${noextract[@]}"; do + ln -s ${srcdir}/$source . + done + popd + + ln -s ../libreoffice-help-$_LOver/helpcontent2 . + ln -s ../libreoffice-translations-$_LOver/translations . + +# ln -s ${srcdir}/ext_sources/*Barcode* solver/unxlngx6.pro/bin/Barcode.oxt +# ln -s ${srcdir}/ext_sources/*SmART* solver/unxlngx6.pro/bin/SmART.oxt +# ln -s ${srcdir}/ext_sources/*gdocs* solver/unxlngx6.pro/bin/gdocs.oxt +# ln -s ${srcdir}/ext_sources/*hunart* solver/unxlngx6.pro/bin/hunart.oxt +# ln -s ${srcdir}/ext_sources/*numbertext* solver/unxlngx6.pro/bin/numbertext.oxt +# ln -s ${srcdir}/ext_sources/*oooblogger* solver/unxlngx6.pro/bin/oooblogger.oxt +# ln -s ${srcdir}/ext_sources/*typo* solver/unxlngx6.pro/bin/typo.oxt +# ln -s ${srcdir}/ext_sources/*Validator* solver/unxlngx6.pro/bin/Validator.oxt +# ln -s ${srcdir}/ext_sources/*WatchWindow* solver/unxlngx6.pro/bin/WatchWindow.oxt + + # buildfixes & bugfixes + #patch -Np1 -i ${srcdir}/buildfix_boost.diff +# patch -Np1 -i ${srcdir}/buildfix_ct2n.diff +# patch -Np0 -i ${srcdir}/vbahelper.visibility.patch +# patch -Np0 -i ${srcdir}/scp2-more-reasonable-file-access-rights.diff +# patch -Np1 -i ${srcdir}/oracle-recognition.diff +# patch -Np1 -i ${srcdir}/RemovetheoslSecuritygetHomeDircheck.diff + + # unset C(XX)FLAGS + # http://www.openoffice.org/issues/show_bug.cgi?id=103205 +# unset CFLAGS +# unset CXXFLAGS + + #use the CFLAGS but remove the LibO overridden ones + for i in $CFLAGS; do + case "$i" in + -O?|-pipe|-Wall|-g|-fexceptions) continue;; + esac + ARCH_FLAGS="$ARCH_FLAGS $i" + done + + # python2 fix + export PYTHON=python2 + + # http://wiki.documentfoundation.org/Development/How_to_build/Configure_options + +# if [ "$CARCH" = "x86_64" ]; then +# EXTRAOPTS="--without-stlport" +# else +# EXTRAOPTS="--with-stlport" # --without-system-boost" +# # # avoid problems with ixion for now +# sed -i '/fields-table-formula.diff/d' patches/dev300/apply || return 1 +# fi + + # needed for 0003-distro-install-fix-en-US-only-installation.patch +# autoconf -f + + # non-SMP test build +# export MAKEFLAGS="-j1" + #./configure --with-build-version="${_LOver} ArchLinux build-${pkgrel}" --with-vendor="ArchLinux" \ + ./autogen.sh --with-build-version="${_LOver} ArchLinux build-${pkgrel}" --with-vendor="ArchLinux" \ + --with-unix-wrapper="libreoffice" \ + --enable-split-app-modules \ + --with-max-jobs=${MAKEFLAGS/-j/} --with-num-cpus=${MAKEFLAGS/-j/} \ + --with-external-tar="${srcdir}/ext_sources" \ + --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc \ + --libdir=/usr/lib --mandir=/usr/share/man \ + --disable-verbose \ + --with-lang="" \ + --enable-crashdump \ + --enable-dbus \ + --enable-evolution2\ + --enable-gio\ + --disable-gnome-vfs\ + --disable-kde\ + --enable-kde4\ + --enable-gtk3 \ + --enable-lockdown\ + --enable-mergelibs \ + --enable-opengl \ + --enable-odk\ + --enable-opengl\ + --disable-ext-lightproof \ + --disable-ext-mysql-connector \ + --with-system-mysql \ + --enable-librsvg=system \ + --without-fonts\ + --without-afms\ + --without-ppds\ + --without-system-libwps\ + --without-system-mdds\ + --without-myspell-dicts \ + --without-system-libvisio \ + --without-system-libcmis \ + --without-system-sampleicc \ + --without-system-libexttextcat \ + --with-system-dicts \ + --with-external-dict-dir=/usr/share/hunspell \ + --with-external-hyph-dir=/usr/share/hyphen \ + --with-external-thes-dir=/usr/share/mythes \ + --with-system-beanshell \ + --with-system-cppunit\ + --with-system-graphite\ + --with-system-libwpg \ + --with-system-libwps \ + --with-system-redland\ + --without-system-saxon\ + --disable-mozilla \ + --without-system-mozilla \ + --without-system-mozilla-headers \ + --with-ant-home="/usr/share/java/apache-ant"\ + --with-system-boost\ + --with-system-cairo\ + --with-system-libs\ + --with-system-mythes\ + --with-system-headers\ + --with-system-hsqldb \ + --with-alloc=system\ + --with-system-lucene\ + --with-lucene-core-jar=/usr/share/java/lucene-core.jar\ + --with-lucene-analyzers-jar=/usr/share/java/lucene-analyzers.jar\ + --with-java-target-version=1.5 \ + $EXTRAOPTS|| return 1 + +# --enable-ext-barcode \ +# --enable-ext-diagram \ +# --enable-ext-google-docs \ +# --enable-ext-hunart \ +# --enable-ext-nlpsolver \ +# --enable-ext-ct2n \ +# --enable-ext-numbertext \ +# --enable-ext-oooblogger \ +# --enable-ext-pdfimport \ +# --enable-ext-presenter-console \ +# --enable-ext-presenter-minimizer \ +# --enable-ext-report-builder \ +# --enable-ext-scripting-beanshell \ +# --enable-ext-scripting-javascript \ +# --enable-ext-typo \ +# --enable-ext-validator \ +# --enable-ext-watch-window \ +# --enable-ext-wiki-publisher \ + +# --disable-mozilla \ +# --enable-ldap \ +# --with-openldap\ + +# --with-system-mozilla\ + +#--with-install-dirname="${pkgbase}" +# --enable-cairo\ +# --enable-ext-scripting-python \ +# --with-system-libtextcat \ +# --with-external-libtextcat-data \ +# --with-system-xrender-headers\ + + + + + +#--enable-split-opt-features Split file lists for some optional features, .e.g. pyuno, testtool + +#--with-servlet-api-jar=JARFILE +# see http://qa.openoffice.org/issues/show_bug.cgi?id=110136 +# --with-system-saxon\ +# --with-saxon-jar=/usr/share/java/saxon/saxon9he.jar\ + + touch src.downloaded + #./download + unset MAKEFLAGS + ./bootstrap + make + + # fake installation to create split file lists + mkdir $srcdir/fakeinstall + make DESTDIR=${srcdir}/fakeinstall distro-pack-install +} + +#check() { +# cd ${srcdir}/build +# make check +#} + +package_libreoffice-common() { + + pkgdesc="common files for LibreOffice - a productivity suite that is compatible with other major office suites" + install=${pkgbase}.install + depends=('libreoffice-langpack' "curl>=7.20.0" "hunspell>=1.2.8" "python2>=2.7" 'libxaw' "neon>=0.28.6" + 'pango' 'nspr' 'libjpeg' 'libxrandr' 'libgl' 'libxslt' "icu>=4.6" 'librsvg' + 'redland' 'hyphen' 'gcc-libs' 'sh' 'libtextcat' 'graphite' + 'hicolor-icon-theme' 'desktop-file-utils' 'shared-mime-info' 'gtk2' 'orbit2') # keep gtk2 for install script + #'java-runtime' + #'saxon' + optdepends=('libreoffice-langpack: additional language support' + 'java-runtime: adds java support' + 'libcups: adds printing support' + 'gconf: adds additional gnome support' + 'nss: adds support for signed files/macros' + 'pstoedit: translates PostScript and PDF graphics into other vector formats' + 'poppler: for shipped pdfimport extension' + 'libmythes: for use in thesaurus' + 'hsqldb-java: default database format for OpenOffice.org' + 'beanshell: interactive java -- good for prototyping /macros' + 'vigra: C++ computer vision library, usable in Basebmp' + 'libmspack: library for Microsoft compression formats for use in FontOOo' + 'libwpg: library for importing and converting Corel WordPerfect(tm) Graphics images' + #'libldap: to get profiles via ldap' + 'lucene: full-text search engine library for Java needed in the help section' + 'sane: for scanner access' + 'unixodbc: adds ODBC database support' + 'gstreamer0.10-base: + some gstr-plugins to support multimedia content, e.g. in impress') + backup=(etc/libreoffice/sofficerc + etc/libreoffice/bootstraprc + etc/libreoffice/psprint.conf) + groups=('libreoffice') + provides=('go-openoffice') + conflicts=('go-openoffice') + replaces=('go-openoffice' 'openoffice-base' 'libreoffice') + + # create directories from *list.txt file + for directory in `grep ^%dir ${srcdir}/libreoffice-core-$_LOver/file-lists/common_list.txt`; do + install -dm755 ${pkgdir}/${directory/\%dir/} + done + # install files into the pkg from fakeinstall dir + for file in `grep -v ^%dir $srcdir/libreoffice-core-$_LOver/file-lists/common_list.txt`; do + dirname=`dirname $file` + # check if directory has been already been created - some are missing like manpages + [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname + # mv file from fakeinstall to pkgdir + mv ${srcdir}/fakeinstall${file} ${pkgdir}$file + done + + # # remove version in menu entry and make it visible +# sed -i -e "/NoDisplay=true/d" ${pkgdir}/usr/share/applications/libreoffice-qstart.desktop +# echo "Icon=startcenter" >> ${pkgdir}/usr/share/applications/libreoffice-qstart.desktop + + # put configuration files into place + install -dm755 ${pkgdir}/etc/libreoffice + install -m644 ${pkgdir}/usr/lib/libreoffice/program/{bootstraprc,sofficerc} ${pkgdir}/etc/libreoffice/ + install -m644 ${pkgdir}/usr/lib/libreoffice/share/psprint/psprint.conf ${pkgdir}/etc/libreoffice/ + # install dummy links to make them found by LibO + cd ${pkgdir}/usr/lib/libreoffice/program/ + ln -vsf /etc/libreoffice/{bootstraprc,sofficerc} . + cd ${pkgdir}/usr/lib/libreoffice/share/psprint/ + ln -vsf /etc/libreoffice/psprint.conf . + + #fix http://bugs.archlinux.org/task/17656 + find ${pkgdir} -perm 444 -exec ls -lh {} \; + find ${pkgdir} -perm 444 -exec chmod 644 {} \; + find ${pkgdir} -perm 555 -exec ls -lh {} \; + find ${pkgdir} -perm 555 -exec chmod 755 {} \; +} + +package_libreoffice-base() { + pkgdesc="GUI Spreadsheet Applicationdatabase front-end for LibreOffice. Allows creation and management of databases through a GUI." + depends=('libreoffice-common') + optdepends=() + backup=() + groups=('libreoffice') + replaces=('libreoffice') + + # create directories from *list.txt file + for directory in `grep ^%dir ${srcdir}/libreoffice-core-$_LOver/file-lists/base_list.txt`; do + install -dm755 ${pkgdir}/${directory/\%dir/} + done + # install files into the pkg from fakeinstall dir + for file in `grep -v ^%dir $srcdir/libreoffice-core-$_LOver/file-lists/base_list.txt`; do + dirname=`dirname $file` + # check if directory has been already been created - some are missing like manpages + [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname + # mv file from fakeinstall to pkgdir + mv ${srcdir}/fakeinstall${file} ${pkgdir}$file + done +} + +package_libreoffice-calc() { + pkgdesc="Spreadsheet application for LibreOffice." + depends=('libreoffice-common' 'lpsolve' ) + optdepends=() + backup=() + groups=('libreoffice') + replaces=('libreoffice') + + # create directories from *list.txt file + for directory in `grep ^%dir ${srcdir}/libreoffice-core-$_LOver/file-lists/calc_list.txt`; do + install -dm755 ${pkgdir}/${directory/\%dir/} + done + # install files into the pkg from fakeinstall dir + for file in `grep -v ^%dir $srcdir/libreoffice-core-$_LOver/file-lists/calc_list.txt`; do + dirname=`dirname $file` + # check if directory has been already been created - some are missing like manpages + [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname + # mv file from fakeinstall to pkgdir + mv ${srcdir}/fakeinstall${file} ${pkgdir}$file + done +} + +package_libreoffice-draw() { + pkgdesc="Drawing Application for LibreOffice." + depends=('libreoffice-common') + optdepends=() + backup=() + groups=('libreoffice') + replaces=('libreoffice') + + # create directories from *list.txt file + for directory in `grep ^%dir ${srcdir}/libreoffice-core-$_LOver/file-lists/draw_list.txt`; do + install -dm755 ${pkgdir}/${directory/\%dir/} + done + # install files into the pkg from fakeinstall dir + for file in `grep -v ^%dir $srcdir/libreoffice-core-$_LOver/file-lists/draw_list.txt`; do + dirname=`dirname $file` + # check if directory has been already been created - some are missing like manpages + [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname + # mv file from fakeinstall to pkgdir + mv ${srcdir}/fakeinstall${file} ${pkgdir}$file + done +} + +package_libreoffice-gnome() { + pkgdesc="Plug-in for LibreOffice that enables integration into the Gnome and other gtk desktop environment." + depends=('libreoffice-common' 'dbus-glib' 'gtk3') + optdepends=() + backup=() + groups=('libreoffice') + + # create directories from *list.txt file + for directory in `grep ^%dir ${srcdir}/libreoffice-core-$_LOver/file-lists/gnome_list.txt`; do + install -dm755 ${pkgdir}/${directory/\%dir/} + done + # install files into the pkg from fakeinstall dir + for file in `grep -v ^%dir $srcdir/libreoffice-core-$_LOver/file-lists/gnome_list.txt`; do + dirname=`dirname $file` + # check if directory has been already been created - some are missing like manpages + [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname + # mv file from fakeinstall to pkgdir + mv ${srcdir}/fakeinstall${file} ${pkgdir}$file + done +} + +package_libreoffice-impress() { + pkgdesc="Presentation Application for LibreOffice." + depends=('libreoffice-common') + optdepends=('mesa: for the OGLTrans extension') + backup=() + groups=('libreoffice') + replaces=('libreoffice') + + # create directories from *list.txt file + for directory in `grep ^%dir ${srcdir}/libreoffice-core-$_LOver/file-lists/impress_list.txt`; do + install -dm755 ${pkgdir}/${directory/\%dir/} + done + # install files into the pkg from fakeinstall dir + for file in `grep -v ^%dir $srcdir/libreoffice-core-$_LOver/file-lists/impress_list.txt`; do + dirname=`dirname $file` + # check if directory has been already been created - some are missing like manpages + [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname + # mv file from fakeinstall to pkgdir + mv ${srcdir}/fakeinstall${file} ${pkgdir}$file + done +} + +package_libreoffice-kde4() { + pkgdesc="Plug-in for LibreOffice that enables integration into the KDE4 desktop environment." + depends=('libreoffice-common' 'kdelibs') + optdepends=() + backup=() + groups=('libreoffice') + + # create directories from *list.txt file + for directory in `grep ^%dir ${srcdir}/libreoffice-core-$_LOver/file-lists/kde4_list.txt`; do + install -dm755 ${pkgdir}/${directory/\%dir/} + done + # install files into the pkg from fakeinstall dir + for file in `grep -v ^%dir $srcdir/libreoffice-core-$_LOver/file-lists/kde4_list.txt`; do + dirname=`dirname $file` + # check if directory has been already been created - some are missing like manpages + [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname + # mv file from fakeinstall to pkgdir + mv ${srcdir}/fakeinstall${file} ${pkgdir}$file + done +} + +package_libreoffice-math() { + pkgdesc="Equation Editor Applicationfor LibreOffice." + depends=('libreoffice-common') + optdepends=() + backup=() + groups=('libreoffice') + replaces=('libreoffice') + + # create directories from *list.txt file + for directory in `grep ^%dir ${srcdir}/libreoffice-core-$_LOver/file-lists/math_list.txt`; do + install -dm755 ${pkgdir}/${directory/\%dir/} + done + # install files into the pkg from fakeinstall dir + for file in `grep -v ^%dir $srcdir/libreoffice-core-$_LOver/file-lists/math_list.txt`; do + dirname=`dirname $file` + # check if directory has been already been created - some are missing like manpages + [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname + # mv file from fakeinstall to pkgdir + mv ${srcdir}/fakeinstall${file} ${pkgdir}$file + done +} + +package_libreoffice-sdk() { + pkgdesc="Software Development Kit for LibreOffice." + depends=('libreoffice-common' 'gcc-libs' 'sh' 'make' 'zip' 'gcc' 'java-environment') + optdepends=() + backup=() + groups=('libreoffice') + + # create directories from *list.txt file + for directory in `grep ^%dir ${srcdir}/libreoffice-core-$_LOver/file-lists/sdk_list.txt`; do + install -dm755 ${pkgdir}/${directory/\%dir/} + done + # install files into the pkg from fakeinstall dir + for file in `grep -v ^%dir $srcdir/libreoffice-core-$_LOver/file-lists/sdk_list.txt`; do + dirname=`dirname $file` + # check if directory has been already been created - some are missing like manpages + [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname + # mv file from fakeinstall to pkgdir + mv ${srcdir}/fakeinstall${file} ${pkgdir}$file + done + + # fix ArchLinux LibreOffice installation paths + sed -i -e "s,@OO_SDK_NAME@,libreoffice-sdk," \ + -e "s,@OO_SDK_HOME@,/usr/lib/libreoffice/sdk," \ + -e "s,@OFFICE_HOME@,/usr/lib/libreoffice," \ + -e "s,@OFFICE_BASE_HOME@,/usr/lib/libreoffice," \ + -e "s,@OO_SDK_URE_HOME@,/usr/lib/libreoffice/ure," \ + -e "s,@OO_SDK_MAKE_HOME@,/usr/bin," \ + -e "s,@OO_SDK_ZIP_HOME@,/usr/bin," \ + -e "s,@OO_SDK_CPP_HOME@,/usr/bin," \ + -e "s,@OO_SDK_CC_55_OR_HIGHER@,," \ + -e "s,@OO_SDK_JAVA_HOME@,\$J2SDKDIR," \ + -e "s,@OO_SDK_OUTPUT_DIR@,\$HOME," \ + -e "s,@SDK_AUTO_DEPLOYMENT@,NO," ${pkgdir}/usr/lib/libreoffice/sdk/setsdkenv_unix.{csh,sh}.in +} + +package_libreoffice-sdk-doc() { + pkgdesc="Software Development Kit documentation for LibreOffice" + depends=('libreoffice-common' 'libreoffice-sdk') + optdepends=() + backup=() + groups=('libreoffice') + + # create directories from *list.txt file + for directory in `grep ^%dir ${srcdir}/libreoffice-core-$_LOver/file-lists/sdk_doc_list.txt`; do + install -dm755 ${pkgdir}/${directory/\%dir/} + done + # install files into the pkg from fakeinstall dir + for file in `grep -v ^%dir $srcdir/libreoffice-core-$_LOver/file-lists/sdk_doc_list.txt`; do + dirname=`dirname $file` + # check if directory has been already been created - some are missing like manpages + [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname + # mv file from fakeinstall to pkgdir + mv ${srcdir}/fakeinstall${file} ${pkgdir}$file + done + + #fix permissions + find ${pkgdir}/usr/lib/libreoffice/sdk/examples -type f -exec chmod -x {} \; +} + +package_libreoffice-writer() { + pkgdesc="Word Processor Applicationfor LibreOffice." + depends=('libreoffice-common' 'libwpd>=0.9.2' 'libwps' 'libxml2') + optdepends=('libwpg: library for importing and converting Corel WordPerfect(tm) Graphics images') + backup=() + groups=('libreoffice') + replaces=('libreoffice') + + # create directories from *list.txt file + for directory in `grep ^%dir ${srcdir}/libreoffice-core-$_LOver/file-lists/writer_list.txt`; do + install -dm755 ${pkgdir}/${directory/\%dir/} + done + # install files into the pkg from fakeinstall dir + for file in `grep -v ^%dir $srcdir/libreoffice-core-$_LOver/file-lists/writer_list.txt`; do + dirname=`dirname $file` + # check if directory has been already been created - some are missing like manpages + [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname + # mv file from fakeinstall to pkgdir + mv ${srcdir}/fakeinstall${file} ${pkgdir}$file + done +} + +package_libreoffice-en-US() { + pkgdesc="English (US) language pack for LibreOffice" + #arch=('any') + provides=('openoffice-en-US' 'libreoffice-langpack') + replaces=(openoffice-en-US) + conflicts=(openoffice-en-US) + + # create directories from *list.txt file + for directory in `grep ^%dir ${srcdir}/libreoffice-core-$_LOver/file-lists/lang_en_US_list.txt`; do + install -dm755 ${pkgdir}/${directory/\%dir/} + done + # install files into the pkg from fakeinstall dir + for file in `grep -v ^%dir $srcdir/libreoffice-core-$_LOver/file-lists/lang_en_US_list.txt`; do + dirname=`dirname $file` + # check if directory has been already been created - some are missing like manpages + [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname + # mv file from fakeinstall to pkgdir + mv ${srcdir}/fakeinstall${file} ${pkgdir}$file + done +} + +package_libreoffice-extension-barcode() { + + pkgdesc="This extension generates UPC-A, EAN-13, ISBN and JAN barcodes in Draw " + #arch=('any') + depends=('libreoffice-common') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/7e7efc5d4a03126bb9ae3ae9aa2c4e87-Barcode_1.3.1.0.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/Barcode + chmod o-w -R ${pkgdir}/usr/lib/libreoffice/share/extensions/Barcode +} + +package_libreoffice-extension-diagram() { + + pkgdesc="An OOo Draw and Impress extension that creates your favorite diagrams with a few clicks" + #arch=('any') + depends=('libreoffice-common' 'java-environment') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/41c9b65ad60af4b3255bbecdfef11736-Diagram_1.1.0.0.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/diagram +} + +package_libreoffice-extension-google-docs() { + + pkgdesc="Google Documents extension for LibreOffice" + #arch=('any') + depends=('libreoffice-common' 'java-environment') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/dbaafd21de055e582d92d7d32fe9da13-gdocs_2.3.1.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/google-docs +} + +package_libreoffice-extension-hunart() { + + pkgdesc="Hungarian cross-reference toolbar extension" + #arch=('any') + depends=('libreoffice-common') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/b632bdd25649cc4067bcb410bae23d2b-hunart_0.3.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/hunart +} + +#package_libreoffice-extension-lightproof() { + +# pkgdesc="Lightproof extension for LibreOffice" + #arch=('any') +# depends=('libreoffice-common') +# groups=('libreoffice-extensions') + +# install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions +# unzip -q ${srcdir}/${pkgbase}-libreoffice-core-$_LOver-${_LOver}/libreoffice-core-$_LOver/libreoffice-${_LOver}/solver/unxlng*/bin/Lightproof.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/lightproof +#} + +#package_libreoffice-extension-mysql-connector() { + +# pkgdesc="MySQL Connector extension for LibreOffice" + #arch=('any') +# depends=('libreoffice-common') +# groups=('libreoffice-extensions') + +# install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions +# unzip -q ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/unxlng*/bin/Mysql-connector.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/mysql-connector +#} + +package_libreoffice-extension-nlpsolver() { + + pkgdesc="This extension integrates into Calc and offers new Solver engines to use for optimizing nonlinear programming models" + #arch=('any') + depends=('libreoffice-common' 'java-environment') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/libreoffice-core-$_LOver/solver/unxlng*/bin/NLPSolver.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/nlpsolver +} + +package_libreoffice-extension-ct2n() { + + pkgdesc="This extension enables you to convert text-cells in Calc with numbers and dates, to real numbers and dates." + #arch=('any') + depends=('libreoffice-common') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/libreoffice-core-$_LOver/solver/unxlng*/bin/ConvertTextToNumber.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/ct2n +} + +package_libreoffice-extension-numbertext() { + + pkgdesc="NUMBERTEXT/MONEYTEXT extensions" + #arch=('any') + depends=('libreoffice-common') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/b8cbca7b3363e6ca2d02bc0ba2b63904-numbertext_0.9.4.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/numbertext +} + +package_libreoffice-extension-oooblogger() { + + pkgdesc="An extensions for blogging" + #arch=('any') + depends=('libreoffice-common' 'coreutils' 'python') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/b7b2d0e04e142f26dd96119c80757d1f-oooblogger_0.1.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/oooblogger +} + +package_libreoffice-extension-pdfimport() { + + pkgdesc="This extension allows you to import and modify PDF documents" + depends=('libreoffice-common' 'poppler') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/libreoffice-core-$_LOver/solver/unxlng*/bin/pdfimport/pdfimport.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/pdfimport +} + +package_libreoffice-extension-presenter-screen() { + + pkgdesc="This extension provides more control over your slide show presentation, such as the ability to see the upcoming slide, the slide notes, and a presentation timer whereas the audience see only the current slide" + depends=('libreoffice-common' 'java-environment') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/libreoffice-core-$_LOver/solver/unxlng*/bin/presenter-screen.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/presenter-screen +} + +package_libreoffice-extension-presentation-minimizer() { + + pkgdesc="This extension reduce the file size of the current presentation" + depends=('libreoffice-common' 'gcc-libs') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/libreoffice-core-$_LOver/solver/unxlng*/bin/presentation-minimizer.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/presentation-minimizer +} + +package_libreoffice-extension-report-builder() { + + pkgdesc="This extension creates smart-looking database reports" + #arch=('any') + depends=('libreoffice-common' 'java-environment') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/libreoffice-core-$_LOver/solver/unxlng*/bin/report-builder.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/report-builder +} + +package_libreoffice-extension-scripting-beanshell() { + + pkgdesc="LibreOffice extension - Enables support for scripts in BeanShell" + depends=('libreoffice-common' 'java-environment') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/libreoffice-core-$_LOver/solver/unxlng*/bin/script-provider-for-beanshell.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/script-provider-for-beanshell +} + +package_libreoffice-extension-scripting-javascript() { + + pkgdesc="LibreOffice extension - Enables support for scripts in JavaScript" + depends=('libreoffice-common' 'java-environment') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/libreoffice-core-$_LOver/solver/unxlng*/bin/script-provider-for-javascript.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/script-provider-for-javascript +} + +package_libreoffice-extension-scripting-python() { + + pkgdesc="LibreOffice extension - Enables support for scripts in Python" + depends=('libreoffice-common' 'python') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/libreoffice-core-$_LOver/solver/unxlng*/bin/script-provider-for-python.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/script-provider-for-python +} + +package_libreoffice-extension-typo() { + + pkgdesc="Typography toolbar extension" + #arch=('any') + depends=('libreoffice-common') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/9d60b6cfa3ef1926848710bbcd11115b-typo_0.4.2.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/typo + find ${pkgdir} -type d -exec chmod 755 {} \; + #chmod o+r -R ${pkgdir}/usr/lib/libreoffice/share/extensions/typo +} + +package_libreoffice-extension-validator() { + + pkgdesc="Validator extension for LibreOffice" + #arch=('any') + depends=('libreoffice-common' 'java-environment') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/bbdd5639ada63e3130761daaecae1a10-Validator_1.1.0.0.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/validator +} + +package_libreoffice-extension-wiki-publisher() { + + pkgdesc="This extension enables you to create Wiki articles on MediaWiki servers without having to know the syntax of the MediaWiki markup language" + #arch=('any') + depends=('libreoffice-common' 'java-environment') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/libreoffice-core-$_LOver/solver/unxlng*/bin/wiki-publisher.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/wiki-publisher +} + +package_libreoffice-extension-watch-window() { + + pkgdesc="A OOo Calc extension to add a Watch Window, which keeps the value of the monitored cell on the screen." + #arch=('any') + depends=('libreoffice-common' 'java-environment') + groups=('libreoffice-extensions') + + install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions + unzip -q ${srcdir}/23bd75552206dfcd8fd4e29137dcac84-WatchWindow_1.2.0.0.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/watch-window +} diff --git a/testing/libreoffice/buildfix_boost.diff b/testing/libreoffice/buildfix_boost.diff new file mode 100644 index 000000000..d8608d0d4 --- /dev/null +++ b/testing/libreoffice/buildfix_boost.diff @@ -0,0 +1,40 @@ +From bae4fdbd105142cd3f317445eddc826da529a732 Mon Sep 17 00:00:00 2001 +From: Caolán McNamara <caolanm@redhat.com> +Date: Tue, 05 Apr 2011 14:07:02 +0000 +Subject: silence some more of that annoying gcc#47679 + +--- +diff --git a/boost/boost.gcc47679.patch b/boost/boost.gcc47679.patch +index 1c804aa..9b33a5f 100644 +--- a/boost/boost.gcc47679.patch ++++ b/boost/boost.gcc47679.patch +@@ -36,3 +36,26 @@ + template <int MaxDigits> + inline bool allow_more_digits(std::size_t i) + { ++--- misc/boost_1_44_0/boost/optional/optional.hpp 2011-04-05 13:19:01.223587256 +0100 +++++ misc/build/boost_1_44_0/boost/optional/optional.hpp 2011-04-05 13:19:01.223587256 +0100 ++@@ -31,6 +31,8 @@ ++ ++ #include "boost/optional/optional_fwd.hpp" ++ +++#include <string.h> +++ ++ #if BOOST_WORKAROUND(BOOST_MSVC, == 1200) ++ // VC6.0 has the following bug: ++ // When a templated assignment operator exist, an implicit conversion ++@@ -114,6 +116,11 @@ ++ ++ public: ++ +++ aligned_storage() +++ { +++ memset(&dummy_, 0, sizeof(dummy_)); +++ } +++ ++ void const* address() const { return &dummy_.data[0]; } ++ void * address() { return &dummy_.data[0]; } ++ } ; +-- +cgit v0.8.3-6-g21f6 + diff --git a/testing/libreoffice/buildfix_ct2n.diff b/testing/libreoffice/buildfix_ct2n.diff new file mode 100644 index 000000000..979587f79 --- /dev/null +++ b/testing/libreoffice/buildfix_ct2n.diff @@ -0,0 +1,17 @@ +From 90de903b28cb1884042be0eae3f8a55458c5bc29 Mon Sep 17 00:00:00 2001 +From: Caolán McNamara <caolanm@redhat.com> +Date: Tue, 12 Apr 2011 19:35:51 +0000 +Subject: duplicate NULLs + +--- +diff --git a/ct2n/prj/build.lst b/ct2n/prj/build.lst +index 91f44b7..714d926 100644 +--- a/ct2n/prj/build.lst ++++ b/ct2n/prj/build.lst +@@ -1,3 +1,3 @@ +-ct2n ct2n : solenv NULL NULL ++ct2n ct2n : solenv NULL + ct2n ct2n usr1 - all ct2n_mkout NULL + ct2n ct2n nmake - all ct2n_ct2n NULL +-- +cgit v0.8.3-6-g21f6 diff --git a/testing/libreoffice/gcc462_buildfix.diff b/testing/libreoffice/gcc462_buildfix.diff new file mode 100644 index 000000000..c19e520dc --- /dev/null +++ b/testing/libreoffice/gcc462_buildfix.diff @@ -0,0 +1,138 @@ +--- ./framework/source/accelerators/acceleratorcache.cxx.orig 2011-12-15 15:08:41.329168423 -0200 ++++ ./framework/source/accelerators/acceleratorcache.cxx 2011-12-15 15:17:59.473190664 -0200 +@@ -61,7 +61,7 @@ AcceleratorCache::AcceleratorCache() + AcceleratorCache::AcceleratorCache(const AcceleratorCache& rCopy) + : ThreadHelpBase(&Application::GetSolarMutex()) + { +- m_lCommand2Keys = rCopy.m_lCommand2Keys; ++ m_lCommand2Keys = const_cast< framework::BaseHash<comphelper::SequenceAsVector<com::sun::star::awt::KeyEvent> >& > (rCopy.m_lCommand2Keys); + m_lKey2Commands = rCopy.m_lKey2Commands; + } + +@@ -78,7 +78,7 @@ void AcceleratorCache::takeOver(const Ac + // SAFE -> ---------------------------------- + WriteGuard aWriteLock(m_aLock); + +- m_lCommand2Keys = rCopy.m_lCommand2Keys; ++ m_lCommand2Keys = const_cast< framework::BaseHash<comphelper::SequenceAsVector<com::sun::star::awt::KeyEvent> >& > (rCopy.m_lCommand2Keys); + m_lKey2Commands = rCopy.m_lKey2Commands; + + aWriteLock.unlock(); +--- ./framework/source/loadenv/loadenv.cxx.orig 2011-12-15 15:08:15.771487938 -0200 ++++ ./framework/source/loadenv/loadenv.cxx 2011-12-15 15:19:06.038358483 -0200 +@@ -255,7 +255,8 @@ void LoadEnv::initializeLoading(const :: + // take over all new parameters. + m_xTargetFrame.clear(); + m_xBaseFrame = xBaseFrame ; +- m_lMediaDescriptor = impl_mergeMediaDescriptorWithMightExistingModelArgs(lMediaDescriptor); ++ ::comphelper::MediaDescriptor tmp = impl_mergeMediaDescriptorWithMightExistingModelArgs(lMediaDescriptor); ++ m_lMediaDescriptor = tmp; + m_sTarget = sTarget ; + m_nSearchFlags = nSearchFlags ; + m_eFeature = eFeature ; +--- ./framework/source/uiconfiguration/uiconfigurationmanagerimpl.hxx.orig 2011-12-15 15:08:49.033072112 -0200 ++++ ./framework/source/uiconfiguration/uiconfigurationmanagerimpl.hxx 2011-12-15 15:11:07.209344668 -0200 +@@ -175,6 +175,15 @@ namespace framework + sal_Int16 nElementType; + UIElementDataHashMap aElementsHashMap; + com::sun::star::uno::Reference< com::sun::star::embed::XStorage > xStorage; ++ UIElementType& operator=(const UIElementType& rRight) { ++ bModified = rRight.bModified; ++ bLoaded = rRight.bLoaded; ++ bDefaultLayer = rRight.bDefaultLayer; ++ nElementType = rRight.nElementType; ++ aElementsHashMap = rRight.aElementsHashMap; ++ xStorage = rRight.xStorage; ++ return *this; ++ }; + }; + + typedef ::std::vector< UIElementType > UIElementTypesVector; +--- ./framework/inc/uiconfiguration/moduleuiconfigurationmanager.hxx.orig 2011-12-19 11:10:56.000000000 +0000 ++++ ./framework/inc/uiconfiguration/moduleuiconfigurationmanager.hxx 2011-12-19 11:12:06.000000000 +0000 +@@ -185,6 +185,15 @@ namespace framework + sal_Int16 nElementType; + UIElementDataHashMap aElementsHashMap; + com::sun::star::uno::Reference< com::sun::star::embed::XStorage > xStorage; ++ UIElementType& operator=(const UIElementType& rRight) { ++ bModified = rRight.bModified; ++ bLoaded = rRight.bLoaded; ++ bDefaultLayer = rRight.bDefaultLayer; ++ nElementType = rRight.nElementType; ++ aElementsHashMap = rRight.aElementsHashMap; ++ xStorage = rRight.xStorage; ++ return *this; ++ }; + }; + + typedef ::std::vector< UIElementType > UIElementTypesVector; +--- ./framework/inc/uiconfiguration/uiconfigurationmanager.hxx.orig 2011-12-19 11:14:17.000000000 +0000 ++++ ./framework/inc/uiconfiguration/uiconfigurationmanager.hxx 2011-12-19 11:15:16.000000000 +0000 +@@ -171,6 +171,15 @@ namespace framework + sal_Int16 nElementType; + UIElementDataHashMap aElementsHashMap; + com::sun::star::uno::Reference< com::sun::star::embed::XStorage > xStorage; ++ UIElementType& operator=(const UIElementType& rRight) { ++ bModified = rRight.bModified; ++ bLoaded = rRight.bLoaded; ++ bDefaultLayer = rRight.bDefaultLayer; ++ nElementType = rRight.nElementType; ++ aElementsHashMap = rRight.aElementsHashMap; ++ xStorage = rRight.xStorage; ++ return *this; ++ }; + }; + + typedef ::std::vector< UIElementType > UIElementTypesVector; + +--- ./padmin/source/prtsetup.cxx.orig 2011-12-15 15:09:05.133870823 -0200 ++++ ./padmin/source/prtsetup.cxx 2011-12-15 15:13:55.626239170 -0200 +@@ -813,7 +813,7 @@ extern "C" { + + if( aDialog.Execute() ) + { +- rJobData = aDialog.getSetup(); ++ rJobData = const_cast< ::psp::PrinterInfo & > ( aDialog.getSetup() ); + nRet = 1; + } + +--- ./sfx2/source/doc/guisaveas.cxx.orig 2011-12-15 15:08:58.332955848 -0200 ++++ ./sfx2/source/doc/guisaveas.cxx 2011-12-15 15:12:39.953185212 -0200 +@@ -731,7 +731,7 @@ sal_Int8 ModelData_Impl::CheckFilter( co + if ( aFilterName.getLength() ) + m_pOwner->GetFilterConfiguration()->getByName( aFilterName ) >>= aFilterProps; + +- aFiltPropsHM = ::comphelper::SequenceAsHashMap( aFilterProps ); ++ aFiltPropsHM << aFilterProps; + nFiltFlags = aFiltPropsHM.getUnpackedValueOrDefault( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Flags")), (sal_Int32)0 ); + } + +--- ./framework/inc/classes/filtercachedata.hxx.orig 2011-12-17 13:14:22.102898902 +0000 ++++ ./framework/inc/classes/filtercachedata.hxx 2011-12-17 13:17:51.524424012 +0000 +@@ -230,7 +230,7 @@ + { + bPreferred = rCopy.bPreferred ; + sName = rCopy.sName ; +- lUINames = rCopy.lUINames ; ++ lUINames = const_cast < framework::BaseHash<rtl::OUString>& > (rCopy.lUINames); + sMediaType = rCopy.sMediaType ; + sClipboardFormat = rCopy.sClipboardFormat; + nDocumentIconID = rCopy.nDocumentIconID ; +@@ -298,7 +298,7 @@ + nOrder = rCopy.nOrder ; + sName = rCopy.sName ; + sType = rCopy.sType ; +- lUINames = rCopy.lUINames ; ++ lUINames = const_cast < framework::BaseHash<rtl::OUString>& > (rCopy.lUINames); + sDocumentService = rCopy.sDocumentService ; + sFilterService = rCopy.sFilterService ; + sUIComponent = rCopy.sUIComponent ; +@@ -405,7 +405,7 @@ + inline Loader& impl_copy( const Loader& rCopy ) + { + sName = rCopy.sName ; +- lUINames = rCopy.lUINames ; ++ lUINames = const_cast < framework::BaseHash<rtl::OUString>& > (rCopy.lUINames); + lTypes = rCopy.lTypes ; + return (*this); + } diff --git a/testing/libreoffice/libreoffice.install b/testing/libreoffice/libreoffice.install new file mode 100644 index 000000000..809472f89 --- /dev/null +++ b/testing/libreoffice/libreoffice.install @@ -0,0 +1,47 @@ +post_install() { + +gtk-update-icon-cache -f -q /usr/share/icons/hicolor +update-desktop-database -q +update-mime-database usr/share/mime > /dev/null 2>&1 + +echo " * see https://wiki.archlinux.org/index.php/LibreOffice" +echo "-------------------------------------------------------------------" +echo "LibreOffice has been split into several packages:" +echo "- libreoffice-common" +echo "- libreoffice-{base,calc,draw,impress,math,writer} - frontend applications" +echo "- libreoffice-{gnome,kde4} - desktop integration plugins" +echo "- libreoffice-{sdk,sdk-doc} - add-on and doc for programming using" +echo " the LibreOffice APIs and for creating" +echo " extensions (UNO components)." +echo "-------------------------------------------------------------------" +echo " * you need to install at least one libreoffice-langpack" +echo " * you may want to pacman -Ss libreoffice-extensions" +echo " to see what additional extensions are prepared to install" +echo " * it's recommended to install {hunspell,mythes,hyphen}-xx pkg + for spell checking" +echo " * make sure you have installed some ttf font (ttf-dejavu recommended)" +} + +post_upgrade() { +# post_install $1 +gtk-update-icon-cache -f -q /usr/share/icons/hicolor +update-desktop-database -q +update-mime-database usr/share/mime > /dev/null 2>&1 + if [ "`vercmp $2 3.4.2rc1`" -lt 0 ]; then + # important upgrade notice + echo "LibreOffice has been split into several packages:" + echo "- libreoffice-common" + echo "- libreoffice-{base,calc,draw,impress,math,writer} - frontend applications" + echo "- libreoffice-{gnome,kde4} - desktop integration plugins" + echo "- libreoffice-{sdk,sdk-doc} - add-on and doc for programming using" + echo " the LibreOffice APIs and for creating" + echo " extensions (UNO components)." + echo "Now you need to install at least one libreoffice-langpack!" + fi +} + +post_remove() { +update-desktop-database -q +gtk-update-icon-cache -f -q /usr/share/icons/hicolor +update-mime-database usr/share/mime > /dev/null 2>&1 +} diff --git a/testing/libreoffice/scp2-more-reasonable-file-access-rights.diff b/testing/libreoffice/scp2-more-reasonable-file-access-rights.diff new file mode 100644 index 000000000..fd61cb4ca --- /dev/null +++ b/testing/libreoffice/scp2-more-reasonable-file-access-rights.diff @@ -0,0 +1,15 @@ +--- scp2/inc/macros.inc.old 2011-05-18 17:51:47.000000000 +0200 ++++ scp2/inc/macros.inc 2011-07-18 19:58:27.000000000 +0200 +@@ -92,10 +92,10 @@ + #endif + + #define BIN_FILE_BODY \ +- UnixRights = 555 ++ UnixRights = 755 + + #define TXT_FILE_BODY \ +- UnixRights = 444 ++ UnixRights = 644 + + #define USER_FILE_BODY \ + UnixRights = 644 diff --git a/testing/libreoffice/vbahelper.visibility.patch b/testing/libreoffice/vbahelper.visibility.patch new file mode 100644 index 000000000..5739100d0 --- /dev/null +++ b/testing/libreoffice/vbahelper.visibility.patch @@ -0,0 +1,33 @@ +--- vbahelper/inc/vbahelper/vbacollectionimpl.hxx 2011-01-28 20:27:51.507604173 +0000 ++++ vbahelper/inc/vbahelper/vbacollectionimpl.hxx 2011-01-28 20:28:26.230045727 +0000 +@@ -238,7 +238,7 @@ + + // including a HelperInterface implementation + template< typename Ifc1 > +-class ScVbaCollectionBase : public InheritedHelperInterfaceImpl< Ifc1 > ++class VBAHELPER_DLLPUBLIC ScVbaCollectionBase : public InheritedHelperInterfaceImpl< Ifc1 > + { + typedef InheritedHelperInterfaceImpl< Ifc1 > BaseColBase; + protected: +--- sc/Library_vbaobj.mk ++++ sc/Library_vbaobj.mk +@@ -118,7 +118,6 @@ $(eval $(call gb_Library_add_exception_objects,vbaobj,\ + sc/source/ui/vba/vbaquerytable \ + sc/source/ui/vba/vbarange \ + sc/source/ui/vba/vbasheetobject \ +- sc/source/ui/vba/vbasheetobjects \ + sc/source/ui/vba/vbastyle \ + sc/source/ui/vba/vbastyles \ + sc/source/ui/vba/vbatextboxshape \ +@@ -133,6 +132,11 @@ $(eval $(call gb_Library_add_exception_objects,vbaobj,\ + sc/source/ui/vba/vbawsfunction \ + )) + ++$(eval $(call gb_Library_add_cxxobjects,vbaobj,\ ++ sc/source/ui/vba/vbasheetobjects \ ++ , $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \ ++)) ++ + ifneq (,$(filter LINUX DRAGONFLY OPENBSD FREEBSD NETBSD, $(OS))) + $(eval $(call gb_Library_set_ldflags,vbaobj,\ + $$(LDFLAGS) \ diff --git a/testing/linux-api-headers/PKGBUILD b/testing/linux-api-headers/PKGBUILD deleted file mode 100644 index 7cb4c6034..000000000 --- a/testing/linux-api-headers/PKGBUILD +++ /dev/null @@ -1,42 +0,0 @@ -# $Id: PKGBUILD 144067 2011-12-02 21:02:11Z allan $ -# Maintainer: Allan McRae <allan@archlinux.org> - -# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc - -pkgname=linux-api-headers -pkgver=3.1.4 -_basever=3.1 -pkgrel=1 -pkgdesc="Kernel headers sanitized for use in userspace" -arch=('i686' 'x86_64') -url="http://www.gnu.org/software/libc" -license=('GPL2') -provides=("kernel-headers=${pkgver}") -conflicts=('kernel-headers') -replaces=('kernel-headers') -source=(http://www.kernel.org/pub/linux/kernel/v3.x/linux-${_basever}.tar.xz - http://www.kernel.org/pub/linux/kernel/v3.x/patch-${pkgver}.xz) -# NOTE: signatures are not automatically verified by makepkg - #http://www.kernel.org/pub/linux/kernel/v3.x/linux-${_basever}.tar.sign - #http://www.kernel.org/pub/linux/kernel/v3.x/patch-${pkgver}.sign -md5sums=('edbdc798f23ae0f8045c82f6fa22c536' - 'ffb768bb3c42c94876f3f84aa6f779e5') - -build() { - cd ${srcdir}/linux-${_basever} - [[ $pkgver != $_basever ]] && patch -Np1 -i ${srcdir}/patch-${pkgver} - - make mrproper - make headers_check -} - -package() { - cd ${srcdir}/linux-${_basever} - make INSTALL_HDR_PATH=${pkgdir}/usr headers_install - - # use headers from libdrm - rm -rf ${pkgdir}/usr/include/drm - - # clean-up unnecessary files generated during install - find ${pkgdir} -name .install -or -name ..install.cmd | xargs rm -f -} diff --git a/testing/llvm/PKGBUILD b/testing/llvm/PKGBUILD deleted file mode 100644 index 6248f6406..000000000 --- a/testing/llvm/PKGBUILD +++ /dev/null @@ -1,199 +0,0 @@ -# $Id: PKGBUILD 144360 2011-12-05 04:48:47Z foutrelis $ -# Maintainer: Evangelos Foutras <evangelos@foutrelis.com> -# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com> -# Contributor: Sebastian Nowicki <sebnow@gmail.com> -# Contributor: Devin Cofer <ranguvar{AT]archlinux[DOT}us> -# Contributor: Tobias Kieslich <tobias@justdreams.de> -# Contributor: Geoffroy Carrier <geoffroy.carrier@aur.archlinux.org> -# Contributor: Tomas Lindquist Olsen <tomas@famolsen.dk> -# Contributor: Roberto Alsina <ralsina@kde.org> -# Contributor: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> - -pkgname=('llvm' 'llvm-ocaml' 'clang' 'clang-analyzer') -pkgver=3.0 -pkgrel=1 -arch=('i686' 'x86_64') -url="http://llvm.org/" -license=('custom:University of Illinois/NCSA Open Source License') -makedepends=('libffi' 'python2' 'ocaml') -source=(http://llvm.org/releases/$pkgver/$pkgname-$pkgver.tar.gz - http://llvm.org/releases/$pkgver/clang-$pkgver.tar.gz - clang-plugin-loader-registry.patch - cindexer-clang-path.patch - clang-pure64.patch - enable-lto.patch - fix-gold-lto-linking.patch) -sha256sums=('519eb11d3499ce99c6ffdb8718651fc91425ed7690eac91c8d6853474f7c0477' - 'b64e72da356d7c3428cfd7ac620d49ec042c84eaee13c26024879f555f4e126d' - 'a0a4494f2a692789670be37fd390906dcaa37b1824f740bdaaea21182f2f3a9c' - '3074df5322900e087377a8e03a02115463ccc0011c25917c2f06df11facd9b92' - '288a82fbff17bc554f5863734246500e637882af33ee8511019d5e0d6cd20524' - 'cf8922a932e1859f3783bef2af8ac1e90ce96f8eec79928392327b71b3d7cb89' - '24d275cdf170f53844bc7174b065fb51b6ddbb9642ced34702cde1f0f74d9192') - -build() { - cd "$srcdir/$pkgname-$pkgver.src" - - # At the present, clang must reside inside the LLVM source code tree to build - # See http://llvm.org/bugs/show_bug.cgi?id=4840 - rm -rf tools/clang - cp -r "$srcdir/clang-$pkgver.src" tools/clang - - # Fix symbolic links from OCaml bindings to LLVM libraries - sed -i 's:\$(PROJ_libdir):/usr/lib/llvm:' bindings/ocaml/Makefile.ocaml - - # Fix installation directories, ./configure doesn't seem to set them right - sed -i -e 's:\$(PROJ_prefix)/etc/llvm:/etc/llvm:' \ - -e 's:\$(PROJ_prefix)/lib:$(PROJ_prefix)/lib/llvm:' \ - -e 's:\$(PROJ_prefix)/docs/llvm:$(PROJ_prefix)/share/doc/llvm:' \ - Makefile.config.in - - # Fix insecure rpath (http://bugs.archlinux.org/task/14017) - sed -i 's:$(RPATH) -Wl,$(\(ToolDir\|LibDir\|ExmplDir\))::g' Makefile.rules - - # Get the correct list of symbols to export - # See http://lists.cs.uiuc.edu/pipermail/cfe-dev/2010-April/008559.html - patch -Np1 -i "$srcdir/clang-plugin-loader-registry.patch" - - # Fix clang path in CIndexer.cpp (https://bugs.archlinux.org/task/22799) - patch -d tools/clang -Np0 -i "$srcdir/cindexer-clang-path.patch" - - if [[ $CARCH == x86_64 ]]; then - # Adjust linker path - patch -d tools/clang -Np0 -i "$srcdir/clang-pure64.patch" - fi - - # Make -flto work - # Use gold instead of default linker, and always use the plugin - patch -d tools/clang -Np0 -i "$srcdir/enable-lto.patch" - - # Fix libLTO.so location in gold plugin - patch -Np1 -i "$srcdir/fix-gold-lto-linking.patch" - - # Apply strip option to configure - _optimized_switch="enable" - [[ $(check_option strip) == n ]] && _optimized_switch="disable" - - # Include location of libffi headers in CPPFLAGS - export CPPFLAGS="$CPPFLAGS $(pkg-config --cflags libffi)" - - # Force the use of GCC instead of clang - CC=gcc CXX=g++ \ - ./configure \ - --prefix=/usr \ - --libdir=/usr/lib/llvm \ - --sysconfdir=/etc \ - --enable-shared \ - --enable-libffi \ - --enable-targets=all \ - --disable-expensive-checks \ - --disable-debug-runtime \ - --disable-assertions \ - --with-binutils-include=/usr/include \ - --$_optimized_switch-optimized - - make REQUIRES_RTTI=1 -} - -package_llvm() { - pkgdesc="Low Level Virtual Machine" - depends=('perl' 'libffi') - - cd "$srcdir/$pkgname-$pkgver.src" - - # We move the clang directory out of the tree so it won't get installed and - # then we bring it back in for the clang package - mv tools/clang "$srcdir" - # Copy missing file into the expected location - cp bindings/ocaml/llvm/META.llvm bindings/ocaml/llvm/Release/ - # -j1 is due to race conditions during the installation of the OCaml bindings - make -j1 DESTDIR="$pkgdir" install - mv "$srcdir/clang" tools - - # OCaml bindings go to a separate package - rm -rf "$srcdir"/{ocaml,ocamldoc} - mv "$pkgdir"/usr/{lib/ocaml,share/doc/llvm/ocamldoc} "$srcdir" - - # Remove duplicate files installed by the OCaml bindings - rm "$pkgdir"/usr/{lib/llvm/libllvm*,share/doc/llvm/ocamldoc.tar.gz} - - # Fix permissions of static libs - chmod -x "$pkgdir"/usr/lib/llvm/*.a - - # Fix libdir in llvm-config (http://bugs.archlinux.org/task/14487) - sed -i 's:\(ABS_RUN_DIR/lib\):\1/llvm:' "$pkgdir/usr/bin/llvm-config" - - # Get rid of example Hello transformation - rm "$pkgdir"/usr/lib/llvm/*LLVMHello.* - - # Add ld.so.conf.d entry - install -d "$pkgdir/etc/ld.so.conf.d" - echo /usr/lib/llvm >"$pkgdir/etc/ld.so.conf.d/llvm.conf" - - install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE" -} - -package_llvm-ocaml() { - pkgdesc="OCaml bindings for LLVM" - depends=("llvm=$pkgver-$pkgrel" 'ocaml') - - cd "$srcdir/llvm-$pkgver.src" - - install -d "$pkgdir"/{usr/lib,usr/share/doc/llvm} - cp -r "$srcdir/ocaml" "$pkgdir/usr/lib" - cp -r "$srcdir/ocamldoc" "$pkgdir/usr/share/doc/llvm" - - # Remove execute bit from static libraries - chmod -x "$pkgdir"/usr/lib/ocaml/libllvm*.a - - install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/llvm-ocaml/LICENSE" -} - -package_clang() { - pkgdesc="C language family frontend for LLVM" - url="http://clang.llvm.org/" - depends=("llvm=$pkgver-$pkgrel" 'gcc') - - # Fix installation path for clang docs - sed -i 's:$(PROJ_prefix)/share/doc/llvm:$(PROJ_prefix)/share/doc/clang:' \ - "$srcdir/llvm-$pkgver.src/Makefile.config" - - cd "$srcdir/llvm-$pkgver.src/tools/clang" - make DESTDIR="$pkgdir" install - - # Fix permissions of static libs - chmod -x "$pkgdir"/usr/lib/llvm/*.a - - # Revert the path change in case we want to do a repackage later - sed -i 's:$(PROJ_prefix)/share/doc/clang:$(PROJ_prefix)/share/doc/llvm:' \ - "$srcdir/llvm-$pkgver.src/Makefile.config" - - install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/clang/LICENSE" -} - -package_clang-analyzer() { - pkgdesc="A source code analysis framework" - url="http://clang-analyzer.llvm.org/" - depends=("clang=$pkgver-$pkgrel" 'python2') - - cd "$srcdir/llvm-$pkgver.src/tools/clang" - - install -d "$pkgdir"/usr/{bin,lib/clang-analyzer} - for _tool in scan-{build,view}; do - cp -r tools/$_tool "$pkgdir/usr/lib/clang-analyzer/" - ln -s /usr/lib/clang-analyzer/$_tool/$_tool "$pkgdir/usr/bin/" - done - - # Use Python 2 - sed -i 's/env python$/&2/' \ - "$pkgdir/usr/lib/clang-analyzer/scan-view/scan-view" \ - "$pkgdir/usr/lib/clang-analyzer/scan-build/set-xcode-analyzer" - - # Compile Python scripts - python2 -m compileall "$pkgdir/usr/lib/clang-analyzer" - python2 -O -m compileall "$pkgdir/usr/lib/clang-analyzer" - - install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/clang-analyzer/LICENSE" -} - -# vim:set ts=2 sw=2 et: diff --git a/testing/llvm/cindexer-clang-path.patch b/testing/llvm/cindexer-clang-path.patch deleted file mode 100644 index ddaab690e..000000000 --- a/testing/llvm/cindexer-clang-path.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- tools/libclang/CIndexer.cpp.orig 2011-04-07 13:08:24.000000000 +0300 -+++ tools/libclang/CIndexer.cpp 2011-04-07 13:11:52.224884642 +0300 -@@ -80,6 +80,7 @@ std::string CIndexer::getClangResourcesP - - // We now have the CIndex directory, locate clang relative to it. - LibClangPath.eraseComponent(); -+ LibClangPath.eraseComponent(); - #endif - - LibClangPath.appendComponent("clang"); diff --git a/testing/llvm/clang-plugin-loader-registry.patch b/testing/llvm/clang-plugin-loader-registry.patch deleted file mode 100644 index f46eb9fce..000000000 --- a/testing/llvm/clang-plugin-loader-registry.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -upr llvm-2.7.orig/autoconf/ExportMap.map llvm-2.7/autoconf/ExportMap.map ---- llvm-2.7.orig/autoconf/ExportMap.map 2010-02-25 00:33:41.000000000 +0200 -+++ llvm-2.7/autoconf/ExportMap.map 2010-05-10 14:14:22.000000000 +0300 -@@ -2,6 +2,7 @@ - global: main; - __progname; - environ; -+ _ZN4llvm8RegistryIN5clang14FrontendActionENS_14RegistryTraitsIS2_EEE4HeadE; - - local: *; - }; diff --git a/testing/llvm/clang-pure64.patch b/testing/llvm/clang-pure64.patch deleted file mode 100644 index 9bbbfaa8b..000000000 --- a/testing/llvm/clang-pure64.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: lib/Driver/Tools.cpp -=================================================================== ---- lib/Driver/Tools.cpp (revision 123373) -+++ lib/Driver/Tools.cpp (working copy) -@@ -3306,7 +3306,7 @@ - else if (ToolChain.getArch() == llvm::Triple::ppc64) - CmdArgs.push_back("/lib64/ld64.so.1"); - else -- CmdArgs.push_back("/lib64/ld-linux-x86-64.so.2"); -+ CmdArgs.push_back("/lib/ld-linux-x86-64.so.2"); - } - - CmdArgs.push_back("-o"); diff --git a/testing/llvm/enable-lto.patch b/testing/llvm/enable-lto.patch deleted file mode 100644 index 3c8691b17..000000000 --- a/testing/llvm/enable-lto.patch +++ /dev/null @@ -1,32 +0,0 @@ -Index: lib/Driver/ToolChains.cpp -=================================================================== ---- lib/Driver/ToolChains.cpp (revision 123373) -+++ lib/Driver/ToolChains.cpp (working copy) -@@ -1398,7 +1398,7 @@ - PPaths.push_back(Twine(GCCInstallation.getParentLibPath() + "/../" + - GCCInstallation.getTriple() + "/bin").str()); - -- Linker = GetProgramPath("ld"); -+ Linker = GetProgramPath("ld.gold"); - - LinuxDistro Distro = DetectLinuxDistro(Arch); - -Index: lib/Driver/Tools.cpp -=================================================================== ---- lib/Driver/Tools.cpp (revision 123373) -+++ lib/Driver/Tools.cpp (working copy) -@@ -3412,11 +3412,11 @@ - } - } - -- if (Args.hasArg(options::OPT_use_gold_plugin)) { -+ // if (Args.hasArg(options::OPT_use_gold_plugin)) { - CmdArgs.push_back("-plugin"); -- std::string Plugin = ToolChain.getDriver().Dir + "/../lib/LLVMgold.so"; -+ std::string Plugin = ToolChain.getDriver().Dir + "/../lib/llvm/LLVMgold.so"; - CmdArgs.push_back(Args.MakeArgString(Plugin)); -- } -+ // } - - C.addCommand(new Command(JA, *this, ToolChain.Linker.c_str(), CmdArgs)); - } diff --git a/testing/llvm/fix-gold-lto-linking.patch b/testing/llvm/fix-gold-lto-linking.patch deleted file mode 100644 index 84d166471..000000000 --- a/testing/llvm/fix-gold-lto-linking.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -upr llvm-3.0.src.orig/tools/gold/Makefile llvm-3.0.src/tools/gold/Makefile ---- llvm-3.0.src.orig/tools/gold/Makefile 2011-05-31 23:00:45.000000000 +0300 -+++ llvm-3.0.src/tools/gold/Makefile 2011-12-04 22:06:59.000000000 +0200 -@@ -26,6 +26,6 @@ LINK_COMPONENTS := support - # Because off_t is used in the public API, the largefile parts are required for - # ABI compatibility. - CXXFLAGS+=-I$(BINUTILS_INCDIR) -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 --CXXFLAGS+=$(SharedLibDir)/$(SharedPrefix)LTO$(SHLIBEXT) -+CXXFLAGS+=-L $(SharedLibDir) -lLTO - - include $(LEVEL)/Makefile.common diff --git a/testing/module-init-tools/PKGBUILD b/testing/module-init-tools/PKGBUILD deleted file mode 100644 index 918527cd2..000000000 --- a/testing/module-init-tools/PKGBUILD +++ /dev/null @@ -1,49 +0,0 @@ -# $Id: PKGBUILD 144112 2011-12-04 04:52:36Z dreisner $ -# Maintainer: Dave Reisner <dreisner@archlinux.org> -# Maintainer: Aaron Griffin <aaron@archlinux.org> -# Contributor: judd <jvinet@zeroflux.org> - -pkgname=module-init-tools -pkgver=3.16 -pkgrel=3 -pkgdesc="Utilities needed by Linux systems for managing loadable kernel modules" -arch=('i686' 'x86_64') -url="https://modules.wiki.kernel.org" -license=('GPL') -depends=('glibc') -makedepends=('docbook2x') -backup=('etc/modprobe.d/modprobe.conf' - 'etc/depmod.d/depmod.conf') -source=("http://www.kernel.org/pub/linux/utils/kernel/$pkgname/$pkgname-$pkgver.tar.bz2" - modprobe.conf - depmod.conf - docfix.patch) -md5sums=('bc44832c6e41707b8447e2847d2019f5' - '325657db471b3190f685e5a89c9b90e3' - '4b8cbcbc54b9029c99fd730e257d4436' - '4320d19902ded43bed55c804b065cdc7') - -build() { - cd "$srcdir/$pkgname-$pkgver" - - # fix headers in SGML manpage sources and an XML typo - patch -Np0 < "$srcdir/docfix.patch" - - ./configure --prefix=/usr --exec-prefix=/ --enable-zlib - make -} - -package() { - cd "$srcdir/$pkgname-$pkgver" - - make DESTDIR=$pkgdir install - - # extra modprobe.d and depmod.d conf dirs - install -dm755 "$pkgdir/lib/modprobe.d" "$pkgdir/etc/depmod.d" - - # Install custom depmod config to allow searching extramodules/ - install -Dm644 "$srcdir/depmod.conf" "$pkgdir/etc/depmod.d/depmod.conf" - - # Install our custom (empty) modprobe.conf - install -Dm644 "$srcdir/modprobe.conf" "$pkgdir/etc/modprobe.d/modprobe.conf" -} diff --git a/testing/module-init-tools/depmod.conf b/testing/module-init-tools/depmod.conf deleted file mode 100644 index 3feb67b05..000000000 --- a/testing/module-init-tools/depmod.conf +++ /dev/null @@ -1,5 +0,0 @@ -# -# /etc/depmod.d/depmod.conf -# - -search updates extramodules built-in diff --git a/testing/module-init-tools/docfix.patch b/testing/module-init-tools/docfix.patch deleted file mode 100644 index 0151ca3f1..000000000 --- a/testing/module-init-tools/docfix.patch +++ /dev/null @@ -1,90 +0,0 @@ ---- doc/depmod.conf.sgml.orig 2011-06-25 10:07:15.897805024 -0400 -+++ doc/depmod.conf.sgml 2011-06-25 10:07:48.810805020 -0400 -@@ -1,4 +1,5 @@ --<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [ -+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN" -+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [ - <!ENTITY debian "<productname>Debian GNU/Linux</productname>"> - <!ENTITY docbook "<productname>DocBook</productname>"> - <!ENTITY sgml "<abbrev>SGML</abbrev>"> ---- doc/depmod.sgml.orig 2011-06-25 10:07:15.898805024 -0400 -+++ doc/depmod.sgml 2011-06-25 10:07:56.636805021 -0400 -@@ -1,4 +1,5 @@ --<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [ -+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN" -+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [ - <!ENTITY debian "<productname>Debian GNU/Linux</productname>"> - <!ENTITY docbook "<productname>DocBook</productname>"> - <!ENTITY sgml "<abbrev>SGML</abbrev>"> -@@ -52,7 +52,7 @@ - <arg><option>-n</option></arg> - <arg><option>-v</option></arg> - <arg><option>-P <replaceable>prefix</replaceable></option></arg> -- <arg><option>-w</option><arg> -+ <arg><option>-w</option></arg> - <arg><option><replaceable>version</replaceable></option></arg> - <arg rep='repeat'><option><replaceable>filename</replaceable></option></arg> - </cmdsynopsis> ---- doc/insmod.sgml.orig 2011-06-25 10:07:15.899805024 -0400 -+++ doc/insmod.sgml 2011-06-25 10:07:59.228805019 -0400 -@@ -1,4 +1,5 @@ --<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [ -+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN" -+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [ - <!ENTITY debian "<productname>Debian GNU/Linux</productname>"> - <!ENTITY docbook "<productname>DocBook</productname>"> - <!ENTITY sgml "<abbrev>SGML</abbrev>"> ---- doc/lsmod.sgml.orig 2011-06-25 10:07:15.899805024 -0400 -+++ doc/lsmod.sgml 2011-06-25 10:08:04.804805020 -0400 -@@ -1,4 +1,5 @@ --<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [ -+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN" -+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [ - <!ENTITY debian "<productname>Debian GNU/Linux</productname>"> - <!ENTITY docbook "<productname>DocBook</productname>"> - <!ENTITY sgml "<abbrev>SGML</abbrev>"> ---- doc/modinfo.sgml.orig 2011-06-25 10:07:15.900805024 -0400 -+++ doc/modinfo.sgml 2011-06-25 10:08:07.630805019 -0400 -@@ -1,4 +1,5 @@ --<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [ -+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN" -+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [ - <!ENTITY debian "<productname>Debian GNU/Linux</productname>"> - <!ENTITY docbook "<productname>DocBook</productname>"> - <!ENTITY sgml "<abbrev>SGML</abbrev>"> ---- doc/modprobe.conf.sgml.orig 2011-06-25 10:07:15.901805024 -0400 -+++ doc/modprobe.conf.sgml 2011-06-25 10:08:10.173805018 -0400 -@@ -1,4 +1,5 @@ --<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [ -+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN" -+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [ - <!ENTITY debian "<productname>Debian GNU/Linux</productname>"> - <!ENTITY docbook "<productname>DocBook</productname>"> - <!ENTITY sgml "<abbrev>SGML</abbrev>"> ---- doc/modprobe.sgml.orig 2011-06-25 10:07:15.902805024 -0400 -+++ doc/modprobe.sgml 2011-06-25 10:08:13.623805019 -0400 -@@ -1,4 +1,5 @@ --<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [ -+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN" -+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [ - <!ENTITY debian "<productname>Debian GNU/Linux</productname>"> - <!ENTITY docbook "<productname>DocBook</productname>"> - <!ENTITY sgml "<abbrev>SGML</abbrev>"> ---- doc/modules.dep.sgml.orig 2011-06-25 10:07:15.903805024 -0400 -+++ doc/modules.dep.sgml 2011-06-25 10:08:19.323805019 -0400 -@@ -1,4 +1,5 @@ --<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [ -+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN" -+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [ - <!ENTITY debian "<productname>Debian GNU/Linux</productname>"> - <!ENTITY docbook "<productname>DocBook</productname>"> - <!ENTITY sgml "<abbrev>SGML</abbrev>"> ---- doc/rmmod.sgml.orig 2011-06-25 10:07:15.904805024 -0400 -+++ doc/rmmod.sgml 2011-06-25 10:08:27.691805017 -0400 -@@ -1,4 +1,5 @@ --<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [ -+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN" -+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [ - <!ENTITY debian "<productname>Debian GNU/Linux</productname>"> - <!ENTITY docbook "<productname>DocBook</productname>"> - <!ENTITY sgml "<abbrev>SGML</abbrev>"> diff --git a/testing/module-init-tools/modprobe.conf b/testing/module-init-tools/modprobe.conf deleted file mode 100644 index 551bdfbdf..000000000 --- a/testing/module-init-tools/modprobe.conf +++ /dev/null @@ -1,3 +0,0 @@ -# -# /etc/modprobe.d/modprobe.conf -# diff --git a/testing/openldap/PKGBUILD b/testing/openldap/PKGBUILD deleted file mode 100644 index 8a06572b5..000000000 --- a/testing/openldap/PKGBUILD +++ /dev/null @@ -1,96 +0,0 @@ -# $Id: PKGBUILD 145019 2011-12-14 23:01:42Z eric $ -# Maintainer: - -pkgbase=openldap -pkgname=('libldap' 'openldap') -pkgver=2.4.28 -pkgrel=1 -arch=('i686' 'x86_64') -url="http://www.openldap.org/" -license=('custom') -makedepends=('libfetch' 'libltdl' 'libsasl' 'e2fsprogs' 'util-linux') -source=(ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/${pkgbase}-${pkgver}.tgz - slapd slapd.default ntlm.patch) -sha1sums=('d888beae1723002a5a2ff5509d3040df40885774' - 'bd1ea19256d3d467f1f803e0f4046ef50f17628f' - 'd89b8a533045123f1ab46c9c430cf132d58a20a4' - 'e4afd9f1c810ef4c4cd8fe1101dfe5887f2b7eef') - -build() { - cd "${srcdir}"/${pkgbase}-${pkgver} - patch -Np1 -i "${srcdir}"/ntlm.patch - sed -i 's|-m 644 $(LIBRARY)|-m 755 $(LIBRARY)|' libraries/{liblber,libldap,libldap_r}/Makefile.in - sed -i 's|#define LDAPI_SOCK LDAP_RUNDIR LDAP_DIRSEP "run" LDAP_DIRSEP "ldapi"|#define LDAPI_SOCK LDAP_DIRSEP "run" LDAP_DIRSEP "openldap" LDAP_DIRSEP "ldapi"|' include/ldap_defaults.h - sed -i 's|%LOCALSTATEDIR%/run|/run/openldap|' servers/slapd/slapd.conf - sed -i 's|-$(MKDIR) $(DESTDIR)$(localstatedir)/run|-$(MKDIR) $(DESTDIR)/run/openldap|' servers/slapd/Makefile.in - - LDFLAGS="$LDFLAGS -L\"${pkgdir}\"/libldap/usr/lib" - ./configure --prefix=/usr --mandir=/usr/share/man --libexecdir=/usr/lib \ - --sysconfdir=/etc --localstatedir=/var/lib/openldap \ - --enable-ipv6 --enable-syslog --enable-local \ - --enable-bdb --enable-hdb \ - --enable-crypt --enable-dynamic \ - --with-threads --disable-wrappers \ - --enable-spasswd --with-cyrus-sasl \ - --enable-overlays=mod --enable-modules=yes - make -} - -check() { - cd "${srcdir}"/${pkgbase}-${pkgver} - make test -} - -package_libldap() { - pkgdesc="Lightweight Directory Access Protocol (LDAP) client libraries" - depends=('libsasl' 'libfetch' 'e2fsprogs') - backup=('etc/openldap/ldap.conf') - options=('!libtool') - - cd "${srcdir}"/${pkgbase}-${pkgver} - for dir in include libraries doc/man/man3 ; do - pushd ${dir} - make DESTDIR="${pkgdir}" install - popd - done - install -Dm644 doc/man/man5/ldap.conf.5.tmp "${pkgdir}"/usr/share/man/man5/ldap.conf.5 - -# get rid of duplicate default conf files - rm "${pkgdir}"/etc/openldap/*.default - - ln -sf liblber.so "${pkgdir}"/usr/lib/liblber.so.2 - ln -sf libldap.so "${pkgdir}"/usr/lib/libldap.so.2 - - install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE -} - -package_openldap() { - pkgdesc="Lightweight Directory Access Protocol (LDAP) client and server" - depends=("libldap>=${pkgver}" 'libltdl' 'util-linux') - backup=('etc/openldap/slapd.conf' 'etc/conf.d/slapd') - options=('!libtool' 'emptydirs') - install=openldap.install - - cd "${srcdir}"/${pkgbase}-${pkgver} - for dir in clients servers doc/man/man{1,5,8} ; do - pushd ${dir} - make DESTDIR="${pkgdir}" install - popd - done - rm "${pkgdir}"/usr/share/man/man5/ldap.conf.5 - rm -r "${pkgdir}"/run - -# get rid of duplicate default conf files - rm "${pkgdir}"/etc/openldap/*.default - - ln -s ../lib/slapd "${pkgdir}"/usr/sbin/slapd - - chown root:439 "${pkgdir}"/etc/openldap/{slapd.conf,DB_CONFIG.example} - chmod 640 "${pkgdir}"/etc/openldap/{slapd.conf,DB_CONFIG.example} - - install -dm700 -o 439 -g 439 "${pkgdir}"/var/lib/openldap - install -dm700 -o 439 -g 439 "${pkgdir}"/etc/openldap/slapd.d - install -Dm755 "${srcdir}"/slapd "${pkgdir}"/etc/rc.d/slapd - install -Dm644 "${srcdir}"/slapd.default "${pkgdir}"/etc/conf.d/slapd - install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE -} diff --git a/testing/openldap/ntlm.patch b/testing/openldap/ntlm.patch deleted file mode 100644 index 6804b610d..000000000 --- a/testing/openldap/ntlm.patch +++ /dev/null @@ -1,230 +0,0 @@ -Patch from evolution-exchange (2.10.3). The ldap_ntlm_bind function is -actually called by evolution-data-server, checked at version 1.12.2. -Without this patch, the Exchange addressbook integration uses simple binds -with cleartext passwords. - -Russ checked with openldap-software for upstream's opinion on this patch -on 2007-12-21. Upstream had never received it as a patch submission and -given that it's apparently only for older Exchange servers that can't do -SASL and DIGEST-MD5, it's not very appealing. - -Bug#457374 filed against evolution-data-server asking if this support is -still required on 2007-12-21. - -Index: trunk/include/ldap.h -=================================================================== ---- trunk.orig/include/ldap.h -+++ trunk/include/ldap.h -@@ -2461,5 +2461,25 @@ - LDAPControl **ctrls, - LDAPDerefRes **drp )); - -+/* -+ * hacks for NTLM -+ */ -+#define LDAP_AUTH_NTLM_REQUEST ((ber_tag_t) 0x8aU) -+#define LDAP_AUTH_NTLM_RESPONSE ((ber_tag_t) 0x8bU) -+LDAP_F( int ) -+ldap_ntlm_bind LDAP_P(( -+ LDAP *ld, -+ LDAP_CONST char *dn, -+ ber_tag_t tag, -+ struct berval *cred, -+ LDAPControl **sctrls, -+ LDAPControl **cctrls, -+ int *msgidp )); -+LDAP_F( int ) -+ldap_parse_ntlm_bind_result LDAP_P(( -+ LDAP *ld, -+ LDAPMessage *res, -+ struct berval *challenge)); -+ - LDAP_END_DECL - #endif /* _LDAP_H */ -Index: trunk/libraries/libldap/ntlm.c -=================================================================== ---- /dev/null -+++ trunk/libraries/libldap/ntlm.c -@@ -0,0 +1,138 @@ -+/* $OpenLDAP: pkg/ldap/libraries/libldap/ntlm.c,v 1.1.4.10 2002/01/04 20:38:21 kurt Exp $ */ -+/* -+ * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved. -+ * COPYING RESTRICTIONS APPLY, see COPYRIGHT file -+ */ -+ -+/* Mostly copied from sasl.c */ -+ -+#include "portable.h" -+ -+#include <stdlib.h> -+#include <stdio.h> -+ -+#include <ac/socket.h> -+#include <ac/string.h> -+#include <ac/time.h> -+#include <ac/errno.h> -+ -+#include "ldap-int.h" -+ -+int -+ldap_ntlm_bind( -+ LDAP *ld, -+ LDAP_CONST char *dn, -+ ber_tag_t tag, -+ struct berval *cred, -+ LDAPControl **sctrls, -+ LDAPControl **cctrls, -+ int *msgidp ) -+{ -+ BerElement *ber; -+ int rc; -+ ber_int_t id; -+ -+ Debug( LDAP_DEBUG_TRACE, "ldap_ntlm_bind\n", 0, 0, 0 ); -+ -+ assert( ld != NULL ); -+ assert( LDAP_VALID( ld ) ); -+ assert( msgidp != NULL ); -+ -+ if( msgidp == NULL ) { -+ ld->ld_errno = LDAP_PARAM_ERROR; -+ return ld->ld_errno; -+ } -+ -+ /* create a message to send */ -+ if ( (ber = ldap_alloc_ber_with_options( ld )) == NULL ) { -+ ld->ld_errno = LDAP_NO_MEMORY; -+ return ld->ld_errno; -+ } -+ -+ assert( LBER_VALID( ber ) ); -+ -+ LDAP_NEXT_MSGID( ld, id ); -+ rc = ber_printf( ber, "{it{istON}" /*}*/, -+ id, LDAP_REQ_BIND, -+ ld->ld_version, dn, tag, -+ cred ); -+ -+ /* Put Server Controls */ -+ if( ldap_int_put_controls( ld, sctrls, ber ) != LDAP_SUCCESS ) { -+ ber_free( ber, 1 ); -+ return ld->ld_errno; -+ } -+ -+ if ( ber_printf( ber, /*{*/ "N}" ) == -1 ) { -+ ld->ld_errno = LDAP_ENCODING_ERROR; -+ ber_free( ber, 1 ); -+ return ld->ld_errno; -+ } -+ -+ /* send the message */ -+ *msgidp = ldap_send_initial_request( ld, LDAP_REQ_BIND, dn, ber, id ); -+ -+ if(*msgidp < 0) -+ return ld->ld_errno; -+ -+ return LDAP_SUCCESS; -+} -+ -+int -+ldap_parse_ntlm_bind_result( -+ LDAP *ld, -+ LDAPMessage *res, -+ struct berval *challenge) -+{ -+ ber_int_t errcode; -+ ber_tag_t tag; -+ BerElement *ber; -+ ber_len_t len; -+ -+ Debug( LDAP_DEBUG_TRACE, "ldap_parse_ntlm_bind_result\n", 0, 0, 0 ); -+ -+ assert( ld != NULL ); -+ assert( LDAP_VALID( ld ) ); -+ assert( res != NULL ); -+ -+ if ( ld == NULL || res == NULL ) { -+ return LDAP_PARAM_ERROR; -+ } -+ -+ if( res->lm_msgtype != LDAP_RES_BIND ) { -+ ld->ld_errno = LDAP_PARAM_ERROR; -+ return ld->ld_errno; -+ } -+ -+ if ( ld->ld_error ) { -+ LDAP_FREE( ld->ld_error ); -+ ld->ld_error = NULL; -+ } -+ if ( ld->ld_matched ) { -+ LDAP_FREE( ld->ld_matched ); -+ ld->ld_matched = NULL; -+ } -+ -+ /* parse results */ -+ -+ ber = ber_dup( res->lm_ber ); -+ -+ if( ber == NULL ) { -+ ld->ld_errno = LDAP_NO_MEMORY; -+ return ld->ld_errno; -+ } -+ -+ tag = ber_scanf( ber, "{ioa" /*}*/, -+ &errcode, challenge, &ld->ld_error ); -+ ber_free( ber, 0 ); -+ -+ if( tag == LBER_ERROR ) { -+ ld->ld_errno = LDAP_DECODING_ERROR; -+ return ld->ld_errno; -+ } -+ -+ ld->ld_errno = errcode; -+ -+ return( ld->ld_errno ); -+} -+ -Index: trunk/libraries/libldap/Makefile.in -=================================================================== ---- trunk.orig/libraries/libldap/Makefile.in -+++ trunk/libraries/libldap/Makefile.in -@@ -27,7 +27,7 @@ - init.c options.c print.c string.c util-int.c schema.c \ - charray.c os-local.c dnssrv.c utf-8.c utf-8-conv.c \ - tls2.c tls_o.c tls_g.c tls_m.c \ -- turn.c ppolicy.c dds.c txn.c ldap_sync.c stctrl.c \ -+ turn.c ppolicy.c dds.c txn.c ldap_sync.c stctrl.c ntlm.c \ - assertion.c deref.c ldif.c fetch.c - - OBJS = bind.lo open.lo result.lo error.lo compare.lo search.lo \ -@@ -40,7 +40,7 @@ - init.lo options.lo print.lo string.lo util-int.lo schema.lo \ - charray.lo os-local.lo dnssrv.lo utf-8.lo utf-8-conv.lo \ - tls2.lo tls_o.lo tls_g.lo tls_m.lo \ -- turn.lo ppolicy.lo dds.lo txn.lo ldap_sync.lo stctrl.lo \ -+ turn.lo ppolicy.lo dds.lo txn.lo ldap_sync.lo stctrl.lo ntlm.lo \ - assertion.lo deref.lo ldif.lo fetch.lo - - LDAP_INCDIR= ../../include -Index: trunk/libraries/libldap_r/Makefile.in -=================================================================== ---- trunk.orig/libraries/libldap_r/Makefile.in -+++ trunk/libraries/libldap_r/Makefile.in -@@ -29,7 +29,7 @@ - init.c options.c print.c string.c util-int.c schema.c \ - charray.c os-local.c dnssrv.c utf-8.c utf-8-conv.c \ - tls2.c tls_o.c tls_g.c tls_m.c \ -- turn.c ppolicy.c dds.c txn.c ldap_sync.c stctrl.c \ -+ turn.c ppolicy.c dds.c txn.c ldap_sync.c stctrl.c ntlm.c \ - assertion.c deref.c ldif.c fetch.c - SRCS = threads.c rdwr.c rmutex.c tpool.c rq.c \ - thr_posix.c thr_cthreads.c thr_thr.c thr_lwp.c thr_nt.c \ -@@ -47,7 +47,7 @@ - init.lo options.lo print.lo string.lo util-int.lo schema.lo \ - charray.lo os-local.lo dnssrv.lo utf-8.lo utf-8-conv.lo \ - tls2.lo tls_o.lo tls_g.lo tls_m.lo \ -- turn.lo ppolicy.lo dds.lo txn.lo ldap_sync.lo stctrl.lo \ -+ turn.lo ppolicy.lo dds.lo txn.lo ldap_sync.lo stctrl.lo ntlm.lo \ - assertion.lo deref.lo ldif.lo fetch.lo - - LDAP_INCDIR= ../../include diff --git a/testing/openldap/openldap.install b/testing/openldap/openldap.install deleted file mode 100644 index cf3cb9f25..000000000 --- a/testing/openldap/openldap.install +++ /dev/null @@ -1,20 +0,0 @@ -post_install(){ - groupadd -g 439 ldap &>/dev/null - useradd -u 439 -g ldap -d /var/lib/openldap -s /bin/false ldap &>/dev/null - chown -R ldap:ldap var/lib/openldap &>/dev/null -} - -post_upgrade(){ - getent group ldap >/dev/null 2>&1 || groupadd -g 439 ldap &>/dev/null - getent passwd ldap >/dev/null 2>&1 || useradd -u 439 -g ldap -d /var/lib/openldap -s /bin/false ldap &>/dev/null - chown -R ldap:ldap var/lib/openldap &>/dev/null -} - -post_remove(){ - if getent passwd ldap >/dev/null 2>&1; then - userdel ldap - fi - if getent group ldap >/dev/null 2>&1; then - groupdel ldap - fi -} diff --git a/testing/openldap/slapd b/testing/openldap/slapd deleted file mode 100755 index 4f212da66..000000000 --- a/testing/openldap/slapd +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/bash - -. /etc/rc.conf -. /etc/rc.d/functions - -[ -f "/etc/conf.d/slapd" ] && . /etc/conf.d/slapd - -PID=`pidof -o %PPID /usr/sbin/slapd` -case "$1" in - start) - stat_busy "Starting OpenLDAP" - [ ! -d /run/openldap ] && install -d -m755 -o ldap -g ldap /run/openldap - if [ -z "$PID" ]; then - if [ -z "$SLAPD_SERVICES" ]; then - /usr/sbin/slapd -u ldap -g ldap $SLAPD_OPTIONS - else - /usr/sbin/slapd -u ldap -g ldap -h "$SLAPD_SERVICES" $SLAPD_OPTIONS - fi - if [ $? -gt 0 ]; then - stat_fail - else - stat_done - fi - add_daemon slapd - else - stat_fail - fi - ;; - stop) - stat_busy "Stopping OpenLDAP" - [ ! -z "$PID" ] && kill $PID &> /dev/null - if [ $? -gt 0 ]; then - stat_fail - else - rm -f /run/openldap/slapd.pid - rm -f /run/openldap/slapd.args - rm_daemon slapd - stat_done - fi - ;; - restart) - $0 stop - sleep 3 - $0 start - ;; - *) - echo "usage: $0 {start|stop|restart}" -esac -exit 0 diff --git a/testing/openldap/slapd.default b/testing/openldap/slapd.default deleted file mode 100644 index 72ae2a6a7..000000000 --- a/testing/openldap/slapd.default +++ /dev/null @@ -1,6 +0,0 @@ -# slapd normally serves ldap only on all TCP-ports 389. slapd can also -# service requests on TCP-port 636 (ldaps) and requests via unix -# sockets. -# Example usage: -#SLAPD_SERVICES="ldap://127.0.0.1:389/ ldaps:/// ldapi:///" -SLAPD_OPTIONS="" diff --git a/testing/pcre/PKGBUILD b/testing/pcre/PKGBUILD deleted file mode 100644 index 88e858d56..000000000 --- a/testing/pcre/PKGBUILD +++ /dev/null @@ -1,43 +0,0 @@ -# $Id: PKGBUILD 144981 2011-12-13 00:29:03Z allan $ -# Maintainer: Allan McRae <allan@archlinux.org> -# Contributor: Eric Belanger <eric@archlinux.org> -# Contributor: John Proctor <jproctor@prium.net> - -pkgname=pcre -pkgver=8.21 -pkgrel=1 -pkgdesc="A library that implements Perl 5-style regular expressions" -arch=('i686' 'x86_64') -url="http://www.pcre.org/" -license=('BSD') -depends=('gcc-libs') -options=('!libtool') -source=(ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/${pkgname}-${pkgver}.tar.bz2{,.sig}) -md5sums=('0a7b592bea64b7aa7f4011fc7171a730' - '4768871445dff956e620a9e902b4db55') - -build() { - cd "${srcdir}"/${pkgname}-${pkgver} - - [ "${CARCH}" = "x86_64" ] && export CFLAGS="${CFLAGS} -fPIC" - ./configure --prefix=/usr --enable-jit \ - --enable-utf8 --enable-unicode-properties - make -} - -check() { - cd "${srcdir}"/${pkgname}-${pkgver} - make check -} - -package() { - cd "${srcdir}"/${pkgname}-${pkgver} - make DESTDIR="${pkgdir}" install - - # grep uses pcre, so we need the libs in /lib - install -dm755 "${pkgdir}"/lib - mv "${pkgdir}"/usr/lib/libpcre.so.* "${pkgdir}"/lib/ - ln -sf /lib/libpcre.so.0 "${pkgdir}"/usr/lib/libpcre.so - - install -Dm644 LICENCE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE -} diff --git a/testing/php/PKGBUILD b/testing/php/PKGBUILD new file mode 100644 index 000000000..a449de573 --- /dev/null +++ b/testing/php/PKGBUILD @@ -0,0 +1,365 @@ +# $Id: PKGBUILD 145227 2011-12-19 18:04:16Z andrea $ +# Maintainer: Pierre Schmitz <pierre@archlinux.de> + +pkgbase=php +pkgname=('php' + 'php-cgi' + 'php-apache' + 'php-fpm' + 'php-embed' + 'php-pear' + 'php-enchant' + 'php-gd' + 'php-intl' + 'php-ldap' + 'php-mcrypt' + 'php-mssql' + 'php-odbc' + 'php-pgsql' + 'php-pspell' + 'php-snmp' + 'php-sqlite' + 'php-tidy' + 'php-xsl') +pkgver=5.3.8 +_suhosinver=5.3.7-0.9.10 +pkgrel=6 +arch=('i686' 'x86_64') +license=('PHP') +url='http://www.php.net' +makedepends=('apache' 'imap' 'postgresql-libs' 'libldap' 'postfix' + 'sqlite3' 'unixodbc' 'net-snmp' 'libzip' 'enchant' 'file' 'freetds' + 'libmcrypt' 'tidyhtml' 'aspell' 'libltdl' 'libpng' 'libjpeg' 'icu' + 'curl' 'libxslt' 'openssl' 'bzip2' 'db' 'gmp' 'freetype2') +source=("http://www.php.net/distributions/${pkgbase}-${pkgver}.tar.bz2" + "http://download.suhosin.org/suhosin-patch-${_suhosinver}.patch.gz" + "http://download.suhosin.org/suhosin-patch-${_suhosinver}.patch.gz.sig" + 'php.ini.patch' 'apache.conf' 'rc.d.php-fpm' 'php-fpm.conf.in.patch' + 'logrotate.d.php-fpm') +md5sums=('704cd414a0565d905e1074ffdc1fadfb' + '08582e502fed8221c6577042ca45ddb8' + '5bf4473f658404aa9a97bf026ecef8e9' + '65606c606df97a0760dfe5aaf9893afc' + 'dec2cbaad64e3abf4f0ec70e1de4e8e9' + 'b01be5f816988fcee7e78225836e5e27' + '09005dabd90c48ddd392b3dbf05f8a82' + '07c4e412909ac65a44ec90e7a2c4bade') + +build() { + phpconfig="--srcdir=../${pkgbase}-${pkgver} \ + --prefix=/usr \ + --sysconfdir=/etc/php \ + --localstatedir=/var \ + --with-layout=GNU \ + --with-config-file-path=/etc/php \ + --with-config-file-scan-dir=/etc/php/conf.d \ + --enable-inline-optimization \ + --disable-debug \ + --disable-rpath \ + --disable-static \ + --enable-shared \ + --mandir=/usr/share/man \ + --without-pear \ + " + + phpextensions="--enable-bcmath=shared \ + --enable-calendar=shared \ + --enable-dba=shared \ + --enable-exif=shared \ + --enable-ftp=shared \ + --enable-gd-native-ttf \ + --enable-intl=shared \ + --enable-json=shared \ + --enable-mbregex \ + --enable-mbstring \ + --enable-pdo \ + --enable-phar=shared \ + --enable-posix=shared \ + --enable-session \ + --enable-shmop=shared \ + --enable-soap=shared \ + --enable-sockets=shared \ + --enable-sqlite-utf8 \ + --enable-sysvmsg=shared \ + --enable-sysvsem=shared \ + --enable-sysvshm=shared \ + --enable-xml \ + --enable-zip=shared \ + --with-bz2=shared \ + --with-curl=shared \ + --with-db4=/usr \ + --with-enchant=shared,/usr \ + --with-freetype-dir=shared,/usr \ + --with-gd=shared \ + --with-gdbm=shared \ + --with-gettext=shared \ + --with-gmp=shared \ + --with-iconv=shared \ + --with-icu-dir=/usr \ + --with-imap-ssl=shared \ + --with-imap=shared \ + --with-jpeg-dir=shared,/usr \ + --with-ldap=shared \ + --with-ldap-sasl \ + --with-mcrypt=shared \ + --with-mhash \ + --with-mssql=shared \ + --with-mysql-sock=/var/run/mysqld/mysqld.sock \ + --with-mysql=shared,mysqlnd \ + --with-mysqli=shared,mysqlnd \ + --with-openssl=shared \ + --with-pcre-regex=/usr \ + --with-pdo-mysql=shared,mysqlnd \ + --with-pdo-odbc=shared,unixODBC,/usr \ + --with-pdo-pgsql=shared \ + --with-pdo-sqlite=shared,/usr \ + --with-pgsql=shared \ + --with-png-dir=shared,/usr \ + --with-pspell=shared \ + --with-regex=php \ + --with-snmp=shared \ + --with-sqlite3=shared,/usr \ + --with-sqlite=shared \ + --with-tidy=shared \ + --with-unixODBC=shared,/usr \ + --with-xmlrpc=shared \ + --with-xsl=shared \ + --with-zlib \ + --without-db2 \ + --without-db3 \ + " + + EXTENSION_DIR=/usr/lib/php/modules + export EXTENSION_DIR + PEAR_INSTALLDIR=/usr/share/pear + export PEAR_INSTALLDIR + + cd ${srcdir}/${pkgbase}-${pkgver} + + # apply suhosin patch + patch -p1 -i ${srcdir}/suhosin-patch-${_suhosinver}.patch + + # adjust paths + patch -p0 -i ${srcdir}/php.ini.patch + patch -p0 -i ${srcdir}/php-fpm.conf.in.patch + + # php + mkdir ${srcdir}/build-php + cd ${srcdir}/build-php + ln -s ../${pkgbase}-${pkgver}/configure + ./configure ${phpconfig} \ + --disable-cgi \ + --with-readline \ + --enable-pcntl \ + ${phpextensions} + make + + # cgi and fcgi + # reuse the previous run; this will save us a lot of time + cp -a ${srcdir}/build-php ${srcdir}/build-cgi + cd ${srcdir}/build-cgi + ./configure ${phpconfig} \ + --disable-cli \ + --enable-cgi \ + ${phpextensions} + make + + # apache + cp -a ${srcdir}/build-php ${srcdir}/build-apache + cd ${srcdir}/build-apache + ./configure ${phpconfig} \ + --disable-cli \ + --with-apxs2 \ + ${phpextensions} + make + + # fpm + cp -a ${srcdir}/build-php ${srcdir}/build-fpm + cd ${srcdir}/build-fpm + ./configure ${phpconfig} \ + --disable-cli \ + --enable-fpm \ + --with-fpm-user=http \ + --with-fpm-group=http \ + ${phpextensions} + make + + # embed + cp -a ${srcdir}/build-php ${srcdir}/build-embed + cd ${srcdir}/build-embed + ./configure ${phpconfig} \ + --disable-cli \ + --enable-embed=shared \ + ${phpextensions} + make + + # pear + cp -a ${srcdir}/build-php ${srcdir}/build-pear + cd ${srcdir}/build-pear + ./configure ${phpconfig} \ + --disable-cgi \ + --with-readline \ + --enable-pcntl \ + --with-pear \ + ${phpextensions} + make +} + +# check() { +# cd ${srcdir}/build-php +# make test +# } + +package_php() { + pkgdesc='An HTML-embedded scripting language' + depends=('pcre' 'libxml2' 'bzip2' 'curl') + replaces=('php-fileinfo' 'php-gmp' 'php-curl') + provides=('php-fileinfo' 'php-gmp' 'php-curl') + conflicts=('php-fileinfo' 'php-gmp' 'php-curl') + backup=('etc/php/php.ini') + + cd ${srcdir}/build-php + make -j1 INSTALL_ROOT=${pkgdir} install + install -d -m755 ${pkgdir}/usr/share/pear + # install php.ini + install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/php.ini-production ${pkgdir}/etc/php/php.ini + install -d -m755 ${pkgdir}/etc/php/conf.d/ + + # remove static modules + rm -f ${pkgdir}/usr/lib/php/modules/*.a + # remove modules provided by sub packages + rm -f ${pkgdir}/usr/lib/php/modules/{enchant,gd,intl,ldap,mcrypt,mssql,odbc,pdo_odbc,pgsql,pdo_pgsql,pspell,snmp,sqlite3,pdo_sqlite,tidy,xsl}.so + # remove empty directory + rmdir ${pkgdir}/usr/include/php/include +} + +package_php-cgi() { + pkgdesc='CGI and FCGI SAPI for PHP' + depends=('php') + + install -D -m755 ${srcdir}/build-cgi/sapi/cgi/php-cgi ${pkgdir}/usr/bin/php-cgi +} + +package_php-apache() { + pkgdesc='Apache SAPI for PHP' + depends=('php' 'apache') + backup=('etc/httpd/conf/extra/php5_module.conf') + + install -D -m755 ${srcdir}/build-apache/libs/libphp5.so ${pkgdir}/usr/lib/httpd/modules/libphp5.so + install -D -m644 ${srcdir}/apache.conf ${pkgdir}/etc/httpd/conf/extra/php5_module.conf +} + +package_php-fpm() { + pkgdesc='FastCGI Process Manager for PHP' + depends=('php') + backup=('etc/php/php-fpm.conf') + + install -D -m755 ${srcdir}/build-fpm/sapi/fpm/php-fpm ${pkgdir}/usr/sbin/php-fpm + install -D -m644 ${srcdir}/build-fpm/sapi/fpm/php-fpm.8 ${pkgdir}/usr/share/man/man8/php-fpm.8 + install -D -m644 ${srcdir}/build-fpm/sapi/fpm/php-fpm.conf ${pkgdir}/etc/php/php-fpm.conf + install -D -m755 ${srcdir}/rc.d.php-fpm ${pkgdir}/etc/rc.d/php-fpm + install -D -m644 ${srcdir}/logrotate.d.php-fpm ${pkgdir}/etc/logrotate.d/php-fpm + install -d -m755 ${pkgdir}/etc/php/fpm.d +} + +package_php-embed() { + pkgdesc='Embed SAPI for PHP' + depends=('php') + + install -D -m755 ${srcdir}/build-embed/libs/libphp5.so ${pkgdir}/usr/lib/libphp5.so + install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/sapi/embed/php_embed.h ${pkgdir}/usr/include/php/sapi/embed/php_embed.h +} + +package_php-pear() { + pkgdesc='PHP Extension and Application Repository' + depends=('php') + backup=('etc/php/pear.conf') + + cd ${srcdir}/build-pear + make -j1 install-pear INSTALL_ROOT=${pkgdir} + local i + while read i; do + [ ! -e "$i" ] || rm -rf "$i" + done < <(find ${pkgdir} -name '.*') +} + +package_php-enchant() { + depends=('php' 'enchant') + pkgdesc='enchant module for PHP' + install -D -m755 ${srcdir}/build-php/modules/enchant.so ${pkgdir}/usr/lib/php/modules/enchant.so +} + +package_php-gd() { + depends=('php' 'libpng' 'libjpeg' 'freetype2') + pkgdesc='gd module for PHP' + install -D -m755 ${srcdir}/build-php/modules/gd.so ${pkgdir}/usr/lib/php/modules/gd.so +} + +package_php-intl() { + depends=('php' 'icu') + pkgdesc='intl module for PHP' + install -D -m755 ${srcdir}/build-php/modules/intl.so ${pkgdir}/usr/lib/php/modules/intl.so +} + +package_php-ldap() { + depends=('php' 'libldap') + pkgdesc='ldap module for PHP' + install -D -m755 ${srcdir}/build-php/modules/ldap.so ${pkgdir}/usr/lib/php/modules/ldap.so +} + +package_php-mcrypt() { + depends=('php' 'libmcrypt' 'libltdl') + pkgdesc='mcrypt module for PHP' + install -D -m755 ${srcdir}/build-php/modules/mcrypt.so ${pkgdir}/usr/lib/php/modules/mcrypt.so +} + +package_php-mssql() { + depends=('php' 'freetds') + pkgdesc='mssql module for PHP' + install -D -m755 ${srcdir}/build-php/modules/mssql.so ${pkgdir}/usr/lib/php/modules/mssql.so +} + +package_php-odbc() { + depends=('php' 'unixodbc') + pkgdesc='ODBC modules for PHP' + install -D -m755 ${srcdir}/build-php/modules/odbc.so ${pkgdir}/usr/lib/php/modules/odbc.so + install -D -m755 ${srcdir}/build-php/modules/pdo_odbc.so ${pkgdir}/usr/lib/php/modules/pdo_odbc.so +} + +package_php-pgsql() { + depends=('php' 'postgresql-libs') + pkgdesc='PostgreSQL modules for PHP' + install -D -m755 ${srcdir}/build-php/modules/pgsql.so ${pkgdir}/usr/lib/php/modules/pgsql.so + install -D -m755 ${srcdir}/build-php/modules/pdo_pgsql.so ${pkgdir}/usr/lib/php/modules/pdo_pgsql.so +} + +package_php-pspell() { + depends=('php' 'aspell') + pkgdesc='pspell module for PHP' + install -D -m755 ${srcdir}/build-php/modules/pspell.so ${pkgdir}/usr/lib/php/modules/pspell.so +} + +package_php-snmp() { + depends=('php' 'net-snmp') + pkgdesc='snmp module for PHP' + install -D -m755 ${srcdir}/build-php/modules/snmp.so ${pkgdir}/usr/lib/php/modules/snmp.so +} + +package_php-sqlite() { + depends=('php' 'sqlite3') + pkgdesc='sqlite3 module for PHP' + install -D -m755 ${srcdir}/build-php/modules/sqlite3.so ${pkgdir}/usr/lib/php/modules/sqlite3.so + install -D -m755 ${srcdir}/build-php/modules/pdo_sqlite.so ${pkgdir}/usr/lib/php/modules/pdo_sqlite.so +} + +package_php-tidy() { + depends=('php' 'tidyhtml') + pkgdesc='tidy module for PHP' + install -D -m755 ${srcdir}/build-php/modules/tidy.so ${pkgdir}/usr/lib/php/modules/tidy.so +} + +package_php-xsl() { + depends=('php' 'libxslt') + pkgdesc='xsl module for PHP' + install -D -m755 ${srcdir}/build-php/modules/xsl.so ${pkgdir}/usr/lib/php/modules/xsl.so +} diff --git a/testing/php/apache.conf b/testing/php/apache.conf new file mode 100644 index 000000000..c3ca0aad5 --- /dev/null +++ b/testing/php/apache.conf @@ -0,0 +1,13 @@ +# Required modules: dir_module, php5_module + +<IfModule dir_module> + <IfModule php5_module> + DirectoryIndex index.php index.html + <FilesMatch "\.php$"> + SetHandler application/x-httpd-php + </FilesMatch> + <FilesMatch "\.phps$"> + SetHandler application/x-httpd-php-source + </FilesMatch> + </IfModule> +</IfModule> diff --git a/testing/php/logrotate.d.php-fpm b/testing/php/logrotate.d.php-fpm new file mode 100644 index 000000000..7a1ba2597 --- /dev/null +++ b/testing/php/logrotate.d.php-fpm @@ -0,0 +1,6 @@ +/var/log/php-fpm.log { + missingok + postrotate + /etc/rc.d/php-fpm logrotate >/dev/null || true + endscript +} diff --git a/testing/php/php-fpm.conf.in.patch b/testing/php/php-fpm.conf.in.patch new file mode 100644 index 000000000..b4dd32f96 --- /dev/null +++ b/testing/php/php-fpm.conf.in.patch @@ -0,0 +1,80 @@ +--- sapi/fpm/php-fpm.conf.in 2011-07-04 23:22:56.000000000 +0200 ++++ sapi/fpm/php-fpm.conf.in 2011-08-12 16:56:23.686606725 +0200 +@@ -12,7 +12,7 @@ + ; Relative path can also be used. They will be prefixed by: + ; - the global prefix if it's been set (-p arguement) + ; - @prefix@ otherwise +-;include=etc/fpm.d/*.conf ++;include=/etc/php/fpm.d/*.conf + + ;;;;;;;;;;;;;;;;;; + ; Global Options ; +@@ -22,7 +22,7 @@ + ; Pid file + ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@ + ; Default Value: none +-;pid = run/php-fpm.pid ++pid = run/php-fpm/php-fpm.pid + + ; Error log file + ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@ +@@ -102,7 +102,8 @@ + ; specific port; + ; '/path/to/unix/socket' - to listen on a unix socket. + ; Note: This value is mandatory. +-listen = 127.0.0.1:9000 ++;listen = 127.0.0.1:9000 ++listen = /var/run/php-fpm/php-fpm.sock + + ; Set listen(2) backlog. A value of '-1' means unlimited. + ; Default Value: 128 (-1 on FreeBSD and OpenBSD) +@@ -121,9 +122,9 @@ + ; BSD-derived systems allow connections regardless of permissions. + ; Default Values: user and group are set as the running user + ; mode is set to 0666 +-;listen.owner = @php_fpm_user@ +-;listen.group = @php_fpm_group@ +-;listen.mode = 0666 ++listen.owner = @php_fpm_user@ ++listen.group = @php_fpm_group@ ++listen.mode = 0660 + + ; Unix user/group of processes + ; Note: The user is mandatory. If the group is not set, the default user's group +@@ -163,23 +164,23 @@ + ; The number of child processes created on startup. + ; Note: Used only when pm is set to 'dynamic' + ; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 +-;pm.start_servers = 20 ++pm.start_servers = 20 + + ; The desired minimum number of idle server processes. + ; Note: Used only when pm is set to 'dynamic' + ; Note: Mandatory when pm is set to 'dynamic' +-;pm.min_spare_servers = 5 ++pm.min_spare_servers = 5 + + ; The desired maximum number of idle server processes. + ; Note: Used only when pm is set to 'dynamic' + ; Note: Mandatory when pm is set to 'dynamic' +-;pm.max_spare_servers = 35 ++pm.max_spare_servers = 35 + + ; The number of requests each child process should execute before respawning. + ; This can be useful to work around memory leaks in 3rd party libraries. For + ; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. + ; Default Value: 0 +-;pm.max_requests = 500 ++pm.max_requests = 500 + + ; The URI to view the FPM status page. If this value is not set, no URI will be + ; recognized as a status page. By default, the status page shows the following +@@ -333,7 +334,7 @@ + ; Chdir to this directory at the start. + ; Note: relative path can be used. + ; Default Value: current directory or / when chroot +-;chdir = /var/www ++;chdir = /srv/http + + ; Redirect worker stdout and stderr into main error log. If not set, stdout and + ; stderr will be redirected to /dev/null according to FastCGI specs. diff --git a/testing/php/php.ini.patch b/testing/php/php.ini.patch new file mode 100644 index 000000000..46c842921 --- /dev/null +++ b/testing/php/php.ini.patch @@ -0,0 +1,126 @@ +--- php.ini-production 2011-02-09 01:25:44.000000000 +0100 ++++ php.ini-production 2011-03-19 11:11:44.496987763 +0100 +@@ -376,7 +376,7 @@ + ; or per-virtualhost web server configuration file. This directive is + ; *NOT* affected by whether Safe Mode is turned On or Off. + ; http://php.net/open-basedir +-;open_basedir = ++open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/ + + ; This directive allows you to disable certain functions for security reasons. + ; It receives a comma-delimited list of function names. This directive is +@@ -781,7 +781,7 @@ + ;;;;;;;;;;;;;;;;;;;;;;;;; + + ; UNIX: "/path1:/path2" +-;include_path = ".:/php/includes" ++include_path = ".:/usr/share/pear" + ; + ; Windows: "\path1;\path2" + ;include_path = ".;c:\php\includes" +@@ -804,7 +804,7 @@ + + ; Directory in which the loadable extensions (modules) reside. + ; http://php.net/extension-dir +-; extension_dir = "./" ++extension_dir = "/usr/lib/php/modules/" + ; On windows: + ; extension_dir = "ext" + +@@ -938,53 +938,49 @@ + ; If you only provide the name of the extension, PHP will look for it in its + ; default extension directory. + ; +-; Windows Extensions +-; Note that ODBC support is built in, so no dll is needed for it. +-; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5) +-; extension folders as well as the separate PECL DLL download (PHP 5). +-; Be sure to appropriately set the extension_dir directive. +-; +-;extension=php_bz2.dll +-;extension=php_curl.dll +-;extension=php_fileinfo.dll +-;extension=php_gd2.dll +-;extension=php_gettext.dll +-;extension=php_gmp.dll +-;extension=php_intl.dll +-;extension=php_imap.dll +-;extension=php_interbase.dll +-;extension=php_ldap.dll +-;extension=php_mbstring.dll +-;extension=php_exif.dll ; Must be after mbstring as it depends on it +-;extension=php_mysql.dll +-;extension=php_mysqli.dll +-;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client +-;extension=php_oci8_11g.dll ; Use with Oracle 11g Instant Client +-;extension=php_openssl.dll +-;extension=php_pdo_firebird.dll +-;extension=php_pdo_mssql.dll +-;extension=php_pdo_mysql.dll +-;extension=php_pdo_oci.dll +-;extension=php_pdo_odbc.dll +-;extension=php_pdo_pgsql.dll +-;extension=php_pdo_sqlite.dll +-;extension=php_pgsql.dll +-;extension=php_pspell.dll +-;extension=php_shmop.dll +- +-; The MIBS data available in the PHP distribution must be installed. +-; See http://www.php.net/manual/en/snmp.installation.php +-;extension=php_snmp.dll +- +-;extension=php_soap.dll +-;extension=php_sockets.dll +-;extension=php_sqlite.dll +-;extension=php_sqlite3.dll +-;extension=php_sybase_ct.dll +-;extension=php_tidy.dll +-;extension=php_xmlrpc.dll +-;extension=php_xsl.dll +-;extension=php_zip.dll ++;extension=bcmath.so ++;extension=bz2.so ++;extension=calendar.so ++extension=curl.so ++;extension=dba.so ++;extension=enchant.so ++;extension=exif.so ++;extension=ftp.so ++;extension=gd.so ++extension=gettext.so ++;extension=gmp.so ++;extension=iconv.so ++;extension=imap.so ++;extension=intl.so ++extension=json.so ++;extension=ldap.so ++;extension=mcrypt.so ++;extension=mssql.so ++;extension=mysqli.so ++;extension=mysql.so ++;extension=odbc.so ++;extension=openssl.so ++;extension=pdo_mysql.so ++;extension=pdo_odbc.so ++;extension=pdo_pgsql.so ++;extension=pdo_sqlite.so ++;extension=pgsql.so ++;extension=phar.so ++;extension=posix.so ++;extension=pspell.so ++;extension=shmop.so ++;extension=snmp.so ++;extension=soap.so ++;extension=sockets.so ++;extension=sqlite3.so ++;extension=sqlite.so ++;extension=sysvmsg.so ++;extension=sysvsem.so ++;extension=sysvshm.so ++;extension=tidy.so ++;extension=xmlrpc.so ++;extension=xsl.so ++;extension=zip.so + + ;;;;;;;;;;;;;;;;;;; + ; Module Settings ; diff --git a/testing/php/rc.d.php-fpm b/testing/php/rc.d.php-fpm new file mode 100644 index 000000000..54bcf4d5b --- /dev/null +++ b/testing/php/rc.d.php-fpm @@ -0,0 +1,158 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + + +wait_for_pid () { + try=0 + while test $try -lt 35 ; do + case "$1" in + 'created') + if [ -f "$2" ] ; then + try='' + break + fi + ;; + 'removed') + if [ ! -f "$2" ] ; then + try='' + break + fi + ;; + esac + + stat_append '.' + try=`expr $try + 1` + sleep 1 + done +} + +test_config() { + stat_busy 'Checking configuration' + if [ $(id -u) -ne 0 ]; then + stat_append '(This script must be run as root)' + stat_die + fi + + if [ ! -r /etc/php/php-fpm.conf ]; then + stat_append '(/etc/php/php-fpm.conf not found)' + stat_die + fi + + local test=$(/usr/sbin/php-fpm -t 2>&1) + if [ $? -gt 0 ]; then + stat_append '(error in /etc/php/php-fpm.conf)' + stat_die + elif echo $test | grep -qi 'error'; then + stat_append '(error in /etc/php/php.ini)' + stat_die + fi + + [ -d /var/run/php-fpm ] || install -d -m755 /var/run/php-fpm + + stat_done +} + +case "$1" in + start) + test_config + stat_busy 'Starting php-fpm' + + /usr/sbin/php-fpm + + if [ "$?" != 0 ] ; then + stat_fail + exit 1 + fi + + wait_for_pid created /var/run/php-fpm/php-fpm.pid + + if [ -n "$try" ] ; then + stat_fail + exit 1 + else + add_daemon php-fpm + stat_done + fi + ;; + + stop) + test_config + stat_busy 'Gracefully shutting down php-fpm' + + if [ ! -r /var/run/php-fpm/php-fpm.pid ] ; then + stat_fail + exit 1 + fi + + kill -QUIT `cat /var/run/php-fpm/php-fpm.pid` + + wait_for_pid removed /var/run/php-fpm.pid + + if [ -n "$try" ] ; then + stat_fail + exit 1 + else + rm_daemon php-fpm + stat_done + fi + ;; + + force-quit) + stat_busy 'Terminating php-fpm' + + if [ ! -r /var/run/php-fpm/php-fpm.pid ] ; then + stat_fail + exit 1 + fi + + kill -TERM `cat /var/run/php-fpm/php-fpm.pid` + + wait_for_pid removed /var/run/php-fpm/php-fpm.pid + + if [ -n "$try" ] ; then + stat_fail + exit 1 + else + rm_daemon php-fpm + stat_done + fi + ;; + + restart) + $0 stop + $0 start + ;; + + reload) + test_config + stat_busy 'Reload service php-fpm' + + if [ ! -r /var/run/php-fpm/php-fpm.pid ] ; then + stat_fail + exit 1 + fi + + kill -USR2 `cat /var/run/php-fpm/php-fpm.pid` + stat_done + ;; + + logrotate) + stat_busy 'Reopen php-fpm log' + + if [ ! -r /var/run/php-fpm/php-fpm.pid ] ; then + stat_fail + exit 1 + fi + + kill -USR1 `cat /var/run/php-fpm/php-fpm.pid` + stat_done + ;; + + *) + echo "usage: $0 {start|stop|force-quit|restart|reload|logrotate}" + exit 1 + ;; + +esac diff --git a/testing/pyalpm/PKGBUILD b/testing/pyalpm/PKGBUILD deleted file mode 100644 index 6053b3214..000000000 --- a/testing/pyalpm/PKGBUILD +++ /dev/null @@ -1,23 +0,0 @@ -# Maintainer : Rémy Oudompheng <remy@archlinux.org> - -pkgname=pyalpm -pkgver=0.5.3 -pkgrel=1 -pkgdesc="Libalpm bindings for Python 3" -arch=('i686' 'x86_64') -url="http://projects.archlinux.org/users/remy/pyalpm.git/" -license=('GPL') -depends=('python>=3.2' 'pacman>=4') -source=("ftp://ftp.archlinux.org/other/pyalpm/$pkgname-$pkgver.tar.gz") -md5sums=('a76019106d17de3a5933c773013a63d1') - -build() { - cd ${srcdir}/${pkgname}-${pkgver} - python setup.py build -} - -package() { - cd ${srcdir}/${pkgname}-${pkgver} - python setup.py install --root=${pkgdir} -} - diff --git a/testing/pyqt/PKGBUILD b/testing/pyqt/PKGBUILD new file mode 100644 index 000000000..df569bb5b --- /dev/null +++ b/testing/pyqt/PKGBUILD @@ -0,0 +1,79 @@ +# $Id: PKGBUILD 145217 2011-12-19 18:04:00Z andrea $ +# Maintainer: +# Contributor: Andrea Scarpino <andrea@archlinux.org> +# Contributor: Douglas Soares de Andrade <douglas@archlinux.org> +# Contributor: riai <riai@bigfoot.com> Ben <ben@benmazer.net> + +pkgbase=pyqt +pkgname=('pyqt' 'python2-pyqt') +pkgver=4.8.6 +pkgrel=2 +arch=('i686' 'x86_64') +url="http://riverbankcomputing.co.uk/software/pyqt/intro" +license=('GPL') +makedepends=('qt' 'python-sip' 'dbus-python' 'python2-sip' 'phonon' + 'python-opengl' 'qt-assistant-compat' 'qtwebkit') +source=("http://riverbankcomputing.co.uk/static/Downloads/PyQt4/PyQt-x11-gpl-${pkgver}.tar.gz") +md5sums=('9bfd7b08b8e438b83cc50d5c58191f97') + +build() { + cd "${srcdir}" + cp -r PyQt-x11-gpl-${pkgver} Py2Qt-x11-gpl-${pkgver} + + cd "${srcdir}/PyQt-x11-gpl-${pkgver}" + python configure.py \ + --confirm-license \ + --qsci-api + + # Thanks Gerardo for the rpath fix + find -name 'Makefile' | xargs sed -i 's|-Wl,-rpath,/usr/lib||g;s|-Wl,-rpath,.* ||g' + + make + + ### Python2 version ### + cd "${srcdir}/Py2Qt-x11-gpl-${pkgver}" + python2 configure.py \ + --confirm-license \ + -v /usr/share/sip \ + --qsci-api + + # Thanks Gerardo for the rpath fix + find -name 'Makefile' | xargs sed -i 's|-Wl,-rpath,/usr/lib||g;s|-Wl,-rpath,.* ||g' + + make +} + +package_pyqt(){ + pkgdesc="A set of Python 3.x bindings for the Qt toolkit" + depends=('qtwebkit' 'python-sip') + optdepends=('phonon: enable audio and video in PyQt applications' + 'qscintilla: QScintilla API' + 'qt-assistant-compat: add PyQt online help in Qt Assistant') + replaces=('python-qt') + provides=('python-qt') + + cd "${srcdir}/PyQt-x11-gpl-${pkgver}" + # INSTALL_ROOT is needed for the QtDesigner module, the other Makefiles use DESTDIR + make DESTDIR="${pkgdir}" INSTALL_ROOT="${pkgdir}" install +} + +package_python2-pyqt(){ + pkgdesc="A set of Python 2.x bindings for the Qt toolkit" + depends=('pyqt' 'python2-sip' 'dbus-python') + optdepends=('phonon: enable audio and video in PyQt applications' + 'python-opengl: enable OpenGL 3D graphics in PyQt applications' + 'qscintilla: QScintilla API' + 'qt-assistant-compat: add PyQt online help in Qt Assistant') + replaces=('python2-qt') + provides=('python2-qt') + options=('!emptydirs') + + cd "${srcdir}/Py2Qt-x11-gpl-${pkgver}" + # INSTALL_ROOT is needed for the QtDesigner module, the other Makefiles use DESTDIR + make DESTDIR="${pkgdir}" INSTALL_ROOT="${pkgdir}" install + + # Provided by pyqt + rm ${pkgdir}/usr/bin/{pylupdate4,pyrcc4,pyuic4} + rm ${pkgdir}/usr/lib/qt/plugins/designer/libpythonplugin.so + rm ${pkgdir}/usr/share/qt/qsci/api/python/PyQt4.api +} diff --git a/testing/qt/PKGBUILD b/testing/qt/PKGBUILD new file mode 100644 index 000000000..cc2b26f1d --- /dev/null +++ b/testing/qt/PKGBUILD @@ -0,0 +1,126 @@ +# $Id: PKGBUILD 145207 2011-12-19 18:03:03Z andrea $ +# Maintainer: Andrea Scarpino <andrea@archlinux.org> +# Contributor: Pierre Schmitz <pierre@archlinux.de> + +pkgbase=qt +pkgname=('qt' 'qt-private-headers') +pkgver=4.8.0 +pkgrel=2 +arch=('i686' 'x86_64') +url='http://qt-project.org/' +license=('GPL3' 'LGPL') +makedepends=('libtiff' 'libpng' 'libmng' 'sqlite3' 'ca-certificates' 'glib2' 'dbus' + 'fontconfig' 'libgl' 'libsm' 'libxrandr' 'libxv' 'libxi' 'alsa-lib' + 'xdg-utils' 'hicolor-icon-theme' 'desktop-file-utils' 'mesa' 'postgresql-libs' + 'mysql' 'unixodbc' 'cups' 'gtk2') +options=('!libtool') +_pkgfqn="${pkgbase}-everywhere-opensource-src-${pkgver}" +source=("http://get.qt.nokia.com/qt/source/${_pkgfqn}.tar.gz" + 'assistant.desktop' 'designer.desktop' 'linguist.desktop' + 'qtconfig.desktop') +md5sums=('e8a5fdbeba2927c948d9f477a6abe904' + 'fc211414130ab2764132e7370f8e5caa' + '85179f5e0437514f8639957e1d8baf62' + 'f11852b97583610f3dbb669ebc3e21bc' + '6b771c8a81dd90b45e8a79afa0e5bbfd') + +build() { + cd "${srcdir}"/${_pkgfqn} + + export QT4DIR="${srcdir}"/${_pkgfqn} + export LD_LIBRARY_PATH=${QT4DIR}/lib:${LD_LIBRARY_PATH} + + sed -i "s|-O2|${CXXFLAGS}|" mkspecs/common/g++-base.conf + sed -i "/^QMAKE_LFLAGS_RPATH/s| -Wl,-rpath,||g" mkspecs/common/gcc-base-unix.conf + sed -i "/^QMAKE_LFLAGS\s/s|+=|+= ${LDFLAGS}|g" mkspecs/common/gcc-base.conf + + ./configure -confirm-license -opensource \ + -prefix /usr \ + -docdir /usr/share/doc/qt \ + -plugindir /usr/lib/qt/plugins \ + -importdir /usr/lib/qt/imports \ + -datadir /usr/share/qt \ + -translationdir /usr/share/qt/translations \ + -sysconfdir /etc \ + -examplesdir /usr/share/doc/qt/examples \ + -demosdir /usr/share/doc/qt/demos \ + -plugin-sql-{psql,mysql,sqlite,odbc} \ + -system-sqlite \ + -no-phonon \ + -no-phonon-backend \ + -no-webkit \ + -graphicssystem raster \ + -openssl-linked \ + -nomake demos \ + -nomake examples \ + -nomake docs \ + -silent \ + -no-rpath \ + -optimized-qmake \ + -reduce-relocations \ + -dbus-linked \ + -no-openvg + make +} + +package_qt() { + pkgdesc='A cross-platform application and UI framework' + depends=('libtiff' 'libpng' 'libmng' 'sqlite3' 'ca-certificates' 'glib2' 'dbus' + 'fontconfig' 'libgl' 'libsm' 'libxrandr' 'libxv' 'libxi' 'alsa-lib' + 'xdg-utils' 'hicolor-icon-theme' 'desktop-file-utils') + optdepends=('postgresql-libs: PostgreSQL driver' + 'libmysqlclient: MySQL driver' + 'unixodbc: ODBC driver' + 'libxinerama: Xinerama support' + 'libxcursor: Xcursor support' + 'libxfixes: Xfixes support') + install='qt.install' + + cd "${srcdir}"/${_pkgfqn} + make INSTALL_ROOT="${pkgdir}" install + + # install missing icons and desktop files + for icon in tools/linguist/linguist/images/icons/linguist-*-32.png ; do + size=$(echo $(basename ${icon}) | cut -d- -f2) + install -p -D -m644 ${icon} \ + "${pkgdir}/usr/share/icons/hicolor/${size}x${size}/apps/linguist.png" + done + install -p -D -m644 src/gui/dialogs/images/qtlogo-64.png \ + "${pkgdir}/usr/share/icons/hicolor/64x64/apps/qtlogo.png" + install -p -D -m644 tools/assistant/tools/assistant/images/assistant.png \ + "${pkgdir}/usr/share/icons/hicolor/32x32/apps/assistant.png" + install -p -D -m644 tools/designer/src/designer/images/designer.png \ + "${pkgdir}/usr/share/icons/hicolor/128x128/apps/designer.png" + install -d "${pkgdir}/usr/share/applications" + install -m644 "${srcdir}"/{linguist,designer,assistant,qtconfig}.desktop \ + "${pkgdir}/usr/share/applications/" + + # install license addition + install -D -m644 LGPL_EXCEPTION.txt \ + ${pkgdir}/usr/share/licenses/qt/LGPL_EXCEPTION.txt + + # Fix wrong path in pkgconfig files + find "${pkgdir}/usr/lib/pkgconfig" -type f -name '*.pc' \ + -exec perl -pi -e "s, -L${srcdir}/?\S+,,g" {} \; + + # Fix wrong path in prl files + find "${pkgdir}/usr/lib" -type f -name '*.prl' \ + -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \; +} + +package_qt-private-headers(){ + pkgdesc="Qt private headers for development" + depends=("qt=${pkgver}") + + install -d "${pkgdir}"/usr/include/{QtCore,QtDeclarative,QtGui,QtScript} + install -d "${pkgdir}"/usr/src/{corelib,declarative,gui,script} + + for i in QtCore QtDeclarative QtGui QtScript; do + cp -r "${srcdir}"/${_pkgfqn}/include/${i}/private/ \ + "${pkgdir}"/usr/include/${i}/ + done + + for i in corelib declarative gui script; do + cp -r "${srcdir}"/${_pkgfqn}/src/${i} "${pkgdir}"/usr/src/ + done +} diff --git a/testing/qt/assistant.desktop b/testing/qt/assistant.desktop new file mode 100644 index 000000000..a9e98c44b --- /dev/null +++ b/testing/qt/assistant.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=Qt Assistant +Comment=Shows Qt documentation and examples +Exec=/usr/bin/assistant +Icon=assistant +Terminal=false +Encoding=UTF-8 +Type=Application +Categories=Qt;Development;Documentation; diff --git a/testing/qt/designer.desktop b/testing/qt/designer.desktop new file mode 100644 index 000000000..9b7b6e9aa --- /dev/null +++ b/testing/qt/designer.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Name=Qt Designer +GenericName=Interface Designer +Comment=Design GUIs for Qt applications +Exec=/usr/bin/designer +Icon=designer +MimeType=application/x-designer; +Terminal=false +Encoding=UTF-8 +Type=Application +Categories=Qt;Development; diff --git a/testing/qt/linguist.desktop b/testing/qt/linguist.desktop new file mode 100644 index 000000000..8cbe86599 --- /dev/null +++ b/testing/qt/linguist.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=Qt Linguist +Comment=Add translations to Qt applications +Exec=/usr/bin/linguist +Icon=linguist +MimeType=text/vnd.trolltech.linguist;application/x-linguist; +Terminal=false +Encoding=UTF-8 +Type=Application +Categories=Qt;Development; diff --git a/testing/qt/qt.install b/testing/qt/qt.install new file mode 100644 index 000000000..5495fb1b5 --- /dev/null +++ b/testing/qt/qt.install @@ -0,0 +1,12 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/testing/qt/qtconfig.desktop b/testing/qt/qtconfig.desktop new file mode 100644 index 000000000..46dcf9e3d --- /dev/null +++ b/testing/qt/qtconfig.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=Qt Config +Comment=Configure Qt behavior, styles, fonts +Exec=/usr/bin/qtconfig +Icon=qtlogo +Terminal=false +Encoding=UTF-8 +Type=Application +Categories=Qt;Settings; +NoDisplay=true diff --git a/testing/qt3/PKGBUILD b/testing/qt3/PKGBUILD new file mode 100644 index 000000000..ea8a2a76f --- /dev/null +++ b/testing/qt3/PKGBUILD @@ -0,0 +1,133 @@ +# $Id: PKGBUILD 145229 2011-12-19 18:04:21Z andrea $ +# Maintainer: Eric Bélanger <eric@archlinux.org> + +pkgname=qt3 +pkgver=3.3.8 +pkgrel=21 +pkgdesc="The QT3 gui toolkit" +arch=('i686' 'x86_64') +url="http://www.trolltech.com/products/qt/index.html" +license=('GPL') +depends=('libpng' 'libxmu' 'libxcursor' 'libxinerama' 'mesa' 'libxft' + 'libxrandr' 'libmng') +makedepends=('mysql' 'postgresql' 'unixodbc' 'sqlite3') +optdepends=('libmysqlclient' 'postgresql-libs' 'unixodbc') +options=('!libtool') +install=qt.install +source=(ftp://ftp.trolltech.com/qt/source/qt-x11-free-${pkgver}.tar.bz2 + qt.profile qt3-png14.patch qt-copy-kde-patches.tar.bz2 + qt-patches.tar.bz2 utf8-bug-qt3.diff qt-font-default-subst.diff + mysql.patch eastern_asian_languagues.diff qt-odbc.patch gcc-4.6.patch) +sha1sums=('91b192cb8e80679607d24ae35d6e20ed68d149d7' + 'd2e257a9011208b2cb81b9cf47915b9a2f9dab83' + 'c8ea644266f4d6d6be9adf894f03138b8eca3fc2' + '9cb2e5bec782069692ee337cfa171539d9d73753' + '116afa0e737bdf27ea27f9b3653aeb56db9ec151' + 'ca5ecb29c7f1c826d48703339a3371038e306bb7' + 'd928ff55adb52c4bab2fb268df022651551cd70c' + 'bb6aad81cce143c23ff7840b1d79f6b2007a0c04' + '40c7b8f06a21f809ddeb8b5560e9da63ccac6a17' + '1346320614f6f86fbeb10b9fbad721dea29f5b61' + 'd9b83b8f6f9c8bd98d290dc1d0e9913a00b62c3f') + +# qt-copy-kde-patches come from http://websvn.kde.org/trunk/qt-copy/patches/ +# other qt-patches come from fedora and gentoo + +build() { + unset QMAKESPEC + export QTDIR="${srcdir}"/qt-x11-free-${pkgver} + export PATH=${QTDIR}/bin:${PATH} + export LD_LIBRARY_PATH=${QTDIR}/lib:${LD_LIBRARY_PATH} + export QMAKESPEC=$QTDIR/mkspecs/linux-g++ + cd "${srcdir}"/qt-x11-free-${pkgver} + # apply qt patches from kde.org + for i in ../qt-copy-kde-patches/*; do + patch -Np0 -i $i + done + # apply other qt patches and one security fix from debian/gentoo + for i in ../qt-patches/*; do + patch -Np1 -i $i + done + # fix utf8 bug + patch -p0 -i "${srcdir}"/utf8-bug-qt3.diff + # fix asia fonts + patch -p0 -i "${srcdir}"/qt-font-default-subst.diff + # fix segfaults on exit when using mysql DB driver + patch -p0 -i "${srcdir}"/mysql.patch + # fix CJK font/chars select error (FS#11245) + patch -p1 -i "${srcdir}"/eastern_asian_languagues.diff + # fix build problem against new unixODBC + patch -p1 -i "${srcdir}"/qt-odbc.patch + # fix build with gcc 4.6.0 + patch -p1 -i "${srcdir}"/gcc-4.6.patch + + patch -p0 -i "${srcdir}"/qt3-png14.patch + # start compiling qt + sed -i 's|-cp -P -f|-cp -L -f|' qmake/Makefile.unix + rm -rf doc/html examples tutorial + sed -i "s|sub-tutorial sub-examples||" Makefile + sed -i "s|-O2|$CXXFLAGS|" mkspecs/linux-g++/qmake.conf + sed -i "s|-O2|$CXXFLAGS|" mkspecs/linux-g++-32/qmake.conf + sed -i "s|-O2|$CXXFLAGS|" mkspecs/linux-g++-64/qmake.conf + sed -i "s|-I. |$CXXFLAGS -I. |" qmake/Makefile.unix + sed -i "s|read acceptance|acceptance=yes|" configure + + # remove unwanted mkspecs + rm -rf mkspecs/{*aix*,*bsd*,cygwin*,dgux*,darwin*,hpux*,hurd*,irix*,lynxos*,macx*,qnx*,reliant*,sco*,solaris*,tru64*,unixware*,win32*} + + if [ "$CARCH" = "x86_64" ]; then + export ARCH="-64" + else unset ARCH + fi + + ./configure -prefix /opt/qt \ + -platform linux-g++$ARCH \ + -system-zlib \ + -qt-gif \ + -release \ + -shared \ + -sm \ + -nis \ + -thread \ + -stl \ + -system-lib{png,jpeg,mng} \ + -no-g++-exceptions \ + -plugin-sql-{mysql,psql,sqlite,odbc} + + # fix /opt/qt/lib path + [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/qt-x11-free-${pkgver}/src/Makefile + [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/qt-x11-free-${pkgver}/tools/designer/designer/Makefile + [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/qt-x11-free-${pkgver}/tools/designer/editor/Makefile + [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/qt-x11-free-${pkgver}/tools/assistant/lib/Makefile + [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/qt-x11-free-${pkgver}/tools/designer/uilib/Makefile + + cd "${srcdir}"/qt-x11-free-${pkgver} + make -C qmake + cd "${srcdir}"/qt-x11-free-${pkgver}/plugins/src/sqldrivers/mysql + "${srcdir}"/qt-x11-free-${pkgver}/bin/qmake -o Makefile "INCPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql -lmysqlclient" mysql.pro + cd "${srcdir}"/qt-x11-free-${pkgver}/plugins/src/sqldrivers/psql + "${srcdir}"/qt-x11-free-${pkgver}/bin/qmake -o Makefile "INCPATH+=/usr/src/include /usr/include/postgresql/server" "LIBS+=-L/usr/lib -lpq" psql.pro + + cd "${srcdir}"/qt-x11-free-${pkgver} + # fix the broken makefiles + #sed -i 's|[[:space:]]*strip.*doc/html.*$|#|g' src/Makefile + make +} + +package() { + cd "${srcdir}"/qt-x11-free-${pkgver} + make INSTALL_ROOT="${pkgdir}" install + rm -rf "${pkgdir}"/opt/qt/{phrasebooks,templates,translations} + sed -i "s|-L${srcdir}/qt-x11-free-${pkgver}/lib ||g" "${pkgdir}"/opt/qt/lib/*.prl + install -D -m755 qmake/qmake "${pkgdir}"/opt/qt/bin/qmake + install -D -m755 "${srcdir}"/qt.profile "${pkgdir}"/etc/profile.d/qt3.sh + ln -sf /opt/qt/bin/qtconfig "${pkgdir}"/opt/qt/bin/qt3config + rm -f "${pkgdir}"/opt/qt/mkspecs/linux-g++$ARCH/linux-g++$ARCH + + # install man pages + install -d -m755 "${pkgdir}"/opt/qt/man + cp -r "${srcdir}"/qt-x11-free-${pkgver}/doc/man/{man1,man3} "${pkgdir}"/opt/qt/man/ + + install -d -m755 "${pkgdir}"/etc/ld.so.conf.d/ + echo '/opt/qt/lib' > "${pkgdir}"/etc/ld.so.conf.d/qt3.conf +} diff --git a/testing/qt3/eastern_asian_languagues.diff b/testing/qt3/eastern_asian_languagues.diff new file mode 100644 index 000000000..7c25eef7d --- /dev/null +++ b/testing/qt3/eastern_asian_languagues.diff @@ -0,0 +1,39 @@ +--- qt-x11-free-3.3.8b/src/kernel/qfontdatabase.cpp 2008-01-15 21:09:13.000000000 +0200 ++++ qt-x11-free-3.3.8b/src/kernel/qfontdatabase.cpp 2008-03-10 11:34:22.000000000 +0200 +@@ -966,20 +966,22 @@ + + #ifdef Q_WS_X11 + if (script == QFont::Han) { +- // modify script according to locale +- static QFont::Script defaultHan = QFont::UnknownScript; +- if (defaultHan == QFont::UnknownScript) { +- QCString locale = setlocale(LC_ALL, NULL); +- if (locale.contains("ko")) +- defaultHan = QFont::Han_Korean; +- else if (locale.contains("zh_TW") || locale.contains("zh_HK")) +- defaultHan = QFont::Han_TraditionalChinese; +- else if (locale.contains("zh")) +- defaultHan = QFont::Han_SimplifiedChinese; +- else +- defaultHan = QFont::Han_Japanese; +- } +- script = defaultHan; ++ // modify script according to locale ++ static QFont::Script defaultHan; ++ QCString locale = setlocale(LC_ALL, NULL); ++ ++ if (locale.contains("ko")) ++ defaultHan = QFont::Han_Korean; ++ else if (locale.contains("zh_TW") || locale.contains("zh_HK")) ++ defaultHan = QFont::Han_TraditionalChinese; ++ else if (locale.contains("zh")) ++ defaultHan = QFont::Han_SimplifiedChinese; ++ else if (locale.contains("ja")) ++ defaultHan = QFont::Han_Japanese; ++ else ++ defaultHan = QFont::Han; // don't change ++ ++ script = defaultHan; + } + #endif + diff --git a/testing/qt3/gcc-4.6.patch b/testing/qt3/gcc-4.6.patch new file mode 100644 index 000000000..bcbffcea6 --- /dev/null +++ b/testing/qt3/gcc-4.6.patch @@ -0,0 +1,33 @@ +diff -up qt-x11-free-3.3.8b/src/tools/qmap.h.cstddef qt-x11-free-3.3.8b/src/tools/qmap.h +--- qt-x11-free-3.3.8b/src/tools/qmap.h.cstddef 2008-01-15 13:09:13.000000000 -0600 ++++ qt-x11-free-3.3.8b/src/tools/qmap.h 2011-01-30 21:14:29.275088725 -0600 +@@ -49,6 +49,7 @@ + #include "qvaluelist.h" + #endif // QT_H + ++#include <cstddef> + #ifndef QT_NO_STL + #include <iterator> + #include <map> +diff -up qt-x11-free-3.3.8b/src/tools/qvaluelist.h.cstddef qt-x11-free-3.3.8b/src/tools/qvaluelist.h +--- qt-x11-free-3.3.8b/src/tools/qvaluelist.h.cstddef 2008-01-15 13:09:13.000000000 -0600 ++++ qt-x11-free-3.3.8b/src/tools/qvaluelist.h 2011-01-30 21:14:01.765846592 -0600 +@@ -47,6 +47,7 @@ + #include "qdatastream.h" + #endif // QT_H + ++#include <cstddef> + #ifndef QT_NO_STL + #include <iterator> + #include <list> +diff -up qt-x11-free-3.3.8b/src/tools/qvaluevector.h.cstddef qt-x11-free-3.3.8b/src/tools/qvaluevector.h +--- qt-x11-free-3.3.8b/src/tools/qvaluevector.h.cstddef 2008-01-15 13:09:13.000000000 -0600 ++++ qt-x11-free-3.3.8b/src/tools/qvaluevector.h 2011-01-30 21:14:01.765846592 -0600 +@@ -45,6 +45,7 @@ + #include "qdatastream.h" + #endif // QT_H + ++#include <cstddef> + #ifndef QT_NO_STL + #include <vector> + #endif diff --git a/testing/qt3/mysql.patch b/testing/qt3/mysql.patch new file mode 100644 index 000000000..5f61edc67 --- /dev/null +++ b/testing/qt3/mysql.patch @@ -0,0 +1,47 @@ +--- src/sql/drivers/mysql/qsql_mysql.cpp ++++ src/sql/drivers/mysql/qsql_mysql.cpp +@@ -37,7 +37,6 @@ + #include "qsql_mysql.h" + #include <private/qsqlextension_p.h> + +-#include <qapplication.h> + #include <qdatetime.h> + #include <qvaluevector.h> + #include <qsqlrecord.h> +@@ -341,14 +340,6 @@ int QMYSQLResult::numRowsAffected() + } + + ///////////////////////////////////////////////////////// +-static void qServerEnd() +-{ +-#ifndef Q_NO_MYSQL_EMBEDDED +-# if MYSQL_VERSION_ID >= 40000 +- mysql_server_end(); +-# endif // MYSQL_VERSION_ID +-#endif // Q_NO_MYSQL_EMBEDDED +-} + + static void qServerInit() + { +@@ -366,9 +357,7 @@ static void qServerInit() + qWarning( "QMYSQLDriver::qServerInit: unable to start server." ); + # endif + } +- qAddPostRoutine(qServerEnd); + init = TRUE; +- + # endif // MYSQL_VERSION_ID + #endif // Q_NO_MYSQL_EMBEDDED + } +@@ -411,6 +400,11 @@ QMYSQLDriver::~QMYSQLDriver() + QSqlOpenExtension *ext = qSqlOpenExtDict()->take( this ); + delete ext; + } ++#ifndef Q_NO_MYSQL_EMBEDDED ++# if MYSQL_VERSION_ID > 40000 ++ mysql_server_end(); ++# endif ++#endif + } + + bool QMYSQLDriver::hasFeature( DriverFeature f ) const diff --git a/testing/qt3/qt-copy-kde-patches.tar.bz2 b/testing/qt3/qt-copy-kde-patches.tar.bz2 Binary files differnew file mode 100644 index 000000000..19d899963 --- /dev/null +++ b/testing/qt3/qt-copy-kde-patches.tar.bz2 diff --git a/testing/qt3/qt-font-default-subst.diff b/testing/qt3/qt-font-default-subst.diff new file mode 100644 index 000000000..3e286f74e --- /dev/null +++ b/testing/qt3/qt-font-default-subst.diff @@ -0,0 +1,77 @@ +--- src/kernel/qfontdatabase_x11.cpp ++++ src/kernel/qfontdatabase_x11.cpp +@@ -1589,15 +1589,6 @@ QFontEngine *loadEngine( QFont::Script s + if (script == QFont::Latin) + // add Euro character + FcCharSetAddChar(cs, 0x20ac); +- if (script == QFont::Han_SimplifiedChinese) +- FcCharSetAddChar(cs, 0x3400); +- if (script == QFont::Han_TraditionalChinese){ +- FcCharSetAddChar(cs, 0x3435); +- FcCharSetAddChar(cs, 0xE000); +- FcCharSetAddChar(cs, 0xF6B1); +- } +- if (script == QFont::MiscellaneousSymbols) +- FcCharSetAddChar(cs, 0x2714); + FcPatternAddCharSet(pattern, FC_CHARSET, cs); + FcCharSetDestroy(cs); + } +@@ -1813,7 +1804,11 @@ static QFontEngine *loadFontConfigFont(c + FcPatternPrint(pattern); + #endif + ++ // XftFontMatch calls the right ConfigSubstitute variants, but as we use ++ // FcFontMatch/Sort here we have to do it manually. + FcConfigSubstitute(0, pattern, FcMatchPattern); ++ XftDefaultSubstitute(QPaintDevice::x11AppDisplay(), QPaintDevice::x11AppScreen(), pattern); ++ + // qDebug("1: pattern contains:"); + // FcPatternPrint(pattern); + +@@ -1847,10 +1842,6 @@ static QFontEngine *loadFontConfigFont(c + value.u.s = (const FcChar8 *)cs.data(); + FcPatternAddWeak(pattern, FC_FAMILY, value, FcTrue); + } +-#ifdef FONT_MATCH_DEBUG +- printf("final pattern contains:\n"); +- FcPatternPrint(pattern); +-#endif + } + + if (script != QFont::Unicode) { +@@ -1860,19 +1851,15 @@ static QFontEngine *loadFontConfigFont(c + if (script == QFont::Latin) + // add Euro character + FcCharSetAddChar(cs, 0x20ac); +- if (script == QFont::Han_SimplifiedChinese) +- FcCharSetAddChar(cs, 0x3400); +- if (script == QFont::Han_TraditionalChinese) { +- FcCharSetAddChar(cs, 0x3435); +- FcCharSetAddChar(cs, 0xE000); +- FcCharSetAddChar(cs, 0xF6B1); +- } +- if (script == QFont::MiscellaneousSymbols) +- FcCharSetAddChar(cs, 0x2714); + FcPatternAddCharSet(pattern, FC_CHARSET, cs); + FcCharSetDestroy(cs); + } + ++#ifdef FONT_MATCH_DEBUG ++ printf("final pattern contains:\n"); ++ FcPatternPrint(pattern); ++#endif ++ + QFontEngine *fe = 0; + + for( int jj = (FcGetVersion() >= 20392 ? 0 : 1); jj < 2; ++jj ) { +--- src/kernel/qfontdatabase.cpp ++++ src/kernel/qfontdatabase.cpp +@@ -554,7 +554,7 @@ static const unsigned short sample_chars + // GeometricSymbols, + { 0x2500, 0x0 }, + // MiscellaneousSymbols, +- { 0x2640, 0x0 }, ++ { 0x2640, 0x2714, 0x0 }, + // EnclosedAndSquare, + { 0x2460, 0x0 }, + // Braille, diff --git a/testing/qt3/qt-odbc.patch b/testing/qt3/qt-odbc.patch new file mode 100644 index 000000000..6f21e3cf1 --- /dev/null +++ b/testing/qt3/qt-odbc.patch @@ -0,0 +1,19 @@ +diff -up qt-x11-free-3.3.8/src/sql/drivers/odbc/qsql_odbc.cpp.orig qt-x11-free-3.3.8/src/sql/drivers/odbc/qsql_odbc.cpp +--- qt-x11-free-3.3.8/src/sql/drivers/odbc/qsql_odbc.cpp.orig 2009-02-24 11:32:27.000000000 +0100 ++++ qt-x11-free-3.3.8/src/sql/drivers/odbc/qsql_odbc.cpp 2009-02-24 11:33:43.000000000 +0100 +@@ -57,13 +57,13 @@ + #endif + + // newer platform SDKs use SQLLEN instead of SQLINTEGER +-#ifdef SQLLEN ++#if defined(SQLLEN) || defined(Q_OS_WIN64) || defined(Q_OS_UNIX) + # define QSQLLEN SQLLEN + #else + # define QSQLLEN SQLINTEGER + #endif + +-#ifdef SQLULEN ++#if defined(SQLULEN) || defined(Q_OS_WIN64) || defined(Q_OS_UNIX) + # define QSQLULEN SQLULEN + #else + # define QSQLULEN SQLUINTEGER diff --git a/testing/qt3/qt-patches.tar.bz2 b/testing/qt3/qt-patches.tar.bz2 Binary files differnew file mode 100644 index 000000000..3f4aee171 --- /dev/null +++ b/testing/qt3/qt-patches.tar.bz2 diff --git a/testing/qt3/qt.install b/testing/qt3/qt.install new file mode 100644 index 000000000..6d042daae --- /dev/null +++ b/testing/qt3/qt.install @@ -0,0 +1,12 @@ +post_install() { + post_remove +} + +post_upgrade() { + post_remove +} + +post_remove() { + # this can be removed in future versions + sed -e '/\/opt\/qt\/lib/d' -i etc/ld.so.conf +} diff --git a/testing/qt3/qt.profile b/testing/qt3/qt.profile new file mode 100644 index 000000000..ed4d232ae --- /dev/null +++ b/testing/qt3/qt.profile @@ -0,0 +1,4 @@ +export QTDIR=/opt/qt +export QT_XFT=true +export PATH=$PATH:$QTDIR/bin +export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/qt/lib/pkgconfig diff --git a/testing/qt3/qt3-png14.patch b/testing/qt3/qt3-png14.patch new file mode 100644 index 000000000..e8a194529 --- /dev/null +++ b/testing/qt3/qt3-png14.patch @@ -0,0 +1,33 @@ +--- src/kernel/qpngio.cpp.orig 2010-01-16 22:02:41.000000000 +0100 ++++ src/kernel/qpngio.cpp 2010-01-16 22:03:56.000000000 +0100 +@@ -159,7 +159,7 @@ + image.setColor( i, qRgba(c,c,c,0xff) ); + } + if ( png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS) ) { +- const int g = info_ptr->trans_values.gray; ++ const int g = info_ptr->trans_color.gray; + if (g < ncols) { + image.setAlphaBuffer(TRUE); + image.setColor(g, image.color(g) & RGB_MASK); +@@ -187,7 +187,7 @@ + info_ptr->palette[i].red, + info_ptr->palette[i].green, + info_ptr->palette[i].blue, +- info_ptr->trans[i] ++ info_ptr->trans_alpha[i] + ) + ); + i++; +@@ -321,9 +321,9 @@ + png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS) + if (image.depth()==32 && png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) { + QRgb trans = 0xFF000000 | qRgb( +- (info_ptr->trans_values.red << 8 >> bit_depth)&0xff, +- (info_ptr->trans_values.green << 8 >> bit_depth)&0xff, +- (info_ptr->trans_values.blue << 8 >> bit_depth)&0xff); ++ (info_ptr->trans_color.red << 8 >> bit_depth)&0xff, ++ (info_ptr->trans_color.green << 8 >> bit_depth)&0xff, ++ (info_ptr->trans_color.blue << 8 >> bit_depth)&0xff); + for (uint y=0; y<height; y++) { + for (uint x=0; x<info_ptr->width; x++) { + if (((uint**)jt)[y][x] == trans) { diff --git a/testing/qt3/utf8-bug-qt3.diff b/testing/qt3/utf8-bug-qt3.diff new file mode 100644 index 000000000..43e84a99f --- /dev/null +++ b/testing/qt3/utf8-bug-qt3.diff @@ -0,0 +1,101 @@ +--- src/codecs/qutfcodec.cpp ++++ src/codecs/qutfcodec.cpp +@@ -154,6 +154,7 @@ + + class QUtf8Decoder : public QTextDecoder { + uint uc; ++ uint min_uc; + int need; + bool headerDone; + public: +@@ -167,8 +168,9 @@ + result.setLength( len ); // worst case + QChar *qch = (QChar *)result.unicode(); + uchar ch; ++ int error = -1; + for (int i=0; i<len; i++) { +- ch = *chars++; ++ ch = chars[i]; + if (need) { + if ( (ch&0xc0) == 0x80 ) { + uc = (uc << 6) | (ch & 0x3f); +@@ -182,6 +184,8 @@ + *qch++ = QChar(high); + *qch++ = QChar(low); + headerDone = TRUE; ++ } else if ((uc < min_uc) || (uc >= 0xd800 && uc <= 0xdfff) || (uc >= 0xfffe)) { ++ *qch++ = QChar::replacement; + } else { + if (headerDone || QChar(uc) != QChar::byteOrderMark) + *qch++ = uc; +@@ -190,6 +194,7 @@ + } + } else { + // error ++ i = error; + *qch++ = QChar::replacement; + need = 0; + } +@@ -200,12 +205,21 @@ + } else if ((ch & 0xe0) == 0xc0) { + uc = ch & 0x1f; + need = 1; ++ error = i; ++ min_uc = 0x80; + } else if ((ch & 0xf0) == 0xe0) { + uc = ch & 0x0f; + need = 2; ++ error = i; ++ min_uc = 0x800; + } else if ((ch&0xf8) == 0xf0) { + uc = ch & 0x07; + need = 3; ++ error = i; ++ min_uc = 0x10000; ++ } else { ++ // error ++ *qch++ = QChar::replacement; + } + } + } +--- src/tools/qstring.cpp ++++ src/tools/qstring.cpp +@@ -5805,6 +5805,7 @@ + result.setLength( len ); // worst case + QChar *qch = (QChar *)result.unicode(); + uint uc = 0; ++ uint min_uc = 0; + int need = 0; + int error = -1; + uchar ch; +@@ -5822,6 +5823,12 @@ + unsigned short low = uc%0x400 + 0xdc00; + *qch++ = QChar(high); + *qch++ = QChar(low); ++ } else if (uc < min_uc || (uc >= 0xd800 && uc <= 0xdfff) || (uc >= 0xfffe)) { ++ // overlong seqence, UTF16 surrogate or BOM ++ i = error; ++ qch = addOne(qch, result); ++ *qch++ = QChar(0xdbff); ++ *qch++ = QChar(0xde00+((uchar)utf8[i])); + } else { + *qch++ = uc; + } +@@ -5844,14 +5851,17 @@ + uc = ch & 0x1f; + need = 1; + error = i; ++ min_uc = 0x80; + } else if ((ch & 0xf0) == 0xe0) { + uc = ch & 0x0f; + need = 2; + error = i; ++ min_uc = 0x800; + } else if ((ch&0xf8) == 0xf0) { + uc = ch & 0x07; + need = 3; + error = i; ++ min_uc = 0x10000; + } else { + // Error + qch = addOne(qch, result); diff --git a/testing/qtwebkit/PKGBUILD b/testing/qtwebkit/PKGBUILD new file mode 100644 index 000000000..80cca8b44 --- /dev/null +++ b/testing/qtwebkit/PKGBUILD @@ -0,0 +1,38 @@ +# $Id: PKGBUILD 145209 2011-12-19 18:03:48Z andrea $ +# Maintainer: Andrea Scarpino <andrea@archlinux.org> + +pkgname=qtwebkit +pkgver=2.2.0 +pkgrel=3 +arch=('i686' 'x86_64') +url='http://trac.webkit.org/wiki/QtWebKit' +pkgdesc='An open source web browser engine (Qt port)' +license=('LGPL2.1' 'GPL3') +depends=('qt' 'gperf' 'bison' 'phonon' 'gstreamer0.10-base') +makedepends=('python2' 'mesa' 'chrpath') +conflicts=('qt<4.8') +source=("http://get.qt.nokia.com/${pkgname}/QtWebKit-${pkgver}.tar.gz" + 'python2-path.patch') +sha1sums=('3582f3a8b593140af004a19479f5ec19693b3df7' + 'b0ef3d5596171e3900a685df9bcfac3068ad6330') + +build() { + cd "${srcdir}"/QtWebKit-${pkgver} + + patch -p1 -i "${srcdir}"/python2-path.patch + + cd Tools/Scripts + ./build-webkit --qt \ + --prefix=/usr \ + --makeargs="${MAKEFLAGS}" \ + --release \ + --3d-canvas +} + +package() { + cd "${srcdir}"/QtWebKit-${pkgver} + make INSTALL_ROOT="${pkgdir}" -C WebKitBuild/Release install + + # Fix RPATH + chrpath -r /usr/lib/ "${pkgdir}"/usr/lib/qt/imports/QtWebKit/libqmlwebkitplugin.so +} diff --git a/testing/qtwebkit/python2-path.patch b/testing/qtwebkit/python2-path.patch new file mode 100644 index 000000000..2e270e6fc --- /dev/null +++ b/testing/qtwebkit/python2-path.patch @@ -0,0 +1,29 @@ +--- QtWebKit-2.2.0/Source/JavaScriptCore/DerivedSources.pro~ 2011-10-20 22:39:56.044519075 +0000 ++++ QtWebKit-2.2.0/Source/JavaScriptCore/DerivedSources.pro 2011-10-20 22:41:21.302047082 +0000 +@@ -88,5 +88,5 @@ + retgen.output = $$JSC_GENERATED_SOURCES_DIR/RegExpJitTables.h + retgen.wkScript = $$PWD/create_regex_tables + retgen.input = retgen.wkScript +-retgen.commands = python $$retgen.wkScript > ${QMAKE_FILE_OUT} ++retgen.commands = python2 $$retgen.wkScript > ${QMAKE_FILE_OUT} + addExtraCompiler(retgen) +--- QtWebKit-2.2.0/Source/WebCore/CodeGenerators.pri~ 2011-10-20 22:44:23.827225580 +0000 ++++ QtWebKit-2.2.0/Source/WebCore/CodeGenerators.pri 2011-10-20 22:44:38.550707819 +0000 +@@ -640,7 +640,7 @@ + inspectorJSON.output = $${WC_GENERATED_SOURCES_DIR}/Inspector.idl + inspectorJSON.input = INSPECTOR_JSON + inspectorJSON.wkScript = $$PWD/inspector/generate-inspector-idl +-inspectorJSON.commands = python $$inspectorJSON.wkScript -o $${WC_GENERATED_SOURCES_DIR}/Inspector.idl $$PWD/inspector/Inspector.json ++inspectorJSON.commands = python2 $$inspectorJSON.wkScript -o $${WC_GENERATED_SOURCES_DIR}/Inspector.idl $$PWD/inspector/Inspector.json + inspectorJSON.depends = $$PWD/inspector/generate-inspector-idl + inspectorJSON.wkAddOutputToSources = false + addExtraCompiler(inspectorJSON) +@@ -723,7 +723,7 @@ + entities.output = $${WC_GENERATED_SOURCES_DIR}/HTMLEntityTable.cpp + entities.input = HTML_ENTITIES + entities.wkScript = $$PWD/html/parser/create-html-entity-table +-entities.commands = python $$entities.wkScript -o $${WC_GENERATED_SOURCES_DIR}/HTMLEntityTable.cpp $$HTML_ENTITIES ++entities.commands = python2 $$entities.wkScript -o $${WC_GENERATED_SOURCES_DIR}/HTMLEntityTable.cpp $$HTML_ENTITIES + entities.clean = ${QMAKE_FILE_OUT} + entities.depends = $$PWD/html/parser/create-html-entity-table + addExtraCompiler(entities) diff --git a/testing/redland/PKGBUILD b/testing/redland/PKGBUILD new file mode 100644 index 000000000..cbc431c39 --- /dev/null +++ b/testing/redland/PKGBUILD @@ -0,0 +1,79 @@ +# $Id: PKGBUILD 145231 2011-12-19 18:04:25Z andrea $ +# Maintainer: AndyRTR <andyrtr@archlinux.org> +# Contributor: Francois Charette <francois.archlinux.org> + +pkgbase=redland +epoch=1 +pkgname=('redland' 'redland-storage-mysql' 'redland-storage-postgresql' 'redland-storage-virtuoso' 'redland-storage-sqlite') +pkgver=1.0.15 +pkgrel=2 +url="http://librdf.org/" +license=("GPL") +arch=('i686' 'x86_64') +makedepends=('rasqal>=0.9.26' 'raptor>=2.0.6' 'db>=5.2' 'postgresql-libs' 'libmysqlclient' 'unixodbc' 'sqlite3') +options=('!libtool') +source=(http://download.librdf.org/source/$pkgname-$pkgver.tar.gz{,.asc} + rpath.diff) +sha1sums=('e93d6fafaeebdf9f15a1044be6f4a88270f007af' + '3aeef38a7247ae33db6a0a19511ef4132240164b' + 'f5db05c925b6bcd6402d5abd75c648b137f069c7') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + ./configure --prefix=/usr \ + --enable-release \ + --disable-static \ + --with-raptor=system \ + --with-rasqal=system \ + --with-sqlite=3 + + # nuke rpath + patch -Np0 -i "${srcdir}/rpath.diff" + + make +} + +package_redland() { + pkgdesc="Library that provides a high-level interface to RDF data" + depends=('rasqal>=0.9.26' 'raptor>=2.0.6' 'libltdl') + + cd "${srcdir}/${pkgbase}-${pkgver}" + make DESTDIR="${pkgdir}" install + rm -rf "${pkgdir}/usr/lib/redland" +} + +package_redland-storage-mysql() { + pkgdesc="MySQL storage support for Redland" + depends=('redland' 'libmysqlclient') + + cd "${srcdir}/${pkgbase}-${pkgver}" + install -dm755 "${pkgdir}/usr/lib/redland" + install -m755 src/.libs/librdf_storage_mysql.so "${pkgdir}/usr/lib/redland/librdf_storage_mysql.so" +} + +package_redland-storage-postgresql() { + pkgdesc="PostgreSQL storage support for Redland" + depends=('redland' 'postgresql-libs') + + cd "${srcdir}/${pkgbase}-${pkgver}" + install -dm755 "${pkgdir}/usr/lib/redland" + install -m755 src/.libs/librdf_storage_postgresql.so "${pkgdir}/usr/lib/redland/" +} + +package_redland-storage-virtuoso() { + pkgdesc="Virtuoso storage support for Redland" + depends=('redland' 'unixodbc' 'db') + + cd "${srcdir}/${pkgbase}-${pkgver}" + install -dm755 "${pkgdir}/usr/lib/redland" + install -m755 src/.libs/librdf_storage_virtuoso.so "${pkgdir}/usr/lib/redland/" +} + +package_redland-storage-sqlite() { + pkgdesc="SQLite storage support for Redland" + depends=('redland' 'sqlite3' 'db') + + cd "${srcdir}/${pkgbase}-${pkgver}" + install -dm755 "${pkgdir}/usr/lib/redland" + install -m755 src/.libs/librdf_storage_sqlite.so "${pkgdir}/usr/lib/redland/" +} diff --git a/testing/redland/rpath.diff b/testing/redland/rpath.diff new file mode 100644 index 000000000..831bc80ed --- /dev/null +++ b/testing/redland/rpath.diff @@ -0,0 +1,11 @@ +--- libtool 2011-02-20 10:46:47.000000000 +0100 ++++ libtool.new 2011-02-20 10:52:58.285764909 +0100 +@@ -324,7 +324,7 @@ + + # Flag to hardcode $libdir into a binary during linking. + # This must work even if $libdir does not exist +-hardcode_libdir_flag_spec="\${wl}-rpath \${wl}\$libdir" ++hardcode_libdir_flag_spec=" " + + # If ld is used when linking, flag to hardcode $libdir into a binary + # during linking. This must work even if $libdir does not exist. diff --git a/testing/shadow/LICENSE b/testing/shadow/LICENSE deleted file mode 100644 index c5ab15a56..000000000 --- a/testing/shadow/LICENSE +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 1990 - 1994, Julianne Frances Haugh - * Copyright (c) 1996 - 2000, Marek Michałkiewicz - * Copyright (c) 2001 - 2006, Tomasz Kłoczko - * Copyright (c) 2007 - 2009, Nicolas François - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the copyright holders or contributors may not be used to - * endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ diff --git a/testing/shadow/PKGBUILD b/testing/shadow/PKGBUILD deleted file mode 100644 index c7196a385..000000000 --- a/testing/shadow/PKGBUILD +++ /dev/null @@ -1,107 +0,0 @@ -# $Id: PKGBUILD 144103 2011-12-04 01:16:49Z dreisner $ -# Maintainer: Dave Reisner <dreisner@archlinux.org> -# Maintainer: Aaron Griffin <aaron@archlinux.org> - -pkgname=shadow -pkgver=4.1.4.3 -pkgrel=5 -pkgdesc="Password and account management tool suite with support for shadow files and PAM" -arch=('i686' 'x86_64') -url='http://pkg-shadow.alioth.debian.org/' -license=('BSD') -groups=('base') -depends=('bash' 'pam' 'acl') -backup=(etc/login.defs - etc/pam.d/{chage,login,passwd,shadow,useradd,usermod,userdel} - etc/pam.d/{chpasswd,newusers,groupadd,groupdel,groupmod} - etc/pam.d/{chfn,chgpasswd,groupmems,chsh} - etc/default/useradd) -options=('!libtool') -install=shadow.install -#http://pkg-shadow.alioth.debian.org/releases/shadow-$pkgver.tar.bz2 -# shadow 4.1.4.3 is just shadow 4.1.4.2 with shadow_CVE-2011-0721.patch applied -source=(ftp://ftp.archlinux.org/other/shadow/shadow_4.1.4.2+svn3283.orig.tar.gz - adduser chgpasswd chpasswd defaults.pam login login.defs newusers - passwd shadow.cron.daily useradd.defaults LICENSE - xstrdup.patch shadow_CVE-2011-0721.patch shadow-strncpy-usage.patch - shadow-add-missing-include.patch) -sha1sums=('8b704b8f07718e329205f23d457c3121c0f3679e' - '78ec184a499f9708adcfcf0b7a3b22a60bf39f91' - '4ad0e059406a305c8640ed30d93c2a1f62c2f4ad' - '12427b1ca92a9b85ca8202239f0d9f50198b818f' - '0e56fed7fc93572c6bf0d8f3b099166558bb46f1' - '895aad07c192b288b457e19dd7b8c55841b4ad22' - 'e5cab2118ecb1e61874cde842d7d04d1003f35cb' - '12427b1ca92a9b85ca8202239f0d9f50198b818f' - '611be25d91c3f8f307c7fe2485d5f781e5dee75f' - '5d83ba7e11c765c951867cbe00b0ae7ff57148fa' - '9ae93de5987dd0ae428f0cc1a5a5a5cd53583f19' - '33a6cf1e44a1410e5c9726c89e5de68b78f5f922' - '6010fffeed1fc6673ad9875492e1193b1a847b53' - '6bfe6528391eb38d338beacedd620407877b637d' - '9db9e62ad173f31e1039121c0124cf60826ffd7e' - '0697a21f7519de30821da7772677035652df4ad2') - -build() { - cd "$srcdir/$pkgname-4.1.4.2+svn3283" - - #Ugh, force this to build shared libraries, for god's sake - sed -i "s/noinst_LTLIBRARIES/lib_LTLIBRARIES/g" lib/Makefile.am - libtoolize - autoreconf - export LDFLAGS="$LDFLAGS -lcrypt" - - patch -p1 -i "$srcdir/xstrdup.patch" - patch -p1 -i "$srcdir/shadow_CVE-2011-0721.patch" - patch -p1 -i "$srcdir/shadow-strncpy-usage.patch" - patch -p1 -i "$srcdir/shadow-add-missing-include.patch" - - # supress etc/pam.d/*, we provide our own - sed -i '/^SUBDIRS/s/pam.d//' etc/Makefile.in - - ./configure \ - --prefix=/usr --libdir=/lib \ - --mandir=/usr/share/man --sysconfdir=/etc \ - --enable-shared --disable-static \ - --with-libpam --without-selinux - make -} - -package() { - cd "$srcdir/$pkgname-4.1.4.2+svn3283" - make DESTDIR="$pkgdir" install - - # license - install -Dm644 "$srcdir/LICENSE" "$pkgdir/usr/share/licenses/shadow/LICENSE" - - # interactive useradd - install -Dm755 "$srcdir/adduser" "$pkgdir/usr/sbin/adduser" - - # useradd defaults - install -Dm644 "$srcdir/useradd.defaults" "$pkgdir/etc/default/useradd" - - # cron job - install -Dm744 "$srcdir/shadow.cron.daily" "$pkgdir/etc/cron.daily/shadow" - - # login.defs - install -Dm644 "$srcdir/login.defs" "$pkgdir/etc/login.defs" - - # PAM config - custom - install -Dm644 "$srcdir/login" "$pkgdir/etc/pam.d/login" - install -Dm644 "$srcdir/passwd" "$pkgdir/etc/pam.d/passwd" - install -Dm644 "$srcdir/chgpasswd" "$pkgdir/etc/pam.d/chgpasswd" - install -Dm644 "$srcdir/chpasswd" "$pkgdir/etc/pam.d/chpasswd" - install -Dm644 "$srcdir/newusers" "$pkgdir/etc/pam.d/newusers" - # PAM config - from tarball - install -Dm644 etc/pam.d/groupmems "$pkgdir/etc/pam.d/groupmems" - - # we use the 'useradd' PAM file for other similar utilities - for file in chage chfn chsh groupadd groupdel groupmod shadow \ - useradd usermod userdel; do - install -Dm644 "$srcdir/defaults.pam" "$pkgdir/etc/pam.d/$file" - done - - # Remove su - using su from coreutils instead - rm "$pkgdir/bin/su" - find "$pkgdir/usr/share/man" -name 'su.1' -delete -} diff --git a/testing/shadow/adduser b/testing/shadow/adduser deleted file mode 100644 index a5d7fd4fa..000000000 --- a/testing/shadow/adduser +++ /dev/null @@ -1,399 +0,0 @@ -#!/bin/bash -# -# Copyright 1995 Hrvoje Dogan, Croatia. -# Copyright 2002, 2003, 2004 Stuart Winter, West Midlands, England, UK. -# Copyright 2004 Slackware Linux, Inc., Concord, CA, USA -# All rights reserved. -# -# Redistribution and use of this script, with or without modification, is -# permitted provided that the following conditions are met: -# -# 1. Redistributions of this script must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED -# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# -# -########################################################################## -# Program: /usr/sbin/adduser -# Purpose: Interactive front end to /usr/sbin/useradd for Slackware Linux -# Author : Stuart Winter <stuart@polplex.co.uk> -# Based on the original Slackware adduser by Hrvoje Dogan -# with modifications by Patrick Volkerding -# Version: 1.09 -########################################################################## -# Usage..: adduser [<new_user_name>] -########################################################################## -# History # -########### -# v1.09 - 07/06/04 -# * Added standard Slackware script licence to the head of this file. -# v1.08 - 25/04/04 -# * Disallow user names that begin with a numeric because useradd -# (from shadow v4.03) does not allow them. <sw> -# v1.07 - 07/03/03 -# * When supplying a null string for the uid (meaning 'Choose next available'), -# if there were file names in the range 'a-z' in the pwd then the -# egrep command considered these files rather than the null string. -# The egrep expression is now in quotes. -# Reported & fixed by Vadim O. Ustiansky <sw> -# v1.06 - 31/03/03 -# * Ask to chown user.group the home directory if it already exists. -# This helps reduce later confusion when adding users whose home dir -# already exists (mounted partition for example) and is owned -# by a user other than the user to which the directory is being -# assigned as home. Default is not to chown. -# Brought to my attention by mRgOBLIN. <sw> -# v1.05 - 04/01/03 -# * Advise & prevent users from creating logins with '.' characters -# in the user name. <sw> -# * Made pending account creation info look neater <sw> -# v1.04 - 09/06/02 -# * Catered for shadow-4.0.3's 'useradd' binary that no longer -# will let you create a user that has any uppercase chars in it -# This was reported on the userlocal.org forums -# by 'xcp' - thanks. <sw,pjv> -# v1.03 - 20/05/02 -# * Support 'broken' (null lines in) /etc/passwd and -# /etc/group files <sw> -# * For recycling UIDs (default still 'off'), we now look in -# /etc/login.defs for the UID_MIN value and use it -# If not found then default to 1000 <sw> -# v1.02 - 10/04/02 -# * Fix user-specified UID bug. <pjv> -# v1.01 - 23/03/02 -# * Match Slackware indenting style, simplify. <pjv> -# v1.00 - 22/03/02 -# * Created -####################################################################### - -# Path to files -pfile=/etc/passwd -gfile=/etc/group -sfile=/etc/shells - -# Paths to binaries -useradd=/usr/sbin/useradd -chfn=/usr/bin/chfn -passwd=/usr/bin/passwd - -# Defaults -defhome=/home -defshell=/bin/bash -defgroup=users - -# Determine what the minimum UID is (for UID recycling) -# (we ignore it if it's not at the beginning of the line (i.e. commented out with #)) -export recycleUIDMIN="$(grep ^UID_MIN /etc/login.defs | awk '{print $2}' 2>/dev/null)" -# If we couldn't find it, set it to the default of 1000 -if [ -z "$recycleUIDMIN" ]; then - export recycleUIDMIN=1000 # this is the default from Slackware's /etc/login.defs -fi - - -# This setting enables the 'recycling' of older unused UIDs. -# When you userdel a user, it removes it from passwd and shadow but it will -# never get used again unless you specify it expliticly -- useradd (appears to) just -# look at the last line in passwd and increment the uid. I like the idea of -# recycling uids but you may have very good reasons not to (old forgotten -# confidential files still on the system could then be owned by this new user). -# We'll set this to no because this is what the original adduser shell script -# did and it's what users expect. -recycleuids=no - -# Function to read keyboard input. -# bash1 is broken (even ash will take read -ep!), so we work around -# it (even though bash1 is no longer supported on Slackware). -function get_input() { - local output - if [ "`echo $BASH_VERSION | cut -b1`" = "1" ]; then - echo -n "${1} " >&2 # fudge for use with bash v1 - read output - else # this should work with any other /bin/sh - read -ep "${1} " output - fi - echo $output -} - -# Function to display the account info -function display () { - local goose - goose="$(echo $2 | cut -d ' ' -f 2-)" # lop off the prefixed argument useradd needs - echo -n "$1 " - # If it's null then display the 'other' information - if [ -z "$goose" -a ! -z "$3" ]; then - echo "$3" - else - echo "$goose" - fi -} - -# Function to check whether groups exist in the /etc/group file -function check_group () { - local got_error group - if [ ! -z "$@" ]; then - for group in $@ ; do - local uid_not_named="" uid_not_num="" - grep -v "$^" $gfile | awk -F: '{print $1}' | grep "^${group}$" >/dev/null 2>&1 || uid_not_named=yes - grep -v "$^" $gfile | awk -F: '{print $3}' | grep "^${group}$" >/dev/null 2>&1 || uid_not_num=yes - if [ ! -z "$uid_not_named" -a ! -z "$uid_not_num" ]; then - echo "- Group '$group' does not exist" - got_error=yes - fi - done - fi - # Return exit code of 1 if at least one of the groups didn't exist - if [ ! -z "$got_error" ]; then - return 1 - fi -} - -#: Read the login name for the new user :# -# -# Remember that most Mail Transfer Agents are case independant, so having -# 'uSer' and 'user' may cause confusion/things to break. Because of this, -# useradd from shadow-4.0.3 no longer accepts usernames containing uppercase, -# and we must reject them, too. - -# Set the login variable to the command line param -echo -LOGIN="$1" -needinput=yes -while [ ! -z $needinput ]; do - if [ -z "$LOGIN" ]; then - while [ -z "$LOGIN" ]; do LOGIN="$(get_input "Login name for new user []:")" ; done - fi - grep "^${LOGIN}:" $pfile >/dev/null 2>&1 # ensure it's not already used - if [ $? -eq 0 ]; then - echo "- User '$LOGIN' already exists; please choose another" - unset LOGIN - elif [ ! -z "$( echo $LOGIN | grep "^[0-9]" )" ]; then - echo "- User names cannot begin with a number; please choose another" - unset LOGIN - elif [ ! "$LOGIN" = "`echo $LOGIN | tr A-Z a-z`" ]; then # useradd does not allow uppercase - echo "- User '$LOGIN' contains illegal characters (uppercase); please choose another" - unset LOGIN - elif [ ! -z "$( echo $LOGIN | grep '\.' )" ]; then - echo "- User '$LOGIN' contains illegal characters (period/dot); please choose another" - unset LOGIN - else - unset needinput - fi -done - -# Display the user name passed from the shell if it hasn't changed -if [ "$1" = "$LOGIN" ]; then - echo "Login name for new user: $LOGIN" -fi - -#: Get the UID for the user & ensure it's not already in use :# -# -# Whilst we _can_ allow users with identical UIDs, it's not a 'good thing' because -# when you change password for the uid, it finds the first match in /etc/passwd -# which isn't necessarily the correct user -# -echo -needinput=yes -while [ ! -z "$needinput" ]; do - _UID="$(get_input "User ID ('UID') [ defaults to next available ]:")" - grep -v "^$" $pfile | awk -F: '{print $3}' | grep "^${_UID}$" >/dev/null 2>&1 - if [ $? -eq 0 ]; then - echo "- That UID is already in use; please choose another" - elif [ ! -z "$(echo $_UID | egrep '[A-Za-z]')" ]; then - echo "- UIDs are numerics only" - else - unset needinput - fi -done -# If we were given a UID, then syntax up the variable to pass to useradd -if [ ! -z "$_UID" ]; then - U_ID="-u ${_UID}" -else - # Will we be recycling UIDs? - if [ "$recycleuids" = "yes" ]; then - U_ID="-u $(awk -F: '{uid[$3]=1} END { for (i=ENVIRON["recycleUIDMIN"];i in uid;i++);print i}' $pfile)" - fi -fi - -#: Get the initial group for the user & ensure it exists :# -# -# We check /etc/group for both the text version and the group ID number -echo -needinput=yes -while [ ! -z "$needinput" ]; do - GID="$(get_input "Initial group [ ${defgroup} ]:")" - check_group "$GID" - if [ $? -gt 0 ]; then - echo "- Please choose another" - else - unset needinput - fi -done -# Syntax the variable ready for useradd -if [ -z "$GID" ]; then - GID="-g ${defgroup}" -else - GID="-g ${GID}" -fi - -#: Get additional groups for the user :# -# -echo -needinput=yes -while [ ! -z "$needinput" ]; do - AGID="$(get_input "Additional groups (comma separated) []:")" - AGID="$(echo "$AGID" | tr -d ' ' | tr , ' ')" # fix up for parsing - if [ ! -z "$AGID" ]; then - check_group "$AGID" # check all groups at once (treated as N # of params) - if [ $? -gt 0 ]; then - echo "- Please re-enter the group(s)" - else - unset needinput # we found all groups specified - AGID="-G $(echo "$AGID" | tr ' ' ,)" - fi - else - unset needinput # we don't *have* to have additional groups - fi -done - -#: Get the new user's home dir :# -# -echo -needinput=yes -while [ ! -z "$needinput" ]; do - HME="$(get_input "Home directory [ ${defhome}/${LOGIN} ]")" - if [ -z "$HME" ]; then - HME="${defhome}/${LOGIN}" - fi - # Warn the user if the home dir already exists - if [ -d "$HME" ]; then - echo "- Warning: '$HME' already exists !" - getyn="$(get_input " Do you wish to change the home directory path ? (Y/n) ")" - if [ "$(echo $getyn | grep -i "n")" ]; then - unset needinput - # You're most likely going to only do this if you have the dir *mounted* for this user's $HOME - getyn="$(get_input " Do you want to chown $LOGIN.$( echo $GID | awk '{print $2}') $HME ? (y/N) ")" - if [ "$(echo $getyn | grep -i "y")" ]; then - CHOWNHOMEDIR=$HME # set this to the home directory - fi - fi - else - unset needinput - fi -done -HME="-d ${HME}" - -#: Get the new user's shell :# -echo -needinput=yes -while [ ! -z "$needinput" ]; do - unset got_error - SHL="$(get_input "Shell [ ${defshell} ]")" - if [ -z "$SHL" ]; then - SHL="${defshell}" - fi - # Warn the user if the shell doesn't exist in /etc/shells or as a file - if [ -z "$(grep "^${SHL}$" $sfile)" ]; then - echo "- Warning: ${SHL} is not in ${sfile} (potential problem using FTP)" - got_error=yes - fi - if [ ! -f "$SHL" ]; then - echo "- Warning: ${SHL} does not exist as a file" - got_error=yes - fi - if [ ! -z "$got_error" ]; then - getyn="$(get_input " Do you wish to change the shell ? (Y/n) ")" - if [ "$(echo $getyn | grep -i "n")" ]; then - unset needinput - fi - else - unset needinput - fi -done -SHL="-s ${SHL}" - -#: Get the expiry date :# -echo -needinput=yes -while [ ! -z "$needinput" ]; do - EXP="$(get_input "Expiry date (YYYY-MM-DD) []:")" - if [ ! -z "$EXP" ]; then - # Check to see whether the expiry date is in the valid format - if [ -z "$(echo "$EXP" | grep "^[[:digit:]]\{4\}[-]\?[[:digit:]]\{2\}[-]\?[[:digit:]]\{2\}$")" ]; then - echo "- That is not a valid expiration date" - else - unset needinput - EXP="-e ${EXP}" - fi - else - unset needinput - fi -done - -# Display the info about the new impending account -echo -echo "New account will be created as follows:" -echo -echo "---------------------------------------" -display "Login name.......: " "$LOGIN" -display "UID..............: " "$_UID" "[ Next available ]" -display "Initial group....: " "$GID" -display "Additional groups: " "$AGID" "[ None ]" -display "Home directory...: " "$HME" -display "Shell............: " "$SHL" -display "Expiry date......: " "$EXP" "[ Never ]" -echo - -echo "This is it... if you want to bail out, hit Control-C. Otherwise, press" -echo "ENTER to go ahead and make the account." -read junk - -echo -echo "Creating new account..." -echo -echo - -# Add the account to the system -CMD="$useradd "$HME" -m "$EXP" "$U_ID" "$GID" "$AGID" "$SHL" "$LOGIN"" -$CMD - -if [ $? -gt 0 ]; then - echo "- Error running useradd command -- account not created!" - echo "(cmd: $CMD)" - exit 1 -fi - -# chown the home dir ? We can only do this once the useradd has -# completed otherwise the user name doesn't exist. -if [ ! -z "${CHOWNHOMEDIR}" ]; then - chown "$LOGIN"."$( echo $GID | awk '{print $2}')" "${CHOWNHOMEDIR}" -fi - -# Set the finger information -$chfn "$LOGIN" -if [ $? -gt 0 ]; then - echo "- Warning: an error occurred while setting finger information" -fi - -# Set a password -$passwd "$LOGIN" -if [ $? -gt 0 ]; then - echo "* WARNING: An error occured while setting the password for" - echo " this account. Please manually investigate this *" - exit 1 -fi - -echo -echo -echo "Account setup complete." -exit 0 - diff --git a/testing/shadow/chgpasswd b/testing/shadow/chgpasswd deleted file mode 100644 index 8f49f5cc8..000000000 --- a/testing/shadow/chgpasswd +++ /dev/null @@ -1,4 +0,0 @@ -#%PAM-1.0 -auth sufficient pam_rootok.so -account required pam_permit.so -password include system-auth diff --git a/testing/shadow/chpasswd b/testing/shadow/chpasswd deleted file mode 100644 index 5d447985a..000000000 --- a/testing/shadow/chpasswd +++ /dev/null @@ -1,6 +0,0 @@ -#%PAM-1.0 -auth sufficient pam_rootok.so -auth required pam_unix.so -account required pam_unix.so -session required pam_unix.so -password required pam_unix.so sha512 shadow diff --git a/testing/shadow/defaults.pam b/testing/shadow/defaults.pam deleted file mode 100644 index a7bf8a4a5..000000000 --- a/testing/shadow/defaults.pam +++ /dev/null @@ -1,6 +0,0 @@ -#%PAM-1.0 -auth sufficient pam_rootok.so -auth required pam_unix.so -account required pam_unix.so -session required pam_unix.so -password required pam_permit.so diff --git a/testing/shadow/login b/testing/shadow/login deleted file mode 100644 index b8555f89c..000000000 --- a/testing/shadow/login +++ /dev/null @@ -1,21 +0,0 @@ -#%PAM-1.0 -auth required pam_securetty.so -auth requisite pam_nologin.so -auth required pam_unix.so nullok -auth required pam_tally.so onerr=succeed file=/var/log/faillog -# use this to lockout accounts for 10 minutes after 3 failed attempts -#auth required pam_tally.so deny=2 unlock_time=600 onerr=succeed file=/var/log/faillog -account required pam_access.so -account required pam_time.so -account required pam_unix.so -#password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3 -#password required pam_unix.so sha512 shadow use_authtok -session required pam_unix.so -session required pam_env.so -session required pam_motd.so -session required pam_limits.so -session optional pam_mail.so dir=/var/spool/mail standard -session optional pam_lastlog.so -session optional pam_loginuid.so --session optional pam_ck_connector.so nox11 --session optional pam_systemd.so diff --git a/testing/shadow/login.defs b/testing/shadow/login.defs deleted file mode 100644 index 2500ee447..000000000 --- a/testing/shadow/login.defs +++ /dev/null @@ -1,197 +0,0 @@ -# -# /etc/login.defs - Configuration control definitions for the login package. -# -# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. -# If unspecified, some arbitrary (and possibly incorrect) value will -# be assumed. All other items are optional - if not specified then -# the described action or option will be inhibited. -# -# Comment lines (lines beginning with "#") and blank lines are ignored. -# -# Modified for Linux. --marekm - -# -# Delay in seconds before being allowed another attempt after a login failure -# -FAIL_DELAY 3 - -# -# Enable display of unknown usernames when login failures are recorded. -# -LOG_UNKFAIL_ENAB no - -# -# Enable logging of successful logins -# -LOG_OK_LOGINS no - -# -# Enable "syslog" logging of su activity - in addition to sulog file logging. -# SYSLOG_SG_ENAB does the same for newgrp and sg. -# -SYSLOG_SU_ENAB yes -SYSLOG_SG_ENAB yes - -# -# If defined, either full pathname of a file containing device names or -# a ":" delimited list of device names. Root logins will be allowed only -# upon these devices. -# -CONSOLE /etc/securetty -#CONSOLE console:tty01:tty02:tty03:tty04 - -# -# If defined, all su activity is logged to this file. -# -#SULOG_FILE /var/log/sulog - -# -# If defined, file which maps tty line to TERM environment parameter. -# Each line of the file is in a format something like "vt100 tty01". -# -#TTYTYPE_FILE /etc/ttytype - -# -# If defined, the command name to display when running "su -". For -# example, if this is defined as "su" then a "ps" will display the -# command is "-su". If not defined, then "ps" would display the -# name of the shell actually being run, e.g. something like "-sh". -# -SU_NAME su - -# -# *REQUIRED* -# Directory where mailboxes reside, _or_ name of file, relative to the -# home directory. If you _do_ define both, MAIL_DIR takes precedence. -# QMAIL_DIR is for Qmail -# -#QMAIL_DIR Maildir -MAIL_DIR /var/spool/mail - -# -# If defined, file which inhibits all the usual chatter during the login -# sequence. If a full pathname, then hushed mode will be enabled if the -# user's name or shell are found in the file. If not a full pathname, then -# hushed mode will be enabled if the file exists in the user's home directory. -# -HUSHLOGIN_FILE .hushlogin -#HUSHLOGIN_FILE /etc/hushlogins - -# -# *REQUIRED* The default PATH settings, for superuser and normal users. -# -# (they are minimal, add the rest in the shell startup files) -ENV_SUPATH PATH=/sbin:/bin:/usr/sbin:/usr/bin -ENV_PATH PATH=/bin:/usr/bin - -# -# Terminal permissions -# -# TTYGROUP Login tty will be assigned this group ownership. -# TTYPERM Login tty will be set to this permission. -# -# If you have a "write" program which is "setgid" to a special group -# which owns the terminals, define TTYGROUP to the group number and -# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign -# TTYPERM to either 622 or 600. -# -TTYGROUP tty -TTYPERM 0600 - -# -# Login configuration initializations: -# -# ERASECHAR Terminal ERASE character ('\010' = backspace). -# KILLCHAR Terminal KILL character ('\025' = CTRL/U). -# UMASK Default "umask" value. -# -# The ERASECHAR and KILLCHAR are used only on System V machines. -# The ULIMIT is used only if the system supports it. -# (now it works with setrlimit too; ulimit is in 512-byte units) -# -# Prefix these values with "0" to get octal, "0x" to get hexadecimal. -# -ERASECHAR 0177 -KILLCHAR 025 -UMASK 077 - -# -# Password aging controls: -# -# PASS_MAX_DAYS Maximum number of days a password may be used. -# PASS_MIN_DAYS Minimum number of days allowed between password changes. -# PASS_WARN_AGE Number of days warning given before a password expires. -# -PASS_MAX_DAYS 99999 -PASS_MIN_DAYS 0 -PASS_WARN_AGE 7 - -# -# Min/max values for automatic uid selection in useradd -# -UID_MIN 1000 -UID_MAX 60000 -# System accounts -SYS_UID_MIN 500 -SYS_UID_MAX 999 - -# -# Min/max values for automatic gid selection in groupadd -# -GID_MIN 1000 -GID_MAX 60000 -# System accounts -SYS_GID_MIN 500 -SYS_GID_MAX 999 - -# -# Max number of login retries if password is bad -# -LOGIN_RETRIES 5 - -# -# Max time in seconds for login -# -LOGIN_TIMEOUT 60 - -# -# Which fields may be changed by regular users using chfn - use -# any combination of letters "frwh" (full name, room number, work -# phone, home phone). If not defined, no changes are allowed. -# For backward compatibility, "yes" = "rwh" and "no" = "frwh". -# -CHFN_RESTRICT rwh - -# -# List of groups to add to the user's supplementary group set -# when logging in on the console (as determined by the CONSOLE -# setting). Default is none. -# -# Use with caution - it is possible for users to gain permanent -# access to these groups, even when not logged in on the console. -# How to do it is left as an exercise for the reader... -# -#CONSOLE_GROUPS floppy:audio:cdrom - -# -# Should login be allowed if we can't cd to the home directory? -# Default in no. -# -DEFAULT_HOME yes - -# -# If defined, this command is run when removing a user. -# It should remove any at/cron/print jobs etc. owned by -# the user to be removed (passed as the first argument). -# -#USERDEL_CMD /usr/sbin/userdel_local - -# -# Enable setting of the umask group bits to be the same as owner bits -# (examples: 022 -> 002, 077 -> 007) for non-root users, if the uid is -# the same as gid, and username is the same as the primary group name. -# -# This also enables userdel to remove user groups if no members exist. -# -USERGROUPS_ENAB yes - diff --git a/testing/shadow/newusers b/testing/shadow/newusers deleted file mode 100644 index 5d447985a..000000000 --- a/testing/shadow/newusers +++ /dev/null @@ -1,6 +0,0 @@ -#%PAM-1.0 -auth sufficient pam_rootok.so -auth required pam_unix.so -account required pam_unix.so -session required pam_unix.so -password required pam_unix.so sha512 shadow diff --git a/testing/shadow/passwd b/testing/shadow/passwd deleted file mode 100644 index ab56da496..000000000 --- a/testing/shadow/passwd +++ /dev/null @@ -1,4 +0,0 @@ -#%PAM-1.0 -#password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3 -#password required pam_unix.so sha512 shadow use_authtok -password required pam_unix.so sha512 shadow nullok diff --git a/testing/shadow/shadow-add-missing-include.patch b/testing/shadow/shadow-add-missing-include.patch deleted file mode 100644 index 5c9e946ef..000000000 --- a/testing/shadow/shadow-add-missing-include.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -Naur shadow-4.1.4.2+svn3283/libmisc/copydir.c shadow-4.1.4.2+svn3283.new/libmisc/copydir.c ---- shadow-4.1.4.2+svn3283/libmisc/copydir.c 2010-09-05 11:35:26.000000000 -0400 -+++ shadow-4.1.4.2+svn3283.new/libmisc/copydir.c 2011-06-26 01:26:52.000000000 -0400 -@@ -34,6 +34,7 @@ - - #ident "$Id: copydir.c 3283 2010-09-05 15:34:42Z nekral-guest $" - -+#include <stdarg.h> - #include <assert.h> - #include <sys/stat.h> - #include <sys/types.h> diff --git a/testing/shadow/shadow-strncpy-usage.patch b/testing/shadow/shadow-strncpy-usage.patch deleted file mode 100644 index 46df74ace..000000000 --- a/testing/shadow/shadow-strncpy-usage.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff -ur shadow-4.1.4.3.orig/src/login.c shadow-4.1.4.3/src/login.c ---- shadow-4.1.4.3.orig/src/login.c 2011-03-05 22:17:10.032524948 -0800 -+++ shadow-4.1.4.3/src/login.c 2011-03-05 22:17:59.154342059 -0800 -@@ -748,8 +748,9 @@ - sizeof (loginprompt), - _("%s login: "), hostn); - } else { -+ loginprompt[sizeof (loginprompt) - 1] = '\0'; - strncpy (loginprompt, _("login: "), -- sizeof (loginprompt)); -+ sizeof (loginprompt) - 1); - } - - retcode = pam_set_item (pamh, PAM_USER_PROMPT, loginprompt); -diff -ur shadow-4.1.4.3.orig/src/usermod.c shadow-4.1.4.3/src/usermod.c ---- shadow-4.1.4.3.orig/src/usermod.c 2011-03-05 22:17:10.029191265 -0800 -+++ shadow-4.1.4.3/src/usermod.c 2011-03-05 22:18:42.665576968 -0800 -@@ -182,7 +182,8 @@ - struct tm *tp; - - if ((negativ != NULL) && (date < 0)) { -- strncpy (buf, negativ, maxsize); -+ buf[maxsize - 1] = '\0'; -+ strncpy (buf, negativ, maxsize - 1); - } else { - time_t t = (time_t) date; - tp = gmtime (&t); diff --git a/testing/shadow/shadow.cron.daily b/testing/shadow/shadow.cron.daily deleted file mode 100755 index 1931a793e..000000000 --- a/testing/shadow/shadow.cron.daily +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -# Verify integrity of password and group files -/usr/sbin/pwck -r -/usr/sbin/grpck -r - diff --git a/testing/shadow/shadow.install b/testing/shadow/shadow.install deleted file mode 100644 index e990bfe39..000000000 --- a/testing/shadow/shadow.install +++ /dev/null @@ -1,9 +0,0 @@ -post_upgrade() { - grpck -r >/dev/null 2>&1 - if [ $? -eq 2 ]; then - printf '%s\n' \ - "==> Warning: /etc/group or /etc/gshadow are inconsistant." \ - " Run 'grpck' to correct this." - fi - return 0 -} diff --git a/testing/shadow/shadow_CVE-2011-0721.patch b/testing/shadow/shadow_CVE-2011-0721.patch deleted file mode 100644 index eb9ad80a2..000000000 --- a/testing/shadow/shadow_CVE-2011-0721.patch +++ /dev/null @@ -1,57 +0,0 @@ -Goal: Input sanitization for chfn and chsh - -Fixes: CVE-2011-0721 - -Status wrt upstream: Already applied upstream (4.1.4.3) - ---- a/src/chfn.c -+++ b/src/chfn.c -@@ -551,14 +551,14 @@ - static void check_fields (void) - { - int err; -- err = valid_field (fullnm, ":,="); -+ err = valid_field (fullnm, ":,=\n"); - if (err > 0) { - fprintf (stderr, _("%s: name with non-ASCII characters: '%s'\n"), Prog, fullnm); - } else if (err < 0) { - fprintf (stderr, _("%s: invalid name: '%s'\n"), Prog, fullnm); - fail_exit (E_NOPERM); - } -- err = valid_field (roomno, ":,="); -+ err = valid_field (roomno, ":,=\n"); - if (err > 0) { - fprintf (stderr, _("%s: room number with non-ASCII characters: '%s'\n"), Prog, roomno); - } else if (err < 0) { -@@ -566,17 +566,17 @@ - Prog, roomno); - fail_exit (E_NOPERM); - } -- if (valid_field (workph, ":,=") != 0) { -+ if (valid_field (workph, ":,=\n") != 0) { - fprintf (stderr, _("%s: invalid work phone: '%s'\n"), - Prog, workph); - fail_exit (E_NOPERM); - } -- if (valid_field (homeph, ":,=") != 0) { -+ if (valid_field (homeph, ":,=\n") != 0) { - fprintf (stderr, _("%s: invalid home phone: '%s'\n"), - Prog, homeph); - fail_exit (E_NOPERM); - } -- err = valid_field (slop, ":"); -+ err = valid_field (slop, ":\n"); - if (err > 0) { - fprintf (stderr, _("%s: '%s' contains non-ASCII characters\n"), Prog, slop); - } else if (err < 0) { ---- a/src/chsh. -+++ b/src/chsh.c -@@ -528,7 +528,7 @@ - * users are restricted to using the shells in /etc/shells. - * The shell must be executable by the user. - */ -- if (valid_field (loginsh, ":,=") != 0) { -+ if (valid_field (loginsh, ":,=\n") != 0) { - fprintf (stderr, _("%s: Invalid entry: %s\n"), Prog, loginsh); - fail_exit (1); - } diff --git a/testing/shadow/useradd.defaults b/testing/shadow/useradd.defaults deleted file mode 100644 index b800b1777..000000000 --- a/testing/shadow/useradd.defaults +++ /dev/null @@ -1,9 +0,0 @@ -# useradd defaults file for ArchLinux -# original changes by TomK -GROUP=100 -HOME=/home -INACTIVE=-1 -EXPIRE= -SHELL=/bin/bash -SKEL=/etc/skel -CREATE_MAIL_SPOOL=no diff --git a/testing/shadow/xstrdup.patch b/testing/shadow/xstrdup.patch deleted file mode 100644 index bce434264..000000000 --- a/testing/shadow/xstrdup.patch +++ /dev/null @@ -1,9 +0,0 @@ ---- shadow-4.1.2.1/libmisc/xmalloc.c 2008-08-30 21:55:44.000000000 -0500 -+++ shadow-4.1.2.1/libmisc/xmalloc.c.new 2008-08-30 21:55:36.000000000 -0500 -@@ -61,5 +61,6 @@ - - char *xstrdup (const char *str) - { -+ if(str == NULL) return NULL; - return strcpy (xmalloc (strlen (str) + 1), str); - } diff --git a/testing/subversion/PKGBUILD b/testing/subversion/PKGBUILD deleted file mode 100644 index 9d587905d..000000000 --- a/testing/subversion/PKGBUILD +++ /dev/null @@ -1,79 +0,0 @@ -# $Id: PKGBUILD 144461 2011-12-06 07:12:44Z eric $ -# Maintainer: Paul Mattal <paul@archlinux.org> -# Contributor: Jason Chu <jason@archlinux.org> - -pkgname=subversion -pkgver=1.7.2 -pkgrel=1 -pkgdesc="A Modern Concurrent Version Control System" -arch=('i686' 'x86_64') -license=('APACHE') -depends=('neon' 'apr-util' 'sqlite3' 'file') -optdepends=('libgnome-keyring' 'kdeutils-kwallet' 'bash-completion: for svn bash completion' \ - 'python2: for some hook scripts' 'ruby: for some hook scripts') -makedepends=('krb5' 'apache' 'python2' 'perl' 'swig' 'java-runtime' 'java-environment' - 'autoconf' 'db' 'e2fsprogs' 'libgnome-keyring' 'kdelibs') -backup=('etc/xinetd.d/svn' 'etc/conf.d/svnserve') -url="http://subversion.apache.org/" -provides=('svn') -options=('!makeflags' '!libtool') -source=(http://apache.mirror.rafal.ca/subversion/$pkgname-$pkgver.tar.bz2{,.asc} - svnserve svn svnserve.conf svnmerge.py - subversion.rpath.fix.patch) -sha1sums=('8c0824aeb7f42da1ff4f7cd296877af7f59812bb' - '66293923ddc1b12a43b0e86f6b6a3c23b70df6ae' - '64ba3e6ebafc08ac62f59d788f7a825fdce69573' - '73b36c046c09cec2093354911c89e3ba8056af6c' - 'ad117bf3b2a838a9a678a93fd8db1a066ad46c41' - 'd240228e5755495c26e89d7ef47a75fb097dd040' - '3d1e28408a9abb42af2e531adc0d01ce21acfad6') - -build() { - cd "${srcdir}/${pkgname}-${pkgver}" - export PYTHON=/usr/bin/python2 - - patch -p0 -i ../subversion.rpath.fix.patch - sed -i 's|/usr/bin/env python|/usr/bin/env python2|' tools/hook-scripts/{,mailer/{,tests/}}*.py - - ./configure --prefix=/usr --with-apr=/usr --with-apr-util=/usr \ - --with-zlib=/usr --with-neon=/usr --with-apxs \ - --with-sqlite=/usr --with-berkeley-db=:/usr/include/:/usr/lib:db-5.2 \ - --enable-javahl --with-gnome-keyring --with-kwallet - - make external-all - make LT_LDFLAGS="-L$Fdestdir/usr/lib" local-all - make swig_pydir=/usr/lib/python2.7/site-packages/libsvn \ - swig_pydir_extra=/usr/lib/python2.7/site-packages/svn swig-py swig-pl javahl # swig-rb -} - -#check() { -# cd "${srcdir}/${pkgname}-${pkgver}" -# export LANG=C LC_ALL=C -# make check check-swig-pl check-swig-py check-javahl CLEANUP=yes # check-swig-rb -#} - -package() { - cd "${srcdir}/${pkgname}-${pkgver}" - - export LD_LIBRARY_PATH="${pkgdir}"/usr/lib:$LD_LIBRARY_PATH - make DESTDIR="${pkgdir}" INSTALLDIRS=vendor \ - swig_pydir=/usr/lib/python2.7/site-packages/libsvn \ - swig_pydir_extra=/usr/lib/python2.7/site-packages/svn \ - install install-swig-py install-swig-pl install-javahl # install-swig-rb - - install -d "${pkgdir}"/usr/share/subversion - cp -a tools/hook-scripts "${pkgdir}"/usr/share/subversion/ - rm -f "${pkgdir}"/usr/share/subversion/hook-scripts/*.in - - rm -f "${pkgdir}"/usr/lib/perl5/vendor_perl/auto/SVN/_Core/.packlist - rm -rf "${pkgdir}"/usr/lib/perl5/core_perl - - install -D -m 755 "${srcdir}"/svnserve "${pkgdir}"/etc/rc.d/svnserve - install -D -m 644 "${srcdir}"/svn "${pkgdir}"/etc/xinetd.d/svn - install -D -m 644 "${srcdir}"/svnserve.conf "${pkgdir}"/etc/conf.d/svnserve - install -m 755 "${srcdir}"/svnmerge.py "${pkgdir}"/usr/bin/svnmerge - - # bash completion - install -Dm 644 tools/client-side/bash_completion \ - "${pkgdir}"/etc/bash_completion.d/subversion -} diff --git a/testing/subversion/subversion.rpath.fix.patch b/testing/subversion/subversion.rpath.fix.patch deleted file mode 100644 index ba6ee9e4e..000000000 --- a/testing/subversion/subversion.rpath.fix.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- Makefile.in.orig 2009-02-16 14:10:48.000000000 -0200 -+++ Makefile.in 2009-06-04 00:56:29.000000000 -0300 -@@ -678,6 +678,7 @@ - - $(SWIG_PL_DIR)/native/Makefile: $(SWIG_PL_DIR)/native/Makefile.PL - cd $(SWIG_PL_DIR)/native; $(PERL) Makefile.PL -+ cd $(SWIG_PL_DIR)/native; sed -i 's|LD_RUN_PATH|DIE_RPATH_DIE|g' Makefile{,.{client,delta,fs,ra,repos,wc}} - - swig-pl_DEPS = autogen-swig-pl libsvn_swig_perl \ - $(SWIG_PL_DIR)/native/Makefile diff --git a/testing/subversion/svn b/testing/subversion/svn deleted file mode 100644 index 8988aaf63..000000000 --- a/testing/subversion/svn +++ /dev/null @@ -1,11 +0,0 @@ -service svn -{ - flags = REUSE - socket_type = stream - wait = no - user = root - server = /usr/bin/svnserve - server_args = -i - log_on_failure += USERID - disable = yes -} diff --git a/testing/subversion/svnmerge.py b/testing/subversion/svnmerge.py deleted file mode 100644 index d8931648f..000000000 --- a/testing/subversion/svnmerge.py +++ /dev/null @@ -1,2370 +0,0 @@ -#!/usr/bin/env python2 -# -*- coding: utf-8 -*- -# Copyright (c) 2005, Giovanni Bajo -# Copyright (c) 2004-2005, Awarix, Inc. -# All rights reserved. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA -# -# Author: Archie Cobbs <archie at awarix dot com> -# Rewritten in Python by: Giovanni Bajo <rasky at develer dot com> -# -# Acknowledgments: -# John Belmonte <john at neggie dot net> - metadata and usability -# improvements -# Blair Zajac <blair at orcaware dot com> - random improvements -# Raman Gupta <rocketraman at fastmail dot fm> - bidirectional and transitive -# merging support -# Dustin J. Mitchell <dustin at zmanda dot com> - support for multiple -# location identifier formats -# -# $HeadURL$ -# $LastChangedDate$ -# $LastChangedBy$ -# $LastChangedRevision$ -# -# Requisites: -# svnmerge.py has been tested with all SVN major versions since 1.1 (both -# client and server). It is unknown if it works with previous versions. -# -# Differences from svnmerge.sh: -# - More portable: tested as working in FreeBSD and OS/2. -# - Add double-verbose mode, which shows every svn command executed (-v -v). -# - "svnmerge avail" now only shows commits in source, not also commits in -# other parts of the repository. -# - Add "svnmerge block" to flag some revisions as blocked, so that -# they will not show up anymore in the available list. Added also -# the complementary "svnmerge unblock". -# - "svnmerge avail" has grown two new options: -# -B to display a list of the blocked revisions -# -A to display both the blocked and the available revisions. -# - Improved generated commit message to make it machine parsable even when -# merging commits which are themselves merges. -# - Add --force option to skip working copy check -# - Add --record-only option to "svnmerge merge" to avoid performing -# an actual merge, yet record that a merge happened. -# - Can use a variety of location-identifier formats -# -# TODO: -# - Add "svnmerge avail -R": show logs in reverse order -# -# Information for Hackers: -# -# Identifiers for branches: -# A branch is identified in three ways within this source: -# - as a working copy (variable name usually includes 'dir') -# - as a fully qualified URL -# - as a path identifier (an opaque string indicating a particular path -# in a particular repository; variable name includes 'pathid') -# A "target" is generally user-specified, and may be a working copy or -# a URL. - -import sys, os, getopt, re, types, tempfile, time, locale -from bisect import bisect -from xml.dom import pulldom - -NAME = "svnmerge" -if not hasattr(sys, "version_info") or sys.version_info < (2, 0): - error("requires Python 2.0 or newer") - -# Set up the separator used to separate individual log messages from -# each revision merged into the target location. Also, create a -# regular expression that will find this same separator in already -# committed log messages, so that the separator used for this run of -# svnmerge.py will have one more LOG_SEPARATOR appended to the longest -# separator found in all the commits. -LOG_SEPARATOR = 8 * '.' -LOG_SEPARATOR_RE = re.compile('^((%s)+)' % re.escape(LOG_SEPARATOR), - re.MULTILINE) - -# Each line of the embedded log messages will be prefixed by LOG_LINE_PREFIX. -LOG_LINE_PREFIX = 2 * ' ' - -# Set python to the default locale as per environment settings, same as svn -# TODO we should really parse config and if log-encoding is specified, set -# the locale to match that encoding -locale.setlocale(locale.LC_ALL, '') - -# We want the svn output (such as svn info) to be non-localized -# Using LC_MESSAGES should not affect localized output of svn log, for example -if os.environ.has_key("LC_ALL"): - del os.environ["LC_ALL"] -os.environ["LC_MESSAGES"] = "C" - -############################################################################### -# Support for older Python versions -############################################################################### - -# True/False constants are Python 2.2+ -try: - True, False -except NameError: - True, False = 1, 0 - -def lstrip(s, ch): - """Replacement for str.lstrip (support for arbitrary chars to strip was - added in Python 2.2.2).""" - i = 0 - try: - while s[i] == ch: - i = i+1 - return s[i:] - except IndexError: - return "" - -def rstrip(s, ch): - """Replacement for str.rstrip (support for arbitrary chars to strip was - added in Python 2.2.2).""" - try: - if s[-1] != ch: - return s - i = -2 - while s[i] == ch: - i = i-1 - return s[:i+1] - except IndexError: - return "" - -def strip(s, ch): - """Replacement for str.strip (support for arbitrary chars to strip was - added in Python 2.2.2).""" - return lstrip(rstrip(s, ch), ch) - -def rsplit(s, sep, maxsplits=0): - """Like str.rsplit, which is Python 2.4+ only.""" - L = s.split(sep) - if not 0 < maxsplits <= len(L): - return L - return [sep.join(L[0:-maxsplits])] + L[-maxsplits:] - -############################################################################### - -def kwextract(s): - """Extract info from a svn keyword string.""" - try: - return strip(s, "$").strip().split(": ")[1] - except IndexError: - return "<unknown>" - -__revision__ = kwextract('$Rev$') -__date__ = kwextract('$Date$') - -# Additional options, not (yet?) mapped to command line flags -default_opts = { - "svn": "svn", - "prop": NAME + "-integrated", - "block-prop": NAME + "-blocked", - "commit-verbose": True, - "verbose": 0, -} -logs = {} - -def console_width(): - """Get the width of the console screen (if any).""" - try: - return int(os.environ["COLUMNS"]) - except (KeyError, ValueError): - pass - - try: - # Call the Windows API (requires ctypes library) - from ctypes import windll, create_string_buffer - h = windll.kernel32.GetStdHandle(-11) - csbi = create_string_buffer(22) - res = windll.kernel32.GetConsoleScreenBufferInfo(h, csbi) - if res: - import struct - (bufx, bufy, - curx, cury, wattr, - left, top, right, bottom, - maxx, maxy) = struct.unpack("hhhhHhhhhhh", csbi.raw) - return right - left + 1 - except ImportError: - pass - - # Parse the output of stty -a - if os.isatty(1): - out = os.popen("stty -a").read() - m = re.search(r"columns (\d+);", out) - if m: - return int(m.group(1)) - - # sensible default - return 80 - -def error(s): - """Subroutine to output an error and bail.""" - print >> sys.stderr, "%s: %s" % (NAME, s) - sys.exit(1) - -def report(s): - """Subroutine to output progress message, unless in quiet mode.""" - if opts["verbose"]: - print "%s: %s" % (NAME, s) - -def prefix_lines(prefix, lines): - """Given a string representing one or more lines of text, insert the - specified prefix at the beginning of each line, and return the result. - The input must be terminated by a newline.""" - assert lines[-1] == "\n" - return prefix + lines[:-1].replace("\n", "\n"+prefix) + "\n" - -def recode_stdout_to_file(s): - if locale.getdefaultlocale()[1] is None or not hasattr(sys.stdout, "encoding") \ - or sys.stdout.encoding is None: - return s - u = s.decode(sys.stdout.encoding) - return u.encode(locale.getdefaultlocale()[1]) - -class LaunchError(Exception): - """Signal a failure in execution of an external command. Parameters are the - exit code of the process, the original command line, and the output of the - command.""" - -try: - """Launch a sub-process. Return its output (both stdout and stderr), - optionally split by lines (if split_lines is True). Raise a LaunchError - exception if the exit code of the process is non-zero (failure). - - This function has two implementations, one based on subprocess (preferred), - and one based on popen (for compatibility). - """ - import subprocess - import shlex - - def launch(cmd, split_lines=True): - # Requiring python 2.4 or higher, on some platforms we get - # much faster performance from the subprocess module (where python - # doesn't try to close an exhorbitant number of file descriptors) - stdout = "" - stderr = "" - try: - if os.name == 'nt': - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, \ - close_fds=False, stderr=subprocess.PIPE) - else: - # Use shlex to break up the parameters intelligently, - # respecting quotes. shlex can't handle unicode. - args = shlex.split(cmd.encode('ascii')) - p = subprocess.Popen(args, stdout=subprocess.PIPE, \ - close_fds=False, stderr=subprocess.PIPE) - stdoutAndErr = p.communicate() - stdout = stdoutAndErr[0] - stderr = stdoutAndErr[1] - except OSError, inst: - # Using 1 as failure code; should get actual number somehow? For - # examples see svnmerge_test.py's TestCase_launch.test_failure and - # TestCase_launch.test_failurecode. - raise LaunchError(1, cmd, stdout + " " + stderr + ": " + str(inst)) - - if p.returncode == 0: - if split_lines: - # Setting keepends=True for compatibility with previous logic - # (where file.readlines() preserves newlines) - return stdout.splitlines(True) - else: - return stdout - else: - raise LaunchError(p.returncode, cmd, stdout + stderr) -except ImportError: - # support versions of python before 2.4 (slower on some systems) - def launch(cmd, split_lines=True): - if os.name not in ['nt', 'os2']: - import popen2 - p = popen2.Popen4(cmd) - p.tochild.close() - if split_lines: - out = p.fromchild.readlines() - else: - out = p.fromchild.read() - ret = p.wait() - if ret == 0: - ret = None - else: - ret >>= 8 - else: - i,k = os.popen4(cmd) - i.close() - if split_lines: - out = k.readlines() - else: - out = k.read() - ret = k.close() - - if ret is None: - return out - raise LaunchError(ret, cmd, out) - -def launchsvn(s, show=False, pretend=False, **kwargs): - """Launch SVN and grab its output.""" - username = password = configdir = "" - if opts.get("username", None): - username = "--username=" + opts["username"] - if opts.get("password", None): - password = "--password=" + opts["password"] - if opts.get("config-dir", None): - configdir = "--config-dir=" + opts["config-dir"] - cmd = ' '.join(filter(None, [opts["svn"], "--non-interactive", - username, password, configdir, s])) - if show or opts["verbose"] >= 2: - print cmd - if pretend: - return None - return launch(cmd, **kwargs) - -def svn_command(s): - """Do (or pretend to do) an SVN command.""" - out = launchsvn(s, show=opts["show-changes"] or opts["dry-run"], - pretend=opts["dry-run"], - split_lines=False) - if not opts["dry-run"]: - print out - -def check_dir_clean(dir): - """Check the current status of dir for local mods.""" - if opts["force"]: - report('skipping status check because of --force') - return - report('checking status of "%s"' % dir) - - # Checking with -q does not show unversioned files or external - # directories. Though it displays a debug message for external - # directories, after a blank line. So, practically, the first line - # matters: if it's non-empty there is a modification. - out = launchsvn("status -q %s" % dir) - if out and out[0].strip(): - error('"%s" has local modifications; it must be clean' % dir) - -class PathIdentifier: - """Abstraction for a path identifier, so that we can start talking - about it before we know the form that it takes in the properties (its - external_form). Objects are referenced in the class variable 'locobjs', - keyed by all known forms.""" - - # a map of UUID (or None) to repository root URL. - repo_hints = {} - - # a map from any known string form to the corresponding PathIdentifier - locobjs = {} - - def __init__(self, repo_relative_path, uuid=None, url=None, external_form=None): - self.repo_relative_path = repo_relative_path - self.uuid = uuid - self.url = url - self.external_form = external_form - - def __repr__(self): - return "<PathIdentifier " + ', '.join('%s=%r' % i for i in self.__dict__.items()) + '>' - - def __str__(self): - """Return a printable string representation""" - if self.external_form: - return self.external_form - if self.url: - return self.format('url') - if self.uuid: - return self.format('uuid') - return self.format('path') - - def from_pathid(pathid_str): - """convert pathid_str to a PathIdentifier""" - if not PathIdentifier.locobjs.has_key(pathid_str): - if is_url(pathid_str): - # we can determine every form; PathIdentifier.hint knows how to do that - PathIdentifier.hint(pathid_str) - elif pathid_str[:7] == 'uuid://': - mo = re.match('uuid://([^/]*)(.*)', pathid_str) - if not mo: - error("Invalid path identifier '%s'" % pathid_str) - uuid, repo_relative_path = mo.groups() - pathid = PathIdentifier(repo_relative_path, uuid=uuid) - # we can cache this by uuid:// pathid and by repo-relative path - PathIdentifier.locobjs[pathid_str] = PathIdentifier.locobjs[repo_relative_path] = pathid - elif pathid_str and pathid_str[0] == '/': - # strip any trailing slashes - pathid_str = pathid_str.rstrip('/') - pathid = PathIdentifier(repo_relative_path=pathid_str) - # we can only cache this by repo-relative path - PathIdentifier.locobjs[pathid_str] = pathid - else: - error("Invalid path identifier '%s'" % pathid_str) - return PathIdentifier.locobjs[pathid_str] - from_pathid = staticmethod(from_pathid) - - def from_target(target): - """Convert a target (either a working copy path or an URL) into a - path identifier.""" - # prime the cache first if we don't know about this target yet - if not PathIdentifier.locobjs.has_key(target): - PathIdentifier.hint(target) - - try: - return PathIdentifier.locobjs[target] - except KeyError: - error("Could not recognize path identifier '%s'" % target) - from_target = staticmethod(from_target) - - def hint(target): - """Cache some information about target, as it may be referenced by - repo-relative path in subversion properties; the cache can help to - expand such a relative path to a full path identifier.""" - if PathIdentifier.locobjs.has_key(target): return - if not is_url(target) and not is_wc(target): return - - url = target_to_url(target) - - root = get_repo_root(url) - assert root[-1] != "/" - assert url[:len(root)] == root, "url=%r, root=%r" % (url, root) - repo_relative_path = url[len(root):] - - try: - uuid = get_svninfo(target)['Repository UUID'] - uuid_pathid = 'uuid://%s%s' % (uuid, repo_relative_path) - except KeyError: - uuid = None - uuid_pathid = None - - locobj = PathIdentifier.locobjs.get(url) or \ - (uuid_pathid and PathIdentifier.locobjs.get(uuid_pathid)) - if not locobj: - locobj = PathIdentifier(repo_relative_path, uuid=uuid, url=url) - - PathIdentifier.repo_hints[uuid] = root # (uuid may be None) - - PathIdentifier.locobjs[target] = locobj - PathIdentifier.locobjs[url] = locobj - if uuid_pathid: - PathIdentifier.locobjs[uuid_pathid] = locobj - if not PathIdentifier.locobjs.has_key(repo_relative_path): - PathIdentifier.locobjs[repo_relative_path] = locobj - hint = staticmethod(hint) - - def format(self, fmt): - if fmt == 'path': - return self.repo_relative_path - elif fmt == 'uuid': - return "uuid://%s%s" % (self.uuid, self.repo_relative_path) - elif fmt == 'url': - return self.url - else: - error("Unkonwn path type '%s'" % fmt) - - def match_substring(self, str): - """Test whether str is a substring of any representation of this - PathIdentifier.""" - if self.repo_relative_path.find(str) >= 0: - return True - - if self.uuid: - if ("uuid://%s%s" % (self.uuid, self.repo_relative_path)).find(str) >= 0: - return True - - if self.url: - if (self.url + self.repo_relative_path).find(str) >= 0: - return True - - return False - - def get_url(self): - """Convert a pathid into a URL. If this is not possible, error out.""" - if self.url: - return self.url - # if we have a uuid and happen to know the URL for it, use that - elif self.uuid and PathIdentifier.repo_hints.has_key(self.uuid): - self.url = PathIdentifier.repo_hints[self.uuid] + self.repo_relative_path - PathIdentifier.locobjs[self.url] = self - return self.url - # if we've only seen one rep, use that (a guess, but an educated one) - elif not self.uuid and len(PathIdentifier.repo_hints) == 1: - uuid, root = PathIdentifier.repo_hints.items()[0] - if uuid: - self.uuid = uuid - PathIdentifier.locobjs['uuid://%s%s' % (uuid, self.repo_relative_path)] = self - self.url = root + self.repo_relative_path - PathIdentifier.locobjs[self.url] = self - report("Guessing that '%s' refers to '%s'" % (self, self.url)) - return self.url - else: - error("Cannot determine URL for '%s'; " % self + - "Explicit source argument (-S/--source) required.\n") - -class RevisionLog: - """ - A log of the revisions which affected a given URL between two - revisions. - """ - - def __init__(self, url, begin, end, find_propchanges=False): - """ - Create a new RevisionLog object, which stores, in self.revs, a list - of the revisions which affected the specified URL between begin and - end. If find_propchanges is True, self.propchange_revs will contain a - list of the revisions which changed properties directly on the - specified URL. URL must be the URL for a directory in the repository. - """ - self.url = url - - # Setup the log options (--quiet, so we don't show log messages) - log_opts = '--xml --quiet -r%s:%s "%s"' % (begin, end, url) - if find_propchanges: - # The --verbose flag lets us grab merge tracking information - # by looking at propchanges - log_opts = "--verbose " + log_opts - - # Read the log to look for revision numbers and merge-tracking info - self.revs = [] - self.propchange_revs = [] - repos_pathid = PathIdentifier.from_target(url) - for chg in SvnLogParser(launchsvn("log %s" % log_opts, - split_lines=False)): - self.revs.append(chg.revision()) - for p in chg.paths(): - if p.action() == 'M' and p.pathid() == repos_pathid.repo_relative_path: - self.propchange_revs.append(chg.revision()) - - # Save the range of the log - self.begin = int(begin) - if end == "HEAD": - # If end is not provided, we do not know which is the latest - # revision in the repository. So we set 'end' to the latest - # known revision. - self.end = self.revs[-1] - else: - self.end = int(end) - - self._merges = None - self._blocks = None - - def merge_metadata(self): - """ - Return a VersionedProperty object, with a cached view of the merge - metadata in the range of this log. - """ - - # Load merge metadata if necessary - if not self._merges: - self._merges = VersionedProperty(self.url, opts["prop"]) - self._merges.load(self) - - return self._merges - - def block_metadata(self): - if not self._blocks: - self._blocks = VersionedProperty(self.url, opts["block-prop"]) - self._blocks.load(self) - - return self._blocks - - -class VersionedProperty: - """ - A read-only, cached view of a versioned property. - - self.revs contains a list of the revisions in which the property changes. - self.values stores the new values at each corresponding revision. If the - value of the property is unknown, it is set to None. - - Initially, we set self.revs to [0] and self.values to [None]. This - indicates that, as of revision zero, we know nothing about the value of - the property. - - Later, if you run self.load(log), we cache the value of this property over - the entire range of the log by noting each revision in which the property - was changed. At the end of the range of the log, we invalidate our cache - by adding the value "None" to our cache for any revisions which fall out - of the range of our log. - - Once self.revs and self.values are filled, we can find the value of the - property at any arbitrary revision using a binary search on self.revs. - Once we find the last revision during which the property was changed, - we can lookup the associated value in self.values. (If the associated - value is None, the associated value was not cached and we have to do - a full propget.) - - An example: We know that the 'svnmerge' property was added in r10, and - changed in r21. We gathered log info up until r40. - - revs = [0, 10, 21, 40] - values = [None, "val1", "val2", None] - - What these values say: - - From r0 to r9, we know nothing about the property. - - In r10, the property was set to "val1". This property stayed the same - until r21, when it was changed to "val2". - - We don't know what happened after r40. - """ - - def __init__(self, url, name): - """View the history of a versioned property at URL with name""" - self.url = url - self.name = name - - # We know nothing about the value of the property. Setup revs - # and values to indicate as such. - self.revs = [0] - self.values = [None] - - # We don't have any revisions cached - self._initial_value = None - self._changed_revs = [] - self._changed_values = [] - - def load(self, log): - """ - Load the history of property changes from the specified - RevisionLog object. - """ - - # Get the property value before the range of the log - if log.begin > 1: - self.revs.append(log.begin-1) - try: - self._initial_value = self.raw_get(log.begin-1) - except LaunchError: - # The specified URL might not exist before the - # range of the log. If so, we can safely assume - # that the property was empty at that time. - self._initial_value = { } - self.values.append(self._initial_value) - else: - self._initial_value = { } - self.values[0] = self._initial_value - - # Cache the property values in the log range - old_value = self._initial_value - for rev in log.propchange_revs: - new_value = self.raw_get(rev) - if new_value != old_value: - self._changed_revs.append(rev) - self._changed_values.append(new_value) - self.revs.append(rev) - self.values.append(new_value) - old_value = new_value - - # Indicate that we know nothing about the value of the property - # after the range of the log. - if log.revs: - self.revs.append(log.end+1) - self.values.append(None) - - def raw_get(self, rev=None): - """ - Get the property at revision REV. If rev is not specified, get - the property at revision HEAD. - """ - return get_revlist_prop(self.url, self.name, rev) - - def get(self, rev=None): - """ - Get the property at revision REV. If rev is not specified, get - the property at revision HEAD. - """ - - if rev is not None: - - # Find the index using a binary search - i = bisect(self.revs, rev) - 1 - - # Return the value of the property, if it was cached - if self.values[i] is not None: - return self.values[i] - - # Get the current value of the property - return self.raw_get(rev) - - def changed_revs(self, key=None): - """ - Get a list of the revisions in which the specified dictionary - key was changed in this property. If key is not specified, - return a list of revisions in which any key was changed. - """ - if key is None: - return self._changed_revs - else: - changed_revs = [] - old_val = self._initial_value - for rev, val in zip(self._changed_revs, self._changed_values): - if val.get(key) != old_val.get(key): - changed_revs.append(rev) - old_val = val - return changed_revs - - def initialized_revs(self): - """ - Get a list of the revisions in which keys were added or - removed in this property. - """ - initialized_revs = [] - old_len = len(self._initial_value) - for rev, val in zip(self._changed_revs, self._changed_values): - if len(val) != old_len: - initialized_revs.append(rev) - old_len = len(val) - return initialized_revs - -class RevisionSet: - """ - A set of revisions, held in dictionary form for easy manipulation. If we - were to rewrite this script for Python 2.3+, we would subclass this from - set (or UserSet). As this class does not include branch - information, it's assumed that one instance will be used per - branch. - """ - def __init__(self, parm): - """Constructs a RevisionSet from a string in property form, or from - a dictionary whose keys are the revisions. Raises ValueError if the - input string is invalid.""" - - self._revs = {} - - revision_range_split_re = re.compile('[-:]') - - if isinstance(parm, types.DictType): - self._revs = parm.copy() - elif isinstance(parm, types.ListType): - for R in parm: - self._revs[int(R)] = 1 - else: - parm = parm.strip() - if parm: - for R in parm.split(","): - rev_or_revs = re.split(revision_range_split_re, R) - if len(rev_or_revs) == 1: - self._revs[int(rev_or_revs[0])] = 1 - elif len(rev_or_revs) == 2: - for rev in range(int(rev_or_revs[0]), - int(rev_or_revs[1])+1): - self._revs[rev] = 1 - else: - raise ValueError, 'Ill formatted revision range: ' + R - - def sorted(self): - revnums = self._revs.keys() - revnums.sort() - return revnums - - def normalized(self): - """Returns a normalized version of the revision set, which is an - ordered list of couples (start,end), with the minimum number of - intervals.""" - revnums = self.sorted() - revnums.reverse() - ret = [] - while revnums: - s = e = revnums.pop() - while revnums and revnums[-1] in (e, e+1): - e = revnums.pop() - ret.append((s, e)) - return ret - - def __str__(self): - """Convert the revision set to a string, using its normalized form.""" - L = [] - for s,e in self.normalized(): - if s == e: - L.append(str(s)) - else: - L.append(str(s) + "-" + str(e)) - return ",".join(L) - - def __contains__(self, rev): - return self._revs.has_key(rev) - - def __sub__(self, rs): - """Compute subtraction as in sets.""" - revs = {} - for r in self._revs.keys(): - if r not in rs: - revs[r] = 1 - return RevisionSet(revs) - - def __and__(self, rs): - """Compute intersections as in sets.""" - revs = {} - for r in self._revs.keys(): - if r in rs: - revs[r] = 1 - return RevisionSet(revs) - - def __nonzero__(self): - return len(self._revs) != 0 - - def __len__(self): - """Return the number of revisions in the set.""" - return len(self._revs) - - def __iter__(self): - return iter(self.sorted()) - - def __or__(self, rs): - """Compute set union.""" - revs = self._revs.copy() - revs.update(rs._revs) - return RevisionSet(revs) - -def merge_props_to_revision_set(merge_props, pathid): - """A converter which returns a RevisionSet instance containing the - revisions from PATH as known to BRANCH_PROPS. BRANCH_PROPS is a - dictionary of pathid -> revision set branch integration information - (as returned by get_merge_props()).""" - if not merge_props.has_key(pathid): - error('no integration info available for path "%s"' % pathid) - return RevisionSet(merge_props[pathid]) - -def dict_from_revlist_prop(propvalue): - """Given a property value as a string containing per-source revision - lists, return a dictionary whose key is a source path identifier - and whose value is the revisions for that source.""" - prop = {} - - # Multiple sources are separated by any whitespace. - for L in propvalue.split(): - # We use rsplit to play safe and allow colons in pathids. - pathid_str, revs = rsplit(L.strip(), ":", 1) - - pathid = PathIdentifier.from_pathid(pathid_str) - - # cache the "external" form we saw - pathid.external_form = pathid_str - - prop[pathid] = revs - return prop - -def get_revlist_prop(url_or_dir, propname, rev=None): - """Given a repository URL or working copy path and a property - name, extract the values of the property which store per-source - revision lists and return a dictionary whose key is a source path - identifier, and whose value is the revisions for that source.""" - - # Note that propget does not return an error if the property does - # not exist, it simply does not output anything. So we do not need - # to check for LaunchError here. - args = '--strict "%s" "%s"' % (propname, url_or_dir) - if rev: - args = '-r %s %s' % (rev, args) - out = launchsvn('propget %s' % args, split_lines=False) - - return dict_from_revlist_prop(out) - -def get_merge_props(dir): - """Extract the merged revisions.""" - return get_revlist_prop(dir, opts["prop"]) - -def get_block_props(dir): - """Extract the blocked revisions.""" - return get_revlist_prop(dir, opts["block-prop"]) - -def get_blocked_revs(dir, source_pathid): - p = get_block_props(dir) - if p.has_key(source_pathid): - return RevisionSet(p[source_pathid]) - return RevisionSet("") - -def format_merge_props(props, sep=" "): - """Formats the hash PROPS as a string suitable for use as a - Subversion property value.""" - assert sep in ["\t", "\n", " "] # must be a whitespace - props = props.items() - props.sort() - L = [] - for h, r in props: - L.append("%s:%s" % (h, r)) - return sep.join(L) - -def _run_propset(dir, prop, value): - """Set the property 'prop' of directory 'dir' to value 'value'. We go - through a temporary file to not run into command line length limits.""" - try: - fd, fname = tempfile.mkstemp() - f = os.fdopen(fd, "wb") - except AttributeError: - # Fallback for Python <= 2.3 which does not have mkstemp (mktemp - # suffers from race conditions. Not that we care...) - fname = tempfile.mktemp() - f = open(fname, "wb") - - try: - f.write(value) - f.close() - report("property data written to temp file: %s" % value) - svn_command('propset "%s" -F "%s" "%s"' % (prop, fname, dir)) - finally: - os.remove(fname) - -def set_props(dir, name, props): - props = format_merge_props(props) - if props: - _run_propset(dir, name, props) - else: - # Check if NAME exists on DIR before trying to delete it. - # As of 1.6 propdel no longer supports deleting a - # non-existent property. - out = launchsvn('propget "%s" "%s"' % (name, dir)) - if out: - svn_command('propdel "%s" "%s"' % (name, dir)) - -def set_merge_props(dir, props): - set_props(dir, opts["prop"], props) - -def set_block_props(dir, props): - set_props(dir, opts["block-prop"], props) - -def set_blocked_revs(dir, source_pathid, revs): - props = get_block_props(dir) - if revs: - props[source_pathid] = str(revs) - elif props.has_key(source_pathid): - del props[source_pathid] - set_block_props(dir, props) - -def is_url(url): - """Check if url looks like a valid url.""" - return re.search(r"^[a-zA-Z][-+\.\w]*://[^\s]+$", url) is not None and url[:4] != 'uuid' - -def check_url(url): - """Similar to is_url, but actually invoke get_svninfo to find out""" - return get_svninfo(url) != {} - -def is_pathid(pathid): - return isinstance(pathid, PathIdentifier) - -def is_wc(dir): - """Check if a directory is a working copy.""" - return os.path.isdir(os.path.join(dir, ".svn")) or \ - os.path.isdir(os.path.join(dir, "_svn")) - -_cache_svninfo = {} -def get_svninfo(target): - """Extract the subversion information for a target (through 'svn info'). - This function uses an internal cache to let clients query information - many times.""" - if _cache_svninfo.has_key(target): - return _cache_svninfo[target] - info = {} - for L in launchsvn('info "%s"' % target): - L = L.strip() - if not L: - continue - key, value = L.split(": ", 1) - info[key] = value.strip() - _cache_svninfo[target] = info - return info - -def target_to_url(target): - """Convert working copy path or repos URL to a repos URL.""" - if is_wc(target): - info = get_svninfo(target) - return info["URL"] - return target - -_cache_reporoot = {} -def get_repo_root(target): - """Compute the root repos URL given a working-copy path, or a URL.""" - # Try using "svn info WCDIR". This works only on SVN clients >= 1.3 - if not is_url(target): - try: - info = get_svninfo(target) - root = info["Repository Root"] - _cache_reporoot[root] = None - return root - except KeyError: - pass - url = target_to_url(target) - assert url[-1] != '/' - else: - url = target - - # Go through the cache of the repository roots. This avoids extra - # server round-trips if we are asking the root of different URLs - # in the same repository (the cache in get_svninfo() cannot detect - # that of course and would issue a remote command). - assert is_url(url) - for r in _cache_reporoot: - if url.startswith(r): - return r - - # Try using "svn info URL". This works only on SVN clients >= 1.2 - try: - info = get_svninfo(url) - # info may be {}, in which case we'll see KeyError here - root = info["Repository Root"] - _cache_reporoot[root] = None - return root - except (KeyError, LaunchError): - pass - - # Constrained to older svn clients, we are stuck with this ugly - # trial-and-error implementation. It could be made faster with a - # binary search. - while url: - temp = os.path.dirname(url) - try: - launchsvn('proplist "%s"' % temp) - except LaunchError: - _cache_reporoot[url] = None - return rstrip(url, "/") - url = temp - - error("svn repos root of %s not found" % target) - -class SvnLogParser: - """ - Parse the "svn log", going through the XML output and using pulldom (which - would even allow streaming the command output). - """ - def __init__(self, xml): - self._events = pulldom.parseString(xml) - def __getitem__(self, idx): - for event, node in self._events: - if event == pulldom.START_ELEMENT and node.tagName == "logentry": - self._events.expandNode(node) - return self.SvnLogRevision(node) - raise IndexError, "Could not find 'logentry' tag in xml" - - class SvnLogRevision: - def __init__(self, xmlnode): - self.n = xmlnode - def revision(self): - return int(self.n.getAttribute("revision")) - def author(self): - return self.n.getElementsByTagName("author")[0].firstChild.data - def paths(self): - return [self.SvnLogPath(n) - for n in self.n.getElementsByTagName("path")] - - class SvnLogPath: - def __init__(self, xmlnode): - self.n = xmlnode - def action(self): - return self.n.getAttribute("action") - def pathid(self): - return self.n.firstChild.data - def copyfrom_rev(self): - try: return self.n.getAttribute("copyfrom-rev") - except KeyError: return None - def copyfrom_pathid(self): - try: return self.n.getAttribute("copyfrom-path") - except KeyError: return None - -def get_copyfrom(target): - """Get copyfrom info for a given target (it represents the - repository-relative path from where it was branched). NOTE: - repos root has no copyfrom info. In this case None is returned. - - Returns the: - - source file or directory from which the copy was made - - revision from which that source was copied - - revision in which the copy was committed - """ - repos_path = PathIdentifier.from_target(target).repo_relative_path - for chg in SvnLogParser(launchsvn('log -v --xml --stop-on-copy "%s"' - % target, split_lines=False)): - for p in chg.paths(): - if p.action() == 'A' and p.pathid() == repos_path: - # These values will be None if the corresponding elements are - # not found in the log. - return p.copyfrom_pathid(), p.copyfrom_rev(), chg.revision() - return None,None,None - -def get_latest_rev(url): - """Get the latest revision of the repository of which URL is part.""" - try: - info = get_svninfo(url) - if not info.has_key("Revision"): - error("Not a valid URL: %s" % url) - return info["Revision"] - except LaunchError: - # Alternative method for latest revision checking (for svn < 1.2) - report('checking latest revision of "%s"' % url) - L = launchsvn('proplist --revprop -r HEAD "%s"' % opts["source-url"])[0] - rev = re.search("revision (\d+)", L).group(1) - report('latest revision of "%s" is %s' % (url, rev)) - return rev - -def get_created_rev(url): - """Lookup the revision at which the path identified by the - provided URL was first created.""" - oldest_rev = -1 - report('determining oldest revision for URL "%s"' % url) - ### TODO: Refactor this to use a modified RevisionLog class. - lines = None - cmd = "log -r1:HEAD --stop-on-copy -q " + url - try: - lines = launchsvn(cmd + " --limit=1") - except LaunchError: - # Assume that --limit isn't supported by the installed 'svn'. - lines = launchsvn(cmd) - if lines and len(lines) > 1: - i = lines[1].find(" ") - if i != -1: - oldest_rev = int(lines[1][1:i]) - if oldest_rev == -1: - error('unable to determine oldest revision for URL "%s"' % url) - return oldest_rev - -def get_commit_log(url, revnum): - """Return the log message for a specific integer revision - number.""" - out = launchsvn("log --incremental -r%d %s" % (revnum, url)) - return recode_stdout_to_file("".join(out[1:])) - -def construct_merged_log_message(url, revnums): - """Return a commit log message containing all the commit messages - in the specified revisions at the given URL. The separator used - in this log message is determined by searching for the longest - svnmerge separator existing in the commit log messages and - extending it by one more separator. This results in a new commit - log message that is clearer in describing merges that contain - other merges. Trailing newlines are removed from the embedded - log messages.""" - messages = [''] - longest_sep = '' - for r in revnums.sorted(): - message = get_commit_log(url, r) - if message: - message = re.sub(r'(\r\n|\r|\n)', "\n", message) - message = rstrip(message, "\n") + "\n" - messages.append(prefix_lines(LOG_LINE_PREFIX, message)) - for match in LOG_SEPARATOR_RE.findall(message): - sep = match[1] - if len(sep) > len(longest_sep): - longest_sep = sep - - longest_sep += LOG_SEPARATOR + "\n" - messages.append('') - return longest_sep.join(messages) - -def get_default_source(branch_target, branch_props): - """Return the default source for branch_target (given its branch_props). - Error out if there is ambiguity.""" - if not branch_props: - error("no integration info available") - - props = branch_props.copy() - pathid = PathIdentifier.from_target(branch_target) - - # To make bidirectional merges easier, find the target's - # repository local path so it can be removed from the list of - # possible integration sources. - if props.has_key(pathid): - del props[pathid] - - if len(props) > 1: - err_msg = "multiple sources found. " - err_msg += "Explicit source argument (-S/--source) required.\n" - err_msg += "The merge sources available are:" - for prop in props: - err_msg += "\n " + str(prop) - error(err_msg) - - return props.keys()[0] - -def should_find_reflected(branch_dir): - should_find_reflected = opts["bidirectional"] - - # If the source has integration info for the target, set find_reflected - # even if --bidirectional wasn't specified - if not should_find_reflected: - source_props = get_merge_props(opts["source-url"]) - should_find_reflected = source_props.has_key(PathIdentifier.from_target(branch_dir)) - - return should_find_reflected - -def analyze_revs(target_pathid, url, begin=1, end=None, - find_reflected=False): - """For the source of the merges in the source URL being merged into - target_pathid, analyze the revisions in the interval begin-end (which - defaults to 1-HEAD), to find out which revisions are changes in - the url, which are changes elsewhere (so-called 'phantom' - revisions), optionally which are reflected changes (to avoid - conflicts that can occur when doing bidirectional merging between - branches), and which revisions initialize merge tracking against other - branches. Return a tuple of four RevisionSet's: - (real_revs, phantom_revs, reflected_revs, initialized_revs). - - NOTE: To maximize speed, if "end" is not provided, the function is - not able to find phantom revisions following the last real - revision in the URL. - """ - - begin = str(begin) - if end is None: - end = "HEAD" - else: - end = str(end) - if long(begin) > long(end): - return RevisionSet(""), RevisionSet(""), \ - RevisionSet(""), RevisionSet("") - - logs[url] = RevisionLog(url, begin, end, find_reflected) - revs = RevisionSet(logs[url].revs) - - if end == "HEAD": - # If end is not provided, we do not know which is the latest revision - # in the repository. So return the phantom revision set only up to - # the latest known revision. - end = str(list(revs)[-1]) - - phantom_revs = RevisionSet("%s-%s" % (begin, end)) - revs - - if find_reflected: - reflected_revs = logs[url].merge_metadata().changed_revs(target_pathid) - reflected_revs += logs[url].block_metadata().changed_revs(target_pathid) - else: - reflected_revs = [] - - initialized_revs = RevisionSet(logs[url].merge_metadata().initialized_revs()) - reflected_revs = RevisionSet(reflected_revs) - - return revs, phantom_revs, reflected_revs, initialized_revs - -def analyze_source_revs(branch_target, source_url, **kwargs): - """For the given branch and source, extract the real and phantom - source revisions.""" - branch_url = target_to_url(branch_target) - branch_pathid = PathIdentifier.from_target(branch_target) - - # Extract the latest repository revision from the URL of the branch - # directory (which is already cached at this point). - end_rev = get_latest_rev(source_url) - - # Calculate the base of analysis. If there is a "1-XX" interval in the - # merged_revs, we do not need to check those. - base = 1 - r = opts["merged-revs"].normalized() - if r and r[0][0] == 1: - base = r[0][1] + 1 - - # See if the user filtered the revision set. If so, we are not - # interested in something outside that range. - if opts["revision"]: - revs = RevisionSet(opts["revision"]).sorted() - if base < revs[0]: - base = revs[0] - if end_rev > revs[-1]: - end_rev = revs[-1] - - return analyze_revs(branch_pathid, source_url, base, end_rev, **kwargs) - -def minimal_merge_intervals(revs, phantom_revs): - """Produce the smallest number of intervals suitable for merging. revs - is the RevisionSet which we want to merge, and phantom_revs are phantom - revisions which can be used to concatenate intervals, thus minimizing the - number of operations.""" - revnums = revs.normalized() - ret = [] - - cur = revnums.pop() - while revnums: - next = revnums.pop() - assert next[1] < cur[0] # otherwise it is not ordered - assert cur[0] - next[1] > 1 # otherwise it is not normalized - for i in range(next[1]+1, cur[0]): - if i not in phantom_revs: - ret.append(cur) - cur = next - break - else: - cur = (next[0], cur[1]) - - ret.append(cur) - ret.reverse() - return ret - -def display_revisions(revs, display_style, revisions_msg, source_url): - """Show REVS as dictated by DISPLAY_STYLE, either numerically, in - log format, or as diffs. When displaying revisions numerically, - prefix output with REVISIONS_MSG when in verbose mode. Otherwise, - request logs or diffs using SOURCE_URL.""" - if display_style == "revisions": - if revs: - report(revisions_msg) - print revs - elif display_style == "logs": - for start,end in revs.normalized(): - svn_command('log --incremental -v -r %d:%d %s' % \ - (start, end, source_url)) - elif display_style in ("diffs", "summarize"): - if display_style == 'summarize': - summarize = '--summarize ' - else: - summarize = '' - - for start, end in revs.normalized(): - print - if start == end: - print "%s: changes in revision %d follow" % (NAME, start) - else: - print "%s: changes in revisions %d-%d follow" % (NAME, - start, end) - print - - # Note: the starting revision number to 'svn diff' is - # NOT inclusive so we have to subtract one from ${START}. - svn_command("diff -r %d:%d %s %s" % (start - 1, end, summarize, - source_url)) - else: - assert False, "unhandled display style: %s" % display_style - -def action_init(target_dir, target_props): - """Initialize for merges.""" - # Check that directory is ready for being modified - check_dir_clean(target_dir) - - target_pathid = PathIdentifier.from_target(target_dir) - source_pathid = opts['source-pathid'] - if source_pathid == target_pathid: - error("cannot init integration source path '%s'\nIts path identifier does not " - "differ from the path identifier of the current directory, '%s'." - % (source_pathid, target_pathid)) - - source_url = opts['source-url'] - - # If the user hasn't specified the revisions to use, see if the - # "source" is a copy from the current tree and if so, we can use - # the version data obtained from it. - revision_range = opts["revision"] - if not revision_range: - # If source was originally copied from target, and we are merging - # changes from source to target (the copy target is the merge source, - # and the copy source is the merge target), then we want to mark as - # integrated up to the rev in which the copy was committed which - # created the merge source: - cf_source, cf_rev, copy_committed_in_rev = get_copyfrom(source_url) - - cf_pathid = None - if cf_source: - cf_url = get_repo_root(source_url) + cf_source - if is_url(cf_url) and check_url(cf_url): - cf_pathid = PathIdentifier.from_target(cf_url) - - if target_pathid == cf_pathid: - report('the source "%s" was copied from "%s" in rev %s and committed in rev %s' % - (source_url, target_dir, cf_rev, copy_committed_in_rev)) - revision_range = "1-" + str(copy_committed_in_rev) - - if not revision_range: - # If the reverse is true: copy source is the merge source, and - # the copy target is the merge target, then we want to mark as - # integrated up to the specific rev of the merge target from - # which the merge source was copied. (Longer discussion at: - # http://subversion.tigris.org/issues/show_bug.cgi?id=2810 ) - cf_source, cf_rev, copy_committed_in_rev = get_copyfrom(target_dir) - - cf_pathid = None - if cf_source: - cf_url = get_repo_root(target_dir) + cf_source - if is_url(cf_url) and check_url(cf_url): - cf_pathid = PathIdentifier.from_target(cf_url) - - source_pathid = PathIdentifier.from_target(source_url) - if source_pathid == cf_pathid: - report('the target "%s" was copied the source "%s" in rev %s and committed in rev %s' % - (target_dir, source_url, cf_rev, copy_committed_in_rev)) - revision_range = "1-" + cf_rev - - # When neither the merge source nor target is a copy of the other, and - # the user did not specify a revision range, then choose a default which is - # the current revision; saying, in effect, "everything has been merged, so - # mark as integrated up to the latest rev on source url). - if not revision_range: - revision_range = "1-" + get_latest_rev(source_url) - - revs = RevisionSet(revision_range) - - report('marking "%s" as already containing revisions "%s" of "%s"' % - (target_dir, revs, source_url)) - - revs = str(revs) - # If the local svnmerge-integrated property already has an entry - # for the source-pathid, simply error out. - if not opts["force"] and target_props.has_key(source_pathid): - error('Repository-relative path %s has already been initialized at %s\n' - 'Use --force to re-initialize' % (source_pathid, target_dir)) - # set the pathid's external_form based on the user's options - source_pathid.external_form = source_pathid.format(opts['location-type']) - - revs = str(revs) - target_props[source_pathid] = revs - - # Set property - set_merge_props(target_dir, target_props) - - # Write out commit message if desired - if opts["commit-file"]: - f = open(opts["commit-file"], "w") - print >>f, 'Initialized merge tracking via "%s" with revisions "%s" from ' \ - % (NAME, revs) - print >>f, '%s' % source_url - f.close() - report('wrote commit message to "%s"' % opts["commit-file"]) - -def action_avail(branch_dir, branch_props): - """Show commits available for merges.""" - source_revs, phantom_revs, reflected_revs, initialized_revs = \ - analyze_source_revs(branch_dir, opts["source-url"], - find_reflected= - should_find_reflected(branch_dir)) - report('skipping phantom revisions: %s' % phantom_revs) - if reflected_revs: - report('skipping reflected revisions: %s' % reflected_revs) - report('skipping initialized revisions: %s' % initialized_revs) - - blocked_revs = get_blocked_revs(branch_dir, opts["source-pathid"]) - avail_revs = source_revs - opts["merged-revs"] - blocked_revs - \ - reflected_revs - initialized_revs - - # Compose the set of revisions to show - revs = RevisionSet("") - report_msg = "revisions available to be merged are:" - if "avail" in opts["avail-showwhat"]: - revs |= avail_revs - if "blocked" in opts["avail-showwhat"]: - revs |= blocked_revs - report_msg = "revisions blocked are:" - - # Limit to revisions specified by -r (if any) - if opts["revision"]: - revs = revs & RevisionSet(opts["revision"]) - - display_revisions(revs, opts["avail-display"], - report_msg, - opts["source-url"]) - -def action_integrated(branch_dir, branch_props): - """Show change sets already merged. This set of revisions is - calculated from taking svnmerge-integrated property from the - branch, and subtracting any revision older than the branch - creation revision.""" - # Extract the integration info for the branch_dir - branch_props = get_merge_props(branch_dir) - revs = merge_props_to_revision_set(branch_props, opts["source-pathid"]) - - # Lookup the oldest revision on the branch path. - oldest_src_rev = get_created_rev(opts["source-url"]) - - # Subtract any revisions which pre-date the branch. - report("subtracting revisions which pre-date the source URL (%d)" % - oldest_src_rev) - revs = revs - RevisionSet(range(1, oldest_src_rev)) - - # Limit to revisions specified by -r (if any) - if opts["revision"]: - revs = revs & RevisionSet(opts["revision"]) - - display_revisions(revs, opts["integrated-display"], - "revisions already integrated are:", opts["source-url"]) - -def action_merge(branch_dir, branch_props): - """Record merge meta data, and do the actual merge (if not - requested otherwise via --record-only).""" - # Check branch directory is ready for being modified - check_dir_clean(branch_dir) - - source_revs, phantom_revs, reflected_revs, initialized_revs = \ - analyze_source_revs(branch_dir, opts["source-url"], - find_reflected= - should_find_reflected(branch_dir)) - - if opts["revision"]: - revs = RevisionSet(opts["revision"]) - else: - revs = source_revs - - blocked_revs = get_blocked_revs(branch_dir, opts["source-pathid"]) - merged_revs = opts["merged-revs"] - - # Show what we're doing - if opts["verbose"]: # just to avoid useless calculations - if merged_revs & revs: - report('"%s" already contains revisions %s' % (branch_dir, - merged_revs & revs)) - if phantom_revs: - report('memorizing phantom revision(s): %s' % phantom_revs) - if reflected_revs: - report('memorizing reflected revision(s): %s' % reflected_revs) - if blocked_revs & revs: - report('skipping blocked revisions(s): %s' % (blocked_revs & revs)) - if initialized_revs: - report('skipping initialized revision(s): %s' % initialized_revs) - - # Compute final merge set. - revs = revs - merged_revs - blocked_revs - reflected_revs - \ - phantom_revs - initialized_revs - if not revs: - report('no revisions to merge, exiting') - return - - # When manually marking revisions as merged, we only update the - # integration meta data, and don't perform an actual merge. - record_only = opts["record-only"] - - if record_only: - report('recording merge of revision(s) %s from "%s"' % - (revs, opts["source-url"])) - else: - report('merging in revision(s) %s from "%s"' % - (revs, opts["source-url"])) - - # Do the merge(s). Note: the starting revision number to 'svn merge' - # is NOT inclusive so we have to subtract one from start. - # We try to keep the number of merge operations as low as possible, - # because it is faster and reduces the number of conflicts. - old_block_props = get_block_props(branch_dir) - merge_metadata = logs[opts["source-url"]].merge_metadata() - block_metadata = logs[opts["source-url"]].block_metadata() - for start,end in minimal_merge_intervals(revs, phantom_revs): - if not record_only: - # Preset merge/blocked properties to the source value at - # the start rev to avoid spurious property conflicts - set_merge_props(branch_dir, merge_metadata.get(start - 1)) - set_block_props(branch_dir, block_metadata.get(start - 1)) - # Do the merge - svn_command("merge --force -r %d:%d %s %s" % \ - (start - 1, end, opts["source-url"], branch_dir)) - # TODO: to support graph merging, add logic to merge the property - # meta-data manually - - # Update the set of merged revisions. - merged_revs = merged_revs | revs | reflected_revs | phantom_revs | initialized_revs - branch_props[opts["source-pathid"]] = str(merged_revs) - set_merge_props(branch_dir, branch_props) - # Reset the blocked revs - set_block_props(branch_dir, old_block_props) - - # Write out commit message if desired - if opts["commit-file"]: - f = open(opts["commit-file"], "w") - if record_only: - print >>f, 'Recorded merge of revisions %s via %s from ' % \ - (revs, NAME) - else: - print >>f, 'Merged revisions %s via %s from ' % \ - (revs, NAME) - print >>f, '%s' % opts["source-url"] - if opts["commit-verbose"]: - print >>f - print >>f, construct_merged_log_message(opts["source-url"], revs), - - f.close() - report('wrote commit message to "%s"' % opts["commit-file"]) - -def action_block(branch_dir, branch_props): - """Block revisions.""" - # Check branch directory is ready for being modified - check_dir_clean(branch_dir) - - source_revs, phantom_revs, reflected_revs, initialized_revs = \ - analyze_source_revs(branch_dir, opts["source-url"]) - revs_to_block = source_revs - opts["merged-revs"] - - # Limit to revisions specified by -r (if any) - if opts["revision"]: - revs_to_block = RevisionSet(opts["revision"]) & revs_to_block - - if not revs_to_block: - error('no available revisions to block') - - # Change blocked information - blocked_revs = get_blocked_revs(branch_dir, opts["source-pathid"]) - blocked_revs = blocked_revs | revs_to_block - set_blocked_revs(branch_dir, opts["source-pathid"], blocked_revs) - - # Write out commit message if desired - if opts["commit-file"]: - f = open(opts["commit-file"], "w") - print >>f, 'Blocked revisions %s via %s' % (revs_to_block, NAME) - if opts["commit-verbose"]: - print >>f - print >>f, construct_merged_log_message(opts["source-url"], - revs_to_block), - - f.close() - report('wrote commit message to "%s"' % opts["commit-file"]) - -def action_unblock(branch_dir, branch_props): - """Unblock revisions.""" - # Check branch directory is ready for being modified - check_dir_clean(branch_dir) - - blocked_revs = get_blocked_revs(branch_dir, opts["source-pathid"]) - revs_to_unblock = blocked_revs - - # Limit to revisions specified by -r (if any) - if opts["revision"]: - revs_to_unblock = revs_to_unblock & RevisionSet(opts["revision"]) - - if not revs_to_unblock: - error('no available revisions to unblock') - - # Change blocked information - blocked_revs = blocked_revs - revs_to_unblock - set_blocked_revs(branch_dir, opts["source-pathid"], blocked_revs) - - # Write out commit message if desired - if opts["commit-file"]: - f = open(opts["commit-file"], "w") - print >>f, 'Unblocked revisions %s via %s' % (revs_to_unblock, NAME) - if opts["commit-verbose"]: - print >>f - print >>f, construct_merged_log_message(opts["source-url"], - revs_to_unblock), - f.close() - report('wrote commit message to "%s"' % opts["commit-file"]) - -def action_rollback(branch_dir, branch_props): - """Rollback previously integrated revisions.""" - - # Make sure the revision arguments are present - if not opts["revision"]: - error("The '-r' option is mandatory for rollback") - - # Check branch directory is ready for being modified - check_dir_clean(branch_dir) - - # Extract the integration info for the branch_dir - branch_props = get_merge_props(branch_dir) - # Get the list of all revisions already merged into this source-pathid. - merged_revs = merge_props_to_revision_set(branch_props, - opts["source-pathid"]) - - # At which revision was the src created? - oldest_src_rev = get_created_rev(opts["source-url"]) - src_pre_exist_range = RevisionSet("1-%d" % oldest_src_rev) - - # Limit to revisions specified by -r (if any) - revs = merged_revs & RevisionSet(opts["revision"]) - - # make sure there's some revision to rollback - if not revs: - report("Nothing to rollback in revision range r%s" % opts["revision"]) - return - - # If even one specified revision lies outside the lifetime of the - # merge source, error out. - if revs & src_pre_exist_range: - err_str = "Specified revision range falls out of the rollback range.\n" - err_str += "%s was created at r%d" % (opts["source-pathid"], - oldest_src_rev) - error(err_str) - - record_only = opts["record-only"] - - if record_only: - report('recording rollback of revision(s) %s from "%s"' % - (revs, opts["source-url"])) - else: - report('rollback of revision(s) %s from "%s"' % - (revs, opts["source-url"])) - - # Do the reverse merge(s). Note: the starting revision number - # to 'svn merge' is NOT inclusive so we have to subtract one from start. - # We try to keep the number of merge operations as low as possible, - # because it is faster and reduces the number of conflicts. - rollback_intervals = minimal_merge_intervals(revs, []) - # rollback in the reverse order of merge - rollback_intervals.reverse() - for start, end in rollback_intervals: - if not record_only: - # Do the merge - svn_command("merge --force -r %d:%d %s %s" % \ - (end, start - 1, opts["source-url"], branch_dir)) - - # Write out commit message if desired - # calculate the phantom revs first - if opts["commit-file"]: - f = open(opts["commit-file"], "w") - if record_only: - print >>f, 'Recorded rollback of revisions %s via %s from ' % \ - (revs , NAME) - else: - print >>f, 'Rolled back revisions %s via %s from ' % \ - (revs , NAME) - print >>f, '%s' % opts["source-url"] - - f.close() - report('wrote commit message to "%s"' % opts["commit-file"]) - - # Update the set of merged revisions. - merged_revs = merged_revs - revs - branch_props[opts["source-pathid"]] = str(merged_revs) - set_merge_props(branch_dir, branch_props) - -def action_uninit(branch_dir, branch_props): - """Uninit SOURCE URL.""" - # Check branch directory is ready for being modified - check_dir_clean(branch_dir) - - # If the source-pathid does not have an entry in the svnmerge-integrated - # property, simply error out. - if not branch_props.has_key(opts["source-pathid"]): - error('Repository-relative path "%s" does not contain merge ' - 'tracking information for "%s"' \ - % (opts["source-pathid"], branch_dir)) - - del branch_props[opts["source-pathid"]] - - # Set merge property with the selected source deleted - set_merge_props(branch_dir, branch_props) - - # Set blocked revisions for the selected source to None - set_blocked_revs(branch_dir, opts["source-pathid"], None) - - # Write out commit message if desired - if opts["commit-file"]: - f = open(opts["commit-file"], "w") - print >>f, 'Removed merge tracking for "%s" for ' % NAME - print >>f, '%s' % opts["source-url"] - f.close() - report('wrote commit message to "%s"' % opts["commit-file"]) - -############################################################################### -# Command line parsing -- options and commands management -############################################################################### - -class OptBase: - def __init__(self, *args, **kwargs): - self.help = kwargs["help"] - del kwargs["help"] - self.lflags = [] - self.sflags = [] - for a in args: - if a.startswith("--"): self.lflags.append(a) - elif a.startswith("-"): self.sflags.append(a) - else: - raise TypeError, "invalid flag name: %s" % a - if kwargs.has_key("dest"): - self.dest = kwargs["dest"] - del kwargs["dest"] - else: - if not self.lflags: - raise TypeError, "cannot deduce dest name without long options" - self.dest = self.lflags[0][2:] - if kwargs: - raise TypeError, "invalid keyword arguments: %r" % kwargs.keys() - def repr_flags(self): - f = self.sflags + self.lflags - r = f[0] - for fl in f[1:]: - r += " [%s]" % fl - return r - -class Option(OptBase): - def __init__(self, *args, **kwargs): - self.default = kwargs.setdefault("default", 0) - del kwargs["default"] - self.value = kwargs.setdefault("value", None) - del kwargs["value"] - OptBase.__init__(self, *args, **kwargs) - def apply(self, state, value): - assert value == "" - if self.value is not None: - state[self.dest] = self.value - else: - state[self.dest] += 1 - -class OptionArg(OptBase): - def __init__(self, *args, **kwargs): - self.default = kwargs["default"] - del kwargs["default"] - self.metavar = kwargs.setdefault("metavar", None) - del kwargs["metavar"] - OptBase.__init__(self, *args, **kwargs) - - if self.metavar is None: - if self.dest is not None: - self.metavar = self.dest.upper() - else: - self.metavar = "arg" - if self.default: - self.help += " (default: %s)" % self.default - def apply(self, state, value): - assert value is not None - state[self.dest] = value - def repr_flags(self): - r = OptBase.repr_flags(self) - return r + " " + self.metavar - -class CommandOpts: - class Cmd: - def __init__(self, *args): - self.name, self.func, self.usage, self.help, self.opts = args - def short_help(self): - return self.help.split(".")[0] - def __str__(self): - return self.name - def __call__(self, *args, **kwargs): - return self.func(*args, **kwargs) - - def __init__(self, global_opts, common_opts, command_table, version=None): - self.progname = NAME - self.version = version.replace("%prog", self.progname) - self.cwidth = console_width() - 2 - self.ctable = command_table.copy() - self.gopts = global_opts[:] - self.copts = common_opts[:] - self._add_builtins() - for k in self.ctable.keys(): - cmd = self.Cmd(k, *self.ctable[k]) - opts = [] - for o in cmd.opts: - if isinstance(o, types.StringType) or \ - isinstance(o, types.UnicodeType): - o = self._find_common(o) - opts.append(o) - cmd.opts = opts - self.ctable[k] = cmd - - def _add_builtins(self): - self.gopts.append( - Option("-h", "--help", help="show help for this command and exit")) - if self.version is not None: - self.gopts.append( - Option("-V", "--version", help="show version info and exit")) - self.ctable["help"] = (self._cmd_help, - "help [COMMAND]", - "Display help for a specific command. If COMMAND is omitted, " - "display brief command description.", - []) - - def _cmd_help(self, cmd=None, *args): - if args: - self.error("wrong number of arguments", "help") - if cmd is not None: - cmd = self._command(cmd) - self.print_command_help(cmd) - else: - self.print_command_list() - - def _paragraph(self, text, width=78): - chunks = re.split("\s+", text.strip()) - chunks.reverse() - lines = [] - while chunks: - L = chunks.pop() - while chunks and len(L) + len(chunks[-1]) + 1 <= width: - L += " " + chunks.pop() - lines.append(L) - return lines - - def _paragraphs(self, text, *args, **kwargs): - pars = text.split("\n\n") - lines = self._paragraph(pars[0], *args, **kwargs) - for p in pars[1:]: - lines.append("") - lines.extend(self._paragraph(p, *args, **kwargs)) - return lines - - def _print_wrapped(self, text, indent=0): - text = self._paragraphs(text, self.cwidth - indent) - print text.pop(0) - for t in text: - print " " * indent + t - - def _find_common(self, fl): - for o in self.copts: - if fl in o.lflags+o.sflags: - return o - assert False, fl - - def _compute_flags(self, opts, check_conflicts=True): - back = {} - sfl = "" - lfl = [] - for o in opts: - sapp = lapp = "" - if isinstance(o, OptionArg): - sapp, lapp = ":", "=" - for s in o.sflags: - if check_conflicts and back.has_key(s): - raise RuntimeError, "option conflict: %s" % s - back[s] = o - sfl += s[1:] + sapp - for l in o.lflags: - if check_conflicts and back.has_key(l): - raise RuntimeError, "option conflict: %s" % l - back[l] = o - lfl.append(l[2:] + lapp) - return sfl, lfl, back - - def _extract_command(self, args): - """ - Try to extract the command name from the argument list. This is - non-trivial because we want to allow command-specific options even - before the command itself. - """ - opts = self.gopts[:] - for cmd in self.ctable.values(): - opts.extend(cmd.opts) - sfl, lfl, _ = self._compute_flags(opts, check_conflicts=False) - - lopts,largs = getopt.getopt(args, sfl, lfl) - if not largs: - return None - return self._command(largs[0]) - - def _fancy_getopt(self, args, opts, state=None): - if state is None: - state= {} - for o in opts: - if not state.has_key(o.dest): - state[o.dest] = o.default - - sfl, lfl, back = self._compute_flags(opts) - try: - lopts,args = getopt.gnu_getopt(args, sfl, lfl) - except AttributeError: - # Before Python 2.3, there was no gnu_getopt support. - # So we can't parse intermixed positional arguments - # and options. - lopts,args = getopt.getopt(args, sfl, lfl) - - for o,v in lopts: - back[o].apply(state, v) - return state, args - - def _command(self, cmd): - if not self.ctable.has_key(cmd): - self.error("unknown command: '%s'" % cmd) - return self.ctable[cmd] - - def parse(self, args): - if not args: - self.print_small_help() - sys.exit(0) - - cmd = None - try: - cmd = self._extract_command(args) - opts = self.gopts[:] - if cmd: - opts.extend(cmd.opts) - args.remove(cmd.name) - state, args = self._fancy_getopt(args, opts) - except getopt.GetoptError, e: - self.error(e, cmd) - - # Handle builtins - if self.version is not None and state["version"]: - self.print_version() - sys.exit(0) - if state["help"]: # special case for --help - if cmd: - self.print_command_help(cmd) - sys.exit(0) - cmd = self.ctable["help"] - else: - if cmd is None: - self.error("command argument required") - if str(cmd) == "help": - cmd(*args) - sys.exit(0) - return cmd, args, state - - def error(self, s, cmd=None): - print >>sys.stderr, "%s: %s" % (self.progname, s) - if cmd is not None: - self.print_command_help(cmd) - else: - self.print_small_help() - sys.exit(1) - def print_small_help(self): - print "Type '%s help' for usage" % self.progname - def print_usage_line(self): - print "usage: %s <subcommand> [options...] [args...]\n" % self.progname - def print_command_list(self): - print "Available commands (use '%s help COMMAND' for more details):\n" \ - % self.progname - cmds = self.ctable.keys() - cmds.sort() - indent = max(map(len, cmds)) - for c in cmds: - h = self.ctable[c].short_help() - print " %-*s " % (indent, c), - self._print_wrapped(h, indent+6) - def print_command_help(self, cmd): - cmd = self.ctable[str(cmd)] - print 'usage: %s %s\n' % (self.progname, cmd.usage) - self._print_wrapped(cmd.help) - def print_opts(opts, self=self): - if not opts: return - flags = [o.repr_flags() for o in opts] - indent = max(map(len, flags)) - for f,o in zip(flags, opts): - print " %-*s :" % (indent, f), - self._print_wrapped(o.help, indent+5) - print '\nCommand options:' - print_opts(cmd.opts) - print '\nGlobal options:' - print_opts(self.gopts) - - def print_version(self): - print self.version - -############################################################################### -# Options and Commands description -############################################################################### - -global_opts = [ - Option("-F", "--force", - help="force operation even if the working copy is not clean, or " - "there are pending updates"), - Option("-n", "--dry-run", - help="don't actually change anything, just pretend; " - "implies --show-changes"), - Option("-s", "--show-changes", - help="show subversion commands that make changes"), - Option("-v", "--verbose", - help="verbose mode: output more information about progress"), - OptionArg("-u", "--username", - default=None, - help="invoke subversion commands with the supplied username"), - OptionArg("-p", "--password", - default=None, - help="invoke subversion commands with the supplied password"), - OptionArg("-c", "--config-dir", metavar="DIR", - default=None, - help="cause subversion commands to consult runtime config directory DIR"), -] - -common_opts = [ - Option("-b", "--bidirectional", - value=True, - default=False, - help="remove reflected and initialized revisions from merge candidates. " - "Not required but may be specified to speed things up slightly"), - OptionArg("-f", "--commit-file", metavar="FILE", - default="svnmerge-commit-message.txt", - help="set the name of the file where the suggested log message " - "is written to"), - Option("-M", "--record-only", - value=True, - default=False, - help="do not perform an actual merge of the changes, yet record " - "that a merge happened"), - OptionArg("-r", "--revision", - metavar="REVLIST", - default="", - help="specify a revision list, consisting of revision numbers " - 'and ranges separated by commas, e.g., "534,537-539,540"'), - OptionArg("-S", "--source", "--head", - default=None, - help="specify a merge source for this branch. It can be either " - "a working directory path, a full URL, or an unambiguous " - "substring of one of the locations for which merge tracking was " - "already initialized. Needed only to disambiguate in case of " - "multiple merge sources"), -] - -command_table = { - "init": (action_init, - "init [OPTION...] [SOURCE]", - """Initialize merge tracking from SOURCE on the current working - directory. - - If SOURCE is specified, all the revisions in SOURCE are marked as already - merged; if this is not correct, you can use --revision to specify the - exact list of already-merged revisions. - - If SOURCE is omitted, then it is computed from the "svn cp" history of the - current working directory (searching back for the branch point); in this - case, %s assumes that no revision has been integrated yet since - the branch point (unless you teach it with --revision).""" % NAME, - [ - "-f", "-r", # import common opts - OptionArg("-L", "--location-type", - dest="location-type", - default="path", - help="Use this type of location identifier in the new " + - "Subversion properties; 'uuid', 'url', or 'path' " + - "(default)"), - ]), - - "avail": (action_avail, - "avail [OPTION...] [PATH]", - """Show unmerged revisions available for PATH as a revision list. - If --revision is given, the revisions shown will be limited to those - also specified in the option. - - When svnmerge is used to bidirectionally merge changes between a - branch and its source, it is necessary to not merge the same changes - forth and back: e.g., if you committed a merge of a certain - revision of the branch into the source, you do not want that commit - to appear as available to merged into the branch (as the code - originated in the branch itself!). svnmerge will automatically - exclude these so-called "reflected" revisions.""", - [ - Option("-A", "--all", - dest="avail-showwhat", - value=["blocked", "avail"], - default=["avail"], - help="show both available and blocked revisions (aka ignore " - "blocked revisions)"), - "-b", - Option("-B", "--blocked", - dest="avail-showwhat", - value=["blocked"], - help="show the blocked revision list (see '%s block')" % NAME), - Option("-d", "--diff", - dest="avail-display", - value="diffs", - default="revisions", - help="show corresponding diff instead of revision list"), - Option("--summarize", - dest="avail-display", - value="summarize", - help="show summarized diff instead of revision list"), - Option("-l", "--log", - dest="avail-display", - value="logs", - help="show corresponding log history instead of revision list"), - "-r", - "-S", - ]), - - "integrated": (action_integrated, - "integrated [OPTION...] [PATH]", - """Show merged revisions available for PATH as a revision list. - If --revision is given, the revisions shown will be limited to - those also specified in the option.""", - [ - Option("-d", "--diff", - dest="integrated-display", - value="diffs", - default="revisions", - help="show corresponding diff instead of revision list"), - Option("-l", "--log", - dest="integrated-display", - value="logs", - help="show corresponding log history instead of revision list"), - "-r", - "-S", - ]), - - "rollback": (action_rollback, - "rollback [OPTION...] [PATH]", - """Rollback previously merged in revisions from PATH. The - --revision option is mandatory, and specifies which revisions - will be rolled back. Only the previously integrated merges - will be rolled back. - - When manually rolling back changes, --record-only can be used to - instruct %s that a manual rollback of a certain revision - already happened, so that it can record it and offer that - revision for merge henceforth.""" % (NAME), - [ - "-f", "-r", "-S", "-M", # import common opts - ]), - - "merge": (action_merge, - "merge [OPTION...] [PATH]", - """Merge in revisions into PATH from its source. If --revision is omitted, - all the available revisions will be merged. In any case, already merged-in - revisions will NOT be merged again. - - When svnmerge is used to bidirectionally merge changes between a - branch and its source, it is necessary to not merge the same changes - forth and back: e.g., if you committed a merge of a certain - revision of the branch into the source, you do not want that commit - to appear as available to merged into the branch (as the code - originated in the branch itself!). svnmerge will automatically - exclude these so-called "reflected" revisions. - - When manually merging changes across branches, --record-only can - be used to instruct %s that a manual merge of a certain revision - already happened, so that it can record it and not offer that - revision for merge anymore. Conversely, when there are revisions - which should not be merged, use '%s block'.""" % (NAME, NAME), - [ - "-b", "-f", "-r", "-S", "-M", # import common opts - ]), - - "block": (action_block, - "block [OPTION...] [PATH]", - """Block revisions within PATH so that they disappear from the available - list. This is useful to hide revisions which will not be integrated. - If --revision is omitted, it defaults to all the available revisions. - - Do not use this option to hide revisions that were manually merged - into the branch. Instead, use '%s merge --record-only', which - records that a merge happened (as opposed to a merge which should - not happen).""" % NAME, - [ - "-f", "-r", "-S", # import common opts - ]), - - "unblock": (action_unblock, - "unblock [OPTION...] [PATH]", - """Revert the effect of '%s block'. If --revision is omitted, all the - blocked revisions are unblocked""" % NAME, - [ - "-f", "-r", "-S", # import common opts - ]), - - "uninit": (action_uninit, - "uninit [OPTION...] [PATH]", - """Remove merge tracking information from PATH. It cleans any kind of merge - tracking information (including the list of blocked revisions). If there - are multiple sources, use --source to indicate which source you want to - forget about.""", - [ - "-f", "-S", # import common opts - ]), -} - - -def main(args): - global opts - - # Initialize default options - opts = default_opts.copy() - logs.clear() - - optsparser = CommandOpts(global_opts, common_opts, command_table, - version="%%prog r%s\n modified: %s\n\n" - "Copyright (C) 2004,2005 Awarix Inc.\n" - "Copyright (C) 2005, Giovanni Bajo" - % (__revision__, __date__)) - - cmd, args, state = optsparser.parse(args) - opts.update(state) - - source = opts.get("source", None) - branch_dir = "." - - if str(cmd) == "init": - if len(args) == 1: - source = args[0] - elif len(args) > 1: - optsparser.error("wrong number of parameters", cmd) - elif str(cmd) in command_table.keys(): - if len(args) == 1: - branch_dir = args[0] - elif len(args) > 1: - optsparser.error("wrong number of parameters", cmd) - else: - assert False, "command not handled: %s" % cmd - - # Validate branch_dir - if not is_wc(branch_dir): - if str(cmd) == "avail": - info = None - # it should be noted here that svn info does not error exit - # if an invalid target is specified to it (as is - # intuitive). so the try, except code is not absolutely - # necessary. but, I retain it to indicate the intuitive - # handling. - try: - info = get_svninfo(branch_dir) - except LaunchError: - pass - # test that we definitely targeted a subversion directory, - # mirroring the purpose of the earlier is_wc() call - if info is None or not info.has_key("Node Kind") or info["Node Kind"] != "directory": - error('"%s" is neither a valid URL, nor a working directory' % branch_dir) - else: - error('"%s" is not a subversion working directory' % branch_dir) - - # give out some hints as to potential pathids - PathIdentifier.hint(branch_dir) - if source: PathIdentifier.hint(source) - - # Extract the integration info for the branch_dir - branch_props = get_merge_props(branch_dir) - - # Calculate source_url and source_path - report("calculate source path for the branch") - if not source: - if str(cmd) == "init": - cf_source, cf_rev, copy_committed_in_rev = get_copyfrom(branch_dir) - if not cf_source: - error('no copyfrom info available. ' - 'Explicit source argument (-S/--source) required.') - opts["source-url"] = get_repo_root(branch_dir) + cf_source - opts["source-pathid"] = PathIdentifier.from_target(opts["source-url"]) - - if not opts["revision"]: - opts["revision"] = "1-" + cf_rev - else: - opts["source-pathid"] = get_default_source(branch_dir, branch_props) - opts["source-url"] = opts["source-pathid"].get_url() - - assert is_pathid(opts["source-pathid"]) - assert is_url(opts["source-url"]) - else: - # The source was given as a command line argument and is stored in - # SOURCE. Ensure that the specified source does not end in a /, - # otherwise it's easy to have the same source path listed more - # than once in the integrated version properties, with and without - # trailing /'s. - source = rstrip(source, "/") - if not is_wc(source) and not is_url(source): - # Check if it is a substring of a pathid recorded - # within the branch properties. - found = [] - for pathid in branch_props.keys(): - if pathid.match_substring(source): - found.append(pathid) - if len(found) == 1: - # (assumes pathid is a repository-relative-path) - source_pathid = found[0] - source = source_pathid.get_url() - else: - error('"%s" is neither a valid URL, nor an unambiguous ' - 'substring of a repository path, nor a working directory' - % source) - else: - source_pathid = PathIdentifier.from_target(source) - - source_pathid = PathIdentifier.from_target(source) - if str(cmd) == "init" and \ - source_pathid == PathIdentifier.from_target("."): - error("cannot init integration source path '%s'\n" - "Its repository-relative path must differ from the " - "repository-relative path of the current directory." - % source_pathid) - opts["source-pathid"] = source_pathid - opts["source-url"] = target_to_url(source) - - # Sanity check source_url - assert is_url(opts["source-url"]) - # SVN does not support non-normalized URL (and we should not - # have created them) - assert opts["source-url"].find("/..") < 0 - - report('source is "%s"' % opts["source-url"]) - - # Get previously merged revisions (except when command is init) - if str(cmd) != "init": - opts["merged-revs"] = merge_props_to_revision_set(branch_props, - opts["source-pathid"]) - - # Perform the action - cmd(branch_dir, branch_props) - - -if __name__ == "__main__": - try: - main(sys.argv[1:]) - except LaunchError, (ret, cmd, out): - err_msg = "command execution failed (exit code: %d)\n" % ret - err_msg += cmd + "\n" - err_msg += "".join(out) - error(err_msg) - except KeyboardInterrupt: - # Avoid traceback on CTRL+C - print "aborted by user" - sys.exit(1) diff --git a/testing/subversion/svnserve b/testing/subversion/svnserve deleted file mode 100755 index 670fee742..000000000 --- a/testing/subversion/svnserve +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash - -. /etc/rc.conf -. /etc/rc.d/functions -. /etc/conf.d/svnserve - -PID=`pidof -o %PPID /usr/bin/svnserve` -case "$1" in - start) - stat_busy "Starting svnserve" - if [ -z "$PID" ]; then - if [ -n "$SVNSERVE_USER" ]; then - su -s '/bin/sh' $SVNSERVE_USER -c "/usr/bin/svnserve -d $SVNSERVE_ARGS" & - else - /usr/bin/svnserve -d $SVNSERVE_ARGS & - fi - fi - if [ ! -z "$PID" -o $? -gt 0 ]; then - stat_fail - else - add_daemon svnserve - stat_done - fi - ;; - stop) - stat_busy "Stopping svnserve" - [ ! -z "$PID" ] && kill $PID &> /dev/null - if [ $? -gt 0 ]; then - stat_fail - else - rm_daemon svnserve - stat_done - fi - ;; - restart) - $0 stop - sleep 1 - $0 start - ;; - *) - echo "usage: $0 {start|stop|restart}" -esac diff --git a/testing/subversion/svnserve.conf b/testing/subversion/svnserve.conf deleted file mode 100644 index 37fb7ea10..000000000 --- a/testing/subversion/svnserve.conf +++ /dev/null @@ -1,7 +0,0 @@ -# -# Parameters to be passed to svnserve -# -#SVNSERVE_ARGS="-r /path/to/some/repos" -SVNSERVE_ARGS="" - -#SVNSERVE_USER="svn" diff --git a/testing/syslinux/PKGBUILD b/testing/syslinux/PKGBUILD deleted file mode 100644 index 277bf3bf6..000000000 --- a/testing/syslinux/PKGBUILD +++ /dev/null @@ -1,49 +0,0 @@ -# $Id: PKGBUILD 144912 2011-12-10 00:40:44Z thomas $ -# Maintainer: Thomas Bächler <thomas@archlinux.org> -# Maintainer: Tobias Powalowski <tpowa@archlinux.org> - -pkgname=syslinux -pkgver=4.05 -pkgrel=1 -arch=('i686' 'x86_64') -pkgdesc="Collection of boot loaders that boot from FAT, ext2/3/4 and btrfs filesystems, from CDs and via PXE" -url="http://syslinux.zytor.com/" -license=('GPL2') -depends=('perl' 'glibc') -optdepends=('perl-passwd-md5: For md5pass' - 'perl-digest-sha1: For sha1pass' - 'mtools: For mkdiskimage and syslinux' - ) -makedepends=('nasm') -backup=('boot/syslinux/syslinux.cfg') -install=syslinux.install -source=(http://www.kernel.org/pub/linux/utils/boot/syslinux/$pkgname-${pkgver}.tar.bz2 - syslinux-dont-build-dos-windows-targets.patch - syslinux.cfg - syslinux-install_update) -md5sums=('82299242418385da1274c9479a778cb2' - '1528c376e43f0eaccaa80d8ad1bc13b4' - '4dc27d8ab3802f8e50f3dda28168ce6d' - 'b5b4953c0a5a01cd16441402f6321765') - -build() { - # Do not try to build syslinux with our default LDFLAGS, it will fail - unset LDFLAGS - cd "$srcdir"/$pkgname-${pkgver} - # Do not try to build the Windows or DOS installers - patch -p1 -i "$srcdir"/syslinux-dont-build-dos-windows-targets.patch - # Fix FHS manpage path - sed 's|/usr/man|/usr/share/man|g' -i mk/syslinux.mk - make -} - -package() { - cd "$srcdir"/$pkgname-${pkgver} - make INSTALLROOT="$pkgdir" AUXDIR=/usr/lib/syslinux install - - # Install the default configuration - install -D -m644 "$srcdir"/syslinux.cfg "$pkgdir"/boot/syslinux/syslinux.cfg - # Install the installation and update script - # This script is maintained at git://gist.github.com/772138.git - install -D -m755 "$srcdir"/syslinux-install_update "$pkgdir"/usr/sbin/syslinux-install_update -} diff --git a/testing/syslinux/syslinux-dont-build-dos-windows-targets.patch b/testing/syslinux/syslinux-dont-build-dos-windows-targets.patch deleted file mode 100644 index 2b86ab828..000000000 --- a/testing/syslinux/syslinux-dont-build-dos-windows-targets.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Nur syslinux-4.02.orig//Makefile syslinux-4.02//Makefile ---- syslinux-4.02.orig//Makefile 2010-07-21 21:33:13.000000000 +0200 -+++ syslinux-4.02//Makefile 2010-07-22 11:14:03.325522937 +0200 -@@ -54,7 +54,7 @@ - # files that depend only on the B phase, but may have to be regenerated - # for "make installer". - BSUBDIRS = codepage com32 lzo core memdisk modules mbr memdump gpxe sample \ -- diag libinstaller dos win32 win64 dosutil -+ libinstaller - ITARGET = - IOBJECTS = $(ITARGET) \ - utils/gethostip utils/isohybrid utils/mkdiskimage \ diff --git a/testing/syslinux/syslinux-install_update b/testing/syslinux/syslinux-install_update deleted file mode 100644 index f7cd123e1..000000000 --- a/testing/syslinux/syslinux-install_update +++ /dev/null @@ -1,459 +0,0 @@ -#!/bin/bash -# -# Sylinux Installer / Updater Scripts -# Copyright (C) 2011 Matthew Gyurgyik <pyther@pyther.net> -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# -#----------------- -# Exit Codes: -# 1 - get_boot_device or other function failed -# 2 - install/update failed -# 3 - set_active failed -# 4 - install_mbr failed -# -shopt -s nullglob - -libpath="/usr/lib/syslinux" -bootpath="/boot/syslinux" -extlinux="/sbin/extlinux" - -autoupdate_file=/boot/syslinux/SYSLINUX_AUTOUPDATE -com32_files=(menu.c32 vesamenu.c32 chain.c32 hdt.c32 reboot.c32 poweroff.com) -pciids_file=/usr/share/hwdata/pci.ids - -## Helper functions ## -# Taken from libui-sh -# $1 needle -# $2 set (array) haystack -check_is_in() { - local needle="$1" element - shift - for element; do - [[ $element = $needle ]] && return 0 - done - return 1 -} - -# return true when blockdevice is an md raid, otherwise return a unset value -# get all devices that are part of raid device $1 -device_is_raid() { - [[ $1 && -f /proc/mdstat ]] || return 1 - local devmajor=$(stat -c %t "$1") - (( devmajor == 9 )) -} - -mdraid_all_slaves() { - local slave slaves - for slave in /sys/class/block/${1##*/}/slaves/*; do - source "$slave/uevent" - slaves="$slaves/dev/$DEVNAME " - unset DEVNAME - done - echo $slaves -} - -# Check /sys/block to see if device is partitioned -# If we have a partitioned block device (sda1) /sys/block/sda1/dev will not exist -# However, if we have an unpartitioned block device (sda) /sys/block/sda/dev will exist -dev_is_part() { - # $1 - blockdevice - local dev=$1 - - # If block device uevent file should be found - # If a partition is passed in path shouldn't exist - if [[ $dev = *cciss* ]]; then - [[ -f /sys/block/cciss\!${dev##*/}/dev ]] && return 1 - elif [[ $dev = *ida* ]]; then - [[ -f /sys/block/ida\!${dev##*/}/dev ]] && return 1 - else - [[ -f /sys/block/${dev##*/}/dev ]] && return 1 - fi - - return 0 -} - -# If EFI PART is present in the first 8 bytes then it must be a GPT disk -device_is_gpt() { - local partsig=$(dd if="$1" skip=64 bs=8 count=1 2>/dev/null) - [[ $partsig = "EFI PART" ]] -} - -clear_gpt_attr2() { - # $1 - Block Device, no partitions - local disk=$1 - - # Special Exception for cciss controllers - if [[ $disk = *cciss* ]]; then - for part in /dev/cciss/${disk##*/}*p*; do - local partnum="${part##*[[:alpha:]]}" - sgdisk "$disk" --attributes="$partnum":clear:2 &>/dev/null - done - # Smart 2 Controllers - elif [[ $disk = *ida* ]]; then - for part in /dev/ida/${disk##*/}*p*; do - local partnum="${part##*[[:alpha:]]}" - sgdisk "$disk" --attributes="$partnum":clear:2 &>/dev/null - done - else - for part in /sys/block/${disk##*/}/${disk##*/}*; do - local partnum="${part##*[[:alpha:]]}" - sgdisk "$disk" --attributes="$partnum":clear:2 &>/dev/null - done - fi - return 0 -} - -usage() { -cat << EOF -usage: $0 options - -This script will install or upgrade Syslinux - -OPTIONS: - -h Show this message - -i Install Syslinux - -u Update Syslinux - -a Set Boot flag on boot partiton - -m Install Syslinux MBR - -s Updates Syslinux if /boot/syslinux/SYSLINUX_AUTOUPDATE exists - - Arguments Required: - -c Chroot install (ex: -c /mnt) - -Example Usage: syslinux-install_update.sh -i -a -m (install, set boot flag, install mbr) - syslinux-install_update.sh -u (update) -EOF -} - -# Trys to find the partition that /boot resides on -# This will either be on /boot or / (root) -getBoot() { - if [[ ! -d "$bootpath" ]]; then - echo "Could not find $bootpath" - echo "Is boot mounted? Is Syslinux installed?" - exit 1 - fi - - syslinux_fs=(ext2 ext3 ext4 btrfs vfat) - - # Use DATA from findmnt see rc.sysint for more info - if [[ -f /proc/self/mountinfo ]]; then - read rootdev rootfs < <(findmnt -run -t noautofs -o SOURCE,FSTYPE "$CHROOT/") - read bootdev bootfs < <(findmnt -run -t noautofs -o SOURCE,FSTYPE "$CHROOT/boot") - else - echo "Could not find /proc/self/mountinfo" - echo "Are you running a kernel greater than 2.6.24?" - exit 1 - fi - - if [[ $bootfs ]]; then - if ! check_is_in "$bootfs" "${syslinux_fs[@]}"; then - echo "/boot file system is not supported by Syslinux" - exit 1 - fi - boot="boot" - bootpart="$bootdev" - elif [[ $rootfs ]]; then - if ! check_is_in "$rootfs" "${syslinux_fs[@]}"; then - echo "/ (root) file system is not supported by Syslinux" - exit 1 - fi - boot="root" - bootpart="$rootdev" - else - echo "Could not find filesystem on / (root) or /boot." - exit 1 - fi -} - -# We store the partition table type either gpt or mbr in var ptb -# In rare cases a user could have one raid disk using mbr and another using gpt -# In such cases we accept that the output may be incomplete - -# Calls get_ptb() for $bootpart or for all device in RAID -declare -A bootdevs -get_boot_devices() { - if device_is_raid "$bootpart"; then - slaves=$(mdraid_all_slaves "$bootpart") - - for slave in ${slaves[@]}; do - local disk="${slave%%[[:digit:]]*}" - device_is_gpt "$disk" && local ptb="GPT" || local ptb="MBR" - bootdevs[$slave]="$ptb" - done - else - local disk="${bootpart%%[[:digit:]]*}" - device_is_gpt "$disk" && local ptb="GPT" || local ptb="MBR" - bootdevs[$bootpart]="$ptb" - fi -} - -# Function Assumes the boot partition should be marked as active -# All other partitions should not have the boot flag set -set_active() { - # If any bootdev is a block device without partitions bail - # we want to set the boot flag on partitioned disk - for dev in "${!bootdevs[@]}"; do - dev_is_part $dev || { echo "$dev - is a block device. Aborting set_active!"; return 1; } - done - - # Clear BIOS Bootable Legacy Attribute for GPT drives - # In rare cases where a RAID device has slaves on the same block device - # Attribute 2 will be cleared for each partition multiple times - for dev in "${!bootdevs[@]}"; do - local ptb="${bootdevs[$dev]}" - if [[ "$ptb" = GPT ]]; then - local disk="${dev%%[[:digit:]]*}" #ex: /dev/sda - clear_gpt_attr2 "$disk" - fi - done - - # Set the boot flag on bootdevs (generated from get_boot_devices) - for part in "${!bootdevs[@]}"; do - local ptb="${bootdevs[$part]}" - local partnum="${part##*[[:alpha:]]}" - case "$part" in - *[[:digit:]]p[[:digit:]]*) - local disk="${part%%p$partnum}" # get everything before p1 - ;; - *) - local disk="${part%%[[:digit:]]*}" - ;; - esac - - if [[ "$ptb" = MBR ]]; then - if sfdisk "$disk" -A "$partnum" &>/dev/null; then - echo "Boot Flag Set - $part" - else - echo "FAILED to Set the boot flag on $part" - exit 3 - fi - elif [[ "$ptb" = GPT ]]; then - if sgdisk "$disk" --attributes="$partnum":set:2 &>/dev/null; then - echo "Attribute Legacy Bios Bootable Set - $part" - else - echo "FAILED to set attribute Legacy BIOS Bootable on $part" - exit 3 - fi - fi - done - return 0 -} - -install_mbr() { - # If any bootdev is a block device without partitions bail - # we want to install the mbr to a partitioned disk - for dev in "${!bootdevs[@]}"; do - dev_is_part "$dev" || { echo "$dev - is a block device. Aborting MBR install"; return 1; } - done - - for part in "${!bootdevs[@]}"; do - local partnum="${part##*[[:alpha:]]}" - case "$part" in - *[[:digit:]]p[[:digit:]]*) - local disk="${part%%p$partnum}" # get everything before p1 - ;; - *) - local disk="${part%%[[:digit:]]*}" - ;; - esac - local ptb="${bootdevs[$part]}" - - # We want to install to the root of the block device - # If the device is a partition - ABORT! - dev_is_part "$disk" && \ - { echo "ABORT! MBR installation to partition ($disk)!"; exit 4;} - - if [[ "$ptb" = MBR ]]; then - mbrfile="$libpath/mbr.bin" - elif [[ "$ptb" = GPT ]]; then - mbrfile="$libpath/gptmbr.bin" - fi - - if dd bs=440 count=1 conv=notrunc if="$mbrfile" of="$disk" &> /dev/null; then - echo "Installed MBR ($mbrfile) to $disk" - else - echo "Error Installing MBR ($mbrfile) to $disk" - exit 4 - fi - done - return 0 -} - -_install() { - # Copy files to /boot - for file in "${com32_files[@]}"; do - # Symlink files even if links exist - if [[ "$boot" = root ]]; then - ln -s "${libpath#$CHROOT}/$file" "$bootpath/$file" &> /dev/null - elif [[ "$boot" = boot ]]; then - cp "$libpath/$file" "$bootpath/$file" - fi - done - - # Copy / Symlink pci.ids if we copy the com32 module and if pci.ids exists in the FS - if check_is_in "hdt.c32" "${com32_files[@]}" && [[ -f $pciids_file ]]; then - if [[ "$boot" = root ]]; then - ln -s "$pciids_file" "$bootpath/pci.ids" &> /dev/null - elif [[ "$boot" = boot ]]; then - cp "$pciids_file" "$bootpath/pci.ids" &> /dev/null - fi - fi - - if device_is_raid "$bootpart"; then - echo "Detected RAID on /boot - installing Syslinux with --raid" - "$extlinux" --install "$bootpath" -r > /dev/null 2>&1 - else - "$extlinux" --install "$bootpath" > /dev/null 2>&1 - fi - - if (( $? )); then - echo "Syslinux install failed" - exit 2 - else - echo "Syslinux install successful" - fi - - touch "$CHROOT/$autoupdate_file" -} - -update() { - # Update any com and c32 files in /boot - if [[ "$boot" = boot ]]; then - for file in "$bootpath"/*.{c32,com}; do - file=$(basename "$file") - cp "$libpath/$file" "$bootpath/$file" &> /dev/null - done - if [[ -f "$bootpath/pci.ids" ]]; then - cp "$pciids_file" "$bootpath/pci.ids" &> /dev/null - fi - fi - - if device_is_raid $bootpart; then - echo "Detected RAID on /boot - installing Syslinux with --raid" - "$extlinux" --update "$bootpath" -r &> /dev/null - else - "$extlinux" --update "$bootpath" &> /dev/null - fi - - if (($?)); then - echo "Syslinux update failed" - exit 2 - else - echo "Syslinux update successful" - fi -} - -# Make sure only root can run our script -if (( $(id -u) != 0 )); then - echo "This script must be run as root" 1>&2 - exit 1 -fi - -if (( $# == 0 )); then - usage - exit 1 -fi - -while getopts "c:uihmas" opt; do - case $opt in - c) - CHROOT=$(readlink -e "$OPTARG") - if [[ -z $CHROOT ]]; then - echo "error: chroot path ``$OPTARG does not exist"; - exit 1 - fi - ;; - h) - usage - exit 0 - ;; - i) - INSTALL="True" - ;; - u) - UPDATE="True" - ;; - m) - MBR="True" - ;; - a) - SET_ACTIVE="True" - ;; - s) - # If AUTOUPDATE_FILE does not exist exit the script - if [[ -f $autoupdate_file ]]; then - UPDATE="True" - else - exit 0 - fi - ;; - *) - usage - exit 1 - ;; - esac -done - -# Display Usage Information if both Install and Update are passed -if [[ $INSTALL && $UPDATE ]]; then - usage - exit 1 -fi - -# If a chroot dir is path set variables to reflect chroot -if [[ "$CHROOT" ]]; then - libpath="$CHROOT$libpath" - bootpath="$CHROOT$bootpath" - extlinux="$CHROOT$extlinux" -fi - -# Exit if no /boot path exists -if ( f=("$bootpath"/*); (( ! ${#f[@]} )) ); then - echo "Error: $bootpath is empty!" - echo "Is /boot mounted?" - exit 1 -fi - -# Get the boot device if any of these options are passed -if [[ $INSTALL || $UPDATE || $SET_ACTIVE || $MBR ]]; then - getBoot -fi - -# Install or Update -if [[ $INSTALL ]]; then - _install || exit -elif [[ $UPDATE ]]; then - update || exit -fi - - -# SET_ACTIVE and MBR -if [[ $SET_ACTIVE ]] || [[ $MBR ]]; then - get_boot_devices - - if [[ $SET_ACTIVE ]]; then - set_active || exit - fi - - if [[ $MBR ]]; then - install_mbr || exit - fi -fi - -exit 0 - -# vim: set et sw=4: diff --git a/testing/syslinux/syslinux.cfg b/testing/syslinux/syslinux.cfg deleted file mode 100644 index 02127d21d..000000000 --- a/testing/syslinux/syslinux.cfg +++ /dev/null @@ -1,79 +0,0 @@ -# Config file for Syslinux - -# /boot/syslinux/syslinux.cfg -# -# Comboot modules: -# * menu.c32 - provides a text menu -# * vesamenu.c32 - provides a graphical menu -# * chain.c32 - chainload MBRs, partition boot sectors, Windows bootloaders -# * hdt.c32 - hardware detection tool -# * reboot.c32 - reboots the system -# * poweroff.com - shutdown the system -# -# To Use: Copy the respective files from /usr/lib/syslinux to /boot/syslinux. -# If /usr and /boot are on the same file system, symlink the files instead -# of copying them. -# -# If you do not use a menu, a 'boot:' prompt will be shown and the system -# will boot automatically after 5 seconds. -# -# Please review the wiki: https://wiki.archlinux.org/index.php/Syslinux -# The wiki provides further configuration examples - -DEFAULT arch -PROMPT 0 # Change to 1 if you do not want to use a menu -TIMEOUT 50 -# You can create syslinux keymaps with the keytab-lilo tool -#KBDMAP de.ktl - -# Menu Configuration -# Either menu.c32 or vesamenu32.c32 must be copied to /boot/syslinux -UI menu.c32 -#UI vesamenu.c32 - -# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu -MENU TITLE Arch Linux -#MENU BACKGROUND splash.png -MENU COLOR border 30;44 #40ffffff #a0000000 std -MENU COLOR title 1;36;44 #9033ccff #a0000000 std -MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all -MENU COLOR unsel 37;44 #50ffffff #a0000000 std -MENU COLOR help 37;40 #c0ffffff #a0000000 std -MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std -MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std -MENU COLOR msg07 37;40 #90ffffff #a0000000 std -MENU COLOR tabmsg 31;40 #30ffffff #00000000 std - -# boot sections follow -# -# TIP: If you want a 1024x768 framebuffer, add "vga=773" to your kernel line. -# -#-* - -LABEL arch - MENU LABEL Arch Linux - LINUX ../vmlinuz-linux - APPEND root=/dev/sda3 ro - INITRD ../initramfs-linux.img - -LABEL archfallback - MENU LABEL Arch Linux Fallback - LINUX ../vmlinuz-linux - APPEND root=/dev/sda3 ro - INITRD ../initramfs-linux-fallback.img - -#LABEL windows -# MENU LABEL Windows -# COM32 chain.c32 -# APPEND hd0 1 - -LABEL hdt - MENU LABEL HDT (Hardware Detection Tool) - COM32 hdt.c32 - -LABEL reboot - MENU LABEL Reboot - COM32 reboot.c32 - -LABEL off - MENU LABEL Power Off - COMBOOT poweroff.com diff --git a/testing/syslinux/syslinux.install b/testing/syslinux/syslinux.install deleted file mode 100644 index 0dc0ece36..000000000 --- a/testing/syslinux/syslinux.install +++ /dev/null @@ -1,13 +0,0 @@ -post_install() { - echo "==> If you want to use syslinux as your bootloader" - echo "==> edit /boot/syslinux/syslinux.cfg and run" - echo "==> # /usr/sbin/syslinux-install_update -i -a -m" - echo "==> to install it." -} - -post_upgrade() { - # auto-update syslinux if /boot/syslinux/SYSLINUX_AUTOUPDATE exists - /usr/sbin/syslinux-install_update -s -} - -# vim:set ts=2 sw=2 et: diff --git a/testing/texinfo/PKGBUILD b/testing/texinfo/PKGBUILD deleted file mode 100644 index cc20f22b7..000000000 --- a/testing/texinfo/PKGBUILD +++ /dev/null @@ -1,34 +0,0 @@ -# $Id: PKGBUILD 144959 2011-12-12 08:29:38Z allan $ -# Maintainer: Allan McRae <allan@archlinux.org> -# Contributor: Tom Newsom <Jeepster@gmx.co.uk> - -pkgname=texinfo -pkgver=4.13a -pkgrel=7 -pkgdesc="Utilities to work with and produce manuals, ASCII text, and on-line documentation from a single source file" -arch=('i686' 'x86_64') -url="http://www.gnu.org/software/texinfo/" -license=('GPL3') -groups=('base') -depends=('ncurses' 'findutils' 'gzip') -install=texinfo.install -source=(ftp://ftp.gnu.org/pub/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz{,.sig} - texinfo-4.13a-data_types.patch) -md5sums=('71ba711519209b5fb583fed2b3d86fcb' - 'db2ca82c831684cd7cef181234017c46' - 'd8574782ff7def1e2dc5c291dbeaec18') - -build() { - cd ${srcdir}/${pkgname}-4.13 - patch -Np1 -i $srcdir/texinfo-4.13a-data_types.patch - ./configure --prefix=/usr - make -} - -package() { - cd ${srcdir}/${pkgname}-4.13 - make DESTDIR=${pkgdir} install - - # fix this here as it prevents make from trying to rebuild manual pages - sed -i 's#A-z#A-Za-z#' ${pkgdir}/usr/bin/texi2dvi -} diff --git a/testing/texinfo/texinfo-4.13a-data_types.patch b/testing/texinfo/texinfo-4.13a-data_types.patch deleted file mode 100644 index 2a87c2146..000000000 --- a/testing/texinfo/texinfo-4.13a-data_types.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff -up texinfo-4.13/info/window.c_old texinfo-4.13/info/window.c ---- texinfo-4.13/info/window.c_old 2009-08-04 13:46:15.000000000 +0200 -+++ texinfo-4.13/info/window.c 2009-08-04 13:47:29.000000000 +0200 -@@ -1581,7 +1581,7 @@ process_node_text (WINDOW *win, char *st - const char *carried_over_ptr; - size_t carried_over_len, carried_over_count; - const char *cur_ptr = mbi_cur_ptr (iter); -- int cur_len = mb_len (mbi_cur (iter)); -+ size_t cur_len = mb_len (mbi_cur (iter)); - int replen; - int delim = 0; - int rc; -@@ -1754,7 +1754,7 @@ clean_manpage (char *manpage) - mbi_advance (iter)) - { - const char *cur_ptr = mbi_cur_ptr (iter); -- int cur_len = mb_len (mbi_cur (iter)); -+ size_t cur_len = mb_len (mbi_cur (iter)); - - if (cur_len == 1) - { -@@ -1852,8 +1852,8 @@ window_scan_line (WINDOW *win, int line, - mbi_advance (iter)) - { - const char *cur_ptr = mbi_cur_ptr (iter); -- int cur_len = mb_len (mbi_cur (iter)); -- int replen; -+ size_t cur_len = mb_len (mbi_cur (iter)); -+ size_t replen; - - if (cur_ptr >= endp) - break; diff --git a/testing/texinfo/texinfo.install b/testing/texinfo/texinfo.install deleted file mode 100644 index f1554e4f4..000000000 --- a/testing/texinfo/texinfo.install +++ /dev/null @@ -1,21 +0,0 @@ -infodir=usr/share/info -filelist=(info.info info-stnd.info texinfo texinfo-1 texinfo-2 texinfo-3) - -post_install() { - # Scan *all* info files on install - for file in $(find $infodir -type f ! -name dir); do - install-info $file $infodir/dir 2> /dev/null - done -} - -post_upgrade() { - for file in ${filelist[@]}; do - install-info $infodir/$file.gz $infodir/dir 2> /dev/null - done -} - -pre_remove() { - for file in ${filelist[@]}; do - install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null - done -} diff --git a/testing/unixodbc/PKGBUILD b/testing/unixodbc/PKGBUILD new file mode 100644 index 000000000..8d19b5a7c --- /dev/null +++ b/testing/unixodbc/PKGBUILD @@ -0,0 +1,28 @@ +# $Id: PKGBUILD 145233 2011-12-19 18:04:27Z andrea $ +# Maintainer: AndyRTR <andyrtr@archlinux.org> +# Contributor: Judd Vinet <jvinet@zeroflux.org> +# Contributor: Tom Newsom <Jeepster@gmx.co.uk> + +pkgname=unixodbc +pkgver=2.3.1 +pkgrel=1 +pkgdesc="ODBC is an open specification for providing application developers with a predictable API with which to access Data Sources" +arch=('i686' 'x86_64') +license=('GPL2' 'LGPL2.1') +url="http://www.unixodbc.org/" +backup=('etc/odbc.ini' 'etc/odbcinst.ini') +depends=('readline' 'libltdl') +options=('!libtool') +source=("http://www.unixodbc.org/unixODBC-$pkgver.tar.gz") +md5sums=('86788d4006620fa1f171c13d07fdcaab') + +build() { + cd ${srcdir}/unixODBC-${pkgver} + ./configure --prefix=/usr --sysconfdir=/etc + make +} + +package() { + cd ${srcdir}/unixODBC-${pkgver} + make DESTDIR=${pkgdir} install +} diff --git a/testing/xulrunner/PKGBUILD b/testing/xulrunner/PKGBUILD new file mode 100644 index 000000000..58b80ace8 --- /dev/null +++ b/testing/xulrunner/PKGBUILD @@ -0,0 +1,52 @@ +# $Id: PKGBUILD 145256 2011-12-20 11:59:26Z ibiru $ +# Maintainer: Jan de Groot <jgc@archlinux.org> +# Contributor: Alexander Baldeck <alexander@archlinux.org> +pkgname=xulrunner +pkgver=9.0 +pkgrel=1 +pkgdesc="Mozilla Runtime Environment" +arch=('i686' 'x86_64') +license=('MPL' 'GPL' 'LGPL') +depends=('gtk2' 'mozilla-common' 'nss>=3.13.1' 'libxt' 'libxrender' 'hunspell' 'startup-notification' 'mime-types' 'dbus-glib' 'alsa-lib' 'libevent' 'sqlite3>=3.7.4' 'libnotify' 'libvpx' 'python2') +makedepends=('zip' 'unzip' 'pkg-config' 'diffutils' 'wireless_tools' 'yasm' 'mesa') +url="http://wiki.mozilla.org/XUL:Xul_Runner" +source=(ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases//$pkgver/source/firefox-$pkgver.source.tar.bz2 + mozconfig + mozilla-pkgconfig.patch) +options=('!emptydirs') +replaces=('xulrunner-oss') +md5sums=('d8d0c8c79660752b02d9e9ab69a68f94' + '8dfb78c5bd0581c8cf4753813132bf0b' + '27271ce647a83906ef7a24605e840d61') + +build() { + cd "$srcdir/mozilla-release" + cp "$srcdir/mozconfig" .mozconfig + + #fix libdir/sdkdir - fedora + patch -Np1 -i "$srcdir/mozilla-pkgconfig.patch" + + export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/lib/xulrunner-$pkgver" + export PYTHON="/usr/bin/python2" + + make -j1 -f client.mk build MOZ_MAKE_FLAGS="$MAKEFLAGS" +} + +package() { + cd "$srcdir/mozilla-release" + make -j1 -f client.mk DESTDIR="$pkgdir" install + + rm -rf "$pkgdir"/usr/lib/xulrunner-$pkgver/{dictionaries,hyphenation} + ln -sf /usr/share/hunspell "$pkgdir/usr/lib/xulrunner-$pkgver/dictionaries" + ln -sf /usr/share/hyphen "$pkgdir/usr/lib/xulrunner-$pkgver/hyphenation" + + # add xulrunner library path to ld.so.conf + install -d $pkgdir/etc/ld.so.conf.d + echo "/usr/lib/xulrunner-$pkgver" > $pkgdir/etc/ld.so.conf.d/xulrunner.conf + + chmod +x "${pkgdir}/usr/lib/xulrunner-devel-$pkgver/sdk/bin/xpt.py" + sed -i 's|!/usr/bin/env python|!/usr/bin/env python2|' "$pkgdir/usr/lib/xulrunner-devel-$pkgver/sdk/bin/xpt.py" + sed -i 's|!/usr/bin/env python|!/usr/bin/env python2|' "$pkgdir/usr/lib/xulrunner-devel-$pkgver/sdk/bin/header.py" + sed -i 's|!/usr/bin/env python|!/usr/bin/env python2|' "$pkgdir/usr/lib/xulrunner-devel-$pkgver/sdk/bin/typelib.py" + sed -i 's|!/usr/bin/env python|!/usr/bin/env python2|' "$pkgdir/usr/lib/xulrunner-devel-$pkgver/sdk/bin/xpidl.py" +} diff --git a/testing/xulrunner/mozconfig b/testing/xulrunner/mozconfig new file mode 100644 index 000000000..82a6ae512 --- /dev/null +++ b/testing/xulrunner/mozconfig @@ -0,0 +1,38 @@ +. $topsrcdir/xulrunner/config/mozconfig + +ac_add_options --prefix=/usr +ac_add_options --libdir=/usr/lib + +# System libraries +ac_add_options --with-system-nspr +ac_add_options --with-system-nss +ac_add_options --with-system-jpeg +ac_add_options --with-system-zlib +ac_add_options --with-system-bz2 +ac_add_options --with-system-png +ac_add_options --with-system-libevent +ac_add_options --with-system-libvpx +ac_add_options --enable-system-hunspell +ac_add_options --enable-system-sqlite +ac_add_options --enable-system-ffi +ac_add_options --enable-system-cairo +ac_add_options --enable-system-pixman +ac_add_options --with-pthreads + +# Features +ac_add_options --enable-safe-browsing +ac_add_options --enable-startup-notification +ac_add_options --enable-gio + +ac_add_options --disable-gnomevfs +ac_add_options --disable-crashreporter +ac_add_options --disable-updater +ac_add_options --disable-tests +ac_add_options --disable-mochitest +ac_add_options --disable-installer + +# Optimization +ac_add_options --enable-optimize + +export MOZILLA_OFFICIAL=1 +mk_add_options MOZILLA_OFFICIAL=1 diff --git a/testing/xulrunner/mozilla-pkgconfig.patch b/testing/xulrunner/mozilla-pkgconfig.patch new file mode 100644 index 000000000..037d4aee0 --- /dev/null +++ b/testing/xulrunner/mozilla-pkgconfig.patch @@ -0,0 +1,40 @@ +diff -Nur mozilla-release.orig/xulrunner/installer/libxul-embedding.pc.in mozilla-release/xulrunner/installer/libxul-embedding.pc.in +--- mozilla-release.orig/xulrunner/installer/libxul-embedding.pc.in 2011-12-19 22:11:38.100005674 +0000 ++++ mozilla-release/xulrunner/installer/libxul-embedding.pc.in 2011-12-19 22:14:35.095147521 +0000 +@@ -6,5 +6,6 @@ + Name: libxul-embedding + Description: Static library for version-independent embedding of the Mozilla runtime + Version: %MOZILLA_VERSION% ++Requires: %NSPR_NAME% >= %NSPR_VERSION% + Libs: -L${sdkdir}/lib -lxpcomglue -ldl + Cflags: -DXPCOM_GLUE -I${includedir} %WCHAR_CFLAGS% +diff -Nur mozilla-release.orig/xulrunner/installer/libxul.pc.in mozilla-release/xulrunner/installer/libxul.pc.in +--- mozilla-release.orig/xulrunner/installer/libxul.pc.in 2011-12-19 22:11:38.126672110 +0000 ++++ mozilla-release/xulrunner/installer/libxul.pc.in 2011-12-19 22:14:04.375412141 +0000 +@@ -1,5 +1,6 @@ + prefix=%prefix% + sdkdir=%sdkdir% ++libdir=%libdir% + includedir=%includedir% + idldir=%idldir% + +diff -Nur mozilla-release.orig/xulrunner/installer/Makefile.in mozilla-release/xulrunner/installer/Makefile.in +--- mozilla-release.orig/xulrunner/installer/Makefile.in 2011-12-19 22:11:38.126672110 +0000 ++++ mozilla-release/xulrunner/installer/Makefile.in 2011-12-19 22:18:28.743135321 +0000 +@@ -108,6 +108,7 @@ + -e "s|%includedir%|$(includedir)|" \ + -e "s|%idldir%|$(idldir)|" \ + -e "s|%sdkdir%|$(sdkdir)|" \ ++ -e "s|%libdir%|$(installdir)|" \ + -e "s|%MOZ_APP_NAME%|$(MOZ_APP_NAME)|" \ + -e "s|%MOZILLA_VERSION%|$(MOZ_APP_VERSION)|" \ + -e "s|%WCHAR_CFLAGS%|$(WCHAR_CFLAGS)|" \ +diff -Nur mozilla-release.orig/xulrunner/installer/mozilla-js.pc.in mozilla-release/xulrunner/installer/mozilla-js.pc.in +--- mozilla-release.orig/xulrunner/installer/mozilla-js.pc.in 2011-12-19 22:11:38.126672110 +0000 ++++ mozilla-release/xulrunner/installer/mozilla-js.pc.in 2011-12-19 22:18:55.569571004 +0000 +@@ -7,4 +7,4 @@ + Version: %MOZILLA_VERSION% + Requires: %NSPR_NAME% >= %NSPR_VERSION% + Libs: -L${sdkdir}/lib %MOZ_JS_LINK% +-Cflags: -I${includedir} -DXP_UNIX -DJS_THREADSAFE ++Cflags: -I${includedir} -I${includedir}/js -DXP_UNIX -DJS_THREADSAFE |