summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/acf-core/APKBUILD6
-rw-r--r--main/acf-freeswitch/APKBUILD21
-rw-r--r--main/acf-weblog/APKBUILD4
-rw-r--r--main/alpine-desktop/APKBUILD6
-rw-r--r--main/apr-util/APKBUILD37
-rw-r--r--main/apr/APKBUILD5
-rw-r--r--main/asterisk/APKBUILD4
-rw-r--r--main/busybox-initscripts/APKBUILD4
-rw-r--r--main/busybox-initscripts/cron.initd1
-rw-r--r--main/busybox/APKBUILD33
-rw-r--r--main/busybox/busyboxconfig6
-rw-r--r--main/cmph/APKBUILD40
-rw-r--r--main/dhcpcd/APKBUILD6
-rw-r--r--main/dovecot/APKBUILD6
-rw-r--r--main/freeswitch/APKBUILD4
-rw-r--r--main/git/APKBUILD4
-rw-r--r--main/gnumeric/APKBUILD4
-rw-r--r--main/goffice/APKBUILD4
-rw-r--r--main/gtksourceview/APKBUILD (renamed from testing/gtksourceview/APKBUILD)4
-rw-r--r--main/imagemagick/APKBUILD4
-rw-r--r--main/iperf/APKBUILD6
-rw-r--r--main/iw/APKBUILD33
-rw-r--r--main/iw/iw-bb-install.patch15
-rw-r--r--main/iw/iw-git-version.patch11
-rw-r--r--main/kamailio/APKBUILD8
-rw-r--r--main/kamailio/kamailio.post-install5
-rw-r--r--main/kamailio/kamailio.pre-install3
l---------main/kamailio/kamailio.pre-upgrade1
-rw-r--r--main/libc0.9.32/APKBUILD4
-rw-r--r--main/libc0.9.32/no-posix-spawn.patch24
-rw-r--r--main/libtheora/APKBUILD31
-rw-r--r--main/libtheora/enc.patch11
-rw-r--r--main/libusb-compat/APKBUILD3
-rw-r--r--main/linux-grsec/APKBUILD6
-rw-r--r--main/linux-grsec/grsecurity-2.2.0-2.6.32.16-201007162107.patch (renamed from main/linux-grsec/grsecurity-2.2.0-2.6.32.16-201007112149.patch)448
-rw-r--r--main/live-media/APKBUILD (renamed from testing/live-media/APKBUILD)6
-rw-r--r--main/lua-xml/APKBUILD34
-rw-r--r--main/lvm2/APKBUILD4
-rw-r--r--main/micro-tetris/APKBUILD30
-rw-r--r--main/mkinitfs/APKBUILD4
-rw-r--r--main/mpd/APKBUILD4
-rw-r--r--main/net-snmp/APKBUILD4
-rw-r--r--main/openldap/APKBUILD3
-rw-r--r--main/openssl/0001-crypto-hmac-support-EVP_MD_CTX_FLAG_ONESHOT-and-set-.patch6
-rw-r--r--main/openssl/0002-apps-speed-fix-digest-speed-measurement-and-add-hmac.patch4
-rw-r--r--main/openssl/0003-engines-e_padlock-backport-cvs-head-changes.patch203
-rw-r--r--main/openssl/0004-engines-e_padlock-implement-sha1-sha224-sha256-accel.patch (renamed from main/openssl/0003-engine-padlock-implement-sha1-sha224-sha256-accelera.patch)237
-rw-r--r--main/openssl/0005-crypto-engine-autoload-padlock-dynamic-engine.patch (renamed from main/openssl/0004-crypto-engine-autoload-padlock-dynamic-engine.patch)4
-rw-r--r--main/openssl/APKBUILD17
-rw-r--r--main/php/APKBUILD24
-rw-r--r--main/php/CVE-2010-2225.patch194
-rw-r--r--main/php/curl-flush.patch17
-rw-r--r--main/php/gd-info-segfault.patch26
-rw-r--r--main/php/php-uclibc.patch11
-rw-r--r--main/php/zend_execute_API.c.patch10
-rw-r--r--main/pidgin/APKBUILD8
-rw-r--r--main/pidgin/icq_fix.patch19
-rw-r--r--main/remmina/APKBUILD4
-rw-r--r--main/rrdtool/APKBUILD14
-rw-r--r--main/smokeping/APKBUILD111
-rw-r--r--main/smokeping/smokeping.initd77
-rw-r--r--main/smokeping/smokeping.pre-install5
-rw-r--r--main/sqlite/APKBUILD6
-rw-r--r--main/swig/APKBUILD13
-rw-r--r--main/syslinux/APKBUILD4
-rw-r--r--main/tcpflow/APKBUILD (renamed from testing/tcpflow/APKBUILD)10
-rw-r--r--main/transmission/APKBUILD4
-rw-r--r--main/wireshark/APKBUILD4
-rw-r--r--main/xf86-video-cirrus/APKBUILD17
-rw-r--r--main/xf86-video-cirrus/qemu.patch25
-rw-r--r--main/xinit/06_move_serverauthfile_into_tmp.patch20
-rw-r--r--main/xinit/APKBUILD27
-rw-r--r--main/xinit/xserverrc1
-rw-r--r--testing/apache2/APKBUILD160
-rw-r--r--testing/apache2/alpine.layout22
-rw-r--r--testing/apache2/apache2.confd54
-rwxr-xr-xtesting/apache2/apache2.initd154
-rw-r--r--testing/apache2/apache2.logrotate10
-rw-r--r--testing/apache2/httpd.conf1009
-rw-r--r--testing/bluez/APKBUILD18
-rw-r--r--testing/libusb-compat/APKBUILD3
-rw-r--r--testing/mdocml/APKBUILD4
-rw-r--r--testing/perl-cgi-session/APKBUILD26
-rw-r--r--testing/perl-snmp-session/APKBUILD25
-rw-r--r--testing/py-cairo/APKBUILD35
-rw-r--r--testing/py-dbus/APKBUILD25
-rw-r--r--testing/py-gobject/APKBUILD36
-rw-r--r--testing/py-gtk/APKBUILD34
-rw-r--r--testing/sems/APKBUILD2
-rw-r--r--testing/vlc/APKBUILD (renamed from unstable/vlc/APKBUILD)61
-rw-r--r--testing/vlc/uclibc-inhibit-spawn.patch35
-rw-r--r--testing/vlc/uclibc-libcompat.patch81
-rw-r--r--testing/vlc/uclibc3.patch49
-rw-r--r--unstable/vlc/uclibc.patch65
94 files changed, 3233 insertions, 698 deletions
diff --git a/main/acf-core/APKBUILD b/main/acf-core/APKBUILD
index c7478cc0e..67829996b 100644
--- a/main/acf-core/APKBUILD
+++ b/main/acf-core/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=acf-core
-pkgver=0.10.5
-pkgrel=1
+pkgver=0.10.7
+pkgrel=0
pkgdesc="A web-based system administration interface framework"
url="http://git.alpinelinux.org/cgit/acf-core"
license="GPL-2"
@@ -13,4 +13,4 @@ build() {
cd "$srcdir/$pkgname-$pkgver"
make DESTDIR="$pkgdir" install
}
-md5sums="d7bb470cac2442ad01028640fff6956c acf-core-0.10.5.tar.bz2"
+md5sums="8706c5469dd1ec3fc389cf7039bcfb39 acf-core-0.10.7.tar.bz2"
diff --git a/main/acf-freeswitch/APKBUILD b/main/acf-freeswitch/APKBUILD
new file mode 100644
index 000000000..14e9089a8
--- /dev/null
+++ b/main/acf-freeswitch/APKBUILD
@@ -0,0 +1,21 @@
+# Maintainer: Ted Trask <ttrask01@yahoo.com>
+pkgname=acf-freeswitch
+pkgver=0.1.0
+pkgrel=0
+pkgdesc="ACF for freeswitch"
+url="http://git.alpinelinux.org/cgit/acf-freeswitch"
+license="GPL-2"
+depends="acf-core lua freeswitch"
+makedepends=""
+install=
+subpackages=""
+source="http://git.alpinelinux.org/cgit/$pkgname/snapshot/$pkgname-$pkgver.tar.bz2"
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+
+}
+
+md5sums="07743b2d911a2f5e88a08b849c1d36de acf-freeswitch-0.1.0.tar.bz2"
diff --git a/main/acf-weblog/APKBUILD b/main/acf-weblog/APKBUILD
index b0b3da27d..6801fe890 100644
--- a/main/acf-weblog/APKBUILD
+++ b/main/acf-weblog/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Ted Trask <ttrask01@yahoo.com>
# Maintainer: Ted Trask <ttrask01@yahoo.com>
pkgname=acf-weblog
-pkgver=0.5.5
+pkgver=0.5.6
pkgrel=0
pkgdesc="ACF for web proxy (squid and dansguardian) logfiles"
url="http://git.alpinelinux.org/cgit/acf-weblog"
@@ -17,4 +17,4 @@ build() {
make DESTDIR="$pkgdir" install
}
-md5sums="c48ef4d8d9136f16de68129404ffb3ee acf-weblog-0.5.5.tar.bz2"
+md5sums="23bd6aeea56ab4c0580e89f02452aa1d acf-weblog-0.5.6.tar.bz2"
diff --git a/main/alpine-desktop/APKBUILD b/main/alpine-desktop/APKBUILD
index 88aeaad46..ae9e31836 100644
--- a/main/alpine-desktop/APKBUILD
+++ b/main/alpine-desktop/APKBUILD
@@ -1,12 +1,12 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=alpine-desktop
pkgver=2.0
-pkgrel=0
+pkgrel=1
pkgdesc="Meta package for Alpine Desktop"
url="http://alpinelinux.org"
license="GPL"
-depends=
-makedepends="
+makedepends=
+depends="
dhcpcd
dhcpcd-ui
gpicview
diff --git a/main/apr-util/APKBUILD b/main/apr-util/APKBUILD
index 9b8d15407..419ab77be 100644
--- a/main/apr-util/APKBUILD
+++ b/main/apr-util/APKBUILD
@@ -1,27 +1,32 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=apr-util
pkgver=1.3.9
-pkgrel=2
-pkgdesc="The Apache Portable Runtime"
+pkgrel=4
+pkgdesc="The Apache Portable Runtime Utility Library"
url="http://apr.apache.org/"
license="APACHE"
depends=
-subpackages="$pkgname-dev"
-makedepends="apr-dev expat-dev e2fsprogs-dev bash"
+subpackages="$pkgname-dev $pkgname-dbm_db $pkgname-dbd_pgsql $pkgname-dbd_mysql
+ $pkgname-dbd_sqlite3 $pkgname-ldap"
+makedepends="apr-dev expat-dev bash openldap-dev sqlite-dev postgresql-dev
+ mysql-dev db-dev"
+depends_dev="expat-dev apr-dev openldap-dev sqlite-dev postgresql-dev mysql-dev
+ db-dev"
source="http://www.apache.org/dist/apr/$pkgname-$pkgver.tar.bz2"
build() {
cd "$srcdir/$pkgname-$pkgver"
./configure --prefix=/usr \
--with-apr=/usr \
+ --with-ldap \
+ --with-pgsql \
+ --with-mysql \
+ --with-sqlite3 \
+ --with-berkeley-db \
--without-iconv \
- --without-pgsql \
- --without-mysql \
--without-sqlite2 \
- --without-sqlite3 \
- --without-berkeley-db \
--without-gdbm \
- --without-ldap-lib
+ || return 1
make || return 1
}
@@ -34,4 +39,18 @@ package() {
rm "$pkgdir"/usr/lib/*.exp
}
+_mv_mod() {
+ pkgdesc="The Apache Portable Runtime Utility Library - $2 driver"
+ depends=
+ local _moddir="usr/lib/apr-util-1"
+ mkdir -p "$subpkgdir"/$_moddir
+ mv "$pkgdir"/$_moddir/apr_$1*.so "$subpkgdir"/$_moddir/
+}
+
+dbm_db() { _mv_mod dbm_db "Berkley DB"; }
+dbd_pgsql() { _mv_mod dbd_pgsql "PostgreSQL"; }
+dbd_mysql() { _mv_mod dbd_mysql "MySQL"; }
+dbd_sqlite3() { _mv_mod dbd_sqlite "SQLite3"; }
+ldap() { _mv_mod ldap "LDAP"; }
+
md5sums="29dd557f7bd891fc2bfdffcfa081db59 apr-util-1.3.9.tar.bz2"
diff --git a/main/apr/APKBUILD b/main/apr/APKBUILD
index 020564ec6..75ce230a9 100644
--- a/main/apr/APKBUILD
+++ b/main/apr/APKBUILD
@@ -1,12 +1,13 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=apr
pkgver=1.4.2
-pkgrel=2
+pkgrel=3
pkgdesc="The Apache Portable Runtime"
url="http://apr.apache.org/"
license="APACHE"
depends=
makedepends="util-linux-ng-dev"
+depends_dev="util-linux-ng-dev"
subpackages="$pkgname-dev"
source="http://www.apache.org/dist/$pkgname/$pkgname-$pkgver.tar.bz2"
@@ -29,7 +30,7 @@ package() {
# we override the pre-defined func.
dev() {
local i
- depends="$pkgname"
+ depends="$pkgname $depends_dev"
mkdir -p "$subpkgdir"
mv "$pkgdir"/* "$subpkgdir"/
mkdir -p "$pkgdir"/usr/lib
diff --git a/main/asterisk/APKBUILD b/main/asterisk/APKBUILD
index a8c5d110a..877d40f6c 100644
--- a/main/asterisk/APKBUILD
+++ b/main/asterisk/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Timo Teras <timo.teras@iki.fi>
# Maintainer: Timo Teras <timo.teras@iki.fi>
pkgname=asterisk
-pkgver=1.6.2.9
+pkgver=1.6.2.10
pkgrel=0
pkgdesc="Asterisk: A Module Open Source PBX System"
url="http://www.asterisk.org/"
@@ -119,7 +119,7 @@ sample() {
make samples DESTDIR="$subpkgdir"
}
-md5sums="1f947d951c419b8039d53a6e6168fd69 asterisk-1.6.2.9.tar.gz
+md5sums="50412a90942ae7306fb8dcc31a05c2ce asterisk-1.6.2.10.tar.gz
b00c9d98ce2ad445501248a197c6e436 100-uclibc-daemon.patch
6e1129e30c4fd2c25c86c81685a485a9 101-caps-uclibc.patch
79e9634b5054bceb3b8dc246654bb243 400-bug-227.patch
diff --git a/main/busybox-initscripts/APKBUILD b/main/busybox-initscripts/APKBUILD
index 4b9402af9..b7573970f 100644
--- a/main/busybox-initscripts/APKBUILD
+++ b/main/busybox-initscripts/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=busybox-initscripts
pkgver=2.0
-pkgrel=12
+pkgrel=13
pkgdesc="Init scripts for busybox daemons"
url="http://git.alpinelinux.org/cgit/aports/tree/core/busybox-initscripts"
license="GPL-2"
@@ -40,7 +40,7 @@ EOF
}
md5sums="baa44c026a4c9468b01ec2771d76db19 acpid.initd
-90027316d98b5b97cc3bf3a7c7ad3f7c cron.initd
+6db6c6d6a5e0169e54a0e0527d83dfff cron.initd
dad20779adfb4b85b57b45c7c903a636 dnsd.initd
4f8f9a7028a429c50740c09fcb2a1871 httpd.initd
32315991b16a03a42a8cdd64f064ccc2 inetd.initd
diff --git a/main/busybox-initscripts/cron.initd b/main/busybox-initscripts/cron.initd
index 40d16b640..8175bdf2d 100644
--- a/main/busybox-initscripts/cron.initd
+++ b/main/busybox-initscripts/cron.initd
@@ -2,6 +2,7 @@
depend() {
need localmount
+ need logger
}
start() {
diff --git a/main/busybox/APKBUILD b/main/busybox/APKBUILD
index cd53d073a..099881144 100644
--- a/main/busybox/APKBUILD
+++ b/main/busybox/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=busybox
-pkgver=1.17.0
+pkgver=1.17.1
pkgrel=2
pkgdesc="Size optimized toolbox of many common UNIX utilities"
url=http://busybox.net
@@ -10,14 +10,10 @@ install="$pkgname.post-install $pkgname.post-upgrade"
subpackages="$pkgname-static"
triggers="busybox.trigger:/bin /usr/bin /sbin /usr/sbin /lib/modules/*"
source="http://busybox.net/downloads/$pkgname-$pkgver.tar.bz2
+ http://busybox.net/downloads/fixes-1.17.1/busybox-1.17.1-shell.patch
+ http://busybox.net/downloads/fixes-1.17.1/busybox-1.17.1-mktemp.patch
+ http://busybox.net/downloads/fixes-1.17.1/busybox-1.17.1-sed.patch
$pkgname-1.11.1-bb.patch
- http://busybox.net/downloads/fixes-1.17.0/busybox-1.17.0-acpid.patch
- http://busybox.net/downloads/fixes-1.17.0/busybox-1.17.0-build_system.patch
- http://busybox.net/downloads/fixes-1.17.0/busybox-1.17.0-diff.patch
- http://busybox.net/downloads/fixes-1.17.0/busybox-1.17.0-mktemp.patch
- http://busybox.net/downloads/fixes-1.17.0/busybox-1.17.0-modprobe-l.patch
- http://busybox.net/downloads/fixes-1.17.0/busybox-1.17.0-volumeid.patch
- http://busybox.net/downloads/fixes-1.17.0/busybox-1.17.0-wget.patch
busyboxconfig"
_builddir="$srcdir"/$pkgname-$pkgver
@@ -33,9 +29,10 @@ prepare() {
fi
done
-# sed -i -e 's/(ip, _BB_DIR_BIN/(ip, _BB_DIR_SBIN/' \
-# -e 's/(vi, _BB_DIR_BIN/(vi, _BB_DIR_USR_BIN/' \
-# include/applets.h || return 1
+ sed -i -e 's/(ip, _BB_DIR_BIN/(ip, _BB_DIR_SBIN/' \
+ -e 's/(lspci, _BB_DIR_USR_BIN/(lspci, _BB_DIR_USR_SBIN/' \
+ -e 's/(vi, _BB_DIR_BIN/(vi, _BB_DIR_USR_BIN/' \
+ include/applets.src.h || return 1
}
build() {
@@ -73,13 +70,9 @@ static() {
}
-md5sums="2908d1d1ca83ff12bc0b05f0d2a3335c busybox-1.17.0.tar.bz2
+md5sums="c7fe7533b7fc4018b0b49a05ee0ee601 busybox-1.17.1.tar.bz2
+ecbd34ef0d291a5a6c9ded3a16c7f544 busybox-1.17.1-shell.patch
+74b8d7366ef0d1b8c10abdf3f88d51de busybox-1.17.1-mktemp.patch
+70e310bad1f9d2aa605ded62cf891c60 busybox-1.17.1-sed.patch
4c0f3b486eaa0674961b7ddcd0c60a9b busybox-1.11.1-bb.patch
-0cf814dbe1f62c8c8e891697c896952d busybox-1.17.0-acpid.patch
-ea127206741f9785dd2e8fcce2c32ad8 busybox-1.17.0-build_system.patch
-094cde9990b5c6b02e631c08c91a5b30 busybox-1.17.0-diff.patch
-2f4c29e5fbd3c9527da9ecbd9e9e699f busybox-1.17.0-mktemp.patch
-b159ecc8954369ec3d2320212c075a69 busybox-1.17.0-modprobe-l.patch
-97cccda27dbf4181ca32a58f5d61e5a9 busybox-1.17.0-volumeid.patch
-aecc8dcaff560e1334d2788d588f6ea5 busybox-1.17.0-wget.patch
-e4c9f09bcc27b57f8f0344c69607f4c4 busyboxconfig"
+403e0b9fe99a7a18c5b9ae91283a5f9a busyboxconfig"
diff --git a/main/busybox/busyboxconfig b/main/busybox/busyboxconfig
index f950be73c..142f27dd1 100644
--- a/main/busybox/busyboxconfig
+++ b/main/busybox/busyboxconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Busybox version: 1.17.0
-# Thu Jul 15 14:12:18 2010
+# Busybox version: 1.17.1
+# Thu Aug 5 13:41:36 2010
#
CONFIG_HAVE_DOT_CONFIG=y
@@ -154,7 +154,7 @@ CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y
CONFIG_UNLZMA=y
CONFIG_FEATURE_LZMA_FAST=y
CONFIG_LZMA=y
-# CONFIG_UNXZ is not set
+CONFIG_UNXZ=y
# CONFIG_XZ is not set
CONFIG_UNZIP=y
diff --git a/main/cmph/APKBUILD b/main/cmph/APKBUILD
new file mode 100644
index 000000000..a52b0bcf1
--- /dev/null
+++ b/main/cmph/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor:
+# Maintainer:
+pkgname=cmph
+pkgver=0.9
+pkgrel=0
+pkgdesc="minimal perfect hash C library - utility application"
+url="http://cmph.sourceforge.net/"
+license="LGPL MPL-1.1"
+depends=
+makedepends=
+install=
+subpackages="$pkgname-dev $pkgname-doc libcmph:lib"
+source="http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz"
+
+_builddir="$srcdir"/$pkgname-$pkgver
+prepare() {
+ cd "$_builddir"
+}
+
+build() {
+ cd "$_builddir"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info
+ make || return 1
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install
+}
+
+lib() {
+ pkgdesc="minimal perfect hash C library - utility application"
+ mkdir -p "$subpkgdir"/usr/lib
+ mv "$pkgdir"/usr/lib/libcmph*.so.* "$subpkgdir"/usr/lib/
+}
+
+md5sums="14c17e3058174e9333936caa8e18ed28 cmph-0.9.tar.gz"
diff --git a/main/dhcpcd/APKBUILD b/main/dhcpcd/APKBUILD
index 5f85d9f86..6a5a75c23 100644
--- a/main/dhcpcd/APKBUILD
+++ b/main/dhcpcd/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Michael Mason <ms13sp@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=dhcpcd
-pkgver=5.2.5
-pkgrel=1
+pkgver=5.2.7
+pkgrel=0
pkgdesc="RFC2131 compliant DHCP client"
url="http://roy.marples.name/projects/dhcpcd/"
license="BSD-2"
@@ -27,5 +27,5 @@ package() {
install -Dm755 "$srcdir"/dhcpcd.initd "$pkgdir"/etc/init.d/dhcpcd
}
-md5sums="79f5452252026c0547886f89ab87adf1 dhcpcd-5.2.5.tar.bz2
+md5sums="1dcf377270a13cc774c9a26fc50453b5 dhcpcd-5.2.7.tar.bz2
ecbd807cf3f87d7c5b6095bf63f26894 dhcpcd.initd"
diff --git a/main/dovecot/APKBUILD b/main/dovecot/APKBUILD
index 9246417c8..c6774c14c 100644
--- a/main/dovecot/APKBUILD
+++ b/main/dovecot/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Michael Mason <ms13sp@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=dovecot
-pkgver=1.2.12
-pkgrel=3
+pkgver=1.2.13
+pkgrel=0
pkgdesc="IMAP and POP3 server"
url="http://www.dovecot.org/"
license="LGPL-2.1"
@@ -90,6 +90,6 @@ sqlite() {
_mv $(cd "$pkgdir" && find usr -name '*sqlite.so')
}
-md5sums="cc8e5c53cd0943ce0b5e1087356ad4ea dovecot-1.2.12.tar.gz
+md5sums="aaee3b5fd59e01780305553248f686bc dovecot-1.2.13.tar.gz
aec5cc797ab2acf72ce3b6bb1030345f dovecot.logrotate
c58b474dca20e6e60fa4f1f5b9c726e1 dovecot.initd"
diff --git a/main/freeswitch/APKBUILD b/main/freeswitch/APKBUILD
index 2b1766e80..ab1b387a5 100644
--- a/main/freeswitch/APKBUILD
+++ b/main/freeswitch/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=freeswitch
pkgver=1.0.6
-pkgrel=11
+pkgrel=12
pkgdesc="A communications platform written in C from the ground up"
url="http://www.freeswitch.org"
license="GPL"
@@ -84,7 +84,7 @@ conf() {
pkgdesc="Freeswitch sample configureation"
depends="freeswitch"
install=
- mkdir -p "$subpkgdir"/etc/freeswich
+ mkdir -p "$subpkgdir"/etc/freeswitch
# move all configs except freeswitch.xml
for i in "$pkgdir"/etc/freeswitch/*; do
[ "$i" = "$pkgdir"/etc/freeswitch/freeswitch.xml ] && continue
diff --git a/main/git/APKBUILD b/main/git/APKBUILD
index 0e2b7e1ef..b90e856ca 100644
--- a/main/git/APKBUILD
+++ b/main/git/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=git
-pkgver=1.7.1.1
+pkgver=1.7.2.1
pkgrel=0
pkgdesc="GIT - the stupid content tracker"
url="http://git.or.cz/"
@@ -42,5 +42,5 @@ perl() {
}
-md5sums="1b116a3e2ecce46a89e4272abf0de955 git-1.7.1.1.tar.bz2
+md5sums="24a443a120a0ab372185cb6bc0dbd934 git-1.7.2.1.tar.bz2
e63a201556c4f089de790805c09a2e5b bb-tar.patch"
diff --git a/main/gnumeric/APKBUILD b/main/gnumeric/APKBUILD
index 9ea9b9718..6639fa5d2 100644
--- a/main/gnumeric/APKBUILD
+++ b/main/gnumeric/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gnumeric
-pkgver=1.10.7
+pkgver=1.10.8
pkgrel=0
pkgdesc="A GNOME Spreadsheet Program"
url="http://www.gnome.org/projects/gnumeric/"
@@ -27,4 +27,4 @@ package() {
cd "$_builddir"
make -j1 DESTDIR="$pkgdir" install || return 1
}
-md5sums="86869fcada3840afdbd861693a9ab30e gnumeric-1.10.7.tar.bz2"
+md5sums="6a14ffd4f6ba34effea71a8831f058f3 gnumeric-1.10.8.tar.bz2"
diff --git a/main/goffice/APKBUILD b/main/goffice/APKBUILD
index 5172c3e47..3f54fd534 100644
--- a/main/goffice/APKBUILD
+++ b/main/goffice/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=goffice
-pkgver=0.8.6
+pkgver=0.8.8
pkgrel=0
pkgdesc="A library of document-centric objects and utilities built on top of GLib and Gtk+"
url="http://www.gnome.org"
@@ -26,4 +26,4 @@ package() {
cd "$srcdir"/$pkgname-$pkgver
make DESTDIR="$pkgdir" install || return 1
}
-md5sums="78b749f9b6913c2995171396f5deb525 goffice-0.8.6.tar.bz2"
+md5sums="1a2e6feb76b30de48a0e0e75687dc34c goffice-0.8.8.tar.bz2"
diff --git a/testing/gtksourceview/APKBUILD b/main/gtksourceview/APKBUILD
index 8e080b207..895674d18 100644
--- a/testing/gtksourceview/APKBUILD
+++ b/main/gtksourceview/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gtksourceview
-pkgver=2.10.2
+pkgver=2.10.4
pkgrel=0
pkgdesc="A text widget adding syntax highlighting and more to GNOME"
url="http://live.gnome.org/GtkSourceView"
@@ -23,4 +23,4 @@ package() {
cd "$srcdir"/gtksourceview-$pkgver
make DESTDIR="$pkgdir" install || return 1
}
-md5sums="56c849c0adea56228287abbabc7b70b9 gtksourceview-2.10.2.tar.bz2"
+md5sums="342666cba9eb2643e5166a0cb58203d2 gtksourceview-2.10.4.tar.bz2"
diff --git a/main/imagemagick/APKBUILD b/main/imagemagick/APKBUILD
index d0e692530..b89b71622 100644
--- a/main/imagemagick/APKBUILD
+++ b/main/imagemagick/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Carlo Landmeter <clandmeter@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=imagemagick
-pkgver=6.6.3.0
+pkgver=6.6.3.1
_pkgver=${pkgver%.*}-${pkgver##*.}
pkgrel=0
pkgdesc="A collection of tools and libraries for many image formats"
@@ -47,4 +47,4 @@ dev() {
"$pkgdir"/usr/lib/ImageMagick-$_v/modules-Q16/filters/
}
-md5sums="555e1f70bd244b79d74e57895bff6c05 ImageMagick-6.6.3-0.tar.gz"
+md5sums="0e028d5b2b5d741732644adc391dda8c ImageMagick-6.6.3-1.tar.gz"
diff --git a/main/iperf/APKBUILD b/main/iperf/APKBUILD
index d133c9053..02b8db198 100644
--- a/main/iperf/APKBUILD
+++ b/main/iperf/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Michael Mason <ms13sp@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=iperf
-pkgver=2.0.4
-pkgrel=1
+pkgver=2.0.5
+pkgrel=0
pkgdesc="tool to measure IP bandwidth using UDP or TCP"
url="http://iperf.sourceforge.net/"
license="GPL"
@@ -27,4 +27,4 @@ package() {
make DESTDIR="$pkgdir" install
}
-md5sums="8c5bc14cc2ea55f18f22afe3c23e3dcb iperf-2.0.4.tar.gz"
+md5sums="44b5536b67719f4250faed632a3cd016 iperf-2.0.5.tar.gz"
diff --git a/main/iw/APKBUILD b/main/iw/APKBUILD
new file mode 100644
index 000000000..3cce23eff
--- /dev/null
+++ b/main/iw/APKBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=iw
+pkgver=0.9.18
+pkgrel=0
+pkgdesc="nl80211 based CLI configuration utility for wireless devices"
+url="http://wireless.kernel.org/en/users/Documentation/iw"
+license="GPL"
+depends=""
+makedepends="libnl-dev"
+source="http://wireless.kernel.org/download/iw/iw-$pkgver.tar.bz2
+ iw-bb-install.patch
+ iw-git-version.patch"
+
+_builddir="$srcdir"/$pkgname-$pkgver
+prepare() {
+ cd "$_builddir"
+ patch -p1 -i "$srcdir"/iw-bb-install.patch || return 1
+ patch -p1 -i "$srcdir"/iw-git-version.patch || return 1
+}
+
+build () {
+ cd "$_builddir"
+ make V=1 || return 1
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install || return 1
+}
+
+md5sums="9734080d8a5c4b768c5e0da665a48950 iw-0.9.18.tar.bz2
+7f8cfc205fdcfd49d04c8923c76f439a iw-bb-install.patch
+779d0e73df6e484c071149c9fb720551 iw-git-version.patch"
diff --git a/main/iw/iw-bb-install.patch b/main/iw/iw-bb-install.patch
new file mode 100644
index 000000000..b736dbf7c
--- /dev/null
+++ b/main/iw/iw-bb-install.patch
@@ -0,0 +1,15 @@
+--- ./Makefile.orig
++++ ./Makefile
+@@ -86,10 +86,10 @@
+ install: iw iw.8.gz
+ @$(NQ) ' INST iw'
+ $(Q)$(MKDIR) $(DESTDIR)$(SBINDIR)
+- $(Q)$(INSTALL) -m 755 -t $(DESTDIR)$(SBINDIR) iw
++ $(Q)$(INSTALL) -m 755 iw $(DESTDIR)$(SBINDIR)/
+ @$(NQ) ' INST iw.8'
+ $(Q)$(MKDIR) $(DESTDIR)$(MANDIR)/man8/
+- $(Q)$(INSTALL) -m 644 -t $(DESTDIR)$(MANDIR)/man8/ iw.8.gz
++ $(Q)$(INSTALL) -m 644 iw.8.gz $(DESTDIR)$(MANDIR)/man8/
+
+ clean:
+ $(Q)rm -f iw *.o *~ *.gz version.c *-stamp
diff --git a/main/iw/iw-git-version.patch b/main/iw/iw-git-version.patch
new file mode 100644
index 000000000..0286eb488
--- /dev/null
+++ b/main/iw/iw-git-version.patch
@@ -0,0 +1,11 @@
+--- ./version.sh.orig
++++ ./version.sh
+@@ -5,7 +5,7 @@
+
+ echo '#include "iw.h"' > "$OUT"
+
+-if head=`git rev-parse --verify HEAD 2>/dev/null`; then
++if [ -d .git ] && head=`git rev-parse --verify HEAD 2>/dev/null`; then
+ git update-index --refresh --unmerged > /dev/null
+ descr=$(git describe)
+
diff --git a/main/kamailio/APKBUILD b/main/kamailio/APKBUILD
index 123de89b7..df3fc74ea 100644
--- a/main/kamailio/APKBUILD
+++ b/main/kamailio/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=kamailio
pkgver=3.0.2
-pkgrel=5
+pkgrel=6
pkgdesc="Open Source SIP Server"
url="http://www.kamailio.org/"
pkgusers="kamailio"
@@ -11,14 +11,12 @@ license="GPL"
depends=
makedepends="bison flex expat-dev postgresql-dev pcre-dev mysql-dev
libxml2-dev curl-dev unixodbc-dev confuse-dev"
-install=
+install="$pkgname.pre-install $pkgname.pre-upgrade"
subpackages="$pkgname-doc $pkgname-postgres $pkgname-presence $pkgname-pcre
$pkgname-mediaproxy $pkgname-unixodbc $pkgname-mysql"
source="http://www.kamailio.org/pub/kamailio/$pkgver/src/kamailio-${pkgver}_src.tar.gz
kamailio.cfg
kamailio.initd
- kamailio.pre-install
- kamailio.post-install
kamailio-3-backslash.patch
"
@@ -169,6 +167,4 @@ unixodbc() {
md5sums="dd039e078a77032a423fb15f9685ad31 kamailio-3.0.2_src.tar.gz
a3c959ec568c43a905710e7d25cd8c25 kamailio.cfg
81100c479890a2a8c2628db22fdd1a0c kamailio.initd
-c646af2dd31f5c4289a2f802c873d98f kamailio.pre-install
-3fbaf633ff1620d0d526fc4047c7bed9 kamailio.post-install
36f81be3a082a81497e261ac8e6c5414 kamailio-3-backslash.patch"
diff --git a/main/kamailio/kamailio.post-install b/main/kamailio/kamailio.post-install
deleted file mode 100644
index 19fc932dd..000000000
--- a/main/kamailio/kamailio.post-install
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-chown -R kamailio:kamailio /var/run/kamailio
-chgrp kamailio /etc/kamailio/kamailio.cfg
-exit 0
diff --git a/main/kamailio/kamailio.pre-install b/main/kamailio/kamailio.pre-install
index 78dfa38bf..84b28849a 100644
--- a/main/kamailio/kamailio.pre-install
+++ b/main/kamailio/kamailio.pre-install
@@ -1,5 +1,6 @@
#!/bin/sh
-adduser -H -h /var/empty -s /bin/false -D kamailio 2>/dev/null
+addgroup kamailio 2>/dev/null
+adduser -H -h /var/empty -s /bin/false -D -G kamailio kamailio 2>/dev/null
exit 0
diff --git a/main/kamailio/kamailio.pre-upgrade b/main/kamailio/kamailio.pre-upgrade
new file mode 120000
index 000000000..d7cdaa807
--- /dev/null
+++ b/main/kamailio/kamailio.pre-upgrade
@@ -0,0 +1 @@
+kamailio.pre-install \ No newline at end of file
diff --git a/main/libc0.9.32/APKBUILD b/main/libc0.9.32/APKBUILD
index 328368895..bb3643117 100644
--- a/main/libc0.9.32/APKBUILD
+++ b/main/libc0.9.32/APKBUILD
@@ -3,7 +3,7 @@ _abiver=0.9.32
pkgname=libc$_abiver
_gitver=1006300816
pkgver=${_abiver}_alpha0_git$_gitver
-pkgrel=1
+pkgrel=2
pkgdesc="C library for developing embedded Linux systems"
url=http://uclibc.org
license="LGPL-2"
@@ -21,6 +21,7 @@ source="http://build.alpinelinux.org:8010/distfiles/$_snapfile
uclibc-lutimes.patch
uclibc-resolv-tls.patch
uclibc-gcc-workaround.patch
+ no-posix-spawn.patch
uclibcconfig.x86
uclibcconfig.i486
"
@@ -103,5 +104,6 @@ md5sums="b7af86c013378888fbd345c47ad21c3a libc0.9.32-0.9.32_alpha0_git100630081
4d0b8170e6580b47bf5775e65a6f081e uclibc-lutimes.patch
d08831b452acdeaa3037525ee617edab uclibc-resolv-tls.patch
a88b7f394c86dc7aa606c9e338e35515 uclibc-gcc-workaround.patch
+cb3bfda1619a04218282cd02e3cdb4da no-posix-spawn.patch
e2eb3bb00a0fe4d6f3d5b5c56b027bab uclibcconfig.x86
e2eb3bb00a0fe4d6f3d5b5c56b027bab uclibcconfig.i486"
diff --git a/main/libc0.9.32/no-posix-spawn.patch b/main/libc0.9.32/no-posix-spawn.patch
new file mode 100644
index 000000000..c87e56491
--- /dev/null
+++ b/main/libc0.9.32/no-posix-spawn.patch
@@ -0,0 +1,24 @@
+commit 177538eb191c297ac146c843ff68d80ecfe9a87b
+Author: Natanael Copa <ncopa@alpinelinux.org>
+Date: Fri Jul 30 07:51:45 2010 +0000
+
+ nptl: do not define _POSIX_SPAWN since its not implemented
+
+ Building things like vlc checks if _POSIX_SPAWN is defined. Since
+ posix_spawn is not implemented we dont define it.
+
+diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h b/libpthread/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h
+index 2550355..6fbdbb7 100644
+--- a/libpthread/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h
++++ b/libpthread/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h
+@@ -143,8 +143,10 @@
+ /* We support spinlocks. */
+ #define _POSIX_SPIN_LOCKS 200809L
+
++#if 0
+ /* The `spawn' function family is supported. */
+ #define _POSIX_SPAWN 200809L
++#endif
+
+ /* We have POSIX timers. */
+ #define _POSIX_TIMERS 200809L
diff --git a/main/libtheora/APKBUILD b/main/libtheora/APKBUILD
index 700a7c79f..f306c0581 100644
--- a/main/libtheora/APKBUILD
+++ b/main/libtheora/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libtheora
pkgver=1.1.1
-pkgrel=4
+pkgrel=5
pkgdesc="An open video codec developed by the Xiph.org"
url="http://www.xiph.org"
license="custom"
@@ -9,23 +9,37 @@ subpackages="$pkgname-dev $pkgname-doc $pkgname-examples"
depends=
makedepends="libvorbis-dev libogg-dev sdl-dev autoconf automake libtool"
source="http://downloads.xiph.org/releases/theora/$pkgname-$pkgver.tar.bz2
- libtheora-flags.patch"
+ libtheora-flags.patch
+ enc.patch
+ "
depends_dev="libogg-dev"
-build() {
- cd "$srcdir"/libtheora-$pkgver
- patch -p1 -i ../libtheora-flags.patch || return 1
+_builddir="$srcdir"/libtheora-$pkgver
+prepare() {
+ cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch)
+ msg "Applying $i"
+ patch -p1 -i "$srcdir"/$i || return 1
+ esac
+ done
aclocal -I m4 && autoconf && automake && libtoolize || return 1
+}
+build() {
+ cd "$_builddir"
./configure --prefix=/usr \
--enable-shared \
--disable-static || return 1
+ cd lib && make || return 1
+ cd ..
make || return 1
}
package() {
- cd "$srcdir"/libtheora-$pkgver
+ cd "$_builddir"
make DESTDIR="$pkgdir" install || return 1
install -m755 -d ""$pkgdir"/usr/share/licenses/$pkgname"
install -m644 LICENSE COPYING "$pkgdir"/usr/share/licenses/$pkgname/
@@ -33,11 +47,12 @@ package() {
examples() {
pkgdesc="Example applications for libtheora"
- cd "$srcdir"/libtheora-$pkgver/examples
+ cd "$_builddir"/examples
install -d "$subpkgdir"/usr/bin
install -m755 dump_psnr player_example dump_video encoder_example \
"$subpkgdir"/usr/bin/
}
md5sums="292ab65cedd5021d6b7ddd117e07cd8e libtheora-1.1.1.tar.bz2
-7cbab1ce1f52adb98e1c241515a27aca libtheora-flags.patch"
+7cbab1ce1f52adb98e1c241515a27aca libtheora-flags.patch
+5024b6c41351433bf0e8a354969f8efd enc.patch"
diff --git a/main/libtheora/enc.patch b/main/libtheora/enc.patch
new file mode 100644
index 000000000..ea604d28e
--- /dev/null
+++ b/main/libtheora/enc.patch
@@ -0,0 +1,11 @@
+--- ./lib/Makefile.am.orig
++++ ./lib/Makefile.am
+@@ -152,7 +154,7 @@
+ Version_script-enc theoraenc.exp
+ libtheoraenc_la_LDFLAGS = \
+ -version-info @THENC_LIB_CURRENT@:@THENC_LIB_REVISION@:@THENC_LIB_AGE@ \
+- @THEORAENC_LDFLAGS@ $(OGG_LIBS)
++ -ltheoradec @THEORAENC_LDFLAGS@ $(OGG_LIBS)
+
+ libtheora_la_SOURCES = \
+ $(decoder_sources) \
diff --git a/main/libusb-compat/APKBUILD b/main/libusb-compat/APKBUILD
index 9a7b687a7..cd4ac0232 100644
--- a/main/libusb-compat/APKBUILD
+++ b/main/libusb-compat/APKBUILD
@@ -1,13 +1,14 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libusb-compat
pkgver=0.1.0
-pkgrel=3
+pkgrel=4
pkgdesc="Compatility for older libusb"
url="http://libusb.sourceforge.net/"
license="LGPL"
subpackages="$pkgname-dev"
depends=
makedepends="libusb-dev"
+depends_dev="libusb-dev"
source="http://downloads.sourceforge.net/libusb/$pkgname-$pkgver.tar.bz2"
build() {
diff --git a/main/linux-grsec/APKBUILD b/main/linux-grsec/APKBUILD
index 07993f965..d3fca9fad 100644
--- a/main/linux-grsec/APKBUILD
+++ b/main/linux-grsec/APKBUILD
@@ -4,7 +4,7 @@ _flavor=grsec
pkgname=linux-${_flavor}
pkgver=2.6.32.16
_kernver=2.6.32
-pkgrel=3
+pkgrel=4
pkgdesc="Linux kernel with grsecurity"
url=http://grsecurity.net
depends="mkinitfs linux-firmware"
@@ -14,7 +14,7 @@ _config=${config:-kernelconfig.${CARCH:-x86}}
install=
source="ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_kernver.tar.bz2
ftp://ftp.kernel.org/pub/linux/kernel/v2.6/patch-$pkgver.bz2
- grsecurity-2.2.0-2.6.32.16-201007112149.patch
+ grsecurity-2.2.0-2.6.32.16-201007162107.patch
0001-grsec-revert-conflicting-flow-cache-changes.patch
0002-gre-fix-hard-header-destination-address-checking.patch
0003-ip_gre-include-route-header_len-in-max_headroom-calc.patch
@@ -149,7 +149,7 @@ firmware() {
md5sums="260551284ac224c3a43c4adac7df4879 linux-2.6.32.tar.bz2
744890f9651962ceae7663d44b19df65 patch-2.6.32.16.bz2
-34e3f7fe893034d29530ec1bd5584a33 grsecurity-2.2.0-2.6.32.16-201007112149.patch
+feb09c4053225d0d13272af504075636 grsecurity-2.2.0-2.6.32.16-201007162107.patch
1d247140abec49b96250aec9aa59b324 0001-grsec-revert-conflicting-flow-cache-changes.patch
437317f88ec13ace8d39c31983a41696 0002-gre-fix-hard-header-destination-address-checking.patch
151b29a161178ed39d62a08f21f3484d 0003-ip_gre-include-route-header_len-in-max_headroom-calc.patch
diff --git a/main/linux-grsec/grsecurity-2.2.0-2.6.32.16-201007112149.patch b/main/linux-grsec/grsecurity-2.2.0-2.6.32.16-201007162107.patch
index e9f38fe06..e74253e17 100644
--- a/main/linux-grsec/grsecurity-2.2.0-2.6.32.16-201007112149.patch
+++ b/main/linux-grsec/grsecurity-2.2.0-2.6.32.16-201007162107.patch
@@ -8137,7 +8137,7 @@ diff -urNp linux-2.6.32.16/arch/x86/include/asm/pgtable.h linux-2.6.32.16/arch/x
#endif /* __ASSEMBLY__ */
diff -urNp linux-2.6.32.16/arch/x86/include/asm/pgtable_types.h linux-2.6.32.16/arch/x86/include/asm/pgtable_types.h
--- linux-2.6.32.16/arch/x86/include/asm/pgtable_types.h 2010-07-05 14:14:00.000000000 -0400
-+++ linux-2.6.32.16/arch/x86/include/asm/pgtable_types.h 2010-07-09 14:50:35.000000000 -0400
++++ linux-2.6.32.16/arch/x86/include/asm/pgtable_types.h 2010-07-16 21:06:43.000000000 -0400
@@ -16,12 +16,11 @@
#define _PAGE_BIT_PSE 7 /* 4 MB (or 2MB) page */
#define _PAGE_BIT_PAT 7 /* on 4KB pages */
@@ -8205,7 +8205,43 @@ diff -urNp linux-2.6.32.16/arch/x86/include/asm/pgtable_types.h linux-2.6.32.16/
#define PGD_IDENT_ATTR 0x001 /* PRESENT (no other attributes) */
#endif
-@@ -278,7 +281,16 @@ typedef struct page *pgtable_t;
+@@ -202,7 +205,17 @@ static inline pgdval_t pgd_flags(pgd_t p
+ {
+ return native_pgd_val(pgd) & PTE_FLAGS_MASK;
+ }
++#endif
+
++#if PAGETABLE_LEVELS == 3
++#include <asm-generic/pgtable-nopud.h>
++#endif
++
++#if PAGETABLE_LEVELS == 2
++#include <asm-generic/pgtable-nopmd.h>
++#endif
++
++#ifndef __ASSEMBLY__
+ #if PAGETABLE_LEVELS > 3
+ typedef struct { pudval_t pud; } pud_t;
+
+@@ -216,8 +229,6 @@ static inline pudval_t native_pud_val(pu
+ return pud.pud;
+ }
+ #else
+-#include <asm-generic/pgtable-nopud.h>
+-
+ static inline pudval_t native_pud_val(pud_t pud)
+ {
+ return native_pgd_val(pud.pgd);
+@@ -237,8 +248,6 @@ static inline pmdval_t native_pmd_val(pm
+ return pmd.pmd;
+ }
+ #else
+-#include <asm-generic/pgtable-nopmd.h>
+-
+ static inline pmdval_t native_pmd_val(pmd_t pmd)
+ {
+ return native_pgd_val(pmd.pud.pgd);
+@@ -278,7 +287,16 @@ typedef struct page *pgtable_t;
extern pteval_t __supported_pte_mask;
extern void set_nx(void);
@@ -15827,7 +15863,7 @@ diff -urNp linux-2.6.32.16/arch/x86/lib/mmx_32.c linux-2.6.32.16/arch/x86/lib/mm
to += 64;
diff -urNp linux-2.6.32.16/arch/x86/lib/putuser.S linux-2.6.32.16/arch/x86/lib/putuser.S
--- linux-2.6.32.16/arch/x86/lib/putuser.S 2010-07-05 14:14:00.000000000 -0400
-+++ linux-2.6.32.16/arch/x86/lib/putuser.S 2010-07-11 20:00:44.000000000 -0400
++++ linux-2.6.32.16/arch/x86/lib/putuser.S 2010-07-16 21:06:43.000000000 -0400
@@ -15,7 +15,8 @@
#include <asm/thread_info.h>
#include <asm/errno.h>
@@ -15838,7 +15874,7 @@ diff -urNp linux-2.6.32.16/arch/x86/lib/putuser.S linux-2.6.32.16/arch/x86/lib/p
/*
* __put_user_X
-@@ -29,59 +30,156 @@
+@@ -29,59 +30,162 @@
* as they get called from within inline assembly.
*/
@@ -15848,6 +15884,12 @@ diff -urNp linux-2.6.32.16/arch/x86/lib/putuser.S linux-2.6.32.16/arch/x86/lib/p
#define EXIT ret ; \
CFI_ENDPROC
++#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
++#define _DEST %_ASM_CX,%_ASM_BX
++#else
++#define _DEST %_ASM_CX
++#endif
++
.text
ENTRY(__put_user_1)
ENTER
@@ -15859,18 +15901,19 @@ diff -urNp linux-2.6.32.16/arch/x86/lib/putuser.S linux-2.6.32.16/arch/x86/lib/p
+ GET_THREAD_INFO(%_ASM_BX)
cmp TI_addr_limit(%_ASM_BX),%_ASM_CX
jae bad_put_user
+-1: movb %al,(%_ASM_CX)
+
+#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
+ mov $PAX_USER_SHADOW_BASE,%_ASM_BX
+ cmp %_ASM_BX,%_ASM_CX
-+ jae 1234f
-+ add %_ASM_BX,%_ASM_CX
++ jb 1234f
++ xor %ebx,%ebx
+1234:
+#endif
+
+#endif
+
- 1: movb %al,(%_ASM_CX)
++1: movb %al,(_DEST)
+
+#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_MEMORY_UDEREF)
+ pushl %ss
@@ -15893,18 +15936,19 @@ diff -urNp linux-2.6.32.16/arch/x86/lib/putuser.S linux-2.6.32.16/arch/x86/lib/p
sub $1,%_ASM_BX
cmp %_ASM_BX,%_ASM_CX
jae bad_put_user
+-2: movw %ax,(%_ASM_CX)
+
+#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
+ mov $PAX_USER_SHADOW_BASE,%_ASM_BX
+ cmp %_ASM_BX,%_ASM_CX
-+ jae 1234f
-+ add %_ASM_BX,%_ASM_CX
++ jb 1234f
++ xor %ebx,%ebx
+1234:
+#endif
+
+#endif
+
- 2: movw %ax,(%_ASM_CX)
++2: movw %ax,(_DEST)
+
+#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_MEMORY_UDEREF)
+ pushl %ss
@@ -15927,18 +15971,19 @@ diff -urNp linux-2.6.32.16/arch/x86/lib/putuser.S linux-2.6.32.16/arch/x86/lib/p
sub $3,%_ASM_BX
cmp %_ASM_BX,%_ASM_CX
jae bad_put_user
+-3: movl %eax,(%_ASM_CX)
+
+#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
+ mov $PAX_USER_SHADOW_BASE,%_ASM_BX
+ cmp %_ASM_BX,%_ASM_CX
-+ jae 1234f
-+ add %_ASM_BX,%_ASM_CX
++ jb 1234f
++ xor %ebx,%ebx
+1234:
+#endif
+
+#endif
+
- 3: movl %eax,(%_ASM_CX)
++3: movl %eax,(_DEST)
+
+#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_MEMORY_UDEREF)
+ pushl %ss
@@ -15961,20 +16006,22 @@ diff -urNp linux-2.6.32.16/arch/x86/lib/putuser.S linux-2.6.32.16/arch/x86/lib/p
sub $7,%_ASM_BX
cmp %_ASM_BX,%_ASM_CX
jae bad_put_user
+-4: mov %_ASM_AX,(%_ASM_CX)
+
+#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
+ mov $PAX_USER_SHADOW_BASE,%_ASM_BX
+ cmp %_ASM_BX,%_ASM_CX
-+ jae 1234f
-+ add %_ASM_BX,%_ASM_CX
++ jb 1234f
++ xor %ebx,%ebx
+1234:
+#endif
+
+#endif
+
- 4: mov %_ASM_AX,(%_ASM_CX)
++4: mov %_ASM_AX,(_DEST)
#ifdef CONFIG_X86_32
- 5: movl %edx,4(%_ASM_CX)
+-5: movl %edx,4(%_ASM_CX)
++5: movl %edx,4(_DEST)
#endif
+
+#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_MEMORY_UDEREF)
@@ -18688,7 +18735,7 @@ diff -urNp linux-2.6.32.16/arch/x86/mm/pageattr-test.c linux-2.6.32.16/arch/x86/
struct split_state {
diff -urNp linux-2.6.32.16/arch/x86/mm/pat.c linux-2.6.32.16/arch/x86/mm/pat.c
--- linux-2.6.32.16/arch/x86/mm/pat.c 2010-07-05 14:14:00.000000000 -0400
-+++ linux-2.6.32.16/arch/x86/mm/pat.c 2010-07-09 14:50:35.000000000 -0400
++++ linux-2.6.32.16/arch/x86/mm/pat.c 2010-07-16 21:06:43.000000000 -0400
@@ -258,7 +258,7 @@ chk_conflict(struct memtype *new, struct
conflict:
@@ -18707,6 +18754,17 @@ diff -urNp linux-2.6.32.16/arch/x86/mm/pat.c linux-2.6.32.16/arch/x86/mm/pat.c
}
dprintk("free_memtype request 0x%Lx-0x%Lx\n", start, end);
+@@ -689,8 +689,8 @@ static inline int range_is_allowed(unsig
+ while (cursor < to) {
+ if (!devmem_is_allowed(pfn)) {
+ printk(KERN_INFO
+- "Program %s tried to access /dev/mem between %Lx->%Lx.\n",
+- current->comm, from, to);
++ "Program %s tried to access /dev/mem between %Lx->%Lx (%Lx).\n",
++ current->comm, from, to, cursor);
+ return 0;
+ }
+ cursor += PAGE_SIZE;
@@ -755,7 +755,7 @@ int kernel_map_sync_memtype(u64 base, un
printk(KERN_INFO
"%s:%d ioremap_change_attr failed %s "
@@ -20136,7 +20194,7 @@ diff -urNp linux-2.6.32.16/crypto/lrw.c linux-2.6.32.16/crypto/lrw.c
crypto_cipher_clear_flags(child, CRYPTO_TFM_REQ_MASK);
diff -urNp linux-2.6.32.16/Documentation/dontdiff linux-2.6.32.16/Documentation/dontdiff
--- linux-2.6.32.16/Documentation/dontdiff 2010-07-05 14:14:00.000000000 -0400
-+++ linux-2.6.32.16/Documentation/dontdiff 2010-07-09 14:50:35.000000000 -0400
++++ linux-2.6.32.16/Documentation/dontdiff 2010-07-16 21:06:43.000000000 -0400
@@ -3,6 +3,7 @@
*.bin
*.cpio
@@ -20145,15 +20203,18 @@ diff -urNp linux-2.6.32.16/Documentation/dontdiff linux-2.6.32.16/Documentation/
*.dsp
*.dvi
*.elf
-@@ -40,6 +41,7 @@
+@@ -38,8 +39,10 @@
+ *.tab.h
+ *.tex
*.ver
++*.vim
*.xml
*_MODULES
+*_reg_safe.h
*_vga16.c
*~
*.9
-@@ -49,11 +51,16 @@
+@@ -49,11 +52,16 @@
53c700_d.h
CVS
ChangeSet
@@ -20170,7 +20231,7 @@ diff -urNp linux-2.6.32.16/Documentation/dontdiff linux-2.6.32.16/Documentation/
SCCS
System.map*
TAGS
-@@ -76,7 +83,10 @@ btfixupprep
+@@ -76,7 +84,10 @@ btfixupprep
build
bvmlinux
bzImage*
@@ -20181,7 +20242,7 @@ diff -urNp linux-2.6.32.16/Documentation/dontdiff linux-2.6.32.16/Documentation/
comp*.log
compile.h*
conf
-@@ -103,13 +113,14 @@ gen_crc32table
+@@ -103,13 +114,14 @@ gen_crc32table
gen_init_cpio
genksyms
*_gray256.c
@@ -20197,7 +20258,7 @@ diff -urNp linux-2.6.32.16/Documentation/dontdiff linux-2.6.32.16/Documentation/
keywords.c
ksym.c*
ksym.h*
-@@ -133,7 +144,9 @@ mkboot
+@@ -133,7 +145,9 @@ mkboot
mkbugboot
mkcpustr
mkdep
@@ -20207,7 +20268,7 @@ diff -urNp linux-2.6.32.16/Documentation/dontdiff linux-2.6.32.16/Documentation/
mktables
mktree
modpost
-@@ -149,6 +162,7 @@ patches*
+@@ -149,6 +163,7 @@ patches*
pca200e.bin
pca200e_ecd.bin2
piggy.gz
@@ -20215,7 +20276,14 @@ diff -urNp linux-2.6.32.16/Documentation/dontdiff linux-2.6.32.16/Documentation/
piggyback
pnmtologo
ppc_defs.h*
-@@ -163,6 +177,7 @@ setup
+@@ -157,12 +172,14 @@ qconf
+ raid6altivec*.c
+ raid6int*.c
+ raid6tables.c
++regdb.c
+ relocs
+ series
+ setup
setup.bin
setup.elf
sImage
@@ -20223,7 +20291,7 @@ diff -urNp linux-2.6.32.16/Documentation/dontdiff linux-2.6.32.16/Documentation/
sm_tbl*
split-include
syscalltab.h
-@@ -186,14 +201,20 @@ version.h*
+@@ -186,14 +203,20 @@ version.h*
vmlinux
vmlinux-*
vmlinux.aout
@@ -44351,6 +44419,78 @@ diff -urNp linux-2.6.32.16/include/asm-generic/pgtable.h linux-2.6.32.16/include
#endif /* !__ASSEMBLY__ */
#endif /* _ASM_GENERIC_PGTABLE_H */
+diff -urNp linux-2.6.32.16/include/asm-generic/pgtable-nopmd.h linux-2.6.32.16/include/asm-generic/pgtable-nopmd.h
+--- linux-2.6.32.16/include/asm-generic/pgtable-nopmd.h 2010-07-05 14:14:00.000000000 -0400
++++ linux-2.6.32.16/include/asm-generic/pgtable-nopmd.h 2010-07-16 21:06:43.000000000 -0400
+@@ -1,14 +1,19 @@
+ #ifndef _PGTABLE_NOPMD_H
+ #define _PGTABLE_NOPMD_H
+
+-#ifndef __ASSEMBLY__
+-
+ #include <asm-generic/pgtable-nopud.h>
+
+-struct mm_struct;
+-
+ #define __PAGETABLE_PMD_FOLDED
+
++#define PMD_SHIFT PUD_SHIFT
++#define PTRS_PER_PMD 1
++#define PMD_SIZE (_AC(1,UL) << PMD_SHIFT)
++#define PMD_MASK (~(PMD_SIZE-1))
++
++#ifndef __ASSEMBLY__
++
++struct mm_struct;
++
+ /*
+ * Having the pmd type consist of a pud gets the size right, and allows
+ * us to conceptually access the pud entry that this pmd is folded into
+@@ -16,11 +21,6 @@ struct mm_struct;
+ */
+ typedef struct { pud_t pud; } pmd_t;
+
+-#define PMD_SHIFT PUD_SHIFT
+-#define PTRS_PER_PMD 1
+-#define PMD_SIZE (1UL << PMD_SHIFT)
+-#define PMD_MASK (~(PMD_SIZE-1))
+-
+ /*
+ * The "pud_xxx()" functions here are trivial for a folded two-level
+ * setup: the pmd is never bad, and a pmd always exists (as it's folded
+diff -urNp linux-2.6.32.16/include/asm-generic/pgtable-nopud.h linux-2.6.32.16/include/asm-generic/pgtable-nopud.h
+--- linux-2.6.32.16/include/asm-generic/pgtable-nopud.h 2010-07-05 14:14:00.000000000 -0400
++++ linux-2.6.32.16/include/asm-generic/pgtable-nopud.h 2010-07-16 21:06:43.000000000 -0400
+@@ -1,10 +1,15 @@
+ #ifndef _PGTABLE_NOPUD_H
+ #define _PGTABLE_NOPUD_H
+
+-#ifndef __ASSEMBLY__
+-
+ #define __PAGETABLE_PUD_FOLDED
+
++#define PUD_SHIFT PGDIR_SHIFT
++#define PTRS_PER_PUD 1
++#define PUD_SIZE (_AC(1,UL) << PUD_SHIFT)
++#define PUD_MASK (~(PUD_SIZE-1))
++
++#ifndef __ASSEMBLY__
++
+ /*
+ * Having the pud type consist of a pgd gets the size right, and allows
+ * us to conceptually access the pgd entry that this pud is folded into
+@@ -12,11 +17,6 @@
+ */
+ typedef struct { pgd_t pgd; } pud_t;
+
+-#define PUD_SHIFT PGDIR_SHIFT
+-#define PTRS_PER_PUD 1
+-#define PUD_SIZE (1UL << PUD_SHIFT)
+-#define PUD_MASK (~(PUD_SIZE-1))
+-
+ /*
+ * The "pgd_xxx()" functions here are trivial for a folded two-level
+ * setup: the pud is never bad, and a pud always exists (as it's folded
diff -urNp linux-2.6.32.16/include/asm-generic/vmlinux.lds.h linux-2.6.32.16/include/asm-generic/vmlinux.lds.h
--- linux-2.6.32.16/include/asm-generic/vmlinux.lds.h 2010-07-05 14:14:00.000000000 -0400
+++ linux-2.6.32.16/include/asm-generic/vmlinux.lds.h 2010-07-09 14:50:38.000000000 -0400
@@ -46493,6 +46633,18 @@ diff -urNp linux-2.6.32.16/include/linux/mmu_notifier.h linux-2.6.32.16/include/
})
#define ptep_clear_flush_young_notify(__vma, __address, __ptep) \
+diff -urNp linux-2.6.32.16/include/linux/mmzone.h linux-2.6.32.16/include/linux/mmzone.h
+--- linux-2.6.32.16/include/linux/mmzone.h 2010-07-05 14:14:00.000000000 -0400
++++ linux-2.6.32.16/include/linux/mmzone.h 2010-07-16 21:06:43.000000000 -0400
+@@ -343,7 +343,7 @@ struct zone {
+ unsigned long flags; /* zone flags, see below */
+
+ /* Zone statistics */
+- atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
++ atomic_long_unchecked_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
+
+ /*
+ * prev_priority holds the scanning priority for this zone. It is
diff -urNp linux-2.6.32.16/include/linux/mod_devicetable.h linux-2.6.32.16/include/linux/mod_devicetable.h
--- linux-2.6.32.16/include/linux/mod_devicetable.h 2010-07-05 14:14:00.000000000 -0400
+++ linux-2.6.32.16/include/linux/mod_devicetable.h 2010-07-09 14:50:38.000000000 -0400
@@ -47502,6 +47654,63 @@ diff -urNp linux-2.6.32.16/include/linux/vmalloc.h linux-2.6.32.16/include/linux
+})
+
#endif /* _LINUX_VMALLOC_H */
+diff -urNp linux-2.6.32.16/include/linux/vmstat.h linux-2.6.32.16/include/linux/vmstat.h
+--- linux-2.6.32.16/include/linux/vmstat.h 2010-07-05 14:14:00.000000000 -0400
++++ linux-2.6.32.16/include/linux/vmstat.h 2010-07-16 21:06:43.000000000 -0400
+@@ -136,18 +136,18 @@ static inline void vm_events_fold_cpu(in
+ /*
+ * Zone based page accounting with per cpu differentials.
+ */
+-extern atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
++extern atomic_long_unchecked_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
+
+ static inline void zone_page_state_add(long x, struct zone *zone,
+ enum zone_stat_item item)
+ {
+- atomic_long_add(x, &zone->vm_stat[item]);
+- atomic_long_add(x, &vm_stat[item]);
++ atomic_long_add_unchecked(x, &zone->vm_stat[item]);
++ atomic_long_add_unchecked(x, &vm_stat[item]);
+ }
+
+ static inline unsigned long global_page_state(enum zone_stat_item item)
+ {
+- long x = atomic_long_read(&vm_stat[item]);
++ long x = atomic_long_read_unchecked(&vm_stat[item]);
+ #ifdef CONFIG_SMP
+ if (x < 0)
+ x = 0;
+@@ -158,7 +158,7 @@ static inline unsigned long global_page_
+ static inline unsigned long zone_page_state(struct zone *zone,
+ enum zone_stat_item item)
+ {
+- long x = atomic_long_read(&zone->vm_stat[item]);
++ long x = atomic_long_read_unchecked(&zone->vm_stat[item]);
+ #ifdef CONFIG_SMP
+ if (x < 0)
+ x = 0;
+@@ -242,8 +242,8 @@ static inline void __mod_zone_page_state
+
+ static inline void __inc_zone_state(struct zone *zone, enum zone_stat_item item)
+ {
+- atomic_long_inc(&zone->vm_stat[item]);
+- atomic_long_inc(&vm_stat[item]);
++ atomic_long_inc_unchecked(&zone->vm_stat[item]);
++ atomic_long_inc_unchecked(&vm_stat[item]);
+ }
+
+ static inline void __inc_zone_page_state(struct page *page,
+@@ -254,8 +254,8 @@ static inline void __inc_zone_page_state
+
+ static inline void __dec_zone_state(struct zone *zone, enum zone_stat_item item)
+ {
+- atomic_long_dec(&zone->vm_stat[item]);
+- atomic_long_dec(&vm_stat[item]);
++ atomic_long_dec_unchecked(&zone->vm_stat[item]);
++ atomic_long_dec_unchecked(&vm_stat[item]);
+ }
+
+ static inline void __dec_zone_page_state(struct page *page,
diff -urNp linux-2.6.32.16/include/net/irda/ircomm_tty.h linux-2.6.32.16/include/net/irda/ircomm_tty.h
--- linux-2.6.32.16/include/net/irda/ircomm_tty.h 2010-07-05 14:14:00.000000000 -0400
+++ linux-2.6.32.16/include/net/irda/ircomm_tty.h 2010-07-09 14:50:38.000000000 -0400
@@ -51578,7 +51787,7 @@ diff -urNp linux-2.6.32.16/mm/mlock.c linux-2.6.32.16/mm/mlock.c
ret = do_mlockall(flags);
diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
--- linux-2.6.32.16/mm/mmap.c 2010-07-05 14:14:00.000000000 -0400
-+++ linux-2.6.32.16/mm/mmap.c 2010-07-09 14:50:38.000000000 -0400
++++ linux-2.6.32.16/mm/mmap.c 2010-07-16 21:06:43.000000000 -0400
@@ -45,6 +45,16 @@
#define arch_rebalance_pgtables(addr, len) (addr)
#endif
@@ -51793,22 +52002,18 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
if (addr & ~PAGE_MASK)
return addr;
-@@ -959,6 +1035,26 @@ unsigned long do_mmap_pgoff(struct file
+@@ -959,6 +1035,22 @@ unsigned long do_mmap_pgoff(struct file
vm_flags = calc_vm_prot_bits(prot) | calc_vm_flag_bits(flags) |
mm->def_flags | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC;
-+#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
-+ if (mm->pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) {
-+
+#ifdef CONFIG_PAX_MPROTECT
-+ if (mm->pax_flags & MF_PAX_MPROTECT) {
-+ if ((prot & (PROT_WRITE | PROT_EXEC)) != PROT_EXEC)
-+ vm_flags &= ~(VM_EXEC | VM_MAYEXEC);
-+ else
-+ vm_flags &= ~(VM_WRITE | VM_MAYWRITE);
-+ }
-+#endif
-+
++ if (mm->pax_flags & MF_PAX_MPROTECT) {
++ if ((prot & (PROT_WRITE | PROT_EXEC)) == (PROT_WRITE | PROT_EXEC))
++ return -EPERM;
++ if (!(prot & PROT_EXEC))
++ vm_flags &= ~VM_MAYEXEC;
++ else
++ vm_flags &= ~VM_MAYWRITE;
+ }
+#endif
+
@@ -51820,7 +52025,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
if (flags & MAP_LOCKED)
if (!can_do_mlock())
return -EPERM;
-@@ -970,6 +1066,7 @@ unsigned long do_mmap_pgoff(struct file
+@@ -970,6 +1062,7 @@ unsigned long do_mmap_pgoff(struct file
locked += mm->locked_vm;
lock_limit = current->signal->rlim[RLIMIT_MEMLOCK].rlim_cur;
lock_limit >>= PAGE_SHIFT;
@@ -51828,7 +52033,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
if (locked > lock_limit && !capable(CAP_IPC_LOCK))
return -EAGAIN;
}
-@@ -1043,6 +1140,9 @@ unsigned long do_mmap_pgoff(struct file
+@@ -1043,6 +1136,9 @@ unsigned long do_mmap_pgoff(struct file
if (error)
return error;
@@ -51838,7 +52043,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
return mmap_region(file, addr, len, flags, vm_flags, pgoff);
}
EXPORT_SYMBOL(do_mmap_pgoff);
-@@ -1055,10 +1155,10 @@ EXPORT_SYMBOL(do_mmap_pgoff);
+@@ -1055,10 +1151,10 @@ EXPORT_SYMBOL(do_mmap_pgoff);
*/
int vma_wants_writenotify(struct vm_area_struct *vma)
{
@@ -51851,7 +52056,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
return 0;
/* The backer wishes to know when pages are first written to? */
-@@ -1107,14 +1207,24 @@ unsigned long mmap_region(struct file *f
+@@ -1107,14 +1203,24 @@ unsigned long mmap_region(struct file *f
unsigned long charged = 0;
struct inode *inode = file ? file->f_path.dentry->d_inode : NULL;
@@ -51878,7 +52083,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
}
/* Check against address space limit. */
-@@ -1163,6 +1273,16 @@ munmap_back:
+@@ -1163,6 +1269,16 @@ munmap_back:
goto unacct_error;
}
@@ -51895,7 +52100,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
vma->vm_mm = mm;
vma->vm_start = addr;
vma->vm_end = addr + len;
-@@ -1185,6 +1305,19 @@ munmap_back:
+@@ -1185,6 +1301,19 @@ munmap_back:
error = file->f_op->mmap(file, vma);
if (error)
goto unmap_and_free_vma;
@@ -51915,7 +52120,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
if (vm_flags & VM_EXECUTABLE)
added_exe_file_vma(mm);
-@@ -1208,6 +1341,11 @@ munmap_back:
+@@ -1208,6 +1337,11 @@ munmap_back:
vma_link(mm, vma, prev, rb_link, rb_parent);
file = vma->vm_file;
@@ -51927,7 +52132,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
/* Once vma denies write, undo our temporary denial count */
if (correct_wcount)
atomic_inc(&inode->i_writecount);
-@@ -1216,6 +1354,7 @@ out:
+@@ -1216,6 +1350,7 @@ out:
mm->total_vm += len >> PAGE_SHIFT;
vm_stat_account(mm, vm_flags, file, len >> PAGE_SHIFT);
@@ -51935,7 +52140,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
if (vm_flags & VM_LOCKED) {
/*
* makes pages present; downgrades, drops, reacquires mmap_sem
-@@ -1238,6 +1377,12 @@ unmap_and_free_vma:
+@@ -1238,6 +1373,12 @@ unmap_and_free_vma:
unmap_region(mm, vma, prev, vma->vm_start, vma->vm_end);
charged = 0;
free_vma:
@@ -51948,7 +52153,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
kmem_cache_free(vm_area_cachep, vma);
unacct_error:
if (charged)
-@@ -1271,6 +1416,10 @@ arch_get_unmapped_area(struct file *filp
+@@ -1271,6 +1412,10 @@ arch_get_unmapped_area(struct file *filp
if (flags & MAP_FIXED)
return addr;
@@ -51959,7 +52164,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
if (addr) {
addr = PAGE_ALIGN(addr);
vma = find_vma(mm, addr);
-@@ -1279,10 +1428,10 @@ arch_get_unmapped_area(struct file *filp
+@@ -1279,10 +1424,10 @@ arch_get_unmapped_area(struct file *filp
return addr;
}
if (len > mm->cached_hole_size) {
@@ -51973,7 +52178,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
}
full_search:
-@@ -1293,9 +1442,8 @@ full_search:
+@@ -1293,9 +1438,8 @@ full_search:
* Start a new search - just in case we missed
* some holes.
*/
@@ -51985,7 +52190,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
mm->cached_hole_size = 0;
goto full_search;
}
-@@ -1317,10 +1465,16 @@ full_search:
+@@ -1317,10 +1461,16 @@ full_search:
void arch_unmap_area(struct mm_struct *mm, unsigned long addr)
{
@@ -52003,7 +52208,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
mm->free_area_cache = addr;
mm->cached_hole_size = ~0UL;
}
-@@ -1338,7 +1492,7 @@ arch_get_unmapped_area_topdown(struct fi
+@@ -1338,7 +1488,7 @@ arch_get_unmapped_area_topdown(struct fi
{
struct vm_area_struct *vma;
struct mm_struct *mm = current->mm;
@@ -52012,7 +52217,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
/* requested length too big for entire address space */
if (len > TASK_SIZE)
-@@ -1347,6 +1501,10 @@ arch_get_unmapped_area_topdown(struct fi
+@@ -1347,6 +1497,10 @@ arch_get_unmapped_area_topdown(struct fi
if (flags & MAP_FIXED)
return addr;
@@ -52023,7 +52228,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
/* requesting a specific address */
if (addr) {
addr = PAGE_ALIGN(addr);
-@@ -1404,13 +1562,21 @@ bottomup:
+@@ -1404,13 +1558,21 @@ bottomup:
* can happen with large stack limits and large mmap()
* allocations.
*/
@@ -52047,7 +52252,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
mm->cached_hole_size = ~0UL;
return addr;
-@@ -1419,6 +1585,12 @@ bottomup:
+@@ -1419,6 +1581,12 @@ bottomup:
void arch_unmap_area_topdown(struct mm_struct *mm, unsigned long addr)
{
@@ -52060,7 +52265,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
/*
* Is this a new hole at the highest possible address?
*/
-@@ -1426,8 +1598,10 @@ void arch_unmap_area_topdown(struct mm_s
+@@ -1426,8 +1594,10 @@ void arch_unmap_area_topdown(struct mm_s
mm->free_area_cache = addr;
/* dont allow allocations above current base */
@@ -52072,7 +52277,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
}
unsigned long
-@@ -1535,6 +1709,27 @@ out:
+@@ -1535,6 +1705,27 @@ out:
return prev ? prev->vm_next : vma;
}
@@ -52100,7 +52305,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
/*
* Verify that the stack growth is acceptable and
* update accounting. This is shared with both the
-@@ -1551,6 +1746,7 @@ static int acct_stack_growth(struct vm_a
+@@ -1551,6 +1742,7 @@ static int acct_stack_growth(struct vm_a
return -ENOMEM;
/* Stack limit test */
@@ -52108,7 +52313,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
if (size > rlim[RLIMIT_STACK].rlim_cur)
return -ENOMEM;
-@@ -1560,6 +1756,7 @@ static int acct_stack_growth(struct vm_a
+@@ -1560,6 +1752,7 @@ static int acct_stack_growth(struct vm_a
unsigned long limit;
locked = mm->locked_vm + grow;
limit = rlim[RLIMIT_MEMLOCK].rlim_cur >> PAGE_SHIFT;
@@ -52116,7 +52321,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
if (locked > limit && !capable(CAP_IPC_LOCK))
return -ENOMEM;
}
-@@ -1595,35 +1792,40 @@ static
+@@ -1595,35 +1788,40 @@ static
#endif
int expand_upwards(struct vm_area_struct *vma, unsigned long address)
{
@@ -52167,7 +52372,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
unsigned long size, grow;
size = address - vma->vm_start;
-@@ -1633,6 +1835,8 @@ int expand_upwards(struct vm_area_struct
+@@ -1633,6 +1831,8 @@ int expand_upwards(struct vm_area_struct
if (!error)
vma->vm_end = address;
}
@@ -52176,7 +52381,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
anon_vma_unlock(vma);
return error;
}
-@@ -1644,7 +1848,8 @@ int expand_upwards(struct vm_area_struct
+@@ -1644,7 +1844,8 @@ int expand_upwards(struct vm_area_struct
static int expand_downwards(struct vm_area_struct *vma,
unsigned long address)
{
@@ -52186,7 +52391,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
/*
* We must make sure the anon_vma is allocated
-@@ -1658,6 +1863,15 @@ static int expand_downwards(struct vm_ar
+@@ -1658,6 +1859,15 @@ static int expand_downwards(struct vm_ar
if (error)
return error;
@@ -52202,7 +52407,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
anon_vma_lock(vma);
/*
-@@ -1667,9 +1881,15 @@ static int expand_downwards(struct vm_ar
+@@ -1667,9 +1877,15 @@ static int expand_downwards(struct vm_ar
*/
/* Somebody else might have raced and expanded it already */
@@ -52219,7 +52424,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
size = vma->vm_end - address;
grow = (vma->vm_start - address) >> PAGE_SHIFT;
-@@ -1677,9 +1897,20 @@ static int expand_downwards(struct vm_ar
+@@ -1677,9 +1893,20 @@ static int expand_downwards(struct vm_ar
if (!error) {
vma->vm_start = address;
vma->vm_pgoff -= grow;
@@ -52240,7 +52445,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
return error;
}
-@@ -1755,6 +1986,13 @@ static void remove_vma_list(struct mm_st
+@@ -1755,6 +1982,13 @@ static void remove_vma_list(struct mm_st
do {
long nrpages = vma_pages(vma);
@@ -52254,7 +52459,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
mm->total_vm -= nrpages;
vm_stat_account(mm, vma->vm_flags, vma->vm_file, -nrpages);
vma = remove_vma(vma);
-@@ -1799,6 +2037,16 @@ detach_vmas_to_be_unmapped(struct mm_str
+@@ -1799,6 +2033,16 @@ detach_vmas_to_be_unmapped(struct mm_str
insertion_point = (prev ? &prev->vm_next : &mm->mmap);
do {
@@ -52271,7 +52476,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
rb_erase(&vma->vm_rb, &mm->mm_rb);
mm->map_count--;
tail_vma = vma;
-@@ -1824,10 +2072,25 @@ int split_vma(struct mm_struct * mm, str
+@@ -1824,10 +2068,25 @@ int split_vma(struct mm_struct * mm, str
struct mempolicy *pol;
struct vm_area_struct *new;
@@ -52297,7 +52502,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
if (mm->map_count >= sysctl_max_map_count)
return -ENOMEM;
-@@ -1835,6 +2098,16 @@ int split_vma(struct mm_struct * mm, str
+@@ -1835,6 +2094,16 @@ int split_vma(struct mm_struct * mm, str
if (!new)
return -ENOMEM;
@@ -52314,7 +52519,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
/* most fields are the same, copy all, and then fixup */
*new = *vma;
-@@ -1845,8 +2118,29 @@ int split_vma(struct mm_struct * mm, str
+@@ -1845,8 +2114,29 @@ int split_vma(struct mm_struct * mm, str
new->vm_pgoff += ((addr - vma->vm_start) >> PAGE_SHIFT);
}
@@ -52344,7 +52549,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
kmem_cache_free(vm_area_cachep, new);
return PTR_ERR(pol);
}
-@@ -1867,6 +2161,28 @@ int split_vma(struct mm_struct * mm, str
+@@ -1867,6 +2157,28 @@ int split_vma(struct mm_struct * mm, str
else
vma_adjust(vma, vma->vm_start, addr, vma->vm_pgoff, new);
@@ -52373,13 +52578,13 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
return 0;
}
-@@ -1875,11 +2191,30 @@ int split_vma(struct mm_struct * mm, str
+@@ -1875,11 +2187,30 @@ int split_vma(struct mm_struct * mm, str
* work. This now handles partial unmappings.
* Jeremy Fitzhardinge <jeremy@goop.org>
*/
+#ifdef CONFIG_PAX_SEGMEXEC
- int do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
- {
++int do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
++{
+ int ret = __do_munmap(mm, start, len);
+ if (ret || !(mm->pax_flags & MF_PAX_SEGMEXEC))
+ return ret;
@@ -52389,9 +52594,9 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
+
+int __do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
+#else
-+int do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
+ int do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
+#endif
-+{
+ {
unsigned long end;
struct vm_area_struct *vma, *prev, *last;
@@ -52404,7 +52609,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
if ((start & ~PAGE_MASK) || start > TASK_SIZE || len > TASK_SIZE-start)
return -EINVAL;
-@@ -1943,6 +2278,8 @@ int do_munmap(struct mm_struct *mm, unsi
+@@ -1943,6 +2274,8 @@ int do_munmap(struct mm_struct *mm, unsi
/* Fix up all other VM information */
remove_vma_list(mm, vma);
@@ -52413,7 +52618,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
return 0;
}
-@@ -1955,22 +2292,18 @@ SYSCALL_DEFINE2(munmap, unsigned long, a
+@@ -1955,22 +2288,18 @@ SYSCALL_DEFINE2(munmap, unsigned long, a
profile_munmap(addr);
@@ -52442,7 +52647,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
/*
* this is really a simplified "do_mmap". it only handles
* anonymous maps. eventually we may be able to do some
-@@ -1984,6 +2317,7 @@ unsigned long do_brk(unsigned long addr,
+@@ -1984,6 +2313,7 @@ unsigned long do_brk(unsigned long addr,
struct rb_node ** rb_link, * rb_parent;
pgoff_t pgoff = addr >> PAGE_SHIFT;
int error;
@@ -52450,7 +52655,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
len = PAGE_ALIGN(len);
if (!len)
-@@ -1995,16 +2329,30 @@ unsigned long do_brk(unsigned long addr,
+@@ -1995,16 +2325,30 @@ unsigned long do_brk(unsigned long addr,
flags = VM_DATA_DEFAULT_FLAGS | VM_ACCOUNT | mm->def_flags;
@@ -52482,7 +52687,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
locked += mm->locked_vm;
lock_limit = current->signal->rlim[RLIMIT_MEMLOCK].rlim_cur;
lock_limit >>= PAGE_SHIFT;
-@@ -2021,22 +2369,22 @@ unsigned long do_brk(unsigned long addr,
+@@ -2021,22 +2365,22 @@ unsigned long do_brk(unsigned long addr,
/*
* Clear old maps. this also does some error checking for us
*/
@@ -52509,7 +52714,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
return -ENOMEM;
/* Can we just expand an old private anonymous mapping? */
-@@ -2050,7 +2398,7 @@ unsigned long do_brk(unsigned long addr,
+@@ -2050,7 +2394,7 @@ unsigned long do_brk(unsigned long addr,
*/
vma = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL);
if (!vma) {
@@ -52518,7 +52723,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
return -ENOMEM;
}
-@@ -2062,11 +2410,12 @@ unsigned long do_brk(unsigned long addr,
+@@ -2062,11 +2406,12 @@ unsigned long do_brk(unsigned long addr,
vma->vm_page_prot = vm_get_page_prot(flags);
vma_link(mm, vma, prev, rb_link, rb_parent);
out:
@@ -52533,7 +52738,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
return addr;
}
-@@ -2113,8 +2462,10 @@ void exit_mmap(struct mm_struct *mm)
+@@ -2113,8 +2458,10 @@ void exit_mmap(struct mm_struct *mm)
* Walk the list again, actually closing and freeing it,
* with preemption enabled, without holding any MM locks.
*/
@@ -52545,7 +52750,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
BUG_ON(mm->nr_ptes > (FIRST_USER_ADDRESS+PMD_SIZE-1)>>PMD_SHIFT);
}
-@@ -2128,6 +2479,10 @@ int insert_vm_struct(struct mm_struct *
+@@ -2128,6 +2475,10 @@ int insert_vm_struct(struct mm_struct *
struct vm_area_struct * __vma, * prev;
struct rb_node ** rb_link, * rb_parent;
@@ -52556,7 +52761,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
/*
* The vm_pgoff of a purely anonymous vma should be irrelevant
* until its first write fault, when page's anon_vma and index
-@@ -2150,7 +2505,22 @@ int insert_vm_struct(struct mm_struct *
+@@ -2150,7 +2501,22 @@ int insert_vm_struct(struct mm_struct *
if ((vma->vm_flags & VM_ACCOUNT) &&
security_vm_enough_memory_mm(mm, vma_pages(vma)))
return -ENOMEM;
@@ -52579,7 +52784,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
return 0;
}
-@@ -2168,6 +2538,8 @@ struct vm_area_struct *copy_vma(struct v
+@@ -2168,6 +2534,8 @@ struct vm_area_struct *copy_vma(struct v
struct rb_node **rb_link, *rb_parent;
struct mempolicy *pol;
@@ -52588,7 +52793,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
/*
* If anonymous vma has not yet been faulted, update new pgoff
* to match new location, to increase its chance of merging.
-@@ -2211,6 +2583,35 @@ struct vm_area_struct *copy_vma(struct v
+@@ -2211,6 +2579,35 @@ struct vm_area_struct *copy_vma(struct v
return new_vma;
}
@@ -52624,7 +52829,7 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
/*
* Return true if the calling process may expand its vm space by the passed
* number of pages
-@@ -2221,7 +2622,7 @@ int may_expand_vm(struct mm_struct *mm,
+@@ -2221,7 +2618,7 @@ int may_expand_vm(struct mm_struct *mm,
unsigned long lim;
lim = current->signal->rlim[RLIMIT_AS].rlim_cur >> PAGE_SHIFT;
@@ -52633,16 +52838,18 @@ diff -urNp linux-2.6.32.16/mm/mmap.c linux-2.6.32.16/mm/mmap.c
if (cur + npages > lim)
return 0;
return 1;
-@@ -2290,6 +2691,15 @@ int install_special_mapping(struct mm_st
+@@ -2290,6 +2687,17 @@ int install_special_mapping(struct mm_st
vma->vm_start = addr;
vma->vm_end = addr + len;
+#ifdef CONFIG_PAX_MPROTECT
+ if (mm->pax_flags & MF_PAX_MPROTECT) {
-+ if ((vm_flags & (VM_WRITE | VM_EXEC)) != VM_EXEC)
-+ vm_flags &= ~(VM_EXEC | VM_MAYEXEC);
++ if ((vm_flags & (VM_WRITE | VM_EXEC)) == (VM_WRITE | VM_EXEC))
++ return -EPERM;
++ if (!(vm_flags & VM_EXEC))
++ vm_flags &= ~VM_MAYEXEC;
+ else
-+ vm_flags &= ~(VM_WRITE | VM_MAYWRITE);
++ vm_flags &= ~VM_MAYWRITE;
+ }
+#endif
+
@@ -53927,6 +54134,57 @@ diff -urNp linux-2.6.32.16/mm/vmalloc.c linux-2.6.32.16/mm/vmalloc.c
void *vmalloc_32_user(unsigned long size)
{
struct vm_struct *area;
+diff -urNp linux-2.6.32.16/mm/vmstat.c linux-2.6.32.16/mm/vmstat.c
+--- linux-2.6.32.16/mm/vmstat.c 2010-07-05 14:14:00.000000000 -0400
++++ linux-2.6.32.16/mm/vmstat.c 2010-07-16 21:06:43.000000000 -0400
+@@ -74,7 +74,7 @@ void vm_events_fold_cpu(int cpu)
+ *
+ * vm_stat contains the global counters
+ */
+-atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
++atomic_long_unchecked_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
+ EXPORT_SYMBOL(vm_stat);
+
+ #ifdef CONFIG_SMP
+@@ -311,7 +311,7 @@ void refresh_cpu_vm_stats(int cpu)
+ v = p->vm_stat_diff[i];
+ p->vm_stat_diff[i] = 0;
+ local_irq_restore(flags);
+- atomic_long_add(v, &zone->vm_stat[i]);
++ atomic_long_add_unchecked(v, &zone->vm_stat[i]);
+ global_diff[i] += v;
+ #ifdef CONFIG_NUMA
+ /* 3 seconds idle till flush */
+@@ -349,7 +349,7 @@ void refresh_cpu_vm_stats(int cpu)
+
+ for (i = 0; i < NR_VM_ZONE_STAT_ITEMS; i++)
+ if (global_diff[i])
+- atomic_long_add(global_diff[i], &vm_stat[i]);
++ atomic_long_add_unchecked(global_diff[i], &vm_stat[i]);
+ }
+
+ #endif
+@@ -940,10 +940,16 @@ static int __init setup_vmstat(void)
+ start_cpu_timer(cpu);
+ #endif
+ #ifdef CONFIG_PROC_FS
+- proc_create("buddyinfo", S_IRUGO, NULL, &fragmentation_file_operations);
+- proc_create("pagetypeinfo", S_IRUGO, NULL, &pagetypeinfo_file_ops);
+- proc_create("vmstat", S_IRUGO, NULL, &proc_vmstat_file_operations);
+- proc_create("zoneinfo", S_IRUGO, NULL, &proc_zoneinfo_file_operations);
++ {
++ mode_t gr_mode = S_IRUGO;
++#ifdef CONFIG_GRKERNSEC_PROC_ADD
++ gr_mode = S_IRUSR;
++#endif
++ proc_create("buddyinfo", gr_mode, NULL, &fragmentation_file_operations);
++ proc_create("pagetypeinfo", gr_mode, NULL, &pagetypeinfo_file_ops);
++ proc_create("vmstat", gr_mode, NULL, &proc_vmstat_file_operations);
++ proc_create("zoneinfo", gr_mode, NULL, &proc_zoneinfo_file_operations);
++ }
+ #endif
+ return 0;
+ }
diff -urNp linux-2.6.32.16/net/8021q/vlan.c linux-2.6.32.16/net/8021q/vlan.c
--- linux-2.6.32.16/net/8021q/vlan.c 2010-07-05 14:14:00.000000000 -0400
+++ linux-2.6.32.16/net/8021q/vlan.c 2010-07-09 14:50:38.000000000 -0400
diff --git a/testing/live-media/APKBUILD b/main/live-media/APKBUILD
index 0bd0e1671..58ecbd651 100644
--- a/testing/live-media/APKBUILD
+++ b/main/live-media/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=live-media
-pkgver=2010.01.22
-pkgrel=1
+pkgver=2010.03.08
+pkgrel=0
pkgdesc="A set of C++ libraries for multimedia streaming"
url="http://live555.com/liveMedia"
license="LGPL"
@@ -41,4 +41,4 @@ package() {
done
}
-md5sums="2964edc82256170ffc874c7d3b0e5b06 live.2010.01.22.tar.gz"
+md5sums="2c685c004695afce064ec780e58409cc live.2010.03.08.tar.gz"
diff --git a/main/lua-xml/APKBUILD b/main/lua-xml/APKBUILD
new file mode 100644
index 000000000..619a4d256
--- /dev/null
+++ b/main/lua-xml/APKBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=lua-xml
+_name=LuaXML
+pkgver=090910
+pkgrel=0
+pkgdesc="a minimal set of functions for the processing of XML data in Lua"
+url="http://www.viremo.de/LuaXML"
+license="MIT"
+depends=
+makedepends="lua-dev"
+install=
+subpackages=
+source="http://www.viremo.de/LuaXML/LuaXML_$pkgver.zip"
+
+_builddir="$srcdir"
+
+prepare() {
+ cd "$_builddir"
+}
+
+build() {
+ cd "$_builddir"
+ make || return 1
+}
+
+package() {
+ cd "$_builddir"
+ install -m755 -D LuaXML_lib.so "$pkgdir"/usr/lib/lua/5.1/LuaXML_lib.so\
+ || return 1
+ install -m755 -D LuaXml.lua "$pkgdir"/usr/share/lua/5.1/LuaXml.lua \
+ || return 1
+}
+
+md5sums="de690d73a34bdc7d3b4f0307a40afd87 LuaXML_090910.zip"
diff --git a/main/lvm2/APKBUILD b/main/lvm2/APKBUILD
index ffc932c74..49e88413e 100644
--- a/main/lvm2/APKBUILD
+++ b/main/lvm2/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lvm2
-pkgver=2.02.70
+pkgver=2.02.72
pkgrel=0
pkgdesc="Logical Volume Manager 2 utilities"
url="http://sourceware.org/lvm2/"
@@ -47,6 +47,6 @@ dm() {
mv "$pkgdir"/sbin/dm* "$subpkgdir"/sbin/
}
-md5sums="39c26d5a821754cc347d7a19e82d4a24 LVM2.2.02.70.tgz
+md5sums="a7d0d1235a589869bd13cde0f0d7375d LVM2.2.02.72.tgz
6f65f902cf19f144a42b8d6aceadf395 lvm.initd
ec36d5fe4561220304e406c5c797e71f lvm.confd"
diff --git a/main/micro-tetris/APKBUILD b/main/micro-tetris/APKBUILD
new file mode 100644
index 000000000..80fa5b69b
--- /dev/null
+++ b/main/micro-tetris/APKBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Natanael Copa <ncopa@alpinepinux.org>
+pkgname=micro-tetris
+pkgver=1.2.0
+pkgrel=0
+pkgdesc="Micro Tetris, based on 1989 IOCCC Obfuscated Tetris"
+url="http://git.vmlinux.org/tetris.git/"
+license="ISC"
+depends=
+makedepends=
+install=
+subpackages=
+source="ftp://ftp.vmlinux.org/pub/People/jocke/micro-tetris/tetris-$pkgver.tar.bz2"
+
+_builddir="$srcdir"/tetris-$pkgver
+prepare() {
+ cd "$_builddir"
+ sed -i -e "/install/s:bin/tetris:usr/bin/tetris:" Makefile
+}
+
+build() {
+ cd "$_builddir"
+ make || return 1
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install
+}
+
+md5sums="017942718be2760f1b060e63d6799fed tetris-1.2.0.tar.bz2"
diff --git a/main/mkinitfs/APKBUILD b/main/mkinitfs/APKBUILD
index 17fe29ee2..af86c94ed 100644
--- a/main/mkinitfs/APKBUILD
+++ b/main/mkinitfs/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=mkinitfs
-pkgver=2.0_rc8
+pkgver=2.0_rc9
pkgrel=0
pkgdesc="Tool to generate initramfs images for Alpine"
url=http://git.alpinelinux.org/cgit/mkinitfs
@@ -19,4 +19,4 @@ package() {
cd "$srcdir"/$pkgname-$pkgver
make install DESTDIR="$pkgdir" || return 1
}
-md5sums="ca9280a78f1e712283df2c2f4a0ca41b mkinitfs-2.0_rc8.tar.bz2"
+md5sums="54eb3779916b61c91f91c608dc99667a mkinitfs-2.0_rc9.tar.bz2"
diff --git a/main/mpd/APKBUILD b/main/mpd/APKBUILD
index 214d41c24..4c2bbef66 100644
--- a/main/mpd/APKBUILD
+++ b/main/mpd/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Sebastian Wicki <gandro@gmx.net>
# Maintainer: Natanael Copa <natanael.copa@gmail.com>
pkgname=mpd
-pkgver=0.15.11
+pkgver=0.15.12
pkgrel=0
pkgdesc="Music daemon that plays MP3, FLAC, and Ogg Vorbis files"
url="http://musicpd.org"
@@ -47,6 +47,6 @@ package() {
"$pkgdir"/var/lib/mpd/playlists \
"$pkgdir"/var/lib/mpd/music
}
-md5sums="a8f8afc641db6f789281fe14fcc8d8a9 mpd-0.15.11.tar.bz2
+md5sums="b00b289a20ecd9accfd4972d6395135c mpd-0.15.12.tar.bz2
31d1515232d688d610d1664a0fb2a6a0 mpd.initd
dbd301041953a5cf9c2b9de8f23eb6bb mpd.confd"
diff --git a/main/net-snmp/APKBUILD b/main/net-snmp/APKBUILD
index f7cd09875..144fd4e3c 100644
--- a/main/net-snmp/APKBUILD
+++ b/main/net-snmp/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Carlo Landmeter <clandmeter@gmail.com>
pkgname=net-snmp
pkgver=5.5
-pkgrel=2
+pkgrel=3
pkgdesc="Simple Network Management Protocol"
url="http://www.net-snmp.org/"
license="GPL"
@@ -27,7 +27,7 @@ build() {
LDFLAGS="$LDFLAGS -lpthread"
./configure --prefix=/usr \
- --sysconfdir=/etc/snmp \
+ --sysconfdir=/etc \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--with-default-snmp-version="3" \
diff --git a/main/openldap/APKBUILD b/main/openldap/APKBUILD
index 51f06cb6a..adc0e31da 100644
--- a/main/openldap/APKBUILD
+++ b/main/openldap/APKBUILD
@@ -1,12 +1,13 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=openldap
pkgver=2.4.23
-pkgrel=0
+pkgrel=1
pkgdesc="LDAP Server"
url="http://www.openldap.org/"
license="custom"
depends=
makedepends="db-dev openssl-dev groff unixodbc-dev libtool"
+depends_dev="openssl-dev"
subpackages="$pkgname-dev $pkgname-doc libldap $pkgname-back-sql:sql
$pkgname-back-bdb:bdb $pkgname-back-hdb:hdb $pkgname-back-ldap:ldap
$pkgname-back-meta:meta $pkgname-back-monitor:monitor"
diff --git a/main/openssl/0001-crypto-hmac-support-EVP_MD_CTX_FLAG_ONESHOT-and-set-.patch b/main/openssl/0001-crypto-hmac-support-EVP_MD_CTX_FLAG_ONESHOT-and-set-.patch
index 514ed0d83..1c837bccb 100644
--- a/main/openssl/0001-crypto-hmac-support-EVP_MD_CTX_FLAG_ONESHOT-and-set-.patch
+++ b/main/openssl/0001-crypto-hmac-support-EVP_MD_CTX_FLAG_ONESHOT-and-set-.patch
@@ -1,7 +1,7 @@
-From 16a40910dd3ae5ab702ee1274f9e2f08362e4474 Mon Sep 17 00:00:00 2001
+From 74e428937523858363f26f89d86db24932447ca1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
Date: Fri, 4 Jun 2010 09:48:39 +0300
-Subject: [PATCH 1/3] crypto/hmac: support EVP_MD_CTX_FLAG_ONESHOT and set it properly
+Subject: [PATCH 1/5] crypto/hmac: support EVP_MD_CTX_FLAG_ONESHOT and set it properly
Some engines (namely VIA C7 Padlock) work only if EVP_MD_CTX_FLAG_ONESHOT
is set before final update. This is because some crypto accelerators cannot
@@ -16,7 +16,7 @@ though.
1 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/crypto/hmac/hmac.c b/crypto/hmac/hmac.c
-index 45015fe..7ce2a50 100644
+index 45015fe..55ad15c 100644
--- a/crypto/hmac/hmac.c
+++ b/crypto/hmac/hmac.c
@@ -66,6 +66,7 @@ int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,
diff --git a/main/openssl/0002-apps-speed-fix-digest-speed-measurement-and-add-hmac.patch b/main/openssl/0002-apps-speed-fix-digest-speed-measurement-and-add-hmac.patch
index 8859f4060..f12d45a84 100644
--- a/main/openssl/0002-apps-speed-fix-digest-speed-measurement-and-add-hmac.patch
+++ b/main/openssl/0002-apps-speed-fix-digest-speed-measurement-and-add-hmac.patch
@@ -1,7 +1,7 @@
-From de61d5881a12b359dfb1b4fbbb53412460196553 Mon Sep 17 00:00:00 2001
+From ca1f332fbadc20d53d807d542fb37988a5508d32 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
Date: Thu, 3 Jun 2010 09:02:13 +0300
-Subject: [PATCH 2/3] apps/speed: fix digest speed measurement and add hmac-sha1 test
+Subject: [PATCH 2/5] apps/speed: fix digest speed measurement and add hmac-sha1 test
Merge the common code of testing digest speed, and make it reuse
existing context. Context creation can be heavy operation, and it's
diff --git a/main/openssl/0003-engines-e_padlock-backport-cvs-head-changes.patch b/main/openssl/0003-engines-e_padlock-backport-cvs-head-changes.patch
new file mode 100644
index 000000000..a590269b9
--- /dev/null
+++ b/main/openssl/0003-engines-e_padlock-backport-cvs-head-changes.patch
@@ -0,0 +1,203 @@
+From 1d27eeb41fbc2e8f36f156d4d66d04486afee742 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
+Date: Wed, 28 Jul 2010 08:29:09 +0300
+Subject: [PATCH 3/5] engines/e_padlock: backport cvs head changes
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Includes support for VIA Nano 64-bit mode.
+
+Signed-off-by: Timo Teräs <timo.teras@iki.fi>
+---
+ engines/e_padlock.c | 140 ++++++++++++++++++++++++++++++++++++++++++++-------
+ 1 files changed, 122 insertions(+), 18 deletions(-)
+
+diff --git a/engines/e_padlock.c b/engines/e_padlock.c
+index 381a746..4300f35 100644
+--- a/engines/e_padlock.c
++++ b/engines/e_padlock.c
+@@ -101,7 +101,10 @@
+ compiler choice is limited to GCC and Microsoft C. */
+ #undef COMPILE_HW_PADLOCK
+ #if !defined(I386_ONLY) && !defined(OPENSSL_NO_INLINE_ASM)
+-# if (defined(__GNUC__) && (defined(__i386__) || defined(__i386))) || \
++# if (defined(__GNUC__) && __GNUC__>=2 && \
++ (defined(__i386__) || defined(__i386) || \
++ defined(__x86_64__) || defined(__x86_64)) \
++ ) || \
+ (defined(_MSC_VER) && defined(_M_IX86))
+ # define COMPILE_HW_PADLOCK
+ static ENGINE *ENGINE_padlock (void);
+@@ -294,6 +297,7 @@ static volatile struct padlock_cipher_data *padlock_saved_context;
+ * =======================================================
+ */
+ #if defined(__GNUC__) && __GNUC__>=2
++#if defined(__i386__) || defined(__i386)
+ /*
+ * As for excessive "push %ebx"/"pop %ebx" found all over.
+ * When generating position-independent code GCC won't let
+@@ -373,21 +377,6 @@ padlock_available(void)
+ return padlock_use_ace + padlock_use_rng;
+ }
+
+-#ifndef OPENSSL_NO_AES
+-/* Our own htonl()/ntohl() */
+-static inline void
+-padlock_bswapl(AES_KEY *ks)
+-{
+- size_t i = sizeof(ks->rd_key)/sizeof(ks->rd_key[0]);
+- unsigned int *key = ks->rd_key;
+-
+- while (i--) {
+- asm volatile ("bswapl %0" : "+r"(*key));
+- key++;
+- }
+-}
+-#endif
+-
+ /* Force key reload from memory to the CPU microcode.
+ Loading EFLAGS from the stack clears EFLAGS[30]
+ which does the trick. */
+@@ -445,12 +434,127 @@ static inline void *name(size_t cnt, \
+ : "edx", "cc", "memory"); \
+ return iv; \
+ }
++#endif
++
++#elif defined(__x86_64__) || defined(__x86_64)
++
++/* Load supported features of the CPU to see if
++ the PadLock is available. */
++static int
++padlock_available(void)
++{
++ char vendor_string[16];
++ unsigned int eax, edx;
+
++ /* Are we running on the Centaur (VIA) CPU? */
++ eax = 0x00000000;
++ vendor_string[12] = 0;
++ asm volatile (
++ "cpuid\n"
++ "movl %%ebx,(%1)\n"
++ "movl %%edx,4(%1)\n"
++ "movl %%ecx,8(%1)\n"
++ : "+a"(eax) : "r"(vendor_string) : "rbx", "rcx", "rdx");
++ if (strcmp(vendor_string, "CentaurHauls") != 0)
++ return 0;
++
++ /* Check for Centaur Extended Feature Flags presence */
++ eax = 0xC0000000;
++ asm volatile ("cpuid"
++ : "+a"(eax) : : "rbx", "rcx", "rdx");
++ if (eax < 0xC0000001)
++ return 0;
++
++ /* Read the Centaur Extended Feature Flags */
++ eax = 0xC0000001;
++ asm volatile ("cpuid"
++ : "+a"(eax), "=d"(edx) : : "rbx", "rcx");
++
++ /* Fill up some flags */
++ padlock_use_ace = ((edx & (0x3<<6)) == (0x3<<6));
++ padlock_use_rng = ((edx & (0x3<<2)) == (0x3<<2));
++
++ return padlock_use_ace + padlock_use_rng;
++}
++
++/* Force key reload from memory to the CPU microcode.
++ Loading EFLAGS from the stack clears EFLAGS[30]
++ which does the trick. */
++static inline void
++padlock_reload_key(void)
++{
++ asm volatile ("pushfq; popfq");
++}
++
++#ifndef OPENSSL_NO_AES
++/*
++ * This is heuristic key context tracing. At first one
++ * believes that one should use atomic swap instructions,
++ * but it's not actually necessary. Point is that if
++ * padlock_saved_context was changed by another thread
++ * after we've read it and before we compare it with cdata,
++ * our key *shall* be reloaded upon thread context switch
++ * and we are therefore set in either case...
++ */
++static inline void
++padlock_verify_context(struct padlock_cipher_data *cdata)
++{
++ asm volatile (
++ "pushfq\n"
++" btl $30,(%%rsp)\n"
++" jnc 1f\n"
++" cmpq %2,%1\n"
++" je 1f\n"
++" popfq\n"
++" subq $8,%%rsp\n"
++"1: addq $8,%%rsp\n"
++" movq %2,%0"
++ :"+m"(padlock_saved_context)
++ : "r"(padlock_saved_context), "r"(cdata) : "cc");
++}
++
++/* Template for padlock_xcrypt_* modes */
++/* BIG FAT WARNING:
++ * The offsets used with 'leal' instructions
++ * describe items of the 'padlock_cipher_data'
++ * structure.
++ */
++#define PADLOCK_XCRYPT_ASM(name,rep_xcrypt) \
++static inline void *name(size_t cnt, \
++ struct padlock_cipher_data *cdata, \
++ void *out, const void *inp) \
++{ void *iv; \
++ asm volatile ( "leaq 16(%0),%%rdx\n" \
++ " leaq 32(%0),%%rbx\n" \
++ rep_xcrypt "\n" \
++ : "=a"(iv), "=c"(cnt), "=D"(out), "=S"(inp) \
++ : "0"(cdata), "1"(cnt), "2"(out), "3"(inp) \
++ : "rbx", "rdx", "cc", "memory"); \
++ return iv; \
++}
++#endif
++
++#endif /* cpu */
++
++#ifndef OPENSSL_NO_AES
+ /* Generate all functions with appropriate opcodes */
+ PADLOCK_XCRYPT_ASM(padlock_xcrypt_ecb, ".byte 0xf3,0x0f,0xa7,0xc8") /* rep xcryptecb */
+ PADLOCK_XCRYPT_ASM(padlock_xcrypt_cbc, ".byte 0xf3,0x0f,0xa7,0xd0") /* rep xcryptcbc */
+ PADLOCK_XCRYPT_ASM(padlock_xcrypt_cfb, ".byte 0xf3,0x0f,0xa7,0xe0") /* rep xcryptcfb */
+ PADLOCK_XCRYPT_ASM(padlock_xcrypt_ofb, ".byte 0xf3,0x0f,0xa7,0xe8") /* rep xcryptofb */
++
++/* Our own htonl()/ntohl() */
++static inline void
++padlock_bswapl(AES_KEY *ks)
++{
++ size_t i = sizeof(ks->rd_key)/sizeof(ks->rd_key[0]);
++ unsigned int *key = ks->rd_key;
++
++ while (i--) {
++ asm volatile ("bswapl %0" : "+r"(*key));
++ key++;
++ }
++}
+ #endif
+
+ /* The RNG call itself */
+@@ -481,8 +585,8 @@ padlock_xstore(void *addr, unsigned int edx_in)
+ static inline unsigned char *
+ padlock_memcpy(void *dst,const void *src,size_t n)
+ {
+- long *d=dst;
+- const long *s=src;
++ size_t *d=dst;
++ const size_t *s=src;
+
+ n /= sizeof(*d);
+ do { *d++ = *s++; } while (--n);
+--
+1.7.0.4
+
diff --git a/main/openssl/0003-engine-padlock-implement-sha1-sha224-sha256-accelera.patch b/main/openssl/0004-engines-e_padlock-implement-sha1-sha224-sha256-accel.patch
index b25de7c16..d1bb3704b 100644
--- a/main/openssl/0003-engine-padlock-implement-sha1-sha224-sha256-accelera.patch
+++ b/main/openssl/0004-engines-e_padlock-implement-sha1-sha224-sha256-accel.patch
@@ -1,12 +1,12 @@
-From 11e9d19d7c6c3461cbab5e5670d66974cd7cf819 Mon Sep 17 00:00:00 2001
+From b235a1c0686e5f4f32703c0eb0a75ee9902a7e89 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
-Date: Fri, 4 Jun 2010 15:48:16 +0300
-Subject: [PATCH 3/3] engine/padlock: implement sha1/sha224/sha256 acceleration
+Date: Wed, 28 Jul 2010 08:37:58 +0300
+Subject: [PATCH 4/5] engines/e_padlock: implement sha1/sha224/sha256 acceleration
Limited support for VIA C7 that works only when EVP_MD_CTX_FLAG_ONESHOT
is used appropriately (as done by EVP_Digest, and my previous HMAC patch).
-Full support for VIA Nano including partial transformation.
+Full support for VIA Nano including partial transformation and 64-bit mode.
Benchmarks from VIA Nano 1.6GHz, done with including the previous HMAC and
apps/speed patches done. From single run, error margin of about 100-200k.
@@ -24,11 +24,11 @@ sha1 37713.77k 114562.71k 259637.33k 379907.41k 438818.13k
sha256 34262.86k 103233.75k 232476.07k 338386.60k 389860.01k
hmac(sha1) 8424.70k 31475.11k 104036.10k 245559.30k 406667.26k
---
- engines/e_padlock.c | 596 +++++++++++++++++++++++++++++++++++++++++++++++----
- 1 files changed, 553 insertions(+), 43 deletions(-)
+ engines/e_padlock.c | 660 +++++++++++++++++++++++++++++++++++++++++++++++----
+ 1 files changed, 613 insertions(+), 47 deletions(-)
diff --git a/engines/e_padlock.c b/engines/e_padlock.c
-index 381a746..2f8c72a 100644
+index 4300f35..3591c59 100644
--- a/engines/e_padlock.c
+++ b/engines/e_padlock.c
@@ -3,6 +3,9 @@
@@ -41,7 +41,17 @@ index 381a746..2f8c72a 100644
* Big thanks to Andy Polyakov for a help with optimization,
* assembler fixes, port to MS Windows and a lot of other
* valuable work on this engine!
-@@ -74,12 +77,23 @@
+@@ -64,7 +67,9 @@
+
+
+ #include <stdio.h>
++#include <stdint.h>
+ #include <string.h>
++#include <netinet/in.h>
+
+ #include <openssl/opensslconf.h>
+ #include <openssl/crypto.h>
+@@ -74,12 +79,33 @@
#ifndef OPENSSL_NO_AES
#include <openssl/aes.h>
#endif
@@ -62,10 +72,20 @@ index 381a746..2f8c72a 100644
+#define OPENSSL_NO_SHA
+#endif
+
++/* 64-bit mode does not need software SHA1 as fallback, we can
++ * do all operations with padlock */
++#if defined(__x86_64__) || defined(__x86_64)
++#define PADLOCK_NEED_FALLBACK_SHA 0
++#else
++#define PADLOCK_NEED_FALLBACK_SHA 1
++#endif
++
++#define PADLOCK_MAX_FINALIZING_LENGTH 0x1FFFFFFE
++
/* Attempt to have a single source for both 0.9.7 and 0.9.8 :-) */
#if (OPENSSL_VERSION_NUMBER >= 0x00908000L)
# ifndef OPENSSL_NO_DYNAMIC_ENGINE
-@@ -140,58 +154,40 @@ static int padlock_available(void);
+@@ -143,58 +169,40 @@ static int padlock_available(void);
static int padlock_init(ENGINE *e);
/* RNG Stuff */
@@ -145,7 +165,7 @@ index 381a746..2f8c72a 100644
/* Constructor */
static ENGINE *
-@@ -215,7 +211,7 @@ ENGINE_padlock(void)
+@@ -218,7 +226,7 @@ ENGINE_padlock(void)
static int
padlock_init(ENGINE *e)
{
@@ -154,7 +174,7 @@ index 381a746..2f8c72a 100644
}
/* This stuff is needed if this ENGINE is being compiled into a self-contained
-@@ -367,10 +363,20 @@ padlock_available(void)
+@@ -371,10 +379,20 @@ padlock_available(void)
: "+a"(eax), "=d"(edx) : : "ecx");
/* Fill up some flags */
@@ -177,8 +197,27 @@ index 381a746..2f8c72a 100644
+ return padlock_flags;
}
- #ifndef OPENSSL_NO_AES
-@@ -1159,6 +1165,454 @@ padlock_aes_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out_arg,
+ /* Force key reload from memory to the CPU microcode.
+@@ -471,10 +489,14 @@ padlock_available(void)
+ : "+a"(eax), "=d"(edx) : : "rbx", "rcx");
+
+ /* Fill up some flags */
+- padlock_use_ace = ((edx & (0x3<<6)) == (0x3<<6));
+- padlock_use_rng = ((edx & (0x3<<2)) == (0x3<<2));
+-
+- return padlock_use_ace + padlock_use_rng;
++ padlock_flags |= ((edx & (0x3<<3)) ? PADLOCK_RNG : 0);
++ padlock_flags |= ((edx & (0x3<<7)) ? PADLOCK_ACE : 0);
++ padlock_flags |= ((edx & (0x3<<9)) ? PADLOCK_ACE2 : 0);
++ padlock_flags |= ((edx & (0x3<<11)) ? PADLOCK_PHE : 0);
++ padlock_flags |= ((edx & (0x3<<13)) ? PADLOCK_PMM : 0);
++ padlock_flags |= PADLOCK_NANO;
++
++ return padlock_flags;
+ }
+
+ /* Force key reload from memory to the CPU microcode.
+@@ -1263,6 +1285,496 @@ padlock_aes_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out_arg,
#endif /* OPENSSL_NO_AES */
@@ -188,23 +227,39 @@ index 381a746..2f8c72a 100644
+padlock_copy_bswap(void *dst, void *src, size_t count)
+{
+ uint32_t *udst = dst, *usrc = src;
-+ unsigned int reg;
+ int i = 0;
+
-+ for (i = 0; i < count; i++) {
-+ reg = usrc[i];
-+ asm volatile("bswapl %0" : "+&r"(reg));
-+ udst[i] = reg;
-+ }
++ for (i = 0; i < count; i++)
++ udst[i] = htonl(usrc[i]);
++}
++
++static unsigned long padlock_sha_prepare_padding(
++ EVP_MD_CTX *ctx,
++ unsigned char *padding,
++ unsigned char *data, size_t data_len,
++ uint64_t total)
++{
++ unsigned int padding_len;
++
++ padding_len = data_len < 56 ? SHA_CBLOCK : 2 * SHA_CBLOCK;
++ if (data_len)
++ memcpy(padding, data, data_len);
++
++ memset(padding + data_len, 0, padding_len - data_len);
++ padding[data_len] = 0x80;
++ *(uint32_t *)(padding + padding_len - 8) = htonl(total >> 32);
++ *(uint32_t *)(padding + padding_len - 4) = htonl(total & 0xffffffff);
++
++ return data_len < 56 ? 1 : 2;
+}
+
+#define PADLOCK_SHA_ALIGN(dd) (uint32_t*)(((uintptr_t)(dd) + 15) & ~15)
+#define PADLOCK_SHA_HWCTX (128+16)
+
+static void
-+padlock_sha1(void *hwctx, const void *buf, uint32_t total, uint32_t now)
++padlock_sha1(void *hwctx, const void *buf, unsigned long total, unsigned long now)
+{
-+ uint32_t pos = total - now;
++ unsigned long pos = total - now;
+
+ asm volatile ("xsha1"
+ : "+S"(buf), "+D"(hwctx), "+a"(pos), "+c"(total)
@@ -212,11 +267,11 @@ index 381a746..2f8c72a 100644
+}
+
+static void
-+padlock_sha1_partial(void *hwctx, const void *buf, uint32_t blocks)
++padlock_sha1_partial(void *hwctx, const void *buf, unsigned long blocks)
+{
+ asm volatile ("xsha1"
+ : "+S"(buf), "+D"(hwctx), "+c"(blocks)
-+ : "a"(-1) : "memory");
++ : "a"(-1L) : "memory");
+}
+
+static int padlock_sha1_init(EVP_MD_CTX *ctx)
@@ -224,22 +279,24 @@ index 381a746..2f8c72a 100644
+ return SHA1_Init(ctx->md_data);
+}
+
-+static int padlock_sha1_update(EVP_MD_CTX *ctx, const void *data,
-+ size_t len)
++#if PADLOCK_NEED_FALLBACK_SHA
++
++static int padlock_sha1_update_eden(EVP_MD_CTX *ctx, const void *data,
++ size_t len)
+{
+ unsigned char hwctx[PADLOCK_SHA_HWCTX];
+ uint32_t *aligned = PADLOCK_SHA_ALIGN(hwctx);
+ SHA_CTX *c = ctx->md_data;
+ uint_fast64_t total;
+ const unsigned char *p = data;
-+ unsigned int l = 0;
++ unsigned long l = 0;
+
+ /* Calculate total length (Nl,Nh) is length in bits */
+ total = (((uint_fast64_t) c->Nh) << 29) + (c->Nl >> 3);
+ total += len;
+
+ if ((ctx->flags & EVP_MD_CTX_FLAG_ONESHOT) &&
-+ (total <= 0xfffffffe)) {
++ (total <= PADLOCK_MAX_FINALIZING_LENGTH)) {
+ if (c->num != 0) {
+ l = (len < SHA_CBLOCK) ? len : SHA_CBLOCK;
+ if (!SHA1_Update(c, data, l))
@@ -260,16 +317,17 @@ index 381a746..2f8c72a 100644
+
+ return SHA1_Update(c, data, len);
+}
++#endif
+
-+static int padlock_nano_sha1_update(EVP_MD_CTX *ctx, const void *data,
-+ size_t len)
++static int padlock_sha1_update(EVP_MD_CTX *ctx, const void *data,
++ size_t len)
+{
+ unsigned char hwctx[PADLOCK_SHA_HWCTX];
+ uint32_t *aligned = PADLOCK_SHA_ALIGN(hwctx);
+ SHA_CTX *c = ctx->md_data;
+ uint_fast64_t total;
+ unsigned char *p;
-+ unsigned int n;
++ unsigned long n;
+
+ /* Calculate total length (Nl,Nh) is length in bits */
+ total = (((uint_fast64_t) c->Nh) << 29) + (c->Nl >> 3);
@@ -300,7 +358,7 @@ index 381a746..2f8c72a 100644
+
+ /* Can we finalize straight away? */
+ if ((ctx->flags & EVP_MD_CTX_FLAG_ONESHOT) &&
-+ (total <= 0xfffffffe)) {
++ (total <= PADLOCK_MAX_FINALIZING_LENGTH)) {
+ padlock_sha1(aligned, data, total, len);
+ memcpy(&c->h0, aligned, 5 * sizeof(SHA_LONG));
+ c->num = -1;
@@ -327,8 +385,10 @@ index 381a746..2f8c72a 100644
+
+static int padlock_sha1_final(EVP_MD_CTX *ctx, unsigned char *md)
+{
++ unsigned char hwctx[PADLOCK_SHA_HWCTX];
++ uint32_t *aligned = PADLOCK_SHA_ALIGN(hwctx);
++ uint64_t total;
+ SHA_CTX *c = ctx->md_data;
-+ uint_fast64_t total;
+
+ if (c->num == -1) {
+ padlock_copy_bswap(md, &c->h0, 5);
@@ -337,18 +397,26 @@ index 381a746..2f8c72a 100644
+ }
+
+ total = (((uint_fast64_t) c->Nh) << 29) + (c->Nl >> 3);
-+ if (total <= 0xfffffffe) {
-+ unsigned char hwctx[PADLOCK_SHA_HWCTX];
-+ uint32_t *aligned = PADLOCK_SHA_ALIGN(hwctx);
++#if PADLOCK_NEED_FALLBACK_SHA
++ if ((!PADLOCK_HAVE_NANO) && (total > PADLOCK_MAX_FINALIZING_LENGTH))
++ return SHA1_Final(md, c);
++#endif
+
-+ memcpy(aligned, &c->h0, 5 * sizeof(SHA_LONG));
++ memcpy(aligned, &c->h0, 5 * sizeof(SHA_LONG));
++ if (total > PADLOCK_MAX_FINALIZING_LENGTH) {
++ unsigned char padding[2 * SHA_CBLOCK];
++ unsigned long n;
++
++ n = padlock_sha_prepare_padding(ctx, padding,
++ (unsigned char *) c->data, c->num, total << 3);
++ padlock_sha1_partial(aligned, padding, n);
++ } else {
+ padlock_sha1(aligned, c->data, total, c->num);
-+ padlock_copy_bswap(md, aligned, 5);
-+ c->num = 0;
-+ return 1;
+ }
++ padlock_copy_bswap(md, aligned, 5);
++ c->num = 0;
+
-+ return SHA1_Final(md, c);
++ return 1;
+}
+
+static EVP_MD padlock_sha1_md = {
@@ -385,9 +453,9 @@ index 381a746..2f8c72a 100644
+#if !defined(OPENSSL_NO_SHA256)
+
+static void
-+padlock_sha256(void *hwctx, const void *buf, uint32_t total, uint32_t now)
++padlock_sha256(void *hwctx, const void *buf, unsigned long total, unsigned long now)
+{
-+ uint32_t pos = total - now;
++ unsigned long pos = total - now;
+
+ asm volatile ("xsha256"
+ : "+S"(buf), "+D"(hwctx), "+a"(pos), "+c"(total)
@@ -395,15 +463,17 @@ index 381a746..2f8c72a 100644
+}
+
+static void
-+padlock_sha256_partial(void *hwctx, const void *buf, uint32_t blocks)
++padlock_sha256_partial(void *hwctx, const void *buf, unsigned long blocks)
+{
+ asm volatile ("xsha256"
+ : "+S"(buf), "+D"(hwctx), "+c"(blocks)
-+ : "a"(-1) : "memory");
++ : "a"(-1L) : "memory");
+}
+
-+static int padlock_sha256_update(EVP_MD_CTX *ctx, const void *data,
-+ size_t len)
++#if PADLOCK_NEED_FALLBACK_SHA
++
++static int padlock_sha256_update_eden(EVP_MD_CTX *ctx, const void *data,
++ size_t len)
+{
+ unsigned char hwctx[PADLOCK_SHA_HWCTX];
+ uint32_t *aligned = PADLOCK_SHA_ALIGN(hwctx);
@@ -417,7 +487,7 @@ index 381a746..2f8c72a 100644
+ total += len;
+
+ if ((ctx->flags & EVP_MD_CTX_FLAG_ONESHOT) &&
-+ (total <= 0xfffffffe)) {
++ (total <= PADLOCK_MAX_FINALIZING_LENGTH)) {
+ if (c->num != 0) {
+ l = (len < SHA256_CBLOCK) ? len : SHA256_CBLOCK;
+ if (!SHA256_Update(c, data, l))
@@ -439,15 +509,17 @@ index 381a746..2f8c72a 100644
+ return SHA256_Update(c, data, len);
+}
+
-+static int padlock_nano_sha256_update(EVP_MD_CTX *ctx, const void *data,
-+ size_t len)
++#endif
++
++static int padlock_sha256_update(EVP_MD_CTX *ctx, const void *data,
++ size_t len)
+{
+ unsigned char hwctx[PADLOCK_SHA_HWCTX];
+ uint32_t *aligned = PADLOCK_SHA_ALIGN(hwctx);
+ SHA256_CTX *c = ctx->md_data;
+ uint_fast64_t total;
+ unsigned char *p;
-+ unsigned int n;
++ unsigned long n;
+
+ /* Calculate total length (Nl,Nh) is length in bits */
+ total = (((uint_fast64_t) c->Nh) << 29) + (c->Nl >> 3);
@@ -478,7 +550,7 @@ index 381a746..2f8c72a 100644
+
+ /* Can we finalize straight away? */
+ if ((ctx->flags & EVP_MD_CTX_FLAG_ONESHOT) &&
-+ (total <= 0xfffffffe)) {
++ (total <= PADLOCK_MAX_FINALIZING_LENGTH)) {
+ padlock_sha256(aligned, data, total, len);
+ memcpy(c->h, aligned, sizeof(c->h));
+ c->num = -1;
@@ -505,8 +577,10 @@ index 381a746..2f8c72a 100644
+
+static int padlock_sha256_final(EVP_MD_CTX *ctx, unsigned char *md)
+{
++ unsigned char hwctx[PADLOCK_SHA_HWCTX];
++ uint32_t *aligned = PADLOCK_SHA_ALIGN(hwctx);
++ uint64_t total;
+ SHA256_CTX *c = ctx->md_data;
-+ uint_fast64_t total;
+
+ if (c->num == -1) {
+ padlock_copy_bswap(md, c->h, sizeof(c->h)/sizeof(c->h[0]));
@@ -515,18 +589,25 @@ index 381a746..2f8c72a 100644
+ }
+
+ total = (((uint_fast64_t) c->Nh) << 29) + (c->Nl >> 3);
-+ if (total <= 0xfffffffe) {
-+ unsigned char hwctx[PADLOCK_SHA_HWCTX];
-+ uint32_t *aligned = PADLOCK_SHA_ALIGN(hwctx);
++#if PADLOCK_NEED_FALLBACK_SHA
++ if ((!PADLOCK_HAVE_NANO) && (total > PADLOCK_MAX_FINALIZING_LENGTH))
++ return SHA256_Final(md, c);
++#endif
+
-+ memcpy(aligned, c->h, sizeof(c->h));
++ memcpy(aligned, c->h, sizeof(c->h));
++ if (total > PADLOCK_MAX_FINALIZING_LENGTH) {
++ unsigned char padding[2 * SHA_CBLOCK];
++ unsigned long n;
++
++ n = padlock_sha_prepare_padding(ctx, padding,
++ (unsigned char *) c->data, c->num, total << 3);
++ padlock_sha256_partial(aligned, padding, n);
++ } else {
+ padlock_sha256(aligned, c->data, total, c->num);
-+ padlock_copy_bswap(md, aligned, sizeof(c->h)/sizeof(c->h[0]));
-+ c->num = 0;
-+ return 1;
+ }
-+
-+ return SHA256_Final(md, c);
++ padlock_copy_bswap(md, aligned, sizeof(c->h)/sizeof(c->h[0]));
++ c->num = 0;
++ return 1;
+}
+
+#if !defined(OPENSSL_NO_SHA224)
@@ -633,7 +714,7 @@ index 381a746..2f8c72a 100644
/* ===== Random Number Generator ===== */
/*
* This code is not engaged. The reason is that it does not comply
-@@ -1215,6 +1669,62 @@ static RAND_METHOD padlock_rand = {
+@@ -1319,6 +1831,60 @@ static RAND_METHOD padlock_rand = {
padlock_rand_status, /* rand status */
};
@@ -649,32 +730,30 @@ index 381a746..2f8c72a 100644
+ /* Generate a nice engine name with available features */
+ BIO_snprintf(padlock_name, sizeof(padlock_name),
+ "VIA PadLock: %s%s%s%s%s%s",
-+ padlock_flags ? "" : "not supported",
-+ PADLOCK_HAVE_RNG ? "RNG " : "",
-+ PADLOCK_HAVE_ACE ? (PADLOCK_HAVE_ACE2 ? "ACE2 " : "ACE ") : "",
-+ PADLOCK_HAVE_PHE ? "PHE " : "",
-+ PADLOCK_HAVE_PMM ? "PMM " : "",
-+ PADLOCK_HAVE_NANO ? "NANO " : ""
-+ );
-+
-+#ifndef OPENSSL_NO_SHA
-+ /* Use Nano SHA acceleration? */
-+ if (PADLOCK_HAVE_NANO) {
-+ padlock_sha1_md.update = padlock_nano_sha1_update;
-+ padlock_dss1_md.update = padlock_nano_sha1_update;
++ padlock_flags ? "" : "not supported",
++ PADLOCK_HAVE_RNG ? "RNG " : "",
++ PADLOCK_HAVE_ACE ? (PADLOCK_HAVE_ACE2 ? "ACE2 " : "ACE ") : "",
++ PADLOCK_HAVE_PHE ? "PHE " : "",
++ PADLOCK_HAVE_PMM ? "PMM " : "",
++ PADLOCK_HAVE_NANO ? "NANO " : ""
++ );
++
++#if PADLOCK_NEED_FALLBACK_SHA && !defined(OPENSSL_NO_SHA)
++ if (!PADLOCK_HAVE_NANO) {
++ padlock_sha1_md.update = padlock_sha1_update_eden;
++ padlock_dss1_md.update = padlock_sha1_update_eden;
+#if !defined(OPENSSL_NO_SHA256)
+#if !defined(OPENSSL_NO_SHA224)
-+ padlock_sha224_md.update = padlock_nano_sha256_update;
++ padlock_sha224_md.update = padlock_sha256_update_eden;
+#endif
-+ padlock_sha256_md.update = padlock_nano_sha256_update;
++ padlock_sha256_md.update = padlock_sha256_update_eden;
+#endif
+ }
-+#endif
++#endif
+
+ /* Register everything or return with an error */
+ if (!ENGINE_set_id(e, padlock_id) ||
+ !ENGINE_set_name(e, padlock_name) ||
-+
+ !ENGINE_set_init_function(e, padlock_init)
+#ifndef OPENSSL_NO_AES
+ || (PADLOCK_HAVE_ACE && !ENGINE_set_ciphers (e, padlock_ciphers))
diff --git a/main/openssl/0004-crypto-engine-autoload-padlock-dynamic-engine.patch b/main/openssl/0005-crypto-engine-autoload-padlock-dynamic-engine.patch
index c41d860ea..3c72ce26a 100644
--- a/main/openssl/0004-crypto-engine-autoload-padlock-dynamic-engine.patch
+++ b/main/openssl/0005-crypto-engine-autoload-padlock-dynamic-engine.patch
@@ -1,7 +1,7 @@
-From f6a5204b8dc94d73521f962183ee302533b2a196 Mon Sep 17 00:00:00 2001
+From b96276c8f11e656e4296955bf1a8d0ac2b6094fe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
Date: Fri, 4 Jun 2010 18:02:39 +0300
-Subject: [PATCH 4/4] crypto/engine: autoload padlock dynamic engine
+Subject: [PATCH 5/5] crypto/engine: autoload padlock dynamic engine
---
crypto/engine/eng_all.c | 10 ++++++++++
diff --git a/main/openssl/APKBUILD b/main/openssl/APKBUILD
index eb23f31fc..34eabb072 100644
--- a/main/openssl/APKBUILD
+++ b/main/openssl/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=openssl
pkgver=1.0.0a
-pkgrel=1
+pkgrel=2
pkgdesc="Toolkit for SSL v2/v3 and TLS v1"
url="http://openssl.org"
depends=
@@ -15,11 +15,11 @@ source="http://www.openssl.org/source/${pkgname}-${pkgver}.tar.gz
openssl-bb-basename.patch
0001-crypto-hmac-support-EVP_MD_CTX_FLAG_ONESHOT-and-set-.patch
0002-apps-speed-fix-digest-speed-measurement-and-add-hmac.patch
- 0003-engine-padlock-implement-sha1-sha224-sha256-accelera.patch
- 0004-crypto-engine-autoload-padlock-dynamic-engine.patch
+ 0003-engines-e_padlock-backport-cvs-head-changes.patch
+ 0004-engines-e_padlock-implement-sha1-sha224-sha256-accel.patch
+ 0005-crypto-engine-autoload-padlock-dynamic-engine.patch
"
-# openssl-0.9.8k-padlock-sha.patch
_builddir="$srcdir"/$pkgname-$pkgver
prepare() {
cd "$_builddir"
@@ -69,7 +69,8 @@ libssl() {
md5sums="e3873edfffc783624cfbdb65e2249cbd openssl-1.0.0a.tar.gz
115c481cd59b3dba631364e8fb1778f5 fix-manpages.patch
c6a9857a5dbd30cead0404aa7dd73977 openssl-bb-basename.patch
-ceae7d6166a455ecc41adc8f44f1a07e 0001-crypto-hmac-support-EVP_MD_CTX_FLAG_ONESHOT-and-set-.patch
-383c0c0305532f471bf583d6e05cbea9 0002-apps-speed-fix-digest-speed-measurement-and-add-hmac.patch
-f687ab90b23587dc445eb0803a6eb1fb 0003-engine-padlock-implement-sha1-sha224-sha256-accelera.patch
-f197ac9a2748e64b1cb15a12ddca3d61 0004-crypto-engine-autoload-padlock-dynamic-engine.patch"
+1f607b8e11347e56a0906756f3d6928a 0001-crypto-hmac-support-EVP_MD_CTX_FLAG_ONESHOT-and-set-.patch
+5ba830cf1e828192c8c40023dc92917d 0002-apps-speed-fix-digest-speed-measurement-and-add-hmac.patch
+53fbd01733b488717575e04a5aaf6664 0003-engines-e_padlock-backport-cvs-head-changes.patch
+beea8819faeefb9ab19ef90f00c53782 0004-engines-e_padlock-implement-sha1-sha224-sha256-accel.patch
+8bc7a427f6005158585386b9837f700c 0005-crypto-engine-autoload-padlock-dynamic-engine.patch"
diff --git a/main/php/APKBUILD b/main/php/APKBUILD
index f933f01bd..d102fe061 100644
--- a/main/php/APKBUILD
+++ b/main/php/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: Carlo Landmeter <clandmeter at gmail>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=php
-pkgver=5.3.2
-_suhosinver=${pkgver}-0.9.9.1
-pkgrel=8
+pkgver=5.3.3
+_suhosinver=${pkgver}-0.9.10
+pkgrel=0
pkgdesc="The PHP language runtime engine"
url="http://www.php.net/"
license="PHP-3"
@@ -64,19 +64,20 @@ subpackages="$pkgname-dev $pkgname-doc $pkgname-cli $pkgname-pear
source="http://www.php.net/distributions/${pkgname}-${pkgver}.tar.bz2
http://download.suhosin.org/suhosin-patch-${_suhosinver}.patch.gz
php-install-pear-xml.patch
- zend_execute_API.c.patch
- CVE-2010-2225.patch
+ php-uclibc.patch
"
_extdir="/usr/lib/php/20090626"
-build() {
+prepare() {
cd "$srcdir/$pkgname-$pkgver"
-
# beat the pear installer into using xml.so
patch -p1 -i "$srcdir"/php-install-pear-xml.patch || return 1
+ patch -p1 -i "$srcdir"/php-uclibc.patch || return 1
+}
- patch -p0 -i "$srcdir"/CVE-2010-2225.patch || return 1
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
# apply suhosin patch
gunzip -c ${srcdir}/suhosin-patch-${_suhosinver}.patch.gz \
@@ -259,8 +260,7 @@ dev() {
mv "$pkgdir"/usr/bin/phpize "$subpkgdir"/usr/bin/
}
-md5sums="46f500816125202c48a458d0133254a4 php-5.3.2.tar.bz2
-4647b05330862d6a1fc4469245cc6ade suhosin-patch-5.3.2-0.9.9.1.patch.gz
+md5sums="21ceeeb232813c10283a5ca1b4c87b48 php-5.3.3.tar.bz2
+b66b27c43b1332400ef8982944c3b95b suhosin-patch-5.3.3-0.9.10.patch.gz
5111e3be06d391f8772587c675240fab php-install-pear-xml.patch
-55f9d24316a57e0c0f6b4b84791a1a17 zend_execute_API.c.patch
-373a2705d03a13b77b590026b0ae47aa CVE-2010-2225.patch"
+26adfe0e744ec05fa9e368bbdee83176 php-uclibc.patch"
diff --git a/main/php/CVE-2010-2225.patch b/main/php/CVE-2010-2225.patch
deleted file mode 100644
index 08c71f26b..000000000
--- a/main/php/CVE-2010-2225.patch
+++ /dev/null
@@ -1,194 +0,0 @@
-Index: ext/spl/tests/SplObjectStorage_unserialize_nested.phpt
-===================================================================
---- ext/spl/tests/SplObjectStorage_unserialize_nested.phpt (revision 0)
-+++ ext/spl/tests/SplObjectStorage_unserialize_nested.phpt (revision 300843)
-@@ -0,0 +1,47 @@
-+--TEST--
-+SPL: Test unserializing tested & linked storage
-+--FILE--
-+<?php
-+$o = new StdClass();
-+$a = new StdClass();
-+
-+$o->a = $a;
-+
-+$so = new SplObjectStorage();
-+
-+$so[$o] = 1;
-+$so[$a] = 2;
-+
-+$s = serialize($so);
-+echo $s."\n";
-+
-+$so1 = unserialize($s);
-+var_dump($so1);
-+
-+--EXPECTF--
-+C:16:"SplObjectStorage":76:{x:i:2;O:8:"stdClass":1:{s:1:"a";O:8:"stdClass":0:{}},i:1;;r:2;,i:2;;m:a:0:{}}
-+object(SplObjectStorage)#4 (1) {
-+ ["storage":"SplObjectStorage":private]=>
-+ array(2) {
-+ ["%s"]=>
-+ array(2) {
-+ ["obj"]=>
-+ object(stdClass)#5 (1) {
-+ ["a"]=>
-+ object(stdClass)#6 (0) {
-+ }
-+ }
-+ ["inf"]=>
-+ int(1)
-+ }
-+ ["%s"]=>
-+ array(2) {
-+ ["obj"]=>
-+ object(stdClass)#6 (0) {
-+ }
-+ ["inf"]=>
-+ int(2)
-+ }
-+ }
-+}
-+
-Index: ext/spl/tests/SplObjectStorage_unserialize_bad.phpt
-===================================================================
---- ext/spl/tests/SplObjectStorage_unserialize_bad.phpt (revision 0)
-+++ ext/spl/tests/SplObjectStorage_unserialize_bad.phpt (revision 300843)
-@@ -0,0 +1,45 @@
-+--TEST--
-+SPL: Test that serialized blob contains unique elements (CVE-2010-2225)
-+--FILE--
-+<?php
-+
-+$badblobs = array(
-+'x:i:2;i:0;,i:1;;i:0;,i:2;;m:a:0:{}',
-+'x:i:3;O:8:"stdClass":0:{},O:8:"stdClass":0:{};R:1;,i:1;;O:8:"stdClass":0:{},r:2;;m:a:0:{}',
-+'x:i:3;O:8:"stdClass":0:{},O:8:"stdClass":0:{};r:1;,i:1;;O:8:"stdClass":0:{},r:2;;m:a:0:{}',
-+);
-+foreach($badblobs as $blob) {
-+try {
-+ $so = new SplObjectStorage();
-+ $so->unserialize($blob);
-+ var_dump($so);
-+} catch(UnexpectedValueException $e) {
-+ echo $e->getMessage()."\n";
-+}
-+}
-+--EXPECTF--
-+Error at offset 6 of 34 bytes
-+Error at offset 46 of 89 bytes
-+object(SplObjectStorage)#2 (1) {
-+ ["storage":"SplObjectStorage":private]=>
-+ array(2) {
-+ ["%s"]=>
-+ array(2) {
-+ ["obj"]=>
-+ object(stdClass)#3 (0) {
-+ }
-+ ["inf"]=>
-+ int(1)
-+ }
-+ ["%s"]=>
-+ array(2) {
-+ ["obj"]=>
-+ object(stdClass)#1 (0) {
-+ }
-+ ["inf"]=>
-+ object(stdClass)#4 (0) {
-+ }
-+ }
-+ }
-+}
-+
-Index: ext/spl/spl_observer.c
-===================================================================
---- ext/spl/spl_observer.c (revision 300842)
-+++ ext/spl/spl_observer.c (revision 300843)
-@@ -115,6 +115,7 @@
- zval_ptr_dtor(&element->inf);
- } /* }}} */
-
-+
- spl_SplObjectStorageElement* spl_object_storage_get(spl_SplObjectStorage *intern, zval *obj TSRMLS_DC) /* {{{ */
- {
- spl_SplObjectStorageElement *element;
-@@ -632,15 +633,24 @@
- zval_ptr_dtor(&pcount);
-
- while(count-- > 0) {
-+ spl_SplObjectStorageElement *pelement;
-+
- if (*p != ';') {
- goto outexcept;
- }
- ++p;
-+ if(*p != 'O' && *p != 'C' && *p != 'r') {
-+ goto outexcept;
-+ }
- ALLOC_INIT_ZVAL(pentry);
- if (!php_var_unserialize(&pentry, &p, s + buf_len, &var_hash TSRMLS_CC)) {
- zval_ptr_dtor(&pentry);
- goto outexcept;
- }
-+ if(Z_TYPE_P(pentry) != IS_OBJECT) {
-+ zval_ptr_dtor(&pentry);
-+ goto outexcept;
-+ }
- ALLOC_INIT_ZVAL(pinf);
- if (*p == ',') { /* new version has inf */
- ++p;
-@@ -649,6 +659,16 @@
- goto outexcept;
- }
- }
-+
-+ pelement = spl_object_storage_get(intern, pentry TSRMLS_CC);
-+ if(pelement) {
-+ if(pelement->inf) {
-+ var_push_dtor(&var_hash, &pelement->inf);
-+ }
-+ if(pelement->obj) {
-+ var_push_dtor(&var_hash, &pelement->obj);
-+ }
-+ }
- spl_object_storage_attach(intern, pentry, pinf TSRMLS_CC);
- zval_ptr_dtor(&pentry);
- zval_ptr_dtor(&pinf);
-Index: ext/standard/var_unserializer.c
-===================================================================
---- ext/standard/var_unserializer.c (revision 300842)
-+++ ext/standard/var_unserializer.c (revision 300843)
-@@ -56,7 +56,7 @@
- var_hash->data[var_hash->used_slots++] = *rval;
- }
-
--static inline void var_push_dtor(php_unserialize_data_t *var_hashx, zval **rval)
-+PHPAPI void var_push_dtor(php_unserialize_data_t *var_hashx, zval **rval)
- {
- var_entries *var_hash = var_hashx->first_dtor, *prev = NULL;
-
-Index: ext/standard/php_var.h
-===================================================================
---- ext/standard/php_var.h (revision 300842)
-+++ ext/standard/php_var.h (revision 300843)
-@@ -60,6 +60,7 @@
- var_destroy(&(var_hash))
-
- PHPAPI void var_replace(php_unserialize_data_t *var_hash, zval *ozval, zval **nzval);
-+PHPAPI void var_push_dtor(php_unserialize_data_t *var_hash, zval **val);
- PHPAPI void var_destroy(php_unserialize_data_t *var_hash);
-
- #define PHP_VAR_UNSERIALIZE_ZVAL_CHANGED(var_hash, ozval, nzval) \
-Index: ext/standard/var_unserializer.re
-===================================================================
---- ext/standard/var_unserializer.re (revision 300842)
-+++ ext/standard/var_unserializer.re (revision 300843)
-@@ -54,7 +54,7 @@
- var_hash->data[var_hash->used_slots++] = *rval;
- }
-
--static inline void var_push_dtor(php_unserialize_data_t *var_hashx, zval **rval)
-+PHPAPI void var_push_dtor(php_unserialize_data_t *var_hashx, zval **rval)
- {
- var_entries *var_hash = var_hashx->first_dtor, *prev = NULL;
-
diff --git a/main/php/curl-flush.patch b/main/php/curl-flush.patch
deleted file mode 100644
index 14fc31a0b..000000000
--- a/main/php/curl-flush.patch
+++ /dev/null
@@ -1,17 +0,0 @@
---- /repository/php-src/ext/curl/interface.c 2009/06/15 12:38:11 1.62.2.14.2.57
-+++ /repository/php-src/ext/curl/interface.c 2009/06/28 10:00:28 1.62.2.14.2.58
-@@ -1827,6 +1827,14 @@
- if (ch->handlers->write->method == PHP_CURL_RETURN && ch->handlers->write->buf.len > 0) {
- smart_str_0(&ch->handlers->write->buf);
- RETURN_STRINGL(ch->handlers->write->buf.c, ch->handlers->write->buf.len, 1);
-+ }
-+
-+ /* flush the file handle, so any remaining data is synched to disk */
-+ if (ch->handlers->write->method == PHP_CURL_FILE && ch->handlers->write->fp) {
-+ fflush(ch->handlers->write->fp);
-+ }
-+ if (ch->handlers->write_header->method == PHP_CURL_FILE && ch->handlers->write_header->fp) {
-+ fflush(ch->handlers->write_header->fp);
- }
-
- if (ch->handlers->write->method == PHP_CURL_RETURN) {
diff --git a/main/php/gd-info-segfault.patch b/main/php/gd-info-segfault.patch
deleted file mode 100644
index 846a19ef7..000000000
--- a/main/php/gd-info-segfault.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Index: ext/gd/libgd/gd_compat.c
-===================================================================
---- ext/gd/libgd/gd_compat.c (Revision 286947)
-+++ ext/gd/libgd/gd_compat.c (Revision 286948)
-@@ -14,7 +14,7 @@
- return JPEG_LIB_VERSION;
- }
-
--int gdJpegGetVersionString()
-+const char * gdJpegGetVersionString()
- {
- switch(JPEG_LIB_VERSION) {
- case 62:
-Index: ext/gd/libgd/gd_compat.h
-===================================================================
---- ext/gd/libgd/gd_compat.h (Revision 286947)
-+++ ext/gd/libgd/gd_compat.h (Revision 286948)
-@@ -8,7 +8,7 @@
- #endif
-
- const char * gdPngGetVersionString();
--int gdJpegGetVersionString();
-+const char * gdJpegGetVersionString();
- int gdJpegGetVersionInt();
- int overflow2(int a, int b);
-
diff --git a/main/php/php-uclibc.patch b/main/php/php-uclibc.patch
new file mode 100644
index 000000000..554f66bd5
--- /dev/null
+++ b/main/php/php-uclibc.patch
@@ -0,0 +1,11 @@
+--- ./ext/standard/php_crypt_r.c.orig
++++ ./ext/standard/php_crypt_r.c
+@@ -94,7 +94,7 @@
+ if (!initialized) {
+ #ifdef PHP_WIN32
+ InterlockedIncrement(&initialized);
+-#elif (defined(__GNUC__) && (__GNUC__ >= 4 && __GNUC_MINOR >= 2))
++#elif (defined(__GNUC__) && (__GNUC__ >= 4 && __GNUC_MINOR >= 2)) || defined(__UCLIBC__)
+ __sync_fetch_and_add(&initialized, 1);
+ #elif defined(HAVE_ATOMIC_H) /* Solaris 10 defines atomic API within */
+ membar_producer();
diff --git a/main/php/zend_execute_API.c.patch b/main/php/zend_execute_API.c.patch
deleted file mode 100644
index 0976a7b39..000000000
--- a/main/php/zend_execute_API.c.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- PHP_5_3/Zend/zend_execute_API.c 2009/12/18 18:41:53 292294
-+++ PHP_5_3/Zend/zend_execute_API.c 2009/12/18 19:12:11 292295
-@@ -838,6 +838,7 @@
- zval *param;
-
- if (EX(function_state).function->type == ZEND_INTERNAL_FUNCTION
-+ && (EX(function_state).function->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0
- && !ARG_SHOULD_BE_SENT_BY_REF(EX(function_state).function, i + 1)
- && PZVAL_IS_REF(*fci->params[i])) {
- SEPARATE_ZVAL(fci->params[i]);
diff --git a/main/pidgin/APKBUILD b/main/pidgin/APKBUILD
index bccd793c1..4077e8d59 100644
--- a/main/pidgin/APKBUILD
+++ b/main/pidgin/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=pidgin
-pkgver=2.7.1
+pkgver=2.7.2
pkgrel=0
pkgdesc="graphical multi-protocol instant messaging client for X"
url="http://pidgin.im/"
@@ -11,12 +11,11 @@ makedepends="gtk+-dev intltool libsm-dev startup-notification-dev gtkspell-dev
cyrus-sasl-dev ncurses-dev nss-dev"
subpackages="$pkgname-dev $pkgname-doc finch libpurple"
source="http://downloads.sourceforge.net/pidgin/$pkgver/pidgin-$pkgver.tar.bz2
- icq_fix.patch"
+ "
_builddir="$srcdir"/$pkgname-$pkgver
prepare() {
cd "$_builddir"
- patch -p0 -i "$srcdir"/icq_fix.patch || return 1
}
build() {
@@ -60,5 +59,4 @@ libpurple() {
mv "$pkgdir"/usr/share/purple "$pkgdir"/usr/share/sounds \
"$subpkgdir"/usr/share/
}
-md5sums="0dd2adb9e8214ac960f956823c84e7e2 pidgin-2.7.1.tar.bz2
-2ce887cf36e698282b9241832850defd icq_fix.patch"
+md5sums="c23d85bb6a197dd841d1b5585148327d pidgin-2.7.2.tar.bz2"
diff --git a/main/pidgin/icq_fix.patch b/main/pidgin/icq_fix.patch
deleted file mode 100644
index 8bb87ef86..000000000
--- a/main/pidgin/icq_fix.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-#
-# patch "libpurple/protocols/oscar/oscar.c"
-# from [b448ff8a14ab7db9b3ad6ce2c8f17cac8159f702]
-# to [6b8b45623896204448ac4b212a0c631655822ad1]
-#
-============================================================
---- libpurple/protocols/oscar/oscar.c b448ff8a14ab7db9b3ad6ce2c8f17cac8159f702
-+++ libpurple/protocols/oscar/oscar.c 6b8b45623896204448ac4b212a0c631655822ad1
-@@ -4651,7 +4651,8 @@ oscar_send_im(PurpleConnection *gc, cons
- tmp2 = purple_markup_strip_html(tmp1);
- is_html = FALSE;
- } else {
-- tmp2 = g_strdup(tmp1);
-+ /* ICQ 6 wants its HTML wrapped in these tags. Oblige it. */
-+ tmp2 = g_strdup_printf("<HTML><BODY>%s</BODY></HTML>", tmp1);
- is_html = TRUE;
- }
- g_free(tmp1);
diff --git a/main/remmina/APKBUILD b/main/remmina/APKBUILD
index cc8ccdf94..f73ba5770 100644
--- a/main/remmina/APKBUILD
+++ b/main/remmina/APKBUILD
@@ -1,7 +1,7 @@
# Contributor:
# Maintainer:
pkgname=remmina
-pkgver=0.8.0
+pkgver=0.8.1
pkgrel=0
pkgdesc="Remmina is a remote desktop client written in GTK+"
url="http://remmina.sourceforge.net/"
@@ -42,4 +42,4 @@ package() {
# install -m644 -D "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
}
-md5sums="26786dcc8a5e2afc08d58c2583810895 remmina-0.8.0.tar.gz"
+md5sums="88905510156d0b71b741cae34e2e46c8 remmina-0.8.1.tar.gz"
diff --git a/main/rrdtool/APKBUILD b/main/rrdtool/APKBUILD
index ce1f2c6c6..333abc933 100644
--- a/main/rrdtool/APKBUILD
+++ b/main/rrdtool/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=rrdtool
pkgver=1.2.30
-pkgrel=4
+pkgrel=5
pkgdesc="Data logging and graphing application"
url="http://www.rrdtool.org"
license="GPL"
@@ -17,13 +17,17 @@ build() {
--disable-tcl \
--disable-python \
--disable-ruby \
- --enable-rrdcgi
+ --enable-rrdcgi \
+ --enable-perl-site-install \
+ --with-perl-options="INSTALLDIRS=vendor" \
+ || return 1
make || return 1
}
package() {
cd "$_builddir"
+ export INSTALLDIRS=vendor
make DESTDIR="$pkgdir" install || return 1
find "$pkgdir" -name '.packlist' -delete
find "$pkgdir" -name 'perllocal.pod' -delete
@@ -37,8 +41,10 @@ dev() {
perl_rrd() {
pkgdesc="Perl interface for rrdtool"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/perl "$subpkgdir"/usr/lib/
+ mkdir -p "$subpkgdir"/usr/lib \
+ "$pkgdir"/usr/share
+ mv "$pkgdir"/usr/lib/perl* "$subpkgdir"/usr/lib/
+ mv "$pkgdir"/usr/share/perl* "$subpkgdir"/usr/share/
}
md5sums="19b24f7184a8dbf7b48c1bbb565ad9fb rrdtool-1.2.30.tar.gz"
diff --git a/main/smokeping/APKBUILD b/main/smokeping/APKBUILD
new file mode 100644
index 000000000..1838ff598
--- /dev/null
+++ b/main/smokeping/APKBUILD
@@ -0,0 +1,111 @@
+# Contributor: Jeff Bilyk <jbilyk at gmail>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=smokeping
+pkgver=2.4.2
+pkgrel=1
+pkgdesc="Smokeping network latency monitoring"
+pkgusers="smokeping"
+pkggroups="smokeping"
+install="$pkgname.pre-install"
+url="http://oss.oetiker.ch/smokeping/"
+source="http://oss.oetiker.ch/smokeping/pub/smokeping-$pkgver.tar.gz
+ smokeping.initd"
+depends="perl fping rrdtool perl-rrd
+ perl-uri-escape
+ perl-digest-hmac
+ perl-cgi-session
+ perl-libwww
+ perl-snmp-session
+ perl-net-dns
+ "
+license="GPL"
+
+_builddir="$srcdir"/$pkgname-$pkgver
+_vendorlib=/usr/share/perl5/vendor_perl
+
+prepare() {
+ cd "$_builddir"
+ # provided by perl-digest-hmac
+ rm -rf lib/Digest
+ # provided by perl-cgi-session
+ rm -rf lib/CGI
+ # provided by perl-snmp-session
+ rm -r lib/BER.pm lib/SNMP_Session.pm lib/SNMP_util.pm
+ rm -r qooxdoo/qooxdoolink
+}
+
+build() {
+ return 0
+}
+
+package() {
+ cd "$_builddir"
+
+ # create dirs
+ mkdir -p "$pkgdir"/etc/smokeping \
+ "$pkgdir"/usr/bin \
+ "$pkgdir"/usr/share/webapps/smokeping \
+ "$pkgdir"/$_vendorlib
+
+ # install libs
+ cp -ra "$_builddir"/lib/* "$pkgdir"/$_vendorlib
+
+ # install cgi scripts
+ for i in smokeping.cgi tr.cgi; do
+ sed -i -e 's:^use lib:#use lib:' \
+ -e 's:/home/oetiker.*/config.dist:/etc/smokeping/config:' \
+ -e '1s:.*:#!/usr/bin/perl:' \
+ htdocs/$i.dist || return 1
+ mv htdocs/$i.dist \
+ "$pkgdir"/usr/share/webapps/smokeping/$i \
+ || return 1
+ done
+
+ # install ajax scripts
+ mv "$_builddir/htdocs"/* "$pkgdir"/usr/share/webapps/smokeping
+
+ # install smokeping executables
+ for i in smokeping tSmoke; do
+ sed -e 's:^use lib:#use lib:g' \
+ -e 's:etc/config.dist:/etc/smokeping/config:' \
+ -i bin/$i.dist
+ install -m755 bin/$i.dist "$pkgdir"/usr/bin/$i
+ done
+
+ # config
+ sed -e '/^imgcache/{s:\(^imgcache[ \t]*=\).*:\1 /var/lib/smokeping/.simg:}' \
+ -e '/^imgurl/{s:\(^imgurl[ \t]*=\).*:\1 ../.simg:}' \
+ -e '/^datadir/{s:\(^datadir[ \t]*=\).*:\1 /var/lib/smokeping:}' \
+ -e '/^piddir/{s:\(^piddir[ \t]*=\).*:\1 /var/run/smokeping:}' \
+ -e '/^cgiurl/{s#\(^cgiurl[ \t]*=\).*#\1 http://some.place.xyz/perl/smokeping.pl#}' \
+ -e '/^smokemail/{s:\(^smokemail[ \t]*=\).*:\1 /etc/smokeping/smokemail:}' \
+ -e '/^tmail/{s:\(^tmail[ \t]*=\).*:\1 /etc/smokeping/tmail:}' \
+ -e '/^secrets/{s:\(^secrets[ \t]*=\).*:\1 /etc/smokeping/smokeping_secrets:}' \
+ -e '/^template/{s:\(^template[ \t]*=\).*:\1 /etc/smokeping/basepage.html:}' \
+ -e '/^sendmail/{s:usr/lib:usr/sbin:}' \
+ -i etc/config.dist || return 1
+
+ sed -e '/^<script/{s:cropper/:/cropper/:}' \
+ -i etc/basepage.html.dist \
+ || return 1
+
+ for i in etc/*; do
+ local f=${i##*/}
+ install -m644 "$i" "$pkgdir"/etc/smokeping/${f%.dist}
+ done
+
+ chmod 700 "$pkgdir"/etc/smokeping/smokeping_secrets
+
+ # initscript
+ install -Dm755 "$srcdir"/smokeping.initd "$pkgdir"/etc/init.d/smokeping\
+ || return 1
+
+ install -d -o smokeping -g smokeping -m755 \
+ "$pkgdir"/var/lib/smokeping \
+ "$pkgdir"/var/lib/smokeping/.simg \
+ "$pkgdir"/var/run/smokeping
+
+}
+
+md5sums="eb8e7679fcad35e59d7c51f2328250a2 smokeping-2.4.2.tar.gz
+550979e008f49299bf404aceeb81fe61 smokeping.initd"
diff --git a/main/smokeping/smokeping.initd b/main/smokeping/smokeping.initd
new file mode 100644
index 000000000..068f33ff2
--- /dev/null
+++ b/main/smokeping/smokeping.initd
@@ -0,0 +1,77 @@
+#!/sbin/runscript
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+opts="${opts} dump reload restore"
+
+depend() {
+ need net
+ use dns
+}
+
+checkconfig() {
+ if [ ! -f "/etc/smokeping/config" ] ; then
+ eerror "You need /etc/smokeping/config to run smokeping!"
+ return 1
+ fi
+}
+
+start() {
+ checkconfig || return 1
+
+ if [ ! -d /var/run/smokeping/ ]; then
+ mkdir /var/run/smokeping/
+ fi
+ chown smokeping:smokeping /var/run/smokeping/
+
+ ebegin "Starting smokeping"
+ LC_ALL=C \
+ start-stop-daemon --start --name smokeping \
+ --pidfile /var/run/smokeping/smokeping.pid \
+ --exec /usr/bin/smokeping \
+ --chuid smokeping:smokeping
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping smokeping"
+ start-stop-daemon --stop \
+ --pidfile /var/run/smokeping/smokeping.pid
+ eend $?
+}
+
+reload() {
+ ebegin "Reloading smokeping"
+ /usr/bin/smokeping --reload 1>/dev/null 2>&1
+ eend $?
+}
+
+dump() {
+ ebegin "Dumping smokeping rrd files to XML for backup or upgrade use"
+ if service_started "${myservice}" ; then
+ eerror "You need to stop smokeping before dumping files!"
+ return 1
+ fi
+ for f in `find /var/lib/smokeping -name '*.rrd' -print` ; do
+ f_xml=`dirname $f`/`basename $f .rrd`.xml
+ rrdtool dump "$f" > "${f_xml}"
+ chown root:0 "${f_xml}"
+ done
+ eend $?
+}
+
+restore() {
+ ebegin "Restoring smokeping rrd files from XML dump files"
+ if service_started "${myservice}" ; then
+ eerror "You need to stop smokeping before restoring files!"
+ return 1
+ fi
+ for f in `find /var/lib/smokeping -name '*.xml' -print` ; do
+ f_rrd=`dirname $f`/`basename $f .xml`.rrd
+ mv -f "${f_rrd}" "${f_rrd}.bak"
+ chown root:0 "${f_rrd}.bak"
+ rrdtool restore "$f" "${f_rrd}"
+ chown smokeping:smokeping "${f_rrd}"
+ done
+ eend $?
+}
diff --git a/main/smokeping/smokeping.pre-install b/main/smokeping/smokeping.pre-install
new file mode 100644
index 000000000..236550f7c
--- /dev/null
+++ b/main/smokeping/smokeping.pre-install
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+addgroup smokeping 2>/dev/null
+adduser -h /var/lib/smokeping -S -D -G smokeping smokeping 2>/dev/null
+exit 0
diff --git a/main/sqlite/APKBUILD b/main/sqlite/APKBUILD
index 66aa792e5..2f6fd09e5 100644
--- a/main/sqlite/APKBUILD
+++ b/main/sqlite/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Carlo Landmeter <clandmeter at gmail>
pkgname=sqlite
-pkgver=3.6.22
-pkgrel=2
+pkgver=3.7.0
+pkgrel=0
pkgdesc="A C library that implements an SQL database engine"
url="http://www.sqlite.org/"
license="custom"
@@ -44,5 +44,5 @@ package() {
install -Dm644 ${srcdir}/license.txt ${pkgdir}/usr/share/licenses/${pkgname}/license.txt
}
-md5sums="a17bd53f1fde11f84adf79c6a1510ce5 sqlite-3.6.22.tar.gz
+md5sums="78e94ee3b0d501c4b8ceb5964a32eba3 sqlite-3.7.0.tar.gz
c1cdbc5544034d9012e421e75a5e4890 license.txt"
diff --git a/main/swig/APKBUILD b/main/swig/APKBUILD
index 9be176bf6..c2ecc1f27 100644
--- a/main/swig/APKBUILD
+++ b/main/swig/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=swig
-pkgver=1.3.40
-pkgrel=1
+pkgver=2.0.0
+pkgrel=0
pkgdesc="SWIG is a compiler that makes it easy to integrate C and C++ code with scripting languages"
url="http://www.swig.org/"
license="custom"
@@ -9,12 +9,15 @@ depends="guile"
makedepends="zlib-dev"
source="http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz"
-build ()
-{
+build() {
cd "$srcdir"/$pkgname-$pkgver
./configure --prefix=/usr
make || return 1
+}
+
+package() {
+ cd "$srcdir"/$pkgname-$pkgver
make DESTDIR="$pkgdir" install
install -D -m644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}
-md5sums="2df766c9e03e02811b1ab4bba1c7b9cc swig-1.3.40.tar.gz"
+md5sums="36ee2d9974be46a9f0a36460af928eb9 swig-2.0.0.tar.gz"
diff --git a/main/syslinux/APKBUILD b/main/syslinux/APKBUILD
index 03c2018b6..0a60f3ce7 100644
--- a/main/syslinux/APKBUILD
+++ b/main/syslinux/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=syslinux
-pkgver=4.01
+pkgver=4.02
pkgrel=0
pkgdesc="a boot loader for the Linux operating system which operates off an MS-DOS/Windows FAT filesystem."
url="http://syslinux.org"
@@ -27,4 +27,4 @@ package() {
make INSTALLROOT="$pkgdir" MANDIR=/usr/share/man local-install
}
-md5sums="fbc5b153928d0489e429c7ab4384b0d9 syslinux-4.01.tar.bz2"
+md5sums="52912c03f5c275d6c0ac09180ebab81f syslinux-4.02.tar.bz2"
diff --git a/testing/tcpflow/APKBUILD b/main/tcpflow/APKBUILD
index 244730363..ce3270721 100644
--- a/testing/tcpflow/APKBUILD
+++ b/main/tcpflow/APKBUILD
@@ -1,12 +1,12 @@
# Contributor: Michael Mason <ms13sp@gmail.com>
-# Maintainer: Michael Mason <ms13sp@gmail.com>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=tcpflow
pkgver=0.21
-pkgrel=0
+pkgrel=1
pkgdesc="A Tool for monitoring, capturing and storing TCP connections flows"
url="http://www.circlemud.org/~jelson/software/tcpflow/"
license="GPL"
-depends="libpcap"
+depends=
makedepends="libpcap-dev"
install=
subpackages="$pkgname-doc"
@@ -20,6 +20,10 @@ build() {
--mandir=/usr/share/man \
--infodir=/usr/share/info
make || return 1
+}
+
+package() {
+ cd "$srcdir"/$pkgname-$pkgver
make DESTDIR="$pkgdir" install
}
diff --git a/main/transmission/APKBUILD b/main/transmission/APKBUILD
index 35b5807ff..0a25cb7ce 100644
--- a/main/transmission/APKBUILD
+++ b/main/transmission/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer:Carlo Landmeter
pkgname=transmission
-pkgver=2.01
+pkgver=2.03
pkgrel=0
pkgdesc="Lightweight GTK BitTorrent client"
url="http://www.tansmissionbt.com"
@@ -47,6 +47,6 @@ cli() {
"$subpkgdir"/usr/bin/
}
-md5sums="2e896b86fd55c3563ef85cd01a2141a3 transmission-2.01.tar.bz2
+md5sums="7296c85673ed767a35de3883cb27b545 transmission-2.03.tar.bz2
f65b8ae46f8ac89b35844109b3aa0c18 transmission-daemon.initd
89478a70fcd93463e1dd8d751da994da transmission-daemon.confd"
diff --git a/main/wireshark/APKBUILD b/main/wireshark/APKBUILD
index f1ab53087..b0e3c937e 100644
--- a/main/wireshark/APKBUILD
+++ b/main/wireshark/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Jeremy Thomerson <jeremy@thomersonfamily.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=wireshark
-pkgver=1.2.9
+pkgver=1.2.10
pkgrel=0
pkgdesc="network protocol analyzer - GTK version"
url="http://www.wireshark.org"
@@ -72,7 +72,7 @@ tshark() {
mv "$pkgdir"/usr/bin/tshark "$subpkgdir"/usr/bin/tshark
}
-md5sums="a4240c36f1e668d85b703eacb7c0a95e wireshark-1.2.9.tar.bz2
+md5sums="f8bc926956c13fcddb4df0601011ceef wireshark-1.2.10.tar.bz2
cc87d7eb31f256df751b3371b1c426e9 wireshark-1.1.2--as-needed.patch
504ede44c02b2a52f6cbd3bffdf93b8d wireshark.desktop
e771800a8c977fe223583a453bc27397 wireshark.png"
diff --git a/main/xf86-video-cirrus/APKBUILD b/main/xf86-video-cirrus/APKBUILD
index db531d89d..c2412a6a8 100644
--- a/main/xf86-video-cirrus/APKBUILD
+++ b/main/xf86-video-cirrus/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=xf86-video-cirrus
pkgver=1.3.2
-pkgrel=2
+pkgrel=3
pkgdesc="Cirrus Logic video driver"
url="http://xorg.freedesktop.org/"
license="custom"
@@ -10,7 +10,17 @@ depends=
makedepends="pkgconfig xorg-server-dev libxi-dev fontsproto randrproto
videoproto renderproto"
-source="http://xorg.freedesktop.org/releases/individual/driver/$pkgname-$pkgver.tar.bz2"
+source="http://xorg.freedesktop.org/releases/individual/driver/$pkgname-$pkgver.tar.bz2
+ qemu.patch"
+
+prepare() {
+ cd "$srcdir"/$pkgname-$pkgver
+ for i in $source; do
+ case $i in
+ *.patch) patch -p1 -i "$srcdir"/$i || return 1
+ esac
+ done
+}
build() {
cd "$srcdir"/$pkgname-$pkgver
@@ -24,4 +34,5 @@ package() {
make DESTDIR="$pkgdir" install || return 1
install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
}
-md5sums="8195d03ed0be0975c03441e66a9f53b3 xf86-video-cirrus-1.3.2.tar.bz2"
+md5sums="8195d03ed0be0975c03441e66a9f53b3 xf86-video-cirrus-1.3.2.tar.bz2
+b3bd556766fcd0fee51ae0c286f75f05 qemu.patch"
diff --git a/main/xf86-video-cirrus/qemu.patch b/main/xf86-video-cirrus/qemu.patch
new file mode 100644
index 000000000..444fb6010
--- /dev/null
+++ b/main/xf86-video-cirrus/qemu.patch
@@ -0,0 +1,25 @@
+diff -up xf86-video-cirrus-1.2.0/src/alp_driver.c.jx xf86-video-cirrus-1.2.0/src/alp_driver.c
+--- xf86-video-cirrus-1.2.0/src/alp_driver.c.jx 2008-03-19 10:29:23.000000000 -0400
++++ xf86-video-cirrus-1.2.0/src/alp_driver.c 2009-02-27 10:59:27.000000000 -0500
+@@ -812,6 +812,20 @@ AlpPreInit(ScrnInfoPtr pScrn, int flags)
+ else
+ xf86SetDDCproperties(pScrn,xf86PrintEDID(
+ xf86DoEDID_DDC2(pScrn->scrnIndex,pCir->I2CPtr1)));
++#ifdef XSERVER_LIBPCIACCESS
++ if (!pScrn->monitor->DDC &&
++ ((pCir->PciInfo->subvendor_id & 0xffff) == 0x1af4)) {
++ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
++ "Defaulting to 1024x768 for QEMU\n");
++ pScrn->monitor->nHsync = 1;
++ pScrn->monitor->hsync[0].lo = 31.5;
++ pScrn->monitor->hsync[0].hi = 48.0;
++ pScrn->monitor->nVrefresh = 1;
++ pScrn->monitor->vrefresh[0].lo = 56.0;
++ pScrn->monitor->vrefresh[0].hi = 60.1;
++ pScrn->monitor->maxPixClock = 65000;
++ }
++#endif
+
+ /* Probe the possible LCD display */
+ AlpProbeLCD(pScrn);
+
diff --git a/main/xinit/06_move_serverauthfile_into_tmp.patch b/main/xinit/06_move_serverauthfile_into_tmp.patch
new file mode 100644
index 000000000..99e8a6754
--- /dev/null
+++ b/main/xinit/06_move_serverauthfile_into_tmp.patch
@@ -0,0 +1,20 @@
+Move startx auth files in /tmp so they are removed on reboot.
+http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=357736
+The trap patch didn't seem to work on reboot.
+---
+ startx.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: xinit/startx.cpp
+===================================================================
+--- xinit.orig/startx.cpp
++++ xinit/startx.cpp
+@@ -273,7 +273,7 @@
+ dummy=0
+
+ XCOMM create a file with auth information for the server. ':0' is a dummy.
+- xserverauthfile=$HOME/.serverauth.$$
++ xserverauthfile=`mktemp -p /tmp serverauth.XXXXXXXXXX`
+ trap "rm -f '$xserverauthfile'" HUP INT QUIT ILL TRAP KILL BUS TERM
+ xauth -q -f "$xserverauthfile" << EOF
+ add :$dummy . $mcookie
diff --git a/main/xinit/APKBUILD b/main/xinit/APKBUILD
index 86eb500e5..1ef089884 100644
--- a/main/xinit/APKBUILD
+++ b/main/xinit/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=xinit
-pkgver=1.1.1
-pkgrel=4
+pkgver=1.2.1
+pkgrel=1
pkgdesc="X.Org initialisation program "
url="http://xorg.freedesktop.org/"
license="GPL"
@@ -9,26 +9,39 @@ subpackages="$pkgname-doc"
depends="xauth"
makedepends="pkgconfig libx11-dev"
source="http://xorg.freedesktop.org/releases/individual/app/xinit-$pkgver.tar.bz2
+ 06_move_serverauthfile_into_tmp.patch
xinitrc
xsession
xserverrc"
+prepare() {
+ cd "$srcdir"/xinit-$pkgver
+ for i in $source; do
+ case $i in
+ *.patch) patch -p1 -i "$srcdir"/$i
+ esac
+ done
+}
+
build() {
cd "$srcdir"/xinit-$pkgver
- ./configure --prefix=/usr || return 1
- make XINITDIR=/etc/X11/xinit || return 1
+ ./configure --prefix=/usr \
+ --with-xinitdir=/etc/X11/xinit \
+ || return 1
+ make || return 1
}
package() {
cd "$srcdir"/xinit-$pkgver
- make XINITDIR=/etc/X11/xinit DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install || return 1
chmod +x "$pkgdir"/usr/bin/startx
install -m755 -d "$pkgdir"/etc/skel
install -m755 -D "$srcdir"/xinitrc "$pkgdir"/etc/X11/xinit/xinitrc
install -m755 "$srcdir"/xsession "$pkgdir"/etc/skel/.xsession || return 1
install -m755 "$srcdir"/xserverrc "$pkgdir"/etc/X11/xinit/xserverrc || return 1
}
-md5sums="93c73705ed9eb1e1a6b6938405672f2b xinit-1.1.1.tar.bz2
+md5sums="56f2d202b3dc10fcd21931a67bb270f7 xinit-1.2.1.tar.bz2
+abd072ec435ce084cf4e89c58f83d45c 06_move_serverauthfile_into_tmp.patch
af322d72972d5722b7fc0a9e8f025b15 xinitrc
4f04d2891ea87f50fde518267b7a1154 xsession
-bb550d3b9a2d2b6cbe6e2667a3a7cd03 xserverrc"
+4d29a1104997609e10206a4c1408237d xserverrc"
diff --git a/main/xinit/xserverrc b/main/xinit/xserverrc
index 6a636c119..2537aedcb 100644
--- a/main/xinit/xserverrc
+++ b/main/xinit/xserverrc
@@ -1 +1,2 @@
+#!/bin/sh
exec /usr/bin/X -nolisten tcp
diff --git a/testing/apache2/APKBUILD b/testing/apache2/APKBUILD
new file mode 100644
index 000000000..a072fbab4
--- /dev/null
+++ b/testing/apache2/APKBUILD
@@ -0,0 +1,160 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=apache2
+pkgver=2.2.16
+pkgrel=1
+pkgdesc="A high performance Unix-based HTTP server"
+url="http://httpd.apache.org/"
+license="APACHE"
+depends=""
+pkgusers="apache"
+pkggroups="apache"
+makedepends="openssl-dev zlib-dev apr-util-dev apr-dev pcre-dev
+ autoconf automake"
+subpackages="$pkgname-dev $pkgname-doc $pkgname-utils"
+source="http://archive.apache.org/dist/httpd/httpd-$pkgver.tar.bz2
+ http://mpm-itk.sesse.net/apache2.2-mpm-itk-2.2.11-02/02-rename-prefork-to-itk.patch
+ http://mpm-itk.sesse.net/apache2.2-mpm-itk-2.2.11-02/03-add-mpm-to-build-system.patch
+ http://mpm-itk.sesse.net/apache2.2-mpm-itk-2.2.11-02/04-correct-output-makefile-location.patch
+ http://mpm-itk.sesse.net/apache2.2-mpm-itk-2.2.11-02/05-add-copyright.patch
+ http://mpm-itk.sesse.net/apache2.2-mpm-itk-2.2.11-02/06-hook-just-after-merging-perdir-config.patch
+ http://mpm-itk.sesse.net/apache2.2-mpm-itk-2.2.11-02/07-base-functionality.patch
+ http://mpm-itk.sesse.net/apache2.2-mpm-itk-2.2.11-02/08-max-clients-per-vhost.patch
+ http://mpm-itk.sesse.net/apache2.2-mpm-itk-2.2.11-02/09-capabilities.patch
+ http://mpm-itk.sesse.net/apache2.2-mpm-itk-2.2.11-02/10-nice.patch
+ apache2.confd
+ apache2.logrotate
+ apache2.initd
+ httpd.conf
+ alpine.layout"
+
+prepare() {
+ cd "$srcdir"
+ cat "$srcdir/alpine.layout" >> httpd-$pkgver/config.layout
+
+ # create symlinks to soruces for prefork and worker
+ ln -s httpd-$pkgver prefork
+ ln -s httpd-$pkgver worker
+
+ # make a patched clone of itk sources
+ cp -ra httpd-$pkgver itk
+ cd itk
+ mkdir -p server/mpm/experimental/itk
+ cp -r server/mpm/prefork/* \
+ server/mpm/experimental/itk/ || return 1
+ mv server/mpm/experimental/itk/prefork.c \
+ server/mpm/experimental/itk/itk.c || return 1
+ patch -Np1 -i "$srcdir/02-rename-prefork-to-itk.patch" || return 1
+ patch -Np1 -i "$srcdir/03-add-mpm-to-build-system.patch" || return 1
+ patch -Np1 -i "$srcdir/04-correct-output-makefile-location.patch" || return 1
+ patch -Np1 -i "$srcdir/05-add-copyright.patch" || return 1
+ patch -Np1 -i "$srcdir/06-hook-just-after-merging-perdir-config.patch" || return 1
+ patch -Np1 -i "$srcdir/07-base-functionality.patch" || return 1
+ patch -Np1 -i "$srcdir/08-max-clients-per-vhost.patch" || return 1
+ patch -Np1 -i "$srcdir/09-capabilities.patch" || return 1
+ patch -Np1 -i "$srcdir/10-nice.patch" || return 1
+ autoconf || return 1
+}
+
+_buildmpm() {
+ local mpm=$1
+ shift
+ mkdir "$srcdir"/build-${mpm}
+ cd "$srcdir"/build-${mpm}
+ "$srcdir"/$mpm/configure --prefix=/usr \
+ --enable-layout=Alpine \
+ --enable-so \
+ --enable-suexec \
+ --with-suexec-caller=http \
+ --with-suexec-docroot=/var/www/localhost/htdocs \
+ --with-suexec-logfile=/var/log/httpd/suexec.log \
+ --with-suexec-bin=/usr/sbin/suexec \
+ --with-suexec-uidmin=99 \
+ --with-suexec-gidmin=99 \
+ --with-apr=/usr/bin/apr-1-config \
+ --with-apr-util=/usr/bin/apu-1-config \
+ --with-pcre=/usr \
+ --with-mpm=${mpm} \
+ || return 1
+ make || return 1
+}
+
+build () {
+ local mpm
+
+ # build prefork with everything
+ _buildmpm prefork \
+ --enable-mods-shared=all \
+ --enable-ssl --with-ssl --enable-distcache \
+ --enable-proxy \
+ --enable-cache \
+ --enable-disk-cache \
+ --enable-mem-cache \
+ --enable-file-cache \
+ --enable-ldap --enable-authnz-ldap \
+ --enable-cgid \
+ --enable-authn-anon --enable-authn-alias \
+ --disable-imagemap \
+ --enable-proxy-connect \
+ --enable-proxy-http \
+ --enable-proxy-ftp \
+ --enable-deflate \
+ --enable-dbd \
+ || return 1
+
+ #build the alternative mpms, but without modules
+ for mpm in worker itk; do
+ _buildmpm $mpm --enable-modules=none
+ done
+}
+
+package() {
+ cd "$srcdir"/build-prefork
+ make -j1 DESTDIR="$pkgdir" install || return 1
+ for mpm in worker itk; do
+ install -m755 "$srcdir"/build-$mpm/httpd \
+ "$pkgdir/usr/sbin/httpd.${mpm}" || return 1
+ done
+
+ # config
+ rm -r "$pkgdir"/etc/apache2/httpd.conf \
+ "$pkgdir"/etc/apache2/extra
+ install -D -m644 "$srcdir"/httpd.conf "$pkgdir"/etc/apache2/httpd.conf
+ install -d "$pkgdir"/etc/apache2/conf.d
+
+ # init scripts and logrotate
+ install -D -m755 "$srcdir/apache2.initd" \
+ "$pkgdir/etc/init.d/apache2" || return 1
+ install -D -m644 "$srcdir/apache2.logrotate" \
+ "$pkgdir/etc/logrotate.d/apache2" || return 1
+ install -D -m644 "$srcdir/apache2.confd" \
+ "$pkgdir/etc/conf.d/apache2" || return 1
+
+ install -d "$pkgdir"/var/www
+ ln -fs /var/log/httpd "$pkgdir/var/www/logs"
+ ln -fs /var/run/httpd "$pkgdir/var/www/run"
+ ln -fs /usr/lib/apache2 "$pkgdir/var/www/modules"
+}
+
+utils() {
+ pkgdesc="Apache utility programs for webservers"
+ install -d "$subpkgdir"/usr/bin "$subpkgdir"/usr/sbin
+ cd "$pkgdir"/usr/sbin
+ mv ab dbmmanage htdbm htdigest htpasswd logresolve "$subpkgdir"/usr/bin
+ mv checkgid htcacheclean rotatelogs "$subpkgdir"/usr/sbin
+}
+
+md5sums="c8ff2a07c884300bc7766a2e7f662d33 httpd-2.2.16.tar.bz2
+db42cfcc18ae1c32aaaff2347e35b79d 02-rename-prefork-to-itk.patch
+131408ad4dc7b18547b4e062e7e495ab 03-add-mpm-to-build-system.patch
+ee488f391054d528547c3a372faa2aa7 04-correct-output-makefile-location.patch
+b202944761b2f0516196488b12504236 05-add-copyright.patch
+78fa15f8ca3a284b7d71f942e24e47fb 06-hook-just-after-merging-perdir-config.patch
+d33e39350e987721d50e6fb8e164ab6b 07-base-functionality.patch
+9f7a8935f9cabc7b46d0052906634cef 08-max-clients-per-vhost.patch
+1b28e3363e1b0d05b738a21e7ddd264f 09-capabilities.patch
+d9667fcd2ffecc63e446edd4d6666731 10-nice.patch
+e322b5211e49511cac6e40c86af1b1da apache2.confd
+75fe4138b98fcffd01b8c8c077b944f3 apache2.logrotate
+0261136ff734c3ae8dcf878a46ed5830 apache2.initd
+ea8669bd3b913c4d30f16b5a11c82564 httpd.conf
+af943bf52cec8088974084639661ba34 alpine.layout"
diff --git a/testing/apache2/alpine.layout b/testing/apache2/alpine.layout
new file mode 100644
index 000000000..7146971d2
--- /dev/null
+++ b/testing/apache2/alpine.layout
@@ -0,0 +1,22 @@
+<Layout Alpine>
+ prefix: /usr
+ exec_prefix: ${prefix}
+ bindir: ${prefix}/bin
+ sbindir: ${prefix}/sbin
+ libdir: ${prefix}/lib
+ libexecdir: ${prefix}/lib+
+ mandir: ${prefix}/share/man
+ sysconfdir: /etc+
+ datadir: ${usr}/share+
+ installbuilddir: ${datadir}/build
+ errordir: ${datadir}/error
+ iconsdir: ${datadir}/icons
+ htdocsdir: /var/www/localhost/htdocs
+ manualdir: /usr/share/doc/apache2/manual
+ cgidir: /var/www/cgi-bin
+ includedir: /usr/include+
+ localstatedir: /var
+ runtimedir: ${localstatedir}/run+
+ logfiledir: ${localstatedir}/log+
+ proxycachedir: ${localstatedir}/cache+
+</Layout>
diff --git a/testing/apache2/apache2.confd b/testing/apache2/apache2.confd
new file mode 100644
index 000000000..faf02fa97
--- /dev/null
+++ b/testing/apache2/apache2.confd
@@ -0,0 +1,54 @@
+# /etc/conf.d/apache2: config file for /etc/init.d/apache2
+
+#
+# The default processing model (MPM) is the process-based
+# 'prefork' model. A thread-based model, 'worker', is also
+# available, but does not work with some modules (such as PHP).
+#
+#HTTPD=/usr/sbin/httpd.worker
+
+HTTPD="/usr/sbin/httpd"
+
+#
+# To pass additional options (for instance, -D definitions) to the
+# httpd binary at startup, set HTTPD_OPTS here.
+#
+HTTPD_OPTS=
+
+# Extended options for advanced uses of Apache ONLY
+# You don't need to edit these unless you are doing crazy Apache stuff
+# As not having them set correctly, or feeding in an incorrect configuration
+# via them will result in Apache failing to start
+# YOU HAVE BEEN WARNED.
+
+# PID file
+#PIDFILE=/var/run/apache2/httpd.pid
+
+# timeout for startup/shutdown checks
+#TIMEOUT=10
+
+# ServerRoot setting
+#SERVERROOT=/var/www
+
+# Configuration file location
+# - If this does NOT start with a '/', then it is treated relative to
+# $SERVERROOT by Apache
+#CONFIGFILE=/etc/apache2/httpd.conf
+
+# Location to log startup errors to
+# They are normally dumped to your terminal.
+#STARTUPERRORLOG="/var/log/apache2/startuperror.log"
+
+# A command that outputs a formatted text version of the HTML at the URL
+# of the command line. Designed for lynx, however other programs may work.
+#LYNX="lynx -dump"
+
+# The URL to your server's mod_status status page.
+# Required for status and fullstatus
+#STATUSURL="http://localhost/server-status"
+
+# Method to use when reloading the server
+# Valid options are 'restart' and 'graceful'
+# See http://httpd.apache.org/docs/2.2/stopping.html for information on
+# what they do and how they differ.
+#RELOAD_TYPE="graceful"
diff --git a/testing/apache2/apache2.initd b/testing/apache2/apache2.initd
new file mode 100755
index 000000000..03a6d0303
--- /dev/null
+++ b/testing/apache2/apache2.initd
@@ -0,0 +1,154 @@
+#!/sbin/runscript
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+opts="configdump configtest fullstatus graceful gracefulstop modules reload virtualhosts"
+
+depend() {
+ need net
+ use mysql dns logger netmount postgresql
+ after sshd
+}
+
+configtest() {
+ ebegin "Checking ${SVCNAME} configuration"
+ checkconfig
+ eend $?
+}
+
+checkconfd() {
+ PIDFILE="${PIDFILE:-/var/run/apache2/httpd.pid}"
+ TIMEOUT=${TIMEOUT:-10}
+
+ SERVERROOT="${SERVERROOT:-/var/www}"
+ if [ ! -d ${SERVERROOT} ]; then
+ eerror "SERVERROOT does not exist: ${SERVERROOT}"
+ return 1
+ fi
+
+ CONFIGFILE="${CONFIGFILE:-/etc/apache2/httpd.conf}"
+ [ "${CONFIGFILE#/}" = "${CONFIGFILE}" ] && CONFIGFILE="${SERVERROOT}/${CONFIGFILE}"
+ if [ ! -r "${CONFIGFILE}" ]; then
+ eerror "Unable to read configuration file: ${CONFIGFILE}"
+ return 1
+ fi
+
+ HTTPD_OPTS="${HTTPD_OPTS} -d ${SERVERROOT}"
+ HTTPD_OPTS="${HTTPD_OPTS} -f ${CONFIGFILE}"
+ [ -n "${STARTUPERRORLOG}" ] && HTTPD_OPTS="${HTTPD_OPTS} -E ${STARTUPERRORLOG}"
+ return 0
+
+}
+
+checkconfig() {
+ checkconfd || return 1
+
+ ${HTTPD} ${HTTPD_OPTS} -t 1>/dev/null 2>&1
+ ret=$?
+ if [ $ret -ne 0 ]; then
+ eerror "${SVCNAME} has detected an error in your setup:"
+ ${HTTPD} ${HTTPD_OPTS} -t
+ fi
+
+ return $ret
+}
+
+start() {
+ checkconfig || return 1
+
+ [ -f /var/log/apache2/ssl_scache ] && rm /var/log/apache2/ssl_scache
+
+ ebegin "Starting ${SVCNAME}"
+ start-stop-daemon --start \
+ --pidfile ${PIDFILE} \
+ --exec ${HTTPD} \
+ -- ${HTTPD_OPTS} -k start
+ eend $?
+}
+
+stop() {
+ checkconfd || return 1
+
+ ebegin "Stopping ${SVCNAME}"
+ start-stop-daemon --stop --pidfile ${PIDFILE} --exec ${HTTPD} \
+ --retry ${TIMEOUT}
+ eend $?
+}
+
+reload() {
+ RELOAD_TYPE="${RELOAD_TYPE:-graceful}"
+
+ checkconfig || return 1
+ service_started "${SVCNAME}" || return
+
+ if [ "${RELOAD_TYPE}" = "restart" ]; then
+ ebegin "Restarting ${SVCNAME}"
+ ${HTTPD} ${HTTPD_OPTS} -k restart
+ eend $?
+ elif [ "${RELOAD_TYPE}" = "graceful" ]; then
+ ebegin "Gracefully restarting ${SVCNAME}"
+ ${HTTPD} ${HTTPD_OPTS} -k graceful
+ eend $?
+ else
+ eerror "${RELOAD_TYPE} is not a valid RELOAD_TYPE. Please edit /etc/conf.d/${SVCNAME}"
+ fi
+}
+
+graceful() {
+ checkconfig || return 1
+ service_started "${SVCNAME}" || return
+ ebegin "Gracefully restarting ${SVCNAME}"
+ ${HTTPD} ${HTTPD_OPTS} -k graceful
+ eend $?
+}
+
+gracefulstop() {
+ checkconfig || return 1
+ ebegin "Gracefully stopping ${SVCNAME}"
+ start-stop-daemon --stop --pidfile ${PIDFILE} --exec ${HTTPD} \
+ --retry SIGWINCH/${TIMEOUT}
+ eend $?
+}
+
+modules() {
+ checkconfig || return 1
+
+ ${HTTPD} ${HTTPD_OPTS} -M 2>&1
+}
+
+fullstatus() {
+ LYNX="${LYNX:-lynx -dump}"
+ STATUSURL="${STATUSURL:-http://localhost/server-status}"
+
+ if ! service_started "${SVCNAME}"; then
+ eerror "${SVCNAME} not started"
+ elif ! type -p $(set -- ${LYNX}; echo $1) 2>&1 >/dev/null; then
+ eerror "lynx not found! you need to emerge www-client/lynx"
+ else
+ ${LYNX} ${STATUSURL}
+ fi
+}
+
+virtualhosts() {
+ checkconfd || return 1
+ ${HTTPD} ${HTTPD_OPTS} -S
+}
+
+configdump() {
+ LYNX="${LYNX:-lynx -dump}"
+ INFOURL="${INFOURL:-http://localhost/server-info}"
+
+ checkconfd || return 1
+
+ if ! service_started "${SVCNAME}"; then
+ eerror "${SVCNAME} not started"
+ elif ! type -p $(set -- ${LYNX}; echo $1) 2>&1 >/dev/null; then
+ eerror "lynx not found! you need to emerge www-client/lynx"
+ else
+ echo "${HTTPD} started with '${HTTPD_OPTS}'"
+ for i in config server list; do
+ ${LYNX} "${INFOURL}/?${i}" | sed '/Apache Server Information/d;/^[[:space:]]\+[_]\+$/Q'
+ done
+ fi
+}
+
diff --git a/testing/apache2/apache2.logrotate b/testing/apache2/apache2.logrotate
new file mode 100644
index 000000000..fe19a4381
--- /dev/null
+++ b/testing/apache2/apache2.logrotate
@@ -0,0 +1,10 @@
+/var/log/apache2/*log {
+ missingok
+ notifempty
+ sharedscripts
+ delaycompress
+ postrotate
+ /sbin/rc-service --quiet apache2 reload > /dev/null 2>/dev/null || true
+ endscript
+}
+
diff --git a/testing/apache2/httpd.conf b/testing/apache2/httpd.conf
new file mode 100644
index 000000000..5e0adee65
--- /dev/null
+++ b/testing/apache2/httpd.conf
@@ -0,0 +1,1009 @@
+#
+# This is the main Apache server configuration file. It contains the
+# configuration directives that give the server its instructions.
+# See <URL:http://httpd.apache.org/docs/2.2/> for detailed information.
+# In particular, see
+# <URL:http://httpd.apache.org/docs/2.2/mod/directives.html>
+# for a discussion of each configuration directive.
+#
+#
+# Do NOT simply read the instructions in here without understanding
+# what they do. They're here only as hints or reminders. If you are unsure
+# consult the online docs. You have been warned.
+#
+# The configuration directives are grouped into three basic sections:
+# 1. Directives that control the operation of the Apache server process as a
+# whole (the 'global environment').
+# 2. Directives that define the parameters of the 'main' or 'default' server,
+# which responds to requests that aren't handled by a virtual host.
+# These directives also provide default values for the settings
+# of all virtual hosts.
+# 3. Settings for virtual hosts, which allow Web requests to be sent to
+# different IP addresses or hostnames and have them handled by the
+# same Apache server process.
+#
+# Configuration and logfile names: If the filenames you specify for many
+# of the server's control files begin with "/" (or "drive:/" for Win32), the
+# server will use that explicit path. If the filenames do *not* begin
+# with "/", the value of ServerRoot is prepended -- so "logs/foo.log"
+# with ServerRoot set to "/etc/httpd" will be interpreted by the
+# server as "/etc/httpd/logs/foo.log".
+#
+
+### Section 1: Global Environment
+#
+# The directives in this section affect the overall operation of Apache,
+# such as the number of concurrent requests it can handle or where it
+# can find its configuration files.
+#
+
+#
+# Don't give away too much information about all the subcomponents
+# we are running. Comment out this line if you don't mind remote sites
+# finding out what major optional modules you are running
+ServerTokens OS
+
+#
+# ServerRoot: The top of the directory tree under which the server's
+# configuration, error, and log files are kept.
+#
+# NOTE! If you intend to place this on an NFS (or otherwise network)
+# mounted filesystem then please read the LockFile documentation
+# (available at <URL:http://httpd.apache.org/docs/2.2/mod/mpm_common.html#lockfile>);
+# you will save yourself a lot of trouble.
+#
+# Do NOT add a slash at the end of the directory path.
+#
+ServerRoot "/var/www"
+
+#
+# PidFile: The file in which the server should record its process
+# identification number when it starts. Note the PIDFILE variable in
+# /etc/conf.d/apache2 must be set appropriately if this location is
+# changed.
+#
+PidFile run/httpd.pid
+
+#
+# Timeout: The number of seconds before receives and sends time out.
+#
+Timeout 60
+
+#
+# KeepAlive: Whether or not to allow persistent connections (more than
+# one request per connection). Set to "Off" to deactivate.
+#
+KeepAlive Off
+
+#
+# MaxKeepAliveRequests: The maximum number of requests to allow
+# during a persistent connection. Set to 0 to allow an unlimited amount.
+# We recommend you leave this number high, for maximum performance.
+#
+MaxKeepAliveRequests 100
+
+#
+# KeepAliveTimeout: Number of seconds to wait for the next request from the
+# same client on the same connection.
+#
+KeepAliveTimeout 5
+
+##
+## Server-Pool Size Regulation (MPM specific)
+##
+
+# prefork MPM
+# StartServers: number of server processes to start
+# MinSpareServers: minimum number of server processes which are kept spare
+# MaxSpareServers: maximum number of server processes which are kept spare
+# ServerLimit: maximum value for MaxClients for the lifetime of the server
+# MaxClients: maximum number of server processes allowed to start
+# MaxRequestsPerChild: maximum number of requests a server process serves
+<IfModule prefork.c>
+StartServers 8
+MinSpareServers 5
+MaxSpareServers 20
+ServerLimit 256
+MaxClients 256
+MaxRequestsPerChild 4000
+</IfModule>
+
+# worker MPM
+# StartServers: initial number of server processes to start
+# MaxClients: maximum number of simultaneous client connections
+# MinSpareThreads: minimum number of worker threads which are kept spare
+# MaxSpareThreads: maximum number of worker threads which are kept spare
+# ThreadsPerChild: constant number of worker threads in each server process
+# MaxRequestsPerChild: maximum number of requests a server process serves
+<IfModule worker.c>
+StartServers 4
+MaxClients 300
+MinSpareThreads 25
+MaxSpareThreads 75
+ThreadsPerChild 25
+MaxRequestsPerChild 0
+</IfModule>
+
+#
+# Listen: Allows you to bind Apache to specific IP addresses and/or
+# ports, in addition to the default. See also the <VirtualHost>
+# directive.
+#
+# Change this to Listen on specific IP addresses as shown below to
+# prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
+#
+#Listen 12.34.56.78:80
+Listen 80
+
+#
+# Dynamic Shared Object (DSO) Support
+#
+# To be able to use the functionality of a module which was built as a DSO you
+# have to place corresponding `LoadModule' lines at this location so the
+# directives contained in it are actually available _before_ they are used.
+# Statically compiled modules (those listed by `httpd -l') do not need
+# to be loaded here.
+#
+# Example:
+# LoadModule foo_module modules/mod_foo.so
+#
+LoadModule auth_basic_module modules/mod_auth_basic.so
+LoadModule auth_digest_module modules/mod_auth_digest.so
+LoadModule authn_file_module modules/mod_authn_file.so
+LoadModule authn_alias_module modules/mod_authn_alias.so
+LoadModule authn_anon_module modules/mod_authn_anon.so
+LoadModule authn_dbm_module modules/mod_authn_dbm.so
+LoadModule authn_default_module modules/mod_authn_default.so
+LoadModule authz_host_module modules/mod_authz_host.so
+LoadModule authz_user_module modules/mod_authz_user.so
+LoadModule authz_owner_module modules/mod_authz_owner.so
+LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
+LoadModule authz_dbm_module modules/mod_authz_dbm.so
+LoadModule authz_default_module modules/mod_authz_default.so
+LoadModule ldap_module modules/mod_ldap.so
+LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
+LoadModule include_module modules/mod_include.so
+LoadModule log_config_module modules/mod_log_config.so
+LoadModule logio_module modules/mod_logio.so
+LoadModule env_module modules/mod_env.so
+LoadModule ext_filter_module modules/mod_ext_filter.so
+LoadModule mime_magic_module modules/mod_mime_magic.so
+LoadModule expires_module modules/mod_expires.so
+LoadModule deflate_module modules/mod_deflate.so
+LoadModule headers_module modules/mod_headers.so
+LoadModule usertrack_module modules/mod_usertrack.so
+LoadModule setenvif_module modules/mod_setenvif.so
+LoadModule mime_module modules/mod_mime.so
+LoadModule dav_module modules/mod_dav.so
+LoadModule status_module modules/mod_status.so
+LoadModule autoindex_module modules/mod_autoindex.so
+LoadModule info_module modules/mod_info.so
+LoadModule dav_fs_module modules/mod_dav_fs.so
+LoadModule vhost_alias_module modules/mod_vhost_alias.so
+LoadModule negotiation_module modules/mod_negotiation.so
+LoadModule dir_module modules/mod_dir.so
+LoadModule actions_module modules/mod_actions.so
+LoadModule speling_module modules/mod_speling.so
+LoadModule userdir_module modules/mod_userdir.so
+LoadModule alias_module modules/mod_alias.so
+LoadModule substitute_module modules/mod_substitute.so
+LoadModule rewrite_module modules/mod_rewrite.so
+LoadModule proxy_module modules/mod_proxy.so
+LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
+LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
+LoadModule proxy_http_module modules/mod_proxy_http.so
+LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
+LoadModule proxy_connect_module modules/mod_proxy_connect.so
+LoadModule cache_module modules/mod_cache.so
+LoadModule suexec_module modules/mod_suexec.so
+LoadModule disk_cache_module modules/mod_disk_cache.so
+LoadModule cgi_module modules/mod_cgi.so
+LoadModule version_module modules/mod_version.so
+
+#
+# The following modules are not loaded by default:
+#
+#LoadModule asis_module modules/mod_asis.so
+#LoadModule authn_dbd_module modules/mod_authn_dbd.so
+#LoadModule cern_meta_module modules/mod_cern_meta.so
+#LoadModule cgid_module modules/mod_cgid.so
+#LoadModule dbd_module modules/mod_dbd.so
+#LoadModule dumpio_module modules/mod_dumpio.so
+#LoadModule filter_module modules/mod_filter.so
+#LoadModule ident_module modules/mod_ident.so
+#LoadModule log_forensic_module modules/mod_log_forensic.so
+#LoadModule unique_id_module modules/mod_unique_id.so
+#
+
+#
+# Load config files from the config directory "/etc/httpd/conf.d".
+#
+Include conf.d/*.conf
+
+#
+# ExtendedStatus controls whether Apache will generate "full" status
+# information (ExtendedStatus On) or just basic information (ExtendedStatus
+# Off) when the "server-status" handler is called. The default is Off.
+#
+#ExtendedStatus On
+
+#
+# If you wish httpd to run as a different user or group, you must run
+# httpd as root initially and it will switch.
+#
+# User/Group: The name (or #number) of the user/group to run httpd as.
+# . On SCO (ODT 3) use "User nouser" and "Group nogroup".
+# . On HPUX you may not be able to use shared memory as nobody, and the
+# suggested workaround is to create a user www and use that user.
+# NOTE that some kernels refuse to setgid(Group) or semctl(IPC_SET)
+# when the value of (unsigned)Group is above 60000;
+# don't use Group #-1 on these systems!
+#
+User apache
+Group apache
+
+### Section 2: 'Main' server configuration
+#
+# The directives in this section set up the values used by the 'main'
+# server, which responds to any requests that aren't handled by a
+# <VirtualHost> definition. These values also provide defaults for
+# any <VirtualHost> containers you may define later in the file.
+#
+# All of these directives may appear inside <VirtualHost> containers,
+# in which case these default settings will be overridden for the
+# virtual host being defined.
+#
+
+#
+# ServerAdmin: Your address, where problems with the server should be
+# e-mailed. This address appears on some server-generated pages, such
+# as error documents. e.g. admin@your-domain.com
+#
+ServerAdmin root@localhost
+
+#
+# ServerName gives the name and port that the server uses to identify itself.
+# This can often be determined automatically, but we recommend you specify
+# it explicitly to prevent problems during startup.
+#
+# If this is not set to valid DNS name for your host, server-generated
+# redirections will not work. See also the UseCanonicalName directive.
+#
+# If your host doesn't have a registered DNS name, enter its IP address here.
+# You will have to access it by its address anyway, and this will make
+# redirections work in a sensible way.
+#
+#ServerName www.example.com:80
+
+#
+# UseCanonicalName: Determines how Apache constructs self-referencing
+# URLs and the SERVER_NAME and SERVER_PORT variables.
+# When set "Off", Apache will use the Hostname and Port supplied
+# by the client. When set "On", Apache will use the value of the
+# ServerName directive.
+#
+UseCanonicalName Off
+
+#
+# DocumentRoot: The directory out of which you will serve your
+# documents. By default, all requests are taken from this directory, but
+# symbolic links and aliases may be used to point to other locations.
+#
+DocumentRoot "/var/www/localhost/htdocs"
+
+#
+# Each directory to which Apache has access can be configured with respect
+# to which services and features are allowed and/or disabled in that
+# directory (and its subdirectories).
+#
+# First, we configure the "default" to be a very restrictive set of
+# features.
+#
+<Directory />
+ Options FollowSymLinks
+ AllowOverride None
+</Directory>
+
+#
+# Note that from this point forward you must specifically allow
+# particular features to be enabled - so if something's not working as
+# you might expect, make sure that you have specifically enabled it
+# below.
+#
+
+#
+# This should be changed to whatever you set DocumentRoot to.
+#
+<Directory "/var/www/localhost/htdocs">
+
+#
+# Possible values for the Options directive are "None", "All",
+# or any combination of:
+# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
+#
+# Note that "MultiViews" must be named *explicitly* --- "Options All"
+# doesn't give it to you.
+#
+# The Options directive is both complicated and important. Please see
+# http://httpd.apache.org/docs/2.2/mod/core.html#options
+# for more information.
+#
+ Options Indexes FollowSymLinks
+
+#
+# AllowOverride controls what directives may be placed in .htaccess files.
+# It can be "All", "None", or any combination of the keywords:
+# Options FileInfo AuthConfig Limit
+#
+ AllowOverride None
+
+#
+# Controls who can get stuff from this server.
+#
+ Order allow,deny
+ Allow from all
+
+</Directory>
+
+#
+# UserDir: The name of the directory that is appended onto a user's home
+# directory if a ~user request is received.
+#
+# The path to the end user account 'public_html' directory must be
+# accessible to the webserver userid. This usually means that ~userid
+# must have permissions of 711, ~userid/public_html must have permissions
+# of 755, and documents contained therein must be world-readable.
+# Otherwise, the client will only receive a "403 Forbidden" message.
+#
+# See also: http://httpd.apache.org/docs/misc/FAQ.html#forbidden
+#
+<IfModule mod_userdir.c>
+ #
+ # UserDir is disabled by default since it can confirm the presence
+ # of a username on the system (depending on home directory
+ # permissions).
+ #
+ UserDir disabled
+
+ #
+ # To enable requests to /~user/ to serve the user's public_html
+ # directory, remove the "UserDir disabled" line above, and uncomment
+ # the following line instead:
+ #
+ #UserDir public_html
+
+</IfModule>
+
+#
+# Control access to UserDir directories. The following is an example
+# for a site where these directories are restricted to read-only.
+#
+#<Directory /home/*/public_html>
+# AllowOverride FileInfo AuthConfig Limit
+# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
+# <Limit GET POST OPTIONS>
+# Order allow,deny
+# Allow from all
+# </Limit>
+# <LimitExcept GET POST OPTIONS>
+# Order deny,allow
+# Deny from all
+# </LimitExcept>
+#</Directory>
+
+#
+# DirectoryIndex: sets the file that Apache will serve if a directory
+# is requested.
+#
+# The index.html.var file (a type-map) is used to deliver content-
+# negotiated documents. The MultiViews Option can be used for the
+# same purpose, but it is much slower.
+#
+DirectoryIndex index.html index.html.var
+
+#
+# AccessFileName: The name of the file to look for in each directory
+# for additional configuration directives. See also the AllowOverride
+# directive.
+#
+AccessFileName .htaccess
+
+#
+# The following lines prevent .htaccess and .htpasswd files from being
+# viewed by Web clients.
+#
+<Files ~ "^\.ht">
+ Order allow,deny
+ Deny from all
+ Satisfy All
+</Files>
+
+#
+# TypesConfig describes where the mime.types file (or equivalent) is
+# to be found.
+#
+TypesConfig /etc/apache2/mime.types
+
+#
+# DefaultType is the default MIME type the server will use for a document
+# if it cannot otherwise determine one, such as from filename extensions.
+# If your server contains mostly text or HTML documents, "text/plain" is
+# a good value. If most of your content is binary, such as applications
+# or images, you may want to use "application/octet-stream" instead to
+# keep browsers from trying to display binary files as though they are
+# text.
+#
+DefaultType text/plain
+
+#
+# The mod_mime_magic module allows the server to use various hints from the
+# contents of the file itself to determine its type. The MIMEMagicFile
+# directive tells the module where the hint definitions are located.
+#
+<IfModule mod_mime_magic.c>
+# MIMEMagicFile /usr/share/magic.mime
+ MIMEMagicFile conf/magic
+</IfModule>
+
+#
+# HostnameLookups: Log the names of clients or just their IP addresses
+# e.g., www.apache.org (on) or 204.62.129.132 (off).
+# The default is off because it'd be overall better for the net if people
+# had to knowingly turn this feature on, since enabling it means that
+# each client request will result in AT LEAST one lookup request to the
+# nameserver.
+#
+HostnameLookups Off
+
+#
+# EnableMMAP: Control whether memory-mapping is used to deliver
+# files (assuming that the underlying OS supports it).
+# The default is on; turn this off if you serve from NFS-mounted
+# filesystems. On some systems, turning it off (regardless of
+# filesystem) can improve performance; for details, please see
+# http://httpd.apache.org/docs/2.2/mod/core.html#enablemmap
+#
+#EnableMMAP off
+
+#
+# EnableSendfile: Control whether the sendfile kernel support is
+# used to deliver files (assuming that the OS supports it).
+# The default is on; turn this off if you serve from NFS-mounted
+# filesystems. Please see
+# http://httpd.apache.org/docs/2.2/mod/core.html#enablesendfile
+#
+#EnableSendfile off
+
+#
+# ErrorLog: The location of the error log file.
+# If you do not specify an ErrorLog directive within a <VirtualHost>
+# container, error messages relating to that virtual host will be
+# logged here. If you *do* define an error logfile for a <VirtualHost>
+# container, that host's errors will be logged there and not here.
+#
+ErrorLog logs/error.log
+
+#
+# LogLevel: Control the number of messages logged to the error.log.
+# Possible values include: debug, info, notice, warn, error, crit,
+# alert, emerg.
+#
+LogLevel warn
+
+#
+# The following directives define some format nicknames for use with
+# a CustomLog directive (see below).
+#
+LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
+LogFormat "%h %l %u %t \"%r\" %>s %b" common
+LogFormat "%{Referer}i -> %U" referer
+LogFormat "%{User-agent}i" agent
+
+# "combinedio" includes actual counts of actual bytes received (%I) and sent (%O); this
+# requires the mod_logio module to be loaded.
+#LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
+
+#
+# The location and format of the access logfile (Common Logfile Format).
+# If you do not define any access logfiles within a <VirtualHost>
+# container, they will be logged here. Contrariwise, if you *do*
+# define per-<VirtualHost> access logfiles, transactions will be
+# logged therein and *not* in this file.
+#
+#CustomLog logs/access.log common
+
+#
+# If you would like to have separate agent and referer logfiles, uncomment
+# the following directives.
+#
+#CustomLog logs/referer.log referer
+#CustomLog logs/agent.log agent
+
+#
+# For a single logfile with access, agent, and referer information
+# (Combined Logfile Format), use the following directive:
+#
+CustomLog logs/access.log combined
+
+#
+# Optionally add a line containing the server version and virtual host
+# name to server-generated pages (internal error documents, FTP directory
+# listings, mod_status and mod_info output etc., but not CGI generated
+# documents or custom error documents).
+# Set to "EMail" to also include a mailto: link to the ServerAdmin.
+# Set to one of: On | Off | EMail
+#
+ServerSignature On
+
+#
+# Aliases: Add here as many aliases as you need (with no limit). The format is
+# Alias fakename realname
+#
+# Note that if you include a trailing / on fakename then the server will
+# require it to be present in the URL. So "/icons" isn't aliased in this
+# example, only "/icons/". If the fakename is slash-terminated, then the
+# realname must also be slash terminated, and if the fakename omits the
+# trailing slash, the realname must also omit it.
+#
+# We include the /icons/ alias for FancyIndexed directory listings. If you
+# do not use FancyIndexing, you may comment this out.
+#
+Alias /icons/ "/usr/share/apache2/icons/"
+
+<Directory "/usr/share/apache2/icons">
+ Options Indexes MultiViews FollowSymLinks
+ AllowOverride None
+ Order allow,deny
+ Allow from all
+</Directory>
+
+#
+# WebDAV module configuration section.
+#
+<IfModule mod_dav_fs.c>
+ # Location of the WebDAV lock database.
+ DAVLockDB /var/lib/dav/lockdb
+</IfModule>
+
+#
+# ScriptAlias: This controls which directories contain server scripts.
+# ScriptAliases are essentially the same as Aliases, except that
+# documents in the realname directory are treated as applications and
+# run by the server when requested rather than as documents sent to the client.
+# The same rules about trailing "/" apply to ScriptAlias directives as to
+# Alias.
+#
+ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
+
+#
+# "/var/www/cgi-bin" should be changed to whatever your ScriptAliased
+# CGI directory exists, if you have that configured.
+#
+<Directory "/var/www/cgi-bin">
+ AllowOverride None
+ Options None
+ Order allow,deny
+ Allow from all
+</Directory>
+
+#
+# Redirect allows you to tell clients about documents which used to exist in
+# your server's namespace, but do not anymore. This allows you to tell the
+# clients where to look for the relocated document.
+# Example:
+# Redirect permanent /foo http://www.example.com/bar
+
+#
+# Directives controlling the display of server-generated directory listings.
+#
+
+#
+# IndexOptions: Controls the appearance of server-generated directory
+# listings.
+#
+IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable Charset=UTF-8
+
+#
+# AddIcon* directives tell the server which icon to show for different
+# files or filename extensions. These are only displayed for
+# FancyIndexed directories.
+#
+AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
+
+AddIconByType (TXT,/icons/text.gif) text/*
+AddIconByType (IMG,/icons/image2.gif) image/*
+AddIconByType (SND,/icons/sound2.gif) audio/*
+AddIconByType (VID,/icons/movie.gif) video/*
+
+AddIcon /icons/binary.gif .bin .exe
+AddIcon /icons/binhex.gif .hqx
+AddIcon /icons/tar.gif .tar
+AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
+AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
+AddIcon /icons/a.gif .ps .ai .eps
+AddIcon /icons/layout.gif .html .shtml .htm .pdf
+AddIcon /icons/text.gif .txt
+AddIcon /icons/c.gif .c
+AddIcon /icons/p.gif .pl .py
+AddIcon /icons/f.gif .for
+AddIcon /icons/dvi.gif .dvi
+AddIcon /icons/uuencoded.gif .uu
+AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
+AddIcon /icons/tex.gif .tex
+AddIcon /icons/bomb.gif core
+
+AddIcon /icons/back.gif ..
+AddIcon /icons/hand.right.gif README
+AddIcon /icons/folder.gif ^^DIRECTORY^^
+AddIcon /icons/blank.gif ^^BLANKICON^^
+
+#
+# DefaultIcon is which icon to show for files which do not have an icon
+# explicitly set.
+#
+DefaultIcon /icons/unknown.gif
+
+#
+# AddDescription allows you to place a short description after a file in
+# server-generated indexes. These are only displayed for FancyIndexed
+# directories.
+# Format: AddDescription "description" filename
+#
+#AddDescription "GZIP compressed document" .gz
+#AddDescription "tar archive" .tar
+#AddDescription "GZIP compressed tar archive" .tgz
+
+#
+# ReadmeName is the name of the README file the server will look for by
+# default, and append to directory listings.
+#
+# HeaderName is the name of a file which should be prepended to
+# directory indexes.
+ReadmeName README.html
+HeaderName HEADER.html
+
+#
+# IndexIgnore is a set of filenames which directory indexing should ignore
+# and not include in the listing. Shell-style wildcarding is permitted.
+#
+IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
+
+#
+# DefaultLanguage and AddLanguage allows you to specify the language of
+# a document. You can then use content negotiation to give a browser a
+# file in a language the user can understand.
+#
+# Specify a default language. This means that all data
+# going out without a specific language tag (see below) will
+# be marked with this one. You probably do NOT want to set
+# this unless you are sure it is correct for all cases.
+#
+# * It is generally better to not mark a page as
+# * being a certain language than marking it with the wrong
+# * language!
+#
+# DefaultLanguage nl
+#
+# Note 1: The suffix does not have to be the same as the language
+# keyword --- those with documents in Polish (whose net-standard
+# language code is pl) may wish to use "AddLanguage pl .po" to
+# avoid the ambiguity with the common suffix for perl scripts.
+#
+# Note 2: The example entries below illustrate that in some cases
+# the two character 'Language' abbreviation is not identical to
+# the two character 'Country' code for its country,
+# E.g. 'Danmark/dk' versus 'Danish/da'.
+#
+# Note 3: In the case of 'ltz' we violate the RFC by using a three char
+# specifier. There is 'work in progress' to fix this and get
+# the reference data for rfc1766 cleaned up.
+#
+# Catalan (ca) - Croatian (hr) - Czech (cs) - Danish (da) - Dutch (nl)
+# English (en) - Esperanto (eo) - Estonian (et) - French (fr) - German (de)
+# Greek-Modern (el) - Hebrew (he) - Italian (it) - Japanese (ja)
+# Korean (ko) - Luxembourgeois* (ltz) - Norwegian Nynorsk (nn)
+# Norwegian (no) - Polish (pl) - Portugese (pt)
+# Brazilian Portuguese (pt-BR) - Russian (ru) - Swedish (sv)
+# Simplified Chinese (zh-CN) - Spanish (es) - Traditional Chinese (zh-TW)
+#
+AddLanguage ca .ca
+AddLanguage cs .cz .cs
+AddLanguage da .dk
+AddLanguage de .de
+AddLanguage el .el
+AddLanguage en .en
+AddLanguage eo .eo
+AddLanguage es .es
+AddLanguage et .et
+AddLanguage fr .fr
+AddLanguage he .he
+AddLanguage hr .hr
+AddLanguage it .it
+AddLanguage ja .ja
+AddLanguage ko .ko
+AddLanguage ltz .ltz
+AddLanguage nl .nl
+AddLanguage nn .nn
+AddLanguage no .no
+AddLanguage pl .po
+AddLanguage pt .pt
+AddLanguage pt-BR .pt-br
+AddLanguage ru .ru
+AddLanguage sv .sv
+AddLanguage zh-CN .zh-cn
+AddLanguage zh-TW .zh-tw
+
+#
+# LanguagePriority allows you to give precedence to some languages
+# in case of a tie during content negotiation.
+#
+# Just list the languages in decreasing order of preference. We have
+# more or less alphabetized them here. You probably want to change this.
+#
+LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
+
+#
+# ForceLanguagePriority allows you to serve a result page rather than
+# MULTIPLE CHOICES (Prefer) [in case of a tie] or NOT ACCEPTABLE (Fallback)
+# [in case no accepted languages matched the available variants]
+#
+ForceLanguagePriority Prefer Fallback
+
+#
+# Specify a default charset for all content served; this enables
+# interpretation of all content as UTF-8 by default. To use the
+# default browser choice (ISO-8859-1), or to allow the META tags
+# in HTML content to override this choice, comment out this
+# directive:
+#
+AddDefaultCharset UTF-8
+
+#
+# AddType allows you to add to or override the MIME configuration
+# file mime.types for specific file types.
+#
+#AddType application/x-tar .tgz
+
+#
+# AddEncoding allows you to have certain browsers uncompress
+# information on the fly. Note: Not all browsers support this.
+# Despite the name similarity, the following Add* directives have nothing
+# to do with the FancyIndexing customization directives above.
+#
+#AddEncoding x-compress .Z
+#AddEncoding x-gzip .gz .tgz
+
+# If the AddEncoding directives above are commented-out, then you
+# probably should define those extensions to indicate media types:
+#
+AddType application/x-compress .Z
+AddType application/x-gzip .gz .tgz
+
+#
+# MIME-types for downloading Certificates and CRLs
+#
+AddType application/x-x509-ca-cert .crt
+AddType application/x-pkcs7-crl .crl
+
+#
+# AddHandler allows you to map certain file extensions to "handlers":
+# actions unrelated to filetype. These can be either built into the server
+# or added with the Action directive (see below)
+#
+# To use CGI scripts outside of ScriptAliased directories:
+# (You will also need to add "ExecCGI" to the "Options" directive.)
+#
+#AddHandler cgi-script .cgi
+
+#
+# For files that include their own HTTP headers:
+#
+#AddHandler send-as-is asis
+
+#
+# For type maps (negotiated resources):
+# (This is enabled by default to allow the Apache "It Worked" page
+# to be distributed in multiple languages.)
+#
+AddHandler type-map var
+
+#
+# Filters allow you to process content before it is sent to the client.
+#
+# To parse .shtml files for server-side includes (SSI):
+# (You will also need to add "Includes" to the "Options" directive.)
+#
+AddType text/html .shtml
+AddOutputFilter INCLUDES .shtml
+
+#
+# Action lets you define media types that will execute a script whenever
+# a matching file is called. This eliminates the need for repeated URL
+# pathnames for oft-used CGI file processors.
+# Format: Action media/type /cgi-script/location
+# Format: Action handler-name /cgi-script/location
+#
+
+#
+# Customizable error responses come in three flavors:
+# 1) plain text 2) local redirects 3) external redirects
+#
+# Some examples:
+#ErrorDocument 500 "The server made a boo boo."
+#ErrorDocument 404 /missing.html
+#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
+#ErrorDocument 402 http://www.example.com/subscription_info.html
+#
+
+#
+# Putting this all together, we can internationalize error responses.
+#
+# We use Alias to redirect any /error/HTTP_<error>.html.var response to
+# our collection of by-error message multi-language collections. We use
+# includes to substitute the appropriate text.
+#
+# You can modify the messages' appearance without changing any of the
+# default HTTP_<error>.html.var files by adding the line:
+#
+# Alias /error/include/ "/your/include/path/"
+#
+# which allows you to create your own set of files by starting with the
+# /var/www/error/include/ files and
+# copying them to /your/include/path/, even on a per-VirtualHost basis.
+#
+
+Alias /error/ "/usr/share/apache2/error/"
+
+<IfModule mod_negotiation.c>
+<IfModule mod_include.c>
+ <Directory "/usr/share/apache2/error">
+ AllowOverride None
+ Options IncludesNoExec
+ AddOutputFilter Includes html
+ AddHandler type-map var
+ Order allow,deny
+ Allow from all
+ LanguagePriority en es de fr
+ ForceLanguagePriority Prefer Fallback
+ </Directory>
+
+# ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
+# ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
+# ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
+# ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
+# ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
+# ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
+# ErrorDocument 410 /error/HTTP_GONE.html.var
+# ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
+# ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
+# ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
+# ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
+# ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
+# ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
+# ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
+# ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
+# ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
+# ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var
+
+</IfModule>
+</IfModule>
+
+#
+# The following directives modify normal HTTP response behavior to
+# handle known problems with browser implementations.
+#
+BrowserMatch "Mozilla/2" nokeepalive
+BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
+BrowserMatch "RealPlayer 4\.0" force-response-1.0
+BrowserMatch "Java/1\.0" force-response-1.0
+BrowserMatch "JDK/1\.0" force-response-1.0
+
+#
+# The following directive disables redirects on non-GET requests for
+# a directory that does not include the trailing slash. This fixes a
+# problem with Microsoft WebFolders which does not appropriately handle
+# redirects for folders with DAV methods.
+# Same deal with Apple's DAV filesystem and Gnome VFS support for DAV.
+#
+BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
+BrowserMatch "MS FrontPage" redirect-carefully
+BrowserMatch "^WebDrive" redirect-carefully
+BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
+BrowserMatch "^gnome-vfs/1.0" redirect-carefully
+BrowserMatch "^XML Spy" redirect-carefully
+BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
+
+#
+# Allow server status reports generated by mod_status,
+# with the URL of http://servername/server-status
+# Change the ".example.com" to match your domain to enable.
+#
+#<Location /server-status>
+# SetHandler server-status
+# Order deny,allow
+# Deny from all
+# Allow from .example.com
+#</Location>
+
+#
+# Allow remote server configuration reports, with the URL of
+# http://servername/server-info (requires that mod_info.c be loaded).
+# Change the ".example.com" to match your domain to enable.
+#
+#<Location /server-info>
+# SetHandler server-info
+# Order deny,allow
+# Deny from all
+# Allow from .example.com
+#</Location>
+
+#
+# Proxy Server directives. Uncomment the following lines to
+# enable the proxy server:
+#
+#<IfModule mod_proxy.c>
+#ProxyRequests On
+#
+#<Proxy *>
+# Order deny,allow
+# Deny from all
+# Allow from .example.com
+#</Proxy>
+
+#
+# Enable/disable the handling of HTTP/1.1 "Via:" headers.
+# ("Full" adds the server version; "Block" removes all outgoing Via: headers)
+# Set to one of: Off | On | Full | Block
+#
+#ProxyVia On
+
+#
+# To enable a cache of proxied content, uncomment the following lines.
+# See http://httpd.apache.org/docs/2.2/mod/mod_cache.html for more details.
+#
+#<IfModule mod_disk_cache.c>
+# CacheEnable disk /
+# CacheRoot "/var/cache/mod_proxy"
+#</IfModule>
+#
+
+#</IfModule>
+# End of proxy directives.
+
+### Section 3: Virtual Hosts
+#
+# VirtualHost: If you want to maintain multiple domains/hostnames on your
+# machine you can setup VirtualHost containers for them. Most configurations
+# use only name-based virtual hosts so the server doesn't need to worry about
+# IP addresses. This is indicated by the asterisks in the directives below.
+#
+# Please see the documentation at
+# <URL:http://httpd.apache.org/docs/2.2/vhosts/>
+# for further details before you try to setup virtual hosts.
+#
+# You may use the command line option '-S' to verify your virtual host
+# configuration.
+
+#
+# Use name-based virtual hosting.
+#
+#NameVirtualHost *:80
+#
+# NOTE: NameVirtualHost cannot be used without a port specifier
+# (e.g. :80) if mod_ssl is being used, due to the nature of the
+# SSL protocol.
+#
+
+#
+# VirtualHost example:
+# Almost any Apache directive may go into a VirtualHost container.
+# The first VirtualHost section is used for requests without a known
+# server name.
+#
+#<VirtualHost *:80>
+# ServerAdmin webmaster@dummy-host.example.com
+# DocumentRoot /var/www/dummy-host.example.com/htdocs
+# ServerName dummy-host.example.com
+# ErrorLog logs/dummy-host.example.com-error.log
+# CustomLog logs/dummy-host.example.com-access.log common
+#</VirtualHost>
diff --git a/testing/bluez/APKBUILD b/testing/bluez/APKBUILD
index b8a18a350..6ccd95931 100644
--- a/testing/bluez/APKBUILD
+++ b/testing/bluez/APKBUILD
@@ -1,14 +1,15 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=bluez
-pkgver=4.64
-pkgrel=1
+pkgver=4.69
+pkgrel=2
pkgdesc="Tools for the Bluetooth protocol stack"
url="http://www.bluez.org/"
license="GPL2"
depends=
-makedepends="dbus-dev gstreamer-dev alsa-lib-dev libusb-dev libnl-dev"
+makedepends="dbus-dev gst-plugins-base-dev alsa-lib-dev libusb-compat-dev
+ libnl-dev"
subpackages="$pkgname-dev $pkgname-doc libbluetooth $pkgname-alsa $pkgname-cups
- $pkgname-netlink"
+ $pkgname-netlink $pkgname-gstreamer"
source="http://www.kernel.org/pub/linux/bluetooth/$pkgname-$pkgver.tar.bz2
bluetooth.initd
bluetooth.confd
@@ -44,6 +45,7 @@ package() {
make install DESTDIR="$pkgdir"
install -Dm755 "$srcdir"/bluetooth.initd "$pkgdir"/etc/init.d/bluetooth
install -Dm644 "$srcdir"/bluetooth.confd "$pkgdir"/etc/conf.d/bluetooth
+ install -Dm755 test/simple-agent "$pkgdir"/usr/bin/bluez-simple-agent
}
libbluetooth() {
@@ -72,6 +74,12 @@ netlink() {
"$subpkgdir"/usr/lib/bluetooth/plugins
}
-md5sums="d6e60bad937fe72b0bc77e327ee470b0 bluez-4.64.tar.bz2
+gstreamer() {
+ pkgdesc="Bluez plugin for gstreamer"
+ mkdir -p "$subpkgdir"/usr/lib
+ mv "$pkgdir"/usr/lib/gstreamer* \
+ "$subpkgdir"/usr/lib/
+}
+md5sums="350568aa11a95eac6e56e9289ff1f91d bluez-4.69.tar.bz2
66408fb89b05e7ce7e61c4c3c356d2c6 bluetooth.initd
a159d897a057f4675548327329c4cc22 bluetooth.confd"
diff --git a/testing/libusb-compat/APKBUILD b/testing/libusb-compat/APKBUILD
index d36933b66..daffca273 100644
--- a/testing/libusb-compat/APKBUILD
+++ b/testing/libusb-compat/APKBUILD
@@ -1,12 +1,13 @@
# Maintainer: Leonardo Arena <rnalrd@gmail.com>
pkgname=libusb-compat
pkgver=0.1.3
-pkgrel=0
+pkgrel=1
pkgdesc="Compatibility library for use by user level applications to access USB devices regardless of OS"
url="http://www.libusb.org/"
license="LGPL v2.1"
depends=
makedepends="libusb-dev"
+depends_dev="libusb-dev"
install=
subpackages="$pkgname-dev"
source="http://downloads.sourceforge.net/project/libusb/libusb-compat-0.1/$pkgname-$pkgver/$pkgname-$pkgver.tar.bz2"
diff --git a/testing/mdocml/APKBUILD b/testing/mdocml/APKBUILD
index 03ede31f4..539ef29e6 100644
--- a/testing/mdocml/APKBUILD
+++ b/testing/mdocml/APKBUILD
@@ -1,7 +1,7 @@
# Contributor:
# Maintainer:
pkgname=mdocml
-pkgver=1.10.4
+pkgver=1.10.5
pkgrel=0
pkgdesc="Roff implementation"
url="http://mdocml.bsd.lv/"
@@ -30,4 +30,4 @@ package() {
EXAMPLEDIR=/usr/share/doc/mdocml/examples install
}
-md5sums="f23e40cd64f4312b0c4e2d72e7999298 mdocml-1.10.4.tar.gz"
+md5sums="c563967a5d44ab7c423ea0b3ebb09ae5 mdocml-1.10.5.tar.gz"
diff --git a/testing/perl-cgi-session/APKBUILD b/testing/perl-cgi-session/APKBUILD
new file mode 100644
index 000000000..9fbe2d92d
--- /dev/null
+++ b/testing/perl-cgi-session/APKBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=perl-cgi-session
+_name=CGI-Session
+pkgver=4.42
+pkgrel=0
+pkgdesc="perl module for persistent session data in CGI applications"
+url="http://search.cpan.org/~markstos/CGI-Session-4.42/"
+license="PerlArtistic"
+depends="perl"
+makedepends="perl-dev"
+subpackages="$pkgname-doc"
+source="http://search.cpan.org/CPAN/authors/id/M/MA/MARKSTOS/CGI-Session-$pkgver.tar.gz"
+
+build () {
+ cd "$srcdir"/$_name-$pkgver
+ perl Makefile.PL INSTALLDIRS=vendor || return 1
+ make MAN1EXT=1p MAN3EXT=3pm || return 1
+}
+
+package() {
+ cd "$srcdir"/$_name-$pkgver
+ make install MAN1EXT=1p MAN3EXT=3pm DESTDIR="$pkgdir" || return 1
+ find "$pkgdir" -name perllocal.pod -delete
+ find "$pkgdir" -name .packlist -delete
+}
+md5sums="6544261a6aae66410188520b27e10699 CGI-Session-4.42.tar.gz"
diff --git a/testing/perl-snmp-session/APKBUILD b/testing/perl-snmp-session/APKBUILD
new file mode 100644
index 000000000..dc8572ff1
--- /dev/null
+++ b/testing/perl-snmp-session/APKBUILD
@@ -0,0 +1,25 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=perl-snmp-session
+_name=SNMP_Session
+pkgver=1.13
+pkgrel=0
+pkgdesc="A SNMP Perl Module"
+url="http://code.google.com/p/snmp-session/"
+license="PerlArtistic"
+depends="perl"
+makedepends="perl-dev"
+source="http://snmp-session.googlecode.com/files/$_name-$pkgver.tar.gz"
+
+build () {
+ cd "$srcdir"/$_name-$pkgver
+ perl Makefile.PL INSTALLDIRS=vendor || return 1
+ make MAN1EXT=1p MAN3EXT=3pm || return 1
+}
+
+package() {
+ cd "$srcdir"/$_name-$pkgver
+ make install MAN1EXT=1p MAN3EXT=3pm DESTDIR="$pkgdir" || return 1
+ find "$pkgdir" -name perllocal.pod -delete
+ find "$pkgdir" -name .packlist -delete
+}
+md5sums="055e1065babf55f1f8606329c6bdb947 SNMP_Session-1.13.tar.gz"
diff --git a/testing/py-cairo/APKBUILD b/testing/py-cairo/APKBUILD
new file mode 100644
index 000000000..b6f621d8a
--- /dev/null
+++ b/testing/py-cairo/APKBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=py-cairo
+pkgver=1.8.10
+pkgrel=0
+pkgdesc="Python bindings for the cairo graphics library"
+url="http://cairographics.org/pycairo/"
+license="GPL"
+depends=
+makedepends="python-dev cairo-dev"
+install=
+subpackages="$pkgname-dev"
+source="http://cairographics.org/releases/py2cairo-$pkgver.tar.gz"
+
+
+_builddir="$srcdir"/pycairo-$pkgver
+
+prepare() {
+ cd "$_builddir"
+}
+
+build() {
+ cd "$_builddir"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info
+ make || return 1
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install
+}
+
+md5sums="87421a6a70304120555ba7ba238f3dc3 py2cairo-1.8.10.tar.gz"
diff --git a/testing/py-dbus/APKBUILD b/testing/py-dbus/APKBUILD
new file mode 100644
index 000000000..64e1d5418
--- /dev/null
+++ b/testing/py-dbus/APKBUILD
@@ -0,0 +1,25 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=py-dbus
+pkgver=0.83.1
+pkgrel=0
+pkgdesc="Python bindings for DBUS"
+url="http://www.freedesktop.org/wiki/Software/DBusBindings"
+license="GPL LGPL"
+depends="python>=2.6.5"
+makedepends="pkgconfig dbus-glib-dev python-dev"
+subpackages="$pkgname-dev $pkgname-doc"
+source="http://dbus.freedesktop.org/releases/dbus-python/dbus-python-$pkgver.tar.gz"
+
+_builddir="$srcdir"/dbus-python-$pkgver
+build() {
+ cd "$_builddir"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install || return 1
+}
+
+md5sums="5fdf3970aa0c00020289de7ba8f3be18 dbus-python-0.83.1.tar.gz"
diff --git a/testing/py-gobject/APKBUILD b/testing/py-gobject/APKBUILD
new file mode 100644
index 000000000..fe758d3c9
--- /dev/null
+++ b/testing/py-gobject/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor:
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=py-gobject
+pkgver=2.20.0
+pkgrel=0
+pkgdesc="Python bindings for the GObject library"
+url="http://www.pygtk.org/"
+license="GPL"
+depends=
+makedepends="python-dev glib-dev"
+install=
+subpackages="$pkgname-dev $pkgname-doc"
+source="http://ftp.gnome.org/pub/GNOME/sources/pygobject/2.20/pygobject-$pkgver.tar.bz2"
+
+_builddir="$srcdir"/pygobject-$pkgver
+prepare() {
+ cd "$_builddir"
+ # apply patches here
+}
+
+build() {
+ cd "$_builddir"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ || return 1
+ make || return 1
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install
+}
+
+md5sums="10e1fb79be3d698476a28b1e1b0c5640 pygobject-2.20.0.tar.bz2"
diff --git a/testing/py-gtk/APKBUILD b/testing/py-gtk/APKBUILD
new file mode 100644
index 000000000..d7b65c14c
--- /dev/null
+++ b/testing/py-gtk/APKBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=py-gtk
+pkgver=2.17.0
+pkgrel=0
+pkgdesc="Python bindings for the GTK widget set"
+url="http://www.pygtk.org/"
+license="LGPL"
+depends=
+makedepends="libglade-dev py-cairo-dev py-gobject-dev python-dev"
+source="http://ftp.gnome.org/pub/gnome/sources/pygtk/2.17/pygtk-$pkgver.tar.bz2"
+subpackages="$pkgname-dev $pkgname-doc $pkgname-demo"
+
+_builddir="$srcdir"/pygtk-$pkgver
+build() {
+ cd "$_builddir"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install || return 1
+ install -m644 gtk/gtk-extrafuncs.defs ""$pkgdir"/usr/share/pygtk/2.0/defs/" || return 1
+}
+
+demo() {
+ pkgdesc="Demonstration of pygtk"
+ depends="py-gtk"
+ mkdir -p "$subpkgdir"/usr/bin "$subpkgdir"/usr/lib/pygtk/2.0
+ mv "$pkgdir"/usr/bin/pygtk-demo "$subpkgdir"/usr/bin/
+ mv "$pkgdir"/usr/lib/pygtk/2.0/*demo* \
+ "$subpkgdir"/usr/lib/pygtk/2.0/
+}
+md5sums="43d704343d7ca04a6e4ddd4fa73a3c55 pygtk-2.17.0.tar.bz2"
diff --git a/testing/sems/APKBUILD b/testing/sems/APKBUILD
index 9d16fc833..c587cae82 100644
--- a/testing/sems/APKBUILD
+++ b/testing/sems/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Francesco Colista <francesco.colista@gmail.com>
pkgname=sems
pkgver=1.2.1
-pkgrel=0
+pkgrel=1
pkgdesc="High performance, extensible media server for SIP (RFC3261) based VoIP services"
url="http://iptel.org/sems/"
license="GPL-2"
diff --git a/unstable/vlc/APKBUILD b/testing/vlc/APKBUILD
index d28ddf074..8b0f6ceec 100644
--- a/unstable/vlc/APKBUILD
+++ b/testing/vlc/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=vlc
-pkgver=1.0.0
+pkgver=1.1.2
pkgrel=0
pkgdesc="A multi-platform MPEG, VCD/DVD, and DivX player"
url="http://www.videolan.org/vlc/"
@@ -14,8 +14,13 @@ depends="ttf-dejavu"
makedepends="
a52dec-dev
alsa-lib-dev
+ automake
+ autoconf
+ libtool
dbus-dev
+ faad2-dev
ffmpeg-dev
+ flac-dev
fribidi-dev
gtk+-dev
libgcrypt-dev
@@ -26,10 +31,12 @@ makedepends="
libnotify-dev
libogg-dev
libsm-dev
+ libtheora-dev
libx11-dev
libxext-dev
libxv-dev
lua-dev
+ ncurses-dev
mesa-dev
pkgconfig
sdl-dev
@@ -37,15 +44,30 @@ makedepends="
x264-dev
"
source="http://download.videolan.org/pub/videolan/$pkgname/$pkgver/$pkgname-$pkgver.tar.bz2
- uclibc.patch
+ uclibc3.patch
+ uclibc-libcompat.patch
+ uclibc-inhibit-spawn.patch
"
+_builddir="$srcdir"/$pkgname-$pkgver
+prepare() {
+ cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch)
+ msg "Applying $i"
+ patch -p1 -i "$srcdir"/$i || return 1
+ ;;
+ esac;
+ done
+ ./bootstrap
+}
+
build ()
{
- cd "$srcdir"/$pkgname-$pkgver
+ cd "$_builddir"
sed -i -e 's:/usr/share/fonts/truetype/freefont/FreeSerifBold.ttf:/usr/share/fonts/TTF/DejaVuSerif-Bold.ttf:' modules/misc/freetype.c
- patch -p1 < ../uclibc.patch || return 1
export CFLAGS="$CFLAGS -D_GNU_SOURCE"
./configure --prefix=/usr \
@@ -54,37 +76,46 @@ build ()
--disable-optimizations \
--disable-qt4 --disable-skins2 \
--disable-rpath \
+ --enable-dbus \
+ --enable-dbus-control \
+ --enable-faad \
+ --enable-flac \
--enable-httpd \
+ --enable-ncurses \
--enable-realrtsp \
+ --enable-sdl \
--enable-sout \
+ --enable-theora \
--enable-vlm \
+ --enable-xvideo \
|| return 1
# --enable-dvdread \
# --enable-dvdnav \
# --enable-qt4 \
-# --enable-faad \
# --enable-skins2 \
# --enable-dvb \
# --enable-v4l \
-# --enable-theora \
-# --enable-flac \
# --enable-snapshot \
# --enable-hal \
-# --enable-dbus \
-# --enable-dbus-control \
# --enable-lirc \
# --enable-shout \
# --enable-pvr \
make || return 1
+}
+
+package() {
+ cd "$_builddir"
make DESTDIR="$pkgdir"/ install || return 1
- for res in 16 32 48 128; do
- install -D -m644 share/vlc${res}x${res}.png \
- "$pkgdir"/usr/share/icons/hicolor/${res}x${res}/apps/vlc.png || return 1
- done
+# for res in 16 32 48 128; do
+# install -D -m644 share/vlc${res}x${res}.png \
+# "$pkgdir"/usr/share/icons/hicolor/${res}x${res}/apps/vlc.png || return 1
+# done
rm -rf "$pkgdir"/usr/lib/mozilla
}
-md5sums="fc78904ab5fa73f518d8fe4e852e7f67 vlc-1.0.0.tar.bz2
-2a16bf6c14a94f41490872aa189db755 uclibc.patch"
+md5sums="dec11ed850e044c518aee6fef7e7f893 vlc-1.1.2.tar.bz2
+4f74dcde9ce51c15d80c3876b85c05f2 uclibc3.patch
+d718e22a7de9f38579f276f720b2f36a uclibc-libcompat.patch
+361d6ae9d7b846833ed31e8454074158 uclibc-inhibit-spawn.patch"
diff --git a/testing/vlc/uclibc-inhibit-spawn.patch b/testing/vlc/uclibc-inhibit-spawn.patch
new file mode 100644
index 000000000..9a6be5bd6
--- /dev/null
+++ b/testing/vlc/uclibc-inhibit-spawn.patch
@@ -0,0 +1,35 @@
+diff --git a/modules/misc/inhibit/xdg.c b/modules/misc/inhibit/xdg.c
+index 01decac..134c5c9 100644
+--- a/modules/misc/inhibit/xdg.c
++++ b/modules/misc/inhibit/xdg.c
+@@ -25,7 +25,12 @@
+ #include <vlc_common.h>
+ #include <vlc_plugin.h>
+ #include <vlc_inhibit.h>
+-#include <spawn.h>
++#if !defined(_POSIX_SPAWN)
++# define _POSIX_SPAWN -1
++#else
++# include <spawn.h>
++#endif
++
+ #include <sys/wait.h>
+
+ static int Open (vlc_object_t *);
+@@ -125,8 +130,15 @@ static void *Thread (void *data)
+ };
+ pid_t pid;
+ int canc = vlc_savecancel ();
+-
++#if (_POSIX_SPAWN >= 0)
+ if (!posix_spawnp (&pid, "xdg-screensaver", NULL, NULL, argv, environ))
++#else
++ pid = fork();
++ if (pid == 0) {
++ execvp("xdg-screensaver", argv);
++ exit(1);
++ } else if (pid > 0)
++#endif
+ {
+ int status;
+
diff --git a/testing/vlc/uclibc-libcompat.patch b/testing/vlc/uclibc-libcompat.patch
new file mode 100644
index 000000000..e4008002f
--- /dev/null
+++ b/testing/vlc/uclibc-libcompat.patch
@@ -0,0 +1,81 @@
+commit c605c09bbc29d88619264c55c371c9dcbc839eda
+Author: Natanael Copa <ncopa@alpinelinux.org>
+Date: Thu Jul 29 19:20:17 2010 +0000
+
+ build: libcompat fix in case there are no functions to replace
+
+ If the libc provides all the funcs in libcompat the libcompat.a will
+ never be created due to LIBOBJS is empty (normally it contains whatever
+ AC_REPLACE_FUNCS detects). This happens on uclibc.
+
+ Since Makefile.am have a hardcoded LDADD to ../compat/libcompat.la things
+ goes bad when there is no libcompat.a at all. We solve this by checking
+ if LIBOBJS is set by AC_REPLACE_FUNCS and add libcompat via LTLIBCOMPAT.
+
+ For alternative fixes see http://www.gnu.org/software/hello/manual/automake/LIBOBJS.html
+
+diff --git a/bin/Makefile.am b/bin/Makefile.am
+index 92e6879..a941d99 100644
+--- a/bin/Makefile.am
++++ b/bin/Makefile.am
+@@ -60,5 +60,5 @@ vlc_win32_rc.$(OBJEXT): vlc_win32_rc.rc
+ vlc_cache_gen_SOURCES = cachegen.c
+ vlc_cache_gen_LDADD = \
+ $(GNUGETOPT_LIBS) \
+- ../compat/libcompat.la \
++ $(LTLIBCOMPAT) \
+ ../src/libvlc.la ../src/libvlccore.la
+diff --git a/configure.ac b/configure.ac
+index 52e4830..b385100 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -547,6 +547,14 @@ need_libc=false
+ dnl Check for usual libc functions
+ AC_CHECK_FUNCS([ctime_r daemon fcntl fdopendir fstatvfs fork getenv getpwuid_r gettimeofday isatty lstat memalign openat posix_fadvise posix_madvise posix_memalign setenv setlocale stricmp strnicmp tdestroy uselocale])
+ AC_REPLACE_FUNCS([asprintf atof atoll getcwd getdelim getpid gmtime_r lldiv localtime_r nrand48 rewind strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtok_r strtoll swab vasprintf])
++
++dnl Check that we actually need libcompat
++LTLIBCOMPAT=""
++if test "x${LIBOBJS}" != "x"; then
++ LTLIBCOMPAT="\$(top_builddir)/compat/libcompat.la"
++fi
++AC_SUBST(LTLIBCOMPAT)
++
+ AC_CHECK_FUNCS(fdatasync,,
+ [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
+ ])
+diff --git a/modules/common.am b/modules/common.am
+index 5e4d65f..9e2c739 100644
+--- a/modules/common.am
++++ b/modules/common.am
+@@ -24,7 +24,7 @@ AM_LDFLAGS = -rpath '$(libvlcdir)' \
+ -no-undefined \
+ `$(VLC_CONFIG) --ldflags plugin $@`
+ AM_LIBADD = `$(VLC_CONFIG) -libs plugin $@` \
+- $(LTLIBVLCCORE) $(top_builddir)/compat/libcompat.la
++ $(LTLIBVLCCORE) $(LTLIBCOMPAT)
+
+ include $(srcdir)/Modules.am
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index f46a154..6aad884 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -201,7 +201,7 @@ libvlccore_la_LDFLAGS = `$(VLC_CONFIG) --ldflags libvlccore` $(AM_LDFLAGS) \
+ -export-symbols $(srcdir)/libvlccore.sym \
+ -version-info 5:0:0
+ libvlccore_la_LIBADD = `$(VLC_CONFIG) -libs libvlccore` $(AM_LIBADD) \
+- $(LTLIBINTL) ../compat/libcompat.la
++ $(LTLIBINTL) $(LTLIBCOMPAT)
+ libvlccore_la_DEPENDENCIES = libvlccore.sym
+ if HAVE_WIN32
+ libvlccore_la_DEPENDENCIES += libvlc_win32_rc.$(OBJEXT)
+@@ -214,7 +214,7 @@ libvlc_win32_rc.$(OBJEXT): libvlc_win32_rc.rc
+ libvlc_la_SOURCES = $(SOURCES_libvlc_control)
+ nodist_libvlc_la_SOURCES = revision.c
+ libvlc_la_LIBADD = `$(VLC_CONFIG) -libs libvlc` \
+- libvlccore.la ../compat/libcompat.la
++ libvlccore.la $(LTLIBCOMPAT)
+ libvlc_la_CFLAGS = `$(VLC_CONFIG) --cflags libvlc`
+ libvlc_la_LDFLAGS = $(AM_LDFLAGS) `$(VLC_CONFIG) --ldflags libvlc` \
+ -version-info 6:0:1 \
diff --git a/testing/vlc/uclibc3.patch b/testing/vlc/uclibc3.patch
new file mode 100644
index 000000000..04154f35b
--- /dev/null
+++ b/testing/vlc/uclibc3.patch
@@ -0,0 +1,49 @@
+diff --git a/src/control/vlm.c b/src/control/vlm.c
+index 05417e5..46fa957 100644
+--- a/src/control/vlm.c
++++ b/src/control/vlm.c
+@@ -25,6 +25,10 @@
+ # include <config.h>
+ #endif
+
++#ifdef HAVE_CONFIG_H
++# include "config.h"
++#endif
++
+ #include <vlc/libvlc.h>
+ #include <vlc/libvlc_vlm.h>
+ #include <vlc_es.h>
+diff --git a/src/misc/linux_specific.c b/src/misc/linux_specific.c
+index 1644ce6..1440e1c 100644
+--- a/src/misc/linux_specific.c
++++ b/src/misc/linux_specific.c
+@@ -83,14 +83,14 @@ static struct
+ unsigned refs;
+ } once = { VLC_STATIC_MUTEX, 0 };
+
+-#ifdef __GLIBC__
++#if defined(__GLIBC__) && !defined(__UCLIBC__)
+ # include <gnu/libc-version.h>
+ # include <stdlib.h>
+ #endif
+
+ void system_Init (libvlc_int_t *libvlc, int *argc, const char *argv[])
+ {
+-#ifdef __GLIBC__
++#if defined(__GLIBC__) && !defined(__UCLIBC__)
+ const char *glcv = gnu_get_libc_version ();
+
+ /* gettext in glibc 2.5-2.7 is not thread-safe. LibVLC keeps crashing,
+diff --git a/src/misc/mtime.c b/src/misc/mtime.c
+index 1cc787d..985aa3a 100644
+--- a/src/misc/mtime.c
++++ b/src/misc/mtime.c
+@@ -78,7 +78,7 @@ int nanosleep(struct timespec *, struct timespec *);
+ # define _POSIX_CLOCK_SELECTION (-1)
+ #endif
+
+-# if (_POSIX_CLOCK_SELECTION < 0)
++# if (_POSIX_CLOCK_SELECTION < 0) || defined(__UCLIBC__)
+ /*
+ * We cannot use the monotonic clock if clock selection is not available,
+ * as it would screw vlc_cond_timedwait() completely. Instead, we have to
diff --git a/unstable/vlc/uclibc.patch b/unstable/vlc/uclibc.patch
deleted file mode 100644
index f71b189a4..000000000
--- a/unstable/vlc/uclibc.patch
+++ /dev/null
@@ -1,65 +0,0 @@
---- a/src/misc/linux_specific.c 2009-07-08 09:29:41.000000000 +0000
-+++ b/src/misc/linux_specific.c 2009-07-08 09:30:47.000000000 +0000
-@@ -72,14 +72,14 @@
- }
- #endif
-
--#ifdef __GLIBC__
-+#if defined(__GLIBC__) && !defined(__UCLIBC__)
- # include <gnu/libc-version.h>
- # include <stdlib.h>
- #endif
-
- void system_Init (libvlc_int_t *libvlc, int *argc, const char *argv[])
- {
--#ifdef __GLIBC__
-+#if defined(__GLIBC__) && !defined(__UCLIBC__)
- const char *glcv = gnu_get_libc_version ();
-
- /* gettext in glibc 2.5-2.7 is not thread-safe. LibVLC keeps crashing,
---- a/src/control/vlm.c 2009-07-09 09:21:55.000000000 +0000
-+++ b/src/control/vlm.c 2009-07-09 09:22:24.000000000 +0000
-@@ -21,6 +21,10 @@
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-+#ifdef HAVE_CONFIG_H
-+# include "config.h"
-+#endif
-+
- #include <vlc/libvlc.h>
- #include <vlc/libvlc_vlm.h>
- #include <vlc_es.h>
---- a/src/misc/mtime.c 2009-07-09 11:57:46.000000000 +0000
-+++ b/src/misc/mtime.c 2009-07-09 13:48:16.000000000 +0000
-@@ -78,7 +78,7 @@
- # define _POSIX_CLOCK_SELECTION (-1)
- #endif
-
--# if (_POSIX_CLOCK_SELECTION < 0)
-+# if (_POSIX_CLOCK_SELECTION < 0) || defined(__UCLIBC__)
- /*
- * We cannot use the monotonic clock is clock selection is not available,
- * as it would screw vlc_cond_timedwait() completely. Instead, we have to
---- a/src/misc/threads.c 2009-07-09 13:54:08.000000000 +0000
-+++ b/src/misc/threads.c 2009-07-09 13:54:32.000000000 +0000
-@@ -474,7 +474,7 @@
- /* Fairly outdated POSIX support (that was defined in 2001) */
- # define _POSIX_CLOCK_SELECTION (-1)
- # endif
--# if (_POSIX_CLOCK_SELECTION >= 0)
-+# if (_POSIX_CLOCK_SELECTION >= 0) && !defined(__UCLIBC__)
- /* NOTE: This must be the same clock as the one in mtime.c */
- pthread_condattr_setclock (&attr, CLOCK_MONOTONIC);
- # endif
---- a/modules/stream_filter/decomp.c 2009-07-09 14:10:09.000000000 +0000
-+++ b/modules/stream_filter/decomp.c 2009-07-09 14:11:37.000000000 +0000
-@@ -28,7 +28,7 @@
- #include <vlc_network.h>
- #include <assert.h>
- #include <unistd.h>
--#ifndef _POSIX_SPAWN
-+#if !defined(_POSIX_SPAWN) || defined(__UCLIBC__)
- # define _POSIX_SPAWN (-1)
- #endif
- #include <fcntl.h>