summaryrefslogtreecommitdiff
path: root/testing
diff options
context:
space:
mode:
Diffstat (limited to 'testing')
-rw-r--r--testing/apr-util/PKGBUILD28
-rw-r--r--testing/avahi/PKGBUILD75
-rw-r--r--testing/avahi/gnome-nettool.pngbin4509 -> 0 bytes
-rw-r--r--testing/avahi/install21
-rw-r--r--testing/avahi/rc.d.patch11
-rw-r--r--testing/bison/PKGBUILD39
-rw-r--r--testing/bison/bison-2.5-undefined-reference.patch11
-rw-r--r--testing/bison/bison.install16
-rw-r--r--testing/gdbm/PKGBUILD57
-rw-r--r--testing/gdbm/gdbm-1.10-zeroheaders.patch33
-rw-r--r--testing/gdbm/gdbm.install21
-rw-r--r--testing/htop/ChangeLog22
-rw-r--r--testing/htop/PKGBUILD38
-rw-r--r--testing/jack/99-realtime.conf2
-rw-r--r--testing/jack/jack.install57
-rw-r--r--testing/libevent/PKGBUILD34
-rw-r--r--testing/lighttpd/PKGBUILD67
-rw-r--r--testing/lighttpd/lighttpd.conf12
-rw-r--r--testing/lighttpd/lighttpd.logrotate.d6
-rw-r--r--testing/lighttpd/lighttpd.rc.d132
-rw-r--r--testing/links/PKGBUILD47
-rw-r--r--testing/links/links.desktop7
-rw-r--r--testing/man-db/1361_1360.diff25
-rw-r--r--testing/man-db/PKGBUILD60
-rw-r--r--testing/man-db/convert-mans11
-rwxr-xr-xtesting/man-db/man-db.cron.daily39
-rw-r--r--testing/man-db/man-db.install22
-rw-r--r--testing/mutt/PKGBUILD48
-rw-r--r--testing/mutt/install8
-rw-r--r--testing/ocaml/PKGBUILD57
-rw-r--r--testing/ocaml/fix-ocaml-binutils-2.21.patch66
-rw-r--r--testing/openssh/PKGBUILD67
-rwxr-xr-xtesting/openssh/sshd45
-rw-r--r--testing/openssh/sshd.confd4
-rw-r--r--testing/openssh/sshd.pam12
-rw-r--r--testing/perl/0001-Append-CFLAGS-and-LDFLAGS-to-their-Config.pm-counter.patch83
-rw-r--r--testing/perl/ChangeLog66
-rw-r--r--testing/perl/PKGBUILD119
-rw-r--r--testing/perl/fix-h2ph-and-tests.patch104
-rw-r--r--testing/perl/perl.install10
-rw-r--r--testing/perl/perlbin.csh15
-rwxr-xr-xtesting/perl/perlbin.sh18
-rw-r--r--testing/perl/provides.pl286
-rw-r--r--testing/php/PKGBUILD365
-rw-r--r--testing/php/apache.conf13
-rw-r--r--testing/php/logrotate.d.php-fpm6
-rw-r--r--testing/php/php-fpm.conf.in.patch80
-rw-r--r--testing/php/php.ini.patch126
-rw-r--r--testing/php/rc.d.php-fpm158
-rw-r--r--testing/python/PKGBUILD81
-rw-r--r--testing/python/gdbm-magic-values.patch13
-rw-r--r--testing/ruby/PKGBUILD46
-rw-r--r--testing/subversion/PKGBUILD100
-rw-r--r--testing/subversion/subversion-perl-bindings.patch12
-rw-r--r--testing/subversion/subversion.rpath.fix.patch10
-rw-r--r--testing/subversion/subversion.suppress.deprecation.warnings.patch22
-rw-r--r--testing/subversion/svn11
-rw-r--r--testing/subversion/svnmerge.py2370
-rwxr-xr-xtesting/subversion/svnserve42
-rw-r--r--testing/subversion/svnserve.conf7
-rw-r--r--testing/syslog-ng/PKGBUILD53
-rw-r--r--testing/syslog-ng/syslog-ng.conf92
-rw-r--r--testing/syslog-ng/syslog-ng.logrotate7
-rwxr-xr-xtesting/syslog-ng/syslog-ng.rc66
-rw-r--r--testing/ypserv/PKGBUILD37
-rwxr-xr-xtesting/ypserv/yppasswd34
-rwxr-xr-xtesting/ypserv/ypserv34
-rw-r--r--testing/zsh/PKGBUILD58
-rw-r--r--testing/zsh/modules.patch11
-rw-r--r--testing/zsh/zsh.install11
70 files changed, 0 insertions, 5766 deletions
diff --git a/testing/apr-util/PKGBUILD b/testing/apr-util/PKGBUILD
deleted file mode 100644
index 5fc373942..000000000
--- a/testing/apr-util/PKGBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# $Id: PKGBUILD 143458 2011-11-24 17:02:48Z stephane $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-# Maintainer: Pierre Schmitz <pierre@archlinux.de>
-
-pkgname=apr-util
-pkgver=1.3.12
-pkgrel=3
-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/avahi/PKGBUILD b/testing/avahi/PKGBUILD
deleted file mode 100644
index 0d4d0bc97..000000000
--- a/testing/avahi/PKGBUILD
+++ /dev/null
@@ -1,75 +0,0 @@
-# $Id: PKGBUILD 143460 2011-11-24 17:02:50Z stephane $
-# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
-# Maintainer: Gaetan Bisson <bisson@archlinux.org>
-
-pkgname=avahi
-pkgver=0.6.30
-pkgrel=6
-pkgdesc='A multicast/unicast DNS-SD framework'
-arch=('i686' 'x86_64')
-url='http://www.avahi.org/'
-license=('LGPL')
-depends=('expat' 'libdaemon' 'glib2' 'dbus' 'libcap' 'gdbm')
-optdepends=('gtk3: avahi-discover-standalone, bshell, bssh, bvnc'
- 'gtk2: gtk2 bindings'
- 'qt3: qt3 bindings'
- 'qt: qt bindings'
- 'pygtk: avahi-bookmarks, avahi-discover'
- 'twisted: avahi-bookmarks'
- 'mono: mono bindings'
- 'dbus-python: avahi-discover'
- 'nss-mdns: NSS support for mDNS')
-makedepends=('qt' 'qt3' 'pygtk' 'mono' 'intltool' 'dbus-python'
- 'gtk-sharp-2' 'gobject-introspection' 'gtk3')
-backup=(etc/avahi/avahi-daemon.conf etc/avahi/services/{sftp-,}ssh.service)
-install=install
-conflicts=('howl' 'mdnsresponder')
-provides=('howl' 'mdnsresponder')
-replaces=('howl' 'mdnsresponder')
-options=('!libtool')
-source=("http://www.avahi.org/download/avahi-${pkgver}.tar.gz"
- 'gnome-nettool.png'
- 'rc.d.patch')
-sha1sums=('5b77443537600a00770e4c77e3c443eeb5861d06'
- 'cf56387c88aed246b9f435efc182ef44de4d52f3'
- '625ad7c131c0c1c383caeddef18fc7a32d8f3ab9')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
-
- sed -i 's/netdev/network/g' avahi-daemon/avahi-dbus.conf
- patch -p1 -i "../rc.d.patch"
-
- # pygtk requires python2; make it explicit in case other python are installed: FS#21865
- PYTHON=python2 \
- PKG_CONFIG_PATH=/opt/qt/lib/pkgconfig \
- ./configure \
- --prefix=/usr \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --disable-static \
- --disable-monodoc \
- --disable-doxygen-doc \
- --disable-xmltoman \
- --enable-compat-libdns_sd \
- --enable-compat-howl \
- --with-distro=archlinux \
- --with-avahi-priv-access-group=network \
- --with-autoipd-user=avahi \
- --with-autoipd-group=avahi \
- --with-systemdsystemunitdir=/lib/systemd/system # See FS#20999
-
- make
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
- install -D -m 644 ../gnome-nettool.png "${pkgdir}"/usr/share/pixmaps/gnome-nettool.png
-
- cd "${pkgdir}"
- sed -i '1c #!/usr/bin/python2' usr/bin/avahi-{bookmarks,discover}
- # howl and mdnsresponder compatability
- (cd usr/include; ln -s avahi-compat-libdns_sd/dns_sd.h dns_sd.h; ln -s avahi-compat-howl howl)
- (cd usr/lib/pkgconfig; ln -s avahi-compat-howl.pc howl.pc)
-}
diff --git a/testing/avahi/gnome-nettool.png b/testing/avahi/gnome-nettool.png
deleted file mode 100644
index 227d0678a..000000000
--- a/testing/avahi/gnome-nettool.png
+++ /dev/null
Binary files differ
diff --git a/testing/avahi/install b/testing/avahi/install
deleted file mode 100644
index 7c75c3dd4..000000000
--- a/testing/avahi/install
+++ /dev/null
@@ -1,21 +0,0 @@
-post_install() {
- getent group avahi &>/dev/null || groupadd -r -g 84 avahi >/dev/null
- getent passwd avahi &>/dev/null || useradd -r -u 84 -g avahi -d / -s /bin/false -c avahi avahi >/dev/null
-
- cat <<EOF
-==> The following daemons may be added to DAEMONS in /etc/rc.conf:
-==> avahi-daemon: the mdns responder, you probably want this.
-==> dbus needs to be running when you start it.
-==> avahi-dnsconfd: daemon used for peer-to-peer automatic dns
-==> configuration on dhcp-less networks.
-
-==> To use some of the client applications you will have to install python.
-==> In addition, pygtk is required for the graphical ones and
-==> twisted for avahi-bookmarks.
-EOF
-}
-
-post_remove() {
- getent passwd avahi &>/dev/null && userdel avahi >/dev/null
- getent group avahi &>/dev/null && groupdel avahi >/dev/null
-}
diff --git a/testing/avahi/rc.d.patch b/testing/avahi/rc.d.patch
deleted file mode 100644
index fd735734b..000000000
--- a/testing/avahi/rc.d.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -aur old/initscript/archlinux/avahi-daemon.in new/initscript/archlinux/avahi-daemon.in
---- old/initscript/archlinux/avahi-daemon.in 2011-06-24 03:07:00.916170590 +0200
-+++ new/initscript/archlinux/avahi-daemon.in 2011-06-24 03:16:32.220596377 +0200
-@@ -33,6 +33,7 @@
-
- case "$1" in
- start)
-+ ck_daemon dbus && { echo -n "Start dbus first." >&2; stat_die; }
- stat_busy "Starting $DESC"
- $DAEMON -D > /dev/null 2>&1
- if [ $? -gt 0 ]; then
diff --git a/testing/bison/PKGBUILD b/testing/bison/PKGBUILD
deleted file mode 100644
index ea49664d9..000000000
--- a/testing/bison/PKGBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# $Id: PKGBUILD 143498 2011-11-25 03:24:12Z allan $
-# Maintainer: Allan McRae <allan@archlinux.org>
-# Contributor: Eric Belanger <eric@archlinux.org>
-
-pkgname=bison
-pkgver=2.5
-pkgrel=3
-pkgdesc="The GNU general-purpose parser generator"
-arch=('i686' 'x86_64')
-license=('GPL3')
-url="http://www.gnu.org/software/bison/bison.html"
-depends=('glibc' 'm4' 'sh')
-groups=('base-devel')
-install=bison.install
-source=(ftp://ftp.gnu.org/gnu/bison/${pkgname}-${pkgver}.tar.bz2{,.sig}
- bison-2.5-undefined-reference.patch)
-md5sums=('9dba20116b13fc61a0846b0058fbe004'
- '610b73db67bd4760209458efe7554ca3'
- '2015c5421b2ad99032154f27bf5c4772')
-
-build() {
- cd ${srcdir}/${pkgname}-${pkgver}
-
- # workaround for FS#26794
- patch -Np1 -i $srcdir/bison-2.5-undefined-reference.patch
-
- ./configure --prefix=/usr --datadir=/usr/share
- make
-}
-
-check() {
- cd ${srcdir}/${pkgname}-${pkgver}
- make check
-}
-
-package() {
- cd ${srcdir}/${pkgname}-${pkgver}
- make DESTDIR=${pkgdir} install
-}
diff --git a/testing/bison/bison-2.5-undefined-reference.patch b/testing/bison/bison-2.5-undefined-reference.patch
deleted file mode 100644
index ea390259e..000000000
--- a/testing/bison/bison-2.5-undefined-reference.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -Naur bison-2.5-orig/lib/yyerror.c bison-2.5/lib/yyerror.c
---- bison-2.5-orig/lib/yyerror.c 2011-01-04 00:50:42.000000000 +1000
-+++ bison-2.5/lib/yyerror.c 2011-11-09 22:01:48.725507079 +1000
-@@ -18,6 +18,7 @@
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
- #include <stdio.h>
-+#undef fprintf
-
- int yyerror (char const *);
-
diff --git a/testing/bison/bison.install b/testing/bison/bison.install
deleted file mode 100644
index 0081a194f..000000000
--- a/testing/bison/bison.install
+++ /dev/null
@@ -1,16 +0,0 @@
-infodir=usr/share/info
-file=bison.info.gz
-
-post_install() {
- [ -x usr/bin/install-info ] || return 0
- install-info $infodir/$file $infodir/dir 2> /dev/null
-}
-
-post_upgrade() {
- post_install $1
-}
-
-pre_remove() {
- [ -x usr/bin/install-info ] || return 0
- install-info --delete $infodir/$file $infodir/dir 2> /dev/null
-}
diff --git a/testing/gdbm/PKGBUILD b/testing/gdbm/PKGBUILD
deleted file mode 100644
index f5bf6c5ac..000000000
--- a/testing/gdbm/PKGBUILD
+++ /dev/null
@@ -1,57 +0,0 @@
-# $Id: PKGBUILD 143462 2011-11-24 17:02:53Z stephane $
-# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
-# Contributor: Allan McRae <allan@archlinux.org>
-# Contributor: judd <jvinet@zeroflux.org>
-
-pkgname=gdbm
-pkgver=1.10
-pkgrel=1
-pkgdesc="GNU database library"
-url="http://www.gnu.org/software/gdbm/gdbm.html"
-license=('GPL')
-arch=('i686' 'x86_64')
-depends=('glibc' 'sh')
-source=(ftp://ftp.gnu.org/gnu/gdbm/${pkgname}-${pkgver}.tar.gz
- gdbm-1.10-zeroheaders.patch)
-options=('!libtool' '!makeflags')
-install=gdbm.install
-md5sums=('88770493c2559dc80b561293e39d3570'
- 'ac255b10452005237836cd2d3a470733')
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
-
- # Prevent gdbm from storing uninitialized memory content
- # to database files. This patch improves security, as the
- # uninitialized memory might contain sensitive informations
- # from other applications.
- # https://bugzilla.redhat.com/show_bug.cgi?id=4457
- # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=208927
- patch -Np1 -i ../gdbm-1.10-zeroheaders.patch
-
- ./configure --prefix=/usr \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --enable-libgdbm-compat
-
- make prefix=/usr
-}
-
-check() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make check
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make prefix="${pkgdir}"/usr \
- manprefix="${pkgdir}"/usr/share/man \
- man3dir="${pkgdir}"/usr/share/man/man3 \
- infodir="${pkgdir}"/usr/share/info \
- install
-
- # create symlinks for compatibility
- install -dm755 "${pkgdir}"/usr/include/gdbm
- ln -sf ../gdbm.h "${pkgdir}"/usr/include/gdbm/gdbm.h
- ln -sf ../ndbm.h "${pkgdir}"/usr/include/gdbm/ndbm.h
- ln -sf ../dbm.h "${pkgdir}"/usr/include/gdbm/dbm.h
-}
diff --git a/testing/gdbm/gdbm-1.10-zeroheaders.patch b/testing/gdbm/gdbm-1.10-zeroheaders.patch
deleted file mode 100644
index a268f6bdf..000000000
--- a/testing/gdbm/gdbm-1.10-zeroheaders.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -up gdbm-1.10/src/falloc.c.zeroheaders gdbm-1.10/src/falloc.c
---- gdbm-1.10/src/falloc.c.zeroheaders 2011-11-11 11:59:11.000000000 +0100
-+++ gdbm-1.10/src/falloc.c 2011-11-14 17:34:32.487604027 +0100
-@@ -255,7 +255,7 @@ push_avail_block (GDBM_FILE dbf)
-
-
- /* Split the header block. */
-- temp = (avail_block *) malloc (av_size);
-+ temp = (avail_block *) calloc (1, av_size);
- if (temp == NULL) _gdbm_fatal (dbf, _("malloc error"));
- /* Set the size to be correct AFTER the pop_avail_block. */
- temp->size = dbf->header->avail.size;
-diff -up gdbm-1.10/src/gdbmopen.c.zeroheaders gdbm-1.10/src/gdbmopen.c
---- gdbm-1.10/src/gdbmopen.c.zeroheaders 2011-11-11 19:39:42.000000000 +0100
-+++ gdbm-1.10/src/gdbmopen.c 2011-11-14 17:33:24.867608650 +0100
-@@ -264,7 +264,7 @@ gdbm_open (const char *file, int block_s
- (dbf->header->block_size - sizeof (hash_bucket))
- / sizeof (bucket_element) + 1;
- dbf->header->bucket_size = dbf->header->block_size;
-- dbf->bucket = (hash_bucket *) malloc (dbf->header->bucket_size);
-+ dbf->bucket = (hash_bucket *) calloc (1, dbf->header->bucket_size);
- if (dbf->bucket == NULL)
- {
- gdbm_close (dbf);
-@@ -456,7 +456,7 @@ _gdbm_init_cache(GDBM_FILE dbf, size_t s
- for(index = 0; index < size; index++)
- {
- (dbf->bucket_cache[index]).ca_bucket
-- = (hash_bucket *) malloc (dbf->header->bucket_size);
-+ = (hash_bucket *) calloc (1, dbf->header->bucket_size);
- if ((dbf->bucket_cache[index]).ca_bucket == NULL)
- {
- gdbm_errno = GDBM_MALLOC_ERROR;
diff --git a/testing/gdbm/gdbm.install b/testing/gdbm/gdbm.install
deleted file mode 100644
index 2d1ce2c5a..000000000
--- a/testing/gdbm/gdbm.install
+++ /dev/null
@@ -1,21 +0,0 @@
-infodir=/usr/share/info
-filelist=(gdbm.info)
-
-post_install() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- usr/bin/install-info $infodir/$file $infodir/dir 2> /dev/null
- done
-}
-
-post_upgrade() {
- post_install $1
-}
-
-pre_remove() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- usr/bin/install-info --delete $infodir/$file $infodir/dir 2> /dev/null
- done
-}
-
diff --git a/testing/htop/ChangeLog b/testing/htop/ChangeLog
deleted file mode 100644
index df71cf644..000000000
--- a/testing/htop/ChangeLog
+++ /dev/null
@@ -1,22 +0,0 @@
-2011-10-19 Andrea Scarpino <andrea@archlinux.org>
- * Enable cgroup support (FS#26155)
- * Add lsof and strace optional depends (FS#25778)
- * Fix crash when column is less than 40 (closes FS#25823)
-
-2011-05-17 Angel Velasquez <angvp@archlinux.org>
- * Added patch to fix --sort-key (closes FS#23224)
-
-2009-09-21 Eric Belanger <eric@archlinux.org>
-
- * htop 0.8.3-1
- * Upstream update
- * Built with vserver and openvz support (close FS#12755)
-
-2008-12-09 Alexander Fehr <pizzapunk gmail com>
-
- * htop-0.8.1-1:
- * New upstream release
- * New maintainer
- * Added patch to fix FS#12235
- * Enabled Unicode support
- * Added ChangeLog
diff --git a/testing/htop/PKGBUILD b/testing/htop/PKGBUILD
deleted file mode 100644
index 8457c8f5a..000000000
--- a/testing/htop/PKGBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# $Id: PKGBUILD 143084 2011-11-22 15:51:43Z angvp $
-# Maintainer: Angel Velasquez <angvp@archlinux.org>
-# Contributor: Eric Belanger <eric@archlinux.org>
-# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
-
-pkgname=htop
-pkgver=1.0
-pkgrel=1
-pkgdesc="Interactive process viewer"
-arch=('i686' 'x86_64')
-url="http://htop.sourceforge.net/"
-license=('GPL')
-depends=('ncurses')
-makedepends=('python2')
-optdepends=('lsof' 'strace')
-options=('!emptydirs')
-changelog=ChangeLog
-source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz)
-md5sums=('325112ca7947ea1f6d6441f631e00384')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
-
- sed -i 's|ncursesw/curses.h|curses.h|' RichString.h RichString.c configure
- sed -i 's|python|python2|' scripts/MakeHeader.py
-
- ./configure --prefix=/usr \
- --enable-unicode \
- --enable-openvz \
- --enable-vserver \
- --enable-cgroup
- make
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
-}
diff --git a/testing/jack/99-realtime.conf b/testing/jack/99-realtime.conf
deleted file mode 100644
index 671a10851..000000000
--- a/testing/jack/99-realtime.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-@realtime - rtprio 99
-@realtime - memlock unlimited
diff --git a/testing/jack/jack.install b/testing/jack/jack.install
deleted file mode 100644
index 2d0db58e7..000000000
--- a/testing/jack/jack.install
+++ /dev/null
@@ -1,57 +0,0 @@
-_addgroup() {
- # _addgroup $GROUPNAME $GID
- [ ${#@} -ne 2 ] && return 1
-
- echo -n " > Checking if '$1' group exists..."
- if ! getent group $1 > /dev/null; then
- echo "no"
- echo " > Add '$1' group"
- echo -n " >> checking if GID is in use..."
- # no other package or user is supposed to use this gid
- # delete the group and re-add it at the end without static gid
- if getent group $2 > /dev/null; then
- echo "yes"
- firstgroup=$(getent group $2 | sed 's/:.*//')
- firstusers=$(getent group $2 | sed 's/.*://')
- echo " >> delete group '$firstgroup'"
- groupdel $firstgroup
- else
- echo "no"
- fi
-
- echo " >> add our group with proper GID"
- groupadd -g $2 $1
-
- if [ -n "$firstgroup" ]; then
- echo " >> restore group '$firstgroup' with dynamic GID"
- groupadd $firstgroup
- [ -n "$firstusers" ] && gpasswd -M $firstusers $firstgroup
- fi
- else
- echo "yes (all good)"
- fi
-}
-
-post_install() {
- _addgroup realtime 112
- echo
- echo " * You must be part of the 'realtime' group to use RT scheduling"
- echo " * You don't need an 'RT kernel' to use RT scheduling"
- echo " * If you don't need RT start jack with '--no-realtime'"
- echo " * If you don't record or sequence audio you don't need RT"
-}
-
-post_upgrade() {
- _addgroup realtime 112
- echo
- echo " * You must be part of the 'realtime' group to use RT scheduling"
- echo " * Configuring RT through limits.conf has been deprecated"
- echo " * See /etc/security/limits.d/99-realtime.conf instead"
-}
-
-post_remove() {
- [ "$(getent group realtime | cut -d ':' -f 3)" = '112' ] && \
- groupdel realtime || true
-}
-
-# vim:set ts=2 sw=2 et:
diff --git a/testing/libevent/PKGBUILD b/testing/libevent/PKGBUILD
deleted file mode 100644
index f23b3ac41..000000000
--- a/testing/libevent/PKGBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# $Id: PKGBUILD 143631 2011-11-27 20:54:04Z eric $
-# Maintainer:
-# Contributor: Judd <jvinet@zeroflux.org>
-
-pkgname=libevent
-pkgver=2.0.16
-pkgrel=1
-pkgdesc="An event notification library"
-arch=('i686' 'x86_64')
-url="http://www.monkey.org/~provos/libevent/"
-license=('GPL2')
-depends=('openssl')
-optdepends=('python2: to use event_rpcgen.py')
-options=('!libtool')
-source=(https://github.com/downloads/libevent/libevent/libevent-$pkgver-stable.tar.gz{,.asc})
-sha1sums=('9eb9fe3c0ec607525ed2dee6827687efcd0696ac'
- '679023511db0106cb84a36e4ff78604d00d0a611')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}-stable"
- sed -i 's#python#python2#' event_rpcgen.py
- ./configure --prefix=/usr --sysconfdir=/etc
- make
-}
-
-check() {
- cd "${srcdir}/${pkgname}-${pkgver}-stable"
- make check
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}-stable"
- make DESTDIR="${pkgdir}" install
-}
diff --git a/testing/lighttpd/PKGBUILD b/testing/lighttpd/PKGBUILD
deleted file mode 100644
index 1a41dd995..000000000
--- a/testing/lighttpd/PKGBUILD
+++ /dev/null
@@ -1,67 +0,0 @@
-# $Id: PKGBUILD 143464 2011-11-24 17:02:56Z stephane $
-# Maintainer: Pierre Schmitz <pierre@archlinux.de>
-
-pkgname=lighttpd
-pkgver=1.4.29
-pkgrel=3
-pkgdesc='a secure, fast, compliant and very flexible web-server'
-license=('custom')
-arch=('i686' 'x86_64')
-url="http://www.lighttpd.net/"
-depends=('pcre' 'bzip2' 'libldap' 'util-linux')
-makedepends=('fcgi' 'libmysqlclient' 'lua' 'libxml2' 'e2fsprogs' 'sqlite3' 'gdbm' 'pkgconfig')
-optdepends=('libxml2: mod_webdav'
- 'lua: mod_cml/mod_magnet'
- 'libmysqlclient: mod_mysql_vhost'
- 'sqlite3: mod_webdav')
-backup=('etc/lighttpd/lighttpd.conf' 'etc/logrotate.d/lighttpd')
-options=('!libtool' 'emptydirs')
-source=("http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-${pkgver}.tar.bz2"
- "http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-${pkgver}.tar.bz2.asc"
- 'lighttpd.rc.d' 'lighttpd.logrotate.d' 'lighttpd.conf')
-md5sums=('e6e67b09986cb504db630b5a86b2dd76'
- 'de2afb4ed6a088fd7fa5f13c387a08f0'
- '268386e71f5748dc1d887b9a0ab65589'
- '913e2157fa78d990c32146f387d44c2b'
- 'acdaa94299e6299cb5085e6d88babeca')
-
-build() {
- cd $srcdir/$pkgname-$pkgver
-
- ./configure --prefix=/usr \
- --libexecdir=/usr/lib/lighttpd/modules \
- --sysconfdir=/etc/lighttpd \
- --with-mysql \
- --with-ldap \
- --with-attr \
- --with-openssl \
- --with-kerberos5 \
- --without-fam \
- --with-webdav-props \
- --with-webdav-locks \
- --with-gdbm \
- --with-memcache \
- --with-lua
- make
-}
-
-check() {
- cd $srcdir/$pkgname-$pkgver
- make check
-}
-
-package() {
- cd $srcdir/$pkgname-$pkgver
- make DESTDIR=$pkgdir install
-
- install -D -m755 $srcdir/lighttpd.rc.d $pkgdir/etc/rc.d/lighttpd
- install -D -m644 $srcdir/lighttpd.logrotate.d $pkgdir/etc/logrotate.d/lighttpd
- install -D -m644 $srcdir/lighttpd.conf $pkgdir/etc/lighttpd/lighttpd.conf
- install -d -m755 -o http -g http $pkgdir/var/{log,cache}/lighttpd/
-
- pushd doc/config >/dev/null
- find . -type f ! -name 'Makefile*' -exec install -D -m644 {} ${pkgdir}/usr/share/doc/lighttpd/config/{} \;
- popd >/dev/null
-
- install -D -m644 COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING
-}
diff --git a/testing/lighttpd/lighttpd.conf b/testing/lighttpd/lighttpd.conf
deleted file mode 100644
index 4ca1b23a4..000000000
--- a/testing/lighttpd/lighttpd.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-# This is a minimal example config
-# See /usr/share/doc/lighttpd
-# and http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions
-
-server.port = 80
-server.username = "http"
-server.groupname = "http"
-server.document-root = "/srv/http"
-server.errorlog = "/var/log/lighttpd/error.log"
-dir-listing.activate = "enable"
-index-file.names = ( "index.html" )
-mimetype.assign = ( ".html" => "text/html", ".txt" => "text/plain", ".jpg" => "image/jpeg", ".png" => "image/png" )
diff --git a/testing/lighttpd/lighttpd.logrotate.d b/testing/lighttpd/lighttpd.logrotate.d
deleted file mode 100644
index 5ff32a0c5..000000000
--- a/testing/lighttpd/lighttpd.logrotate.d
+++ /dev/null
@@ -1,6 +0,0 @@
-/var/log/lighttpd/*log {
- missingok
- postrotate
- /etc/rc.d/lighttpd reload >/dev/null || true
- endscript
-}
diff --git a/testing/lighttpd/lighttpd.rc.d b/testing/lighttpd/lighttpd.rc.d
deleted file mode 100644
index 88f0a1474..000000000
--- a/testing/lighttpd/lighttpd.rc.d
+++ /dev/null
@@ -1,132 +0,0 @@
-#!/bin/bash
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-
-
-pid_file='/var/run/lighttpd/lighttpd-angel.pid'
-
-get_pid() {
- if [ -r "${pid_file}" ]; then
- cat "${pid_file}"
- else
- pgrep -f /usr/sbin/lighttpd-angel
- fi
-}
-
-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/lighttpd/lighttpd.conf ]; then
- stat_append '(/etc/lighttpd/lighttpd.conf not found)'
- stat_die
- fi
-
- /usr/sbin/lighttpd -t -f /etc/lighttpd/lighttpd.conf >/dev/null 2>&1
- if [ $? -gt 0 ]; then
- stat_append '(error in /etc/lighttpd/lighttpd.conf)'
- stat_die
- fi
-
- local piddir=$(dirname "${pid_file}")
- if [ ! -d "${piddir}" ]; then
- install -d -m755 -o http -g http "${piddir}"
- fi
-
- stat_done
-}
-
-start() {
- stat_busy 'Starting lighttpd'
-
- local PID=$(get_pid)
- if [ -z "$PID" ]; then
- nohup /usr/sbin/lighttpd-angel -D -f /etc/lighttpd/lighttpd.conf >>/var/log/lighttpd/lighttpd-angel.log 2>&1 &
- if [ $? -gt 0 ]; then
- stat_die
- else
- echo $! > "${pid_file}"
- add_daemon lighttpd
- stat_done
- fi
- else
- stat_die
- fi
-}
-
-stop() {
- stat_busy 'Stopping lighttpd'
- local PID=$(get_pid)
- [ -n "$PID" ] && kill $PID &> /dev/null
- if [ $? -gt 0 ]; then
- stat_fail
- else
- [ -f "${pid_file}" ] && rm -f "${pid_file}"
- rm_daemon lighttpd
- stat_done
- fi
-}
-
-gracefull-stop() {
- stat_busy 'Stopping lighttpd gracefully'
- local PID=$(get_pid)
- [ -n "$PID" ] && kill -INT $PID &> /dev/null
- if [ $? -gt 0 ]; then
- stat_fail
- else
- [ -f "${pid_file}" ] && rm -f "${pid_file}"
- rm_daemon lighttpd
- stat_done
- fi
-}
-
-reload() {
- stat_busy 'Reloading lighttpd'
- local PID=$(get_pid)
- [ -n "$PID" ] && kill -HUP $PID &> /dev/null
- if [ $? -gt 0 ]; then
- stat_die
- else
- stat_done
- fi
-}
-
-
-case "$1" in
- start)
- test_config
- start
- ;;
- stop)
- test_config
- stop
- ;;
- gracefull-stop)
- test_config
- stop
- ;;
- reload)
- test_config
- reload
- ;;
- restart)
- test_config
- stop
- while [ -n "$(get_pid)" ]; do
- sleep 1
- done
- start
- ;;
- status)
- stat_busy 'Checking lighttpd status'
- ck_status lighttpd
- ;;
- *)
- echo "usage: $0 {start|stop|gracefull-stop|reload|restart|status}"
-esac
-
-exit 0
diff --git a/testing/links/PKGBUILD b/testing/links/PKGBUILD
deleted file mode 100644
index 511ef96d3..000000000
--- a/testing/links/PKGBUILD
+++ /dev/null
@@ -1,47 +0,0 @@
-# $Id: PKGBUILD 143456 2011-11-24 16:44:18Z eric $
-# Maintainer: Eric Bélanger <eric@archlinux.org>
-
-pkgname=links
-pkgver=2.4
-pkgrel=1
-pkgdesc="A text WWW browser, similar to Lynx"
-arch=('i686' 'x86_64')
-url="http://links.twibright.com/"
-license=('GPL')
-depends=('bzip2' 'zlib' 'openssl' 'gpm')
-makedepends=('libtiff' 'libpng' 'libxt')
-optdepends=('libx11: for using xlinks' 'libtiff: for using xlinks' 'libpng: for using xlinks')
-provides=('links-g')
-conflicts=('links-g')
-replaces=('links-g')
-source=(http://links.twibright.com/download/${pkgname}-${pkgver}.tar.bz2 links.desktop)
-sha1sums=('c09fcb03874b1d0586f582f73833bb2f4c9ed7ac'
- 'f600e27c2a71184444f7dd07a10230aa44463a02')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- (cd intl; ./gen-intl; ./synclang)
- ./configure --prefix=/usr --mandir=/usr/share/man --enable-javascript \
- --enable-graphics --with-x --with-fb
- make
- mv links xlinks
-
- ./configure --prefix=/usr --mandir=/usr/share/man --enable-javascript \
- --disable-graphics --without-x --without-fb
- make
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
-
- install -m755 xlinks "${pkgdir}/usr/bin/xlinks"
- ln -s links.1.gz "${pkgdir}/usr/share/man/man1/xlinks.1.gz"
-
- install -D -m644 "${srcdir}/links.desktop" "${pkgdir}/usr/share/applications/links.desktop"
- install -d "${pkgdir}/usr/share/pixmaps"
- install -m644 links_16x16_1.xpm links_16x16_2.xpm links_32x32.xpm "${pkgdir}/usr/share/pixmaps/"
-
- install -d "${pkgdir}/usr/share/doc/links/calibration"
- install -m644 doc/links_cal/* "${pkgdir}/usr/share/doc/links/calibration/"
-}
diff --git a/testing/links/links.desktop b/testing/links/links.desktop
deleted file mode 100644
index 9d6338a5b..000000000
--- a/testing/links/links.desktop
+++ /dev/null
@@ -1,7 +0,0 @@
-[Desktop Entry]
-Name=Links
-Exec=xlinks -g
-Icon=links_32x32.xpm
-Type=Application
-Terminal=false
-Categories=Network;WebBrowser;
diff --git a/testing/man-db/1361_1360.diff b/testing/man-db/1361_1360.diff
deleted file mode 100644
index c93856980..000000000
--- a/testing/man-db/1361_1360.diff
+++ /dev/null
@@ -1,25 +0,0 @@
-=== modified file 'src/straycats.c'
---- src/straycats.c 2011-01-10 20:08:22 +0000
-+++ src/straycats.c 2011-06-04 06:34:51 +0000
-@@ -177,6 +177,7 @@
- char *lang, *page_encoding;
- char *mandir_base;
- pipecmd *col_cmd;
-+ char *col_locale;
- char *fullpath;
-
- /* we have a straycat. Need to filter it and get
-@@ -226,6 +227,12 @@
- col_cmd = pipecmd_new_argstr
- (get_def_user ("col", COL));
- pipecmd_arg (col_cmd, "-bx");
-+ col_locale = find_charset_locale ("UTF-8");
-+ if (col_locale) {
-+ pipecmd_setenv (col_cmd, "LC_CTYPE",
-+ col_locale);
-+ free (col_locale);
-+ }
- pipeline_command (decomp, col_cmd);
-
- fullpath = canonicalize_file_name (catdir);
-
diff --git a/testing/man-db/PKGBUILD b/testing/man-db/PKGBUILD
deleted file mode 100644
index f2cdff3c3..000000000
--- a/testing/man-db/PKGBUILD
+++ /dev/null
@@ -1,60 +0,0 @@
-# $Id: PKGBUILD 143466 2011-11-24 17:02:58Z stephane $
-# Maintainer: Andreas Radke <andyrtr@archlinux.org>
-# Contributor: Sergej Pupykin <sergej@aur.archlinux.org>
-
-pkgname=man-db
-pkgver=2.6.0.2
-pkgrel=3
-pkgdesc="A utility for reading man pages"
-arch=('i686' 'x86_64')
-url="http://www.nongnu.org/man-db/"
-license=('GPL' 'LGPL')
-groups=('base')
-depends=( 'bash' 'gdbm' 'zlib' 'groff' 'libpipeline')
-optdepends=('less' 'gzip')
-backup=('etc/man_db.conf'
- 'etc/cron.daily/man-db')
-conflicts=('man')
-provides=('man')
-replaces=('man')
-install=${pkgname}.install
-source=(http://savannah.nongnu.org/download/man-db/$pkgname-$pkgver.tar.gz
- 1361_1360.diff
- #http://launchpad.net/man-db/main/${pkgver}/+download/${pkgname}-${pkgver}.tar.gz
- convert-mans man-db.cron.daily)
-options=('!libtool')
-md5sums=('2b41c96efec032d2b74ccbf2e401f93e'
- '08b76b1f924c5493a280b79fc0aebde4'
- '2b7662a7d5b33fe91f9f3e034361a2f6'
- 'd30c39ae47560304471b5461719e0f03')
-
-build() {
- cd ${srcdir}/${pkgname}-${pkgver}
- # https://bugs.archlinux.org/task/18722
- patch -Np0 -i $srcdir/1361_1360.diff
- ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib \
- --with-db=gdbm --disable-setuid --enable-mandirs=GNU \
- --with-sections="1 n l 8 3 0 2 5 4 9 6 7"
- make
-}
-
-check() {
- cd ${srcdir}/${pkgname}-${pkgver}
- make check
-}
-
-package() {
- cd ${srcdir}/${pkgname}-${pkgver}
- make DESTDIR=${pkgdir} install
-
- # part of groff pkg
- rm -f ${pkgdir}/usr/bin/zsoelim
-
- # script from LFS to convert manpages, see
- # http://www.linuxfromscratch.org/lfs/view/6.4/chapter06/man-db.html
- install -D -m755 ${srcdir}/convert-mans ${pkgdir}/usr/bin/convert-mans
-
- #install whatis cron script
- install -D -m744 ${srcdir}/man-db.cron.daily ${pkgdir}/etc/cron.daily/man-db
-}
-
diff --git a/testing/man-db/convert-mans b/testing/man-db/convert-mans
deleted file mode 100644
index 58a0224b0..000000000
--- a/testing/man-db/convert-mans
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh -e
-FROM="$1"
-TO="$2"
-shift ; shift
-while [ $# -gt 0 ]
-do
- FILE="$1"
- shift
- iconv -f "$FROM" -t "$TO" "$FILE" >.tmp.iconv
- mv .tmp.iconv "$FILE"
-done
diff --git a/testing/man-db/man-db.cron.daily b/testing/man-db/man-db.cron.daily
deleted file mode 100755
index 53e66e1e9..000000000
--- a/testing/man-db/man-db.cron.daily
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/sh
-
-# nicenesses range from -20 (most favorable scheduling) to 19 (least favorable)
-NICE=19
-
-# 0 for none, 1 for real time, 2 for best-effort, 3 for idle
-IONICE_CLASS=2
-
-# 0-7 (for IONICE_CLASS 1 and 2 only), 0=highest, 7=lowest
-IONICE_PRIORITY=7
-
-UPDATEMANDB="/usr/bin/mandb --quiet"
-
-# Update the "whatis" database
-#/usr/sbin/makewhatis -u -w
-
-# taken from Debian
-# man-db cron daily
-set -e
-
-if ! [ -d /var/cache/man ]; then
- # Recover from deletion, per FHS.
- mkdir -p /var/cache/man
- chmod 755 /var/cache/man
-fi
-
-# regenerate man database
-
-if [ -x /usr/bin/nice ]; then
- UPDATEMANDB="/usr/bin/nice -n ${NICE:-19} ${UPDATEMANDB}"
-fi
-
-if [ -x /usr/bin/ionice ]; then
- UPDATEMANDB="/usr/bin/ionice -c ${IONICE_CLASS:-2} -n ${IONICE_PRIORITY:-7} ${UPDATEMANDB}"
-fi
-
-${UPDATEMANDB}
-
-exit 0
diff --git a/testing/man-db/man-db.install b/testing/man-db/man-db.install
deleted file mode 100644
index f6f0f27a6..000000000
--- a/testing/man-db/man-db.install
+++ /dev/null
@@ -1,22 +0,0 @@
-post_install() {
- echo "it's recommended to create an initial"
- echo "database running as root:"
- echo "\"/usr/bin/mandb --quiet\""
-}
-
-post_upgrade() {
- if [ "`vercmp $2 2.5.3-2`" -lt 0 ]; then
- echo "systemuser \"man\" is no more required"
- echo "run \"userdel man\". please also"
- echo "chown root:root /var/cache/man"
- fi
- # force database rebuild to get rid off badly imported pages
- if [ "`vercmp $2 2.6.0.2`" -lt 0 ]; then
- echo "(re)building database..."
- mandb -c --quiet
- fi
-}
-
-post_remove() {
- rm -rf /var/cache/man
-}
diff --git a/testing/mutt/PKGBUILD b/testing/mutt/PKGBUILD
deleted file mode 100644
index 57b14432d..000000000
--- a/testing/mutt/PKGBUILD
+++ /dev/null
@@ -1,48 +0,0 @@
-# $Id: PKGBUILD 143468 2011-11-24 17:03:00Z stephane $
-# Contributor: tobias [tobias [at] archlinux.org]
-# Maintainer: Gaetan Bisson <bisson@archlinux.org>
-
-pkgname=mutt
-pkgver=1.5.21
-pkgrel=6
-pkgdesc='Small but very powerful text-based mail client'
-url='http://www.mutt.org/'
-license=('GPL')
-backup=('etc/Muttrc')
-arch=('i686' 'x86_64')
-optdepends=('smtp-forwarder: to send mail')
-depends=('gpgme' 'ncurses' 'openssl' 'libsasl' 'gdbm' 'libidn' 'mime-types' 'krb5')
-source=("ftp://ftp.mutt.org/mutt/devel/${pkgname}-${pkgver}.tar.gz")
-sha1sums=('a8475f2618ce5d5d33bff85c0affdf21ab1d76b9')
-
-install=install
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- ./configure \
- --prefix=/usr \
- --sysconfdir=/etc \
- --enable-gpgme \
- --enable-pop \
- --enable-imap \
- --enable-smtp \
- --enable-hcache \
- --with-curses=/usr \
- --with-regex \
- --with-gss=/usr \
- --with-ssl=/usr \
- --with-sasl \
- --with-idn \
-
- make
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
-
- rm "${pkgdir}"/usr/bin/{flea,muttbug}
- rm "${pkgdir}"/usr/share/man/man1/{flea,muttbug}.1
- rm "${pkgdir}"/etc/mime.types{,.dist}
- install -Dm644 contrib/gpg.rc "${pkgdir}"/etc/Muttrc.gpg.dist
-}
diff --git a/testing/mutt/install b/testing/mutt/install
deleted file mode 100644
index d65675c06..000000000
--- a/testing/mutt/install
+++ /dev/null
@@ -1,8 +0,0 @@
-post_install() {
- cat <<EOF
-
-==> For GPG support, add the following to your muttrc:
-==> source /etc/Muttrc.gpg.dist
-
-EOF
-}
diff --git a/testing/ocaml/PKGBUILD b/testing/ocaml/PKGBUILD
deleted file mode 100644
index 1ea6e5ccd..000000000
--- a/testing/ocaml/PKGBUILD
+++ /dev/null
@@ -1,57 +0,0 @@
-# $Id: PKGBUILD 143470 2011-11-24 17:03:04Z stephane $
-# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
-
-pkgbase='ocaml'
-pkgname=('ocaml' 'ocaml-compiler-libs')
-pkgver=3.12.1
-pkgrel=3
-pkgdesc="A functional language with OO extensions"
-arch=('i686' 'x86_64')
-license=('LGPL2' 'custom: QPL-1.0')
-url="http://caml.inria.fr/"
-depends=('gdbm')
-makedepends=('tk' 'ncurses>=5.6-7' 'libx11')
-optdepends=('ncurses: advanced ncurses features' 'tk: advanced tk features')
-source=(http://caml.inria.fr/distrib/ocaml-3.12/${pkgname}-${pkgver}.tar.gz)
-md5sums=('814a047085f0f901ab7d8e3a4b7a9e65')
-options=('!makeflags' '!emptydirs')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- ./configure -prefix /usr
- make world.opt
-}
-
-package_ocaml() {
- cd "${srcdir}/${pkgbase}-${pkgver}"
- make PREFIX="${pkgdir}/usr" MANDIR="${pkgdir}/usr/share/man" install
-
- # Save >10MB with this one, makepkg only strips debug symbols.
- #find "${pkgdir}/usr/lib" -type f -name '*.so.*' -exec strip --strip-unneeded {} \;
-
- # install license
- install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
- install -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/"
-}
-
-package_ocaml-compiler-libs() {
-pkgdesc="Several modules used internally by the OCaml compiler"
-license=('custom: QPL-1.0')
-depends=('ocaml')
-optdepends=()
-
- cd "${srcdir}/${pkgbase}-${pkgver}"
-
- # Install compiler libraries
- local compiler_libs="${pkgdir}/usr/lib/ocaml/compiler-libs"
- mkdir -p "$compiler_libs"/{parsing,typing,utils}
- cp parsing/*.{cmi,cmo,cmx,ml,mli,mll,o} "$compiler_libs"/parsing
- cp typing/*.{cmi,cmo,cmx,ml,mli,o} "$compiler_libs"/typing
- cp utils/*.{cmi,cmo,cmx,ml,mli,o} "$compiler_libs"/utils
- # duplicated by installation
- rm -f "$compiler_libs"/typing/outcometree.{cmi,mli}
-
- # install license
- install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
- install -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/"
-}
diff --git a/testing/ocaml/fix-ocaml-binutils-2.21.patch b/testing/ocaml/fix-ocaml-binutils-2.21.patch
deleted file mode 100644
index fa7664cec..000000000
--- a/testing/ocaml/fix-ocaml-binutils-2.21.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From: Stephane Glondu <steph@glondu.net>
-Date: Tue, 8 Mar 2011 21:17:40 +0100
-Subject: [PATCH] Fix ocamlopt w.r.t. binutils 2.21
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Bug: http://caml.inria.fr/mantis/view.php?id=5237
-Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=617404
-Authors: Eric Cooper, spiralvoice
-Reviewed-by: Stéphane Glondu <steph@glondu.net>
----
- asmcomp/amd64/emit.mlp | 13 +++++++------
- asmcomp/i386/emit.mlp | 6 +++---
- 2 files changed, 10 insertions(+), 9 deletions(-)
-
-diff --git a/asmcomp/amd64/emit.mlp b/asmcomp/amd64/emit.mlp
-index 4a3f844..525c6e6 100644
---- a/asmcomp/amd64/emit.mlp
-+++ b/asmcomp/amd64/emit.mlp
-@@ -679,17 +679,18 @@ let fundecl fundecl =
- emit_all true fundecl.fun_body;
- List.iter emit_call_gc !call_gc_sites;
- emit_call_bound_errors ();
-+ begin match Config.system with
-+ "linux" | "gnu" ->
-+ ` .type {emit_symbol fundecl.fun_name},@function\n`;
-+ ` .size {emit_symbol fundecl.fun_name},.-{emit_symbol fundecl.fun_name}\n`
-+ | _ -> ()
-+ end;
- if !float_constants <> [] then begin
- if macosx
- then ` .literal8\n`
- else ` .section .rodata.cst8,\"a\",@progbits\n`;
- List.iter emit_float_constant !float_constants
-- end;
-- match Config.system with
-- "linux" | "gnu" ->
-- ` .type {emit_symbol fundecl.fun_name},@function\n`;
-- ` .size {emit_symbol fundecl.fun_name},.-{emit_symbol fundecl.fun_name}\n`
-- | _ -> ()
-+ end
-
- (* Emission of data *)
-
-diff --git a/asmcomp/i386/emit.mlp b/asmcomp/i386/emit.mlp
-index 2992f29..0b1252c 100644
---- a/asmcomp/i386/emit.mlp
-+++ b/asmcomp/i386/emit.mlp
-@@ -905,12 +905,12 @@ let fundecl fundecl =
- emit_all true fundecl.fun_body;
- List.iter emit_call_gc !call_gc_sites;
- emit_call_bound_errors ();
-- List.iter emit_float_constant !float_constants;
-- match Config.system with
-+ begin match Config.system with
- "linux_elf" | "bsd_elf" | "gnu" ->
- ` .type {emit_symbol fundecl.fun_name},@function\n`;
- ` .size {emit_symbol fundecl.fun_name},.-{emit_symbol fundecl.fun_name}\n`
-- | _ -> ()
-+ | _ -> () end;
-+ List.iter emit_float_constant !float_constants
-
-
- (* Emission of data *)
---
diff --git a/testing/openssh/PKGBUILD b/testing/openssh/PKGBUILD
deleted file mode 100644
index 6b4681089..000000000
--- a/testing/openssh/PKGBUILD
+++ /dev/null
@@ -1,67 +0,0 @@
-# $Id: PKGBUILD 143549 2011-11-26 12:47:01Z bisson $
-# Maintainer: Gaetan Bisson <bisson@archlinux.org>
-# Contributor: Aaron Griffin <aaron@archlinux.org>
-# Contributor: judd <jvinet@zeroflux.org>
-
-pkgname=openssh
-pkgver=5.9p1
-pkgrel=5
-pkgdesc='Free version of the SSH connectivity tools'
-arch=('i686' 'x86_64')
-license=('custom:BSD')
-url='http://www.openssh.org/portable.html'
-backup=('etc/ssh/ssh_config' 'etc/ssh/sshd_config' 'etc/pam.d/sshd' 'etc/conf.d/sshd')
-depends=('krb5' 'openssl' 'libedit')
-optdepends=('x11-ssh-askpass: input passphrase in X without a terminal')
-source=("ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/${pkgname}-${pkgver}.tar.gz"
- 'sshd.confd'
- 'sshd.pam'
- 'sshd')
-sha1sums=('ac4e0055421e9543f0af5da607a72cf5922dcc56'
- 'ec102deb69cad7d14f406289d2fc11fee6eddbdd'
- '3413909fd45a28701c92e6e5b59c6b65346ddb0f'
- '21fa88de6cc1c7912e71655f50896ba17991a1c2')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
-
- ./configure \
- --prefix=/usr \
- --libexecdir=/usr/lib/ssh \
- --sysconfdir=/etc/ssh \
- --with-privsep-user=nobody \
- --with-md5-passwords \
- --with-pam \
- --with-mantype=man \
- --with-xauth=/usr/bin/xauth \
- --with-kerberos5=/usr \
- --with-ssl-engine \
- --with-libedit=/usr/lib \
- --disable-strip # stripping is done by makepkg
-
- make
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
-
- install -Dm755 ../sshd "${pkgdir}"/etc/rc.d/sshd
- install -Dm644 ../sshd.pam "${pkgdir}"/etc/pam.d/sshd
- install -Dm644 ../sshd.confd "${pkgdir}"/etc/conf.d/sshd
- install -Dm644 LICENCE "${pkgdir}/usr/share/licenses/${pkgname}/LICENCE"
-
- rm "${pkgdir}"/usr/share/man/man1/slogin.1
- ln -sf ssh.1.gz "${pkgdir}"/usr/share/man/man1/slogin.1.gz
-
- # additional contrib scripts that we like
- install -Dm755 contrib/findssl.sh "${pkgdir}"/usr/bin/findssl.sh
- install -Dm755 contrib/ssh-copy-id "${pkgdir}"/usr/bin/ssh-copy-id
- install -Dm644 contrib/ssh-copy-id.1 "${pkgdir}"/usr/share/man/man1/ssh-copy-id.1
-
- # PAM is a common, standard feature to have
- sed \
- -e '/^#ChallengeResponseAuthentication yes$/c ChallengeResponseAuthentication no' \
- -e '/^#UsePAM no$/c UsePAM yes' \
- -i "${pkgdir}"/etc/ssh/sshd_config
-}
diff --git a/testing/openssh/sshd b/testing/openssh/sshd
deleted file mode 100755
index 1d68fb877..000000000
--- a/testing/openssh/sshd
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/bin/bash
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-. /etc/conf.d/sshd
-
-PIDFILE=/var/run/sshd.pid
-PID=$(cat $PIDFILE 2>/dev/null)
-if ! readlink -q /proc/$PID/exe | grep -q '^/usr/sbin/sshd'; then
- PID=
- rm $PIDFILE 2>/dev/null
-fi
-
-case "$1" in
- start)
- stat_busy 'Starting Secure Shell Daemon'
- /usr/bin/ssh-keygen -A
- [[ -d /var/empty ]] || mkdir -p /var/empty
- [[ -z $PID ]] && /usr/sbin/sshd $SSHD_ARGS
- if [[ $? -gt 0 ]]; then
- stat_fail
- else
- add_daemon sshd
- stat_done
- fi
- ;;
- stop)
- stat_busy 'Stopping Secure Shell Daemon'
- [[ ! -z $PID ]] && kill $PID &> /dev/null
- if [[ $? -gt 0 ]]; then
- stat_fail
- else
- rm_daemon sshd
- stat_done
- fi
- ;;
- restart)
- $0 stop
- sleep 1
- $0 start
- ;;
- *)
- echo "usage: $0 {start|stop|restart}"
-esac
-exit 0
diff --git a/testing/openssh/sshd.confd b/testing/openssh/sshd.confd
deleted file mode 100644
index 5ce7c0079..000000000
--- a/testing/openssh/sshd.confd
+++ /dev/null
@@ -1,4 +0,0 @@
-#
-# Parameters to be passed to sshd
-#
-SSHD_ARGS=""
diff --git a/testing/openssh/sshd.pam b/testing/openssh/sshd.pam
deleted file mode 100644
index c7b91cdfb..000000000
--- a/testing/openssh/sshd.pam
+++ /dev/null
@@ -1,12 +0,0 @@
-#%PAM-1.0
-#auth required pam_securetty.so #Disable remote root
-auth required pam_unix.so
-auth required pam_env.so
-account required pam_nologin.so
-account required pam_unix.so
-account required pam_time.so
-password required pam_unix.so
-session required pam_unix_session.so
-session required pam_limits.so
--session optional pam_ck_connector.so nox11
--session optional pam_systemd.so
diff --git a/testing/perl/0001-Append-CFLAGS-and-LDFLAGS-to-their-Config.pm-counter.patch b/testing/perl/0001-Append-CFLAGS-and-LDFLAGS-to-their-Config.pm-counter.patch
deleted file mode 100644
index 1404460df..000000000
--- a/testing/perl/0001-Append-CFLAGS-and-LDFLAGS-to-their-Config.pm-counter.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From bb249b0b26c2e79a6f55355ef94889070f07fd21 Mon Sep 17 00:00:00 2001
-From: Niko Tyni <ntyni@debian.org>
-Date: Thu, 28 Apr 2011 09:18:54 +0300
-Subject: [PATCH] Append CFLAGS and LDFLAGS to their Config.pm counterparts in
- EU::CBuilder
-
-Since ExtUtils::CBuilder 0.27_04 (bleadperl commit 06e8058f27e4),
-CFLAGS and LDFLAGS from the environment have overridden the Config.pm
-ccflags and ldflags settings. This can cause binary incompatibilities
-between the core Perl and extensions built with EU::CBuilder.
-
-Append to the Config.pm values rather than overriding them.
----
- .../lib/ExtUtils/CBuilder/Base.pm | 6 +++-
- dist/ExtUtils-CBuilder/t/04-base.t | 25 +++++++++++++++++++-
- 2 files changed, 28 insertions(+), 3 deletions(-)
-
-diff --git a/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Base.pm b/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Base.pm
-index b572312..2255c51 100644
---- a/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Base.pm
-+++ b/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Base.pm
-@@ -40,11 +40,13 @@ sub new {
- $self->{config}{$k} = $v unless exists $self->{config}{$k};
- }
- $self->{config}{cc} = $ENV{CC} if defined $ENV{CC};
-- $self->{config}{ccflags} = $ENV{CFLAGS} if defined $ENV{CFLAGS};
-+ $self->{config}{ccflags} = join(" ", $self->{config}{ccflags}, $ENV{CFLAGS})
-+ if defined $ENV{CFLAGS};
- $self->{config}{cxx} = $ENV{CXX} if defined $ENV{CXX};
- $self->{config}{cxxflags} = $ENV{CXXFLAGS} if defined $ENV{CXXFLAGS};
- $self->{config}{ld} = $ENV{LD} if defined $ENV{LD};
-- $self->{config}{ldflags} = $ENV{LDFLAGS} if defined $ENV{LDFLAGS};
-+ $self->{config}{ldflags} = join(" ", $self->{config}{ldflags}, $ENV{LDFLAGS})
-+ if defined $ENV{LDFLAGS};
-
- unless ( exists $self->{config}{cxx} ) {
- my ($ccpath, $ccbase, $ccsfx ) = fileparse($self->{config}{cc}, qr/\.[^.]*/);
-diff --git a/dist/ExtUtils-CBuilder/t/04-base.t b/dist/ExtUtils-CBuilder/t/04-base.t
-index c3bf6b5..1bb15aa 100644
---- a/dist/ExtUtils-CBuilder/t/04-base.t
-+++ b/dist/ExtUtils-CBuilder/t/04-base.t
-@@ -1,7 +1,7 @@
- #! perl -w
-
- use strict;
--use Test::More tests => 50;
-+use Test::More tests => 64;
- use Config;
- use Cwd;
- use File::Path qw( mkpath );
-@@ -326,6 +326,29 @@ is_deeply( $mksymlists_args,
- "_prepare_mksymlists_args(): got expected arguments for Mksymlists",
- );
-
-+my %testvars = (
-+ CFLAGS => 'ccflags',
-+ LDFLAGS => 'ldflags',
-+);
-+
-+while (my ($VAR, $var) = each %testvars) {
-+ local $ENV{$VAR};
-+ $base = ExtUtils::CBuilder::Base->new( quiet => 1 );
-+ ok( $base, "ExtUtils::CBuilder::Base->new() returned true value" );
-+ isa_ok( $base, 'ExtUtils::CBuilder::Base' );
-+ like($base->{config}{$var}, qr/\Q$Config{$var}/,
-+ "honours $var from Config.pm");
-+
-+ $ENV{$VAR} = "-foo -bar";
-+ $base = ExtUtils::CBuilder::Base->new( quiet => 1 );
-+ ok( $base, "ExtUtils::CBuilder::Base->new() returned true value" );
-+ isa_ok( $base, 'ExtUtils::CBuilder::Base' );
-+ like($base->{config}{$var}, qr/\Q$ENV{$VAR}/,
-+ "honours $VAR from the environment");
-+ like($base->{config}{$var}, qr/\Q$Config{$var}/,
-+ "doesn't override $var from Config.pm with $VAR from the environment");
-+}
-+
- #####
-
- for ($source_file, $object_file, $lib_file) {
---
-1.7.4.4
-
diff --git a/testing/perl/ChangeLog b/testing/perl/ChangeLog
deleted file mode 100644
index 9add39e20..000000000
--- a/testing/perl/ChangeLog
+++ /dev/null
@@ -1,66 +0,0 @@
-2011-06-22 Angel Velasquez <angvp@archlinux.org>
- * Added a patch for ExtUtils doesnt overwrite CFLAGS and LDFLAGS
- * Fixed #FS22197, FS#22441, FS#24767
- * Rebuilt perl 5.14.1-2 against db 5.2.28
-
-2011-06-16 Angel Velasquez <angvp@archlinux.org>
- * Fixed #FS24660
- * Rebuilt against db 5.2.28
-
-2011-05-16 Angel Velasquez <angvp@archlinux.org>
- * perl 5.14.0
- * Removed patch for h2ph warning from 5.12.3
- * Removed provides array, you can use corelist -v 5.14.0 to know the
- modules included with the perl core, through Module::CoreList (thx j3nnn1
- for the tip)
-
-2010-11-07 kevin <kevin@archlinux.org>
-
- * perl 5.12.2-1
- - Using /usr/bin/*_perl for script directories
-
-2010-11-06 kevin <kevin@archlinux.org>
-
- - Removed otherlibdirs directive from Configure
- - Removed /usr/*/perl5/site_perl/5.10.1 from INC
- - Finally removed legacy dirs /usr/lib/perl5/current and
- /usr/lib/perl5/site_perl/current from @INC
-
-2010-05-23 kevin <kevin@archlinux.org>
-
- * perl 5.12.1-2
- - Francois updated the provides array.
-
-2010-05-23 kevin <kevin@archlinux.org>
-
- * perl 5.12.1-1
-
-2010-05-16 kevin <kevin@archlinux.org>
-
- * perl 5.12.0-2
-
-2010-05-12 kevin <kevin@archlinux.org>
-
- - FS#19411. Removed the for loop in perlbin.sh which didn't work on zsh.
- This makes the loop variables unnecessary so the script no longer
- pollutes the user's environment.
- - FS#19427. Added /usr/*/perl5/site_perl/5.10.1 to otherlibdirs to support
- user built modules.
-
-2010-05-09 kevin <kevin@archlinux.org>
-
- * perl 5.12.0-1
- - Modified perlbin.sh to only add existing dirs to PATH. Fixes FS#17402,
- path points to non-existant directories
-
-2010-05-07 kevin <kevin@archlinux.org>
-
- - Added this changelog.
- - Added -Dinc_version_list=none to fix FS#19136, double entry in @INC.
- This removes the duplicates and versioned directory entries.
- - Change scriptdirs to /usr/lib/perl5/{core,vendor,site}_perl/bin to fix
- Fix FS#13808, binaries don't follow FHS.
- - Stopped using versioned directories in sitelib and sitearch.
-
-
-# vim: set ft=changelog ts=4 sw=4 et:
diff --git a/testing/perl/PKGBUILD b/testing/perl/PKGBUILD
deleted file mode 100644
index 15aac3276..000000000
--- a/testing/perl/PKGBUILD
+++ /dev/null
@@ -1,119 +0,0 @@
-# $Id: PKGBUILD 143604 2011-11-27 10:03:52Z bluewind $
-# Maintainer: Angel Velasquez <angvp@archlinux.org>
-# Contributor: kevin <kevin.archlinux.org>
-# Contributor: judd <jvinet.zeroflux.org>
-# Contributor: francois <francois.archlinux.org>
-pkgname=perl
-pkgver=5.14.2
-pkgrel=4
-pkgdesc="A highly capable, feature-rich programming language"
-arch=(i686 x86_64)
-license=('GPL' 'PerlArtistic')
-url="http://www.perl.org"
-groups=('base')
-depends=('gdbm' 'db' 'coreutils' 'glibc' 'sh')
-changelog=ChangeLog
-source=(http://www.cpan.org/src/5.0/perl-${pkgver}.tar.bz2
-perlbin.sh
-perlbin.csh
-provides.pl
-0001-Append-CFLAGS-and-LDFLAGS-to-their-Config.pm-counter.patch)
-install=perl.install
-options=('!makeflags' '!purge')
-md5sums=('04a4c5d3c1f9f19d77daff8e8cd19a26'
- '5ed2542fdb9a60682f215bd33701e61a'
- '1f0cbbee783e8a6d32f01be5118e0d5e'
- '31fc0b5bb4935414394c5cfbec2cb8e5'
- 'c25d86206d649046538c3daab7874564')
-
-build() {
- cd ${srcdir}/${pkgname}-${pkgver}
-
- if [ "${CARCH}" = "x86_64" ]; then
- # for x86_64
- arch_opts="-Dcccdlflags='-fPIC'"
- else
- # for i686
- arch_opts=""
- fi
-
- # remove rpath FS#27173
- sed -i 's#xxx="-Wl,-rpath,$shrpdir"##' Configure
-
- ./Configure -des -Dusethreads -Duseshrplib -Doptimize="${CFLAGS}" \
- -Dprefix=/usr -Dinstallprefix=${pkgdir}/usr -Dvendorprefix=/usr \
- -Dprivlib=/usr/share/perl5/core_perl \
- -Darchlib=/usr/lib/perl5/core_perl \
- -Dsitelib=/usr/share/perl5/site_perl \
- -Dsitearch=/usr/lib/perl5/site_perl \
- -Dvendorlib=/usr/share/perl5/vendor_perl \
- -Dvendorarch=/usr/lib/perl5/vendor_perl \
- -Dscriptdir=/usr/bin/core_perl \
- -Dsitescript=/usr/bin/site_perl \
- -Dvendorscript=/usr/bin/vendor_perl \
- -Dinc_version_list=none \
- -Dman1ext=1perl -Dman3ext=3perl ${arch_opts} \
- -Dlddlflags="-shared ${LDFLAGS}" -Dldflags="${LDFLAGS}"
- patch -Np1 -i $srcdir/0001-Append-CFLAGS-and-LDFLAGS-to-their-Config.pm-counter.patch
- make
-}
-
-check() {
- cd ${srcdir}/${pkgname}-${pkgver}
- make test
-}
-
-package() {
- # hack to work around makepkg running the subshell in check_sanity()
- new_provides=($(cd "$srcdir/perl-$pkgver"; LD_PRELOAD=./libperl.so ./perl -Ilib "$srcdir/provides.pl" .))
- provides=(${new_provides[@]})
-
- cd ${srcdir}/${pkgname}-${pkgver}
- make install
-
- ### Perl Settings ###
- # Change man page extensions for site and vendor module builds.
- # Use archlinux email address instead of my own.
- sed -e '/^man1ext=/ s/1perl/1p/' -e '/^man3ext=/ s/3perl/3pm/' \
- -e "/^cf_email=/ s/'.*'/'kevin@archlinux.org'/" \
- -e "/^perladmin=/ s/'.*'/'kevin@archlinux.org'/" \
- -i ${pkgdir}/usr/lib/perl5/core_perl/Config_heavy.pl
-
- ### CPAN Settings ###
- # Set CPAN default config to use the site directories.
- sed -e '/(makepl_arg =>/ s/""/"INSTALLDIRS=site"/' \
- -e '/(mbuildpl_arg =>/ s/""/"installdirs=site"/' \
- -i ${pkgdir}/usr/share/perl5/core_perl/CPAN/FirstTime.pm
-
- ### CPANPLUS Settings ###
- # Set CPANPLUS default config to use the site directories.
- sed -e "/{'makemakerflags'}/ s/'';/'INSTALLDIRS=site';/" \
- -e "/{'buildflags'}/ s/'';/'installdirs=site';/" \
- -i ${pkgdir}/usr/share/perl5/core_perl/CPANPLUS/Config.pm
-
- # Profile script to set paths to perl scripts.
- install -D -m755 ${srcdir}/perlbin.sh \
- ${pkgdir}/etc/profile.d/perlbin.sh
- # Profile script to set paths to perl scripts on csh. (FS#22441)
- install -D -m755 ${srcdir}/perlbin.csh \
- ${pkgdir}/etc/profile.d/perlbin.csh
-
- (cd ${pkgdir}/usr/bin; mv perl${pkgver} perl)
- (cd ${pkgdir}/usr/bin/core_perl; ln -sf c2ph pstruct; ln -sf s2p psed)
- grep -Rl "${pkgdir}" ${pkgdir}/usr | \
- xargs sed -i "s^${pkgdir}^^g"
-
- # Remove all pod files *except* those under /usr/share/perl5/core_perl/pod/
- # (FS#16488)
- rm -f $pkgdir/usr/share/perl5/core_perl/*.pod
- for d in $pkgdir/usr/share/perl5/core_perl/*; do
- if [ -d $d -a $(basename $d) != "pod" ]; then
- find $d -name *.pod -delete
- fi
- done
- find $pkgdir/usr/lib -name *.pod -delete
- find $pkgdir -name .packlist -delete
- # Add /usr/lib/perl5/core_perl/CORE/ to standard library path (FS#24660)
- install -dv ${pkgdir}/etc/ld.so.conf.d
- echo "/usr/lib/perl5/core_perl/CORE" > ${pkgdir}/etc/ld.so.conf.d/perl.conf
-}
diff --git a/testing/perl/fix-h2ph-and-tests.patch b/testing/perl/fix-h2ph-and-tests.patch
deleted file mode 100644
index a2d176ec6..000000000
--- a/testing/perl/fix-h2ph-and-tests.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-From 8d66b3f930dc6d88b524d103e304308ae73a46e7 Mon Sep 17 00:00:00 2001
-From: Robin Barker <rmbarker@cpan.org>
-Date: Thu, 22 Apr 2010 11:51:20 +0100
-Subject: [PATCH 1/1] Fix h2ph and test
-
----
- lib/h2ph.t | 12 ++++++++++--
- utils/h2ph.PL | 28 +++++++++++++++++++++++-----
- 2 files changed, 33 insertions(+), 7 deletions(-)
-
-diff --git a/lib/h2ph.t b/lib/h2ph.t
-index 27dd7b9..8d62d46 100644
---- a/lib/h2ph.t
-+++ b/lib/h2ph.t
-@@ -18,7 +18,7 @@ if (!(-e $extracted_program)) {
- exit 0;
- }
-
--plan(4);
-+plan(5);
-
- # quickly compare two text files
- sub txt_compare {
-@@ -41,8 +41,16 @@ $result = runperl( progfile => 'lib/h2ph.pht',
- stderr => 1 );
- like( $result, qr/syntax OK$/, "output compiles");
-
-+$result = runperl( progfile => '_h2ph_pre.ph',
-+ switches => ['-c'],
-+ stderr => 1 );
-+like( $result, qr/syntax OK$/, "preamble compiles");
-+
- $result = runperl( switches => ["-w"],
-- prog => '$SIG{__WARN__} = sub { die $_[0] }; require q(lib/h2ph.pht);');
-+ stderr => 1,
-+ prog => <<'PROG' );
-+$SIG{__WARN__} = sub { die $_[0] }; require q(lib/h2ph.pht);
-+PROG
- is( $result, '', "output free of warnings" );
-
- # cleanup
-diff --git a/utils/h2ph.PL b/utils/h2ph.PL
-index 8f56db4..1255807 100644
---- a/utils/h2ph.PL
-+++ b/utils/h2ph.PL
-@@ -401,7 +401,10 @@ if ($opt_e && (scalar(keys %bad_file) > 0)) {
- exit $Exit;
-
- sub expr {
-- $new = '"(assembly code)"' and return if /\b__asm__\b/; # freak out.
-+ if (/\b__asm__\b/) { # freak out
-+ $new = '"(assembly code)"';
-+ return
-+ }
- my $joined_args;
- if(keys(%curargs)) {
- $joined_args = join('|', keys(%curargs));
-@@ -770,7 +773,7 @@ sub inc_dirs
- sub build_preamble_if_necessary
- {
- # Increment $VERSION every time this function is modified:
-- my $VERSION = 2;
-+ my $VERSION = 3;
- my $preamble = "$Dest_dir/_h2ph_pre.ph";
-
- # Can we skip building the preamble file?
-@@ -798,7 +801,16 @@ sub build_preamble_if_necessary
- # parenthesized value: d=(v)
- $define{$_} = $1;
- }
-- if ($define{$_} =~ /^([+-]?(\d+)?\.\d+([eE][+-]?\d+)?)[FL]?$/) {
-+ if (/^(\w+)\((\w)\)$/) {
-+ my($macro, $arg) = ($1, $2);
-+ my $def = $define{$_};
-+ $def =~ s/$arg/\$\{$arg\}/g;
-+ print PREAMBLE <<DEFINE;
-+unless (defined &$macro) { sub $macro(\$) { my (\$$arg) = \@_; \"$def\" } }
-+
-+DEFINE
-+ } elsif
-+ ($define{$_} =~ /^([+-]?(\d+)?\.\d+([eE][+-]?\d+)?)[FL]?$/) {
- # float:
- print PREAMBLE
- "unless (defined &$_) { sub $_() { $1 } }\n\n";
-@@ -807,8 +819,14 @@ sub build_preamble_if_necessary
- print PREAMBLE
- "unless (defined &$_) { sub $_() { $1 } }\n\n";
- } elsif ($define{$_} =~ /^\w+$/) {
-- print PREAMBLE
-- "unless (defined &$_) { sub $_() { &$define{$_} } }\n\n";
-+ my $def = $define{$_};
-+ if ($isatype{$def}) {
-+ print PREAMBLE
-+ "unless (defined &$_) { sub $_() { \"$def\" } }\n\n";
-+ } else {
-+ print PREAMBLE
-+ "unless (defined &$_) { sub $_() { &$def } }\n\n";
-+ }
- } else {
- print PREAMBLE
- "unless (defined &$_) { sub $_() { \"",
---
-1.6.5.2.74.g610f9.dirty
-
diff --git a/testing/perl/perl.install b/testing/perl/perl.install
deleted file mode 100644
index a355c5bbe..000000000
--- a/testing/perl/perl.install
+++ /dev/null
@@ -1,10 +0,0 @@
-# arg 1: the new package version
-post_install() {
- for ver in 5.8.{0,1,2,3,4,5,6,7,8}; do
- [ -h usr/lib/perl5/$ver ] && rm usr/lib/perl5/$ver
- [ -h usr/lib/perl5/site_perl/$ver ] && rm usr/lib/perl5/site_perl/$ver
- [ -h usr/bin/perl$ver ] && rm usr/bin/perl$ver
- done
- return 0
-}
-
diff --git a/testing/perl/perlbin.csh b/testing/perl/perlbin.csh
deleted file mode 100644
index 535f0b18d..000000000
--- a/testing/perl/perlbin.csh
+++ /dev/null
@@ -1,15 +0,0 @@
-# Set path to perl scriptdirs if they exist
-# https://wiki.archlinux.org/index.php/Perl_Policy#Binaries_and_Scripts
-# Added /usr/bin/*_perl dirs for scripts
-# Remove /usr/lib/perl5/*_perl/bin in next release
-
-[ -d /usr/bin/site_perl ] && setenv PATH ${PATH}:/usr/bin/site_perl
-[ -d /usr/lib/perl5/site_perl/bin ] && setenv PATH ${PATH}:/usr/lib/perl5/site_perl/bin
-
-[ -d /usr/bin/vendor_perl ] && setenv PATH ${PATH}:/usr/bin/vendor_perl
-[ -d /usr/lib/perl5/vendor_perl/bin ] && setenv PATH ${PATH}:/usr/lib/perl5/vendor_perl/bin
-
-[ -d /usr/bin/core_perl ] && setenv PATH ${PATH}:/usr/bin/core_perl
-
-# If you have modules in non-standard directories you can add them here.
-#export PERLLIB=dir1:dir2
diff --git a/testing/perl/perlbin.sh b/testing/perl/perlbin.sh
deleted file mode 100755
index 20f830436..000000000
--- a/testing/perl/perlbin.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-# Set path to perl scriptdirs if they exist
-# https://wiki.archlinux.org/index.php/Perl_Policy#Binaries_and_Scripts
-# Added /usr/bin/*_perl dirs for scripts
-# Remove /usr/lib/perl5/*_perl/bin in next release
-
-[ -d /usr/bin/site_perl ] && PATH=$PATH:/usr/bin/site_perl
-[ -d /usr/lib/perl5/site_perl/bin ] && PATH=$PATH:/usr/lib/perl5/site_perl/bin
-
-[ -d /usr/bin/vendor_perl ] && PATH=$PATH:/usr/bin/vendor_perl
-[ -d /usr/lib/perl5/vendor_perl/bin ] && PATH=$PATH:/usr/lib/perl5/vendor_perl/bin
-
-[ -d /usr/bin/core_perl ] && PATH=$PATH:/usr/bin/core_perl
-
-export PATH
-
-# If you have modules in non-standard directories you can add them here.
-#export PERLLIB=dir1:dir2
-
diff --git a/testing/perl/provides.pl b/testing/perl/provides.pl
deleted file mode 100644
index 3bf369577..000000000
--- a/testing/perl/provides.pl
+++ /dev/null
@@ -1,286 +0,0 @@
-# provides.pl
-##
-# Script for printing out a provides list of every CPAN distribution
-# that is bundled with perl.
-#
-# Justin Davis <jrcd83@gmail.com>
-
-use warnings 'FATAL' => 'all';
-use strict;
-
-package Common;
-
-sub evalver
-{
- my ($path, $mod) = @_;
- $mod ||= "";
-
- open my $fh, '<', $path or die "open $path: $!";
-
- while (<$fh>) {
- next unless /\s*(?:\$${mod}::|\$)VERSION\s*=\s*(.+)/;
- my $ver = eval $1;
- return $ver unless $@;
- warn qq{$path:$. bad version string "$ver"\n};
- }
-
- close $fh;
- return undef;
-}
-
-#-----------------------------------------------------------------------------
-
-package Dists;
-
-sub maindistfile
-{
- my ($dist, $dir) = @_;
-
- # libpath is the modern style, installing modules under lib/
- # with dirs matching the name components.
- my $libpath = join q{/}, 'lib', split /-/, "${dist}.pm";
-
- # dumbpath is an old style where there's no subdirs and just
- # a .pm file.
- my $dumbpath = $dist;
- $dumbpath =~ s/\A.+-//;
- $dumbpath .= ".pm";
-
- my @paths = ($libpath, $dumbpath);
- # Some modules (with simple names like XSLoader, lib, etc) are
- # generated by Makefile.PL. Search through their generating code.
- push @paths, "${dist}_pm.PL" if $dist =~ tr/-/-/ == 0;
-
- for my $path (map { "$dir/$_" } @paths) { return $path if -f $path; }
- return undef;
-}
-
-sub module_ver
-{
- my ($dist, $dir) = @_;
-
- my $path = maindistfile($dist, $dir) or return undef;
-
- my $mod = $dist;
- $mod =~ s/-/::/g;
- my $ver = Common::evalver($path, $mod);
- unless ($ver) {
- warn "failed to find version in module file for $dist\n";
- return undef;
- }
-
- return $ver;
-}
-
-sub changelog_ver
-{
- my ($dist, $dir) = @_;
-
- my $path;
- for my $tmp (glob "$dir/{Changes,ChangeLog}") {
- if (-f $tmp) { $path = $tmp; last; }
- }
- return undef unless $path;
-
- open my $fh, '<', $path or die "open: $!";
- while (<$fh>) {
- return $1 if /\A\s*(?:$dist[ \t]*)?([0-9._]+)/;
- return $1 if /\A\s*version\s+([0-9._]+)/i;
- }
- close $fh;
-
- return undef;
-}
-
-# for some reason podlators has a VERSION file with perl code in it
-sub verfile_ver
-{
- my ($dist, $dir) = @_;
-
- my $path = "$dir/VERSION";
- return undef unless -f $path; # no warning, only podlaters has it
-
- return Common::evalver($path);
-}
-
-# scans a directory full of nicely separated dist. directories.
-sub scan_distroot
-{
- my ($distroot) = @_;
- opendir my $cpand, "$distroot" or die "failed to open $distroot";
- my @dists = grep { !/^\./ && -d "$distroot/$_" } readdir $cpand;
- closedir $cpand;
-
- my @found;
- for my $dist (@dists) {
- my $distdir = "$distroot/$dist";
- my $ver = (module_ver($dist, $distdir)
- || changelog_ver($dist, $distdir)
- || verfile_ver($dist, $distdir));
-
- if ($ver) { push @found, [ $dist, $ver ]; }
- else { warn "failed to find version for $dist\n"; }
- }
- return @found;
-}
-
-sub find
-{
- my ($srcdir) = @_;
- return map { scan_distroot($_) } glob "$srcdir/{cpan,dist}";
-}
-
-#-----------------------------------------------------------------------------
-
-package Modules;
-
-use HTTP::Tiny qw();
-use File::Find qw();
-use File::stat;
-
-*findfile = *File::Find::find;
-
-sub cpan_provider
-{
- my ($module) = @_;
- my $url = "http://cpanmetadb.appspot.com/v1.0/package/$module";
- my $http = HTTP::Tiny->new;
- my $resp = $http->get($url);
- return undef unless $resp->{'success'};
-
- my ($cpanpath) = $resp->{'content'} =~ /^distfile: (.*)$/m
- or return undef;
-
- my $dist = $cpanpath;
- $dist =~ s{\A.+/}{}; # remove author directory
- $dist =~ s{-[^-]+\z}{}; # remove version and extension
- return ($dist eq 'perl' ? undef : $dist);
-}
-
-sub find
-{
- my ($srcdir) = @_;
- my $libdir = "$srcdir/lib/";
- die "failed to find $libdir directory" unless -d $libdir;
-
- # Find only the module files that have not changed since perl
- # was extracted. We don't want the files perl just recently
- # installed into lib/. We processed those already.
- my @modfiles;
- my $finder = sub {
- return unless /[.]pm\z/;
- push @modfiles, $_;
- };
- findfile({ 'no_chdir' => 1, 'wanted' => $finder }, $libdir);
-
- # First we have to find what the oldest ctime actually is.
- my $oldest = time;
- @modfiles = map {
- my $modfile = $_;
- my $ctime = (stat $modfile)->ctime;
- $oldest = $ctime if $ctime < $oldest;
- [ $modfile, $ctime ]; # save ctime for later
- } @modfiles;
-
- # Then we filter out any file that was created more than a
- # few seconds after that. Process the rest.
- my @mods;
- for my $modfile (@modfiles) {
- my ($mod, $ctime) = @$modfile;
- next if $ctime - $oldest > 5; # ignore newer files
-
- my $path = $mod;
- $mod =~ s{[.]pm\z}{};
- $mod =~ s{\A$libdir}{};
- $mod =~ s{/}{::}g;
-
- my $ver = Common::evalver($path) || q{};
- push @mods, [ $mod, $ver ];
- }
-
- # Convert modules names to the dist names who provide them.
- my %seen;
- my @dists;
- for my $modref (@mods) {
- my ($mod, $ver) = @$modref;
- my $dist = cpan_provider($mod) or next; # filter out core modules
- next if $seen{$dist}++; # avoid duplicate dists
- push @dists, [ $dist, $ver ];
- }
- return @dists;
-}
-
-#-----------------------------------------------------------------------------
-
-package Dist2Pkg;
-
-sub name
-{
- my ($name) = @_;
- my $orig = $name;
-
- # Package names should be lowercase and consist of alphanumeric
- # characters only (and hyphens!)...
- $name =~ tr/A-Z/a-z/;
- $name =~ tr/_+/-/; # _ and +'s converted to - (ie Tabbed-Text+Wrap)
- $name =~ tr/-a-z0-9+//cd; # Delete all other chars.
- $name =~ tr/-/-/s;
-
- # Delete leading or trailing hyphens...
- $name =~ s/\A-|-\z//g;
-
- die qq{Dist. name '$orig' completely violates packaging standards}
- unless $name;
-
- return "perl-$name";
-}
-
-sub version
-{
- my ($version) = @_;
-
- # Package versions should be numbers and decimal points only...
- $version =~ tr/-/./;
- $version =~ tr/_0-9.-//cd;
-
- # Remove developer versions because pacman has no special logic
- # to compare them to regular versions like perl does.
- $version =~ s/_[^_]+\z//;
-
- $version =~ tr/_//d; # delete other underscores
- $version =~ tr/././s; # only one period at a time
- $version =~ s/\A[.]|[.]\z//g; # shouldn't start or stop with a period
-
- return $version;
-}
-
-#-----------------------------------------------------------------------------
-
-package main;
-
-my %CPANNAME = ('List-Util' => 'Scalar-List-Utils',
- 'Text-Tabs' => 'Text-Tabs+Wrap',
- 'Cwd' => 'PathTools');
-
-my $perldir = shift or die "Usage: $0 [path to perl source directory]\n";
-die "$perldir is not a valid directory." unless -d $perldir;
-
-my @dists = (Dists::find($perldir), Modules::find($perldir));
-for my $dist (@dists) {
- my $name = $dist->[0];
- $dist->[0] = $CPANNAME{$name} if exists $CPANNAME{$name};
-}
-
-my @pkgs = map {
- my ($name, $ver) = @$_;
- $name = Dist2Pkg::name($name);
- $ver = Dist2Pkg::version($ver);
- [ $name, $ver ];
-} @dists;
-
-@pkgs = sort { $a->[0] cmp $b->[0] } @pkgs;
-
-for my $pkg (@pkgs) {
- my ($name, $ver) = @$pkg;
- print "$name=$ver\n";
-}
diff --git a/testing/php/PKGBUILD b/testing/php/PKGBUILD
deleted file mode 100644
index 59bdfd2dd..000000000
--- a/testing/php/PKGBUILD
+++ /dev/null
@@ -1,365 +0,0 @@
-# $Id: PKGBUILD 143474 2011-11-24 17:03:15Z stephane $
-# 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=5
-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
deleted file mode 100644
index c3ca0aad5..000000000
--- a/testing/php/apache.conf
+++ /dev/null
@@ -1,13 +0,0 @@
-# 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
deleted file mode 100644
index 7a1ba2597..000000000
--- a/testing/php/logrotate.d.php-fpm
+++ /dev/null
@@ -1,6 +0,0 @@
-/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
deleted file mode 100644
index b4dd32f96..000000000
--- a/testing/php/php-fpm.conf.in.patch
+++ /dev/null
@@ -1,80 +0,0 @@
---- 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
deleted file mode 100644
index 46c842921..000000000
--- a/testing/php/php.ini.patch
+++ /dev/null
@@ -1,126 +0,0 @@
---- 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
deleted file mode 100644
index 54bcf4d5b..000000000
--- a/testing/php/rc.d.php-fpm
+++ /dev/null
@@ -1,158 +0,0 @@
-#!/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/python/PKGBUILD b/testing/python/PKGBUILD
deleted file mode 100644
index 15e95141f..000000000
--- a/testing/python/PKGBUILD
+++ /dev/null
@@ -1,81 +0,0 @@
-# $Id: PKGBUILD 143476 2011-11-24 17:03:18Z stephane $
-# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
-# Maintainer: Allan McRae <allan@archlinux.org>
-# Contributor: Jason Chu <jason@archlinux.org>
-
-pkgname=python
-pkgver=3.2.2
-pkgrel=2
-_pybasever=3.2
-pkgdesc="Next generation of the python high-level scripting language"
-arch=('i686' 'x86_64')
-license=('custom')
-url="http://www.python.org/"
-depends=('expat' 'bzip2' 'gdbm' 'openssl' 'libffi' 'zlib')
-makedepends=('tk' 'sqlite3' 'valgrind')
-optdepends=('tk: for tkinter' 'sqlite3')
-provides=('python3')
-replaces=('python3')
-options=('!makeflags')
-source=(http://www.python.org/ftp/python/${pkgver%rc*}/Python-${pkgver}.tar.xz
- gdbm-magic-values.patch)
-sha1sums=('5e654dbd48476193ccdef4d604ed4f45b48c6769'
- '43bfbe3e23360f412b95cb284ff29b2cbe338be9')
-
-build() {
- cd "${srcdir}/Python-${pkgver}"
-
- # FS#23997
- sed -i -e "s|^#.* /usr/local/bin/python|#!/usr/bin/python|" Lib/cgi.py
-
- # gdbm has new magic that whichdb does not recognize
- # http://bugs.python.org/issue13007
- patch -Np1 -i ../gdbm-magic-values.patch
-
- # Ensure that we are using the system copy of various libraries (expat, zlib and libffi),
- # rather than copies shipped in the tarball
- rm -r Modules/expat
- rm -r Modules/zlib
- rm -r Modules/_ctypes/{darwin,libffi}*
-
- ./configure --prefix=/usr \
- --enable-shared \
- --with-threads \
- --with-computed-gotos \
- --enable-ipv6 \
- --with-valgrind \
- --with-wide-unicode \
- --with-system-expat \
- --with-dbmliborder=gdbm:ndbm \
- --with-system-ffi
-
- make
-}
-
-check() {
- cd "${srcdir}/Python-${pkgver}"
- LD_LIBRARY_PATH="${srcdir}/Python-${pkgver}":${LD_LIBRARY_PATH} \
- "${srcdir}/Python-${pkgver}/python" -m test.regrtest -x test_distutils test_site test_uuid
-}
-
-package() {
- cd "${srcdir}/Python-${pkgver}"
- make DESTDIR="${pkgdir}" install maninstall
-
- # Why are these not done by default...
- ln -sf python3 "${pkgdir}/usr/bin/python"
- ln -sf python3-config "${pkgdir}/usr/bin/python-config"
- ln -sf idle3 "${pkgdir}/usr/bin/idle"
- ln -sf pydoc3 "${pkgdir}/usr/bin/pydoc"
- ln -sf python${_pybasever}.1 "${pkgdir}/usr/share/man/man1/python3.1"
-
- # Fix FS#22552
- ln -sf ../../libpython${_pybasever}mu.so \
- "${pkgdir}/usr/lib/python${_pybasever}/config-${_pybasever}mu/libpython${_pybasever}mu.so"
-
- # Clean-up reference to build directory
- sed -i "s|$srcdir/Python-${pkgver}:||" "$pkgdir/usr/lib/python${_pybasever}/config-${_pybasever}mu/Makefile"
-
- # License
- install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
-}
diff --git a/testing/python/gdbm-magic-values.patch b/testing/python/gdbm-magic-values.patch
deleted file mode 100644
index e8ce828cf..000000000
--- a/testing/python/gdbm-magic-values.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up Python-3.2.2/Lib/dbm/__init__.py.gdbm-1.9-magic Python-3.2.2/Lib/dbm/__init__.py
---- Python-3.2.2/Lib/dbm/__init__.py.gdbm-1.9-magic 2011-09-03 12:16:40.000000000 -0400
-+++ Python-3.2.2/Lib/dbm/__init__.py 2011-09-30 15:47:27.488863694 -0400
-@@ -166,7 +166,7 @@ def whichdb(filename):
- return ""
-
- # Check for GNU dbm
-- if magic == 0x13579ace:
-+ if magic in (0x13579ace, 0x13579acd, 0x13579acf):
- return "dbm.gnu"
-
- # Later versions of Berkeley db hash file have a 12-byte pad in
-diff -up Python-3.2.2/Misc/NEWS.gdbm-1.9-magic Python-3.2.2/Misc/NEWS
diff --git a/testing/ruby/PKGBUILD b/testing/ruby/PKGBUILD
deleted file mode 100644
index b12032df5..000000000
--- a/testing/ruby/PKGBUILD
+++ /dev/null
@@ -1,46 +0,0 @@
-# $Id: PKGBUILD 143480 2011-11-24 17:03:21Z stephane $
-# Maintainer:
-# Contributor: Allan McRae <allan@archlinux.org>
-# Contributor: John Proctor <jproctor@prium.net>
-# Contributor: Jeramy Rutley <jrutley@gmail.com>
-
-pkgbase=ruby
-pkgname=('ruby' 'ruby-docs')
-pkgver=1.9.3_p0
-pkgrel=2
-pkgdesc="An object-oriented language for quick and easy programming"
-arch=('i686' 'x86_64')
-url="http://www.ruby-lang.org/en/"
-license=('BSD' 'custom')
-makedepends=('openssl' 'tk' 'libffi' 'doxygen' 'graphviz' 'libyaml')
-options=('!emptydirs' '!makeflags')
-source=(ftp://ftp.ruby-lang.org/pub/${pkgbase}/${pkgver%.*}/${pkgbase}-${pkgver//_/-}.tar.bz2)
-sha1sums=('f63c116411b981ef54c2caeefb9ccc4d71a5d2cf')
-
-build() {
- cd "${srcdir}/${pkgbase}-${pkgver//_/-}"
- DOXYGEN=/usr/bin/doxygen PKG_CONFIG=/usr/bin/pkg-config ./configure --prefix=/usr --sysconfdir=/etc \
- --enable-shared --enable-pthread --disable-rpath
- make
-}
-
-package_ruby() {
- depends=('openssl' 'libffi' 'libyaml')
- provides=('rubygems' 'rake')
- conflicts=('rake')
- optdepends=('tk: for Ruby/TK')
-
- cd "${srcdir}/${pkgbase}-${pkgver//_/-}"
- make DESTDIR="${pkgdir}" install-nodoc
- install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
- install -D -m644 BSDL "${pkgdir}/usr/share/licenses/${pkgname}/BSDL"
-}
-
-package_ruby-docs() {
- pkgdesc="Documentation files for ruby"
-
- cd "${srcdir}/${pkgbase}-${pkgver//_/-}"
- make DESTDIR="${pkgdir}" install-doc install-capi
- install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
- install -D -m644 BSDL "${pkgdir}/usr/share/licenses/${pkgname}/BSDL"
-}
diff --git a/testing/subversion/PKGBUILD b/testing/subversion/PKGBUILD
deleted file mode 100644
index ddc575e91..000000000
--- a/testing/subversion/PKGBUILD
+++ /dev/null
@@ -1,100 +0,0 @@
-# $Id: PKGBUILD 143482 2011-11-24 17:03:24Z stephane $
-# Maintainer: Paul Mattal <paul@archlinux.org>
-# Contributor: Jason Chu <jason@archlinux.org>
-
-pkgname=subversion
-pkgver=1.6.17
-pkgrel=7
-pkgdesc="A Modern Concurrent Version Control System"
-arch=('i686' 'x86_64')
-license=('apache' 'bsd')
-depends=('neon' 'apr-util' 'sqlite3')
-optdepends=('libgnome-keyring' 'kdeutils-kwallet' 'bash-completion: for svn bash completion')
-makedepends=('krb5' 'apache' 'python2' 'perl' 'swig' 'ruby' '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://subversion.tigris.org/downloads/$pkgname-$pkgver.tar.bz2
- svnserve svn svnserve.conf svnmerge.py
- subversion.rpath.fix.patch
- subversion.suppress.deprecation.warnings.patch
- subversion-perl-bindings.patch)
-md5sums=('81e5dc5beee4b3fc025ac70c0b6caa14'
- 'a2b029e8385007ffb99b437b30521c90'
- 'a0db6dd43af33952739b6ec089852630'
- 'c459e299192552f61578f3438abf0664'
- 'a6371baeda7e224504629ecdda2749b4'
- '6b4340ba9d8845cd8497e013ae01be3f'
- '1166f3b7413d7e7450299b3525680bbe'
- '0591aa39837931161b4d61ff35c7b147')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
-
- export PYTHON=/usr/bin/python2
-
- # apply patches
- patch -Np0 -i ../subversion.rpath.fix.patch
- patch -Np1 -i ../subversion.suppress.deprecation.warnings.patch
- patch -Np1 -i ../subversion-perl-bindings.patch
-
- # configure
- autoreconf
- ./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
-
- # build
- (make external-all && make LT_LDFLAGS="-L$Fdestdir/usr/lib" local-all )
-}
-
-#check() {
-# cd "${srcdir}/${pkgname}-${pkgver}"
-# export LANG=C LC_ALL=C
-# make check check-swig-pl check-swig-py CLEANUP=yes
-#}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
-
- # install
- export LD_LIBRARY_PATH=${pkgdir}/usr/lib:$LD_LIBRARY_PATH
- make DESTDIR=${pkgdir} install
-
- make DESTDIR=${pkgdir} swig-py
- make install-swig-py DESTDIR=${pkgdir}
-
- install -d ${pkgdir}/usr/lib/python2.7
- mv ${pkgdir}/usr/lib/svn-python/ ${pkgdir}/usr/lib/python2.7/site-packages
-
- install -d ${pkgdir}/usr/share/subversion
- install -d -m 755 tools/hook-scripts ${pkgdir}/usr/share/subversion/
- rm -f ${pkgdir}/usr/share/subversion/hook-scripts/*.in
-
- make DESTDIR=${pkgdir} swig-pl
- make install-swig-pl DESTDIR=${pkgdir} INSTALLDIRS=vendor
- rm -f ${pkgdir}/usr/lib/perl5/vendor_perl/auto/SVN/_Core/.packlist
- rm -rf ${pkgdir}/usr/lib/perl5/core_perl
-
- make DESTDIR=${pkgdir} swig-rb
- make install-swig-rb DESTDIR=${pkgdir}
-
- make DESTDIR=${pkgdir} javahl
- make DESTDIR=${pkgdir} install-javahl
-
- install -d ${pkgdir}/etc/{rc.d,xinetd.d,conf.d}
-
- install -m 755 ${srcdir}/svnserve ${pkgdir}/etc/rc.d
- install -m 644 ${srcdir}/svn ${pkgdir}/etc/xinetd.d
- install -m 644 ${srcdir}/svnserve.conf ${pkgdir}/etc/conf.d/svnserve
- install -m 755 ${srcdir}/svnmerge.py ${pkgdir}/usr/bin/svnmerge
- install -D -m 644 ${srcdir}/subversion-$pkgver/COPYING \
- ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
-
- # bash completion
- install -Dm 644 ${srcdir}/${pkgname}-${pkgver}/tools/client-side/bash_completion \
- ${pkgdir}/etc/bash_completion.d/subversion
-}
diff --git a/testing/subversion/subversion-perl-bindings.patch b/testing/subversion/subversion-perl-bindings.patch
deleted file mode 100644
index 3c34daa47..000000000
--- a/testing/subversion/subversion-perl-bindings.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur subversion-1.6.17.ori/subversion/bindings/swig/perl/native/Makefile.PL.in subversion-1.6.17/subversion/bindings/swig/perl/native/Makefile.PL.in
---- subversion-1.6.17.ori/subversion/bindings/swig/perl/native/Makefile.PL.in 2010-11-24 20:42:16.000000000 +0000
-+++ subversion-1.6.17/subversion/bindings/swig/perl/native/Makefile.PL.in 2011-07-01 20:16:16.520892074 +0000
-@@ -43,7 +43,7 @@
- my %config = (
- ABSTRACT => 'Perl bindings for Subversion',
- DEFINE => $cppflags,
-- CCFLAGS => $cflags,
-+ CCFLAGS => $Config{ccflags},
- INC => join(' ',$apr_cflags, $apu_cflags,
- " -I$swig_srcdir/perl/libsvn_swig_perl",
- " -I$svnlib_srcdir/include",
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/subversion.suppress.deprecation.warnings.patch b/testing/subversion/subversion.suppress.deprecation.warnings.patch
deleted file mode 100644
index 94ce89b18..000000000
--- a/testing/subversion/subversion.suppress.deprecation.warnings.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -urN subversion-1.6.9/subversion/bindings/swig/python/svn/core.py subversion-1.6.9-fixed/subversion/bindings/swig/python/svn/core.py
---- subversion-1.6.9/subversion/bindings/swig/python/svn/core.py 2009-02-13 11:22:26.000000000 -0500
-+++ subversion-1.6.9-fixed/subversion/bindings/swig/python/svn/core.py 2010-02-08 07:46:29.000000000 -0500
-@@ -19,6 +19,7 @@
- from libsvn.core import *
- import libsvn.core as _libsvncore
- import atexit as _atexit
-+import warnings
-
- class SubversionException(Exception):
- def __init__(self, message=None, apr_err=None, child=None,
-@@ -44,7 +45,9 @@
- Exception.__init__(self, *args)
-
- self.apr_err = apr_err
-- self.message = message
-+ with warnings.catch_warnings():
-+ warnings.simplefilter("ignore", DeprecationWarning)
-+ self.message = message
- self.child = child
- self.file = file
- self.line = line
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/syslog-ng/PKGBUILD b/testing/syslog-ng/PKGBUILD
deleted file mode 100644
index 595c4585b..000000000
--- a/testing/syslog-ng/PKGBUILD
+++ /dev/null
@@ -1,53 +0,0 @@
-# $Id: PKGBUILD 143455 2011-11-24 16:44:04Z dreisner $
-# Maintainer: Dave Reisner <dreisner@archlinux.org>
-# Maintainer: Eric Bélanger <eric@archlinux.org>
-# Maintainer: Aaron Griffin <aaron@archlinux.org>
-
-pkgname=syslog-ng
-pkgver=3.3.3
-pkgrel=1
-pkgdesc="Next-generation syslogd with advanced networking and filtering capabilities"
-arch=('i686' 'x86_64')
-license=('GPL2')
-groups=('base')
-url="http://www.balabit.com/network-security/syslog-ng/"
-depends=('glib2' 'eventlog' 'openssl' 'libcap' 'awk')
-makedepends=('flex' 'pkg-config')
-optdepends=('logrotate: for rotating log files')
-provides=('logger')
-options=('!libtool')
-backup=('etc/syslog-ng/modules.conf' 'etc/syslog-ng/scl.conf' \
- 'etc/syslog-ng/syslog-ng.conf' 'etc/logrotate.d/syslog-ng')
-source=("http://www.balabit.com/downloads/files/syslog-ng/sources/$pkgver/source/${pkgname}_$pkgver.tar.gz"
- syslog-ng.conf
- syslog-ng.logrotate
- syslog-ng.rc)
-sha1sums=('e2ec8ba4bde24809630a7675bf5d97f00be467f8'
- '98074e0facfc6ef036202662cc86d04b38a2c142'
- '949128fe3d7f77a7aab99048061f885bc758000c'
- 'a6ad26912b5bcbe1b47b003309945d733613b98f')
-
-build() {
- cd "$pkgname-$pkgver"
-
- ./configure \
- --prefix=/usr \
- --sysconfdir=/etc/syslog-ng \
- --libexecdir=/usr/lib \
- --localstatedir=/var/lib/syslog-ng \
- --with-pidfile-dir=/run \
- --disable-spoof-source \
- --enable-systemd \
- --with-systemdsystemunitdir=/lib/systemd/system
-
- make
-}
-
-package() {
- make -C "$pkgname-$pkgver" DESTDIR="$pkgdir" install
-
- install -dm755 "$pkgdir/var/lib/syslog-ng" "$pkgdir/etc/syslog-ng/patterndb.d"
- install -Dm644 "$srcdir/syslog-ng.conf" "$pkgdir/etc/syslog-ng/syslog-ng.conf"
- install -Dm644 "$srcdir/syslog-ng.logrotate" "$pkgdir/etc/logrotate.d/syslog-ng"
- install -Dm755 "$srcdir/syslog-ng.rc" "$pkgdir/etc/rc.d/syslog-ng"
-}
diff --git a/testing/syslog-ng/syslog-ng.conf b/testing/syslog-ng/syslog-ng.conf
deleted file mode 100644
index 8f86eac2f..000000000
--- a/testing/syslog-ng/syslog-ng.conf
+++ /dev/null
@@ -1,92 +0,0 @@
-@version: 3.3
-#
-# /etc/syslog-ng/syslog-ng.conf
-#
-
-options {
- stats_freq (0);
- flush_lines (0);
- time_reopen (10);
- log_fifo_size (10000);
- chain_hostnames (off);
- use_dns (no);
- use_fqdn (no);
- create_dirs (no);
- keep_hostname (yes);
- perm(0640);
- group("log");
-};
-
-source src {
- unix-dgram("/dev/log");
- internal();
- file("/proc/kmsg");
-};
-
-destination d_authlog { file("/var/log/auth.log"); };
-destination d_syslog { file("/var/log/syslog.log"); };
-destination d_cron { file("/var/log/crond.log"); };
-destination d_daemon { file("/var/log/daemon.log"); };
-destination d_kernel { file("/var/log/kernel.log"); };
-destination d_lpr { file("/var/log/lpr.log"); };
-destination d_user { file("/var/log/user.log"); };
-destination d_uucp { file("/var/log/uucp.log"); };
-destination d_mail { file("/var/log/mail.log"); };
-destination d_news { file("/var/log/news.log"); };
-destination d_ppp { file("/var/log/ppp.log"); };
-destination d_debug { file("/var/log/debug.log"); };
-destination d_messages { file("/var/log/messages.log"); };
-destination d_errors { file("/var/log/errors.log"); };
-destination d_everything { file("/var/log/everything.log"); };
-destination d_iptables { file("/var/log/iptables.log"); };
-destination d_acpid { file("/var/log/acpid.log"); };
-destination d_console { usertty("root"); };
-
-# Log everything to tty12
-destination console_all { file("/dev/tty12"); };
-
-filter f_auth { facility(auth); };
-filter f_authpriv { facility(auth, authpriv); };
-filter f_syslog { program(syslog-ng); };
-filter f_cron { facility(cron); };
-filter f_daemon { facility(daemon); };
-filter f_kernel { facility(kern) and not filter(f_iptables); };
-filter f_lpr { facility(lpr); };
-filter f_mail { facility(mail); };
-filter f_news { facility(news); };
-filter f_user { facility(user); };
-filter f_uucp { facility(uucp); };
-filter f_ppp { facility(local2); };
-filter f_debug { not facility(auth, authpriv, news, mail); };
-filter f_messages { level(info..warn) and not facility(auth, authpriv, mail, news, cron) and not program(syslog-ng) and not filter(f_iptables); };
-filter f_everything { level(debug..emerg) and not facility(auth, authpriv); };
-filter f_emergency { level(emerg); };
-filter f_info { level(info); };
-filter f_notice { level(notice); };
-filter f_warn { level(warn); };
-filter f_crit { level(crit); };
-filter f_err { level(err); };
-filter f_iptables { match("IN=" value("MESSAGE")) and match("OUT=" value("MESSAGE")); };
-filter f_acpid { program("acpid"); };
-
-log { source(src); filter(f_acpid); destination(d_acpid); };
-log { source(src); filter(f_authpriv); destination(d_authlog); };
-log { source(src); filter(f_syslog); destination(d_syslog); };
-log { source(src); filter(f_cron); destination(d_cron); };
-log { source(src); filter(f_daemon); destination(d_daemon); };
-log { source(src); filter(f_kernel); destination(d_kernel); };
-log { source(src); filter(f_lpr); destination(d_lpr); };
-log { source(src); filter(f_mail); destination(d_mail); };
-log { source(src); filter(f_news); destination(d_news); };
-log { source(src); filter(f_ppp); destination(d_ppp); };
-log { source(src); filter(f_user); destination(d_user); };
-log { source(src); filter(f_uucp); destination(d_uucp); };
-#log { source(src); filter(f_debug); destination(d_debug); };
-log { source(src); filter(f_messages); destination(d_messages); };
-log { source(src); filter(f_err); destination(d_errors); };
-log { source(src); filter(f_emergency); destination(d_console); };
-log { source(src); filter(f_everything); destination(d_everything); };
-log { source(src); filter(f_iptables); destination(d_iptables); };
-
-# Log everything to tty12
-#log { source(src); destination(console_all); };
diff --git a/testing/syslog-ng/syslog-ng.logrotate b/testing/syslog-ng/syslog-ng.logrotate
deleted file mode 100644
index 3509f2970..000000000
--- a/testing/syslog-ng/syslog-ng.logrotate
+++ /dev/null
@@ -1,7 +0,0 @@
-/var/log/messages.log /var/log/auth.log /var/log/mail.log /var/log/kernel.log /var/log/errors.log /var/log/daemon.log /var/log/user.log /var/log/iptables.log /var/log/everything.log /var/log/syslog.log /var/log/acpid.log /var/log/crond.log /var/log/lpr.log /var/log/uucp.log /var/log/news.log /var/log/ppp.log /var/log/debug.log {
- missingok
- sharedscripts
- postrotate
- /bin/kill -HUP $(cat /run/syslog-ng.pid 2>/dev/null) 2>/dev/null || true
- endscript
-}
diff --git a/testing/syslog-ng/syslog-ng.rc b/testing/syslog-ng/syslog-ng.rc
deleted file mode 100755
index 516b03da3..000000000
--- a/testing/syslog-ng/syslog-ng.rc
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/bin/bash
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-
-checkconfig() {
- if ! syslog-ng -s -f /etc/syslog-ng/syslog-ng.conf; then
- stat_fail
- exit 1
- fi
-}
-
-pidfile=/run/syslog-ng.pid
-if [[ -r $pidfile ]]; then
- read -r PID < "$pidfile"
- if [[ $PID && ! -d /proc/$PID ]]; then
- # stale pidfile
- unset PID
- rm -f "$pidfile"
- fi
-fi
-
-case $1 in
- start)
- stat_busy "Starting Syslog-NG"
- checkconfig
- if [[ -z $PID ]] && /usr/sbin/syslog-ng; then
- add_daemon syslog-ng
- stat_done
- else
- stat_fail
- exit 1
- fi
- ;;
- stop)
- stat_busy "Stopping Syslog-NG"
- if [[ $PID ]] && kill $PID &>/dev/null; then
- rm_daemon syslog-ng
- stat_done
- else
- stat_fail
- exit 1
- fi
- ;;
- reload)
- stat_busy "Reloading Syslog-NG configuration and re-opening log files"
- if [[ -z $PID ]]; then
- stat_fail
- else
- checkconfig
- if kill -HUP $PID &>/dev/null; then
- stat_done
- else
- stat_fail
- exit 1
- fi
- fi
- ;;
- restart)
- $0 stop
- sleep 1
- $0 start
- ;;
- *)
- echo "usage: $0 {start|stop|restart|reload}"
-esac
diff --git a/testing/ypserv/PKGBUILD b/testing/ypserv/PKGBUILD
deleted file mode 100644
index 2bfaf2b8b..000000000
--- a/testing/ypserv/PKGBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# $Id: PKGBUILD 143552 2011-11-26 13:20:22Z bisson $
-# Maintainer: Gaetan Bisson <bisson@archlinux.org>
-# Contributor: judd <jvinet@zeroflux.org>
-# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
-
-pkgname=ypserv
-pkgver=2.26
-pkgrel=3
-pkgdesc='Linux NIS Server'
-arch=('i686' 'x86_64')
-url='http://www.linux-nis.org/nis/ypserv/'
-license=('GPL2')
-depends=('gdbm' 'openslp' 'inetutils')
-backup=('etc/ypserv.conf' 'etc/netgroup' 'var/yp/securenets')
-source=("ftp://ftp.kernel.org/pub/linux/utils/net/NIS/${pkgname}-${pkgver}.tar.gz" \
- 'yppasswd'
- 'ypserv')
-sha1sums=('0d7ab3f04ff7fa5f611e71ea0f3c188659602743'
- '96192b628afe36709496e4801d016c4bff343f0e'
- 'b625381bfa6cf62345377a7df30b8f45935206c5')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- ./configure --prefix=/usr
- make
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
-
- install -D -m644 etc/netgroup "${pkgdir}"/etc/netgroup
- install -D -m644 etc/ypserv.conf "${pkgdir}"/etc/ypserv.conf
- install -D -m644 etc/securenets "${pkgdir}"/var/yp/securenets
- install -D -m755 ../ypserv "${pkgdir}"/etc/rc.d/ypserv
- install -D -m755 ../yppasswd "${pkgdir}"/etc/rc.d/yppasswd
-}
diff --git a/testing/ypserv/yppasswd b/testing/ypserv/yppasswd
deleted file mode 100755
index c2b00b2ca..000000000
--- a/testing/ypserv/yppasswd
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/bash
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-
-case "$1" in
- start)
- stat_busy "Starting NIS Password Daemon"
- /usr/sbin/rpc.yppasswdd
- if [ $? -gt 0 ]; then
- stat_fail
- else
- add_daemon yppasswd
- stat_done
- fi
- ;;
- stop)
- stat_busy "Stopping NIS Password Daemon"
- killall -q /usr/sbin/rpc.yppasswdd
- if [ $? -gt 0 ]; then
- stat_fail
- else
- rm_daemon yppasswd
- stat_done
- fi
- ;;
- restart)
- $0 stop
- sleep 1
- $0 start
- ;;
- *)
- echo "usage: $0 {start|stop|restart}"
-esac
diff --git a/testing/ypserv/ypserv b/testing/ypserv/ypserv
deleted file mode 100755
index c36e6901b..000000000
--- a/testing/ypserv/ypserv
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/bash
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-
-case "$1" in
- start)
- stat_busy "Starting NIS Server"
- /usr/sbin/ypserv
- if [ $? -gt 0 ]; then
- stat_fail
- else
- add_daemon ypserv
- stat_done
- fi
- ;;
- stop)
- stat_busy "Stopping NIS Server"
- killall -q /usr/sbin/ypserv
- if [ $? -gt 0 ]; then
- stat_fail
- else
- rm_daemon ypserv
- stat_done
- fi
- ;;
- restart)
- $0 stop
- sleep 1
- $0 start
- ;;
- *)
- echo "usage: $0 {start|stop|restart}"
-esac
diff --git a/testing/zsh/PKGBUILD b/testing/zsh/PKGBUILD
deleted file mode 100644
index 35561cb90..000000000
--- a/testing/zsh/PKGBUILD
+++ /dev/null
@@ -1,58 +0,0 @@
-# $Id: PKGBUILD 143486 2011-11-24 17:03:28Z stephane $
-# Maintainer: Pierre Schmitz <pierre@archlinux.de>
-
-pkgname=zsh
-pkgver=4.3.12
-pkgrel=3
-pkgdesc='A very advanced and programmable command interpreter (shell) for UNIX'
-arch=('i686' 'x86_64')
-url='http://www.zsh.org/'
-license=('custom')
-depends=('pcre' 'libcap' 'gdbm')
-install=zsh.install
-source=("ftp://ftp.zsh.org/pub/${pkgname}-${pkgver}.tar.bz2" 'modules.patch')
-md5sums=('7a82c0bf0635e046ca4e9ec1bdef3811'
- 'b367c1398b60242f7044a93a837227f9')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- # upstream patch to fix handling of compressed kernel modules
- patch -p1 -i ${srcdir}/modules.patch
- # FS#16360
- sed -i 's/init.d/rc.d/g' Doc/Zsh/compsys.yo \
- Doc/zsh.texi \
- Completion/Unix/Type/_services \
- Completion/Unix/Command/_init_d
- ./configure --prefix=/usr \
- --bindir=/bin \
- --enable-etcdir=/etc/zsh \
- --enable-zshenv=/etc/zsh/zshenv \
- --enable-zlogin=/etc/zsh/zlogin \
- --enable-zlogout=/etc/zsh/zlogout \
- --enable-zprofile=/etc/profile \
- --enable-zshrc=/etc/zsh/zshrc \
- --enable-maildir-support \
- --with-term-lib='ncursesw' \
- --enable-multibyte \
- --enable-function-subdirs \
- --enable-fndir=/usr/share/zsh/functions \
- --enable-scriptdir=/usr/share/zsh/scripts \
- --with-tcsetpgrp \
- --enable-pcre \
- --enable-cap \
- --enable-zsh-secure-free
- make
-}
-
-check() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- # This test wont work with the noatime mount option
- rm Test/C02cond.ztst
- HOME="${srcdir}" make check
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}/" install
- install -D -m644 LICENCE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
-}
diff --git a/testing/zsh/modules.patch b/testing/zsh/modules.patch
deleted file mode 100644
index 315d40b98..000000000
--- a/testing/zsh/modules.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/Completion/Linux/Command/_modutils
-+++ b/Completion/Linux/Command/_modutils
-@@ -107,7 +107,7 @@ case "$state" in
- ! _retrieve_cache modules-$kver;
- then
- # 2011-01-02 gi1242: Do we need .o files? Or is .ko enough?
-- modules=( $modules_dir/$kver/(*~(source|build))/**/*.(o|ko)(.:t:r) )
-+ modules=( $modules_dir/$kver/(*~(source|build))/**/*.(o|ko|ko.gz)(.:t:r:r) )
- _store_cache modules-$kver modules
- fi
-
diff --git a/testing/zsh/zsh.install b/testing/zsh/zsh.install
deleted file mode 100644
index e2a53bea8..000000000
--- a/testing/zsh/zsh.install
+++ /dev/null
@@ -1,11 +0,0 @@
-post_install() {
- grep -q '/bin/zsh' etc/shells || echo '/bin/zsh' >> etc/shells
-}
-
-post_upgrade() {
- post_install
-}
-
-pre_remove() {
- sed -i '/^\/bin\/zsh/d' etc/shells
-}