summaryrefslogtreecommitdiff
path: root/staging
diff options
context:
space:
mode:
authorroot <root@rshg047.dnsready.net>2011-06-18 23:03:19 +0000
committerroot <root@rshg047.dnsready.net>2011-06-18 23:03:19 +0000
commitc80552b41838a5668458ebb1eb9b0f44ea6fe879 (patch)
treed8404bc10128ad69e29c762d116434876e5885a7 /staging
parente96f6ac6e912185a495a99af2b0d51b73bd1d044 (diff)
Sat Jun 18 23:03:19 UTC 2011
Diffstat (limited to 'staging')
-rw-r--r--staging/iproute2/PKGBUILD50
-rw-r--r--staging/iproute2/iproute2-fhs.patch84
-rw-r--r--staging/libsasl/PKGBUILD54
-rw-r--r--staging/libsasl/cyrus-sasl-2.1.19-checkpw.c.patch170
-rw-r--r--staging/libsasl/cyrus-sasl-db.patch34
-rw-r--r--staging/perl/ChangeLog61
-rw-r--r--staging/perl/PKGBUILD94
-rw-r--r--staging/perl/fix-h2ph-and-tests.patch104
-rw-r--r--staging/perl/perl.install18
-rwxr-xr-xstaging/perl/perlbin.sh23
10 files changed, 692 insertions, 0 deletions
diff --git a/staging/iproute2/PKGBUILD b/staging/iproute2/PKGBUILD
new file mode 100644
index 000000000..57089f2c0
--- /dev/null
+++ b/staging/iproute2/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 127646 2011-06-17 12:59:11Z stephane $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=iproute2
+pkgver=2.6.38
+pkgrel=4
+pkgdesc="IP Routing Utilities"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://www.linux-foundation.org/en/Net:Iproute2"
+depends=('perl')
+makedepends=('linux-atm')
+optdepends=('linux-atm: ATM support')
+provides=('iproute')
+conflicts=('iproute')
+replaces=('iproute')
+options=('!makeflags')
+backup=('etc/iproute2/ematch_map' 'etc/iproute2/rt_dsfield' 'etc/iproute2/rt_protos' \
+ 'etc/iproute2/rt_realms' 'etc/iproute2/rt_scopes' 'etc/iproute2/rt_tables')
+source=(http://devresources.linux-foundation.org/dev/iproute2/download/iproute2-${pkgver}.tar.bz2
+ 'iproute2-fhs.patch')
+sha1sums=('e9f6d457a06866a2a20a6cba6b3a039b2ec3e14a'
+ '2416b11252364d7a6c742eabb4a6924a75637a46')
+
+build() {
+ cd $srcdir/iproute2-${pkgver}
+
+ # set correct fhs structure
+ patch -Np1 -i ${srcdir}/iproute2-fhs.patch
+
+ ./configure
+
+ make
+}
+
+package() {
+ cd $srcdir/iproute2-${pkgver}
+
+ make DESTDIR=$pkgdir install
+
+ # allow loopback to be started before /usr is mounted, this may not be supported in the future
+ mkdir -p ${pkgdir}/sbin
+ mv ${pkgdir}/usr/sbin/ip ${pkgdir}/sbin/ip
+ ln -s /sbin/ip ${pkgdir}/usr/sbin/ip
+
+ # libnetlink isn't installed, install it FS#19385
+ install -Dm644 include/libnetlink.h ${pkgdir}/usr/include/libnetlink.h
+ install -Dm644 lib/libnetlink.a ${pkgdir}/usr/lib/libnetlink.a
+}
diff --git a/staging/iproute2/iproute2-fhs.patch b/staging/iproute2/iproute2-fhs.patch
new file mode 100644
index 000000000..2608414db
--- /dev/null
+++ b/staging/iproute2/iproute2-fhs.patch
@@ -0,0 +1,84 @@
+diff -Naur iproute2.old/Makefile iproute2-2.6.29/Makefile
+--- iproute2.old/Makefile 2009-11-11 22:05:21.251407668 +0100
++++ iproute2-2.6.29/Makefile 2009-11-11 22:07:09.891833516 +0100
+@@ -1,11 +1,12 @@
+ DESTDIR=/usr/
+ ROOTDIR=$(DESTDIR)
+ LIBDIR=/usr/lib/
+-SBINDIR=/sbin
++SBINDIR=/usr/sbin
+ CONFDIR=/etc/iproute2
+-DOCDIR=/share/doc/iproute2
+-MANDIR=/share/man
++DOCDIR=/usr/share/doc/iproute2
++MANDIR=/usr/share/man
+ ARPDDIR=/var/lib/arpd
++SHAREDIR=/usr/share
+
+ # Path to db_185.h include
+ DBM_INCLUDE:=$(ROOTDIR)/usr/include
+diff -Naur iproute2.old/tc/tc_util.c iproute2-2.6.29/tc/tc_util.c
+--- iproute2.old/tc/tc_util.c 2009-11-11 22:05:21.298076943 +0100
++++ iproute2-2.6.29/tc/tc_util.c 2009-11-11 22:09:32.865152646 +0100
+@@ -24,8 +24,8 @@
+ #include "utils.h"
+ #include "tc_util.h"
+
+-#ifndef LIBDIR
+-#define LIBDIR "/usr/lib/"
++#ifndef SHAREDIR
++#define SHAREDIR "/usr/share"
+ #endif
+
+ const char *get_tc_lib(void)
+@@ -34,7 +34,7 @@
+
+ lib_dir = getenv("TC_LIB_DIR");
+ if (!lib_dir)
+- lib_dir = LIBDIR "/tc/";
++ lib_dir = SHAREDIR "/tc/";
+
+ return lib_dir;
+ }
+diff -Naur iproute2.old/netem/Makefile iproute2-2.6.35/netem/Makefile
+--- iproute2.old/netem/Makefile 2010-08-06 11:30:48.640940183 +0200
++++ iproute2-2.6.35/netem/Makefile 2010-08-06 11:32:34.210908892 +0200
+@@ -20,9 +20,9 @@
+ $(HOSTCC) $(CCOPTS) -I../include -o $@ $@.c -lm
+
+ install: all
+- mkdir -p $(DESTDIR)$(LIBDIR)/tc
++ mkdir -p $(DESTDIR)$(SHAREDIR)/tc
+ for i in $(DISTDATA); \
+- do install -m 644 $$i $(DESTDIR)$(LIBDIR)/tc; \
++ do install -m 644 $$i $(DESTDIR)$(SHAREDIR)/tc; \
+ done
+
+ clean:
+diff -Naur iproute2.old/tc/Makefile iproute2-2.6.35/tc/Makefile
+--- iproute2.old/tc/Makefile 2010-08-06 11:48:35.607472252 +0200
++++ iproute2-2.6.35/tc/Makefile 2010-08-06 11:49:36.977473380 +0200
+@@ -99,18 +99,11 @@
+ $(AR) rcs $@ $(TCLIB)
+
+ install: all
+- mkdir -p $(MODDESTDIR)
+- install -m 0755 tc $(DESTDIR)$(SBINDIR)
+- for i in $(TCSO); \
+- do install -m 755 $$i $(MODDESTDIR); \
+- done
+- if [ ! -f $(MODDESTDIR)/m_ipt.so ]; then \
+- if [ -f $(MODDESTDIR)/m_xt.so ]; \
+- then ln -s m_xt.so $(MODDESTDIR)/m_ipt.so ; \
+- elif [ -f $(MODDESTDIR)/m_xt_old.so ]; \
+- then ln -s m_xt_old.so $(MODDESTDIR)/m_ipt.so ; \
+- fi; \
+- fi
++ mkdir -p $(DESTDIR)$(LIBDIR)/tc
++ install -m 0755 tc $(DESTDIR)$(SBINDIR)
++ for i in $(TCSO); \
++ do install -m 755 $$i $(DESTDIR)$(LIBDIR)/tc; \
++ done
+
+ clean:
+ rm -f $(TCOBJ) $(TCLIB) libtc.a tc *.so emp_ematch.yacc.h; \
diff --git a/staging/libsasl/PKGBUILD b/staging/libsasl/PKGBUILD
new file mode 100644
index 000000000..0a92c6a7a
--- /dev/null
+++ b/staging/libsasl/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 127649 2011-06-17 13:03:28Z stephane $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libsasl
+pkgver=2.1.23
+pkgrel=6
+pkgdesc="Cyrus Simple Authentication Service Layer (SASL) library"
+arch=('i686' 'x86_64')
+url="http://cyrusimap.web.cmu.edu/downloads.html#sasl"
+license=('custom')
+depends=('db>=4.8')
+optdepends=('cyrus-sasl: saslauthd'
+ 'cyrus-sasl-plugins: authentication plugins other than sasldb')
+source=(ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-${pkgver}.tar.gz
+ cyrus-sasl-2.1.19-checkpw.c.patch
+ cyrus-sasl-db.patch)
+options=('!makeflags')
+md5sums=('2eb0e48106f0e9cd8001e654f267ecbc'
+ 'e27ddff076342e7a3041c4759817d04b'
+ '0658201497aad359c0d66b0ab8032859')
+
+build() {
+ cd "${srcdir}/cyrus-sasl-${pkgver}"
+ patch -Np0 -i ${srcdir}/cyrus-sasl-2.1.19-checkpw.c.patch
+ patch -Np1 -i ${srcdir}/cyrus-sasl-db.patch
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-anon \
+ --disable-cram \
+ --disable-digest \
+ --disable-gssapi \
+ --enable-login \
+ --disable-otp \
+ --enable-plain \
+ --mandir=/usr/share/man
+ for dir in include lib sasldb plugins utils; do
+ pushd ${dir}
+ make
+ popd
+ done
+}
+
+package() {
+ cd "${srcdir}/cyrus-sasl-${pkgver}"
+ for dir in include lib sasldb plugins utils; do
+ pushd ${dir} || return 1
+ make DESTDIR="${pkgdir}" install
+ popd
+ done
+
+ # install license
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+}
diff --git a/staging/libsasl/cyrus-sasl-2.1.19-checkpw.c.patch b/staging/libsasl/cyrus-sasl-2.1.19-checkpw.c.patch
new file mode 100644
index 000000000..f7bf44b79
--- /dev/null
+++ b/staging/libsasl/cyrus-sasl-2.1.19-checkpw.c.patch
@@ -0,0 +1,170 @@
+diff -ur ../cyrus-sasl-2.1.19.orig/lib/Makefile.in ./lib/Makefile.in
+--- ../cyrus-sasl-2.1.19.orig/lib/Makefile.in 2004-07-02 21:40:15.000000000 +0200
++++ ./lib/Makefile.in 2004-09-07 13:21:22.746680576 +0200
+@@ -120,7 +120,7 @@
+ JAVA_TRUE = @JAVA_TRUE@
+ LDFLAGS = @LDFLAGS@
+ LIBOBJS = @LIBOBJS@
+-LIBS = @LIBS@
++LIBS = -lcrypt @LIBS@
+ LIBTOOL = @LIBTOOL@
+ LIB_CRYPT = @LIB_CRYPT@
+ LIB_DES = @LIB_DES@
+diff -ur ../cyrus-sasl-2.1.19.orig/lib/checkpw.c ./lib/checkpw.c
+--- ../cyrus-sasl-2.1.19.orig/lib/checkpw.c 2004-03-17 14:58:13.000000000 +0100
++++ ./lib/checkpw.c 2004-09-07 13:21:12.645916147 +0200
+@@ -94,6 +94,23 @@
+ # endif
+ #endif
+
++/******************************
++ * crypt(3) patch start *
++ ******************************/
++char *crypt(const char *key, const char *salt);
++
++/* cleartext password formats */
++#define PASSWORD_FORMAT_CLEARTEXT 1
++#define PASSWORD_FORMAT_CRYPT 2
++#define PASSWORD_FORMAT_CRYPTTRAD 3
++#define PASSWORD_SALT_BUF_LEN 22
++
++/* weeds out crypt(3) password's salt */
++int _sasl_get_salt (char *dest, char *src, int format);
++
++/******************************
++ * crypt(3) patch stop *
++ ******************************/
+
+ /* we store the following secret to check plaintext passwords:
+ *
+@@ -143,7 +160,51 @@
+ "*cmusaslsecretPLAIN",
+ NULL };
+ struct propval auxprop_values[3];
+-
++
++ /******************************
++ * crypt(3) patch start *
++ * for password format check *
++ ******************************/
++ sasl_getopt_t *getopt;
++ void *context;
++ const char *p = NULL;
++ /**
++ * MD5: 12 char salt
++ * BLOWFISH: 16 char salt
++ */
++ char salt[PASSWORD_SALT_BUF_LEN];
++ int password_format;
++
++ /* get password format from auxprop configuration */
++ if (_sasl_getcallback(conn, SASL_CB_GETOPT, &getopt, &context) == SASL_OK) {
++ getopt(context, NULL, "password_format", &p, NULL);
++ }
++
++ /* set password format */
++ if (p) {
++ /*
++ memset(pass_format_str, '\0', PASSWORD_FORMAT_STR_LEN);
++ strncpy(pass_format_str, p, (PASSWORD_FORMAT_STR_LEN - 1));
++ */
++ /* modern, modular crypt(3) */
++ if (strncmp(p, "crypt", 11) == 0)
++ password_format = PASSWORD_FORMAT_CRYPT;
++ /* traditional crypt(3) */
++ else if (strncmp(p, "crypt_trad", 11) == 0)
++ password_format = PASSWORD_FORMAT_CRYPTTRAD;
++ /* cleartext password */
++ else
++ password_format = PASSWORD_FORMAT_CLEARTEXT;
++ } else {
++ /* cleartext password */
++ password_format = PASSWORD_FORMAT_CLEARTEXT;
++ }
++
++ /******************************
++ * crypt(3) patch stop *
++ * for password format check *
++ ******************************/
++
+ if (!conn || !userstr)
+ return SASL_BADPARAM;
+
+@@ -180,14 +241,31 @@
+ goto done;
+ }
+
+- /* At the point this has been called, the username has been canonified
+- * and we've done the auxprop lookup. This should be easy. */
+- if(auxprop_values[0].name
+- && auxprop_values[0].values
+- && auxprop_values[0].values[0]
+- && !strcmp(auxprop_values[0].values[0], passwd)) {
+- /* We have a plaintext version and it matched! */
+- return SASL_OK;
++
++ /******************************
++ * crypt(3) patch start *
++ ******************************/
++
++ /* get salt */
++ _sasl_get_salt(salt, (char *) auxprop_values[0].values[0], password_format);
++
++ /* crypt(3)-ed password? */
++ if (password_format != PASSWORD_FORMAT_CLEARTEXT) {
++ /* compare password */
++ if (auxprop_values[0].name && auxprop_values[0].values && auxprop_values[0].values[0] && strcmp(crypt(passwd, salt), auxprop_values[0].values[0]) == 0)
++ return SASL_OK;
++ else
++ ret = SASL_BADAUTH;
++ }
++ else if (password_format == PASSWORD_FORMAT_CLEARTEXT) {
++ /* compare passwords */
++ if (auxprop_values[0].name && auxprop_values[0].values && auxprop_values[0].values[0] && strcmp(auxprop_values[0].values[0], passwd) == 0)
++ return SASL_OK;
++ else
++ ret = SASL_BADAUTH;
++ /******************************
++ * crypt(3) patch stop *
++ ******************************/
+ } else if(auxprop_values[1].name
+ && auxprop_values[1].values
+ && auxprop_values[1].values[0]) {
+@@ -975,3 +1053,37 @@
+ #endif
+ { NULL, NULL }
+ };
++
++/* weeds out crypt(3) password's salt */
++int _sasl_get_salt (char *dest, char *src, int format) {
++ int num; /* how many characters is salt long? */
++ switch (format) {
++ case PASSWORD_FORMAT_CRYPT:
++ /* md5 crypt */
++ if (src[1] == '1')
++ num = 12;
++ /* blowfish crypt */
++ else if (src[1] == '2')
++ num = (src[1] == '2' && src[2] == 'a') ? 17 : 16;
++ /* traditional crypt */
++ else
++ num = 2;
++ break;
++
++ case PASSWORD_FORMAT_CRYPTTRAD:
++ num = 2;
++ break;
++
++ default:
++ return 1;
++ }
++
++ /* destroy destination */
++ memset(dest, '\0', (num + 1));
++
++ /* copy salt to destination */
++ strncpy(dest, src, num);
++
++ return 1;
++}
++
diff --git a/staging/libsasl/cyrus-sasl-db.patch b/staging/libsasl/cyrus-sasl-db.patch
new file mode 100644
index 000000000..08758ab85
--- /dev/null
+++ b/staging/libsasl/cyrus-sasl-db.patch
@@ -0,0 +1,34 @@
+diff -urN aaa/cyrus-sasl-2.1.22/cmulocal/berkdb.m4 cyrus-sasl-2.1.22/cmulocal/berkdb.m4
+--- aaa/cyrus-sasl-2.1.22/cmulocal/berkdb.m4 2005-04-26 21:14:07.000000000 +0200
++++ cyrus-sasl-2.1.22/cmulocal/berkdb.m4 2006-10-02 20:36:17.137852392 +0200
+@@ -213,7 +213,7 @@
+ fi
+
+ saved_LIBS=$LIBS
+- for dbname in db-4.4 db4.4 db44 db-4.3 db4.3 db43 db-4.2 db4.2 db42 db-4.1 db4.1 db41 db-4.0 db4.0 db-4 db40 db4 db-3.3 db3.3 db33 db-3.2 db3.2 db32 db-3.1 db3.1 db31 db-3 db30 db3 db
++ for dbname in db-5.1 db-5.0 db-4.8 db-4.7 db-4.6 db-4.5 db-4.4 db4.4 db44 db-4.3 db4.3 db43 db-4.2 db4.2 db42 db-4.1 db4.1 db41 db-4.0 db4.0 db-4 db40 db4 db-3.3 db3.3 db33 db-3.2 db3.2 db32 db-3.1 db3.1 db31 db-3 db30 db3 db
+ do
+ LIBS="$saved_LIBS -l$dbname"
+ AC_TRY_LINK([#include <db.h>],
+--- cyrus-sasl-2.1.23/sasldb/db_berkeley.c.orig 2009-04-28 17:09:18.000000000 +0200
++++ cyrus-sasl-2.1.23/sasldb/db_berkeley.c 2010-05-18 21:02:20.418940098 +0200
+@@ -100,7 +100,7 @@
+ ret = db_create(mbdb, NULL, 0);
+ if (ret == 0 && *mbdb != NULL)
+ {
+-#if DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1
++#if (DB_VERSION_MAJOR > 4) || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1)
+ ret = (*mbdb)->open(*mbdb, NULL, path, NULL, DB_HASH, flags, 0660);
+ #else
+ ret = (*mbdb)->open(*mbdb, path, NULL, DB_HASH, flags, 0660);
+--- cyrus-sasl-2.1.23/utils/dbconverter-2.c.orig 2003-02-13 20:56:17.000000000 +0100
++++ cyrus-sasl-2.1.23/utils/dbconverter-2.c 2010-05-18 21:11:09.982932556 +0200
+@@ -214,7 +214,7 @@
+ ret = db_create(mbdb, NULL, 0);
+ if (ret == 0 && *mbdb != NULL)
+ {
+-#if DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1
++#if (DB_VERSION_MAJOR > 4) || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1)
+ ret = (*mbdb)->open(*mbdb, NULL, path, NULL, DB_HASH, DB_CREATE, 0664);
+ #else
+ ret = (*mbdb)->open(*mbdb, path, NULL, DB_HASH, DB_CREATE, 0664);
diff --git a/staging/perl/ChangeLog b/staging/perl/ChangeLog
new file mode 100644
index 000000000..fd53c2560
--- /dev/null
+++ b/staging/perl/ChangeLog
@@ -0,0 +1,61 @@
+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/staging/perl/PKGBUILD b/staging/perl/PKGBUILD
new file mode 100644
index 000000000..bb4053b20
--- /dev/null
+++ b/staging/perl/PKGBUILD
@@ -0,0 +1,94 @@
+# $Id: PKGBUILD 127616 2011-06-17 07:01:46Z angvp $
+# 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.0
+pkgrel=3
+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)
+install=perl.install
+options=('!makeflags' '!purge')
+md5sums=('e7457deea78330c5f8eebb2fd2a45479'
+ 'f86eb0dba1638ca6d1c8fff1b06c2a71')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ if [ "${CARCH}" = "x86_64" ]; then
+ # for x86_64
+ arch_opts="-Dcccdlflags='-fPIC'"
+ else
+ # for i686
+ arch_opts=""
+ fi
+ ./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}
+ make
+}
+package() {
+ 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 so set paths to perl scripts.
+ install -D -m755 ${srcdir}/perlbin.sh \
+ ${pkgdir}/etc/profile.d/perlbin.sh
+
+ (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/staging/perl/fix-h2ph-and-tests.patch b/staging/perl/fix-h2ph-and-tests.patch
new file mode 100644
index 000000000..a2d176ec6
--- /dev/null
+++ b/staging/perl/fix-h2ph-and-tests.patch
@@ -0,0 +1,104 @@
+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/staging/perl/perl.install b/staging/perl/perl.install
new file mode 100644
index 000000000..3f7d58f23
--- /dev/null
+++ b/staging/perl/perl.install
@@ -0,0 +1,18 @@
+# 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
+}
+
+post_upgrade() {
+ echo '- The directories /usr/lib/perl5/current, /usr/lib/perl5/site_perl/current,'
+ echo ' /usr/lib/perl5/site_perl/5.10.1, and /usr/share/perl5/site_perl/5.10.1'
+ echo ' have been removed from @INC.'
+
+ echo '- The script/binary directories are now /usr/bin/*_perl instead of'
+ echo ' /usr/lib/perl5/*_perl/bin which will be eventually removed.'
+}
diff --git a/staging/perl/perlbin.sh b/staging/perl/perlbin.sh
new file mode 100755
index 000000000..09811a8b4
--- /dev/null
+++ b/staging/perl/perlbin.sh
@@ -0,0 +1,23 @@
+# 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
+