summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-04-14 00:01:25 +0000
committerroot <root@rshg054.dnsready.net>2012-04-14 00:01:25 +0000
commit0e10d859eadd7643a12b184cc0a7176ef0d4b56b (patch)
tree44301575507e3d46cb31e6b291e4cc02f7a1b373
parent7ff5465d0386f06bea97ef956397c305d6f7e07f (diff)
Sat Apr 14 00:01:25 UTC 2012
-rw-r--r--community/collectd/PKGBUILD8
-rw-r--r--community/libmemcached/PKGBUILD6
-rw-r--r--community/luakit/0001-Dont-mark-desktop-file-as-executable.patch25
-rw-r--r--community/luakit/PKGBUILD9
-rw-r--r--community/mongodb/PKGBUILD4
-rwxr-xr-xcommunity/mongodb/mongodb.install2
-rw-r--r--community/php-memcached/PKGBUILD4
-rw-r--r--community/zeromq/PKGBUILD6
-rw-r--r--core/btrfs-progs/PKGBUILD24
-rw-r--r--core/btrfs-progs/initcpio-hook-btrfs7
-rw-r--r--core/btrfs-progs/initcpio-install-btrfs15
-rw-r--r--core/udev/0001-split-usr-always-read-config-files-from-lib-udev.patch25
-rw-r--r--core/udev/0002-reinstate-TIMEOUT-handling.patch16
-rw-r--r--core/udev/PKGBUILD18
-rw-r--r--extra/consolekit/PKGBUILD21
-rw-r--r--extra/emacs/PKGBUILD12
-rw-r--r--extra/emacs/emacs-23.3-xgselect_init.patch13
-rw-r--r--extra/libtorrent-rasterbar/PKGBUILD12
-rw-r--r--extra/llvm/PKGBUILD7
-rw-r--r--extra/php-apc/PKGBUILD15
-rw-r--r--extra/transmission/PKGBUILD23
-rw-r--r--libre/thunderbird-libre/.directory2
-rw-r--r--libre/thunderbird-libre/PKGBUILD11
-rw-r--r--libre/thunderbird-libre/searchplugins-libre.patch144
-rw-r--r--testing/cups-pk-helper/PKGBUILD27
-rw-r--r--testing/glibmm/PKGBUILD6
-rw-r--r--testing/gtkmm3/PKGBUILD6
-rw-r--r--testing/openssl/PKGBUILD79
-rw-r--r--testing/openssl/ca-dir.patch33
-rw-r--r--testing/openssl/disable-tls12-client.patch36
-rw-r--r--testing/openssl/fix-manpages.patch1920
-rw-r--r--testing/openssl/no-rpath.patch11
-rw-r--r--testing/openssl/vpaes.patch69
-rw-r--r--testing/rpcbind/0001-rpcbind-add-support-for-systemd-socket-activation.patch271
-rw-r--r--testing/rpcbind/PKGBUILD47
-rwxr-xr-xtesting/rpcbind/rpcbind39
-rw-r--r--testing/rpcbind/rpcbind-sunrpc.patch22
-rw-r--r--testing/udisks2/PKGBUILD8
38 files changed, 2896 insertions, 107 deletions
diff --git a/community/collectd/PKGBUILD b/community/collectd/PKGBUILD
index d23b745da..30ef6e616 100644
--- a/community/collectd/PKGBUILD
+++ b/community/collectd/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 68341 2012-03-22 00:46:46Z foutrelis $
+# $Id: PKGBUILD 69301 2012-04-12 20:37:46Z bisson $
# Maintainer: Gaetan Bisson <bisson@archlinux.org>
# Contributor: Gerhard Brauer <gerhard.brauer@web.de>
pkgname=collectd
-pkgver=5.0.3
-pkgrel=2
+pkgver=5.1.0
+pkgrel=1
pkgdesc='Daemon which collects system performance statistics periodically'
arch=('i686' 'x86_64')
url='http://collectd.org/'
@@ -43,7 +43,7 @@ source=("${url}files/${pkgname}-${pkgver}.tar.gz"
'rtnl_dump_filter.patch'
'libperl.patch'
'rc.d')
-sha1sums=('3af68f7dcc0de829ee41b2354da9655d96dda695'
+sha1sums=('55f17b17a10710641a9bf4e8c5332cef661cafcd'
'c92b8dacff0a71f2cc8645c2e350ff9bdc1cbd5f'
'245c098d121a4a05594553583310953b3a2f6461'
'0f441718d5519cb043b1130e5a1d0379078adbcc')
diff --git a/community/libmemcached/PKGBUILD b/community/libmemcached/PKGBUILD
index f408e7b08..3d04dbb3e 100644
--- a/community/libmemcached/PKGBUILD
+++ b/community/libmemcached/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 68226 2012-03-19 18:14:05Z foutrelis $
+# $Id: PKGBUILD 69280 2012-04-12 09:17:37Z foutrelis $
# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
pkgname=libmemcached
-pkgver=1.0.5
+pkgver=1.0.6
pkgrel=1
pkgdesc="C and C++ client library to the memcached server"
arch=('i686' 'x86_64')
@@ -12,7 +12,7 @@ depends=('glibc' 'libsasl' 'libevent')
makedepends=('perl')
options=('!libtool')
source=(http://launchpad.net/$pkgname/1.0/$pkgver/+download/$pkgname-$pkgver.tar.gz)
-sha256sums=('a1bae7f8ce0e36133bd36b0fc72ad37d985e4e476b0949efeadf7e94c2d00ea0')
+sha256sums=('1403b24fe8d32a8e5ae4c39aadb8ad9c72f17b2a3244943eb0d8fc4821f02c70')
build() {
cd "$srcdir/$pkgname-$pkgver"
diff --git a/community/luakit/0001-Dont-mark-desktop-file-as-executable.patch b/community/luakit/0001-Dont-mark-desktop-file-as-executable.patch
new file mode 100644
index 000000000..4553df933
--- /dev/null
+++ b/community/luakit/0001-Dont-mark-desktop-file-as-executable.patch
@@ -0,0 +1,25 @@
+From d3f47d51ab68054ceb3415971455ca2c036b395f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Bart=C5=82omiej=20Piotrowski?= <b@bpiotrowski.pl>
+Date: Thu, 12 Apr 2012 16:43:41 +0200
+Subject: [PATCH] Don't mark desktop file as executable.
+
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index be1567b..50973d6 100644
+--- a/Makefile
++++ b/Makefile
+@@ -78,7 +78,7 @@ install:
+ install -d $(DESTDIR)/usr/share/pixmaps
+ install extras/luakit.png $(DESTDIR)/usr/share/pixmaps/
+ install -d $(DESTDIR)/usr/share/applications
+- install extras/luakit.desktop $(DESTDIR)/usr/share/applications/
++ install -m0644 extras/luakit.desktop $(DESTDIR)/usr/share/applications/
+ install -d $(MANPREFIX)/man1/
+ install -m644 luakit.1 $(MANPREFIX)/man1/
+
+--
+1.7.10
+
diff --git a/community/luakit/PKGBUILD b/community/luakit/PKGBUILD
index da4fda4cf..82744de47 100644
--- a/community/luakit/PKGBUILD
+++ b/community/luakit/PKGBUILD
@@ -4,7 +4,7 @@
pkgname=luakit
pkgver=2012.03.25
-pkgrel=1
+pkgrel=2
pkgdesc='Fast, small, webkit based browser framework extensible by Lua'
arch=('i686' 'x86_64')
url='http://www.luakit.org/projects/luakit'
@@ -14,11 +14,14 @@ makedepends=('git' 'help2man')
options=(!makeflags)
conflicts=('luakit-git' 'luakit-develop-git')
install='luakit.install'
-source=("${pkgver}.tar.gz::https://github.com/mason-larobina/luakit/tarball/${pkgver}")
-md5sums=('e25aaeacfa5758127b3f677eafba9aa2')
+source=("${pkgver}.tar.gz::https://github.com/mason-larobina/luakit/tarball/${pkgver}"
+ 0001-Dont-mark-desktop-file-as-executable.patch)
+md5sums=('e25aaeacfa5758127b3f677eafba9aa2'
+ 'a1caf95b03659cd02a392a376a13edd7')
build() {
cd mason-larobina-luakit-*
+ patch -Np1 -i $srcdir/0001-Dont-mark-desktop-file-as-executable.patch
make USE_LUAJIT=1 PREFIX=/usr DESTDIR=${pkgdir} all
}
diff --git a/community/mongodb/PKGBUILD b/community/mongodb/PKGBUILD
index ce9bd8180..eb4b7ae0c 100644
--- a/community/mongodb/PKGBUILD
+++ b/community/mongodb/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 69242 2012-04-11 01:32:02Z tdziedzic $
+# $Id: PKGBUILD 69293 2012-04-12 17:54:48Z tdziedzic $
# Maintainer: Thomas Dziedzic < gostrc at gmail >
# Contributor: Mathias Stearn <mathias@10gen.com>
# Contributor: Alec Thomas
pkgname=mongodb
pkgver=2.0.4
-pkgrel=3
+pkgrel=4
pkgdesc='A high-performance, open source, schema-free document-oriented database.'
arch=('i686' 'x86_64')
url='http://www.mongodb.org'
diff --git a/community/mongodb/mongodb.install b/community/mongodb/mongodb.install
index 3922c12ef..2ea94553c 100755
--- a/community/mongodb/mongodb.install
+++ b/community/mongodb/mongodb.install
@@ -5,7 +5,7 @@ post_install() {
chown -R mongodb:daemon /var/lib/mongodb
chown -R mongodb:daemon /var/log/mongodb
- if [ "$(arch)" != "x86_64" ]
+ if [ "$(uname -m)" != "x86_64" ]
then
echo '==> Warning: the 32 bit version of MongoDB is limited to about 2GB of data.'
echo '==> See http://blog.mongodb.org/post/137788967/32-bit-limitations'
diff --git a/community/php-memcached/PKGBUILD b/community/php-memcached/PKGBUILD
index e0626dafc..791027d20 100644
--- a/community/php-memcached/PKGBUILD
+++ b/community/php-memcached/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 68339 2012-03-22 00:42:12Z foutrelis $
+# $Id: PKGBUILD 69284 2012-04-12 09:18:59Z foutrelis $
# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
pkgname=php-memcached
pkgver=2.0.1
-pkgrel=2
+pkgrel=3
pkgdesc="PHP extension for interfacing with memcached via libmemcached library"
arch=('i686' 'x86_64')
url="http://pecl.php.net/package/memcached"
diff --git a/community/zeromq/PKGBUILD b/community/zeromq/PKGBUILD
index 2d1a36b8a..0fe77e583 100644
--- a/community/zeromq/PKGBUILD
+++ b/community/zeromq/PKGBUILD
@@ -1,7 +1,7 @@
-# $Id: PKGBUILD 60981 2011-12-20 04:27:40Z kkeen $
+# $Id: PKGBUILD 69288 2012-04-12 13:09:04Z kkeen $
# Maintainer: Kyle Keen <keenerd@gmail.com>
pkgname=zeromq
-pkgver=2.1.11
+pkgver=2.2.0
pkgrel=1
pkgdesc="Fast messaging system built on sockets, C and C++ bindings. aka 0MQ, ZMQ."
arch=('i686' 'x86_64')
@@ -10,7 +10,7 @@ license=('LGPL')
depends=('gcc-libs' 'util-linux')
makedepends=()
source=(http://download.zeromq.org/$pkgname-$pkgver.tar.gz)
-md5sums=('f0f9fd62acb1f0869d7aa80379b1f6b7')
+md5sums=('4a4b1da5a554ad8650f000c69d018f20')
build() {
cd "$srcdir/$pkgname-$pkgver"
diff --git a/core/btrfs-progs/PKGBUILD b/core/btrfs-progs/PKGBUILD
index 343cb55c3..4161b1d43 100644
--- a/core/btrfs-progs/PKGBUILD
+++ b/core/btrfs-progs/PKGBUILD
@@ -1,31 +1,41 @@
-# $Id: PKGBUILD 147160 2012-01-23 15:27:41Z ibiru $
+# $Id: PKGBUILD 156058 2012-04-12 15:42:01Z dreisner $
# Maintainer: Tom Gundersen <teg@jklm.no>
# Contributor: Tobias Powalowski <tpowa@archlinux.org>
pkgname=btrfs-progs
-pkgver=0.19.20120110
+pkgver=0.19.20120328
pkgrel=2
pkgdesc="btrfs filesystem utilities"
arch=(i686 x86_64)
depends=('glibc' 'e2fsprogs')
-source=(ftp://ftp.archlinux.org/other/$pkgname/$pkgname-$pkgver.tar.xz)
url="http://btrfs.wiki.kernel.org/"
replaces=('btrfs-progs-unstable')
conflicts=('btrfs-progs-unstable')
provides=('btrfs-progs-unstable')
license=('GPL2')
+source=(ftp://ftp.archlinux.org/other/$pkgname/$pkgname-$pkgver.tar.xz
+ initcpio-install-btrfs
+ initcpio-hook-btrfs)
+md5sums=('f4504e73cf9254779b78d5b2318ac570'
+ 'bdaaf6bd339220c63260acec809864d2'
+ 'b09688a915a0ec8f40e2f5aacbabc9ad')
build() {
- cd $srcdir/$pkgname
- make CFLAGS="$CFLAGS" all convert
+ cd $srcdir/$pkgname-$pkgver
+ make CFLAGS="$CFLAGS"
}
package() {
- cd $srcdir/$pkgname
+ cd $srcdir/$pkgname-$pkgver
make prefix=$pkgdir/usr install
# fix manpage
mkdir -p $pkgdir/usr/share/
mv $pkgdir/usr/man $pkgdir/usr/share/man
mkdir -p ${pkgdir}/sbin
ln -sf /usr/bin/btrfs ${pkgdir}/sbin/btrfs
+
+ # install mkinitcpio hooks
+ install -Dm644 "$srcdir/initcpio-install-btrfs" \
+ "$pkgdir/usr/lib/initcpio/install/btrfs"
+ install -Dm644 "$srcdir/initcpio-hook-btrfs" \
+ "$pkgdir/usr/lib/initcpio/hooks/btrfs"
}
-md5sums=('a3f6fbeb166f8e6b5c06833888d4ecf2')
diff --git a/core/btrfs-progs/initcpio-hook-btrfs b/core/btrfs-progs/initcpio-hook-btrfs
new file mode 100644
index 000000000..7965d0a8a
--- /dev/null
+++ b/core/btrfs-progs/initcpio-hook-btrfs
@@ -0,0 +1,7 @@
+#!/usr/bin/ash
+
+run_hook() {
+ btrfs device scan
+}
+
+# vim: set ft=sh ts=4 sw=4 et:
diff --git a/core/btrfs-progs/initcpio-install-btrfs b/core/btrfs-progs/initcpio-install-btrfs
new file mode 100644
index 000000000..dbeb47ee8
--- /dev/null
+++ b/core/btrfs-progs/initcpio-install-btrfs
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+build() {
+ MODULES=$(all_modules btrfs)
+ BINARIES=btrfs
+ SCRIPT=btrfs
+}
+
+help() {
+ cat <<HELPEOF
+This hook provides support for multi-device btrfs volumes.
+HELPEOF
+}
+
+# vim: set ft=sh ts=4 sw=4 et:
diff --git a/core/udev/0001-split-usr-always-read-config-files-from-lib-udev.patch b/core/udev/0001-split-usr-always-read-config-files-from-lib-udev.patch
index d4d162167..7873dc337 100644
--- a/core/udev/0001-split-usr-always-read-config-files-from-lib-udev.patch
+++ b/core/udev/0001-split-usr-always-read-config-files-from-lib-udev.patch
@@ -1,4 +1,4 @@
-From f2bdace5bb68d4f3162f886b27210762d8b115b8 Mon Sep 17 00:00:00 2001
+From 12250c0acf747d4ed538927ad7604356b93fb444 Mon Sep 17 00:00:00 2001
From: Tom Gundersen <teg@jklm.no>
Date: Sat, 3 Mar 2012 12:28:15 +0100
Subject: [PATCH 1/2] split /usr: always read config files from /lib/udev
@@ -6,11 +6,11 @@ Subject: [PATCH 1/2] split /usr: always read config files from /lib/udev
This means we don't need a flagday in order to move udev to use
/usr/lib/udev/rules.d
---
- src/libudev.c | 25 ++++++++++++++++---------
- 1 file changed, 16 insertions(+), 9 deletions(-)
+ src/libudev.c | 23 +++++++++++++++--------
+ 1 file changed, 15 insertions(+), 8 deletions(-)
diff --git a/src/libudev.c b/src/libudev.c
-index be24329..754d713 100644
+index d954dae..4da6309 100644
--- a/src/libudev.c
+++ b/src/libudev.c
@@ -43,8 +43,8 @@ struct udev {
@@ -24,7 +24,7 @@ index be24329..754d713 100644
int rules_path_count;
char *run_path;
struct udev_list properties_list;
-@@ -255,21 +255,26 @@ UDEV_EXPORT struct udev *udev_new(void)
+@@ -255,9 +255,14 @@ UDEV_EXPORT struct udev *udev_new(void)
goto err;
if (udev->rules_path[0] == NULL) {
@@ -40,16 +40,15 @@ index be24329..754d713 100644
+ if (!udev->rules_path[1])
goto err;
+ /* /run/udev -- runtime rules */
+@@ -265,11 +270,11 @@ UDEV_EXPORT struct udev *udev_new(void)
+ goto err;
+
/* /etc/udev -- local administration rules */
- udev->rules_path[1] = strdup(SYSCONFDIR "/udev/rules.d");
- if (!udev->rules_path[1])
-+ udev->rules_path[2] = strdup(SYSCONFDIR "/udev/rules.d");
-+ if (!udev->rules_path[2])
- goto err;
-
- /* /run/udev -- runtime rules */
-- if (asprintf(&udev->rules_path[2], "%s/rules.d", udev->run_path) < 0)
-+ if (asprintf(&udev->rules_path[3], "%s/rules.d", udev->run_path) < 0)
++ udev->rules_path[3] = strdup(SYSCONFDIR "/udev/rules.d");
++ if (!udev->rules_path[3])
goto err;
- udev->rules_path_count = 3;
@@ -76,5 +75,5 @@ index be24329..754d713 100644
dbg(udev, "context %p released\n", udev);
free(udev);
--
-1.7.9.5
+1.7.10
diff --git a/core/udev/0002-reinstate-TIMEOUT-handling.patch b/core/udev/0002-reinstate-TIMEOUT-handling.patch
index 9d1d36fb6..edbbf1d32 100644
--- a/core/udev/0002-reinstate-TIMEOUT-handling.patch
+++ b/core/udev/0002-reinstate-TIMEOUT-handling.patch
@@ -1,4 +1,4 @@
-From 0a581062ee3e31e0c2aedc5eb64c60f52868b17f Mon Sep 17 00:00:00 2001
+From 629d840316280cffcc724fac41047374a7685490 Mon Sep 17 00:00:00 2001
From: Tom Gundersen <teg@jklm.no>
Date: Thu, 15 Mar 2012 02:12:43 +0100
Subject: [PATCH 2/2] reinstate TIMEOUT= handling
@@ -21,18 +21,18 @@ This reverts 43d5c5f03645c4b842659f9b5bd0ae465e885e92 and
4 files changed, 32 insertions(+), 3 deletions(-)
diff --git a/TODO b/TODO
-index 36e8440..c2e59b6 100644
+index 8b8b9c8..3d26e89 100644
--- a/TODO
+++ b/TODO
-@@ -1,6 +1,8 @@
- - find a way to tell udev to not cancel firmware
- requests in initramfs
+@@ -7,6 +7,8 @@
+
+ - move /usr/lib/udev/devices/ to tmpfiles
+ - remove TIMEOUT= handling
+
- - move /lib/udev/devices/ to tmpfiles
-
- trigger --subsystem-match=usb/usb_device
+
+ - kill rules_generator
diff --git a/src/libudev-device.c b/src/libudev-device.c
index 10f28b8..639c367 100644
--- a/src/libudev-device.c
@@ -142,5 +142,5 @@ index 1702217..88e9272 100644
}
--
-1.7.9.5
+1.7.10
diff --git a/core/udev/PKGBUILD b/core/udev/PKGBUILD
index 082ed6213..586aee998 100644
--- a/core/udev/PKGBUILD
+++ b/core/udev/PKGBUILD
@@ -1,12 +1,12 @@
-# $Id: PKGBUILD 155730 2012-04-06 00:04:05Z tomegun $
+# $Id: PKGBUILD 156062 2012-04-12 15:54:20Z tomegun $
# Maintainer: Tom Gundersen <teg@jklm.no>
# Contributor: Aaron Griffin <aaron@archlinux.org>
# Contributor: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: Thomas Bächler <thomas@archlinux.org>
pkgname=udev
-pkgver=181
-pkgrel=9
+pkgver=182
+pkgrel=1
pkgdesc="The userspace dev tools (udev)"
depends=('util-linux' 'glib2' 'kmod' 'pciutils' 'usbutils' 'bash' 'acl')
install=udev.install
@@ -33,8 +33,7 @@ build() {
--sysconfdir=/etc \
--libexecdir=/usr/lib \
--with-systemdsystemunitdir=/usr/lib/systemd/system \
- --with-firmware-path=/usr/lib/firmware/updates:/lib/firmware/updates:/usr/lib/firmware:/lib/firmware \
- --enable-udev_acl
+ --with-firmware-path=/usr/lib/firmware/updates:/lib/firmware/updates:/usr/lib/firmware:/lib/firmware
make
}
@@ -61,6 +60,9 @@ package() {
install -d ${pkgdir}/sbin
ln -s ../usr/bin/udevadm ${pkgdir}/sbin/udevadm
+ # fix wrong path to /bin/sh
+ sed -i -e 's#/usr/bin/sh#/bin/sh#g' $pkgdir/usr/lib/udev/keyboard-force-release.sh
+
# Replace dialout/tape/cdrom group in rules with uucp/storage/optical group
for i in $pkgdir/usr/lib/udev/rules.d/*.rules; do
sed -i -e 's#GROUP="dialout"#GROUP="uucp"#g;
@@ -68,8 +70,8 @@ package() {
s#GROUP="cdrom"#GROUP="optical"#g' $i
done
}
-md5sums=('0d7af750702620a871b9f9b98d8ad859'
- '02a0dbbdcba6c1eae3ef65b6b06bde1f'
- 'a9fae85491a08d7759388c605389a8c5'
+md5sums=('023877e6cc0d907994b8c648beab542b'
+ '0fa3eac115ad0140af1582d941b15f2c'
+ '94b816896bf23275c0598fc8e07270c3'
'a4dd853050bf2e0ae6b2e3d2c75499c2'
'd2b16edc6d806b5dafdbbad43ae5a3de')
diff --git a/extra/consolekit/PKGBUILD b/extra/consolekit/PKGBUILD
index 5079db709..ed0a878a6 100644
--- a/extra/consolekit/PKGBUILD
+++ b/extra/consolekit/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 145880 2012-01-03 17:21:38Z ibiru $
+# $Id: PKGBUILD 156074 2012-04-12 21:13:25Z tomegun $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: onestep_ua <onestep@ukr.net>
pkgname=consolekit
-pkgver=0.4.5
+pkgver=0.4.6
pkgrel=2
pkgdesc="A framework for defining and tracking users, login sessions, and seats"
arch=('i686' 'x86_64')
@@ -12,12 +12,10 @@ license=('GPL')
depends=('polkit' 'zlib' 'libx11' 'dbus-glib')
makedepends=('pkgconfig' 'xmlto' 'docbook-xsl')
options=(!libtool)
-source=(http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-$pkgver.tar.bz2
+#source=(http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-$pkgver.tar.bz2
+# this has not been released yet, so this is a snapshot
+source=(ftp://ftp.archlinux.org/other/${pkgname}/ConsoleKit-${pkgver}.tar.bz2
pam-foreground-compat.ck consolekit.logrotate consolekit.tmpfiles.conf)
-md5sums=('f2657f93761206922d558471a936fbc3'
- 'a8a4de71d9b0549b8143e5f6c2a36fc7'
- '6fefa451d9fe2fc6d6269629d3529793'
- '8c5a8059db515d40fae1379daf084094')
build() {
cd "$srcdir/ConsoleKit-$pkgver"
@@ -25,9 +23,10 @@ build() {
--sysconfdir=/etc \
--localstatedir=/var \
--libexecdir=/usr/lib/ConsoleKit \
- --with-systemdsystemunitdir=/lib/systemd/system \
+ --with-systemdsystemunitdir=/usr/lib/systemd/system \
--enable-pam-module \
- --enable-docbook-docs
+ --enable-docbook-docs \
+ --enable-udev-acl
make
}
@@ -43,3 +42,7 @@ package() {
rm -rf "${pkgdir}/var/run"
}
+md5sums=('810990b607e338f06a6396c92b8a4a06'
+ 'a8a4de71d9b0549b8143e5f6c2a36fc7'
+ '6fefa451d9fe2fc6d6269629d3529793'
+ '8c5a8059db515d40fae1379daf084094')
diff --git a/extra/emacs/PKGBUILD b/extra/emacs/PKGBUILD
index 9d567c69d..5ed0181b6 100644
--- a/extra/emacs/PKGBUILD
+++ b/extra/emacs/PKGBUILD
@@ -1,24 +1,28 @@
-# $Id: PKGBUILD 148704 2012-02-05 11:47:36Z ibiru $
+# $Id: PKGBUILD 156054 2012-04-12 12:20:45Z juergen $
# Maintainer: Juergen Hoetzel <juergen@archlinux.org>
# Contributor: Renchi Raju <renchi@green.tam.uiuc.edu>
pkgname=emacs
pkgver=23.4
-pkgrel=1
+pkgrel=2
pkgdesc="The extensible, customizable, self-documenting real-time display editor"
arch=('i686' 'x86_64')
url="http://www.gnu.org/software/emacs/emacs.html"
license=('GPL3')
depends=('librsvg' 'gpm' 'giflib' 'libxpm' 'gtk2' 'hicolor-icon-theme' 'gconf' 'desktop-file-utils' 'alsa-lib')
install=emacs.install
-source=(ftp://ftp.gnu.org/gnu/emacs/$pkgname-$pkgver.tar.bz2{,.sig} emacs-subversion17.patch)
+source=(ftp://ftp.gnu.org/gnu/emacs/$pkgname-$pkgver.tar.bz2{,.sig}
+ emacs-subversion17.patch
+ emacs-23.3-xgselect_init.patch)
md5sums=('070c68ad8e3c31fb3cb2414feaf5e6f0'
'55eb16eb48b44987693c0e3ea5ab8075'
- '12e2e7a66df5cc5ded54e1d30083a1fb')
+ '12e2e7a66df5cc5ded54e1d30083a1fb'
+ '0d3b3d701ba1295613ace30e8d67ca88')
build() {
cd "$srcdir"/$pkgname-$pkgver
patch -p1 -i ../emacs-subversion17.patch
+ patch -p1 -i ../emacs-23.3-xgselect_init.patch
./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib \
--localstatedir=/var --with-x-toolkit=gtk --with-xft
make
diff --git a/extra/emacs/emacs-23.3-xgselect_init.patch b/extra/emacs/emacs-23.3-xgselect_init.patch
new file mode 100644
index 000000000..f3168e0e2
--- /dev/null
+++ b/extra/emacs/emacs-23.3-xgselect_init.patch
@@ -0,0 +1,13 @@
+diff -up emacs-23.3/src/xgselect.c.xgselect_init emacs-23.3/src/xgselect.c
+--- emacs-23.3/src/xgselect.c.xgselect_init 2011-01-08 18:45:14.000000000 +0100
++++ emacs-23.3/src/xgselect.c 2011-11-11 13:00:53.211765255 +0100
+@@ -55,6 +55,9 @@ xg_select (max_fds, rfds, wfds, efds, ti
+ do {
+ if (n_gfds > gfds_size)
+ {
++ if (gfds_size == 0)
++ xgselect_initialize ();
++
+ while (n_gfds > gfds_size)
+ gfds_size *= 2;
+ xfree (gfds);
diff --git a/extra/libtorrent-rasterbar/PKGBUILD b/extra/libtorrent-rasterbar/PKGBUILD
index 858b491b8..5ab9b90da 100644
--- a/extra/libtorrent-rasterbar/PKGBUILD
+++ b/extra/libtorrent-rasterbar/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 152216 2012-03-05 08:56:15Z ibiru $
+# $Id: PKGBUILD 156047 2012-04-12 08:06:44Z ibiru $
# Maintainer : Ionut Biru <ibiru@archlinux.org>
# Contributor: Hugo Doria <hugo@archlinux.org>
pkgname=libtorrent-rasterbar
-pkgver=0.15.10
+pkgver=0.16.0
pkgrel=1
pkgdesc="A C++ library that aims to be a good alternative to all the other bittorrent implementations around"
url="http://www.rasterbar.com/products/libtorrent/"
@@ -13,12 +13,10 @@ depends=('boost-libs' 'geoip' 'python2')
makedepends=('boost')
options=('!libtool' '!emptydirs')
source=(http://libtorrent.googlecode.com/files/$pkgname-$pkgver.tar.gz)
-sha1sums=('3e461d9ede5fab3fb59be6a9f0cbc52121d536c4')
+sha1sums=('212d910f6c06f06ef1b54d7e2dd68de18f6d9c73')
build() {
- cd "$srcdir/$pkgname-$pkgver"
- export CFLAGS+=" -fvisibility=hidden"
- export CXXFLAGS+=" -fvisibility=hidden"
+ cd "$pkgname-$pkgver"
./configure --prefix=/usr \
--enable-python-binding \
--with-libgeoip=system
@@ -26,7 +24,7 @@ build() {
}
package() {
- cd "$srcdir/$pkgname-$pkgver"
+ cd "$pkgname-$pkgver"
make DESTDIR="$pkgdir" install
install -D COPYING "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
diff --git a/extra/llvm/PKGBUILD b/extra/llvm/PKGBUILD
index 82cb21881..89ecadbd6 100644
--- a/extra/llvm/PKGBUILD
+++ b/extra/llvm/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 151494 2012-02-26 18:15:27Z foutrelis $
+# $Id: PKGBUILD 156067 2012-04-12 16:34:12Z foutrelis $
# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
# Contributor: Sebastian Nowicki <sebnow@gmail.com>
@@ -104,8 +104,11 @@ package_llvm() {
# We move the clang directory out of the tree so it won't get installed and
# then we bring it back in for the clang package
mv tools/clang "$srcdir"
+
# Copy missing file into the expected location
- cp bindings/ocaml/llvm/META.llvm bindings/ocaml/llvm/Release/
+ [[ $(check_option strip) == y ]] && _build_type=Release || _build_type=Debug
+ cp bindings/ocaml/llvm/META.llvm bindings/ocaml/llvm/$_build_type/
+
# -j1 is due to race conditions during the installation of the OCaml bindings
make -j1 DESTDIR="$pkgdir" install
mv "$srcdir/clang" tools
diff --git a/extra/php-apc/PKGBUILD b/extra/php-apc/PKGBUILD
index 019ef8e19..61f57f82e 100644
--- a/extra/php-apc/PKGBUILD
+++ b/extra/php-apc/PKGBUILD
@@ -1,17 +1,17 @@
-# $Id: PKGBUILD 135862 2011-08-19 20:05:54Z pierre $
+# $Id: PKGBUILD 156069 2012-04-12 18:41:47Z pierre $
# Maintainer: Pierre Schmitz <pierre@archlinux.de>
pkgname=php-apc
-pkgver=3.1.9
-pkgrel=3
+pkgver=3.1.10
+pkgrel=1
arch=('i686' 'x86_64')
pkgdesc='A free, open, and robust framework for caching and optimizing PHP intermediate code'
url='http://pecl.php.net/package/APC'
depends=('php')
-license="PHP"
+license=('PHP')
source=("http://pecl.php.net/get/APC-${pkgver}.tgz")
backup=('etc/php/conf.d/apc.ini')
-md5sums=('a2cf7fbf6f3a87f190d897a53260ddaa')
+md5sums=('f4a6b91903d6ba9dce89fc87bb6f26c9')
build() {
cd $srcdir/APC-$pkgver
@@ -20,6 +20,11 @@ build() {
make
}
+# check() {
+# cd $srcdir/APC-$pkgver
+# make test
+# }
+
package() {
cd $srcdir/APC-$pkgver
make INSTALL_ROOT=$pkgdir install
diff --git a/extra/transmission/PKGBUILD b/extra/transmission/PKGBUILD
index 675c7f5b3..d151b5780 100644
--- a/extra/transmission/PKGBUILD
+++ b/extra/transmission/PKGBUILD
@@ -1,25 +1,22 @@
-# $Id: PKGBUILD 150701 2012-02-20 20:48:33Z ibiru $
+# $Id: PKGBUILD 156045 2012-04-12 07:21:32Z ibiru $
# Maintainer : Ionut Biru <ibiru@archlinux.org>
pkgbase=transmission
pkgname=('transmission-cli' 'transmission-gtk' 'transmission-qt')
-pkgver=2.50
+pkgver=2.51
pkgrel=1
arch=('i686' 'x86_64')
url="http://www.transmissionbt.com/"
license=('MIT')
makedepends=('gtk3' 'intltool' 'curl' 'qt' 'libevent')
source=(http://mirrors.m0k.org/transmission/files/$pkgbase-$pkgver.tar.xz
- transmissiond transmissiond.conf
- 0001-gtk-conf-set-correct-download-dir-default.patch)
-md5sums=('07606789fab2f9730fa454cfc7a04b2d'
+ transmissiond transmissiond.conf)
+md5sums=('47bfbb133f5f997a48b54f7a350d84ea'
'08875299e3fbb68fc546c1f350ac1f06'
- 'be39806c35b7544856fa4070b00fc960'
- 'f9fae46f5aa9ed3a22af64091604c6d0')
-build() {
- cd "$srcdir/$pkgbase-$pkgver"
+ 'be39806c35b7544856fa4070b00fc960')
- patch -Np1 -i "$srcdir/0001-gtk-conf-set-correct-download-dir-default.patch"
+build() {
+ cd "$pkgbase-$pkgver"
./configure --prefix=/usr
make
@@ -33,7 +30,7 @@ package_transmission-cli() {
backup=('etc/conf.d/transmissiond')
install=transmission-cli.install
- cd "$srcdir/$pkgbase-$pkgver"
+ cd "$pkgbase-$pkgver"
for dir in daemon cli web utils
do
@@ -52,7 +49,7 @@ package_transmission-gtk() {
'transmission-cli: daemon and web support')
install=transmission-gtk.install
- cd "$srcdir/$pkgbase-$pkgver"
+ cd "$pkgbase-$pkgver"
make -C gtk DESTDIR="$pkgdir" install
make -C po DESTDIR="$pkgdir" install
@@ -65,7 +62,7 @@ package_transmission-qt() {
optdepends=('transmission-cli: daemon and web support')
install=transmission-qt.install
- cd "$srcdir/$pkgbase-$pkgver"
+ cd "$pkgbase-$pkgver"
make -C qt INSTALL_ROOT="$pkgdir"/usr install
diff --git a/libre/thunderbird-libre/.directory b/libre/thunderbird-libre/.directory
new file mode 100644
index 000000000..6ec9fb1ce
--- /dev/null
+++ b/libre/thunderbird-libre/.directory
@@ -0,0 +1,2 @@
+[Dolphin]
+Timestamp=2012,4,13,6,21,8
diff --git a/libre/thunderbird-libre/PKGBUILD b/libre/thunderbird-libre/PKGBUILD
index c27851dcd..f7f89462d 100644
--- a/libre/thunderbird-libre/PKGBUILD
+++ b/libre/thunderbird-libre/PKGBUILD
@@ -7,7 +7,7 @@
pkgname=thunderbird-libre
pkgver=11.0.1
-pkgrel=2
+pkgrel=2.1
pkgdesc="Standalone Mail/News reader"
arch=('i686' 'x86_64')
license=('MPL' 'GPL')
@@ -27,7 +27,8 @@ source=(ftp://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/$pkgver/sourc
vendor.js
libvpx.patch
gcc47.patch
- clrf.patch)
+ clrf.patch
+ searchplugins-libre.patch)
md5sums=('b500560a006cb10194281263c78841f2'
'41511a6bcdd04cf56706218e4670e631'
'af3e5b344d2edf1c7d61bb0a5a96de9a'
@@ -36,7 +37,8 @@ md5sums=('b500560a006cb10194281263c78841f2'
'5a53179d14ae9631b7afe5e4d0fc0b25'
'5b2aaff7dfe7f1f94ad965905b20e782'
'07b255039a2ffbcab5b5be7986245e36'
- '5c8d79a9f1ecadffa818205ce1c23f2f')
+ '5c8d79a9f1ecadffa818205ce1c23f2f'
+ '6a1d132b0275876678cb0b08c527805a')
build() {
cd "$srcdir/comm-release"
@@ -45,6 +47,9 @@ build() {
patch -Np1 -i "$srcdir/gcc47.patch"
patch -Np2 -i "$srcdir/clrf.patch"
+ # Removing non-free search plugins replacing them with duckduckgo and identi.ca
+ patch -Np1 -i "$srcdir/searchplugins-libre.patch"
+
cp "$srcdir/mozconfig" .mozconfig
export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/lib/thunderbird"
diff --git a/libre/thunderbird-libre/searchplugins-libre.patch b/libre/thunderbird-libre/searchplugins-libre.patch
new file mode 100644
index 000000000..e466a9eb3
--- /dev/null
+++ b/libre/thunderbird-libre/searchplugins-libre.patch
@@ -0,0 +1,144 @@
+--- comm-release.orig/mail/locales/en-US/searchplugins/list.txt 2012-03-27 15:56:00.000000000 -0300
++++ comm-release/mail/locales/en-US/searchplugins/list.txt 2012-04-13 05:43:25.227475353 -0300
+@@ -1,7 +1,5 @@
+-amazondotcom
+-aol-web-search
+-bing
++duckduckgo-ssl
+ eBay
+-twitter
++identica-notice-search
++identica-people-search
+ wikipedia
+-yahoo
+--- comm-release.orig/mail/locales/en-US/searchplugins/amazondotcom.xml 2012-03-27 15:56:00.000000000 -0300
++++ /dev/null 2012-04-12 23:52:53.981159155 -0300
+@@ -1,11 +0,0 @@
+-<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+-<ShortName>Amazon.com</ShortName>
+-<Description>Amazon.com Search</Description>
+-<InputEncoding>ISO-8859-1</InputEncoding>
+-<Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHgSURBVHjalFM9TNtQEP4cB7PwM1RITUXIgsRaYEEVEyKZwhiyZAQyd0BhpFOlIjoBqhjSqVQMoVMLLAjEwECCQJkSkBqJYDOAFOMKFSf28d7DTUxiUDnp/Pzeu/vuu7t3ICKF6SLTMv2/lB0fRWKfjwDm4JJisYh0Oo3fpZLYT0SjSCQS8JAFMADNDZ3NZsnf1taiqVTKi4nGASruk5lkkmTmMB6JUKFQqO+DfX1eABWeQoVR6f7HSdM0obqu48Yw8G1tDT82NsRd1TSbU9BbGPCog8PDj+jLzurFoAVgMh4XxoNDQ6SqKi0tL9eBvAB8zZwymYxYY7EYAoEA8vm82BNTg6XUIs0MeGTZoR1mhXSnwNl4pmAbjU7mcjkKhkL1ynMnntZ4OEw3VyrV8utk7s5TdW++0QXz+1i3P7IK36t+PCfVn1OQOoOA0gXr5DPak+cPXbBK+/T3S69AtY3LJ98vZ1or/iLr+pTuvr59/A6s003UdqZFJF/PCKQ3o5CUznoBST2AfbEF/9iqYEDaIfwj73VJPEfgNTe0tWNYR0uwy9uOW0OkrgHI7z5ADo2C7v48nLV3XHKAT+x/1m1sX58xsBxg8rZJrDYD8DHHp4aJj/MK09sXjPOt46PcCzAACXY8/u34wN0AAAAASUVORK5CYII=</Image>
+-<Url type="text/html" method="GET" template="http://www.amazon.com/exec/obidos/external-search/">
+- <Param name="field-keywords" value="{searchTerms}"/>
+- <Param name="mode" value="blended"/>
+-</Url>
+-<SearchForm>http://www.amazon.com/</SearchForm>
+-</SearchPlugin>
+--- comm-release.orig/mail/locales/en-US/searchplugins/aol-web-search.xml 2012-03-27 15:56:00.000000000 -0300
++++ /dev/null 2012-04-12 23:52:53.981159155 -0300
+@@ -1,10 +0,0 @@
+-<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
+-<os:ShortName>AOL Web Search</os:ShortName>
+-<os:Description>The AOL Search engine delivers great web search results, enhanced by Google, plus relevant multimedia results delivered on a single page-so you can search less and discover more.</os:Description>
+-<os:InputEncoding>UTF-8</os:InputEncoding>
+-<os:Image width="16" height="16">data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%10%00%00%00%10%08%06%00%00%00%1F%F3%FFa%00%00%00%06bKGD%00%FF%00%FF%00%FF%A0%BD%A7%93%00%00%00%09pHYs%00%00%00H%00%00%00H%00F%C9k%3E%00%00%00%FAIDAT8%CB%9D%D3%B1q%C2%40%10%85%E1%0F%8F%0B%A0%04%97%00%1D%40%05%C6%01%B9%95*1%AA%C0C%05%E0%84%D4%E4%0A%0C%15H%EE%40%1D%98%12%D4%81%1D%E84%C8B%60%C9%2F9%AD%EE%EE%9F%DD%B7%7B%23%B0%DC%7D%A3D%22%8D%F7%06h%D4%00%D4*%02(%EF%03%B8%EB%F87Af%B9%7B%EF%03%B8o%C59%DE%A4%F1%E1%3F%25%EC%91%60%83%87%B0%FF%89m%F8%5Et%F9S%032%3C%E1%0B%E3%D6%99%02s%7C%848%91%C6E%1B0%C1%0B%9E%AFd%9A%E0%D4%80l%B1%96%C6eebE%9C%DC(%F51dRk%15%B2%FD%D5%85%B1a*%CF%80%AA%84%FC%C6%E1%23f%8Dx%8D)%E76n%10aq%C5%C4%03%B2%B0%26%D2%F8To%D6%80Y0q%8AW%97m%1C%23%EA%9A%CE%E6%20%AD%82%91%5D%83T%AA%BAp%A1%AE%B7Pk%2F%8D%A3%BF%9C%ECz%0B9%E6%7D.7K(%C3%3A%F89%FF%00_%82G%C3%D5%0E(%3E%00%00%00%00IEND%AEB%60%82</os:Image>
+-<SearchForm>http://search.aol.com</SearchForm>
+-<os:Url type="text/html" method="GET" template="http://search.aol.com/aol/search">
+- <os:Param name="query" value="{searchTerms}"/>
+-</os:Url>
+-</SearchPlugin>
+--- comm-release.orig/mail/locales/en-US/searchplugins/bing.xml 2012-03-27 15:56:00.000000000 -0300
++++ /dev/null 2012-04-12 23:52:53.981159155 -0300
+@@ -1,21 +0,0 @@
+-<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+- <ShortName>Bing</ShortName>
+- <Description>Bing. Search by Microsoft.</Description>
+- <InputEncoding>UTF-8</InputEncoding>
+- <Image width="16" height="16" type="image/x-icon">data:image/x-icon;base64,AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAABMLAAATCwAAAAAAAAAAAAAVpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8ysf97zf+24//F6f/F6f/F6f+K0/9QvP8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8krP+Z2P/////////w+f/F6f/F6f/i9P/////////T7v9Bt/8Vpv8Vpv8Vpv8Vpv/T7v/////w+f97zf8Vpv8Vpv8Vpv8Vpv9QvP/T7v/////w+f9Bt/8Vpv8Vpv97zf////////9QvP8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8krP/i9P/////i9P8Vpv8Vpv+24//////i9P8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv+K0/////////8Vpv8Vpv/F6f////////8krP8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv+n3v/////w+f8Vpv8Vpv/F6f////////+n3v8krP8Vpv8Vpv8Vpv8Vpv8Vpv9tx/////////+Z2P8Vpv8Vpv/F6f/////////////i9P+K0/9QvP9QvP9tx//F6f////////+n3v8Vpv8Vpv8Vpv/F6f/////T7v+Z2P/i9P////////////////////+24/9QvP8Vpv8Vpv8Vpv8Vpv/F6f/////F6f8Vpv8Vpv8krP9QvP9QvP9Bt/8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv/F6f/////F6f8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv9Bt/9QvP9Bt/8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8AAHBsAABhdAAAbiAAAHJ0AABsaQAAdGkAACBDAABlbgAAUEEAAEVYAAAuQwAAOy4AAEU7AABBVAAAQ00AAC5W</Image>
+- <Url type="application/x-suggestions+json" template="http://api.bing.com/osjson.aspx">
+- <Param name="query" value="{searchTerms}"/>
+- <Param name="form" value="OSDJAS"/>
+- </Url>
+- <Url type="text/html" method="GET" template="http://www.bing.com/search">
+- <Param name="q" value="{searchTerms}"/>
+- <Param name="form" value="MOZESB"/>
+- <MozParam name="pc" condition="pref" pref="ms-pc"/>
+- </Url>
+- <Url type="application/x-moz-keywordsearch" method="GET" template="http://www.bing.com/search">
+- <Param name="q" value="{searchTerms}"/>
+- <Param name="form" value="MOZESB"/>
+- <MozParam name="pc" condition="pref" pref="ms-pc"/>
+- </Url>
+- <SearchForm>http://www.bing.com/search</SearchForm>
+-</SearchPlugin>
+--- comm-release.orig/mail/locales/en-US/searchplugins/google.xml 2012-03-27 15:56:00.000000000 -0300
++++ /dev/null 2012-04-12 23:52:53.981159155 -0300
+@@ -1,14 +0,0 @@
+-<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+-<ShortName>Google</ShortName>
+-<Description>Google Search</Description>
+-<InputEncoding>UTF-8</InputEncoding>
+-<Image width="16" height="16">data:image/png;base64,AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs9Pt8xetPtu9FsfFNtu%2BTzvb2%2B%2Fne4dFJeBw0egA%2FfAJAfAA8ewBBegAAAAD%2B%2FPtft98Mp%2BwWsfAVsvEbs%2FQeqvF8xO7%2F%2F%2F63yqkxdgM7gwE%2FggM%2BfQA%2BegBDeQDe7PIbotgQufcMufEPtfIPsvAbs%2FQvq%2Bfz%2Bf%2F%2B%2B%2FZKhR05hgBBhQI8hgBAgAI9ewD0%2B%2Fg3pswAtO8Cxf4Kw%2FsJvvYAqupKsNv%2B%2Fv7%2F%2FP5VkSU0iQA7jQA9hgBDgQU%2BfQH%2F%2Ff%2FQ6fM4sM4KsN8AteMCruIqqdbZ7PH8%2Fv%2Fg6Nc%2Fhg05kAA8jAM9iQI%2BhQA%2BgQDQu6b97uv%2F%2F%2F7V8Pqw3eiWz97q8%2Ff%2F%2F%2F%2F7%2FPptpkkqjQE4kwA7kAA5iwI8iAA8hQCOSSKdXjiyflbAkG7u2s%2F%2B%2F%2F39%2F%2F7r8utrqEYtjQE8lgA7kwA7kwA9jwA9igA9hACiWSekVRyeSgiYSBHx6N%2F%2B%2Fv7k7OFRmiYtlAA5lwI7lwI4lAA7kgI9jwE9iwI4iQCoVhWcTxCmb0K%2BooT8%2Fv%2F7%2F%2F%2FJ2r8fdwI1mwA3mQA3mgA8lAE8lAE4jwA9iwE%2BhwGfXifWvqz%2B%2Ff%2F58u%2Fev6Dt4tr%2B%2F%2F2ZuIUsggA7mgM6mAM3lgA5lgA6kQE%2FkwBChwHt4dv%2F%2F%2F728ei1bCi7VAC5XQ7kz7n%2F%2F%2F6bsZkgcB03lQA9lgM7kwA2iQktZToPK4r9%2F%2F%2F9%2F%2F%2FSqYK5UwDKZAS9WALIkFn%2B%2F%2F3%2F%2BP8oKccGGcIRJrERILYFEMwAAuEAAdX%2F%2Ff7%2F%2FP%2B%2BfDvGXQLIZgLEWgLOjlf7%2F%2F%2F%2F%2F%2F9QU90EAPQAAf8DAP0AAfMAAOUDAtr%2F%2F%2F%2F7%2B%2Fu2bCTIYwDPZgDBWQDSr4P%2F%2Fv%2F%2F%2FP5GRuABAPkAA%2FwBAfkDAPAAAesAAN%2F%2F%2B%2Fz%2F%2F%2F64g1C5VwDMYwK8Yg7y5tz8%2Fv%2FV1PYKDOcAAP0DAf4AAf0AAfYEAOwAAuAAAAD%2F%2FPvi28ymXyChTATRrIb8%2F%2F3v8fk6P8MAAdUCAvoAAP0CAP0AAfYAAO4AAACAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAA</Image>
+-<Url type="application/x-suggestions+json" method="GET" template="http://suggestqueries.google.com/complete/search?output=firefox&amp;hl={moz:locale}&amp;q={searchTerms}"/>
+-<Url type="text/html" method="GET" template="http://www.google.com/search">
+- <Param name="q" value="{searchTerms}"/>
+- <Param name="ie" value="utf-8"/>
+- <Param name="oe" value="utf-8"/>
+- <Param name="aq" value="t"/>
+-</Url>
+-<SearchForm>http://www.google.com</SearchForm>
+-</SearchPlugin>
+--- comm-release.orig/mail/locales/en-US/searchplugins/twitter.xml 2012-03-27 15:56:00.000000000 -0300
++++ /dev/null 2012-04-12 23:52:53.981159155 -0300
+@@ -1,10 +0,0 @@
+-<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+-<ShortName>Twitter Search</ShortName>
+-<Description>Realtime Twitter Search</Description>
+-<InputEncoding>UTF-8</InputEncoding>
+-<Image width="16" height="16">data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%20%00%00%00%20%08%06%00%00%00szz%F4%00%00%00%19tEXtSoftware%00Adobe%20ImageReadyq%C9e%3C%00%00%06%60IDATx%DA%ACWMLSY%14%BE%F7%F5%97%B6%96%96%16P%84q%02H%A0%01%85%08%26%C4%18%C9D%60%D8L2%0Bfm2%89%86%85%3B%E2l%5D%BA%9Ad%E2%CEY%B8%18c2a%8C%B3%10%893%02e%98d%F0%07%22c%D0%22%88%C4%01K)%D0%3F%FA%FF%DE%BB%F3%DD%F7Z%82%B5%16%A8%DE%E4%B6%AF%AF%EF%DD%F3%DDs%BEs%BEs)c%8C%F0A)%25%D9q%F9%F2eC%7F%7F%7F%1D.%BF%12%04%A1%F30F%22%91%10%A3%D1%E8%92%C1%60ponn%FE%3D99%E9%BDz%F5%AAL%3Ea(%B6%F9G%16%04%1F%83%83%83%E6%B1%B1%B1oVVV%86%E2%F1%F8%7F%C9d2%22%8Ab%2C%95J%C5p%1D%8A%C5b%9E%85%85%85%1F%EF%DF%BF%DF%06%90%9A%CF%0A%00%3B%D2%3Fy%F2%A4okkk%0C%06%A3%B8%CF%D22c1%91%B1%B8%C4%98%84kY%96%19%3C%B1%B6%B8%B8%F83F%13w%DE%E7%02%40%1F%3E%7CX%BB%BA%BAz%0B%C6%23%DCx%24%CD%D8%F30c%7F%FAe%E6%DE%90%D9%1B%40JIL%19%E1px%05%5E%F8a%60%60%C0%FE)%00%B4%D9%1F%D8%BDA%92%A4%13v%BB%FD%8CN%A7%B3D%25B%A6%02%8C%3C%0E2%12H1%A2%C1%3EkJ(%E9rP%D2x%88%92%92%92%92J%97%CB%F5%F5%F2%F2%F2%08%5E%0FcJ%C5%80%D8%01p%EC%D81%23%10%B94%1A%8DM%82C%BC%09BfB%8C%F8%93%8Cp~%8A%A0%DB%9B%18%23V%1D!%D5%00R%AA%D3j%9DNg%3D%80%B8n%DF%BE%ED%EB%EC%ECL%EE%5E8%18%0C%12%84J%9A%9B%9BK%5C%BAt)%BD'%00%B0%5D%83Lp%02%84%86%03%88%88%8C%84E%D5%B8%40%D4H%F3%FB~%98%89c%AF%1C%08%3CU%D6%D6%D6%F6%9D%CDfs%99%CD%E64%F8%B1%C3%07%AC%25%E9%F5%FA%8D%8E%8E%0E%CF%F8%F8%F8%FC%C4%C4%C4z%BE%AC%D1%E6%FC%D6dl%91%EC%93%BB%19%C6%C1H%84%E1%3F%CE%1BJ%60%C0%D4%D4%D4%D4%AB%D5j%BBr%C9%98%E1V%1A%E9%EB%F5%F9%7C%7F%9C%3Bw%EE%D7%8B%17%2F%CE%DE%B8q%23%5D%08%40%C1A3%93%7B%22%8DI9w%B5z%93H%88%E9%83g%E16-%1E%B6X%2C%0E%84%F5%08%C0V%9D%3F%7F%FE%A7%40%200%3D44%24%15%0D%20%81W%E7%B7%19%F1%26%0B%E7%9F%11%00%1CzJ%9Cz%22%80'%E5eee%3D%B5%B5%B5%1B%ED%ED%ED%EF%00%60%A5(%00%0A%B9%E0%C0%F1%0D%BEuV%F09%9E5%87%0D%94%9C%B6S%D2b%A5%C4d29%EB%EA%EA%BE%9E%99%99%19%ED%EA%EA%DAp%BB%DD%09%85%7B%C5%A4NB%DE%7Bn%23.%8BQF%FEA*%AF'9%5CJP%C6%2B0%DBz%7B%7BKv%C8_%0C%00%BA%8F)P%D5G%3E%A4%F1%26%08%23%AA%0E%D3%19%8D%C6%A3%C8%16%FD'%018%C8%1023%ABu(v4%9DNgq%1E%9C%03d%CF%E8%ABCfd%A7zV%80%8C%3C%23R%B2%9C%0E%85B%3E%BF%DF%9F%CE.s%60%00%DC%B5%A5Z%F5%BB0%09)%A92%12%D2%5E%8AL0%A8%85%01)%E8%F7z%BDsSSS%F1%A2%B2%80C%B6%A3%02v%97%0B%CA%A2TY7%0FG%A8%0A%E0%10%CA%9AE%ABz%C2%EF%DF%D8z%F4%E8%91%7Bzz%FA%19f%B2%E84%D4!%A0G%60%BC%D2H%F7%24%10%F7%12%E2-n%05%83%5BH%BF%C9%7B%F7%EE%0D%0D%0F%0F%2F%EF%16.m1%F1%CF%EA%C3%5Ea%E0%C6%D1%BC%2CC%07%1E%8C%8E%8E%FE~%E7%CE%9D%C7%3C%8BsI%BA%BB~%B3%BDH%26g%CA%F0~%DA%10%A6%F4%2Fr%10%A5x%B1%B2%B2r%1E%B7%22%B9%CB%EFx%00%82%22%A3%F5%8AB%C5d%BEC%BD%A0%C6.w%F0%02%F36F%88%13%5C0%EF%E1%3F%D4%7F%7DCCC3%A4%FEBww%B7%EE%E4%C9%93%B7%20%CD%DE%BC%1E%98%9D%9D%15%A1%E1k%40%2CrI%2CE%DE%98%81%20%D7%1B1D%EF)%9A%14tJ%8A4%87E.%DD%1FN~%9F%CB%B6N%AF7B%90N%94%97%97%7F%7F%FC%F8%F1o%A1%88%A5y%3D%80%064%05%97-!n%DB(%97%0E%0E%80%A7%91%2F%99%89%7Bf%F2%EB%95%04%23%0F%FC%10%1B4%2C%5Cth%1EO%F1M%1C%C6%FB'%AC%02%BE)%85%16%D4566%F6%9F%3Auj%1A%7F%3D%CD%12q%C7%03%D7%AF_O%A1%C1XX__%7F%89j%952a%85F%0BUr%5Ef%EF%97a%3Ex%B3%C2%3B%A4%97P%C6%17%91%0F%E7%BF%F0%D0%C4%86%3A%03)%A5%E1%D1Z%ADV%DEqu%5C%B9r%C5%94%8F%84%CC%E3%F1%AC%A3%85%FA%0BMD%88%A7%5B%BD%99%12%17%FA%3F%83%A0%F6%00%B9ZPP%2F%F0%40%1C%A2%B4%00A%E2z%C0%B5%00%C6%E1%08SCEE%85!o%16%A0e%8A%A0L%8E%A2-%9F%85%17%D2%A5%20%DAi%BB%A0%82%D0%A8%20%D8%01D%89%A7i%12%EEK%CA%AA%17%11b8B%B0%80g%DA%8Fi%81%84%5C%F5%A0%D9%FC%0D%C4%F9%02MDC5%E2%D8%E5%14%00%40%26sp%2B%EF%96%E5%7Dx%80e%AA%A4MG%89%15%7C%D2(%ED%1C%91%E1%DD%08%0E7%F2G%0B%D1%C8%C8H%B8%BE%BE~%18%00%8E%B6%B6%B6%5Ep8%1C55Po%B3F%20%D5FF%3C%88%EF%BB%04%CF%06%F6%5EX%F2%15%2B%1BD%A8%0DZ%C0%C9%C8%01%80%E8%DBkkk%8B(%C9%89%82b%04B%AEB%B7%7F%C1%A5%01%20x%D7%5B%E3%D0k4%ED6%AA%10%937%18%5C%E3%A3%A2%1A%16%9A%07%80%5E%A3vD_*%E0%15%E3%C9%D7%AF_%3F%C7%89%EA%196%19%CF%ED%5E%F3%F2%08%A7%9EZ%F4o%83x%F11NB!%14*)%7B%5CKH%EA%91%AD%D0%E4%CF%F1%C1%8D%BFz%F5%EA%D9%B5k%D7%06%AA%AA%AA%9C%D9%08r%BB4%DF%E9x7%88%BE%BE%3E%E7%D9%B3g%CF477%F7%B5%B4%B4t%22%24UHWd6%E5%E7%08%0Af%D3%DC%0D%F0%B5%F8%19%92%D7a%C4%3B%B6%B4%B4%F4%12%C7%BE%BB7o%DE%BC%3B%3F%3F%FF6%5B%03%F6%03%40%19%D5%D5%D5%25%3D%3D%3DG%90%C7%AD%A8%E9%EDh.%1BA%D4%0A%FC6%E1%5BGs%5E%86%5D%02%EDO%E3%3C%10x%81%81*%EB%86%18M%E1%DC%B9%86%BF%C5%DD%DE%FF_%80%01%00%94%13%9D%26%E9%81%03P%00%00%00%00IEND%AEB%60%82</Image>
+-<Url type="text/html" method="get"
+- template="http://search.twitter.com/search?q={searchTerms}"/>
+-<SearchForm>http://search.twitter.com/</SearchForm>
+-</SearchPlugin>
+-
+--- comm-release.orig/mail/locales/en-US/searchplugins/yahoo.xml 2012-03-27 15:56:00.000000000 -0300
++++ /dev/null 2012-04-12 23:52:53.981159155 -0300
+@@ -1,13 +0,0 @@
+-<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+-<ShortName>Yahoo</ShortName>
+-<Description>Yahoo Search</Description>
+-<InputEncoding>UTF-8</InputEncoding>
+-<Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbgJqAIoCdgCaAnoAnhKCAKYijgCuLpIAskKeALpSpgC+Yq4AzHy8ANqezgDmvt4A7tLqAPz5+wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKlRFIoABWAKERERE6ADcKMzzu2hOgAAhERK8REWCWBERE36ERMHMEREvo6iEgY6hEn6Pu0mAzqkz/xjMzoDNwpERERDoAMzAKlERIoAAzMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAA//8AAP//AADAOQAAgBkAAAAPAAAACQAAAAkAAAAIAAAACAAAAAgAAIAYAADAOAAA//8AAP//AAD//wAA</Image>
+-<Url type="application/x-suggestions+json" method="GET"
+- template="http://ff.search.yahoo.com/gossip?output=fxjson&amp;command={searchTerms}" />
+-<Url type="text/html" method="GET" template="http://search.yahoo.com/search">
+- <Param name="p" value="{searchTerms}"/>
+- <Param name="ei" value="UTF-8"/>
+-</Url>
+-<SearchForm>http://search.yahoo.com/</SearchForm>
+-</SearchPlugin>
+--- /dev/null 2012-04-12 23:52:53.981159155 -0300
++++ comm-release/mail/locales/en-US/searchplugins/duckduckgo-ssl.xml 2012-04-09 14:43:56.000000000 -0300
+@@ -0,0 +1,11 @@
++<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
++<os:ShortName>DuckDuckGo RU SSL</os:ShortName>
++<os:Description>DDG Search + Google's suggestions (Russian)</os:Description>
++<os:InputEncoding>UTF-8</os:InputEncoding>
++<os:Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAANcNAADXDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJmlk8pf6+v3s/v7+++zr/fcnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnIOwBJyDscCcg7PZttJ7/7Pfs//////++xO7/S5GA/ycg7P8nIOz2JyDscCcg7AEAAAAAAAAAAAAAAAAnIOwBJyDstScg7P8nIOz/Y8p5/2fHZf9Yv0z/YcF2/1rBUv8nIOz/JyDs/ycg7P8nIOy1JyDsAQAAAAAAAAAAJyDscCcg7P8nIOz/JyDs/4jQoP/p9+n//////05X3v9LkYD/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAJyDsJicg7PYnIOz/JyDs/zUu7f/+/v////////////89N+7/JyDs/yUo7f8nIOz/JyDs/ycg7P8nIOz2JyDsJicg7IAnIOz/JyDs/ycg7P9hXPH////////////t/P//GIr2/wfD+/8Gyfz/DKv5/yM57/8nIOz/JyDs/ycg7H8nIOyzJyDs/ycg7P8nIOz/jov1////////////Otz9/w3G/P8cWfH/JSvt/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDs5icg7P8nIOz/JyDs/7u5+f///////////27l/v8E0v3/BNL9/wTQ/f8Oofn/IT7v/ycg7P8nIOz/JyDs5icg7OYnIOz/JyDs/ycg7P/p6P3/uWsC////////////5fr//6Po/f8Thfb/DKv5/w6f+f8nIOz/JyDs/ycg7OYnIOyzJyDs/ycg7P8nIOz/9/b+/////////////////7lrAv/V1Pv/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDsgCcg7P8nIOz/JyDs/8/N+///////////////////////iIX1/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDsfycg7CYnIOz2JyDs/ycg7P9FP+7/q6n4/+7u/f/n5v3/fXn0/yoj7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7CYAAAAAJyDscCcg7P8nIOz/wsD6/+no/f/Y1/z/eHTz/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAAAAAACcg7AEnIOy1JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7LUnIOwBAAAAAAAAAAAAAAAAJyDsAScg7HAnIOz2JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7HAnIOwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJicg7IAnIOyzJyDs5icg7OYnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAAAAAA+B8AAPAPAADAAwAAwAMAAIABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAACAAQAAwAMAAMADAADwDwAA+B8AAA==</os:Image>
++<SearchForm>https://duckduckgo.com/</SearchForm>
++<os:Url type="text/html" method="GET" template="https://duckduckgo.com/?q={searchTerms}&amp;kl=ru-ru">
++</os:Url><os:Url type="application/x-suggestions+json" method="GET" template="http://ddgg.nfriedly.com/complete/search?output=firefox&amp;hl=ru&amp;q={searchTerms}">
++</os:Url><os:Url type="application/opensearchdescription+xml" method="GET" template="http://mycroft.mozdev.org/updateos.php/id0/duckduckgo_ssl.xml" rel="self">
++</os:Url>
++</SearchPlugin>
+--- /dev/null 2012-04-12 23:52:53.981159155 -0300
++++ comm-release/mail/locales/en-US/searchplugins/identica-notice-search.xml 2012-04-13 05:15:55.000000000 -0300
+@@ -0,0 +1,7 @@
++<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
++<os:ShortName>Identi.ca Notice Search</os:ShortName>
++<os:InputEncoding>UTF-8</os:InputEncoding>
++<os:Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAABGD6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAD//wAA//8AAOAHAADgBwAA4AcAAOAHAADgBwAA4AcAAOAHAADgBwAA4AcAAOAHAADgBwAA//8AAP//AAA=</os:Image>
++<os:Url type="text/html" method="GET" template="http://identi.ca/search/notice?q={searchTerms}">
++</os:Url>
++</SearchPlugin>
+--- /dev/null 2012-04-12 23:52:53.981159155 -0300
++++ comm-release/mail/locales/en-US/searchplugins/identica-people-search.xml 2012-04-13 05:15:53.000000000 -0300
+@@ -0,0 +1,7 @@
++<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
++<os:ShortName>Identi.ca People Search</os:ShortName>
++<os:InputEncoding>UTF-8</os:InputEncoding>
++<os:Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAABGD6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAD//wAA//8AAOAHAADgBwAA4AcAAOAHAADgBwAA4AcAAOAHAADgBwAA4AcAAOAHAADgBwAA//8AAP//AAA=</os:Image>
++<os:Url type="text/html" method="GET" template="http://identi.ca/search/people?q={searchTerms}">
++</os:Url>
++</SearchPlugin>
diff --git a/testing/cups-pk-helper/PKGBUILD b/testing/cups-pk-helper/PKGBUILD
new file mode 100644
index 000000000..2e40cc12c
--- /dev/null
+++ b/testing/cups-pk-helper/PKGBUILD
@@ -0,0 +1,27 @@
+#$Id: PKGBUILD 156043 2012-04-12 07:12:27Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=cups-pk-helper
+pkgver=0.2.2
+pkgrel=1
+pkgdesc="A helper that makes system-config-printer use PolicyKit"
+arch=(i686 x86_64)
+url="http://www.freedesktop.org/software/cups-pk-helper/releases/"
+license=('GPL')
+depends=(polkit libcups)
+makedepends=(intltool)
+source=(http://www.freedesktop.org/software/$pkgname/releases/$pkgname-$pkgver.tar.xz)
+sha256sums=('56a10efbc0f37db39a940d99d549c7f37fa95f1af4745b30b79c240b0f37cfd7')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/cups-pk-helper
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/glibmm/PKGBUILD b/testing/glibmm/PKGBUILD
index 86ac83447..6bb35751e 100644
--- a/testing/glibmm/PKGBUILD
+++ b/testing/glibmm/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 155092 2012-04-01 11:32:39Z heftig $
+# $Id: PKGBUILD 156049 2012-04-12 08:11:33Z ibiru $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
pkgbase=glibmm
pkgname=('glibmm' 'glibmm-docs')
-pkgver=2.31.22
+pkgver=2.32.0
pkgrel=1
arch=('i686' 'x86_64')
license=('LGPL')
@@ -12,7 +12,7 @@ makedepends=('glib2' 'libsigc++2.0' 'pkgconfig')
source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
options=('!libtool')
url="http://www.gtkmm.org/"
-sha256sums=('9941c75c8a6c89d25db5d612ac96da4ebbac0f0bbde6958fd8ea21d1e864bf4e')
+sha256sums=('e1806f884c6e9f904ee2af0d39dd8d4de3f91a039f897f54333b0890de06f94b')
build() {
cd "$pkgname-$pkgver"
diff --git a/testing/gtkmm3/PKGBUILD b/testing/gtkmm3/PKGBUILD
index 3d75bc777..01d1c743d 100644
--- a/testing/gtkmm3/PKGBUILD
+++ b/testing/gtkmm3/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 155172 2012-04-01 11:34:41Z heftig $
+# $Id: PKGBUILD 156051 2012-04-12 08:26:22Z ibiru $
# Maintainer: Ionut Biru <ibiru@archlinux.org>
pkgbase=gtkmm3
_pkgbasename=gtkmm
pkgname=('gtkmm3' 'gtkmm3-docs')
-pkgver=3.3.20
+pkgver=3.4.0
pkgrel=1
arch=('i686' 'x86_64')
makedepends=('gtk3' 'pangomm' 'atkmm' 'glibmm-docs' 'mm-common')
@@ -12,7 +12,7 @@ license=('LGPL')
options=('!libtool' '!emptydirs')
url="http://www.gtkmm.org/"
source=(http://ftp.gnome.org/pub/GNOME/sources/$_pkgbasename/${pkgver%.*}/$_pkgbasename-$pkgver.tar.xz)
-sha256sums=('ae131bc37c158d136f61f8d01377c0ee348e3e832a22272ffa7efc530197b6b4')
+sha256sums=('42ea4e9acdd37fc3fe7026f8249a5427927b51048adff827bc1312900d6b12e9')
build() {
cd "$_pkgbasename-$pkgver"
diff --git a/testing/openssl/PKGBUILD b/testing/openssl/PKGBUILD
new file mode 100644
index 000000000..871f3276a
--- /dev/null
+++ b/testing/openssl/PKGBUILD
@@ -0,0 +1,79 @@
+# $Id: PKGBUILD 156072 2012-04-12 19:45:04Z pierre $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=openssl
+_ver=1.0.1
+# use a pacman compatible version scheme
+# pkgver=${_ver/[a-z]/.${_ver//[0-9.]/}}
+pkgver=$_ver
+pkgrel=3
+pkgdesc='The Open Source toolkit for Secure Sockets Layer and Transport Layer Security'
+arch=('i686' 'x86_64')
+url='https://www.openssl.org'
+license=('custom:BSD')
+depends=('perl')
+optdepends=('ca-certificates')
+options=('!makeflags')
+backup=('etc/ssl/openssl.cnf')
+source=("https://www.openssl.org/source/${pkgname}-${_ver}.tar.gz"
+ "https://www.openssl.org/source/${pkgname}-${_ver}.tar.gz.asc"
+ 'fix-manpages.patch'
+ 'no-rpath.patch'
+ 'ca-dir.patch'
+ 'disable-tls12-client.patch'
+ 'vpaes.patch')
+md5sums=('134f168bc2a8333f19f81d684841710b'
+ 'efbe93c11747fed52e60567819409d8a'
+ '5bbc0655bda2af95bc8eb568963ce8ba'
+ 'dc78d3d06baffc16217519242ce92478'
+ '3bf51be3a1bbd262be46dc619f92aa90'
+ '26432b9d7af63c63828b6405c9185400'
+ '55ad53e8ec3db1db6978af55e3ce1b5d')
+
+build() {
+ cd $srcdir/$pkgname-$_ver
+
+ if [ "${CARCH}" == 'x86_64' ]; then
+ openssltarget='linux-x86_64'
+ optflags='enable-ec_nistp_64_gcc_128'
+ elif [ "${CARCH}" == 'i686' ]; then
+ openssltarget='linux-elf'
+ optflags=''
+ fi
+
+ # avoid conflicts with other man pages
+ # see http://www.linuxfromscratch.org/patches/downloads/openssl/
+ patch -p1 -i $srcdir/fix-manpages.patch
+ # remove rpath: http://bugs.archlinux.org/task/14367
+ patch -p0 -i $srcdir/no-rpath.patch
+ # set ca dir to /etc/ssl by default
+ patch -p0 -i $srcdir/ca-dir.patch
+ # workaround for PR#2771
+ patch -p1 -i $srcdir/disable-tls12-client.patch
+ # fix for PR#2775
+ patch -p1 -i $srcdir/vpaes.patch
+ # mark stack as non-executable: http://bugs.archlinux.org/task/12434
+ ./Configure --prefix=/usr --openssldir=/etc/ssl --libdir=lib \
+ shared zlib enable-md2 ${optflags} \
+ "${openssltarget}" \
+ -Wa,--noexecstack "${CFLAGS}" "${LDFLAGS}" \
+ -DOPENSSL_NO_TLS1_2_CLIENT
+
+ make depend
+ make
+}
+
+check() {
+ cd $srcdir/$pkgname-$_ver
+ # the test fails due to missing write permissions in /etc/ssl
+ # revert this patch for make test
+ patch -p0 -R -i $srcdir/ca-dir.patch
+ make test
+ patch -p0 -i $srcdir/ca-dir.patch
+}
+
+package() {
+ cd $srcdir/$pkgname-$_ver
+ make INSTALL_PREFIX=$pkgdir MANDIR=/usr/share/man install
+ install -D -m644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/testing/openssl/ca-dir.patch b/testing/openssl/ca-dir.patch
new file mode 100644
index 000000000..41d1386d3
--- /dev/null
+++ b/testing/openssl/ca-dir.patch
@@ -0,0 +1,33 @@
+--- apps/CA.pl.in 2006-04-28 02:30:49.000000000 +0200
++++ apps/CA.pl.in 2010-04-01 00:35:02.600553509 +0200
+@@ -53,7 +53,7 @@
+ $X509="$openssl x509";
+ $PKCS12="$openssl pkcs12";
+
+-$CATOP="./demoCA";
++$CATOP="/etc/ssl";
+ $CAKEY="cakey.pem";
+ $CAREQ="careq.pem";
+ $CACERT="cacert.pem";
+--- apps/CA.sh 2009-10-15 19:27:47.000000000 +0200
++++ apps/CA.sh 2010-04-01 00:35:02.600553509 +0200
+@@ -68,7 +68,7 @@
+ X509="$OPENSSL x509"
+ PKCS12="openssl pkcs12"
+
+-if [ -z "$CATOP" ] ; then CATOP=./demoCA ; fi
++if [ -z "$CATOP" ] ; then CATOP=/etc/ssl ; fi
+ CAKEY=./cakey.pem
+ CAREQ=./careq.pem
+ CACERT=./cacert.pem
+--- apps/openssl.cnf 2009-04-04 20:09:43.000000000 +0200
++++ apps/openssl.cnf 2010-04-01 00:35:02.607220681 +0200
+@@ -39,7 +39,7 @@
+ ####################################################################
+ [ CA_default ]
+
+-dir = ./demoCA # Where everything is kept
++dir = /etc/ssl # Where everything is kept
+ certs = $dir/certs # Where the issued certs are kept
+ crl_dir = $dir/crl # Where the issued crl are kept
+ database = $dir/index.txt # database index file.
diff --git a/testing/openssl/disable-tls12-client.patch b/testing/openssl/disable-tls12-client.patch
new file mode 100644
index 000000000..edb87e77f
--- /dev/null
+++ b/testing/openssl/disable-tls12-client.patch
@@ -0,0 +1,36 @@
+Index: openssl/ssl/t1_lib.c
+RCS File: /v/openssl/cvs/openssl/ssl/t1_lib.c,v
+rcsdiff -q -kk '-r1.64.2.14.2.31' '-r1.64.2.14.2.32' -u '/v/openssl/cvs/openssl/ssl/t1_lib.c,v' 2>/dev/null
+--- t1_lib.c 2012/02/27 16:38:10 1.64.2.14.2.31
++++ t1_lib.c 2012/03/21 21:32:57 1.64.2.14.2.32
+@@ -544,7 +544,7 @@
+ }
+ skip_ext:
+
+- if (TLS1_get_version(s) >= TLS1_2_VERSION)
++ if (TLS1_get_client_version(s) >= TLS1_2_VERSION)
+ {
+ if ((size_t)(limit - ret) < sizeof(tls12_sigalgs) + 6)
+ return NULL;
+Index: openssl/ssl/s23_clnt.c
+RCS File: /v/openssl/cvs/openssl/ssl/s23_clnt.c,v
+rcsdiff -q -kk '-r1.43.2.4.2.5' '-r1.43.2.4.2.6' -u '/v/openssl/cvs/openssl/ssl/s23_clnt.c,v' 2>/dev/null
+--- s23_clnt.c 2011/05/19 18:22:15 1.43.2.4.2.5
++++ s23_clnt.c 2012/03/29 19:08:54 1.43.2.4.2.6
+@@ -287,12 +287,14 @@
+
+ if (ssl2_compat && ssl23_no_ssl2_ciphers(s))
+ ssl2_compat = 0;
+-
++#ifndef OPENSSL_NO_TLS1_2_CLIENT
+ if (!(s->options & SSL_OP_NO_TLSv1_2))
+ {
+ version = TLS1_2_VERSION;
+ }
+- else if (!(s->options & SSL_OP_NO_TLSv1_1))
++ else
++#endif
++ if (!(s->options & SSL_OP_NO_TLSv1_1))
+ {
+ version = TLS1_1_VERSION;
+ }
diff --git a/testing/openssl/fix-manpages.patch b/testing/openssl/fix-manpages.patch
new file mode 100644
index 000000000..0a300f3b9
--- /dev/null
+++ b/testing/openssl/fix-manpages.patch
@@ -0,0 +1,1920 @@
+Submitted By: Robert Connolly <robert at linuxfromscratch dot org>
+Date: 2005-11-13
+Initial Package Version: 0.9.8a
+Upstream Status: Submitted upstream
+Origin: Anderson Lizardo
+Description: This patch fixes conflicts between man pages
+ installed by OpenSSL and those found on other
+ packages (particulary Shadow, Perl, and
+ Man-pages). It also fixes syntax errors on some
+ POD files that generates slightly broken man
+ pages. Rediffed for 1.0.0a by Ken Moffat
+
+diff -Naur openssl-1.0.0a.orig//crypto/rand/md_rand.c openssl-1.0.0a/crypto/rand/md_rand.c
+--- openssl-1.0.0a.orig//crypto/rand/md_rand.c 2009-01-03 09:25:32.000000000 +0000
++++ openssl-1.0.0a/crypto/rand/md_rand.c 2010-09-01 19:36:31.604126440 +0100
+@@ -196,7 +196,7 @@
+ int do_not_lock;
+
+ /*
+- * (Based on the rand(3) manpage)
++ * (Based on the openssl_rand(3) manpage)
+ *
+ * The input is chopped up into units of 20 bytes (or less for
+ * the last block). Each of these blocks is run through the hash
+@@ -361,7 +361,7 @@
+ num_ceil = (1 + (num-1)/(MD_DIGEST_LENGTH/2)) * (MD_DIGEST_LENGTH/2);
+
+ /*
+- * (Based on the rand(3) manpage:)
++ * (Based on the openssl_rand(3) manpage)
+ *
+ * For each group of 10 bytes (or less), we do the following:
+ *
+diff -Naur openssl-1.0.0a.orig//doc/apps/openssl-passwd.pod openssl-1.0.0a/doc/apps/openssl-passwd.pod
+--- openssl-1.0.0a.orig//doc/apps/openssl-passwd.pod 1970-01-01 01:00:00.000000000 +0100
++++ openssl-1.0.0a/doc/apps/openssl-passwd.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -0,0 +1,82 @@
++=pod
++
++=head1 NAME
++
++openssl-passwd - compute password hashes
++
++=head1 SYNOPSIS
++
++B<openssl passwd>
++[B<-crypt>]
++[B<-1>]
++[B<-apr1>]
++[B<-salt> I<string>]
++[B<-in> I<file>]
++[B<-stdin>]
++[B<-noverify>]
++[B<-quiet>]
++[B<-table>]
++{I<password>}
++
++=head1 DESCRIPTION
++
++The B<passwd> command computes the hash of a password typed at
++run-time or the hash of each password in a list. The password list is
++taken from the named file for option B<-in file>, from stdin for
++option B<-stdin>, or from the command line, or from the terminal otherwise.
++The Unix standard algorithm B<crypt> and the MD5-based BSD password
++algorithm B<1> and its Apache variant B<apr1> are available.
++
++=head1 OPTIONS
++
++=over 4
++
++=item B<-crypt>
++
++Use the B<crypt> algorithm (default).
++
++=item B<-1>
++
++Use the MD5 based BSD password algorithm B<1>.
++
++=item B<-apr1>
++
++Use the B<apr1> algorithm (Apache variant of the BSD algorithm).
++
++=item B<-salt> I<string>
++
++Use the specified salt.
++When reading a password from the terminal, this implies B<-noverify>.
++
++=item B<-in> I<file>
++
++Read passwords from I<file>.
++
++=item B<-stdin>
++
++Read passwords from B<stdin>.
++
++=item B<-noverify>
++
++Don't verify when reading a password from the terminal.
++
++=item B<-quiet>
++
++Don't output warnings when passwords given at the command line are truncated.
++
++=item B<-table>
++
++In the output list, prepend the cleartext password and a TAB character
++to each password hash.
++
++=back
++
++=head1 EXAMPLES
++
++B<openssl passwd -crypt -salt xx password> prints B<xxj31ZMTZzkVA>.
++
++B<openssl passwd -1 -salt xxxxxxxx password> prints B<$1$xxxxxxxx$UYCIxa628.9qXjpQCjM4a.>.
++
++B<openssl passwd -apr1 -salt xxxxxxxx password> prints B<$apr1$xxxxxxxx$dxHfLAsjHkDRmG83UXe8K0>.
++
++=cut
+diff -Naur openssl-1.0.0a.orig//doc/apps/openssl.pod openssl-1.0.0a/doc/apps/openssl.pod
+--- openssl-1.0.0a.orig//doc/apps/openssl.pod 2010-01-21 18:46:28.000000000 +0000
++++ openssl-1.0.0a/doc/apps/openssl.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -163,7 +163,7 @@
+
+ Online Certificate Status Protocol utility.
+
+-=item L<B<passwd>|passwd(1)>
++=item L<B<passwd>|openssl-passwd(1)>
+
+ Generation of hashed passwords.
+
+@@ -401,7 +401,7 @@
+ L<dhparam(1)|dhparam(1)>, L<dsa(1)|dsa(1)>, L<dsaparam(1)|dsaparam(1)>,
+ L<enc(1)|enc(1)>, L<gendsa(1)|gendsa(1)>, L<genpkey(1)|genpkey(1)>,
+ L<genrsa(1)|genrsa(1)>, L<nseq(1)|nseq(1)>, L<openssl(1)|openssl(1)>,
+-L<passwd(1)|passwd(1)>,
++L<openssl-passwd(1)|openssl-passwd(1)>,
+ L<pkcs12(1)|pkcs12(1)>, L<pkcs7(1)|pkcs7(1)>, L<pkcs8(1)|pkcs8(1)>,
+ L<rand(1)|rand(1)>, L<req(1)|req(1)>, L<rsa(1)|rsa(1)>,
+ L<rsautl(1)|rsautl(1)>, L<s_client(1)|s_client(1)>,
+diff -Naur openssl-1.0.0a.orig//doc/apps/passwd.pod openssl-1.0.0a/doc/apps/passwd.pod
+--- openssl-1.0.0a.orig//doc/apps/passwd.pod 2002-10-04 13:59:00.000000000 +0100
++++ openssl-1.0.0a/doc/apps/passwd.pod 1970-01-01 01:00:00.000000000 +0100
+@@ -1,82 +0,0 @@
+-=pod
+-
+-=head1 NAME
+-
+-passwd - compute password hashes
+-
+-=head1 SYNOPSIS
+-
+-B<openssl passwd>
+-[B<-crypt>]
+-[B<-1>]
+-[B<-apr1>]
+-[B<-salt> I<string>]
+-[B<-in> I<file>]
+-[B<-stdin>]
+-[B<-noverify>]
+-[B<-quiet>]
+-[B<-table>]
+-{I<password>}
+-
+-=head1 DESCRIPTION
+-
+-The B<passwd> command computes the hash of a password typed at
+-run-time or the hash of each password in a list. The password list is
+-taken from the named file for option B<-in file>, from stdin for
+-option B<-stdin>, or from the command line, or from the terminal otherwise.
+-The Unix standard algorithm B<crypt> and the MD5-based BSD password
+-algorithm B<1> and its Apache variant B<apr1> are available.
+-
+-=head1 OPTIONS
+-
+-=over 4
+-
+-=item B<-crypt>
+-
+-Use the B<crypt> algorithm (default).
+-
+-=item B<-1>
+-
+-Use the MD5 based BSD password algorithm B<1>.
+-
+-=item B<-apr1>
+-
+-Use the B<apr1> algorithm (Apache variant of the BSD algorithm).
+-
+-=item B<-salt> I<string>
+-
+-Use the specified salt.
+-When reading a password from the terminal, this implies B<-noverify>.
+-
+-=item B<-in> I<file>
+-
+-Read passwords from I<file>.
+-
+-=item B<-stdin>
+-
+-Read passwords from B<stdin>.
+-
+-=item B<-noverify>
+-
+-Don't verify when reading a password from the terminal.
+-
+-=item B<-quiet>
+-
+-Don't output warnings when passwords given at the command line are truncated.
+-
+-=item B<-table>
+-
+-In the output list, prepend the cleartext password and a TAB character
+-to each password hash.
+-
+-=back
+-
+-=head1 EXAMPLES
+-
+-B<openssl passwd -crypt -salt xx password> prints B<xxj31ZMTZzkVA>.
+-
+-B<openssl passwd -1 -salt xxxxxxxx password> prints B<$1$xxxxxxxx$UYCIxa628.9qXjpQCjM4a.>.
+-
+-B<openssl passwd -apr1 -salt xxxxxxxx password> prints B<$apr1$xxxxxxxx$dxHfLAsjHkDRmG83UXe8K0>.
+-
+-=cut
+diff -Naur openssl-1.0.0a.orig//doc/crypto/BN_generate_prime.pod openssl-1.0.0a/doc/crypto/BN_generate_prime.pod
+--- openssl-1.0.0a.orig//doc/crypto/BN_generate_prime.pod 2003-01-13 13:18:22.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/BN_generate_prime.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -90,7 +90,7 @@
+
+ =head1 SEE ALSO
+
+-L<bn(3)|bn(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>
++L<bn(3)|bn(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/bn.pod openssl-1.0.0a/doc/crypto/bn.pod
+--- openssl-1.0.0a.orig//doc/crypto/bn.pod 2008-07-03 20:59:24.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/bn.pod 2010-09-01 19:36:31.620125025 +0100
+@@ -167,7 +167,7 @@
+ =head1 SEE ALSO
+
+ L<bn_internal(3)|bn_internal(3)>,
+-L<dh(3)|dh(3)>, L<err(3)|err(3)>, L<rand(3)|rand(3)>, L<rsa(3)|rsa(3)>,
++L<dh(3)|dh(3)>, L<openssl_err(3)|openssl_err(3)>, L<openssl_rand(3)|openssl_rand(3)>, L<rsa(3)|rsa(3)>,
+ L<BN_new(3)|BN_new(3)>, L<BN_CTX_new(3)|BN_CTX_new(3)>,
+ L<BN_copy(3)|BN_copy(3)>, L<BN_swap(3)|BN_swap(3)>, L<BN_num_bytes(3)|BN_num_bytes(3)>,
+ L<BN_add(3)|BN_add(3)>, L<BN_add_word(3)|BN_add_word(3)>,
+diff -Naur openssl-1.0.0a.orig//doc/crypto/BN_rand.pod openssl-1.0.0a/doc/crypto/BN_rand.pod
+--- openssl-1.0.0a.orig//doc/crypto/BN_rand.pod 2002-09-25 14:33:26.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/BN_rand.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -45,7 +45,7 @@
+
+ =head1 SEE ALSO
+
+-L<bn(3)|bn(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>,
++L<bn(3)|bn(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<RAND_add(3)|RAND_add(3)>, L<RAND_bytes(3)|RAND_bytes(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/CONF_modules_free.pod openssl-1.0.0a/doc/crypto/CONF_modules_free.pod
+--- openssl-1.0.0a.orig//doc/crypto/CONF_modules_free.pod 2006-12-21 21:13:27.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/CONF_modules_free.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -37,7 +37,7 @@
+ =head1 SEE ALSO
+
+ L<conf(5)|conf(5)>, L<OPENSSL_config(3)|OPENSSL_config(3)>,
+-L<CONF_modules_load_file(3), CONF_modules_load_file(3)>
++L<CONF_modules_load_file(3)|CONF_modules_load_file(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/CONF_modules_load_file.pod openssl-1.0.0a/doc/crypto/CONF_modules_load_file.pod
+--- openssl-1.0.0a.orig//doc/crypto/CONF_modules_load_file.pod 2004-03-02 13:31:32.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/CONF_modules_load_file.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -51,7 +51,7 @@
+ =head1 SEE ALSO
+
+ L<conf(5)|conf(5)>, L<OPENSSL_config(3)|OPENSSL_config(3)>,
+-L<CONF_free(3), CONF_free(3)>, L<err(3),err(3)>
++L<CONF_free(3)|CONF_free(3)>, L<openssl_err(3)|openssl_err(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/crypto.pod openssl-1.0.0a/doc/crypto/crypto.pod
+--- openssl-1.0.0a.orig//doc/crypto/crypto.pod 2002-10-06 13:59:25.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/crypto.pod 2010-09-01 19:36:31.620125025 +0100
+@@ -46,7 +46,7 @@
+
+ =item AUXILIARY FUNCTIONS
+
+-L<err(3)|err(3)>, L<threads(3)|threads(3)>, L<rand(3)|rand(3)>,
++L<openssl_err(3)|openssl_err(3)>, L<openssl_threads(3)|openssl_threads(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<OPENSSL_VERSION_NUMBER(3)|OPENSSL_VERSION_NUMBER(3)>
+
+ =item INPUT/OUTPUT, DATA ENCODING
+diff -Naur openssl-1.0.0a.orig//doc/crypto/des.pod openssl-1.0.0a/doc/crypto/des.pod
+--- openssl-1.0.0a.orig//doc/crypto/des.pod 2003-10-01 16:02:45.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/des.pod 2010-09-01 19:36:31.620125025 +0100
+@@ -115,7 +115,7 @@
+ the key; it is used to speed the encryption process.
+
+ DES_random_key() generates a random key. The PRNG must be seeded
+-prior to using this function (see L<rand(3)|rand(3)>). If the PRNG
++prior to using this function (see L<openssl_rand(3)|openssl_rand(3)>). If the PRNG
+ could not generate a secure key, 0 is returned.
+
+ Before a DES key can be used, it must be converted into the
+@@ -317,7 +317,7 @@
+
+ =head1 SEE ALSO
+
+-crypt(3), L<des_modes(7)|des_modes(7)>, L<evp(3)|evp(3)>, L<rand(3)|rand(3)>
++crypt(3), L<des_modes(7)|des_modes(7)>, L<evp(3)|evp(3)>, L<openssl_rand(3)|openssl_rand(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/DH_generate_key.pod openssl-1.0.0a/doc/crypto/DH_generate_key.pod
+--- openssl-1.0.0a.orig//doc/crypto/DH_generate_key.pod 2002-09-25 14:33:27.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/DH_generate_key.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -40,7 +40,7 @@
+
+ =head1 SEE ALSO
+
+-L<dh(3)|dh(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>, L<DH_size(3)|DH_size(3)>
++L<dh(3)|dh(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>, L<DH_size(3)|DH_size(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/DH_generate_parameters.pod openssl-1.0.0a/doc/crypto/DH_generate_parameters.pod
+--- openssl-1.0.0a.orig//doc/crypto/DH_generate_parameters.pod 2002-09-25 14:33:27.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/DH_generate_parameters.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -59,7 +59,7 @@
+
+ =head1 SEE ALSO
+
+-L<dh(3)|dh(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>,
++L<dh(3)|dh(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<DH_free(3)|DH_free(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/dh.pod openssl-1.0.0a/doc/crypto/dh.pod
+--- openssl-1.0.0a.orig//doc/crypto/dh.pod 2002-08-05 17:27:01.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/dh.pod 2010-09-01 19:36:31.620125025 +0100
+@@ -67,8 +67,8 @@
+
+ =head1 SEE ALSO
+
+-L<dhparam(1)|dhparam(1)>, L<bn(3)|bn(3)>, L<dsa(3)|dsa(3)>, L<err(3)|err(3)>,
+-L<rand(3)|rand(3)>, L<rsa(3)|rsa(3)>, L<engine(3)|engine(3)>,
++L<dhparam(1)|dhparam(1)>, L<bn(3)|bn(3)>, L<dsa(3)|dsa(3)>, L<openssl_err(3)|openssl_err(3)>,
++L<openssl_rand(3)|openssl_rand(3)>, L<rsa(3)|rsa(3)>, L<engine(3)|engine(3)>,
+ L<DH_set_method(3)|DH_set_method(3)>, L<DH_new(3)|DH_new(3)>,
+ L<DH_get_ex_new_index(3)|DH_get_ex_new_index(3)>,
+ L<DH_generate_parameters(3)|DH_generate_parameters(3)>,
+diff -Naur openssl-1.0.0a.orig//doc/crypto/DSA_do_sign.pod openssl-1.0.0a/doc/crypto/DSA_do_sign.pod
+--- openssl-1.0.0a.orig//doc/crypto/DSA_do_sign.pod 2002-09-25 14:33:27.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/DSA_do_sign.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -36,7 +36,7 @@
+
+ =head1 SEE ALSO
+
+-L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>,
++L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<DSA_SIG_new(3)|DSA_SIG_new(3)>,
+ L<DSA_sign(3)|DSA_sign(3)>
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/DSA_generate_key.pod openssl-1.0.0a/doc/crypto/DSA_generate_key.pod
+--- openssl-1.0.0a.orig//doc/crypto/DSA_generate_key.pod 2002-09-25 14:33:27.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/DSA_generate_key.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -24,7 +24,7 @@
+
+ =head1 SEE ALSO
+
+-L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>,
++L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<DSA_generate_parameters(3)|DSA_generate_parameters(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/DSA_generate_parameters.pod openssl-1.0.0a/doc/crypto/DSA_generate_parameters.pod
+--- openssl-1.0.0a.orig//doc/crypto/DSA_generate_parameters.pod 2002-09-25 14:33:27.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/DSA_generate_parameters.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -90,7 +90,7 @@
+
+ =head1 SEE ALSO
+
+-L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>,
++L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<DSA_free(3)|DSA_free(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/dsa.pod openssl-1.0.0a/doc/crypto/dsa.pod
+--- openssl-1.0.0a.orig//doc/crypto/dsa.pod 2002-08-05 17:27:01.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/dsa.pod 2010-09-01 19:36:31.620125025 +0100
+@@ -100,7 +100,7 @@
+
+ =head1 SEE ALSO
+
+-L<bn(3)|bn(3)>, L<dh(3)|dh(3)>, L<err(3)|err(3)>, L<rand(3)|rand(3)>,
++L<bn(3)|bn(3)>, L<dh(3)|dh(3)>, L<openssl_err(3)|openssl_err(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<rsa(3)|rsa(3)>, L<sha(3)|sha(3)>, L<engine(3)|engine(3)>,
+ L<DSA_new(3)|DSA_new(3)>,
+ L<DSA_size(3)|DSA_size(3)>,
+diff -Naur openssl-1.0.0a.orig//doc/crypto/DSA_sign.pod openssl-1.0.0a/doc/crypto/DSA_sign.pod
+--- openssl-1.0.0a.orig//doc/crypto/DSA_sign.pod 2002-09-25 14:33:27.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/DSA_sign.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -55,7 +55,7 @@
+
+ =head1 SEE ALSO
+
+-L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>,
++L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<DSA_do_sign(3)|DSA_do_sign(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/engine.pod openssl-1.0.0a/doc/crypto/engine.pod
+--- openssl-1.0.0a.orig//doc/crypto/engine.pod 2007-11-19 09:18:03.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/engine.pod 2010-09-01 19:36:31.620125025 +0100
+@@ -594,6 +594,6 @@
+
+ =head1 SEE ALSO
+
+-L<rsa(3)|rsa(3)>, L<dsa(3)|dsa(3)>, L<dh(3)|dh(3)>, L<rand(3)|rand(3)>
++L<rsa(3)|rsa(3)>, L<dsa(3)|dsa(3)>, L<dh(3)|dh(3)>, L<openssl_rand(3)|openssl_rand(3)>
+
+ =cut
+diff -Naur openssl-1.0.0a.orig//doc/crypto/ERR_clear_error.pod openssl-1.0.0a/doc/crypto/ERR_clear_error.pod
+--- openssl-1.0.0a.orig//doc/crypto/ERR_clear_error.pod 2000-02-01 01:36:58.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/ERR_clear_error.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -20,7 +20,7 @@
+
+ =head1 SEE ALSO
+
+-L<err(3)|err(3)>, L<ERR_get_error(3)|ERR_get_error(3)>
++L<openssl_err(3)|openssl_err(3)>, L<ERR_get_error(3)|ERR_get_error(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/ERR_error_string.pod openssl-1.0.0a/doc/crypto/ERR_error_string.pod
+--- openssl-1.0.0a.orig//doc/crypto/ERR_error_string.pod 2004-11-14 15:11:37.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/ERR_error_string.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -60,7 +60,7 @@
+
+ =head1 SEE ALSO
+
+-L<err(3)|err(3)>, L<ERR_get_error(3)|ERR_get_error(3)>,
++L<openssl_err(3)|openssl_err(3)>, L<ERR_get_error(3)|ERR_get_error(3)>,
+ L<ERR_load_crypto_strings(3)|ERR_load_crypto_strings(3)>,
+ L<SSL_load_error_strings(3)|SSL_load_error_strings(3)>
+ L<ERR_print_errors(3)|ERR_print_errors(3)>
+diff -Naur openssl-1.0.0a.orig//doc/crypto/ERR_get_error.pod openssl-1.0.0a/doc/crypto/ERR_get_error.pod
+--- openssl-1.0.0a.orig//doc/crypto/ERR_get_error.pod 2002-11-29 14:21:54.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/ERR_get_error.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -61,7 +61,7 @@
+
+ =head1 SEE ALSO
+
+-L<err(3)|err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>,
++L<openssl_err(3)|openssl_err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>,
+ L<ERR_GET_LIB(3)|ERR_GET_LIB(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/ERR_GET_LIB.pod openssl-1.0.0a/doc/crypto/ERR_GET_LIB.pod
+--- openssl-1.0.0a.orig//doc/crypto/ERR_GET_LIB.pod 2000-02-01 01:36:58.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/ERR_GET_LIB.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -41,7 +41,7 @@
+
+ =head1 SEE ALSO
+
+-L<err(3)|err(3)>, L<ERR_get_error(3)|ERR_get_error(3)>
++L<openssl_err(3)|openssl_err(3)>, L<ERR_get_error(3)|ERR_get_error(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/ERR_load_crypto_strings.pod openssl-1.0.0a/doc/crypto/ERR_load_crypto_strings.pod
+--- openssl-1.0.0a.orig//doc/crypto/ERR_load_crypto_strings.pod 2000-02-24 11:55:08.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/ERR_load_crypto_strings.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -35,7 +35,7 @@
+
+ =head1 SEE ALSO
+
+-L<err(3)|err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>
++L<openssl_err(3)|openssl_err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/ERR_load_strings.pod openssl-1.0.0a/doc/crypto/ERR_load_strings.pod
+--- openssl-1.0.0a.orig//doc/crypto/ERR_load_strings.pod 2000-02-24 11:55:08.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/ERR_load_strings.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -43,7 +43,7 @@
+
+ =head1 SEE ALSO
+
+-L<err(3)|err(3)>, L<ERR_load_strings(3)|ERR_load_strings(3)>
++L<openssl_err(3)|openssl_err(3)>, L<ERR_load_strings(3)|ERR_load_strings(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/err.pod openssl-1.0.0a/doc/crypto/err.pod
+--- openssl-1.0.0a.orig//doc/crypto/err.pod 2002-07-10 20:35:46.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/err.pod 1970-01-01 01:00:00.000000000 +0100
+@@ -1,187 +0,0 @@
+-=pod
+-
+-=head1 NAME
+-
+-err - error codes
+-
+-=head1 SYNOPSIS
+-
+- #include <openssl/err.h>
+-
+- unsigned long ERR_get_error(void);
+- unsigned long ERR_peek_error(void);
+- unsigned long ERR_get_error_line(const char **file, int *line);
+- unsigned long ERR_peek_error_line(const char **file, int *line);
+- unsigned long ERR_get_error_line_data(const char **file, int *line,
+- const char **data, int *flags);
+- unsigned long ERR_peek_error_line_data(const char **file, int *line,
+- const char **data, int *flags);
+-
+- int ERR_GET_LIB(unsigned long e);
+- int ERR_GET_FUNC(unsigned long e);
+- int ERR_GET_REASON(unsigned long e);
+-
+- void ERR_clear_error(void);
+-
+- char *ERR_error_string(unsigned long e, char *buf);
+- const char *ERR_lib_error_string(unsigned long e);
+- const char *ERR_func_error_string(unsigned long e);
+- const char *ERR_reason_error_string(unsigned long e);
+-
+- void ERR_print_errors(BIO *bp);
+- void ERR_print_errors_fp(FILE *fp);
+-
+- void ERR_load_crypto_strings(void);
+- void ERR_free_strings(void);
+-
+- void ERR_remove_state(unsigned long pid);
+-
+- void ERR_put_error(int lib, int func, int reason, const char *file,
+- int line);
+- void ERR_add_error_data(int num, ...);
+-
+- void ERR_load_strings(int lib,ERR_STRING_DATA str[]);
+- unsigned long ERR_PACK(int lib, int func, int reason);
+- int ERR_get_next_error_library(void);
+-
+-=head1 DESCRIPTION
+-
+-When a call to the OpenSSL library fails, this is usually signalled
+-by the return value, and an error code is stored in an error queue
+-associated with the current thread. The B<err> library provides
+-functions to obtain these error codes and textual error messages.
+-
+-The L<ERR_get_error(3)|ERR_get_error(3)> manpage describes how to
+-access error codes.
+-
+-Error codes contain information about where the error occurred, and
+-what went wrong. L<ERR_GET_LIB(3)|ERR_GET_LIB(3)> describes how to
+-extract this information. A method to obtain human-readable error
+-messages is described in L<ERR_error_string(3)|ERR_error_string(3)>.
+-
+-L<ERR_clear_error(3)|ERR_clear_error(3)> can be used to clear the
+-error queue.
+-
+-Note that L<ERR_remove_state(3)|ERR_remove_state(3)> should be used to
+-avoid memory leaks when threads are terminated.
+-
+-=head1 ADDING NEW ERROR CODES TO OPENSSL
+-
+-See L<ERR_put_error(3)> if you want to record error codes in the
+-OpenSSL error system from within your application.
+-
+-The remainder of this section is of interest only if you want to add
+-new error codes to OpenSSL or add error codes from external libraries.
+-
+-=head2 Reporting errors
+-
+-Each sub-library has a specific macro XXXerr() that is used to report
+-errors. Its first argument is a function code B<XXX_F_...>, the second
+-argument is a reason code B<XXX_R_...>. Function codes are derived
+-from the function names; reason codes consist of textual error
+-descriptions. For example, the function ssl23_read() reports a
+-"handshake failure" as follows:
+-
+- SSLerr(SSL_F_SSL23_READ, SSL_R_SSL_HANDSHAKE_FAILURE);
+-
+-Function and reason codes should consist of upper case characters,
+-numbers and underscores only. The error file generation script translates
+-function codes into function names by looking in the header files
+-for an appropriate function name, if none is found it just uses
+-the capitalized form such as "SSL23_READ" in the above example.
+-
+-The trailing section of a reason code (after the "_R_") is translated
+-into lower case and underscores changed to spaces.
+-
+-When you are using new function or reason codes, run B<make errors>.
+-The necessary B<#define>s will then automatically be added to the
+-sub-library's header file.
+-
+-Although a library will normally report errors using its own specific
+-XXXerr macro, another library's macro can be used. This is normally
+-only done when a library wants to include ASN1 code which must use
+-the ASN1err() macro.
+-
+-=head2 Adding new libraries
+-
+-When adding a new sub-library to OpenSSL, assign it a library number
+-B<ERR_LIB_XXX>, define a macro XXXerr() (both in B<err.h>), add its
+-name to B<ERR_str_libraries[]> (in B<crypto/err/err.c>), and add
+-C<ERR_load_XXX_strings()> to the ERR_load_crypto_strings() function
+-(in B<crypto/err/err_all.c>). Finally, add an entry
+-
+- L XXX xxx.h xxx_err.c
+-
+-to B<crypto/err/openssl.ec>, and add B<xxx_err.c> to the Makefile.
+-Running B<make errors> will then generate a file B<xxx_err.c>, and
+-add all error codes used in the library to B<xxx.h>.
+-
+-Additionally the library include file must have a certain form.
+-Typically it will initially look like this:
+-
+- #ifndef HEADER_XXX_H
+- #define HEADER_XXX_H
+-
+- #ifdef __cplusplus
+- extern "C" {
+- #endif
+-
+- /* Include files */
+-
+- #include <openssl/bio.h>
+- #include <openssl/x509.h>
+-
+- /* Macros, structures and function prototypes */
+-
+-
+- /* BEGIN ERROR CODES */
+-
+-The B<BEGIN ERROR CODES> sequence is used by the error code
+-generation script as the point to place new error codes, any text
+-after this point will be overwritten when B<make errors> is run.
+-The closing #endif etc will be automatically added by the script.
+-
+-The generated C error code file B<xxx_err.c> will load the header
+-files B<stdio.h>, B<openssl/err.h> and B<openssl/xxx.h> so the
+-header file must load any additional header files containing any
+-definitions it uses.
+-
+-=head1 USING ERROR CODES IN EXTERNAL LIBRARIES
+-
+-It is also possible to use OpenSSL's error code scheme in external
+-libraries. The library needs to load its own codes and call the OpenSSL
+-error code insertion script B<mkerr.pl> explicitly to add codes to
+-the header file and generate the C error code file. This will normally
+-be done if the external library needs to generate new ASN1 structures
+-but it can also be used to add more general purpose error code handling.
+-
+-TBA more details
+-
+-=head1 INTERNALS
+-
+-The error queues are stored in a hash table with one B<ERR_STATE>
+-entry for each pid. ERR_get_state() returns the current thread's
+-B<ERR_STATE>. An B<ERR_STATE> can hold up to B<ERR_NUM_ERRORS> error
+-codes. When more error codes are added, the old ones are overwritten,
+-on the assumption that the most recent errors are most important.
+-
+-Error strings are also stored in hash table. The hash tables can
+-be obtained by calling ERR_get_err_state_table(void) and
+-ERR_get_string_table(void) respectively.
+-
+-=head1 SEE ALSO
+-
+-L<CRYPTO_set_id_callback(3)|CRYPTO_set_id_callback(3)>,
+-L<CRYPTO_set_locking_callback(3)|CRYPTO_set_locking_callback(3)>,
+-L<ERR_get_error(3)|ERR_get_error(3)>,
+-L<ERR_GET_LIB(3)|ERR_GET_LIB(3)>,
+-L<ERR_clear_error(3)|ERR_clear_error(3)>,
+-L<ERR_error_string(3)|ERR_error_string(3)>,
+-L<ERR_print_errors(3)|ERR_print_errors(3)>,
+-L<ERR_load_crypto_strings(3)|ERR_load_crypto_strings(3)>,
+-L<ERR_remove_state(3)|ERR_remove_state(3)>,
+-L<ERR_put_error(3)|ERR_put_error(3)>,
+-L<ERR_load_strings(3)|ERR_load_strings(3)>,
+-L<SSL_get_error(3)|SSL_get_error(3)>
+-
+-=cut
+diff -Naur openssl-1.0.0a.orig//doc/crypto/ERR_print_errors.pod openssl-1.0.0a/doc/crypto/ERR_print_errors.pod
+--- openssl-1.0.0a.orig//doc/crypto/ERR_print_errors.pod 2000-02-01 01:36:59.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/ERR_print_errors.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -38,7 +38,7 @@
+
+ =head1 SEE ALSO
+
+-L<err(3)|err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>,
++L<openssl_err(3)|openssl_err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>,
+ L<ERR_get_error(3)|ERR_get_error(3)>,
+ L<ERR_load_crypto_strings(3)|ERR_load_crypto_strings(3)>,
+ L<SSL_load_error_strings(3)|SSL_load_error_strings(3)>
+diff -Naur openssl-1.0.0a.orig//doc/crypto/ERR_put_error.pod openssl-1.0.0a/doc/crypto/ERR_put_error.pod
+--- openssl-1.0.0a.orig//doc/crypto/ERR_put_error.pod 2000-02-24 11:55:08.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/ERR_put_error.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -34,7 +34,7 @@
+
+ =head1 SEE ALSO
+
+-L<err(3)|err(3)>, L<ERR_load_strings(3)|ERR_load_strings(3)>
++L<openssl_err(3)|openssl_err(3)>, L<ERR_load_strings(3)|ERR_load_strings(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/ERR_remove_state.pod openssl-1.0.0a/doc/crypto/ERR_remove_state.pod
+--- openssl-1.0.0a.orig//doc/crypto/ERR_remove_state.pod 2000-05-19 08:54:42.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/ERR_remove_state.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -25,7 +25,7 @@
+
+ =head1 SEE ALSO
+
+-L<err(3)|err(3)>
++L<openssl_err(3)|openssl_err(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/EVP_BytesToKey.pod openssl-1.0.0a/doc/crypto/EVP_BytesToKey.pod
+--- openssl-1.0.0a.orig//doc/crypto/EVP_BytesToKey.pod 2004-11-25 17:47:30.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/EVP_BytesToKey.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -59,7 +59,7 @@
+
+ =head1 SEE ALSO
+
+-L<evp(3)|evp(3)>, L<rand(3)|rand(3)>,
++L<evp(3)|evp(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<EVP_EncryptInit(3)|EVP_EncryptInit(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/EVP_OpenInit.pod openssl-1.0.0a/doc/crypto/EVP_OpenInit.pod
+--- openssl-1.0.0a.orig//doc/crypto/EVP_OpenInit.pod 2000-09-23 08:16:14.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/EVP_OpenInit.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -54,7 +54,7 @@
+
+ =head1 SEE ALSO
+
+-L<evp(3)|evp(3)>, L<rand(3)|rand(3)>,
++L<evp(3)|evp(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<EVP_EncryptInit(3)|EVP_EncryptInit(3)>,
+ L<EVP_SealInit(3)|EVP_SealInit(3)>
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/EVP_SealInit.pod openssl-1.0.0a/doc/crypto/EVP_SealInit.pod
+--- openssl-1.0.0a.orig//doc/crypto/EVP_SealInit.pod 2005-03-29 18:50:08.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/EVP_SealInit.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -74,7 +74,7 @@
+
+ =head1 SEE ALSO
+
+-L<evp(3)|evp(3)>, L<rand(3)|rand(3)>,
++L<evp(3)|evp(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<EVP_EncryptInit(3)|EVP_EncryptInit(3)>,
+ L<EVP_OpenInit(3)|EVP_OpenInit(3)>
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/EVP_SignInit.pod openssl-1.0.0a/doc/crypto/EVP_SignInit.pod
+--- openssl-1.0.0a.orig//doc/crypto/EVP_SignInit.pod 2006-07-12 13:31:29.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/EVP_SignInit.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -89,7 +89,7 @@
+ =head1 SEE ALSO
+
+ L<EVP_VerifyInit(3)|EVP_VerifyInit(3)>,
+-L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<err(3)|err(3)>,
++L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<openssl_err(3)|openssl_err(3)>,
+ L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>,
+ L<md5(3)|md5(3)>, L<mdc2(3)|mdc2(3)>, L<ripemd(3)|ripemd(3)>,
+ L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)>
+diff -Naur openssl-1.0.0a.orig//doc/crypto/EVP_VerifyInit.pod openssl-1.0.0a/doc/crypto/EVP_VerifyInit.pod
+--- openssl-1.0.0a.orig//doc/crypto/EVP_VerifyInit.pod 2006-07-12 13:31:30.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/EVP_VerifyInit.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -80,7 +80,7 @@
+
+ L<evp(3)|evp(3)>,
+ L<EVP_SignInit(3)|EVP_SignInit(3)>,
+-L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<err(3)|err(3)>,
++L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<openssl_err(3)|openssl_err(3)>,
+ L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>,
+ L<md5(3)|md5(3)>, L<mdc2(3)|mdc2(3)>, L<ripemd(3)|ripemd(3)>,
+ L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)>
+diff -Naur openssl-1.0.0a.orig//doc/crypto/OPENSSL_config.pod openssl-1.0.0a/doc/crypto/OPENSSL_config.pod
+--- openssl-1.0.0a.orig//doc/crypto/OPENSSL_config.pod 2005-06-03 00:19:56.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/OPENSSL_config.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -73,7 +73,7 @@
+ =head1 SEE ALSO
+
+ L<conf(5)|conf(5)>, L<CONF_load_modules_file(3)|CONF_load_modules_file(3)>,
+-L<CONF_modules_free(3),CONF_modules_free(3)>
++L<CONF_modules_free(3)|CONF_modules_free(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/openssl_err.pod openssl-1.0.0a/doc/crypto/openssl_err.pod
+--- openssl-1.0.0a.orig//doc/crypto/openssl_err.pod 1970-01-01 01:00:00.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/openssl_err.pod 2010-09-01 19:36:31.624124669 +0100
+@@ -0,0 +1,187 @@
++=pod
++
++=head1 NAME
++
++openssl_err - error codes
++
++=head1 SYNOPSIS
++
++ #include <openssl/err.h>
++
++ unsigned long ERR_get_error(void);
++ unsigned long ERR_peek_error(void);
++ unsigned long ERR_get_error_line(const char **file, int *line);
++ unsigned long ERR_peek_error_line(const char **file, int *line);
++ unsigned long ERR_get_error_line_data(const char **file, int *line,
++ const char **data, int *flags);
++ unsigned long ERR_peek_error_line_data(const char **file, int *line,
++ const char **data, int *flags);
++
++ int ERR_GET_LIB(unsigned long e);
++ int ERR_GET_FUNC(unsigned long e);
++ int ERR_GET_REASON(unsigned long e);
++
++ void ERR_clear_error(void);
++
++ char *ERR_error_string(unsigned long e, char *buf);
++ const char *ERR_lib_error_string(unsigned long e);
++ const char *ERR_func_error_string(unsigned long e);
++ const char *ERR_reason_error_string(unsigned long e);
++
++ void ERR_print_errors(BIO *bp);
++ void ERR_print_errors_fp(FILE *fp);
++
++ void ERR_load_crypto_strings(void);
++ void ERR_free_strings(void);
++
++ void ERR_remove_state(unsigned long pid);
++
++ void ERR_put_error(int lib, int func, int reason, const char *file,
++ int line);
++ void ERR_add_error_data(int num, ...);
++
++ void ERR_load_strings(int lib,ERR_STRING_DATA str[]);
++ unsigned long ERR_PACK(int lib, int func, int reason);
++ int ERR_get_next_error_library(void);
++
++=head1 DESCRIPTION
++
++When a call to the OpenSSL library fails, this is usually signalled
++by the return value, and an error code is stored in an error queue
++associated with the current thread. The B<err> library provides
++functions to obtain these error codes and textual error messages.
++
++The L<ERR_get_error(3)|ERR_get_error(3)> manpage describes how to
++access error codes.
++
++Error codes contain information about where the error occurred, and
++what went wrong. L<ERR_GET_LIB(3)|ERR_GET_LIB(3)> describes how to
++extract this information. A method to obtain human-readable error
++messages is described in L<ERR_error_string(3)|ERR_error_string(3)>.
++
++L<ERR_clear_error(3)|ERR_clear_error(3)> can be used to clear the
++error queue.
++
++Note that L<ERR_remove_state(3)|ERR_remove_state(3)> should be used to
++avoid memory leaks when threads are terminated.
++
++=head1 ADDING NEW ERROR CODES TO OPENSSL
++
++See L<ERR_put_error(3)> if you want to record error codes in the
++OpenSSL error system from within your application.
++
++The remainder of this section is of interest only if you want to add
++new error codes to OpenSSL or add error codes from external libraries.
++
++=head2 Reporting errors
++
++Each sub-library has a specific macro XXXerr() that is used to report
++errors. Its first argument is a function code B<XXX_F_...>, the second
++argument is a reason code B<XXX_R_...>. Function codes are derived
++from the function names; reason codes consist of textual error
++descriptions. For example, the function ssl23_read() reports a
++"handshake failure" as follows:
++
++ SSLerr(SSL_F_SSL23_READ, SSL_R_SSL_HANDSHAKE_FAILURE);
++
++Function and reason codes should consist of upper case characters,
++numbers and underscores only. The error file generation script translates
++function codes into function names by looking in the header files
++for an appropriate function name, if none is found it just uses
++the capitalized form such as "SSL23_READ" in the above example.
++
++The trailing section of a reason code (after the "_R_") is translated
++into lower case and underscores changed to spaces.
++
++When you are using new function or reason codes, run B<make errors>.
++The necessary B<#define>s will then automatically be added to the
++sub-library's header file.
++
++Although a library will normally report errors using its own specific
++XXXerr macro, another library's macro can be used. This is normally
++only done when a library wants to include ASN1 code which must use
++the ASN1err() macro.
++
++=head2 Adding new libraries
++
++When adding a new sub-library to OpenSSL, assign it a library number
++B<ERR_LIB_XXX>, define a macro XXXerr() (both in B<err.h>), add its
++name to B<ERR_str_libraries[]> (in B<crypto/err/err.c>), and add
++C<ERR_load_XXX_strings()> to the ERR_load_crypto_strings() function
++(in B<crypto/err/err_all.c>). Finally, add an entry
++
++ L XXX xxx.h xxx_err.c
++
++to B<crypto/err/openssl.ec>, and add B<xxx_err.c> to the Makefile.
++Running B<make errors> will then generate a file B<xxx_err.c>, and
++add all error codes used in the library to B<xxx.h>.
++
++Additionally the library include file must have a certain form.
++Typically it will initially look like this:
++
++ #ifndef HEADER_XXX_H
++ #define HEADER_XXX_H
++
++ #ifdef __cplusplus
++ extern "C" {
++ #endif
++
++ /* Include files */
++
++ #include <openssl/bio.h>
++ #include <openssl/x509.h>
++
++ /* Macros, structures and function prototypes */
++
++
++ /* BEGIN ERROR CODES */
++
++The B<BEGIN ERROR CODES> sequence is used by the error code
++generation script as the point to place new error codes, any text
++after this point will be overwritten when B<make errors> is run.
++The closing #endif etc will be automatically added by the script.
++
++The generated C error code file B<xxx_err.c> will load the header
++files B<stdio.h>, B<openssl/err.h> and B<openssl/xxx.h> so the
++header file must load any additional header files containing any
++definitions it uses.
++
++=head1 USING ERROR CODES IN EXTERNAL LIBRARIES
++
++It is also possible to use OpenSSL's error code scheme in external
++libraries. The library needs to load its own codes and call the OpenSSL
++error code insertion script B<mkerr.pl> explicitly to add codes to
++the header file and generate the C error code file. This will normally
++be done if the external library needs to generate new ASN1 structures
++but it can also be used to add more general purpose error code handling.
++
++TBA more details
++
++=head1 INTERNALS
++
++The error queues are stored in a hash table with one B<ERR_STATE>
++entry for each pid. ERR_get_state() returns the current thread's
++B<ERR_STATE>. An B<ERR_STATE> can hold up to B<ERR_NUM_ERRORS> error
++codes. When more error codes are added, the old ones are overwritten,
++on the assumption that the most recent errors are most important.
++
++Error strings are also stored in hash table. The hash tables can
++be obtained by calling ERR_get_err_state_table(void) and
++ERR_get_string_table(void) respectively.
++
++=head1 SEE ALSO
++
++L<CRYPTO_set_id_callback(3)|CRYPTO_set_id_callback(3)>,
++L<CRYPTO_set_locking_callback(3)|CRYPTO_set_locking_callback(3)>,
++L<ERR_get_error(3)|ERR_get_error(3)>,
++L<ERR_GET_LIB(3)|ERR_GET_LIB(3)>,
++L<ERR_clear_error(3)|ERR_clear_error(3)>,
++L<ERR_error_string(3)|ERR_error_string(3)>,
++L<ERR_print_errors(3)|ERR_print_errors(3)>,
++L<ERR_load_crypto_strings(3)|ERR_load_crypto_strings(3)>,
++L<ERR_remove_state(3)|ERR_remove_state(3)>,
++L<ERR_put_error(3)|ERR_put_error(3)>,
++L<ERR_load_strings(3)|ERR_load_strings(3)>,
++L<SSL_get_error(3)|SSL_get_error(3)>
++
++=cut
+diff -Naur openssl-1.0.0a.orig//doc/crypto/openssl_rand.pod openssl-1.0.0a/doc/crypto/openssl_rand.pod
+--- openssl-1.0.0a.orig//doc/crypto/openssl_rand.pod 1970-01-01 01:00:00.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/openssl_rand.pod 2010-09-01 19:36:31.624124669 +0100
+@@ -0,0 +1,175 @@
++=pod
++
++=head1 NAME
++
++openssl_rand - pseudo-random number generator
++
++=head1 SYNOPSIS
++
++ #include <openssl/rand.h>
++
++ int RAND_set_rand_engine(ENGINE *engine);
++
++ int RAND_bytes(unsigned char *buf, int num);
++ int RAND_pseudo_bytes(unsigned char *buf, int num);
++
++ void RAND_seed(const void *buf, int num);
++ void RAND_add(const void *buf, int num, int entropy);
++ int RAND_status(void);
++
++ int RAND_load_file(const char *file, long max_bytes);
++ int RAND_write_file(const char *file);
++ const char *RAND_file_name(char *file, size_t num);
++
++ int RAND_egd(const char *path);
++
++ void RAND_set_rand_method(const RAND_METHOD *meth);
++ const RAND_METHOD *RAND_get_rand_method(void);
++ RAND_METHOD *RAND_SSLeay(void);
++
++ void RAND_cleanup(void);
++
++ /* For Win32 only */
++ void RAND_screen(void);
++ int RAND_event(UINT, WPARAM, LPARAM);
++
++=head1 DESCRIPTION
++
++Since the introduction of the ENGINE API, the recommended way of controlling
++default implementations is by using the ENGINE API functions. The default
++B<RAND_METHOD>, as set by RAND_set_rand_method() and returned by
++RAND_get_rand_method(), is only used if no ENGINE has been set as the default
++"rand" implementation. Hence, these two functions are no longer the recommened
++way to control defaults.
++
++If an alternative B<RAND_METHOD> implementation is being used (either set
++directly or as provided by an ENGINE module), then it is entirely responsible
++for the generation and management of a cryptographically secure PRNG stream. The
++mechanisms described below relate solely to the software PRNG implementation
++built in to OpenSSL and used by default.
++
++These functions implement a cryptographically secure pseudo-random
++number generator (PRNG). It is used by other library functions for
++example to generate random keys, and applications can use it when they
++need randomness.
++
++A cryptographic PRNG must be seeded with unpredictable data such as
++mouse movements or keys pressed at random by the user. This is
++described in L<RAND_add(3)|RAND_add(3)>. Its state can be saved in a seed file
++(see L<RAND_load_file(3)|RAND_load_file(3)>) to avoid having to go through the
++seeding process whenever the application is started.
++
++L<RAND_bytes(3)|RAND_bytes(3)> describes how to obtain random data from the
++PRNG.
++
++=head1 INTERNALS
++
++The RAND_SSLeay() method implements a PRNG based on a cryptographic
++hash function.
++
++The following description of its design is based on the SSLeay
++documentation:
++
++First up I will state the things I believe I need for a good RNG.
++
++=over 4
++
++=item 1
++
++A good hashing algorithm to mix things up and to convert the RNG 'state'
++to random numbers.
++
++=item 2
++
++An initial source of random 'state'.
++
++=item 3
++
++The state should be very large. If the RNG is being used to generate
++4096 bit RSA keys, 2 2048 bit random strings are required (at a minimum).
++If your RNG state only has 128 bits, you are obviously limiting the
++search space to 128 bits, not 2048. I'm probably getting a little
++carried away on this last point but it does indicate that it may not be
++a bad idea to keep quite a lot of RNG state. It should be easier to
++break a cipher than guess the RNG seed data.
++
++=item 4
++
++Any RNG seed data should influence all subsequent random numbers
++generated. This implies that any random seed data entered will have
++an influence on all subsequent random numbers generated.
++
++=item 5
++
++When using data to seed the RNG state, the data used should not be
++extractable from the RNG state. I believe this should be a
++requirement because one possible source of 'secret' semi random
++data would be a private key or a password. This data must
++not be disclosed by either subsequent random numbers or a
++'core' dump left by a program crash.
++
++=item 6
++
++Given the same initial 'state', 2 systems should deviate in their RNG state
++(and hence the random numbers generated) over time if at all possible.
++
++=item 7
++
++Given the random number output stream, it should not be possible to determine
++the RNG state or the next random number.
++
++=back
++
++The algorithm is as follows.
++
++There is global state made up of a 1023 byte buffer (the 'state'), a
++working hash value ('md'), and a counter ('count').
++
++Whenever seed data is added, it is inserted into the 'state' as
++follows.
++
++The input is chopped up into units of 20 bytes (or less for
++the last block). Each of these blocks is run through the hash
++function as follows: The data passed to the hash function
++is the current 'md', the same number of bytes from the 'state'
++(the location determined by in incremented looping index) as
++the current 'block', the new key data 'block', and 'count'
++(which is incremented after each use).
++The result of this is kept in 'md' and also xored into the
++'state' at the same locations that were used as input into the
++hash function. I
++believe this system addresses points 1 (hash function; currently
++SHA-1), 3 (the 'state'), 4 (via the 'md'), 5 (by the use of a hash
++function and xor).
++
++When bytes are extracted from the RNG, the following process is used.
++For each group of 10 bytes (or less), we do the following:
++
++Input into the hash function the local 'md' (which is initialized from
++the global 'md' before any bytes are generated), the bytes that are to
++be overwritten by the random bytes, and bytes from the 'state'
++(incrementing looping index). From this digest output (which is kept
++in 'md'), the top (up to) 10 bytes are returned to the caller and the
++bottom 10 bytes are xored into the 'state'.
++
++Finally, after we have finished 'num' random bytes for the caller,
++'count' (which is incremented) and the local and global 'md' are fed
++into the hash function and the results are kept in the global 'md'.
++
++I believe the above addressed points 1 (use of SHA-1), 6 (by hashing
++into the 'state' the 'old' data from the caller that is about to be
++overwritten) and 7 (by not using the 10 bytes given to the caller to
++update the 'state', but they are used to update 'md').
++
++So of the points raised, only 2 is not addressed (but see
++L<RAND_add(3)|RAND_add(3)>).
++
++=head1 SEE ALSO
++
++L<BN_rand(3)|BN_rand(3)>, L<RAND_add(3)|RAND_add(3)>,
++L<RAND_load_file(3)|RAND_load_file(3)>, L<RAND_egd(3)|RAND_egd(3)>,
++L<RAND_bytes(3)|RAND_bytes(3)>,
++L<RAND_set_rand_method(3)|RAND_set_rand_method(3)>,
++L<RAND_cleanup(3)|RAND_cleanup(3)>
++
++=cut
+diff -Naur openssl-1.0.0a.orig//doc/crypto/openssl_threads.pod openssl-1.0.0a/doc/crypto/openssl_threads.pod
+--- openssl-1.0.0a.orig//doc/crypto/openssl_threads.pod 1970-01-01 01:00:00.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/openssl_threads.pod 2010-09-01 19:36:31.624124669 +0100
+@@ -0,0 +1,175 @@
++=pod
++
++=head1 NAME
++
++CRYPTO_set_locking_callback, CRYPTO_set_id_callback, CRYPTO_num_locks,
++CRYPTO_set_dynlock_create_callback, CRYPTO_set_dynlock_lock_callback,
++CRYPTO_set_dynlock_destroy_callback, CRYPTO_get_new_dynlockid,
++CRYPTO_destroy_dynlockid, CRYPTO_lock - OpenSSL thread support
++
++=head1 SYNOPSIS
++
++ #include <openssl/crypto.h>
++
++ void CRYPTO_set_locking_callback(void (*locking_function)(int mode,
++ int n, const char *file, int line));
++
++ void CRYPTO_set_id_callback(unsigned long (*id_function)(void));
++
++ int CRYPTO_num_locks(void);
++
++
++ /* struct CRYPTO_dynlock_value needs to be defined by the user */
++ struct CRYPTO_dynlock_value;
++
++ void CRYPTO_set_dynlock_create_callback(struct CRYPTO_dynlock_value *
++ (*dyn_create_function)(char *file, int line));
++ void CRYPTO_set_dynlock_lock_callback(void (*dyn_lock_function)
++ (int mode, struct CRYPTO_dynlock_value *l,
++ const char *file, int line));
++ void CRYPTO_set_dynlock_destroy_callback(void (*dyn_destroy_function)
++ (struct CRYPTO_dynlock_value *l, const char *file, int line));
++
++ int CRYPTO_get_new_dynlockid(void);
++
++ void CRYPTO_destroy_dynlockid(int i);
++
++ void CRYPTO_lock(int mode, int n, const char *file, int line);
++
++ #define CRYPTO_w_lock(type) \
++ CRYPTO_lock(CRYPTO_LOCK|CRYPTO_WRITE,type,__FILE__,__LINE__)
++ #define CRYPTO_w_unlock(type) \
++ CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_WRITE,type,__FILE__,__LINE__)
++ #define CRYPTO_r_lock(type) \
++ CRYPTO_lock(CRYPTO_LOCK|CRYPTO_READ,type,__FILE__,__LINE__)
++ #define CRYPTO_r_unlock(type) \
++ CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_READ,type,__FILE__,__LINE__)
++ #define CRYPTO_add(addr,amount,type) \
++ CRYPTO_add_lock(addr,amount,type,__FILE__,__LINE__)
++
++=head1 DESCRIPTION
++
++OpenSSL can safely be used in multi-threaded applications provided
++that at least two callback functions are set.
++
++locking_function(int mode, int n, const char *file, int line) is
++needed to perform locking on shared data structures.
++(Note that OpenSSL uses a number of global data structures that
++will be implicitly shared whenever multiple threads use OpenSSL.)
++Multi-threaded applications will crash at random if it is not set.
++
++locking_function() must be able to handle up to CRYPTO_num_locks()
++different mutex locks. It sets the B<n>-th lock if B<mode> &
++B<CRYPTO_LOCK>, and releases it otherwise.
++
++B<file> and B<line> are the file number of the function setting the
++lock. They can be useful for debugging.
++
++id_function(void) is a function that returns a thread ID, for example
++pthread_self() if it returns an integer (see NOTES below). It isn't
++needed on Windows nor on platforms where getpid() returns a different
++ID for each thread (see NOTES below).
++
++Additionally, OpenSSL supports dynamic locks, and sometimes, some parts
++of OpenSSL need it for better performance. To enable this, the following
++is required:
++
++=over 4
++
++=item *
++Three additional callback function, dyn_create_function, dyn_lock_function
++and dyn_destroy_function.
++
++=item *
++A structure defined with the data that each lock needs to handle.
++
++=back
++
++struct CRYPTO_dynlock_value has to be defined to contain whatever structure
++is needed to handle locks.
++
++dyn_create_function(const char *file, int line) is needed to create a
++lock. Multi-threaded applications might crash at random if it is not set.
++
++dyn_lock_function(int mode, CRYPTO_dynlock *l, const char *file, int line)
++is needed to perform locking off dynamic lock numbered n. Multi-threaded
++applications might crash at random if it is not set.
++
++dyn_destroy_function(CRYPTO_dynlock *l, const char *file, int line) is
++needed to destroy the lock l. Multi-threaded applications might crash at
++random if it is not set.
++
++CRYPTO_get_new_dynlockid() is used to create locks. It will call
++dyn_create_function for the actual creation.
++
++CRYPTO_destroy_dynlockid() is used to destroy locks. It will call
++dyn_destroy_function for the actual destruction.
++
++CRYPTO_lock() is used to lock and unlock the locks. mode is a bitfield
++describing what should be done with the lock. n is the number of the
++lock as returned from CRYPTO_get_new_dynlockid(). mode can be combined
++from the following values. These values are pairwise exclusive, with
++undefined behaviour if misused (for example, CRYPTO_READ and CRYPTO_WRITE
++should not be used together):
++
++ CRYPTO_LOCK 0x01
++ CRYPTO_UNLOCK 0x02
++ CRYPTO_READ 0x04
++ CRYPTO_WRITE 0x08
++
++=head1 RETURN VALUES
++
++CRYPTO_num_locks() returns the required number of locks.
++
++CRYPTO_get_new_dynlockid() returns the index to the newly created lock.
++
++The other functions return no values.
++
++=head1 NOTES
++
++You can find out if OpenSSL was configured with thread support:
++
++ #define OPENSSL_THREAD_DEFINES
++ #include <openssl/opensslconf.h>
++ #if defined(OPENSSL_THREADS)
++ // thread support enabled
++ #else
++ // no thread support
++ #endif
++
++Also, dynamic locks are currently not used internally by OpenSSL, but
++may do so in the future.
++
++Defining id_function(void) has it's own issues. Generally speaking,
++pthread_self() should be used, even on platforms where getpid() gives
++different answers in each thread, since that may depend on the machine
++the program is run on, not the machine where the program is being
++compiled. For instance, Red Hat 8 Linux and earlier used
++LinuxThreads, whose getpid() returns a different value for each
++thread. Red Hat 9 Linux and later use NPTL, which is
++Posix-conformant, and has a getpid() that returns the same value for
++all threads in a process. A program compiled on Red Hat 8 and run on
++Red Hat 9 will therefore see getpid() returning the same value for
++all threads.
++
++There is still the issue of platforms where pthread_self() returns
++something other than an integer. This is a bit unusual, and this
++manual has no cookbook solution for that case.
++
++=head1 EXAMPLES
++
++B<crypto/threads/mttest.c> shows examples of the callback functions on
++Solaris, Irix and Win32.
++
++=head1 HISTORY
++
++CRYPTO_set_locking_callback() and CRYPTO_set_id_callback() are
++available in all versions of SSLeay and OpenSSL.
++CRYPTO_num_locks() was added in OpenSSL 0.9.4.
++All functions dealing with dynamic locks were added in OpenSSL 0.9.5b-dev.
++
++=head1 SEE ALSO
++
++L<crypto(3)|crypto(3)>
++
++=cut
+diff -Naur openssl-1.0.0a.orig//doc/crypto/RAND_add.pod openssl-1.0.0a/doc/crypto/RAND_add.pod
+--- openssl-1.0.0a.orig//doc/crypto/RAND_add.pod 2000-03-22 15:30:03.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/RAND_add.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -65,7 +65,7 @@
+
+ =head1 SEE ALSO
+
+-L<rand(3)|rand(3)>, L<RAND_egd(3)|RAND_egd(3)>,
++L<openssl_rand(3)|openssl_rand(3)>, L<RAND_egd(3)|RAND_egd(3)>,
+ L<RAND_load_file(3)|RAND_load_file(3)>, L<RAND_cleanup(3)|RAND_cleanup(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/RAND_bytes.pod openssl-1.0.0a/doc/crypto/RAND_bytes.pod
+--- openssl-1.0.0a.orig//doc/crypto/RAND_bytes.pod 2007-09-24 12:01:18.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/RAND_bytes.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -38,7 +38,7 @@
+
+ =head1 SEE ALSO
+
+-L<rand(3)|rand(3)>, L<ERR_get_error(3)|ERR_get_error(3)>,
++L<openssl_rand(3)|openssl_rand(3)>, L<ERR_get_error(3)|ERR_get_error(3)>,
+ L<RAND_add(3)|RAND_add(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/RAND_cleanup.pod openssl-1.0.0a/doc/crypto/RAND_cleanup.pod
+--- openssl-1.0.0a.orig//doc/crypto/RAND_cleanup.pod 2000-01-27 01:25:06.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/RAND_cleanup.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -20,7 +20,7 @@
+
+ =head1 SEE ALSO
+
+-L<rand(3)|rand(3)>
++L<openssl_rand(3)|openssl_rand(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/RAND_egd.pod openssl-1.0.0a/doc/crypto/RAND_egd.pod
+--- openssl-1.0.0a.orig//doc/crypto/RAND_egd.pod 2008-11-10 11:26:44.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/RAND_egd.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -72,7 +72,7 @@
+
+ =head1 SEE ALSO
+
+-L<rand(3)|rand(3)>, L<RAND_add(3)|RAND_add(3)>,
++L<openssl_rand(3)|openssl_rand(3)>, L<RAND_add(3)|RAND_add(3)>,
+ L<RAND_cleanup(3)|RAND_cleanup(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/RAND_load_file.pod openssl-1.0.0a/doc/crypto/RAND_load_file.pod
+--- openssl-1.0.0a.orig//doc/crypto/RAND_load_file.pod 2001-03-21 15:25:56.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/RAND_load_file.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -43,7 +43,7 @@
+
+ =head1 SEE ALSO
+
+-L<rand(3)|rand(3)>, L<RAND_add(3)|RAND_add(3)>, L<RAND_cleanup(3)|RAND_cleanup(3)>
++L<openssl_rand(3)|openssl_rand(3)>, L<RAND_add(3)|RAND_add(3)>, L<RAND_cleanup(3)|RAND_cleanup(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/rand.pod openssl-1.0.0a/doc/crypto/rand.pod
+--- openssl-1.0.0a.orig//doc/crypto/rand.pod 2002-08-05 17:27:01.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/rand.pod 1970-01-01 01:00:00.000000000 +0100
+@@ -1,175 +0,0 @@
+-=pod
+-
+-=head1 NAME
+-
+-rand - pseudo-random number generator
+-
+-=head1 SYNOPSIS
+-
+- #include <openssl/rand.h>
+-
+- int RAND_set_rand_engine(ENGINE *engine);
+-
+- int RAND_bytes(unsigned char *buf, int num);
+- int RAND_pseudo_bytes(unsigned char *buf, int num);
+-
+- void RAND_seed(const void *buf, int num);
+- void RAND_add(const void *buf, int num, int entropy);
+- int RAND_status(void);
+-
+- int RAND_load_file(const char *file, long max_bytes);
+- int RAND_write_file(const char *file);
+- const char *RAND_file_name(char *file, size_t num);
+-
+- int RAND_egd(const char *path);
+-
+- void RAND_set_rand_method(const RAND_METHOD *meth);
+- const RAND_METHOD *RAND_get_rand_method(void);
+- RAND_METHOD *RAND_SSLeay(void);
+-
+- void RAND_cleanup(void);
+-
+- /* For Win32 only */
+- void RAND_screen(void);
+- int RAND_event(UINT, WPARAM, LPARAM);
+-
+-=head1 DESCRIPTION
+-
+-Since the introduction of the ENGINE API, the recommended way of controlling
+-default implementations is by using the ENGINE API functions. The default
+-B<RAND_METHOD>, as set by RAND_set_rand_method() and returned by
+-RAND_get_rand_method(), is only used if no ENGINE has been set as the default
+-"rand" implementation. Hence, these two functions are no longer the recommened
+-way to control defaults.
+-
+-If an alternative B<RAND_METHOD> implementation is being used (either set
+-directly or as provided by an ENGINE module), then it is entirely responsible
+-for the generation and management of a cryptographically secure PRNG stream. The
+-mechanisms described below relate solely to the software PRNG implementation
+-built in to OpenSSL and used by default.
+-
+-These functions implement a cryptographically secure pseudo-random
+-number generator (PRNG). It is used by other library functions for
+-example to generate random keys, and applications can use it when they
+-need randomness.
+-
+-A cryptographic PRNG must be seeded with unpredictable data such as
+-mouse movements or keys pressed at random by the user. This is
+-described in L<RAND_add(3)|RAND_add(3)>. Its state can be saved in a seed file
+-(see L<RAND_load_file(3)|RAND_load_file(3)>) to avoid having to go through the
+-seeding process whenever the application is started.
+-
+-L<RAND_bytes(3)|RAND_bytes(3)> describes how to obtain random data from the
+-PRNG.
+-
+-=head1 INTERNALS
+-
+-The RAND_SSLeay() method implements a PRNG based on a cryptographic
+-hash function.
+-
+-The following description of its design is based on the SSLeay
+-documentation:
+-
+-First up I will state the things I believe I need for a good RNG.
+-
+-=over 4
+-
+-=item 1
+-
+-A good hashing algorithm to mix things up and to convert the RNG 'state'
+-to random numbers.
+-
+-=item 2
+-
+-An initial source of random 'state'.
+-
+-=item 3
+-
+-The state should be very large. If the RNG is being used to generate
+-4096 bit RSA keys, 2 2048 bit random strings are required (at a minimum).
+-If your RNG state only has 128 bits, you are obviously limiting the
+-search space to 128 bits, not 2048. I'm probably getting a little
+-carried away on this last point but it does indicate that it may not be
+-a bad idea to keep quite a lot of RNG state. It should be easier to
+-break a cipher than guess the RNG seed data.
+-
+-=item 4
+-
+-Any RNG seed data should influence all subsequent random numbers
+-generated. This implies that any random seed data entered will have
+-an influence on all subsequent random numbers generated.
+-
+-=item 5
+-
+-When using data to seed the RNG state, the data used should not be
+-extractable from the RNG state. I believe this should be a
+-requirement because one possible source of 'secret' semi random
+-data would be a private key or a password. This data must
+-not be disclosed by either subsequent random numbers or a
+-'core' dump left by a program crash.
+-
+-=item 6
+-
+-Given the same initial 'state', 2 systems should deviate in their RNG state
+-(and hence the random numbers generated) over time if at all possible.
+-
+-=item 7
+-
+-Given the random number output stream, it should not be possible to determine
+-the RNG state or the next random number.
+-
+-=back
+-
+-The algorithm is as follows.
+-
+-There is global state made up of a 1023 byte buffer (the 'state'), a
+-working hash value ('md'), and a counter ('count').
+-
+-Whenever seed data is added, it is inserted into the 'state' as
+-follows.
+-
+-The input is chopped up into units of 20 bytes (or less for
+-the last block). Each of these blocks is run through the hash
+-function as follows: The data passed to the hash function
+-is the current 'md', the same number of bytes from the 'state'
+-(the location determined by in incremented looping index) as
+-the current 'block', the new key data 'block', and 'count'
+-(which is incremented after each use).
+-The result of this is kept in 'md' and also xored into the
+-'state' at the same locations that were used as input into the
+-hash function. I
+-believe this system addresses points 1 (hash function; currently
+-SHA-1), 3 (the 'state'), 4 (via the 'md'), 5 (by the use of a hash
+-function and xor).
+-
+-When bytes are extracted from the RNG, the following process is used.
+-For each group of 10 bytes (or less), we do the following:
+-
+-Input into the hash function the local 'md' (which is initialized from
+-the global 'md' before any bytes are generated), the bytes that are to
+-be overwritten by the random bytes, and bytes from the 'state'
+-(incrementing looping index). From this digest output (which is kept
+-in 'md'), the top (up to) 10 bytes are returned to the caller and the
+-bottom 10 bytes are xored into the 'state'.
+-
+-Finally, after we have finished 'num' random bytes for the caller,
+-'count' (which is incremented) and the local and global 'md' are fed
+-into the hash function and the results are kept in the global 'md'.
+-
+-I believe the above addressed points 1 (use of SHA-1), 6 (by hashing
+-into the 'state' the 'old' data from the caller that is about to be
+-overwritten) and 7 (by not using the 10 bytes given to the caller to
+-update the 'state', but they are used to update 'md').
+-
+-So of the points raised, only 2 is not addressed (but see
+-L<RAND_add(3)|RAND_add(3)>).
+-
+-=head1 SEE ALSO
+-
+-L<BN_rand(3)|BN_rand(3)>, L<RAND_add(3)|RAND_add(3)>,
+-L<RAND_load_file(3)|RAND_load_file(3)>, L<RAND_egd(3)|RAND_egd(3)>,
+-L<RAND_bytes(3)|RAND_bytes(3)>,
+-L<RAND_set_rand_method(3)|RAND_set_rand_method(3)>,
+-L<RAND_cleanup(3)|RAND_cleanup(3)>
+-
+-=cut
+diff -Naur openssl-1.0.0a.orig//doc/crypto/RAND_set_rand_method.pod openssl-1.0.0a/doc/crypto/RAND_set_rand_method.pod
+--- openssl-1.0.0a.orig//doc/crypto/RAND_set_rand_method.pod 2007-11-19 09:18:03.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/RAND_set_rand_method.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -67,7 +67,7 @@
+
+ =head1 SEE ALSO
+
+-L<rand(3)|rand(3)>, L<engine(3)|engine(3)>
++L<openssl_rand(3)|openssl_rand(3)>, L<engine(3)|engine(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/RSA_blinding_on.pod openssl-1.0.0a/doc/crypto/RSA_blinding_on.pod
+--- openssl-1.0.0a.orig//doc/crypto/RSA_blinding_on.pod 2000-02-24 11:55:10.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/RSA_blinding_on.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -34,7 +34,7 @@
+
+ =head1 SEE ALSO
+
+-L<rsa(3)|rsa(3)>, L<rand(3)|rand(3)>
++L<rsa(3)|rsa(3)>, L<openssl_rand(3)|openssl_rand(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/RSA_generate_key.pod openssl-1.0.0a/doc/crypto/RSA_generate_key.pod
+--- openssl-1.0.0a.orig//doc/crypto/RSA_generate_key.pod 2002-09-25 14:33:27.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/RSA_generate_key.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -59,7 +59,7 @@
+
+ =head1 SEE ALSO
+
+-L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>, L<rsa(3)|rsa(3)>,
++L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>, L<rsa(3)|rsa(3)>,
+ L<RSA_free(3)|RSA_free(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/rsa.pod openssl-1.0.0a/doc/crypto/rsa.pod
+--- openssl-1.0.0a.orig//doc/crypto/rsa.pod 2002-08-04 22:08:36.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/rsa.pod 2010-09-01 19:36:31.624124669 +0100
+@@ -108,7 +108,7 @@
+ =head1 SEE ALSO
+
+ L<rsa(1)|rsa(1)>, L<bn(3)|bn(3)>, L<dsa(3)|dsa(3)>, L<dh(3)|dh(3)>,
+-L<rand(3)|rand(3)>, L<engine(3)|engine(3)>, L<RSA_new(3)|RSA_new(3)>,
++L<openssl_rand(3)|openssl_rand(3)>, L<engine(3)|engine(3)>, L<RSA_new(3)|RSA_new(3)>,
+ L<RSA_public_encrypt(3)|RSA_public_encrypt(3)>,
+ L<RSA_sign(3)|RSA_sign(3)>, L<RSA_size(3)|RSA_size(3)>,
+ L<RSA_generate_key(3)|RSA_generate_key(3)>,
+diff -Naur openssl-1.0.0a.orig//doc/crypto/RSA_public_encrypt.pod openssl-1.0.0a/doc/crypto/RSA_public_encrypt.pod
+--- openssl-1.0.0a.orig//doc/crypto/RSA_public_encrypt.pod 2004-03-23 21:01:34.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/RSA_public_encrypt.pod 2010-09-01 19:36:31.620125025 +0100
+@@ -73,7 +73,7 @@
+
+ =head1 SEE ALSO
+
+-L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>, L<rsa(3)|rsa(3)>,
++L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>, L<rsa(3)|rsa(3)>,
+ L<RSA_size(3)|RSA_size(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/RSA_sign_ASN1_OCTET_STRING.pod openssl-1.0.0a/doc/crypto/RSA_sign_ASN1_OCTET_STRING.pod
+--- openssl-1.0.0a.orig//doc/crypto/RSA_sign_ASN1_OCTET_STRING.pod 2002-09-25 14:33:28.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/RSA_sign_ASN1_OCTET_STRING.pod 2010-09-01 19:36:31.620125025 +0100
+@@ -48,7 +48,7 @@
+ =head1 SEE ALSO
+
+ L<ERR_get_error(3)|ERR_get_error(3)>, L<objects(3)|objects(3)>,
+-L<rand(3)|rand(3)>, L<rsa(3)|rsa(3)>, L<RSA_sign(3)|RSA_sign(3)>,
++L<openssl_rand(3)|openssl_rand(3)>, L<rsa(3)|rsa(3)>, L<RSA_sign(3)|RSA_sign(3)>,
+ L<RSA_verify(3)|RSA_verify(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/threads.pod openssl-1.0.0a/doc/crypto/threads.pod
+--- openssl-1.0.0a.orig//doc/crypto/threads.pod 2009-10-01 00:40:52.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/threads.pod 1970-01-01 01:00:00.000000000 +0100
+@@ -1,210 +0,0 @@
+-=pod
+-
+-=head1 NAME
+-
+-CRYPTO_THREADID_set_callback, CRYPTO_THREADID_get_callback,
+-CRYPTO_THREADID_current, CRYPTO_THREADID_cmp, CRYPTO_THREADID_cpy,
+-CRYPTO_THREADID_hash, CRYPTO_set_locking_callback, CRYPTO_num_locks,
+-CRYPTO_set_dynlock_create_callback, CRYPTO_set_dynlock_lock_callback,
+-CRYPTO_set_dynlock_destroy_callback, CRYPTO_get_new_dynlockid,
+-CRYPTO_destroy_dynlockid, CRYPTO_lock - OpenSSL thread support
+-
+-=head1 SYNOPSIS
+-
+- #include <openssl/crypto.h>
+-
+- /* Don't use this structure directly. */
+- typedef struct crypto_threadid_st
+- {
+- void *ptr;
+- unsigned long val;
+- } CRYPTO_THREADID;
+- /* Only use CRYPTO_THREADID_set_[numeric|pointer]() within callbacks */
+- void CRYPTO_THREADID_set_numeric(CRYPTO_THREADID *id, unsigned long val);
+- void CRYPTO_THREADID_set_pointer(CRYPTO_THREADID *id, void *ptr);
+- int CRYPTO_THREADID_set_callback(void (*threadid_func)(CRYPTO_THREADID *));
+- void (*CRYPTO_THREADID_get_callback(void))(CRYPTO_THREADID *);
+- void CRYPTO_THREADID_current(CRYPTO_THREADID *id);
+- int CRYPTO_THREADID_cmp(const CRYPTO_THREADID *a,
+- const CRYPTO_THREADID *b);
+- void CRYPTO_THREADID_cpy(CRYPTO_THREADID *dest,
+- const CRYPTO_THREADID *src);
+- unsigned long CRYPTO_THREADID_hash(const CRYPTO_THREADID *id);
+-
+- int CRYPTO_num_locks(void);
+-
+- /* struct CRYPTO_dynlock_value needs to be defined by the user */
+- struct CRYPTO_dynlock_value;
+-
+- void CRYPTO_set_dynlock_create_callback(struct CRYPTO_dynlock_value *
+- (*dyn_create_function)(char *file, int line));
+- void CRYPTO_set_dynlock_lock_callback(void (*dyn_lock_function)
+- (int mode, struct CRYPTO_dynlock_value *l,
+- const char *file, int line));
+- void CRYPTO_set_dynlock_destroy_callback(void (*dyn_destroy_function)
+- (struct CRYPTO_dynlock_value *l, const char *file, int line));
+-
+- int CRYPTO_get_new_dynlockid(void);
+-
+- void CRYPTO_destroy_dynlockid(int i);
+-
+- void CRYPTO_lock(int mode, int n, const char *file, int line);
+-
+- #define CRYPTO_w_lock(type) \
+- CRYPTO_lock(CRYPTO_LOCK|CRYPTO_WRITE,type,__FILE__,__LINE__)
+- #define CRYPTO_w_unlock(type) \
+- CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_WRITE,type,__FILE__,__LINE__)
+- #define CRYPTO_r_lock(type) \
+- CRYPTO_lock(CRYPTO_LOCK|CRYPTO_READ,type,__FILE__,__LINE__)
+- #define CRYPTO_r_unlock(type) \
+- CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_READ,type,__FILE__,__LINE__)
+- #define CRYPTO_add(addr,amount,type) \
+- CRYPTO_add_lock(addr,amount,type,__FILE__,__LINE__)
+-
+-=head1 DESCRIPTION
+-
+-OpenSSL can safely be used in multi-threaded applications provided
+-that at least two callback functions are set, locking_function and
+-threadid_func.
+-
+-locking_function(int mode, int n, const char *file, int line) is
+-needed to perform locking on shared data structures.
+-(Note that OpenSSL uses a number of global data structures that
+-will be implicitly shared whenever multiple threads use OpenSSL.)
+-Multi-threaded applications will crash at random if it is not set.
+-
+-locking_function() must be able to handle up to CRYPTO_num_locks()
+-different mutex locks. It sets the B<n>-th lock if B<mode> &
+-B<CRYPTO_LOCK>, and releases it otherwise.
+-
+-B<file> and B<line> are the file number of the function setting the
+-lock. They can be useful for debugging.
+-
+-threadid_func(CRYPTO_THREADID *id) is needed to record the currently-executing
+-thread's identifier into B<id>. The implementation of this callback should not
+-fill in B<id> directly, but should use CRYPTO_THREADID_set_numeric() if thread
+-IDs are numeric, or CRYPTO_THREADID_set_pointer() if they are pointer-based.
+-If the application does not register such a callback using
+-CRYPTO_THREADID_set_callback(), then a default implementation is used - on
+-Windows and BeOS this uses the system's default thread identifying APIs, and on
+-all other platforms it uses the address of B<errno>. The latter is satisfactory
+-for thread-safety if and only if the platform has a thread-local error number
+-facility.
+-
+-Once threadid_func() is registered, or if the built-in default implementation is
+-to be used;
+-
+-=over 4
+-
+-=item *
+-CRYPTO_THREADID_current() records the currently-executing thread ID into the
+-given B<id> object.
+-
+-=item *
+-CRYPTO_THREADID_cmp() compares two thread IDs (returning zero for equality, ie.
+-the same semantics as memcmp()).
+-
+-=item *
+-CRYPTO_THREADID_cpy() duplicates a thread ID value,
+-
+-=item *
+-CRYPTO_THREADID_hash() returns a numeric value usable as a hash-table key. This
+-is usually the exact numeric or pointer-based thread ID used internally, however
+-this also handles the unusual case where pointers are larger than 'long'
+-variables and the platform's thread IDs are pointer-based - in this case, mixing
+-is done to attempt to produce a unique numeric value even though it is not as
+-wide as the platform's true thread IDs.
+-
+-=back
+-
+-Additionally, OpenSSL supports dynamic locks, and sometimes, some parts
+-of OpenSSL need it for better performance. To enable this, the following
+-is required:
+-
+-=over 4
+-
+-=item *
+-Three additional callback function, dyn_create_function, dyn_lock_function
+-and dyn_destroy_function.
+-
+-=item *
+-A structure defined with the data that each lock needs to handle.
+-
+-=back
+-
+-struct CRYPTO_dynlock_value has to be defined to contain whatever structure
+-is needed to handle locks.
+-
+-dyn_create_function(const char *file, int line) is needed to create a
+-lock. Multi-threaded applications might crash at random if it is not set.
+-
+-dyn_lock_function(int mode, CRYPTO_dynlock *l, const char *file, int line)
+-is needed to perform locking off dynamic lock numbered n. Multi-threaded
+-applications might crash at random if it is not set.
+-
+-dyn_destroy_function(CRYPTO_dynlock *l, const char *file, int line) is
+-needed to destroy the lock l. Multi-threaded applications might crash at
+-random if it is not set.
+-
+-CRYPTO_get_new_dynlockid() is used to create locks. It will call
+-dyn_create_function for the actual creation.
+-
+-CRYPTO_destroy_dynlockid() is used to destroy locks. It will call
+-dyn_destroy_function for the actual destruction.
+-
+-CRYPTO_lock() is used to lock and unlock the locks. mode is a bitfield
+-describing what should be done with the lock. n is the number of the
+-lock as returned from CRYPTO_get_new_dynlockid(). mode can be combined
+-from the following values. These values are pairwise exclusive, with
+-undefined behaviour if misused (for example, CRYPTO_READ and CRYPTO_WRITE
+-should not be used together):
+-
+- CRYPTO_LOCK 0x01
+- CRYPTO_UNLOCK 0x02
+- CRYPTO_READ 0x04
+- CRYPTO_WRITE 0x08
+-
+-=head1 RETURN VALUES
+-
+-CRYPTO_num_locks() returns the required number of locks.
+-
+-CRYPTO_get_new_dynlockid() returns the index to the newly created lock.
+-
+-The other functions return no values.
+-
+-=head1 NOTES
+-
+-You can find out if OpenSSL was configured with thread support:
+-
+- #define OPENSSL_THREAD_DEFINES
+- #include <openssl/opensslconf.h>
+- #if defined(OPENSSL_THREADS)
+- // thread support enabled
+- #else
+- // no thread support
+- #endif
+-
+-Also, dynamic locks are currently not used internally by OpenSSL, but
+-may do so in the future.
+-
+-=head1 EXAMPLES
+-
+-B<crypto/threads/mttest.c> shows examples of the callback functions on
+-Solaris, Irix and Win32.
+-
+-=head1 HISTORY
+-
+-CRYPTO_set_locking_callback() is
+-available in all versions of SSLeay and OpenSSL.
+-CRYPTO_num_locks() was added in OpenSSL 0.9.4.
+-All functions dealing with dynamic locks were added in OpenSSL 0.9.5b-dev.
+-B<CRYPTO_THREADID> and associated functions were introduced in OpenSSL 1.0.0
+-to replace (actually, deprecate) the previous CRYPTO_set_id_callback(),
+-CRYPTO_get_id_callback(), and CRYPTO_thread_id() functions which assumed
+-thread IDs to always be represented by 'unsigned long'.
+-
+-=head1 SEE ALSO
+-
+-L<crypto(3)|crypto(3)>
+-
+-=cut
+diff -Naur openssl-1.0.0a.orig//doc/crypto/X509_NAME_ENTRY_get_object.pod openssl-1.0.0a/doc/crypto/X509_NAME_ENTRY_get_object.pod
+--- openssl-1.0.0a.orig//doc/crypto/X509_NAME_ENTRY_get_object.pod 2006-05-14 12:27:59.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/X509_NAME_ENTRY_get_object.pod 2010-09-01 19:36:31.620125025 +0100
+@@ -65,7 +65,7 @@
+ =head1 SEE ALSO
+
+ L<ERR_get_error(3)|ERR_get_error(3)>, L<d2i_X509_NAME(3)|d2i_X509_NAME(3)>,
+-L<OBJ_nid2obj(3),OBJ_nid2obj(3)>
++L<OBJ_nid2obj(3)|OBJ_nid2obj(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/ssl/SSL_get_error.pod openssl-1.0.0a/doc/ssl/SSL_get_error.pod
+--- openssl-1.0.0a.orig//doc/ssl/SSL_get_error.pod 2005-03-30 12:50:14.000000000 +0100
++++ openssl-1.0.0a/doc/ssl/SSL_get_error.pod 2010-09-01 19:36:40.259360162 +0100
+@@ -105,7 +105,7 @@
+
+ =head1 SEE ALSO
+
+-L<ssl(3)|ssl(3)>, L<err(3)|err(3)>
++L<ssl(3)|ssl(3)>, L<openssl_err(3)|openssl_err(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/ssl/SSL_want.pod openssl-1.0.0a/doc/ssl/SSL_want.pod
+--- openssl-1.0.0a.orig//doc/ssl/SSL_want.pod 2005-03-30 12:50:14.000000000 +0100
++++ openssl-1.0.0a/doc/ssl/SSL_want.pod 2010-09-01 19:36:40.259360162 +0100
+@@ -72,6 +72,6 @@
+
+ =head1 SEE ALSO
+
+-L<ssl(3)|ssl(3)>, L<err(3)|err(3)>, L<SSL_get_error(3)|SSL_get_error(3)>
++L<ssl(3)|ssl(3)>, L<openssl_err(3)|openssl_err(3)>, L<SSL_get_error(3)|SSL_get_error(3)>
+
+ =cut
+diff -Naur openssl-1.0.0a.orig//FAQ openssl-1.0.0a/FAQ
+--- openssl-1.0.0a.orig//FAQ 2010-06-01 14:31:36.000000000 +0100
++++ openssl-1.0.0a/FAQ 2010-09-01 19:39:19.677244857 +0100
+@@ -724,7 +724,7 @@
+ CRYPTO_set_id_callback(), for all versions of OpenSSL up to and
+ including 0.9.8[abc...]. As of version 1.0.0, CRYPTO_set_id_callback()
+ and associated APIs are deprecated by CRYPTO_THREADID_set_callback()
+-and friends. This is described in the threads(3) manpage.
++and friends. This is described in the openssl_threads(3) manpage.
+
+ * I've compiled a program under Windows and it crashes: why?
+
diff --git a/testing/openssl/no-rpath.patch b/testing/openssl/no-rpath.patch
new file mode 100644
index 000000000..ebd95e23d
--- /dev/null
+++ b/testing/openssl/no-rpath.patch
@@ -0,0 +1,11 @@
+--- Makefile.shared.no-rpath 2005-06-23 22:47:54.000000000 +0200
++++ Makefile.shared 2005-11-16 22:35:37.000000000 +0100
+@@ -153,7 +153,7 @@
+ NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
+ SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"
+
+-DO_GNU_APP=LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBRPATH)"
++DO_GNU_APP=LDFLAGS="$(CFLAGS)"
+
+ #This is rather special. It's a special target with which one can link
+ #applications without bothering with any features that have anything to
diff --git a/testing/openssl/vpaes.patch b/testing/openssl/vpaes.patch
new file mode 100644
index 000000000..2688b0c0a
--- /dev/null
+++ b/testing/openssl/vpaes.patch
@@ -0,0 +1,69 @@
+Index: openssl/crypto/aes/asm/vpaes-x86.pl
+RCS File: /v/openssl/cvs/openssl/crypto/aes/asm/vpaes-x86.pl,v
+rcsdiff -q -kk '-r1.5.4.4' '-r1.5.4.5' -u '/v/openssl/cvs/openssl/crypto/aes/asm/vpaes-x86.pl,v' 2>/dev/null
+--- vpaes-x86.pl 2011/12/15 22:20:26 1.5.4.4
++++ vpaes-x86.pl 2012/03/31 16:55:18 1.5.4.5
+@@ -843,6 +843,8 @@
+ &mov ($out,&wparam(1)); # out
+ &mov ($round,&wparam(2)); # len
+ &mov ($key,&wparam(3)); # key
++ &sub ($round,16);
++ &jc (&label("cbc_abort"));
+ &lea ($base,&DWP(-56,"esp"));
+ &mov ($const,&wparam(4)); # ivp
+ &and ($base,-16);
+@@ -853,7 +855,6 @@
+ &mov (&DWP(48,"esp"),$base);
+
+ &mov (&DWP(0,"esp"),$out); # save out
+- &sub ($round,16);
+ &mov (&DWP(4,"esp"),$key) # save key
+ &mov (&DWP(8,"esp"),$const); # save ivp
+ &mov ($out,$round); # $out works as $len
+@@ -896,6 +897,7 @@
+ &mov ($base,&DWP(8,"esp")); # restore ivp
+ &mov ("esp",&DWP(48,"esp"));
+ &movdqu (&QWP(0,$base),"xmm1"); # write IV
++&set_label("cbc_abort");
+ &function_end("${PREFIX}_cbc_encrypt");
+
+ &asm_finish();
+Index: openssl/crypto/aes/asm/vpaes-x86_64.pl
+RCS File: /v/openssl/cvs/openssl/crypto/aes/asm/vpaes-x86_64.pl,v
+rcsdiff -q -kk '-r1.4.4.2' '-r1.4.4.3' -u '/v/openssl/cvs/openssl/crypto/aes/asm/vpaes-x86_64.pl,v' 2>/dev/null
+--- vpaes-x86_64.pl 2011/11/14 21:01:17 1.4.4.2
++++ vpaes-x86_64.pl 2012/03/31 16:55:18 1.4.4.3
+@@ -263,7 +263,7 @@
+ pshufb %xmm2, %xmm4 # 4 = sbou
+ pxor %xmm0, %xmm4 # 4 = sb1u + k
+ movdqa 0x70(%r10), %xmm0 # 0 : sbot
+- movdqa .Lk_sr-.Lk_dsbd(%r11), %xmm2
++ movdqa -0x160(%r11), %xmm2 # .Lk_sr-.Lk_dsbd=-0x160
+ pshufb %xmm3, %xmm0 # 0 = sb1t
+ pxor %xmm4, %xmm0 # 0 = A
+ pshufb %xmm2, %xmm0
+@@ -869,6 +869,8 @@
+ ___
+ ($len,$key)=($key,$len);
+ $code.=<<___;
++ sub \$16,$len
++ jc .Lcbc_abort
+ ___
+ $code.=<<___ if ($win64);
+ lea -0xb8(%rsp),%rsp
+@@ -887,7 +889,6 @@
+ $code.=<<___;
+ movdqu ($ivp),%xmm6 # load IV
+ sub $inp,$out
+- sub \$16,$len
+ call _vpaes_preheat
+ cmp \$0,${enc}d
+ je .Lcbc_dec_loop
+@@ -932,6 +933,7 @@
+ .Lcbc_epilogue:
+ ___
+ $code.=<<___;
++.Lcbc_abort:
+ ret
+ .size ${PREFIX}_cbc_encrypt,.-${PREFIX}_cbc_encrypt
+ ___
diff --git a/testing/rpcbind/0001-rpcbind-add-support-for-systemd-socket-activation.patch b/testing/rpcbind/0001-rpcbind-add-support-for-systemd-socket-activation.patch
new file mode 100644
index 000000000..46f6aa238
--- /dev/null
+++ b/testing/rpcbind/0001-rpcbind-add-support-for-systemd-socket-activation.patch
@@ -0,0 +1,271 @@
+From e0a37e07c5ea6557706cc0840802519b8b3fc563 Mon Sep 17 00:00:00 2001
+From: Tom Gundersen <teg@jklm.no>
+Date: Thu, 12 Apr 2012 13:30:28 +0200
+Subject: [PATCH] rpcbind: add support for systemd socket activation
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Making rpcbind sockect activated will greatly simplify
+its integration in systemd systems. In essence, other services
+may now assume that rpcbind is always available, even during very
+early boot. This means that we no longer need to worry about any
+ordering dependencies.
+
+This is based on a patch originally posted by Lennart Poettering:
+<http://permalink.gmane.org/gmane.linux.nfs/33774>.
+
+That patch was not merged due to the lack of a shared library and
+as systemd was seen to be too Fedora specific.
+
+Systemd now provides a shared library, and it is shipped by defalt in
+OpenSUSE in addition to Fedora, and it is available in Debain, Gentoo,
+Arch, and others.
+
+This version of the patch has three changes from the original:
+
+ * It uses the shared library.
+ * It comes with unit files.
+ * It is rebased on top of master.
+
+A followup patch will sort out the indentation issues, as they are left in
+to make review simpler.
+
+Comments welcome.
+
+v2: correctly enable systemd code at compile time
+ handle the case where not all the required sockets were supplied
+ listen on udp/tcp port 111 in addition to /var/run/rpcbind.sock
+ do not daemonize
+v3: default to compile without systemd support when systemd is not
+ installed at compile time.
+
+Original-patch-by: Lennart Poettering <lennart@poettering.net>
+Cc: systemd-devel@lists.freedesktop.org
+Cc: Steve Dickson <steved@redhat.com>
+Cc: Chuck Lever <chuck.lever@oracle.com>
+Acked-by: Cristian Rodríguez <crrodriguez@opensuse.org>
+Signed-off-by: Tom Gundersen <teg@jklm.no>
+---
+ Makefile.am | 15 ++++++++
+ configure.in | 11 ++++++
+ src/rpcbind.c | 81 ++++++++++++++++++++++++++++++++++++++++----
+ systemd/.gitignore | 1 +
+ systemd/rpcbind.service.in | 9 +++++
+ systemd/rpcbind.socket | 12 +++++++
+ 6 files changed, 123 insertions(+), 6 deletions(-)
+ create mode 100644 systemd/.gitignore
+ create mode 100644 systemd/rpcbind.service.in
+ create mode 100644 systemd/rpcbind.socket
+
+diff --git a/Makefile.am b/Makefile.am
+index 9fa608e..194b467 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -38,6 +38,21 @@ rpcbind_SOURCES = \
+ src/warmstart.c
+ rpcbind_LDADD = $(TIRPC_LIBS)
+
++if SYSTEMD
++AM_CPPFLAGS += $(SYSTEMD_CFLAGS) -DSYSTEMD
++
++rpcbind_LDADD += $(SYSTEMD_LIBS)
++
++systemd/rpcbind.service: systemd/rpcbind.service.in Makefile
++ sed -e 's,@bindir\@,$(bindir),g' \
++ < $< > $@ || rm $@
++
++systemdsystemunit_DATA = \
++ systemd/rpcbind.service \
++ systemd/rpcbind.socket
++
++endif
++
+ rpcinfo_SOURCES = src/rpcinfo.c
+ rpcinfo_LDADD = $(TIRPC_LIBS)
+
+diff --git a/configure.in b/configure.in
+index 2b67720..e96cab2 100644
+--- a/configure.in
++++ b/configure.in
+@@ -29,6 +29,17 @@ AC_SUBST([rpcuser], [$with_rpcuser])
+
+ PKG_CHECK_MODULES([TIRPC], [libtirpc])
+
++PKG_PROG_PKG_CONFIG
++AC_ARG_WITH([systemdsystemunitdir],
++ AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
++ [], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)])
++ if test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno; then
++ AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
++ PKG_CHECK_MODULES([SYSTEMD], [libsystemd-daemon])
++ fi
++AM_CONDITIONAL(SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ])
++
++
+ AS_IF([test x$enable_libwrap = xyes], [
+ AC_CHECK_LIB([wrap], [hosts_access], ,
+ AC_MSG_ERROR([libwrap support requested but unable to find libwrap]))
+diff --git a/src/rpcbind.c b/src/rpcbind.c
+index 9a0504d..eba32ac 100644
+--- a/src/rpcbind.c
++++ b/src/rpcbind.c
+@@ -56,6 +56,9 @@
+ #include <netinet/in.h>
+ #endif
+ #include <arpa/inet.h>
++#ifdef SYSTEMD
++#include <systemd/sd-daemon.h>
++#endif
+ #include <fcntl.h>
+ #include <netdb.h>
+ #include <stdio.h>
+@@ -285,6 +288,7 @@ init_transport(struct netconfig *nconf)
+ u_int32_t host_addr[4]; /* IPv4 or IPv6 */
+ struct sockaddr_un sun;
+ mode_t oldmask;
++ int n = 0;
+ res = NULL;
+
+ if ((nconf->nc_semantics != NC_TPI_CLTS) &&
+@@ -304,6 +308,76 @@ init_transport(struct netconfig *nconf)
+ }
+ #endif
+
++ if (!__rpc_nconf2sockinfo(nconf, &si)) {
++ syslog(LOG_ERR, "cannot get information for %s",
++ nconf->nc_netid);
++ return (1);
++ }
++
++#ifdef SYSTEMD
++ n = sd_listen_fds(0);
++ if (n < 0) {
++ syslog(LOG_ERR, "failed to acquire systemd scokets: %s", strerror(-n));
++ return 1;
++ }
++
++ /* Try to find if one of the systemd sockets we were given match
++ * our netconfig structure. */
++
++ for (fd = SD_LISTEN_FDS_START; fd < SD_LISTEN_FDS_START + n; fd++) {
++ struct __rpc_sockinfo si_other;
++ union {
++ struct sockaddr sa;
++ struct sockaddr_un un;
++ struct sockaddr_in in4;
++ struct sockaddr_in6 in6;
++ struct sockaddr_storage storage;
++ } sa;
++ socklen_t addrlen = sizeof(sa);
++
++ if (!__rpc_fd2sockinfo(fd, &si_other)) {
++ syslog(LOG_ERR, "cannot get information for fd %i", fd);
++ return 1;
++ }
++
++ if (si.si_af != si_other.si_af ||
++ si.si_socktype != si_other.si_socktype ||
++ si.si_proto != si_other.si_proto)
++ continue;
++
++ if (getsockname(fd, &sa.sa, &addrlen) < 0) {
++ syslog(LOG_ERR, "failed to query socket name: %s",
++ strerror(errno));
++ goto error;
++ }
++
++ /* Copy the address */
++ taddr.addr.maxlen = taddr.addr.len = addrlen;
++ taddr.addr.buf = malloc(addrlen);
++ if (taddr.addr.buf == NULL) {
++ syslog(LOG_ERR,
++ "cannot allocate memory for %s address",
++ nconf->nc_netid);
++ goto error;
++ }
++ memcpy(taddr.addr.buf, &sa, addrlen);
++
++ my_xprt = (SVCXPRT *)svc_tli_create(fd, nconf, &taddr,
++ RPC_MAXDATASIZE, RPC_MAXDATASIZE);
++ if (my_xprt == (SVCXPRT *)NULL) {
++ syslog(LOG_ERR, "%s: could not create service",
++ nconf->nc_netid);
++ goto error;
++ }
++ }
++
++ /* if none of the systemd sockets matched, we set up the socket in
++ * the normal way:
++ */
++#endif
++
++ if(my_xprt == (SVCXPRT *)NULL) {
++
+ /*
+ * XXX - using RPC library internal functions. For NC_TPI_CLTS
+ * we call this later, for each socket we like to bind.
+@@ -316,12 +390,6 @@ init_transport(struct netconfig *nconf)
+ }
+ }
+
+- if (!__rpc_nconf2sockinfo(nconf, &si)) {
+- syslog(LOG_ERR, "cannot get information for %s",
+- nconf->nc_netid);
+- return (1);
+- }
+-
+ if ((strcmp(nconf->nc_netid, "local") == 0) ||
+ (strcmp(nconf->nc_netid, "unix") == 0)) {
+ memset(&sun, 0, sizeof sun);
+@@ -558,6 +626,7 @@ init_transport(struct netconfig *nconf)
+ goto error;
+ }
+ }
++ }
+
+ #ifdef PORTMAP
+ /*
+diff --git a/systemd/.gitignore b/systemd/.gitignore
+new file mode 100644
+index 0000000..b7b4561
+--- /dev/null
++++ b/systemd/.gitignore
+@@ -0,0 +1 @@
++rpcbind.service
+diff --git a/systemd/rpcbind.service.in b/systemd/rpcbind.service.in
+new file mode 100644
+index 0000000..58ae5de
+--- /dev/null
++++ b/systemd/rpcbind.service.in
+@@ -0,0 +1,9 @@
++[Unit]
++Description=RPC Bind
++
++[Service]
++ExecStart=@bindir@/rpcbind -w -f
++
++[Install]
++WantedBy=multi-user.target
++Also=rpcbind.socket
+diff --git a/systemd/rpcbind.socket b/systemd/rpcbind.socket
+new file mode 100644
+index 0000000..ad5fd62
+--- /dev/null
++++ b/systemd/rpcbind.socket
+@@ -0,0 +1,12 @@
++[Unit]
++Description=RPCbind Server Activation Socket
++Wants=rpcbind.target
++Before=rpcbind.target
++
++[Socket]
++ListenStream=/var/run/rpcbind.sock
++ListenStream=111
++ListenDatagram=111
++
++[Install]
++WantedBy=sockets.target
+--
+1.7.10
+
diff --git a/testing/rpcbind/PKGBUILD b/testing/rpcbind/PKGBUILD
new file mode 100644
index 000000000..c96b0518e
--- /dev/null
+++ b/testing/rpcbind/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 156056 2012-04-12 15:32:54Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=rpcbind
+pkgver=0.2.0
+pkgrel=7
+pkgdesc="portmap replacement which supports RPC over various protocols"
+arch=(i686 x86_64)
+depends=('bash' 'glibc' 'libtirpc')
+url="http://rpcbind.sourceforge.net"
+license=('custom')
+replaces=('portmap')
+source=(#http://downloads.sourceforge.net/sourceforge/rpcbind/rpcbind-0.2.0.tar.bz2
+ ftp://ftp.archlinux.org/other/rpcbind/rpcbind-0.2.0.tar.gz
+ 0001-rpcbind-add-support-for-systemd-socket-activation.patch
+ rpcbind-sunrpc.patch
+ rpcbind)
+md5sums=('1cb086aa6503b97b55382c224c7c77d4'
+ 'df50ef1e5520ab13d53143899eef82f5'
+ 'c02ac36a98baac70b8a26190524b7b73'
+ '78a963654f57cbb209e228884767836e')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ # patch for iana services file
+ patch -Np1 -i ../rpcbind-sunrpc.patch
+ # add systemd support
+ patch -Np1 -i ../0001-rpcbind-add-support-for-systemd-socket-activation.patch
+ ./configure --prefix=/usr --enable-warmstarts --with-statedir=/run
+ make
+}
+
+check() {
+ cd $srcdir/$pkgname-$pkgver
+ make check
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+ # install missing man page - https://bugs.archlinux.org/task/21271
+ install -m644 man/rpcinfo.8 $pkgdir/usr/share/man/man8/
+ # install daemon
+ install -D -m755 $srcdir/rpcbind $pkgdir/etc/rc.d/rpcbind
+ # install license
+ install -D -m644 COPYING $pkgdir/usr/share/licenses/rpcbind/COPYING
+}
diff --git a/testing/rpcbind/rpcbind b/testing/rpcbind/rpcbind
new file mode 100755
index 000000000..87c5b50da
--- /dev/null
+++ b/testing/rpcbind/rpcbind
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID="$(pidof -o %PPID /usr/bin/rpcbind)"
+case "$1" in
+ start)
+ stat_busy "Starting rpcbind"
+ [ -z "$PID" ] && /usr/bin/rpcbind &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ PID=$(pidof -o %PPID /usr/bin/rpcbind)
+ echo $PID > /var/run/rpcbind.pid
+ add_daemon rpcbind
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping rpcbind"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm /var/run/rpcbind.pid
+ rm_daemon rpcbind
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/testing/rpcbind/rpcbind-sunrpc.patch b/testing/rpcbind/rpcbind-sunrpc.patch
new file mode 100644
index 000000000..76cf54ba9
--- /dev/null
+++ b/testing/rpcbind/rpcbind-sunrpc.patch
@@ -0,0 +1,22 @@
+--- rpcbind-0.1.7/src/rpcbind.c.orig 2008-11-19 14:17:34.000000000 +0100
++++ rpcbind-0.1.7/src/rpcbind.c 2010-01-07 13:03:37.416632894 +0100
+@@ -114,7 +114,7 @@
+ char *udp_uaddr; /* Universal UDP address */
+ char *tcp_uaddr; /* Universal TCP address */
+ #endif
+-static char servname[] = "rpcbind";
++static char servname[] = "sunrpc";
+ static char superuser[] = "superuser";
+
+ int main __P((int, char *[]));
+--- rpcbind-0.1.7/src/rpcinfo.c~ 2010-01-08 16:14:24.592156602 +0000
++++ rpcbind-0.1.7/src/rpcinfo.c 2010-01-08 16:14:31.578838609 +0000
+@@ -633,7 +633,7 @@
+ {
+ memset (&hints, 0, sizeof hints);
+ hints.ai_family = AF_INET;
+- if ((error = getaddrinfo (host, "rpcbind", &hints, &res)) != 0 &&
++ if ((error = getaddrinfo (host, "sunrpc", &hints, &res)) != 0 &&
+ (error = getaddrinfo (host, "portmapper", &hints, &res)) != 0)
+ {
+ fprintf (stderr, "rpcinfo: %s: %s\n",
diff --git a/testing/udisks2/PKGBUILD b/testing/udisks2/PKGBUILD
index 1b8ef3ec5..a14728c7a 100644
--- a/testing/udisks2/PKGBUILD
+++ b/testing/udisks2/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 155280 2012-04-01 11:37:34Z heftig $
+# $Id: PKGBUILD 156041 2012-04-12 07:07:18Z ibiru $
# Maintainer: Ionut Biru <ibiru@archlinux.org>
pkgname=udisks2
-pkgver=1.93.0
+pkgver=1.94.0
pkgrel=1
pkgdesc="Disk Management Service, version 2"
arch=('i686' 'x86_64')
@@ -14,12 +14,12 @@ optdepends=('parted: partition management'
'gptfdisk: GUID partition table support')
options=(!libtool)
source=(http://udisks.freedesktop.org/releases/udisks-$pkgver.tar.bz2)
-sha256sums=('e2264d06bbf5399d243b0f91628881fa1d95d1a512b2af26f5ab074caf6327d7')
+sha256sums=('e58193c2f2f4fba030b6dd684708352b1eccf6826843e42899a26fef4249b0bc')
build() {
cd "udisks-$pkgver"
./configure --prefix=/usr --sysconfdir=/etc \
- --with-systemdsystemunitdir=/lib/systemd/system \
+ --with-systemdsystemunitdir=/usr/lib/systemd/system \
--localstatedir=/var --disable-static
make
}