summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/btrfs-progs/PKGBUILD9
-rw-r--r--core/cryptsetup/PKGBUILD11
-rw-r--r--core/cryptsetup/sd-encrypt42
-rw-r--r--core/curl/0001-curl_multi_remove_handle-allow-multiple-removes.patch29
-rw-r--r--core/curl/PKGBUILD12
-rw-r--r--core/db/PKGBUILD4
-rw-r--r--core/dbus/PKGBUILD6
-rw-r--r--core/dialog/PKGBUILD9
-rwxr-xr-xcore/efibootmgr/PKGBUILD72
-rw-r--r--core/efivar/PKGBUILD64
-rw-r--r--core/fakeroot/PKGBUILD6
-rw-r--r--core/file/PKGBUILD6
-rw-r--r--core/gdbm/PKGBUILD13
-rw-r--r--core/glib2/PKGBUILD7
-rw-r--r--core/glibc/PKGBUILD24
-rw-r--r--core/glibc/glibc-2.18-malloc-corrupt-CVE-2013-4332.patch54
-rw-r--r--core/glibc/glibc-2.18-ptr-mangle-CVE-2013-4788.patch485
-rw-r--r--core/glibc/glibc-2.18-strcoll-CVE-2012-4412+4424.patch1004
-rw-r--r--core/gmp/PKGBUILD6
-rw-r--r--core/gnupg/PKGBUILD6
-rw-r--r--core/heirloom-mailx/PKGBUILD64
-rw-r--r--core/inetutils/PKGBUILD26
-rw-r--r--core/inetutils/dnsdomainname3
-rw-r--r--core/iw/PKGBUILD8
-rw-r--r--core/libffi/PKGBUILD18
-rw-r--r--core/libsasl/CVE-2013-4122.patch116
-rw-r--r--core/libsasl/PKGBUILD45
-rw-r--r--core/libusbx/0001-linux-Use-a-separate-lock-to-serialize-start-stop-vs.patch103
-rw-r--r--core/libusbx/0002-hotplug-Remove-use-of-pthread_cancel-from-linux_udev.patch141
-rw-r--r--core/libusbx/PKGBUILD20
-rw-r--r--core/links/PKGBUILD11
-rw-r--r--core/m4/PKGBUILD24
-rw-r--r--core/mdadm/PKGBUILD15
-rw-r--r--core/mdadm/disable-werror.patch4
-rw-r--r--core/openssh/PKGBUILD10
-rw-r--r--core/openssh/sshd.service1
-rw-r--r--core/popt/PKGBUILD12
-rw-r--r--core/procps-ng/PKGBUILD26
-rw-r--r--core/procps-ng/install14
-rw-r--r--core/procps-ng/sysctl.conf38
-rw-r--r--core/s-nail/PKGBUILD53
-rw-r--r--core/sudo/PKGBUILD6
-rw-r--r--core/systemd/0001-fix-lingering-references-to-var-lib-backlight-random.patch54
-rw-r--r--core/systemd/0001-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch87
-rw-r--r--core/systemd/0001-utmp-turn-systemd-update-utmp-shutdown.service-into-.patch255
-rw-r--r--core/systemd/PKGBUILD51
-rw-r--r--core/systemd/initcpio-hook-udev4
-rw-r--r--core/systemd/initcpio-install-systemd159
-rw-r--r--core/systemd/initcpio-install-timestamp14
-rw-r--r--core/systemd/initcpio-install-udev3
-rw-r--r--core/systemd/systemd.install30
-rw-r--r--core/tar/PKGBUILD25
-rw-r--r--core/tar/tar.1367
-rw-r--r--core/texinfo/PKGBUILD8
-rw-r--r--core/texinfo/texinfo.install2
-rw-r--r--core/traceroute/PKGBUILD6
56 files changed, 2359 insertions, 1333 deletions
diff --git a/core/btrfs-progs/PKGBUILD b/core/btrfs-progs/PKGBUILD
index b55347e34..d811d7f49 100644
--- a/core/btrfs-progs/PKGBUILD
+++ b/core/btrfs-progs/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 186631 2013-05-30 10:13:30Z tomegun $
+# $Id: PKGBUILD 195489 2013-10-01 11:32:32Z tomegun $
# Maintainer: Tom Gundersen <teg@jklm.no>
# Contributor: Tobias Powalowski <tpowa@archlinux.org>
pkgname=btrfs-progs
-pkgver=0.20rc1.2
+pkgver=0.20rc1.3
pkgrel=1
pkgdesc="btrfs filesystem utilities"
arch=(i686 x86_64 mips64el)
@@ -14,7 +14,7 @@ replaces=('btrfs-progs-unstable')
conflicts=('btrfs-progs-unstable')
provides=('btrfs-progs-unstable')
license=('GPL2')
-source=("git://git.kernel.org/pub/scm/linux/kernel/git/mason/${pkgname}.git#commit=7854c8b667"
+source=("git://git.kernel.org/pub/scm/linux/kernel/git/mason/${pkgname}.git#commit=194aa4a1bd6447bb545286d0bcb0b0be8204d79f"
initcpio-install-btrfs
initcpio-hook-btrfs)
install=btrfs-progs.install
@@ -23,13 +23,14 @@ options=(!staticlibs)
build() {
cd $pkgname
make CFLAGS="$CFLAGS"
-
+ make CFLAGS="$CFLAGS" btrfs-select-super
}
package() {
cd $pkgname
make prefix=$pkgdir/usr install
+ install -Dm755 btrfs-select-super $pkgdir/usr/bin
# fix manpage
mkdir -p $pkgdir/usr/share/
diff --git a/core/cryptsetup/PKGBUILD b/core/cryptsetup/PKGBUILD
index ad10778b7..e86517e26 100644
--- a/core/cryptsetup/PKGBUILD
+++ b/core/cryptsetup/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 193404 2013-08-19 17:24:16Z thomas $
+# $Id: PKGBUILD 195910 2013-10-05 07:30:48Z thomas $
# Maintainer: Thomas Bächler <thomas@archlinux.org>
pkgname=cryptsetup
pkgver=1.6.2
-pkgrel=1
+pkgrel=2
pkgdesc="Userspace setup tool for transparent encryption of block devices using dm-crypt"
arch=(i686 x86_64 'mips64el')
license=('GPL')
@@ -13,11 +13,13 @@ options=('!libtool' '!emptydirs')
source=(http://cryptsetup.googlecode.com/files/${pkgname}-${pkgver}.tar.bz2
http://cryptsetup.googlecode.com/files/${pkgname}-${pkgver}.tar.bz2.asc
encrypt_hook
- encrypt_install)
+ encrypt_install
+ sd-encrypt)
md5sums=('cd834da49fbe92dd66df02cc5c61280f'
'SKIP'
'c279d86d6dc18322c054d2272ebb9e90'
- '21c45f9cab3e0b5165f68358884fbd0f')
+ '21c45f9cab3e0b5165f68358884fbd0f'
+ '6cf7e170ecd13e42fe829209628fdb4d')
build() {
cd "${srcdir}"/$pkgname-${pkgver}
@@ -31,6 +33,7 @@ package() {
# install hook
install -D -m644 "${srcdir}"/encrypt_hook "${pkgdir}"/usr/lib/initcpio/hooks/encrypt
install -D -m644 "${srcdir}"/encrypt_install "${pkgdir}"/usr/lib/initcpio/install/encrypt
+ install -D -m644 "${srcdir}"/sd-encrypt "${pkgdir}"/usr/lib/initcpio/install/sd-encrypt
# usrmove
cd "$pkgdir"/usr
diff --git a/core/cryptsetup/sd-encrypt b/core/cryptsetup/sd-encrypt
new file mode 100644
index 000000000..c18fd2f24
--- /dev/null
+++ b/core/cryptsetup/sd-encrypt
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+build() {
+ local mod
+
+ add_module dm-crypt
+ if [[ $CRYPTO_MODULES ]]; then
+ for mod in $CRYPTO_MODULES; do
+ add_module "$mod"
+ done
+ else
+ add_all_modules '/crypto/'
+ fi
+
+ add_binary "dmsetup"
+ add_file "/usr/lib/udev/rules.d/10-dm.rules"
+ add_file "/usr/lib/udev/rules.d/13-dm-disk.rules"
+ add_file "/usr/lib/udev/rules.d/95-dm-notify.rules"
+ add_file "/usr/lib/initcpio/udev/11-dm-initramfs.rules" "/usr/lib/udev/rules.d/11-dm-initramfs.rules"
+
+ add_systemd_unit cryptsetup.target
+ add_binary /usr/lib/systemd/system-generators/systemd-cryptsetup-generator
+ add_binary /usr/lib/systemd/systemd-cryptsetup
+
+ add_systemd_unit systemd-ask-password-console.path
+ add_systemd_unit systemd-ask-password-console.service
+
+ [[ -f /etc/crypttab.initramfs ]] && add_file /etc/crypttab.initramfs /etc/crypttab
+}
+
+help() {
+ cat <<HELPEOF
+This hook allows for an encrypted root device with systemd initramfs.
+
+See the manpage of systemd-cryptsetup-generator(8) for available kernel
+command line options. Alternatively, if the file /etc/crypttab.initramfs
+exists, it will be added to the initramfs as /etc/crypttab. See the
+crypttab(5) manpage for more information on crypttab syntax.
+HELPEOF
+}
+
+# vim: set ft=sh ts=4 sw=4 et:
diff --git a/core/curl/0001-curl_multi_remove_handle-allow-multiple-removes.patch b/core/curl/0001-curl_multi_remove_handle-allow-multiple-removes.patch
new file mode 100644
index 000000000..73b23ea12
--- /dev/null
+++ b/core/curl/0001-curl_multi_remove_handle-allow-multiple-removes.patch
@@ -0,0 +1,29 @@
+From 84f3b3dd448399f9548468676e1bd1475dba8de5 Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg <daniel@haxx.se>
+Date: Thu, 29 Aug 2013 22:08:01 +0200
+Subject: [PATCH] curl_multi_remove_handle: allow multiple removes
+
+When removing an already removed handle, avoid that to ruin the
+internals and just return OK instead.
+---
+ lib/multi.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/lib/multi.c b/lib/multi.c
+index fb495e0..e723a3e 100644
+--- a/lib/multi.c
++++ b/lib/multi.c
+@@ -483,6 +483,10 @@ CURLMcode curl_multi_remove_handle(CURLM *multi_handle,
+ if(!GOOD_EASY_HANDLE(curl_handle))
+ return CURLM_BAD_EASY_HANDLE;
+
++ /* Prevent users from trying to remove same easy handle more than once */
++ if(!data->multi)
++ return CURLM_OK; /* it is already removed so let's say it is fine! */
++
+ if(easy) {
+ bool premature = (data->mstate < CURLM_STATE_COMPLETED) ? TRUE : FALSE;
+ bool easy_owns_conn = (data->easy_conn &&
+--
+1.8.4
+
diff --git a/core/curl/PKGBUILD b/core/curl/PKGBUILD
index 15de2cadf..af22269df 100644
--- a/core/curl/PKGBUILD
+++ b/core/curl/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 193070 2013-08-15 13:17:43Z dreisner $
+# $Id: PKGBUILD 193944 2013-09-07 15:30:07Z dreisner $
# Maintainer: Dave Reisner <dreisner@archlinux.org>
# Contributor: Angel Velasquez <angvp@archlinux.org>
# Contributor: Eric Belanger <eric@archlinux.org>
@@ -7,7 +7,7 @@
pkgname=curl
pkgver=7.32.0
-pkgrel=1
+pkgrel=2
pkgdesc="An URL retrieval utility and library"
arch=('i686' 'x86_64' 'mips64el')
url="http://curl.haxx.se"
@@ -16,11 +16,19 @@ depends=('ca-certificates' 'libssh2' 'openssl' 'zlib')
provides=('libcurl.so')
options=('!libtool')
source=("http://curl.haxx.se/download/$pkgname-$pkgver.tar.gz"{,.asc}
+ 0001-curl_multi_remove_handle-allow-multiple-removes.patch
curlbuild.h)
md5sums=('f77cf3cb59cf2bfe686b80338323fd40'
'SKIP'
+ '589a2ccdf90e198fca398809e9d16128'
'751bd433ede935c8fae727377625a8ae')
+prepare() {
+ cd "$pkgname-$pkgver"
+
+ patch -Np1 <"$srcdir"/0001-curl_multi_remove_handle-allow-multiple-removes.patch
+}
+
build() {
cd "$pkgname-$pkgver"
diff --git a/core/db/PKGBUILD b/core/db/PKGBUILD
index 5e10221b5..0d5a9dc20 100644
--- a/core/db/PKGBUILD
+++ b/core/db/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 160636 2012-06-02 22:25:49Z allan $
+# $Id: PKGBUILD 195826 2013-10-01 16:41:14Z bpiotrowski $
# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: Andreas Radke <andyrtr@archlinux.org>
pkgname=db
pkgver=5.3.21
-pkgrel=1
+pkgrel=2
pkgdesc="The Berkeley DB embedded database system"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.oracle.com/technology/software/products/berkeley-db/index.html"
diff --git a/core/dbus/PKGBUILD b/core/dbus/PKGBUILD
index 4c49dc4f1..d61465f41 100644
--- a/core/dbus/PKGBUILD
+++ b/core/dbus/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 188480 2013-06-14 20:26:05Z tomegun $
+# $Id: PKGBUILD 194433 2013-09-16 10:42:42Z jgc $
# Maintainer: Tom Gundersen <teg@jklm.no>
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: Link Dupont <link@subpop.net>
#
pkgname=dbus
-pkgver=1.6.12
+pkgver=1.6.14
pkgrel=1
pkgdesc="Freedesktop.org message bus system"
url="http://www.freedesktop.org/Software/dbus"
@@ -48,6 +48,6 @@ package(){
install -Dm644 COPYING "$pkgdir/usr/share/licenses/dbus/COPYING"
}
-md5sums=('a70edc50524f258eaf5c9a9994ed8748'
+md5sums=('1c22aebdf952e92908800f1ec2aeb0c4'
'3314d727fa57fc443fce25b5cbeebbcc'
'd8a1bd529b3ddca671ee1a695a143db9')
diff --git a/core/dialog/PKGBUILD b/core/dialog/PKGBUILD
index d27f184be..c0322bebd 100644
--- a/core/dialog/PKGBUILD
+++ b/core/dialog/PKGBUILD
@@ -1,19 +1,20 @@
-# $Id: PKGBUILD 187873 2013-06-07 13:39:39Z foutrelis $
+# $Id: PKGBUILD 195853 2013-10-02 13:25:41Z foutrelis $
# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
# Contributor: Stéphane Gaudreault <stephane@archlinux.org>
# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: Andreas Radke <andyrtr@archlinux.org>
pkgname=dialog
-pkgver=1.2_20130523
-pkgrel=2
+pkgver=1.2_20131001
+pkgrel=1
pkgdesc="A tool to display dialog boxes from shell scripts"
arch=('i686' 'x86_64' 'mips64el')
url="http://invisible-island.net/dialog/"
license=('LGPL2.1')
depends=('ncurses')
+options=('staticlibs')
source=(ftp://invisible-island.net/$pkgname/$pkgname-${pkgver/_/-}.tgz)
-sha256sums=('c8d114b7698022bcbd6c88f3c0b2296b0e846c60c5ed6bd28f86dd72b94fd36d')
+sha256sums=('b22215d56dfbfa7f025092759e8f144b17321e14829b2a273f68d745a1f0dca5')
build() {
cd "$srcdir/$pkgname-${pkgver/_/-}"
diff --git a/core/efibootmgr/PKGBUILD b/core/efibootmgr/PKGBUILD
index 2a42dea3a..28cb02ea6 100755
--- a/core/efibootmgr/PKGBUILD
+++ b/core/efibootmgr/PKGBUILD
@@ -1,49 +1,59 @@
-# $Id: PKGBUILD 188652 2013-06-17 10:52:28Z tpowa $
+# $Id: PKGBUILD 194435 2013-09-16 12:11:58Z tpowa $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
-# Contributor : Murtuza Akhtari <inxsible at gmail dot com>
-# Contributor: Keshav P R <skodabenz at rocketmail dot com>
+# Contributor: Murtuza Akhtari <inxsible at gmail dot com>
+# Contributor: Keshav Padram Amburay <(the.ridikulus.rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)>
-pkgname=efibootmgr
-pkgver=0.6.0
-pkgrel=3
-pkgdesc="Tool to modify UEFI Firmware Boot Manager Variables."
-arch=('i686' 'x86_64')
-url="http://linux.dell.com/efibootmgr/"
+pkgname="efibootmgr"
+
+_gitroot="git://github.com/vathpela/efibootmgr.git"
+_gitname="${pkgname}-pjones"
+_gitbranch="libefivars"
+
+pkgver=0.6.0.138.1132342
+pkgrel=1
+pkgdesc="Tool to modify UEFI Firmware Boot Manager Variables"
+arch=('x86_64' 'i686')
+url="https://github.com/vathpela/efibootmgr"
license=('GPL2')
-depends=('zlib' 'pciutils')
-makedepends=()
-provides=()
-options=(strip purge docs zipman !emptydirs)
+makedepends=('git')
+depends=('pciutils' 'efivar' 'zlib')
+options=('strip' 'zipman' '!emptydirs' '!libtool')
-source=("http://linux.dell.com/efibootmgr/permalink/${pkgname}-${pkgver}.tar.gz"
- "efibootmgr-tilt_slashes-func.patch"
-)
+source=("${_gitname}::git+${_gitroot}#branch=${_gitbranch}")
+sha1sums=('SKIP')
-build () {
- rm -rf ${srcdir}/efibootmgr-${pkgver}_build/ || true
+pkgver() {
+ cd "${srcdir}/${_gitname}/"
- cp -r ${srcdir}/efibootmgr-${pkgver} ${srcdir}/efibootmgr-${pkgver}_build
+ _RELEASE_MAJOR="$(grep 'RELEASE_MAJOR' "${srcdir}/${_gitname}/Makefile" | head -1 | sed -e 's|RELEASE_MAJOR := ||g')"
+ _RELEASE_MINOR="$(grep 'RELEASE_MINOR' "${srcdir}/${_gitname}/Makefile" | head -1 | sed -e 's|RELEASE_MINOR := ||g')"
+ _RELEASE_SUBLEVEL="$(grep 'RELEASE_SUBLEVEL' "${srcdir}/${_gitname}/Makefile" | head -1 | sed -e 's|RELEASE_SUBLEVEL := ||g')"
- cd ${srcdir}/efibootmgr-${pkgver}_build/
- patch -Np1 -i ${srcdir}/efibootmgr-tilt_slashes-func.patch
- echo
+ _ACTUAL_VER="$(echo ${_RELEASE_MAJOR}.${_RELEASE_MINOR}.${_RELEASE_SUBLEVEL} | sed 's| ||g')"
- CFLAGS= make
+ echo "${_ACTUAL_VER}.$(git rev-list --count HEAD).$(git rev-parse --short HEAD)"
+}
+
+build() {
+
+ rm -rf "${srcdir}/${_gitname}_build/" || true
+ cp -r "${srcdir}/${_gitname}" "${srcdir}/${_gitname}_build"
+
+ cd "${srcdir}/${_gitname}_build/"
+
+ make EXTRA_CFLAGS="-Os"
echo
}
-
package() {
- mkdir -p ${pkgdir}/usr/bin/
- mkdir -p ${pkgdir}/usr/share/man/man8/
+ cd "${srcdir}/${_gitname}_build/"
- cd ${srcdir}/efibootmgr-${pkgver}_build/
+ install -d "${pkgdir}/usr/bin/"
+ install -D -m0755 "${srcdir}/${_gitname}_build/src/efibootmgr/efibootmgr" "${pkgdir}/usr/bin/efibootmgr"
- install -D -m755 ${srcdir}/efibootmgr-${pkgver}_build/src/efibootmgr/efibootmgr ${pkgdir}/usr/bin/efibootmgr
- install -D -m644 ${srcdir}/efibootmgr-${pkgver}_build/src/man/man8/efibootmgr.8 ${pkgdir}/usr/share/man/man8/efibootmgr.8
+ install -d "${pkgdir}/usr/share/man/man8/"
+ install -D -m0644 "${srcdir}/${_gitname}_build/src/man/man8/efibootmgr.8" "${pkgdir}/usr/share/man/man8/efibootmgr.8"
}
-md5sums=('9e9a31d79e579644de83a14139b66d10'
- '3622c0e978cf859cae60803a6b6a0c5e')
diff --git a/core/efivar/PKGBUILD b/core/efivar/PKGBUILD
new file mode 100644
index 000000000..849868267
--- /dev/null
+++ b/core/efivar/PKGBUILD
@@ -0,0 +1,64 @@
+# $Id: PKGBUILD 194436 2013-09-16 12:12:17Z tpowa $
+# Maintainer : Tobias Powalowski <tpowa@archlinux.org>
+# Contributor : Keshav Padram <(the.ridikulus.rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)>
+
+_gitroot="git://github.com/vathpela/efivar.git"
+_gitname="efivar"
+_gitbranch="master"
+
+_pkgname="efivar"
+pkgname="${_pkgname}"
+
+pkgdesc="Library to manipulate EFI variables"
+pkgver=0.6
+pkgrel=1
+arch=('x86_64' 'i686')
+url="https://github.com/vathpela/efivar"
+license=('LGPL2.1')
+depends=('popt')
+conflicts=('libefivar')
+provides=('libefivar')
+options=('zipman' 'docs' '!makeflags')
+
+source=("${_gitname}::git+${_gitroot}#branch=${_gitbranch}")
+sha1sums=('SKIP')
+
+pkgver() {
+ cd "${srcdir}/${_gitname}/"
+ echo "$(git describe --tags)" | sed 's|-|\.|g'
+}
+
+build() {
+
+ rm -rf "${srcdir}/${_gitname}_build/" || true
+ cp -r "${srcdir}/${_gitname}" "${srcdir}/${_gitname}_build"
+
+ cd "${srcdir}/${_gitname}_build/"
+
+ git clean -x -d -f
+ echo
+
+ unset CFLAGS
+ unset CPPFLAGS
+ unset CXXFLAGS
+ unset LDFLAGS
+ unset MAKEFLAGS
+
+ sed 's|-rpath=$(TOPDIR)/src/|-rpath=$(libdir)|g' -i "${srcdir}/${_gitname}_build/src/test/Makefile" || true
+
+ make libdir="/usr/lib/" bindir="/usr/bin/" mandir="/usr/share/man/" includedir="/usr/include/" V=1 -j1
+ echo
+
+}
+
+package() {
+
+ cd "${srcdir}/${_gitname}_build/"
+
+ make -j1 V=1 DESTDIR="${pkgdir}/" libdir="/usr/lib/" bindir="/usr/bin/" mandir="/usr/share/man/" includedir="/usr/include/" install
+ echo
+
+ install -d "${pkgdir}/usr/bin"
+ install -D -m0755 "${srcdir}/${_gitname}_build/src/test/tester" "${pkgdir}/usr/bin/efivar-tester"
+
+}
diff --git a/core/fakeroot/PKGBUILD b/core/fakeroot/PKGBUILD
index 447c2c22f..254049c41 100644
--- a/core/fakeroot/PKGBUILD
+++ b/core/fakeroot/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 186069 2013-05-20 23:10:56Z allan $
+# $Id: PKGBUILD 194710 2013-09-23 00:56:24Z allan $
# Maintainer: Allan McRae <allan@archlinux.org>
# Contributor: Jochem Kossen <j.kossen@home.nl>
pkgname=fakeroot
-pkgver=1.19
+pkgver=1.20
pkgrel=1
pkgdesc="Gives a fake root environment, useful for building packages as a non-privileged user"
arch=('i686' 'x86_64' 'mips64el')
@@ -14,7 +14,7 @@ install=fakeroot.install
depends=('glibc' 'filesystem' 'sed' 'util-linux' 'sh')
options=('!libtool')
source=(http://ftp.debian.org/debian/pool/main/f/${pkgname}/${pkgname}_${pkgver}.orig.tar.bz2)
-md5sums=('3a00a1264cb31a815552050ef0c2468b')
+md5sums=('9777a81d4d1878422447a1d0030c1f9f')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
diff --git a/core/file/PKGBUILD b/core/file/PKGBUILD
index 95acdcdb3..ba6f0439f 100644
--- a/core/file/PKGBUILD
+++ b/core/file/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 180851 2013-03-27 01:10:50Z allan $
+# $Id: PKGBUILD 195182 2013-09-26 23:59:54Z allan $
# Maintainer: Allan McRae <allan@archlinux.org>
# Contributor: Andreas Radke <andyrtr@archlinux.org>
pkgname=file
-pkgver=5.14
+pkgver=5.15
pkgrel=1
pkgdesc="File type identification utility"
arch=('i686' 'x86_64' 'mips64el')
@@ -13,7 +13,7 @@ url="http://www.darwinsys.com/file/"
depends=('glibc' 'zlib')
options=('!libtool')
source=(ftp://ftp.astron.com/pub/${pkgname}/${pkgname}-${pkgver}.tar.gz)
-md5sums=('c26625f1d6773ad4bc5a87c0e315632c')
+md5sums=('3f99565532f548d7540912c4642d1ede')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
diff --git a/core/gdbm/PKGBUILD b/core/gdbm/PKGBUILD
index 0e806f3de..71da45002 100644
--- a/core/gdbm/PKGBUILD
+++ b/core/gdbm/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 143800 2011-11-29 13:32:53Z stephane $
-# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# $Id: PKGBUILD 195488 2013-10-01 06:09:23Z bpiotrowski $
+# Contributor: Stéphane Gaudreault <stephane@archlinux.org>
# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
pkgname=gdbm
pkgver=1.10
-pkgrel=1.1
+pkgrel=2
pkgdesc="GNU database library"
url="http://www.gnu.org/software/gdbm/gdbm.html"
license=('GPL')
@@ -17,7 +17,8 @@ options=('!libtool' '!makeflags')
install=gdbm.install
md5sums=('88770493c2559dc80b561293e39d3570'
'ac255b10452005237836cd2d3a470733')
-build() {
+
+prepare() {
cd "${srcdir}/${pkgname}-${pkgver}"
# Prevent gdbm from storing uninitialized memory content
@@ -27,6 +28,10 @@ build() {
# https://bugzilla.redhat.com/show_bug.cgi?id=4457
# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=208927
patch -Np1 -i ../gdbm-1.10-zeroheaders.patch
+}
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
./configure --prefix=/usr \
--mandir=/usr/share/man \
diff --git a/core/glib2/PKGBUILD b/core/glib2/PKGBUILD
index 8b3c27845..dbe30c874 100644
--- a/core/glib2/PKGBUILD
+++ b/core/glib2/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 193184 2013-08-18 08:13:38Z heftig $
+# $Id: PKGBUILD 196009 2013-10-07 11:50:04Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgbase=glib2
pkgname=(glib2 glib2-docs)
-pkgver=2.36.4
+pkgver=2.38.0
pkgrel=1
pkgdesc="Common C routines used by GTK+ and other libs"
url="http://www.gtk.org/"
@@ -11,13 +11,12 @@ arch=(i686 x86_64 mips64el)
makedepends=('pkg-config' 'python2' 'libxslt' 'docbook-xml' 'pcre' 'libffi' 'elfutils')
source=(http://ftp.gnome.org/pub/GNOME/sources/glib/${pkgver%.*}/glib-$pkgver.tar.xz
revert-warn-glib-compile-schemas.patch)
-sha256sums=('f654d2542329012d8475736a165dfbf82fadf3ee940c2e0e6ddd4b2fde5cad7e'
+sha256sums=('7513a7de5e814ccb48206340a8773ea523d6a7bf04dc74565de69b899bc2ff32'
'049240975cd2f1c88fbe7deb28af14d4ec7d2640495f7ca8980d873bb710cc97')
prepare() {
cd glib-$pkgver
patch -Rp1 -i ../revert-warn-glib-compile-schemas.patch
- touch -r NEWS gtk-doc.make
}
build() {
diff --git a/core/glibc/PKGBUILD b/core/glibc/PKGBUILD
index c8d7a0bb8..b77a6eaa5 100644
--- a/core/glibc/PKGBUILD
+++ b/core/glibc/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 193742 2013-08-30 03:37:09Z allan $
+# $Id: PKGBUILD 195163 2013-09-26 03:20:58Z allan $
# Maintainer: Allan McRae <allan@archlinux.org>
# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
@@ -6,7 +6,7 @@
pkgname=glibc
pkgver=2.18
-pkgrel=3
+pkgrel=5
pkgdesc="GNU C Library"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.gnu.org/software/libc"
@@ -21,6 +21,9 @@ options=('!strip')
install=glibc.install
source=(http://ftp.gnu.org/gnu/libc/${pkgname}-${pkgver}.tar.xz{,.sig}
glibc-2.18-readdir_r-CVE-2013-4237.patch
+ glibc-2.18-malloc-corrupt-CVE-2013-4332.patch
+ glibc-2.18-strcoll-CVE-2012-4412+4424.patch
+ glibc-2.18-ptr-mangle-CVE-2013-4788.patch
glibc-2.18-strstr-hackfix.patch
nscd.service
nscd.tmpfiles
@@ -29,19 +32,32 @@ source=(http://ftp.gnu.org/gnu/libc/${pkgname}-${pkgver}.tar.xz{,.sig}
md5sums=('88fbbceafee809e82efd52efa1e3c58f'
'SKIP'
'154da6bf5a5248f42a7bf5bf08e01a47'
+ 'b79561ab9dce900e9bbeaf0d49927c2b'
+ 'c7264b99d0f7e51922a4d3126182c40a'
+ '9749ba386b08a8fe53e7ecede9bf2dfb'
'4441f6dfe7d75ced1fa75e54dd21d36e'
'd5fab2cd3abea65aa5ae696ea4a47d6b'
'da662ca76e7c8d7efbc7986ab7acea2d'
'07ac979b6ab5eeb778d55f041529d623'
'476e9113489f93b348b21e144b6a8fcf')
-
prepare() {
cd ${srcdir}/${pkgname}-${pkgver}
# upstream commit 91ce4085
patch -p1 -i $srcdir/glibc-2.18-readdir_r-CVE-2013-4237.patch
-
+
+ # upstream commits 1159a193, 55e17aad and b73ed247
+ patch -p1 -i $srcdir/glibc-2.18-malloc-corrupt-CVE-2013-4332.patch
+
+ # upstream commits 1326ba1a, 141f3a77 and 303e567a
+ # https://sourceware.org/ml/libc-alpha/2013-08/msg00394.html
+ # https://sourceware.org/ml/libc-alpha/2013-08/msg00462.html
+ patch -p1 -i $srcdir/glibc-2.18-strcoll-CVE-2012-4412+4424.patch
+
+ # upstream commits c61b4d41 and 0b1f8e35
+ patch -p1 -i $srcdir/glibc-2.18-ptr-mangle-CVE-2013-4788.patch
+
# hack fix for strstr issues on x86
patch -p1 -i $srcdir/glibc-2.18-strstr-hackfix.patch
diff --git a/core/glibc/glibc-2.18-malloc-corrupt-CVE-2013-4332.patch b/core/glibc/glibc-2.18-malloc-corrupt-CVE-2013-4332.patch
new file mode 100644
index 000000000..093db86c9
--- /dev/null
+++ b/core/glibc/glibc-2.18-malloc-corrupt-CVE-2013-4332.patch
@@ -0,0 +1,54 @@
+diff --git a/malloc/malloc.c b/malloc/malloc.c
+index dd295f5..7f43ba3 100644
+--- a/malloc/malloc.c
++++ b/malloc/malloc.c
+@@ -3082,6 +3082,13 @@ __libc_pvalloc(size_t bytes)
+ size_t page_mask = GLRO(dl_pagesize) - 1;
+ size_t rounded_bytes = (bytes + page_mask) & ~(page_mask);
+
++ /* Check for overflow. */
++ if (bytes > SIZE_MAX - 2*pagesz - MINSIZE)
++ {
++ __set_errno (ENOMEM);
++ return 0;
++ }
++
+ void *(*hook) (size_t, size_t, const void *) =
+ force_reg (__memalign_hook);
+ if (__builtin_expect (hook != NULL, 0))
+diff --git a/malloc/malloc.c b/malloc/malloc.c
+index 7f43ba3..3148c5f 100644
+--- a/malloc/malloc.c
++++ b/malloc/malloc.c
+@@ -3046,6 +3046,13 @@ __libc_valloc(size_t bytes)
+
+ size_t pagesz = GLRO(dl_pagesize);
+
++ /* Check for overflow. */
++ if (bytes > SIZE_MAX - pagesz - MINSIZE)
++ {
++ __set_errno (ENOMEM);
++ return 0;
++ }
++
+ void *(*hook) (size_t, size_t, const void *) =
+ force_reg (__memalign_hook);
+ if (__builtin_expect (hook != NULL, 0))
+diff --git a/malloc/malloc.c b/malloc/malloc.c
+index 3148c5f..f7718a9 100644
+--- a/malloc/malloc.c
++++ b/malloc/malloc.c
+@@ -3015,6 +3015,13 @@ __libc_memalign(size_t alignment, size_t bytes)
+ /* Otherwise, ensure that it is at least a minimum chunk size */
+ if (alignment < MINSIZE) alignment = MINSIZE;
+
++ /* Check for overflow. */
++ if (bytes > SIZE_MAX - alignment - MINSIZE)
++ {
++ __set_errno (ENOMEM);
++ return 0;
++ }
++
+ arena_get(ar_ptr, bytes + alignment + MINSIZE);
+ if(!ar_ptr)
+ return 0;
diff --git a/core/glibc/glibc-2.18-ptr-mangle-CVE-2013-4788.patch b/core/glibc/glibc-2.18-ptr-mangle-CVE-2013-4788.patch
new file mode 100644
index 000000000..09a439440
--- /dev/null
+++ b/core/glibc/glibc-2.18-ptr-mangle-CVE-2013-4788.patch
@@ -0,0 +1,485 @@
+diff --git a/csu/libc-start.c b/csu/libc-start.c
+index e5da3ef..c898d06 100644
+--- a/csu/libc-start.c
++++ b/csu/libc-start.c
+@@ -37,6 +37,12 @@ extern void __pthread_initialize_minimal (void);
+ in thread local area. */
+ uintptr_t __stack_chk_guard attribute_relro;
+ # endif
++# ifndef THREAD_SET_POINTER_GUARD
++/* Only exported for architectures that don't store the pointer guard
++ value in thread local area. */
++uintptr_t __pointer_chk_guard_local
++ attribute_relro attribute_hidden __attribute__ ((nocommon));
++# endif
+ #endif
+
+ #ifdef HAVE_PTR_NTHREADS
+@@ -195,6 +201,16 @@ LIBC_START_MAIN (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL),
+ # else
+ __stack_chk_guard = stack_chk_guard;
+ # endif
++
++ /* Set up the pointer guard value. */
++ uintptr_t pointer_chk_guard = _dl_setup_pointer_guard (_dl_random,
++ stack_chk_guard);
++# ifdef THREAD_SET_POINTER_GUARD
++ THREAD_SET_POINTER_GUARD (pointer_chk_guard);
++# else
++ __pointer_chk_guard_local = pointer_chk_guard;
++# endif
++
+ #endif
+
+ /* Register the destructor of the dynamic linker if there is any. */
+diff --git a/elf/Makefile b/elf/Makefile
+index aaa9534..cb8da93 100644
+--- a/elf/Makefile
++++ b/elf/Makefile
+@@ -121,7 +121,8 @@ endif
+ tests = tst-tls1 tst-tls2 tst-tls9 tst-leaks1 \
+ tst-array1 tst-array2 tst-array3 tst-array4 tst-array5
+ tests-static = tst-tls1-static tst-tls2-static tst-stackguard1-static \
+- tst-leaks1-static tst-array1-static tst-array5-static
++ tst-leaks1-static tst-array1-static tst-array5-static \
++ tst-ptrguard1-static
+ ifeq (yes,$(build-shared))
+ tests-static += tst-tls9-static
+ tst-tls9-static-ENV = \
+@@ -145,7 +146,8 @@ tests += loadtest restest1 preloadtest loadfail multiload origtest resolvfail \
+ tst-audit1 tst-audit2 tst-audit8 \
+ tst-stackguard1 tst-addr1 tst-thrlock \
+ tst-unique1 tst-unique2 tst-unique3 tst-unique4 \
+- tst-initorder tst-initorder2 tst-relsort1 tst-null-argv
++ tst-initorder tst-initorder2 tst-relsort1 tst-null-argv \
++ tst-ptrguard1
+ # reldep9
+ test-srcs = tst-pathopt
+ selinux-enabled := $(shell cat /selinux/enforce 2> /dev/null)
+@@ -1016,6 +1018,9 @@ LDFLAGS-order2mod2.so = $(no-as-needed)
+ tst-stackguard1-ARGS = --command "$(host-test-program-cmd) --child"
+ tst-stackguard1-static-ARGS = --command "$(objpfx)tst-stackguard1-static --child"
+
++tst-ptrguard1-ARGS = --command "$(host-test-program-cmd) --child"
++tst-ptrguard1-static-ARGS = --command "$(objpfx)tst-ptrguard1-static --child"
++
+ $(objpfx)tst-leaks1: $(libdl)
+ $(objpfx)tst-leaks1-mem: $(objpfx)tst-leaks1.out
+ $(common-objpfx)malloc/mtrace $(objpfx)tst-leaks1.mtrace > $@
+diff --git a/elf/tst-ptrguard1-static.c b/elf/tst-ptrguard1-static.c
+new file mode 100644
+index 0000000..7aff3b7
+--- /dev/null
++++ b/elf/tst-ptrguard1-static.c
+@@ -0,0 +1 @@
++#include "tst-ptrguard1.c"
+diff --git a/elf/tst-ptrguard1.c b/elf/tst-ptrguard1.c
+new file mode 100644
+index 0000000..c344a04
+--- /dev/null
++++ b/elf/tst-ptrguard1.c
+@@ -0,0 +1,202 @@
++/* Copyright (C) 2013 Free Software Foundation, Inc.
++ This file is part of the GNU C Library.
++
++ The GNU C Library is free software; you can redistribute it and/or
++ modify it under the terms of the GNU Lesser General Public
++ License as published by the Free Software Foundation; either
++ version 2.1 of the License, or (at your option) any later version.
++
++ The GNU C Library is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public
++ License along with the GNU C Library; if not, see
++ <http://www.gnu.org/licenses/>. */
++
++#include <errno.h>
++#include <stdbool.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++#include <sys/wait.h>
++#include <stackguard-macros.h>
++#include <tls.h>
++#include <unistd.h>
++
++#ifndef POINTER_CHK_GUARD
++extern uintptr_t __pointer_chk_guard;
++# define POINTER_CHK_GUARD __pointer_chk_guard
++#endif
++
++static const char *command;
++static bool child;
++static uintptr_t ptr_chk_guard_copy;
++static bool ptr_chk_guard_copy_set;
++static int fds[2];
++
++static void __attribute__ ((constructor))
++con (void)
++{
++ ptr_chk_guard_copy = POINTER_CHK_GUARD;
++ ptr_chk_guard_copy_set = true;
++}
++
++static int
++uintptr_t_cmp (const void *a, const void *b)
++{
++ if (*(uintptr_t *) a < *(uintptr_t *) b)
++ return 1;
++ if (*(uintptr_t *) a > *(uintptr_t *) b)
++ return -1;
++ return 0;
++}
++
++static int
++do_test (void)
++{
++ if (!ptr_chk_guard_copy_set)
++ {
++ puts ("constructor has not been run");
++ return 1;
++ }
++
++ if (ptr_chk_guard_copy != POINTER_CHK_GUARD)
++ {
++ puts ("POINTER_CHK_GUARD changed between constructor and do_test");
++ return 1;
++ }
++
++ if (child)
++ {
++ write (2, &ptr_chk_guard_copy, sizeof (ptr_chk_guard_copy));
++ return 0;
++ }
++
++ if (command == NULL)
++ {
++ puts ("missing --command or --child argument");
++ return 1;
++ }
++
++#define N 16
++ uintptr_t child_ptr_chk_guards[N + 1];
++ child_ptr_chk_guards[N] = ptr_chk_guard_copy;
++ int i;
++ for (i = 0; i < N; ++i)
++ {
++ if (pipe (fds) < 0)
++ {
++ printf ("couldn't create pipe: %m\n");
++ return 1;
++ }
++
++ pid_t pid = fork ();
++ if (pid < 0)
++ {
++ printf ("fork failed: %m\n");
++ return 1;
++ }
++
++ if (!pid)
++ {
++ if (ptr_chk_guard_copy != POINTER_CHK_GUARD)
++ {
++ puts ("POINTER_CHK_GUARD changed after fork");
++ exit (1);
++ }
++
++ close (fds[0]);
++ close (2);
++ dup2 (fds[1], 2);
++ close (fds[1]);
++
++ system (command);
++ exit (0);
++ }
++
++ close (fds[1]);
++
++ if (TEMP_FAILURE_RETRY (read (fds[0], &child_ptr_chk_guards[i],
++ sizeof (uintptr_t))) != sizeof (uintptr_t))
++ {
++ puts ("could not read ptr_chk_guard value from child");
++ return 1;
++ }
++
++ close (fds[0]);
++
++ pid_t termpid;
++ int status;
++ termpid = TEMP_FAILURE_RETRY (waitpid (pid, &status, 0));
++ if (termpid == -1)
++ {
++ printf ("waitpid failed: %m\n");
++ return 1;
++ }
++ else if (termpid != pid)
++ {
++ printf ("waitpid returned %ld != %ld\n",
++ (long int) termpid, (long int) pid);
++ return 1;
++ }
++ else if (!WIFEXITED (status) || WEXITSTATUS (status))
++ {
++ puts ("child hasn't exited with exit status 0");
++ return 1;
++ }
++ }
++
++ qsort (child_ptr_chk_guards, N + 1, sizeof (uintptr_t), uintptr_t_cmp);
++
++ /* The default pointer guard is the same as the default stack guard.
++ They are only set to default if dl_random is NULL. */
++ uintptr_t default_guard = 0;
++ unsigned char *p = (unsigned char *) &default_guard;
++ p[sizeof (uintptr_t) - 1] = 255;
++ p[sizeof (uintptr_t) - 2] = '\n';
++ p[0] = 0;
++
++ /* Test if the pointer guard canaries are either randomized,
++ or equal to the default pointer guard value.
++ Even with randomized pointer guards it might happen
++ that the random number generator generates the same
++ values, but if that happens in more than half from
++ the 16 runs, something is very wrong. */
++ int ndifferences = 0;
++ int ndefaults = 0;
++ for (i = 0; i < N; ++i)
++ {
++ if (child_ptr_chk_guards[i] != child_ptr_chk_guards[i+1])
++ ndifferences++;
++ else if (child_ptr_chk_guards[i] == default_guard)
++ ndefaults++;
++ }
++
++ printf ("differences %d defaults %d\n", ndifferences, ndefaults);
++
++ if (ndifferences < N / 2 && ndefaults < N / 2)
++ {
++ puts ("pointer guard values are not randomized enough");
++ puts ("nor equal to the default value");
++ return 1;
++ }
++
++ return 0;
++}
++
++#define OPT_COMMAND 10000
++#define OPT_CHILD 10001
++#define CMDLINE_OPTIONS \
++ { "command", required_argument, NULL, OPT_COMMAND }, \
++ { "child", no_argument, NULL, OPT_CHILD },
++#define CMDLINE_PROCESS \
++ case OPT_COMMAND: \
++ command = optarg; \
++ break; \
++ case OPT_CHILD: \
++ child = true; \
++ break;
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
+diff --git a/ports/sysdeps/ia64/stackguard-macros.h b/ports/sysdeps/ia64/stackguard-macros.h
+index dc683c2..3907293 100644
+--- a/ports/sysdeps/ia64/stackguard-macros.h
++++ b/ports/sysdeps/ia64/stackguard-macros.h
+@@ -2,3 +2,6 @@
+
+ #define STACK_CHK_GUARD \
+ ({ uintptr_t x; asm ("adds %0 = -8, r13;; ld8 %0 = [%0]" : "=r" (x)); x; })
++
++#define POINTER_CHK_GUARD \
++ ({ uintptr_t x; asm ("adds %0 = -16, r13;; ld8 %0 = [%0]" : "=r" (x)); x; })
+diff --git a/ports/sysdeps/tile/stackguard-macros.h b/ports/sysdeps/tile/stackguard-macros.h
+index 589ea2b..f2e041b 100644
+--- a/ports/sysdeps/tile/stackguard-macros.h
++++ b/ports/sysdeps/tile/stackguard-macros.h
+@@ -4,11 +4,17 @@
+ # if __WORDSIZE == 64
+ # define STACK_CHK_GUARD \
+ ({ uintptr_t x; asm ("addi %0, tp, -16; ld %0, %0" : "=r" (x)); x; })
++# define POINTER_CHK_GUARD \
++ ({ uintptr_t x; asm ("addi %0, tp, -24; ld %0, %0" : "=r" (x)); x; })
+ # else
+ # define STACK_CHK_GUARD \
+ ({ uintptr_t x; asm ("addi %0, tp, -8; ld4s %0, %0" : "=r" (x)); x; })
++# define POINTER_CHK_GUARD \
++ ({ uintptr_t x; asm ("addi %0, tp, -12; ld4s %0, %0" : "=r" (x)); x; })
+ # endif
+ #else
+ # define STACK_CHK_GUARD \
+ ({ uintptr_t x; asm ("addi %0, tp, -8; lw %0, %0" : "=r" (x)); x; })
++# define POINTER_CHK_GUARD \
++ ({ uintptr_t x; asm ("addi %0, tp, -12; lw %0, %0" : "=r" (x)); x; })
+ #endif
+diff --git a/sysdeps/generic/stackguard-macros.h b/sysdeps/generic/stackguard-macros.h
+index ababf65..4fa3d96 100644
+--- a/sysdeps/generic/stackguard-macros.h
++++ b/sysdeps/generic/stackguard-macros.h
+@@ -2,3 +2,6 @@
+
+ extern uintptr_t __stack_chk_guard;
+ #define STACK_CHK_GUARD __stack_chk_guard
++
++extern uintptr_t __pointer_chk_guard_local;
++#define POINTER_CHK_GUARD __pointer_chk_guard_local
+diff --git a/sysdeps/i386/stackguard-macros.h b/sysdeps/i386/stackguard-macros.h
+index 8c31e19..0397629 100644
+--- a/sysdeps/i386/stackguard-macros.h
++++ b/sysdeps/i386/stackguard-macros.h
+@@ -2,3 +2,11 @@
+
+ #define STACK_CHK_GUARD \
+ ({ uintptr_t x; asm ("movl %%gs:0x14, %0" : "=r" (x)); x; })
++
++#define POINTER_CHK_GUARD \
++ ({ \
++ uintptr_t x; \
++ asm ("movl %%gs:%c1, %0" : "=r" (x) \
++ : "i" (offsetof (tcbhead_t, pointer_guard))); \
++ x; \
++ })
+diff --git a/sysdeps/powerpc/powerpc32/stackguard-macros.h b/sysdeps/powerpc/powerpc32/stackguard-macros.h
+index 839f6a4..b3d0af8 100644
+--- a/sysdeps/powerpc/powerpc32/stackguard-macros.h
++++ b/sysdeps/powerpc/powerpc32/stackguard-macros.h
+@@ -2,3 +2,13 @@
+
+ #define STACK_CHK_GUARD \
+ ({ uintptr_t x; asm ("lwz %0,-28680(2)" : "=r" (x)); x; })
++
++#define POINTER_CHK_GUARD \
++ ({ \
++ uintptr_t x; \
++ asm ("lwz %0,%1(2)" \
++ : "=r" (x) \
++ : "i" (offsetof (tcbhead_t, pointer_guard) - TLS_TCB_OFFSET - sizeof (tcbhead_t)) \
++ ); \
++ x; \
++ })
+diff --git a/sysdeps/powerpc/powerpc64/stackguard-macros.h b/sysdeps/powerpc/powerpc64/stackguard-macros.h
+index 9da879c..4620f96 100644
+--- a/sysdeps/powerpc/powerpc64/stackguard-macros.h
++++ b/sysdeps/powerpc/powerpc64/stackguard-macros.h
+@@ -2,3 +2,13 @@
+
+ #define STACK_CHK_GUARD \
+ ({ uintptr_t x; asm ("ld %0,-28688(13)" : "=r" (x)); x; })
++
++#define POINTER_CHK_GUARD \
++ ({ \
++ uintptr_t x; \
++ asm ("ld %0,%1(2)" \
++ : "=r" (x) \
++ : "i" (offsetof (tcbhead_t, pointer_guard) - TLS_TCB_OFFSET - sizeof (tcbhead_t)) \
++ ); \
++ x; \
++ })
+diff --git a/sysdeps/s390/s390-32/stackguard-macros.h b/sysdeps/s390/s390-32/stackguard-macros.h
+index b74c579..449e8d4 100644
+--- a/sysdeps/s390/s390-32/stackguard-macros.h
++++ b/sysdeps/s390/s390-32/stackguard-macros.h
+@@ -2,3 +2,14 @@
+
+ #define STACK_CHK_GUARD \
+ ({ uintptr_t x; asm ("ear %0,%%a0; l %0,0x14(%0)" : "=a" (x)); x; })
++
++/* On s390/s390x there is no unique pointer guard, instead we use the
++ same value as the stack guard. */
++#define POINTER_CHK_GUARD \
++ ({ \
++ uintptr_t x; \
++ asm ("ear %0,%%a0; l %0,%1(%0)" \
++ : "=a" (x) \
++ : "i" (offsetof (tcbhead_t, stack_guard))); \
++ x; \
++ })
+diff --git a/sysdeps/s390/s390-64/stackguard-macros.h b/sysdeps/s390/s390-64/stackguard-macros.h
+index 0cebb5f..c8270fb 100644
+--- a/sysdeps/s390/s390-64/stackguard-macros.h
++++ b/sysdeps/s390/s390-64/stackguard-macros.h
+@@ -2,3 +2,17 @@
+
+ #define STACK_CHK_GUARD \
+ ({ uintptr_t x; asm ("ear %0,%%a0; sllg %0,%0,32; ear %0,%%a1; lg %0,0x28(%0)" : "=a" (x)); x; })
++
++/* On s390/s390x there is no unique pointer guard, instead we use the
++ same value as the stack guard. */
++#define POINTER_CHK_GUARD \
++ ({ \
++ uintptr_t x; \
++ asm ("ear %0,%%a0;" \
++ "sllg %0,%0,32;" \
++ "ear %0,%%a1;" \
++ "lg %0,%1(%0)" \
++ : "=a" (x) \
++ : "i" (offsetof (tcbhead_t, stack_guard))); \
++ x; \
++ })
+diff --git a/sysdeps/sparc/sparc32/stackguard-macros.h b/sysdeps/sparc/sparc32/stackguard-macros.h
+index c0b02b0..1eef0f1 100644
+--- a/sysdeps/sparc/sparc32/stackguard-macros.h
++++ b/sysdeps/sparc/sparc32/stackguard-macros.h
+@@ -2,3 +2,6 @@
+
+ #define STACK_CHK_GUARD \
+ ({ uintptr_t x; asm ("ld [%%g7+0x14], %0" : "=r" (x)); x; })
++
++#define POINTER_CHK_GUARD \
++ ({ uintptr_t x; asm ("ld [%%g7+0x18], %0" : "=r" (x)); x; })
+diff --git a/sysdeps/sparc/sparc64/stackguard-macros.h b/sysdeps/sparc/sparc64/stackguard-macros.h
+index 80f0635..cc0c12c 100644
+--- a/sysdeps/sparc/sparc64/stackguard-macros.h
++++ b/sysdeps/sparc/sparc64/stackguard-macros.h
+@@ -2,3 +2,6 @@
+
+ #define STACK_CHK_GUARD \
+ ({ uintptr_t x; asm ("ldx [%%g7+0x28], %0" : "=r" (x)); x; })
++
++#define POINTER_CHK_GUARD \
++ ({ uintptr_t x; asm ("ldx [%%g7+0x30], %0" : "=r" (x)); x; })
+diff --git a/sysdeps/x86_64/stackguard-macros.h b/sysdeps/x86_64/stackguard-macros.h
+index d7fedb3..1948800 100644
+--- a/sysdeps/x86_64/stackguard-macros.h
++++ b/sysdeps/x86_64/stackguard-macros.h
+@@ -4,3 +4,8 @@
+ ({ uintptr_t x; \
+ asm ("mov %%fs:%c1, %0" : "=r" (x) \
+ : "i" (offsetof (tcbhead_t, stack_guard))); x; })
++
++#define POINTER_CHK_GUARD \
++ ({ uintptr_t x; \
++ asm ("mov %%fs:%c1, %0" : "=r" (x) \
++ : "i" (offsetof (tcbhead_t, pointer_guard))); x; })
+diff --git a/elf/Makefile b/elf/Makefile
+index cb8da93..27d249b 100644
+--- a/elf/Makefile
++++ b/elf/Makefile
+@@ -1019,6 +1019,9 @@ tst-stackguard1-ARGS = --command "$(host-test-program-cmd) --child"
+ tst-stackguard1-static-ARGS = --command "$(objpfx)tst-stackguard1-static --child"
+
+ tst-ptrguard1-ARGS = --command "$(host-test-program-cmd) --child"
++# When built statically, the pointer guard interface uses
++# __pointer_chk_guard_local.
++CFLAGS-tst-ptrguard1-static.c = -DPTRGUARD_LOCAL
+ tst-ptrguard1-static-ARGS = --command "$(objpfx)tst-ptrguard1-static --child"
+
+ $(objpfx)tst-leaks1: $(libdl)
+diff --git a/sysdeps/generic/stackguard-macros.h b/sysdeps/generic/stackguard-macros.h
+index 4fa3d96..b4a6b23 100644
+--- a/sysdeps/generic/stackguard-macros.h
++++ b/sysdeps/generic/stackguard-macros.h
+@@ -3,5 +3,10 @@
+ extern uintptr_t __stack_chk_guard;
+ #define STACK_CHK_GUARD __stack_chk_guard
+
++#ifdef PTRGUARD_LOCAL
+ extern uintptr_t __pointer_chk_guard_local;
+-#define POINTER_CHK_GUARD __pointer_chk_guard_local
++# define POINTER_CHK_GUARD __pointer_chk_guard_local
++#else
++extern uintptr_t __pointer_chk_guard;
++# define POINTER_CHK_GUARD __pointer_chk_guard
++#endif
diff --git a/core/glibc/glibc-2.18-strcoll-CVE-2012-4412+4424.patch b/core/glibc/glibc-2.18-strcoll-CVE-2012-4412+4424.patch
new file mode 100644
index 000000000..5558c1fe9
--- /dev/null
+++ b/core/glibc/glibc-2.18-strcoll-CVE-2012-4412+4424.patch
@@ -0,0 +1,1004 @@
+diff --git a/string/strcoll_l.c b/string/strcoll_l.c
+index ecda08f..bb34a72 100644
+--- a/string/strcoll_l.c
++++ b/string/strcoll_l.c
+@@ -41,11 +41,434 @@
+
+ #include "../locale/localeinfo.h"
+
++/* Track status while looking for sequences in a string. */
++typedef struct
++{
++ int len; /* Length of the current sequence. */
++ size_t val; /* Position of the sequence relative to the
++ previous non-ignored sequence. */
++ size_t idxnow; /* Current index in sequences. */
++ size_t idxmax; /* Maximum index in sequences. */
++ size_t idxcnt; /* Current count of indices. */
++ size_t backw; /* Current Backward sequence index. */
++ size_t backw_stop; /* Index where the backward sequences stop. */
++ const USTRING_TYPE *us; /* The string. */
++ int32_t *idxarr; /* Array to cache weight indices. */
++ unsigned char *rulearr; /* Array to cache rules. */
++ unsigned char rule; /* Saved rule for the first sequence. */
++ int32_t idx; /* Index to weight of the current sequence. */
++ int32_t save_idx; /* Save looked up index of a forward
++ sequence after the last backward
++ sequence. */
++ const USTRING_TYPE *back_us; /* Beginning of the backward sequence. */
++} coll_seq;
++
++/* Get next sequence. The weight indices are cached, so we don't need to
++ traverse the string. */
++static void
++get_next_seq_cached (coll_seq *seq, int nrules, int pass,
++ const unsigned char *rulesets,
++ const USTRING_TYPE *weights)
++{
++ size_t val = seq->val = 0;
++ int len = seq->len;
++ size_t backw_stop = seq->backw_stop;
++ size_t backw = seq->backw;
++ size_t idxcnt = seq->idxcnt;
++ size_t idxmax = seq->idxmax;
++ size_t idxnow = seq->idxnow;
++ unsigned char *rulearr = seq->rulearr;
++ int32_t *idxarr = seq->idxarr;
++
++ while (len == 0)
++ {
++ ++val;
++ if (backw_stop != ~0ul)
++ {
++ /* There is something pushed. */
++ if (backw == backw_stop)
++ {
++ /* The last pushed character was handled. Continue
++ with forward characters. */
++ if (idxcnt < idxmax)
++ {
++ idxnow = idxcnt;
++ backw_stop = ~0ul;
++ }
++ else
++ {
++ /* Nothing any more. The backward sequence
++ ended with the last sequence in the string. */
++ idxnow = ~0ul;
++ break;
++ }
++ }
++ else
++ idxnow = --backw;
++ }
++ else
++ {
++ backw_stop = idxcnt;
++
++ while (idxcnt < idxmax)
++ {
++ if ((rulesets[rulearr[idxcnt] * nrules + pass]
++ & sort_backward) == 0)
++ /* No more backward characters to push. */
++ break;
++ ++idxcnt;
++ }
++
++ if (backw_stop == idxcnt)
++ {
++ /* No sequence at all or just one. */
++ if (idxcnt == idxmax)
++ /* Note that LEN is still zero. */
++ break;
++
++ backw_stop = ~0ul;
++ idxnow = idxcnt++;
++ }
++ else
++ /* We pushed backward sequences. */
++ idxnow = backw = idxcnt - 1;
++ }
++ len = weights[idxarr[idxnow]++];
++ }
++
++ /* Update the structure. */
++ seq->val = val;
++ seq->len = len;
++ seq->backw_stop = backw_stop;
++ seq->backw = backw;
++ seq->idxcnt = idxcnt;
++ seq->idxnow = idxnow;
++}
++
++/* Get next sequence. Traverse the string as required. */
++static void
++get_next_seq (coll_seq *seq, int nrules, const unsigned char *rulesets,
++ const USTRING_TYPE *weights, const int32_t *table,
++ const USTRING_TYPE *extra, const int32_t *indirect)
++{
++#include WEIGHT_H
++ size_t val = seq->val = 0;
++ int len = seq->len;
++ size_t backw_stop = seq->backw_stop;
++ size_t backw = seq->backw;
++ size_t idxcnt = seq->idxcnt;
++ size_t idxmax = seq->idxmax;
++ size_t idxnow = seq->idxnow;
++ unsigned char *rulearr = seq->rulearr;
++ int32_t *idxarr = seq->idxarr;
++ const USTRING_TYPE *us = seq->us;
++
++ while (len == 0)
++ {
++ ++val;
++ if (backw_stop != ~0ul)
++ {
++ /* There is something pushed. */
++ if (backw == backw_stop)
++ {
++ /* The last pushed character was handled. Continue
++ with forward characters. */
++ if (idxcnt < idxmax)
++ {
++ idxnow = idxcnt;
++ backw_stop = ~0ul;
++ }
++ else
++ /* Nothing any more. The backward sequence ended with
++ the last sequence in the string. Note that LEN
++ is still zero. */
++ break;
++ }
++ else
++ idxnow = --backw;
++ }
++ else
++ {
++ backw_stop = idxmax;
++
++ while (*us != L('\0'))
++ {
++ int32_t tmp = findidx (&us, -1);
++ rulearr[idxmax] = tmp >> 24;
++ idxarr[idxmax] = tmp & 0xffffff;
++ idxcnt = idxmax++;
++
++ if ((rulesets[rulearr[idxcnt] * nrules]
++ & sort_backward) == 0)
++ /* No more backward characters to push. */
++ break;
++ ++idxcnt;
++ }
++
++ if (backw_stop >= idxcnt)
++ {
++ /* No sequence at all or just one. */
++ if (idxcnt == idxmax || backw_stop > idxcnt)
++ /* Note that LEN is still zero. */
++ break;
++
++ backw_stop = ~0ul;
++ idxnow = idxcnt;
++ }
++ else
++ /* We pushed backward sequences. */
++ idxnow = backw = idxcnt - 1;
++ }
++ len = weights[idxarr[idxnow]++];
++ }
++
++ /* Update the structure. */
++ seq->val = val;
++ seq->len = len;
++ seq->backw_stop = backw_stop;
++ seq->backw = backw;
++ seq->idxcnt = idxcnt;
++ seq->idxmax = idxmax;
++ seq->idxnow = idxnow;
++ seq->us = us;
++}
++
++/* Get next sequence. Traverse the string as required. This function does not
++ set or use any index or rule cache. */
++static void
++get_next_seq_nocache (coll_seq *seq, int nrules, const unsigned char *rulesets,
++ const USTRING_TYPE *weights, const int32_t *table,
++ const USTRING_TYPE *extra, const int32_t *indirect,
++ int pass)
++{
++#include WEIGHT_H
++ size_t val = seq->val = 0;
++ int len = seq->len;
++ size_t backw_stop = seq->backw_stop;
++ size_t backw = seq->backw;
++ size_t idxcnt = seq->idxcnt;
++ size_t idxmax = seq->idxmax;
++ int32_t idx = seq->idx;
++ const USTRING_TYPE *us = seq->us;
++
++ while (len == 0)
++ {
++ ++val;
++ if (backw_stop != ~0ul)
++ {
++ /* There is something pushed. */
++ if (backw == backw_stop)
++ {
++ /* The last pushed character was handled. Continue
++ with forward characters. */
++ if (idxcnt < idxmax)
++ {
++ idx = seq->save_idx;
++ backw_stop = ~0ul;
++ }
++ else
++ {
++ /* Nothing anymore. The backward sequence ended with
++ the last sequence in the string. Note that len is
++ still zero. */
++ idx = 0;
++ break;
++ }
++ }
++ else
++ {
++ /* XXX Traverse BACKW sequences from the beginning of
++ BACKW_STOP to get the next sequence. Is ther a quicker way
++ to do this? */
++ size_t i = backw_stop;
++ us = seq->back_us;
++ while (i < backw)
++ {
++ int32_t tmp = findidx (&us, -1);
++ idx = tmp & 0xffffff;
++ i++;
++ }
++ --backw;
++ us = seq->us;
++ }
++ }
++ else
++ {
++ backw_stop = idxmax;
++ int32_t prev_idx = idx;
++
++ while (*us != L('\0'))
++ {
++ int32_t tmp = findidx (&us, -1);
++ unsigned char rule = tmp >> 24;
++ prev_idx = idx;
++ idx = tmp & 0xffffff;
++ idxcnt = idxmax++;
++
++ /* Save the rule for the first sequence. */
++ if (__glibc_unlikely (idxcnt == 0))
++ seq->rule = rule;
++
++ if ((rulesets[rule * nrules + pass]
++ & sort_backward) == 0)
++ /* No more backward characters to push. */
++ break;
++ ++idxcnt;
++ }
++
++ if (backw_stop >= idxcnt)
++ {
++ /* No sequence at all or just one. */
++ if (idxcnt == idxmax || backw_stop > idxcnt)
++ /* Note that len is still zero. */
++ break;
++
++ backw_stop = ~0ul;
++ }
++ else
++ {
++ /* We pushed backward sequences. If the stream ended with the
++ backward sequence, then we process the last sequence we
++ found. Otherwise we process the sequence before the last
++ one since the last one was a forward sequence. */
++ seq->back_us = seq->us;
++ seq->us = us;
++ backw = idxcnt;
++ if (idxmax > idxcnt)
++ {
++ backw--;
++ seq->save_idx = idx;
++ idx = prev_idx;
++ }
++ if (backw > backw_stop)
++ backw--;
++ }
++ }
++
++ len = weights[idx++];
++ /* Skip over indices of previous levels. */
++ for (int i = 0; i < pass; i++)
++ {
++ idx += len;
++ len = weights[idx];
++ idx++;
++ }
++ }
++
++ /* Update the structure. */
++ seq->val = val;
++ seq->len = len;
++ seq->backw_stop = backw_stop;
++ seq->backw = backw;
++ seq->idxcnt = idxcnt;
++ seq->idxmax = idxmax;
++ seq->us = us;
++ seq->idx = idx;
++}
++
++/* Compare two sequences. This version does not use the index and rules
++ cache. */
++static int
++do_compare_nocache (coll_seq *seq1, coll_seq *seq2, int position,
++ const USTRING_TYPE *weights)
++{
++ int seq1len = seq1->len;
++ int seq2len = seq2->len;
++ size_t val1 = seq1->val;
++ size_t val2 = seq2->val;
++ int idx1 = seq1->idx;
++ int idx2 = seq2->idx;
++ int result = 0;
++
++ /* Test for position if necessary. */
++ if (position && val1 != val2)
++ {
++ result = val1 > val2 ? 1 : -1;
++ goto out;
++ }
++
++ /* Compare the two sequences. */
++ do
++ {
++ if (weights[idx1] != weights[idx2])
++ {
++ /* The sequences differ. */
++ result = weights[idx1] - weights[idx2];
++ goto out;
++ }
++
++ /* Increment the offsets. */
++ ++idx1;
++ ++idx2;
++
++ --seq1len;
++ --seq2len;
++ }
++ while (seq1len > 0 && seq2len > 0);
++
++ if (position && seq1len != seq2len)
++ result = seq1len - seq2len;
++
++out:
++ seq1->len = seq1len;
++ seq2->len = seq2len;
++ seq1->idx = idx1;
++ seq2->idx = idx2;
++ return result;
++}
++
++/* Compare two sequences using the index cache. */
++static int
++do_compare (coll_seq *seq1, coll_seq *seq2, int position,
++ const USTRING_TYPE *weights)
++{
++ int seq1len = seq1->len;
++ int seq2len = seq2->len;
++ size_t val1 = seq1->val;
++ size_t val2 = seq2->val;
++ int32_t *idx1arr = seq1->idxarr;
++ int32_t *idx2arr = seq2->idxarr;
++ int idx1now = seq1->idxnow;
++ int idx2now = seq2->idxnow;
++ int result = 0;
++
++ /* Test for position if necessary. */
++ if (position && val1 != val2)
++ {
++ result = val1 > val2 ? 1 : -1;
++ goto out;
++ }
++
++ /* Compare the two sequences. */
++ do
++ {
++ if (weights[idx1arr[idx1now]] != weights[idx2arr[idx2now]])
++ {
++ /* The sequences differ. */
++ result = weights[idx1arr[idx1now]] - weights[idx2arr[idx2now]];
++ goto out;
++ }
++
++ /* Increment the offsets. */
++ ++idx1arr[idx1now];
++ ++idx2arr[idx2now];
++
++ --seq1len;
++ --seq2len;
++ }
++ while (seq1len > 0 && seq2len > 0);
++
++ if (position && seq1len != seq2len)
++ result = seq1len - seq2len;
++
++out:
++ seq1->len = seq1len;
++ seq2->len = seq2len;
++ return result;
++}
++
+ int
+-STRCOLL (s1, s2, l)
+- const STRING_TYPE *s1;
+- const STRING_TYPE *s2;
+- __locale_t l;
++STRCOLL (const STRING_TYPE *s1, const STRING_TYPE *s2, __locale_t l)
+ {
+ struct __locale_data *current = l->__locales[LC_COLLATE];
+ uint_fast32_t nrules = current->values[_NL_ITEM_INDEX (_NL_COLLATE_NRULES)].word;
+@@ -56,34 +479,6 @@ STRCOLL (s1, s2, l)
+ const USTRING_TYPE *weights;
+ const USTRING_TYPE *extra;
+ const int32_t *indirect;
+- uint_fast32_t pass;
+- int result = 0;
+- const USTRING_TYPE *us1;
+- const USTRING_TYPE *us2;
+- size_t s1len;
+- size_t s2len;
+- int32_t *idx1arr;
+- int32_t *idx2arr;
+- unsigned char *rule1arr;
+- unsigned char *rule2arr;
+- size_t idx1max;
+- size_t idx2max;
+- size_t idx1cnt;
+- size_t idx2cnt;
+- size_t idx1now;
+- size_t idx2now;
+- size_t backw1_stop;
+- size_t backw2_stop;
+- size_t backw1;
+- size_t backw2;
+- int val1;
+- int val2;
+- int position;
+- int seq1len;
+- int seq2len;
+- int use_malloc;
+-
+-#include WEIGHT_H
+
+ if (nrules == 0)
+ return STRCMP (s1, s2);
+@@ -98,7 +493,6 @@ STRCOLL (s1, s2, l)
+ current->values[_NL_ITEM_INDEX (CONCAT(_NL_COLLATE_EXTRA,SUFFIX))].string;
+ indirect = (const int32_t *)
+ current->values[_NL_ITEM_INDEX (CONCAT(_NL_COLLATE_INDIRECT,SUFFIX))].string;
+- use_malloc = 0;
+
+ assert (((uintptr_t) table) % __alignof__ (table[0]) == 0);
+ assert (((uintptr_t) weights) % __alignof__ (weights[0]) == 0);
+@@ -106,18 +500,13 @@ STRCOLL (s1, s2, l)
+ assert (((uintptr_t) indirect) % __alignof__ (indirect[0]) == 0);
+
+ /* We need this a few times. */
+- s1len = STRLEN (s1);
+- s2len = STRLEN (s2);
++ size_t s1len = STRLEN (s1);
++ size_t s2len = STRLEN (s2);
+
+ /* Catch empty strings. */
+- if (__builtin_expect (s1len == 0, 0) || __builtin_expect (s2len == 0, 0))
++ if (__glibc_unlikely (s1len == 0) || __glibc_unlikely (s2len == 0))
+ return (s1len != 0) - (s2len != 0);
+
+- /* We need the elements of the strings as unsigned values since they
+- are used as indeces. */
+- us1 = (const USTRING_TYPE *) s1;
+- us2 = (const USTRING_TYPE *) s2;
+-
+ /* Perform the first pass over the string and while doing this find
+ and store the weights for each character. Since we want this to
+ be as fast as possible we are using `alloca' to store the temporary
+@@ -127,411 +516,124 @@ STRCOLL (s1, s2, l)
+
+ Please note that the localedef programs makes sure that `position'
+ is not used at the first level. */
+- if (! __libc_use_alloca ((s1len + s2len) * (sizeof (int32_t) + 1)))
+- {
+- idx1arr = (int32_t *) malloc ((s1len + s2len) * (sizeof (int32_t) + 1));
+- idx2arr = &idx1arr[s1len];
+- rule1arr = (unsigned char *) &idx2arr[s2len];
+- rule2arr = &rule1arr[s1len];
+-
+- if (idx1arr == NULL)
+- /* No memory. Well, go with the stack then.
+-
+- XXX Once this implementation is stable we will handle this
+- differently. Instead of precomputing the indeces we will
+- do this in time. This means, though, that this happens for
+- every pass again. */
+- goto try_stack;
+- use_malloc = 1;
+- }
+- else
+- {
+- try_stack:
+- idx1arr = (int32_t *) alloca (s1len * sizeof (int32_t));
+- idx2arr = (int32_t *) alloca (s2len * sizeof (int32_t));
+- rule1arr = (unsigned char *) alloca (s1len);
+- rule2arr = (unsigned char *) alloca (s2len);
+- }
+
+- idx1cnt = 0;
+- idx2cnt = 0;
+- idx1max = 0;
+- idx2max = 0;
+- idx1now = 0;
+- idx2now = 0;
+- backw1_stop = ~0ul;
+- backw2_stop = ~0ul;
+- backw1 = ~0ul;
+- backw2 = ~0ul;
+- seq1len = 0;
+- seq2len = 0;
+- position = rulesets[0] & sort_position;
+- while (1)
+- {
+- val1 = 0;
+- val2 = 0;
+-
+- /* Get the next non-IGNOREd element for string `s1'. */
+- if (seq1len == 0)
+- do
+- {
+- ++val1;
+-
+- if (backw1_stop != ~0ul)
+- {
+- /* The is something pushed. */
+- if (backw1 == backw1_stop)
+- {
+- /* The last pushed character was handled. Continue
+- with forward characters. */
+- if (idx1cnt < idx1max)
+- {
+- idx1now = idx1cnt;
+- backw1_stop = ~0ul;
+- }
+- else
+- /* Nothing anymore. The backward sequence ended with
+- the last sequence in the string. Note that seq1len
+- is still zero. */
+- break;
+- }
+- else
+- idx1now = --backw1;
+- }
+- else
+- {
+- backw1_stop = idx1max;
+-
+- while (*us1 != L('\0'))
+- {
+- int32_t tmp = findidx (&us1, -1);
+- rule1arr[idx1max] = tmp >> 24;
+- idx1arr[idx1max] = tmp & 0xffffff;
+- idx1cnt = idx1max++;
+-
+- if ((rulesets[rule1arr[idx1cnt] * nrules]
+- & sort_backward) == 0)
+- /* No more backward characters to push. */
+- break;
+- ++idx1cnt;
+- }
+-
+- if (backw1_stop >= idx1cnt)
+- {
+- /* No sequence at all or just one. */
+- if (idx1cnt == idx1max || backw1_stop > idx1cnt)
+- /* Note that seq1len is still zero. */
+- break;
+-
+- backw1_stop = ~0ul;
+- idx1now = idx1cnt;
+- }
+- else
+- /* We pushed backward sequences. */
+- idx1now = backw1 = idx1cnt - 1;
+- }
+- }
+- while ((seq1len = weights[idx1arr[idx1now]++]) == 0);
+-
+- /* And the same for string `s2'. */
+- if (seq2len == 0)
+- do
+- {
+- ++val2;
+-
+- if (backw2_stop != ~0ul)
+- {
+- /* The is something pushed. */
+- if (backw2 == backw2_stop)
+- {
+- /* The last pushed character was handled. Continue
+- with forward characters. */
+- if (idx2cnt < idx2max)
+- {
+- idx2now = idx2cnt;
+- backw2_stop = ~0ul;
+- }
+- else
+- /* Nothing anymore. The backward sequence ended with
+- the last sequence in the string. Note that seq2len
+- is still zero. */
+- break;
+- }
+- else
+- idx2now = --backw2;
+- }
+- else
+- {
+- backw2_stop = idx2max;
+-
+- while (*us2 != L('\0'))
+- {
+- int32_t tmp = findidx (&us2, -1);
+- rule2arr[idx2max] = tmp >> 24;
+- idx2arr[idx2max] = tmp & 0xffffff;
+- idx2cnt = idx2max++;
+-
+- if ((rulesets[rule2arr[idx2cnt] * nrules]
+- & sort_backward) == 0)
+- /* No more backward characters to push. */
+- break;
+- ++idx2cnt;
+- }
+-
+- if (backw2_stop >= idx2cnt)
+- {
+- /* No sequence at all or just one. */
+- if (idx2cnt == idx2max || backw2_stop > idx2cnt)
+- /* Note that seq1len is still zero. */
+- break;
+-
+- backw2_stop = ~0ul;
+- idx2now = idx2cnt;
+- }
+- else
+- /* We pushed backward sequences. */
+- idx2now = backw2 = idx2cnt - 1;
+- }
+- }
+- while ((seq2len = weights[idx2arr[idx2now]++]) == 0);
+-
+- /* See whether any or both strings are empty. */
+- if (seq1len == 0 || seq2len == 0)
+- {
+- if (seq1len == seq2len)
+- /* Both ended. So far so good, both strings are equal at the
+- first level. */
+- break;
+-
+- /* This means one string is shorter than the other. Find out
+- which one and return an appropriate value. */
+- result = seq1len == 0 ? -1 : 1;
+- goto free_and_return;
+- }
++ coll_seq seq1, seq2;
++ bool use_malloc = false;
++ int result = 0;
+
+- /* Test for position if necessary. */
+- if (position && val1 != val2)
+- {
+- result = val1 - val2;
+- goto free_and_return;
+- }
++ memset (&seq1, 0, sizeof (seq1));
++ seq2 = seq1;
+
+- /* Compare the two sequences. */
+- do
+- {
+- if (weights[idx1arr[idx1now]] != weights[idx2arr[idx2now]])
+- {
+- /* The sequences differ. */
+- result = weights[idx1arr[idx1now]] - weights[idx2arr[idx2now]];
+- goto free_and_return;
+- }
++ size_t size_max = SIZE_MAX / (sizeof (int32_t) + 1);
+
+- /* Increment the offsets. */
+- ++idx1arr[idx1now];
+- ++idx2arr[idx2now];
++ /* If the strings are long enough to cause overflow in the size request, then
++ skip the allocation and proceed with the non-cached routines. */
++ if (MIN (s1len, s2len) > size_max
++ || MAX (s1len, s2len) > size_max - MIN (s1len, s2len))
++ goto begin_collate;
+
+- --seq1len;
+- --seq2len;
+- }
+- while (seq1len > 0 && seq2len > 0);
++ if (! __libc_use_alloca ((s1len + s2len) * (sizeof (int32_t) + 1)))
++ {
++ seq1.idxarr = (int32_t *) malloc ((s1len + s2len) * (sizeof (int32_t) + 1));
+
+- if (position && seq1len != seq2len)
++ /* If we failed to allocate memory, we leave everything as NULL so that
++ we use the nocache version of traversal and comparison functions. */
++ if (seq1.idxarr != NULL)
+ {
+- result = seq1len - seq2len;
+- goto free_and_return;
++ seq2.idxarr = &seq1.idxarr[s1len];
++ seq1.rulearr = (unsigned char *) &seq2.idxarr[s2len];
++ seq2.rulearr = &seq1.rulearr[s1len];
++ use_malloc = true;
+ }
+ }
++ else
++ {
++ seq1.idxarr = (int32_t *) alloca (s1len * sizeof (int32_t));
++ seq2.idxarr = (int32_t *) alloca (s2len * sizeof (int32_t));
++ seq1.rulearr = (unsigned char *) alloca (s1len);
++ seq2.rulearr = (unsigned char *) alloca (s2len);
++ }
+
+- /* Now the remaining passes over the weights. We now use the
+- indeces we found before. */
+- for (pass = 1; pass < nrules; ++pass)
++ int rule;
++
++ begin_collate:
++ rule = 0;
++ /* Cache values in the first pass and if needed, use them in subsequent
++ passes. */
++ for (int pass = 0; pass < nrules; ++pass)
+ {
++ seq1.idxcnt = 0;
++ seq1.idx = 0;
++ seq2.idx = 0;
++ seq1.backw_stop = ~0ul;
++ seq1.backw = ~0ul;
++ seq2.idxcnt = 0;
++ seq2.backw_stop = ~0ul;
++ seq2.backw = ~0ul;
++
++ /* We need the elements of the strings as unsigned values since they
++ are used as indices. */
++ seq1.us = (const USTRING_TYPE *) s1;
++ seq2.us = (const USTRING_TYPE *) s2;
++
+ /* We assume that if a rule has defined `position' in one section
+ this is true for all of them. */
+- idx1cnt = 0;
+- idx2cnt = 0;
+- backw1_stop = ~0ul;
+- backw2_stop = ~0ul;
+- backw1 = ~0ul;
+- backw2 = ~0ul;
+- position = rulesets[rule1arr[0] * nrules + pass] & sort_position;
++ int position = rulesets[rule * nrules + pass] & sort_position;
+
+ while (1)
+ {
+- val1 = 0;
+- val2 = 0;
+-
+- /* Get the next non-IGNOREd element for string `s1'. */
+- if (seq1len == 0)
+- do
+- {
+- ++val1;
+-
+- if (backw1_stop != ~0ul)
+- {
+- /* The is something pushed. */
+- if (backw1 == backw1_stop)
+- {
+- /* The last pushed character was handled. Continue
+- with forward characters. */
+- if (idx1cnt < idx1max)
+- {
+- idx1now = idx1cnt;
+- backw1_stop = ~0ul;
+- }
+- else
+- {
+- /* Nothing anymore. The backward sequence
+- ended with the last sequence in the string. */
+- idx1now = ~0ul;
+- break;
+- }
+- }
+- else
+- idx1now = --backw1;
+- }
+- else
+- {
+- backw1_stop = idx1cnt;
+-
+- while (idx1cnt < idx1max)
+- {
+- if ((rulesets[rule1arr[idx1cnt] * nrules + pass]
+- & sort_backward) == 0)
+- /* No more backward characters to push. */
+- break;
+- ++idx1cnt;
+- }
+-
+- if (backw1_stop == idx1cnt)
+- {
+- /* No sequence at all or just one. */
+- if (idx1cnt == idx1max)
+- /* Note that seq1len is still zero. */
+- break;
+-
+- backw1_stop = ~0ul;
+- idx1now = idx1cnt++;
+- }
+- else
+- /* We pushed backward sequences. */
+- idx1now = backw1 = idx1cnt - 1;
+- }
+- }
+- while ((seq1len = weights[idx1arr[idx1now]++]) == 0);
+-
+- /* And the same for string `s2'. */
+- if (seq2len == 0)
+- do
+- {
+- ++val2;
+-
+- if (backw2_stop != ~0ul)
+- {
+- /* The is something pushed. */
+- if (backw2 == backw2_stop)
+- {
+- /* The last pushed character was handled. Continue
+- with forward characters. */
+- if (idx2cnt < idx2max)
+- {
+- idx2now = idx2cnt;
+- backw2_stop = ~0ul;
+- }
+- else
+- {
+- /* Nothing anymore. The backward sequence
+- ended with the last sequence in the string. */
+- idx2now = ~0ul;
+- break;
+- }
+- }
+- else
+- idx2now = --backw2;
+- }
+- else
+- {
+- backw2_stop = idx2cnt;
+-
+- while (idx2cnt < idx2max)
+- {
+- if ((rulesets[rule2arr[idx2cnt] * nrules + pass]
+- & sort_backward) == 0)
+- /* No more backward characters to push. */
+- break;
+- ++idx2cnt;
+- }
+-
+- if (backw2_stop == idx2cnt)
+- {
+- /* No sequence at all or just one. */
+- if (idx2cnt == idx2max)
+- /* Note that seq2len is still zero. */
+- break;
+-
+- backw2_stop = ~0ul;
+- idx2now = idx2cnt++;
+- }
+- else
+- /* We pushed backward sequences. */
+- idx2now = backw2 = idx2cnt - 1;
+- }
+- }
+- while ((seq2len = weights[idx2arr[idx2now]++]) == 0);
++ if (__glibc_unlikely (seq1.idxarr == NULL))
++ {
++ get_next_seq_nocache (&seq1, nrules, rulesets, weights, table,
++ extra, indirect, pass);
++ get_next_seq_nocache (&seq2, nrules, rulesets, weights, table,
++ extra, indirect, pass);
++ }
++ else if (pass == 0)
++ {
++ get_next_seq (&seq1, nrules, rulesets, weights, table, extra,
++ indirect);
++ get_next_seq (&seq2, nrules, rulesets, weights, table, extra,
++ indirect);
++ }
++ else
++ {
++ get_next_seq_cached (&seq1, nrules, pass, rulesets, weights);
++ get_next_seq_cached (&seq2, nrules, pass, rulesets, weights);
++ }
+
+ /* See whether any or both strings are empty. */
+- if (seq1len == 0 || seq2len == 0)
++ if (seq1.len == 0 || seq2.len == 0)
+ {
+- if (seq1len == seq2len)
++ if (seq1.len == seq2.len)
+ /* Both ended. So far so good, both strings are equal
+ at this level. */
+ break;
+
+ /* This means one string is shorter than the other. Find out
+ which one and return an appropriate value. */
+- result = seq1len == 0 ? -1 : 1;
++ result = seq1.len == 0 ? -1 : 1;
+ goto free_and_return;
+ }
+
+- /* Test for position if necessary. */
+- if (position && val1 != val2)
+- {
+- result = val1 - val2;
+- goto free_and_return;
+- }
+-
+- /* Compare the two sequences. */
+- do
+- {
+- if (weights[idx1arr[idx1now]] != weights[idx2arr[idx2now]])
+- {
+- /* The sequences differ. */
+- result = (weights[idx1arr[idx1now]]
+- - weights[idx2arr[idx2now]]);
+- goto free_and_return;
+- }
+-
+- /* Increment the offsets. */
+- ++idx1arr[idx1now];
+- ++idx2arr[idx2now];
+-
+- --seq1len;
+- --seq2len;
+- }
+- while (seq1len > 0 && seq2len > 0);
+-
+- if (position && seq1len != seq2len)
+- {
+- result = seq1len - seq2len;
+- goto free_and_return;
+- }
++ if (__glibc_unlikely (seq1.idxarr == NULL))
++ result = do_compare_nocache (&seq1, &seq2, position, weights);
++ else
++ result = do_compare (&seq1, &seq2, position, weights);
++ if (result != 0)
++ goto free_and_return;
+ }
++
++ if (__glibc_likely (seq1.rulearr != NULL))
++ rule = seq1.rulearr[0];
++ else
++ rule = seq1.rule;
+ }
+
+ /* Free the memory if needed. */
+ free_and_return:
+ if (use_malloc)
+- free (idx1arr);
++ free (seq1.idxarr);
+
+ return result;
+ }
diff --git a/core/gmp/PKGBUILD b/core/gmp/PKGBUILD
index 2f651d2c0..f8bff89b0 100644
--- a/core/gmp/PKGBUILD
+++ b/core/gmp/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 186344 2013-05-25 03:05:31Z allan $
+# $Id: PKGBUILD 195874 2013-10-03 04:29:19Z allan $
# Maintainer: Allan McRae <allan@archlinux.org>
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=gmp
-pkgver=5.1.2
+pkgver=5.1.3
pkgrel=1
pkgdesc="A free library for arbitrary precision arithmetic"
arch=('i686' 'x86_64' 'mips64el')
@@ -13,7 +13,7 @@ license=('LGPL3')
options=('!libtool')
install=gmp.install
source=(ftp://ftp.gmplib.org/pub/gmp-${pkgver}/gmp-${pkgver}.tar.xz{,.sig})
-md5sums=('06fe2ca164221c59ce74867155cfc1ac'
+md5sums=('e5fe367801ff067b923d1e6a126448aa'
'SKIP')
build() {
diff --git a/core/gnupg/PKGBUILD b/core/gnupg/PKGBUILD
index e4038de59..412da5996 100644
--- a/core/gnupg/PKGBUILD
+++ b/core/gnupg/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 193522 2013-08-21 22:25:01Z bisson $
+# $Id: PKGBUILD 195927 2013-10-05 17:40:59Z bisson $
# Maintainer: Gaetan Bisson <bisson@archlinux.org>
# Contributor: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: Andreas Radke <andyrtr@archlinux.org>
# Contributor: Judd Vinet <jvinet@zeroflux.org>
pkgname=gnupg
-pkgver=2.0.21
+pkgver=2.0.22
pkgrel=1
pkgdesc='Complete and free implementation of the OpenPGP standard'
url='http://www.gnupg.org/'
@@ -18,7 +18,7 @@ makedepends=('curl' 'libldap' 'libusb-compat')
depends=('bzip2' 'libksba' 'libgcrypt' 'pth' 'libassuan' 'readline' 'pinentry' 'dirmngr')
source=("ftp://ftp.gnupg.org/gcrypt/${pkgname}/${pkgname}-${pkgver}.tar.bz2"{,.sig}
'protect-tool-env.patch')
-sha1sums=('5ba8cce72eb4fd1a3ac1a282d25d7c7b90d3bf26' 'SKIP'
+sha1sums=('9ba9ee288e9bf813e0f1e25cbe06b58d3072d8b8' 'SKIP'
'2ec97ba55ae47ff0d63bc813b8c64cb79cef11db')
install=install
diff --git a/core/heirloom-mailx/PKGBUILD b/core/heirloom-mailx/PKGBUILD
deleted file mode 100644
index 5a26197a0..000000000
--- a/core/heirloom-mailx/PKGBUILD
+++ /dev/null
@@ -1,64 +0,0 @@
-# $Id: PKGBUILD 160422 2012-06-01 20:13:47Z stephane $
-# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
-# Contributor: Sergej Pupykin <pupykin.s@arch@gmail.com>
-# Contributor: Andreas Wagner <Andreas.Wagner@em.uni-frankfurt.de>
-
-pkgname=heirloom-mailx
-pkgver=12.5
-pkgrel=3.1
-pkgdesc="A commandline utility for sending and receiving email"
-arch=('i686' 'x86_64' 'mips64el')
-url="http://heirloom.sourceforge.net/mailx.html"
-license=('custom')
-groups=('base')
-depends=('openssl' 'krb5')
-optdepends=('smtp-forwarder: for sending mail')
-replaces=('mailx' 'mailx-heirloom')
-provides=('mailx' 'mailx-heirloom')
-conflicts=('mailx' 'mailx-heirloom')
-backup=(etc/mail.rc)
-source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.xz)
-sha1sums=('1998dd6168a68400e533712ae7163c72b6a7c056')
-options=('!makeflags') # Does not build with MAKEFLAGS=-jX, X>1
-
-# source PKGBUILD && mksource
-mksource() {
- export CVSROOT=:pserver:anonymous@nail.cvs.sourceforge.net:/cvsroot/nail
- D=nail
- [ -d "${D}" ] && cvs up "${D}" || cvs co "${D}"
-
- _dirname=${pkgname}-${pkgver}
- mv $D ${_dirname}
- tar -cJv --exclude=CVS -f ${_dirname}.tar.xz ${_dirname}
- rm -rf ${_dirname}
-}
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
-
- sed -i 's|/etc/nail.rc|/etc/mail.rc|g' mailx.1
-
- # For Linux and BSD, this should be set.
- echo "set bsdcompat" >> nail.rc
-
- sed -i "s/pg/less/" cmd1.c
-
- echo PREFIX=/usr \
- MAILRC=/etc/mail.rc \
- SENDMAIL=/usr/sbin/sendmail \
- MAILSPOOL=/var/spool/mail \
- UCBINSTALL=/usr/bin/install > makeflags
-
- make `cat makeflags` IPv6=-DHAVE_IPv6_FUNCS
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" `cat makeflags` install
-
- # For compatibility with the old mailx program
- ln -sf mailx "${pkgdir}"/usr/bin/mail
- ln -sf mailx.1.gz "${pkgdir}"/usr/share/man/man1/mail.1.gz
-
- install -D -m0644 COPYING "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
-}
diff --git a/core/inetutils/PKGBUILD b/core/inetutils/PKGBUILD
index b8dc47e3e..d3bd5bbe1 100644
--- a/core/inetutils/PKGBUILD
+++ b/core/inetutils/PKGBUILD
@@ -1,35 +1,29 @@
-# $Id: PKGBUILD 187028 2013-06-03 11:15:10Z allan $
+# $Id: PKGBUILD 194664 2013-09-20 17:37:51Z eric $
# Maintainer: Eric Bélanger <eric@archlinux.org>
pkgname=inetutils
-pkgver=1.9.1
-pkgrel=6
+pkgver=1.9.1.341
+pkgrel=1
pkgdesc="A collection of common network programs"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.gnu.org/software/inetutils/"
license=('GPL3')
groups=('base')
depends=('pam')
+makedepends=('help2man')
backup=('etc/xinetd.d/telnet' 'etc/xinetd.d/talk' \
'etc/xinetd.d/rlogin' 'etc/xinetd.d/rsh')
options=('!emptydirs')
install=inetutils.install
-source=(http://ftp.gnu.org/gnu/inetutils/${pkgname}-${pkgver}.tar.gz{,.sig} \
- telnet.xinetd talk.xinetd rlogin.xinetd rsh.xinetd \
- ftpd.service dnsdomainname)
-sha1sums=('86b7eb11cfdaefb1d4e9bfc10620beaf8f09bc90'
+source=(ftp://ftp.archlinux.org/other/packages/inetutils/${pkgname}-${pkgver}.tar.xz{,.sig} \
+ telnet.xinetd talk.xinetd rlogin.xinetd rsh.xinetd ftpd.service)
+sha1sums=('eaccc1568c9cc624f6cda3a265fb92ec72c7304d'
'SKIP'
'2b2dd71eb3233e5090f4c2df8abe9b4924d323f3'
'b15ab4faa9d97652e182c98c1e3a3b3cbbf6383c'
'd9b8f8aab094ecb779d0f16f21b4683ab327516f'
'26763ae31b8a5be256666a0ba55746941d75d6ee'
- 'e4a764828b57f1e907ec96f4ae0e0cf0d3e2e802'
- 'eb952b0b9c3e3d429d8e21b110249e495f0e0e63')
-
-prepare() {
- cd ${pkgname}-${pkgver}
- sed -i 's|_GL_WARN_ON_USE (gets|//_GL_WARN_ON_USE (gets|' lib/stdio.in.h
-}
+ 'e4a764828b57f1e907ec96f4ae0e0cf0d3e2e802')
build() {
cd ${pkgname}-${pkgver}
@@ -41,7 +35,7 @@ build() {
--enable-talk --enable-talkd \
--enable-rlogin --enable-rlogind \
--enable-rsh --enable-rshd \
- --enable-rcp --enable-hostname \
+ --enable-rcp --enable-hostname --enable-dnsdomainname \
--disable-rexec --disable-rexecd \
--disable-tftp --disable-tftpd \
--disable-ping --disable-ping6 \
@@ -60,8 +54,6 @@ package() {
cd ${pkgname}-${pkgver}
make DESTDIR="${pkgdir}" install
- install -D -m755 "${srcdir}/dnsdomainname" "${pkgdir}/usr/bin/dnsdomainname"
- echo ".so man1/hostname.1" > "${pkgdir}/usr/share/man/man1/dnsdomainname.1"
install -D -m644 "${srcdir}/telnet.xinetd" "${pkgdir}/etc/xinetd.d/telnet"
install -D -m644 "${srcdir}/talk.xinetd" "${pkgdir}/etc/xinetd.d/talk"
install -D -m644 "${srcdir}/rlogin.xinetd" "${pkgdir}/etc/xinetd.d/rlogin"
diff --git a/core/inetutils/dnsdomainname b/core/inetutils/dnsdomainname
deleted file mode 100644
index a1b8a8c31..000000000
--- a/core/inetutils/dnsdomainname
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-exec /usr/bin/hostname -d "$@"
diff --git a/core/iw/PKGBUILD b/core/iw/PKGBUILD
index fc4285ffe..66ccfb288 100644
--- a/core/iw/PKGBUILD
+++ b/core/iw/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 187031 2013-06-03 11:15:15Z allan $
+# $Id: PKGBUILD 195909 2013-10-05 07:30:47Z thomas $
# Maintainer: Thomas Bächler <thomas@archlinux.org>
pkgname=iw
-pkgver=3.10
-pkgrel=2
+pkgver=3.11
+pkgrel=1
pkgdesc="nl80211 based CLI configuration utility for wireless devices"
arch=("i686" "x86_64" 'mips64el')
url="http://wireless.kernel.org/en/users/Documentation/iw"
@@ -11,7 +11,7 @@ license=("GPL")
depends=("libnl")
makedepends=("linux-api-headers")
source=(https://www.kernel.org/pub/software/network/$pkgname/$pkgname-$pkgver.tar.xz)
-sha256sums=('456ee212cfb728e292667caa508a7dff902666c78579814756a3012d68d64fe9')
+sha256sums=('e90327323821a8219abac56298919076c4bac6636464ca91356f02cfe40530ff')
build() {
cd "$srcdir"/$pkgname-$pkgver
diff --git a/core/libffi/PKGBUILD b/core/libffi/PKGBUILD
index c26a9d129..ffdcc73a9 100644
--- a/core/libffi/PKGBUILD
+++ b/core/libffi/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 187810 2013-06-06 08:25:26Z foutrelis $
-# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# $Id: PKGBUILD 195482 2013-10-01 05:58:29Z bpiotrowski $
+# Contributor: Stéphane Gaudreault <stephane@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>
pkgname=libffi
pkgver=3.0.13
-pkgrel=3
-pkgdesc="A portable, high level programming interface to various calling conventions"
+pkgrel=4
+pkgdesc="Portable, high level programming interface to various calling conventions"
arch=('i686' 'x86_64' 'mips64el')
url="http://sourceware.org/libffi/"
license=('MIT')
@@ -17,18 +17,18 @@ source=(ftp://sourceware.org/pub/libffi/libffi-${pkgver}.tar.gz)
sha1sums=('f5230890dc0be42fb5c58fbf793da253155de106')
build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
+ cd $pkgname-$pkgver
./configure --prefix=/usr --disable-static
make
}
check() {
- cd "${srcdir}/${pkgname}-${pkgver}"
+ cd $pkgname-$pkgver
make check
}
package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
- install -D -m644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}
diff --git a/core/libsasl/CVE-2013-4122.patch b/core/libsasl/CVE-2013-4122.patch
new file mode 100644
index 000000000..d6b9800e6
--- /dev/null
+++ b/core/libsasl/CVE-2013-4122.patch
@@ -0,0 +1,116 @@
+From dedad73e5e7a75d01a5f3d5a6702ab8ccd2ff40d Mon Sep 17 00:00:00 2001
+From: mancha <mancha1@hush.com>
+Date: Thu, 11 Jul 2013 09:08:07 +0000
+Subject: Handle NULL returns from glibc 2.17+ crypt()
+
+Starting with glibc 2.17 (eglibc 2.17), crypt() fails with EINVAL
+(w/ NULL return) if the salt violates specifications. Additionally,
+on FIPS-140 enabled Linux systems, DES/MD5-encrypted passwords
+passed to crypt() fail with EPERM (w/ NULL return).
+
+When using glibc's crypt(), check return value to avoid a possible
+NULL pointer dereference.
+
+Patch by mancha1@hush.com.
+---
+diff --git a/pwcheck/pwcheck_getpwnam.c b/pwcheck/pwcheck_getpwnam.c
+index 4b34222..400289c 100644
+--- a/pwcheck/pwcheck_getpwnam.c
++++ b/pwcheck/pwcheck_getpwnam.c
+@@ -32,6 +32,7 @@ char *userid;
+ char *password;
+ {
+ char* r;
++ char* crpt_passwd;
+ struct passwd *pwd;
+
+ pwd = getpwnam(userid);
+@@ -41,7 +42,7 @@ char *password;
+ else if (pwd->pw_passwd[0] == '*') {
+ r = "Account disabled";
+ }
+- else if (strcmp(pwd->pw_passwd, crypt(password, pwd->pw_passwd)) != 0) {
++ else if (!(crpt_passwd = crypt(password, pwd->pw_passwd)) || strcmp(pwd->pw_passwd, (const char *)crpt_passwd) != 0) {
+ r = "Incorrect password";
+ }
+ else {
+diff --git a/pwcheck/pwcheck_getspnam.c b/pwcheck/pwcheck_getspnam.c
+index 2b11286..6d607bb 100644
+--- a/pwcheck/pwcheck_getspnam.c
++++ b/pwcheck/pwcheck_getspnam.c
+@@ -32,13 +32,15 @@ char *userid;
+ char *password;
+ {
+ struct spwd *pwd;
++ char *crpt_passwd;
+
+ pwd = getspnam(userid);
+ if (!pwd) {
+ return "Userid not found";
+ }
+
+- if (strcmp(pwd->sp_pwdp, crypt(password, pwd->sp_pwdp)) != 0) {
++ crpt_passwd = crypt(password, pwd->sp_pwdp);
++ if (!crpt_passwd || strcmp(pwd->sp_pwdp, (const char *)crpt_passwd) != 0) {
+ return "Incorrect password";
+ }
+ else {
+diff --git a/saslauthd/auth_getpwent.c b/saslauthd/auth_getpwent.c
+index fc8029d..d4ebe54 100644
+--- a/saslauthd/auth_getpwent.c
++++ b/saslauthd/auth_getpwent.c
+@@ -77,6 +77,7 @@ auth_getpwent (
+ {
+ /* VARIABLES */
+ struct passwd *pw; /* pointer to passwd file entry */
++ char *crpt_passwd; /* encrypted password */
+ int errnum;
+ /* END VARIABLES */
+
+@@ -105,7 +106,8 @@ auth_getpwent (
+ }
+ }
+
+- if (strcmp(pw->pw_passwd, (const char *)crypt(password, pw->pw_passwd))) {
++ crpt_passwd = crypt(password, pw->pw_passwd);
++ if (!crpt_passwd || strcmp(pw->pw_passwd, (const char *)crpt_passwd)) {
+ if (flags & VERBOSE) {
+ syslog(LOG_DEBUG, "DEBUG: auth_getpwent: %s: invalid password", login);
+ }
+diff --git a/saslauthd/auth_shadow.c b/saslauthd/auth_shadow.c
+index 677131b..1988afd 100644
+--- a/saslauthd/auth_shadow.c
++++ b/saslauthd/auth_shadow.c
+@@ -210,8 +210,8 @@ auth_shadow (
+ RETURN("NO Insufficient permission to access NIS authentication database (saslauthd)");
+ }
+
+- cpw = strdup((const char *)crypt(password, sp->sp_pwdp));
+- if (strcmp(sp->sp_pwdp, cpw)) {
++ cpw = crypt(password, sp->sp_pwdp);
++ if (!cpw || strcmp(sp->sp_pwdp, (const char *)cpw)) {
+ if (flags & VERBOSE) {
+ /*
+ * This _should_ reveal the SHADOW_PW_LOCKED prefix to an
+@@ -221,10 +221,8 @@ auth_shadow (
+ syslog(LOG_DEBUG, "DEBUG: auth_shadow: pw mismatch: '%s' != '%s'",
+ sp->sp_pwdp, cpw);
+ }
+- free(cpw);
+ RETURN("NO Incorrect password");
+ }
+- free(cpw);
+
+ /*
+ * The following fields will be set to -1 if:
+@@ -286,7 +284,7 @@ auth_shadow (
+ RETURN("NO Invalid username");
+ }
+
+- if (strcmp(upw->upw_passwd, crypt(password, upw->upw_passwd)) != 0) {
++ if (!(cpw = crypt(password, upw->upw_passwd)) || (strcmp(upw->upw_passwd, (const char *)cpw) != 0)) {
+ if (flags & VERBOSE) {
+ syslog(LOG_DEBUG, "auth_shadow: pw mismatch: %s != %s",
+ password, upw->upw_passwd);
+--
+cgit v0.9.2
diff --git a/core/libsasl/PKGBUILD b/core/libsasl/PKGBUILD
index 3e1cff6ad..47e20bf0a 100644
--- a/core/libsasl/PKGBUILD
+++ b/core/libsasl/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 187033 2013-06-03 11:15:22Z allan $
+# $Id: PKGBUILD 195994 2013-10-07 10:32:39Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# This package spans multiple repositories.
@@ -8,7 +8,7 @@
#pkgname=('cyrus-sasl' 'cyrus-sasl-gssapi' 'cyrus-sasl-ldap' 'cyrus-sasl-sql')
pkgname=libsasl
pkgver=2.1.26
-pkgrel=4
+pkgrel=6
pkgdesc="Cyrus Simple Authentication Service Layer (SASL) library"
arch=('i686' 'x86_64' 'mips64el')
url="http://cyrusimap.web.cmu.edu/"
@@ -25,7 +25,8 @@ source=(ftp://ftp.cyrusimap.org/cyrus-sasl/cyrus-sasl-${pkgver}.tar.gz
0030-dont_use_la_files_for_opening_plugins.patch
saslauthd.service
saslauthd.conf.d
- tmpfiles.conf)
+ tmpfiles.conf
+ CVE-2013-4122.patch)
md5sums=('a7f4e5e559a0e37b3ffc438c9456e425'
'79b8a5e8689989e2afd4b7bda595a7b1'
'f45aa8c42b32e0569ab3d14a83485b37'
@@ -36,21 +37,27 @@ md5sums=('a7f4e5e559a0e37b3ffc438c9456e425'
'8e7106f32e495e9ade69014fd1b3352a'
'3499dcd610ad1ad58e0faffde2aa7a23'
'49219af5641150edec288a3fdb65e7c1'
- '45bb0192d2f188066240b9a66ee6365f')
+ '45bb0192d2f188066240b9a66ee6365f'
+ 'c5f0ec88c584a75c14d7f402eaeed7ef')
+
+prepare() {
+ cd cyrus-sasl-$pkgver
+ patch -Np1 -i ../cyrus-sasl-2.1.22-qa.patch
+ patch -Np1 -i ../cyrus-sasl-2.1.26-size_t.patch
+ patch -Np1 -i ../0010_maintainer_mode.patch
+ patch -Np1 -i ../0011_saslauthd_ac_prog_libtool.patch
+ patch -Np1 -i ../0025_ld_as_needed.patch
+ patch -Np1 -i ../0026_drop_krb5support_dependency.patch
+ patch -Np1 -i ../0030-dont_use_la_files_for_opening_plugins.patch
+ patch -Np1 -i ../CVE-2013-4122.patch
+
+ sed 's/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/' -i configure.in
+}
build() {
export CFLAGS="$CFLAGS -fPIC"
+ cd cyrus-sasl-$pkgver
- cd "${srcdir}/cyrus-sasl-${pkgver}"
- patch -Np1 -i "${srcdir}/cyrus-sasl-2.1.22-qa.patch"
- patch -Np1 -i "${srcdir}/cyrus-sasl-2.1.26-size_t.patch"
- patch -Np1 -i "${srcdir}/0010_maintainer_mode.patch"
- patch -Np1 -i "${srcdir}/0011_saslauthd_ac_prog_libtool.patch"
- patch -Np1 -i "${srcdir}/0025_ld_as_needed.patch"
- patch -Np1 -i "${srcdir}/0026_drop_krb5support_dependency.patch"
- patch -Np1 -i "${srcdir}/0030-dont_use_la_files_for_opening_plugins.patch"
-
- sed 's/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/' -i configure.in
rm -f config/config.guess config/config.sub
rm -f config/ltconfig config/ltmain.sh config/libtool.m4
rm -fr autom4te.cache
@@ -111,7 +118,7 @@ package_libsasl() {
depends=('openssl')
conflicts=('cyrus-sasl-plugins')
- cd "${srcdir}/cyrus-sasl-${pkgver}"
+ cd cyrus-sasl-$pkgver
for dir in include lib sasldb plugins utils; do
pushd ${dir}
make DESTDIR="${pkgdir}" install
@@ -130,7 +137,7 @@ package_cyrus-sasl() {
pkgdesc="Cyrus saslauthd SASL authentication daemon"
backup=('etc/conf.d/saslauthd')
- cd "${srcdir}/cyrus-sasl-${pkgver}/saslauthd"
+ cd cyrus-sasl-$pkgver/saslauthd
make DESTDIR="${pkgdir}" install
install -Dm644 "${srcdir}/saslauthd.conf.d" "${pkgdir}/etc/conf.d/saslauthd"
install -Dm644 "${srcdir}/saslauthd.service" "${pkgdir}/usr/lib/systemd/system/saslauthd.service"
@@ -145,7 +152,7 @@ package_cyrus-sasl-gssapi() {
depends=("libsasl=${pkgver}" 'krb5')
replaces=('cyrus-sasl-plugins')
- cd "${srcdir}/cyrus-sasl-${pkgver}/plugins"
+ cd cyrus-sasl-$pkgver/plugins
install -m755 -d "${pkgdir}/usr/lib/sasl2"
cp -a .libs/libgssapiv2.so* "${pkgdir}/usr/lib/sasl2/"
cp -a .libs/libgs2.so* "${pkgdir}/usr/lib/sasl2/"
@@ -159,7 +166,7 @@ package_cyrus-sasl-ldap() {
depends=("libsasl=${pkgver}" 'libldap')
replaces=('cyrus-sasl-plugins')
- cd "${srcdir}/cyrus-sasl-${pkgver}/plugins"
+ cd cyrus-sasl-$pkgver/plugins
install -m755 -d "${pkgdir}/usr/lib/sasl2"
cp -a .libs/libldapdb.so* "${pkgdir}/usr/lib/sasl2/"
@@ -172,7 +179,7 @@ package_cyrus-sasl-sql() {
depends=("libsasl=${pkgver}" 'postgresql-libs' 'libmariadbclient' 'sqlite2')
replaces=('cyrus-sasl-plugins')
- cd "${srcdir}/cyrus-sasl-${pkgver}/plugins"
+ cd cyrus-sasl-$pkgver/plugins
install -m755 -d "${pkgdir}/usr/lib/sasl2"
cp -a .libs/libsql.so* "${pkgdir}/usr/lib/sasl2/"
diff --git a/core/libusbx/0001-linux-Use-a-separate-lock-to-serialize-start-stop-vs.patch b/core/libusbx/0001-linux-Use-a-separate-lock-to-serialize-start-stop-vs.patch
deleted file mode 100644
index b66abd48f..000000000
--- a/core/libusbx/0001-linux-Use-a-separate-lock-to-serialize-start-stop-vs.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From daf4c9fadaf8a49198c53c039bf78980dc251a4b Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Tue, 30 Jul 2013 15:57:16 +0200
-Subject: [PATCH 1/2] linux: Use a separate lock to serialize start/stop vs
- hotplug events
-
-Using one lock for this is a bad idea, as we should not be holding any
-locks used by the hotplug thread when trying to stop otherwise the stop
-function may wait indefinetely in pthread_join, while the event-thread
-is waiting for the lock the caller of the stop function holds.
-
-Using 2 separate locks for this should fix this deadlock, which has been
-reported here: https://bugzilla.redhat.com/show_bug.cgi?id=985484
-
-Many thanks to Chris Dickens for figuring out the cause of this deadlock!
-
-CC: Chris Dickens <christopher.a.dickens@gmail.com>
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- libusb/os/linux_usbfs.c | 24 +++++++++++++++++-------
- libusb/version_nano.h | 2 +-
- 2 files changed, 18 insertions(+), 8 deletions(-)
-
-diff --git a/libusb/os/linux_usbfs.c b/libusb/os/linux_usbfs.c
-index 09288af..90e23b7 100644
---- a/libusb/os/linux_usbfs.c
-+++ b/libusb/os/linux_usbfs.c
-@@ -120,7 +120,9 @@ static int sysfs_has_descriptors = -1;
- /* how many times have we initted (and not exited) ? */
- static volatile int init_count = 0;
-
--/* Serialize hotplug start/stop, scan-devices, event-thread, and poll */
-+/* Serialize hotplug start/stop */
-+usbi_mutex_static_t linux_hotplug_startstop_lock = USBI_MUTEX_INITIALIZER;
-+/* Serialize scan-devices, event-thread, and poll */
- usbi_mutex_static_t linux_hotplug_lock = USBI_MUTEX_INITIALIZER;
-
- static int linux_start_event_monitor(void);
-@@ -419,7 +421,7 @@ static int op_init(struct libusb_context *ctx)
- if (sysfs_has_descriptors)
- usbi_dbg("sysfs has complete descriptors");
-
-- usbi_mutex_static_lock(&linux_hotplug_lock);
-+ usbi_mutex_static_lock(&linux_hotplug_startstop_lock);
- r = LIBUSB_SUCCESS;
- if (init_count == 0) {
- /* start up hotplug event handler */
-@@ -433,20 +435,20 @@ static int op_init(struct libusb_context *ctx)
- linux_stop_event_monitor();
- } else
- usbi_err(ctx, "error starting hotplug event monitor");
-- usbi_mutex_static_unlock(&linux_hotplug_lock);
-+ usbi_mutex_static_unlock(&linux_hotplug_startstop_lock);
-
- return r;
- }
-
- static void op_exit(void)
- {
-- usbi_mutex_static_lock(&linux_hotplug_lock);
-+ usbi_mutex_static_lock(&linux_hotplug_startstop_lock);
- assert(init_count != 0);
- if (!--init_count) {
- /* tear down event handler */
- (void)linux_stop_event_monitor();
- }
-- usbi_mutex_static_unlock(&linux_hotplug_lock);
-+ usbi_mutex_static_unlock(&linux_hotplug_startstop_lock);
- }
-
- static int linux_start_event_monitor(void)
-@@ -469,11 +471,19 @@ static int linux_stop_event_monitor(void)
-
- static int linux_scan_devices(struct libusb_context *ctx)
- {
-+ int ret;
-+
-+ usbi_mutex_static_lock(&linux_hotplug_lock);
-+
- #if defined(USE_UDEV)
-- return linux_udev_scan_devices(ctx);
-+ ret = linux_udev_scan_devices(ctx);
- #else
-- return linux_default_scan_devices(ctx);
-+ ret = linux_default_scan_devices(ctx);
- #endif
-+
-+ usbi_mutex_static_unlock(&linux_hotplug_lock);
-+
-+ return ret;
- }
-
- static void op_hotplug_poll(void)
-diff --git a/libusb/version_nano.h b/libusb/version_nano.h
-index ebf41e1..34e26ff 100644
---- a/libusb/version_nano.h
-+++ b/libusb/version_nano.h
-@@ -1 +1 @@
--#define LIBUSB_NANO 10774
-+#define LIBUSB_NANO 10777
---
-1.8.3.1
-
diff --git a/core/libusbx/0002-hotplug-Remove-use-of-pthread_cancel-from-linux_udev.patch b/core/libusbx/0002-hotplug-Remove-use-of-pthread_cancel-from-linux_udev.patch
deleted file mode 100644
index 5342fbe70..000000000
--- a/core/libusbx/0002-hotplug-Remove-use-of-pthread_cancel-from-linux_udev.patch
+++ /dev/null
@@ -1,141 +0,0 @@
-From 852efb5a3e82de43cf6288e9904cb254ff636aa0 Mon Sep 17 00:00:00 2001
-From: Chris Dickens <christopher.a.dickens@gmail.com>
-Date: Sat, 20 Jul 2013 13:01:41 -0700
-Subject: [PATCH 2/2] hotplug: Remove use of pthread_cancel from linux_udev
-
-Using pthread_cancel() presents the opportunity for deadlock, so
-use a control pipe to cause the event thread to gracefully exit.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- libusb/os/linux_udev.c | 63 ++++++++++++++++++++++++++++++++++++++------------
- libusb/version_nano.h | 2 +-
- 2 files changed, 49 insertions(+), 16 deletions(-)
-
-diff --git a/libusb/os/linux_udev.c b/libusb/os/linux_udev.c
-index 5a2aadf..70f632d 100644
---- a/libusb/os/linux_udev.c
-+++ b/libusb/os/linux_udev.c
-@@ -46,6 +46,7 @@
- /* udev context */
- static struct udev *udev_ctx = NULL;
- static int udev_monitor_fd = -1;
-+static int udev_control_pipe[2] = {-1, -1};
- static struct udev_monitor *udev_monitor = NULL;
- static pthread_t linux_event_thread;
-
-@@ -95,14 +96,23 @@ int linux_udev_start_event_monitor(void)
- goto err_free_monitor;
- }
-
-+ r = usbi_pipe(udev_control_pipe);
-+ if (r) {
-+ usbi_err(NULL, "could not create udev control pipe");
-+ goto err_free_monitor;
-+ }
-+
- r = pthread_create(&linux_event_thread, NULL, linux_udev_event_thread_main, NULL);
- if (r) {
- usbi_err(NULL, "creating hotplug event thread (%d)", r);
-- goto err_free_monitor;
-+ goto err_close_pipe;
- }
-
- return LIBUSB_SUCCESS;
-
-+err_close_pipe:
-+ close(udev_control_pipe[0]);
-+ close(udev_control_pipe[1]);
- err_free_monitor:
- udev_monitor_unref(udev_monitor);
- udev_monitor = NULL;
-@@ -115,14 +125,19 @@ err_free_ctx:
-
- int linux_udev_stop_event_monitor(void)
- {
-+ char dummy = 1;
-+ int r;
-+
- assert(udev_ctx != NULL);
- assert(udev_monitor != NULL);
- assert(udev_monitor_fd != -1);
-
-- /* Cancel the event thread. This is the only way to guarantee the
-- thread exits since closing the monitor fd won't necessarily cause
-- poll to return. */
-- pthread_cancel(linux_event_thread);
-+ /* Write some dummy data to the control pipe and
-+ * wait for the thread to exit */
-+ r = usbi_write(udev_control_pipe[1], &dummy, sizeof(dummy));
-+ if (r <= 0) {
-+ usbi_warn(NULL, "udev control pipe signal failed");
-+ }
- pthread_join(linux_event_thread, NULL);
-
- /* Release the udev monitor */
-@@ -134,27 +149,45 @@ int linux_udev_stop_event_monitor(void)
- udev_unref(udev_ctx);
- udev_ctx = NULL;
-
-+ /* close and reset control pipe */
-+ close(udev_control_pipe[0]);
-+ close(udev_control_pipe[1]);
-+ udev_control_pipe[0] = -1;
-+ udev_control_pipe[1] = -1;
-+
- return LIBUSB_SUCCESS;
- }
-
- static void *linux_udev_event_thread_main(void *arg)
- {
-+ char dummy;
-+ int r;
- struct udev_device* udev_dev;
-- struct pollfd fds = {.fd = udev_monitor_fd,
-- .events = POLLIN};
-+ struct pollfd fds[] = {
-+ {.fd = udev_control_pipe[0],
-+ .events = POLLIN},
-+ {.fd = udev_monitor_fd,
-+ .events = POLLIN},
-+ };
-
- usbi_dbg("udev event thread entering.");
-
-- while (1 == poll(&fds, 1, -1)) {
-- if (NULL == udev_monitor || POLLIN != fds.revents) {
-+ while (poll(fds, 2, -1) >= 0) {
-+ if (fds[0].revents & POLLIN) {
-+ /* activity on control pipe, read the byte and exit */
-+ r = usbi_read(udev_control_pipe[0], &dummy, sizeof(dummy));
-+ if (r <= 0) {
-+ usbi_warn(NULL, "udev control pipe read failed");
-+ }
- break;
- }
--
-- usbi_mutex_static_lock(&linux_hotplug_lock);
-- udev_dev = udev_monitor_receive_device(udev_monitor);
-- if (udev_dev)
-- udev_hotplug_event(udev_dev);
-- usbi_mutex_static_unlock(&linux_hotplug_lock);
-+ if (fds[1].revents & POLLIN) {
-+ usbi_mutex_static_lock(&linux_hotplug_lock);
-+ udev_dev = udev_monitor_receive_device(udev_monitor);
-+ if (udev_dev)
-+ udev_hotplug_event(udev_dev);
-+ usbi_mutex_static_unlock(&linux_hotplug_lock);
-+ }
- }
-
- usbi_dbg("udev event thread exiting");
-diff --git a/libusb/version_nano.h b/libusb/version_nano.h
-index 34e26ff..39ad7e3 100644
---- a/libusb/version_nano.h
-+++ b/libusb/version_nano.h
-@@ -1 +1 @@
--#define LIBUSB_NANO 10777
-+#define LIBUSB_NANO 10778
---
-1.8.3.1
-
diff --git a/core/libusbx/PKGBUILD b/core/libusbx/PKGBUILD
index 8dc78efd1..a708fc92c 100644
--- a/core/libusbx/PKGBUILD
+++ b/core/libusbx/PKGBUILD
@@ -1,30 +1,19 @@
-# $Id: PKGBUILD 192163 2013-08-06 15:03:05Z tpowa $
+# $Id: PKGBUILD 194438 2013-09-16 12:13:08Z tpowa $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
pkgname=libusbx
-pkgver=1.0.16
-pkgrel=2
+pkgver=1.0.17
+pkgrel=1
depends=('glibc' 'systemd')
pkgdesc="Library that provides generic access to USB device"
arch=(i686 x86_64 mips64el)
url="http://libusbx.org"
license=('LGPL')
-source=(http://downloads.sourceforge.net/${pkgname}/releases/${pkgver}/${pkgname}-${pkgver}.tar.bz2
- 0001-linux-Use-a-separate-lock-to-serialize-start-stop-vs.patch
- 0002-hotplug-Remove-use-of-pthread_cancel-from-linux_udev.patch)
+source=(http://downloads.sourceforge.net/${pkgname}/releases/${pkgver}/${pkgname}-${pkgver}.tar.bz2)
options=(!libtool)
replaces=('libusb1' 'libusb')
provides=("libusb=$pkgver")
conflicts=("libusb")
-md5sums=('7f5715d624cd6c26b30a317eb6c2fe5e'
- 'dad04322621fe7cabd2fe631c6d9929f'
- '259238c92c92f8b3df5dcad0db8aaf2f')
-prepare() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- # fix #36418
- patch -Np1 -i ../0001-linux-Use-a-separate-lock-to-serialize-start-stop-vs.patch
- patch -Np1 -i ../0002-hotplug-Remove-use-of-pthread_cancel-from-linux_udev.patch
-}
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
./configure --prefix=/usr --disable-static
@@ -40,3 +29,4 @@ package () {
cd "${srcdir}/${pkgname}-${pkgver}"
make DESTDIR="${pkgdir}" install
}
+md5sums=('99467ca2cb81c19c4a172de9f30e7576')
diff --git a/core/links/PKGBUILD b/core/links/PKGBUILD
index 0a6da74b8..a15d98962 100644
--- a/core/links/PKGBUILD
+++ b/core/links/PKGBUILD
@@ -1,27 +1,26 @@
-# $Id: PKGBUILD 184459 2013-05-06 19:47:23Z foutrelis $
+# $Id: PKGBUILD 195212 2013-09-27 21:17:39Z eric $
# Maintainer: Eric Bélanger <eric@archlinux.org>
pkgname=links
-pkgver=2.7
-pkgrel=2
+pkgver=2.8
+pkgrel=1
pkgdesc="A text WWW browser, similar to Lynx"
arch=('i686' 'x86_64' 'mips64el')
url="http://links.twibright.com/"
license=('GPL')
depends=('bzip2' 'xz' 'openssl' 'gpm')
-makedepends=('libtiff' 'libpng' 'libxt' 'optipng')
+makedepends=('libtiff' 'libpng' 'libxt')
optdepends=('libx11: for using xlinks' 'libtiff: for using xlinks' 'libpng: for using xlinks')
provides=('links-g')
conflicts=('links-g')
replaces=('links-g')
source=(http://links.twibright.com/download/${pkgname}-${pkgver}.tar.bz2 links.desktop)
-sha1sums=('1e362a7e27078d630edf5868145a46247cda8cc3'
+sha1sums=('a808d80d910b7d3ad86f4c5089e64f35113b69f2'
'f600e27c2a71184444f7dd07a10230aa44463a02')
prepare() {
cd ${pkgname}-${pkgver}
sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" configure
- optipng graphics/font/century_school-medium-roman-serif-vari/045e.png
}
build() {
diff --git a/core/m4/PKGBUILD b/core/m4/PKGBUILD
index 9e04d8a46..bd0d599a2 100644
--- a/core/m4/PKGBUILD
+++ b/core/m4/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 183048 2013-04-17 02:02:03Z allan $
+# $Id: PKGBUILD 195164 2013-09-26 03:20:59Z allan $
# Maintainer: Allan McRae <allan@archlinux.org>
# Contributor: Andreas Radke <andyrtr@archlinux.org>
pkgname=m4
-pkgver=1.4.16
-pkgrel=3
+pkgver=1.4.17
+pkgrel=1
pkgdesc="The GNU macro processor"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.gnu.org/software/m4"
@@ -12,21 +12,9 @@ license=('GPL3')
groups=('base-devel')
depends=('glibc' 'bash')
install=m4.install
-source=(ftp://ftp.gnu.org/gnu/m4/$pkgname-$pkgver.tar.xz{,.sig}
- m4-1.4.16-readlink-einval.patch)
-md5sums=('7548ec061a1ba993790159764f522d0e'
- 'SKIP'
- 'cea138fa9b568d06e46269611cec8dd0')
-
-prepare() {
- cd ${srcdir}/$pkgname-$pkgver
-
- # glibc-2.16 compatibility
- sed -i -e '/gets is a/d' lib/stdio.in.h
-
- # patch testsuite failure with newer kernels
- patch -Np1 -i $srcdir/m4-1.4.16-readlink-einval.patch
-}
+source=(ftp://ftp.gnu.org/gnu/m4/$pkgname-$pkgver.tar.xz{,.sig})
+md5sums=('12a3c829301a4fd6586a57d3fcf196dc'
+ 'SKIP')
build() {
cd ${srcdir}/$pkgname-$pkgver
diff --git a/core/mdadm/PKGBUILD b/core/mdadm/PKGBUILD
index 8c8d6aa83..b30feff04 100644
--- a/core/mdadm/PKGBUILD
+++ b/core/mdadm/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 186140 2013-05-21 09:11:15Z tpowa $
+# $Id: PKGBUILD 194030 2013-09-10 10:15:14Z tpowa $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: Judd Vinet <jvinet@zeroflux.org>
pkgname=mdadm
-pkgver=3.2.6
-pkgrel=4
+pkgver=3.3
+pkgrel=1
pkgdesc="A tool for managing/monitoring Linux md device arrays, also known as Software RAID"
arch=(i686 x86_64 'mips64el')
license=('GPL')
@@ -18,22 +18,19 @@ source=(ftp://ftp.kernel.org/pub/linux/utils/raid/mdadm/mdadm-$pkgver.tar.bz2
mdadm_hook
mdadm_udev_install
mdadm.service
- disable-werror.patch
- mdadm-fix-udev-rules.patch)
+ disable-werror.patch)
replaces=('raidtools')
-md5sums=('3e255dc71e5144bbcb872788ca647267'
+md5sums=('8ac04259cdd74b4566c3b6dea9414b57'
'5a37c112aa07dccdde62f9fa5b888607'
'af2f73f0094ebee66f503ca4710c7142'
'fbfb7d07efcbaf5dc61af424c5f6e352'
'b6b0bfd6487c99264578630616dfe5eb'
'eb1786b18fa4d13cfd7b71d6b05cfb4f'
- '4ad87b74a4bc9a34621280abe0e0c3e4'
- '6c76f2f261c1c3397c7290633f0a9acc')
+ '599745ed2bec4489e83991cff89c46ee')
prepare() {
cd $srcdir/$pkgname-$pkgver
patch -Np0 -i ../disable-werror.patch
- patch -p1 -i ../mdadm-fix-udev-rules.patch
}
build() {
diff --git a/core/mdadm/disable-werror.patch b/core/mdadm/disable-werror.patch
index 50a33f19d..a80a41456 100644
--- a/core/mdadm/disable-werror.patch
+++ b/core/mdadm/disable-werror.patch
@@ -3,9 +3,9 @@
@@ -42,7 +42,7 @@
CC = $(CROSS_COMPILE)gcc
- CXFLAGS = -ggdb
+ CXFLAGS ?= -ggdb
-CWFLAGS = -Wall -Werror -Wstrict-prototypes -Wextra -Wno-unused-parameter
+CWFLAGS = -Wall -Wstrict-prototypes -Wextra -Wno-unused-parameter
ifdef WARN_UNUSED
- CWFLAGS += -Wp,-D_FORTIFY_SOURCE=2 -O
+ CWFLAGS += -Wp,-D_FORTIFY_SOURCE=2 -O3
endif
diff --git a/core/openssh/PKGBUILD b/core/openssh/PKGBUILD
index c3d65deb3..7f64d3b89 100644
--- a/core/openssh/PKGBUILD
+++ b/core/openssh/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 186025 2013-05-20 14:49:38Z bisson $
+# $Id: PKGBUILD 194510 2013-09-17 03:04:46Z bisson $
# Maintainer: Gaetan Bisson <bisson@archlinux.org>
# Contributor: Aaron Griffin <aaron@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
pkgname=openssh
-pkgver=6.2p2
+pkgver=6.3p1
pkgrel=1
pkgdesc='Free version of the SSH connectivity tools'
url='http://www.openssh.org/portable.html'
@@ -20,10 +20,10 @@ source=("ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/${pkgname}-${pkgver}
'sshd.service'
'sshd.socket'
'sshd.pam')
-sha1sums=('c2b4909eba6f5ec6f9f75866c202db47f3b501ba'
+sha1sums=('70845ca79474258cab29dbefae13d93e41a83ccb'
'6df5be396f8c593bb511a249a1453294d18a01a6'
'6a0ff3305692cf83aca96e10f3bb51e1c26fccda'
- '2d87de52a6b2f764180f9f67cb9747392784b4a5'
+ 'ec49c6beba923e201505f5669cea48cad29014db'
'e12fa910b26a5634e5a6ac39ce1399a132cf6796'
'd93dca5ebda4610ff7647187f8928a3de28703f3')
@@ -66,7 +66,7 @@ package() {
make DESTDIR="${pkgdir}" install
- ln -sf ssh.1.gz "${pkgdir}"/usr/share/man/man1/slogin.1
+ ln -sf ssh.1.gz "${pkgdir}"/usr/share/man/man1/slogin.1.gz
install -Dm644 LICENCE "${pkgdir}/usr/share/licenses/${pkgname}/LICENCE"
install -Dm644 ../sshdgenkeys.service "${pkgdir}"/usr/lib/systemd/system/sshdgenkeys.service
diff --git a/core/openssh/sshd.service b/core/openssh/sshd.service
index 349bde59d..55ed95322 100644
--- a/core/openssh/sshd.service
+++ b/core/openssh/sshd.service
@@ -2,6 +2,7 @@
Description=OpenSSH Daemon
Wants=sshdgenkeys.service
After=sshdgenkeys.service
+After=network.target
[Service]
ExecStart=/usr/bin/sshd -D
diff --git a/core/popt/PKGBUILD b/core/popt/PKGBUILD
index 1f65bae8d..99df35922 100644
--- a/core/popt/PKGBUILD
+++ b/core/popt/PKGBUILD
@@ -1,13 +1,9 @@
-# $Id: PKGBUILD 186305 2013-05-24 13:04:43Z stephane $
-# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
-# Contributor: Andrea Scarpino <andrea@archlinux.org>
-# Contributor: dorphell <dorphell@archlinux.org>
-# Contributor: Judd Vinet <jvinet@zeroflux.org>
-# Contributor: John Proctor <jproctor@prium.net>
+# $Id: PKGBUILD 195971 2013-10-06 19:11:33Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
pkgname=popt
pkgver=1.16
-pkgrel=6
+pkgrel=7
pkgdesc="A commandline option parser"
arch=('i686' 'x86_64' 'mips64el')
url="http://rpm5.org"
@@ -19,7 +15,6 @@ sha1sums=('cfe94a15a2404db85858a81ff8de27c8ff3e235e')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
-
./configure --prefix=/usr --disable-static
make
}
@@ -27,6 +22,5 @@ build() {
package() {
cd "${srcdir}/${pkgname}-${pkgver}"
make DESTDIR="${pkgdir}" install
-
install -Dm644 COPYING "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
}
diff --git a/core/procps-ng/PKGBUILD b/core/procps-ng/PKGBUILD
index 3cd906d29..9a0322d1a 100644
--- a/core/procps-ng/PKGBUILD
+++ b/core/procps-ng/PKGBUILD
@@ -1,36 +1,29 @@
-# $Id: PKGBUILD 188912 2013-06-25 10:40:52Z bisson $
+# $Id: PKGBUILD 194509 2013-09-17 03:04:40Z bisson $
# Maintainer: Gaetan Bisson <bisson@archlinux.org>
# Contributor: Eric Bélanger <eric@archlinux.org>
pkgname=procps-ng
pkgver=3.3.8
-pkgrel=2
+pkgrel=3
pkgdesc='Utilities for monitoring your system and its processes'
url='http://gitorious.org/procps'
license=('GPL' 'LGPL')
arch=('i686' 'x86_64' 'mips64el')
-groups=('base')
depends=('ncurses')
-backup=('etc/sysctl.conf')
-source=("${pkgname}-${pkgver}.tar.gz::http://gitorious.org/procps/procps/archive-tarball/v${pkgver}"
- 'sysctl.conf')
-sha1sums=('63aed46ba4b5b05698beb25d2aa3eee6779d7f45'
- 'bc4e929a0ddcdcd627e8d15d30abcf185aa33fab')
+source=("http://downloads.sourceforge.net/project/${pkgname}/Production/${pkgname}-${pkgver}.tar.xz")
+sha1sums=('4fa6a373f969989a9e490df5eb49a2df62eca19a')
+
+groups=('base')
conflicts=('procps')
provides=('procps')
replaces=('procps')
options=('!libtool')
-
-prepare() {
- cd "${srcdir}/procps-procps"
- echo ${pkgver} > .tarball-version
- ./autogen.sh
-}
+install=install
build() {
- cd "${srcdir}/procps-procps"
+ cd "${srcdir}/${pkgname}-${pkgver}"
./configure \
--prefix=/usr \
--exec-prefix=/ \
@@ -43,9 +36,8 @@ build() {
}
package() {
- cd "${srcdir}/procps-procps"
+ cd "${srcdir}/${pkgname}-${pkgver}"
make DESTDIR="${pkgdir}" install
- install -D -m644 ../sysctl.conf "${pkgdir}/etc/sysctl.conf"
# provided by util-linux
rm "${pkgdir}/usr/bin/kill"
diff --git a/core/procps-ng/install b/core/procps-ng/install
new file mode 100644
index 000000000..2e6546ecc
--- /dev/null
+++ b/core/procps-ng/install
@@ -0,0 +1,14 @@
+post_upgrade() {
+ if [[ $(vercmp $2 3.3.8-3) = -1 ]]; then
+ cat <<EOF
+
+==> The file /etc/sysctl.conf has been removed from this
+==> package, as all its settings are now kernel defaults.
+
+==> If you had customized it, you need to rename it as
+==> /etc/sysctl.d/99-sysctl.conf since from version 207 on
+==> systemd only applies settings from /etc/sysctl.d/* .
+
+EOF
+ fi
+}
diff --git a/core/procps-ng/sysctl.conf b/core/procps-ng/sysctl.conf
deleted file mode 100644
index fae2c6082..000000000
--- a/core/procps-ng/sysctl.conf
+++ /dev/null
@@ -1,38 +0,0 @@
-# Configuration file for runtime kernel parameters.
-# See sysctl.conf(5) for more information.
-
-# Have the CD-ROM close when you use it, and open when you are done.
-#dev.cdrom.autoclose = 1
-#dev.cdrom.autoeject = 1
-
-# Protection from the SYN flood attack.
-net.ipv4.tcp_syncookies = 1
-
-# See evil packets in your logs.
-#net.ipv4.conf.all.log_martians = 1
-
-# Never accept redirects or source routes (these are only useful for routers).
-#net.ipv4.conf.all.accept_redirects = 0
-#net.ipv4.conf.all.accept_source_route = 0
-#net.ipv6.conf.all.accept_redirects = 0
-#net.ipv6.conf.all.accept_source_route = 0
-
-# Disable packet forwarding.
-net.ipv4.ip_forward = 0
-net.ipv6.conf.all.forwarding = 0
-
-# Tweak the port range used for outgoing connections.
-#net.ipv4.ip_local_port_range = 32768 61000
-
-# Tweak those values to alter disk syncing and swap behavior.
-#vm.vfs_cache_pressure = 100
-#vm.laptop_mode = 0
-#vm.swappiness = 60
-
-# Tweak how the flow of kernel messages is throttled.
-#kernel.printk_ratelimit_burst = 10
-#kernel.printk_ratelimit = 5
-
-# Reboot 600 seconds after kernel panic or oops.
-#kernel.panic_on_oops = 1
-#kernel.panic = 600
diff --git a/core/s-nail/PKGBUILD b/core/s-nail/PKGBUILD
new file mode 100644
index 000000000..3a9653c82
--- /dev/null
+++ b/core/s-nail/PKGBUILD
@@ -0,0 +1,53 @@
+# $Id: PKGBUILD 195886 2013-10-03 16:52:03Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: Sergej Pupykin <pupykin.s@arch@gmail.com>
+# Contributor: Andreas Wagner <Andreas.Wagner@em.uni-frankfurt.de>
+
+pkgname=s-nail
+pkgver=14.4.3
+pkgrel=1
+pkgdesc='Mail processing system with a command syntax reminiscent of ed'
+url='http://sourceforge.net/projects/s-nail/'
+license=('custom:BSD')
+arch=('i686' 'x86_64')
+depends=('openssl')
+optdepends=('smtp-forwarder: for sending mail')
+source=("http://downloads.sourceforge.net/project/${pkgname}/${pkgname}-${pkgver//./_}.tar.gz")
+sha1sums=('39fdade9b622a6addc5e70a5d929b0bc5ef49d00')
+
+groups=('base')
+backup=('etc/mail.rc')
+replaces=('mailx' 'mailx-heirloom' 'heirloom-mailx')
+provides=('mailx' 'mailx-heirloom' 'heirloom-mailx')
+conflicts=('mailx' 'mailx-heirloom' 'heirloom-mailx')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make \
+ PREFIX=/usr \
+ SYSCONFDIR=/etc \
+ MANDIR=/usr/share/man \
+ MAILSPOOL=/var/spool/mail \
+ SID= NAIL=mail \
+ CFLAGS="$CFLAGS $CPPFLAGS" \
+ DESTDIR="${pkgdir}" \
+ all
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make \
+ PREFIX=/usr \
+ SYSCONFDIR=/etc \
+ MANDIR=/usr/share/man \
+ MAILSPOOL=/var/spool/mail \
+ SID= NAIL=mail \
+ CFLAGS="$CFLAGS $CPPFLAGS" \
+ DESTDIR="${pkgdir}" \
+ install
+
+ ln -sf mail "${pkgdir}"/usr/bin/mailx
+ ln -sf mail.1.gz "${pkgdir}"/usr/share/man/man1/mailx.1.gz
+ install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+}
diff --git a/core/sudo/PKGBUILD b/core/sudo/PKGBUILD
index 6e4193324..4d5450f9d 100644
--- a/core/sudo/PKGBUILD
+++ b/core/sudo/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 188591 2013-06-16 17:14:27Z foutrelis $
+# $Id: PKGBUILD 195898 2013-10-04 13:41:05Z foutrelis $
# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
pkgname=sudo
-_sudover=1.8.7
+_sudover=1.8.8
pkgver=${_sudover/p/.p}
pkgrel=1
pkgdesc="Give certain users the ability to run some commands as root"
@@ -17,7 +17,7 @@ backup=('etc/sudoers' 'etc/pam.d/sudo')
options=('!libtool')
source=(http://www.sudo.ws/sudo/dist/$pkgname-$_sudover.tar.gz{,.sig}
sudo.pam)
-sha256sums=('39626cf3d48c4fd5a9139a2627d42bfefac7ce47f470bdba3aeb4e3d7c49566a'
+sha256sums=('9f911c1e9297fb8006deb52fa81197a8d06b9d54e70672f723c467ecae992fc9'
'SKIP'
'e7de79d2c73f2b32b20a8e797e54777a2bf19788ec03e48decd6c15cd93718ae')
diff --git a/core/systemd/0001-fix-lingering-references-to-var-lib-backlight-random.patch b/core/systemd/0001-fix-lingering-references-to-var-lib-backlight-random.patch
new file mode 100644
index 000000000..49b960c81
--- /dev/null
+++ b/core/systemd/0001-fix-lingering-references-to-var-lib-backlight-random.patch
@@ -0,0 +1,54 @@
+From 6c8c92fef72cf6a7ef7109a424ef82dbdc4f6952 Mon Sep 17 00:00:00 2001
+From: Dave Reisner <dreisner@archlinux.org>
+Date: Wed, 2 Oct 2013 07:46:24 -0400
+Subject: [PATCH] fix lingering references to /var/lib/{backlight,random-seed}
+
+This should have been part of ef5bfcf668e6029faa78534dfe.
+---
+ man/systemd-backlight@.service.xml | 2 +-
+ man/systemd-random-seed.service.xml | 2 +-
+ units/systemd-backlight@.service.in | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/man/systemd-backlight@.service.xml b/man/systemd-backlight@.service.xml
+index 2b73625..4318964 100644
+--- a/man/systemd-backlight@.service.xml
++++ b/man/systemd-backlight@.service.xml
+@@ -58,7 +58,7 @@
+ is a service that restores the display backlight
+ brightness at early-boot and saves it at shutdown. On
+ disk, the backlight brightness is stored in
+- <filename>/var/lib/backlight/</filename>. Note that by
++ <filename>/var/lib/systemd/backlight/</filename>. Note that by
+ default, only firmware backlight devices are
+ saved/restored.</para>
+ </refsect1>
+diff --git a/man/systemd-random-seed.service.xml b/man/systemd-random-seed.service.xml
+index 8cd14b7..e5cd037 100644
+--- a/man/systemd-random-seed.service.xml
++++ b/man/systemd-random-seed.service.xml
+@@ -61,7 +61,7 @@
+ for details. Saving/restoring the random seed across
+ boots increases the amount of available entropy early
+ at boot. On disk the random seed is stored in
+- <filename>/var/lib/random-seed</filename>.</para>
++ <filename>/var/lib/systemd/random-seed</filename>.</para>
+ </refsect1>
+
+ <refsect1>
+diff --git a/units/systemd-backlight@.service.in b/units/systemd-backlight@.service.in
+index b0e75db..5caa5d5 100644
+--- a/units/systemd-backlight@.service.in
++++ b/units/systemd-backlight@.service.in
+@@ -9,7 +9,7 @@
+ Description=Load/Save Screen Backlight Brightness of %I
+ Documentation=man:systemd-backlight@.service(8)
+ DefaultDependencies=no
+-RequiresMountsFor=/var/lib/backlight
++RequiresMountsFor=/var/lib/systemd/backlight
+ Conflicts=shutdown.target
+ After=systemd-readahead-collect.service systemd-readahead-replay.service systemd-remount-fs.service
+ Before=sysinit.target shutdown.target
+--
+1.8.4
+
diff --git a/core/systemd/0001-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch b/core/systemd/0001-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch
deleted file mode 100644
index 372ecebff..000000000
--- a/core/systemd/0001-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From 23ad4dd8844c582929115a11ed2830a1371568d6 Mon Sep 17 00:00:00 2001
-From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
-Date: Tue, 28 May 2013 20:45:34 +0200
-Subject: [PATCH] journald: DO recalculate the ACL mask, but only if it doesn't
- exist
-
-Since 11ec7ce, journald isn't setting the ACLs properly anymore if
-the files had no ACLs to begin with: acl_set_fd fails with EINVAL.
-
-An ACL with ACL_USER or ACL_GROUP entries but no ACL_MASK entry is
-invalid, so make sure a mask exists before trying to set the ACL.
----
- src/journal/journald-server.c | 6 ++++--
- src/shared/acl-util.c | 28 ++++++++++++++++++++++++++++
- src/shared/acl-util.h | 1 +
- 3 files changed, 33 insertions(+), 2 deletions(-)
-
-diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c
-index b717b92..da5b725 100644
---- a/src/journal/journald-server.c
-+++ b/src/journal/journald-server.c
-@@ -227,9 +227,11 @@ void server_fix_perms(Server *s, JournalFile *f, uid_t uid) {
- }
- }
-
-- /* We do not recalculate the mask here, so that the fchmod() mask above stays intact. */
-+ /* We do not recalculate the mask unconditionally here,
-+ * so that the fchmod() mask above stays intact. */
- if (acl_get_permset(entry, &permset) < 0 ||
-- acl_add_perm(permset, ACL_READ) < 0) {
-+ acl_add_perm(permset, ACL_READ) < 0 ||
-+ calc_acl_mask_if_needed(&acl) < 0) {
- log_warning("Failed to patch ACL on %s, ignoring: %m", f->path);
- goto finish;
- }
-diff --git a/src/shared/acl-util.c b/src/shared/acl-util.c
-index 48bb12f..fb04e49 100644
---- a/src/shared/acl-util.c
-+++ b/src/shared/acl-util.c
-@@ -69,6 +69,34 @@ int acl_find_uid(acl_t acl, uid_t uid, acl_entry_t *entry) {
- return 0;
- }
-
-+int calc_acl_mask_if_needed(acl_t *acl_p) {
-+ acl_entry_t i;
-+ int found;
-+
-+ assert(acl_p);
-+
-+ for (found = acl_get_entry(*acl_p, ACL_FIRST_ENTRY, &i);
-+ found > 0;
-+ found = acl_get_entry(*acl_p, ACL_NEXT_ENTRY, &i)) {
-+
-+ acl_tag_t tag;
-+
-+ if (acl_get_tag_type(i, &tag) < 0)
-+ return -errno;
-+
-+ if (tag == ACL_MASK)
-+ return 0;
-+ }
-+
-+ if (found < 0)
-+ return -errno;
-+
-+ if (acl_calc_mask(acl_p) < 0)
-+ return -errno;
-+
-+ return 0;
-+}
-+
- int search_acl_groups(char*** dst, const char* path, bool* belong) {
- acl_t acl;
-
-diff --git a/src/shared/acl-util.h b/src/shared/acl-util.h
-index 23090d9..36ef490 100644
---- a/src/shared/acl-util.h
-+++ b/src/shared/acl-util.h
-@@ -24,4 +24,5 @@
- #include <stdbool.h>
-
- int acl_find_uid(acl_t acl, uid_t uid, acl_entry_t *entry);
-+int calc_acl_mask_if_needed(acl_t *acl_p);
- int search_acl_groups(char*** dst, const char* path, bool* belong);
---
-1.8.3
-
diff --git a/core/systemd/0001-utmp-turn-systemd-update-utmp-shutdown.service-into-.patch b/core/systemd/0001-utmp-turn-systemd-update-utmp-shutdown.service-into-.patch
deleted file mode 100644
index 84cce7121..000000000
--- a/core/systemd/0001-utmp-turn-systemd-update-utmp-shutdown.service-into-.patch
+++ /dev/null
@@ -1,255 +0,0 @@
-From 3f92e4b4b61042391bd44de4dceb18177df0dd57 Mon Sep 17 00:00:00 2001
-From: Lennart Poettering <lennart@poettering.net>
-Date: Thu, 16 May 2013 00:19:03 +0200
-Subject: [PATCH] utmp: turn systemd-update-utmp-shutdown.service into a normal
- runtime service
-
-With this change systemd-update-utmp-shutdown.service is replaced by
-systemd-update-utmp.service which is started at boot and stays around
-until shutdown. This allows us to properly order the unit against both
-/var/log and auditd.
-
-https://bugzilla.redhat.com/show_bug.cgi?id=853104
-https://bugs.freedesktop.org/show_bug.cgi?id=64365
----
- Makefile-man.am | 12 ++++++------
- Makefile.am | 8 ++++----
- ....service.xml => systemd-update-utmp.service.xml} | 16 ++++++++--------
- src/update-utmp/update-utmp.c | 2 +-
- units/.gitignore | 2 +-
- units/systemd-update-utmp-runlevel.service.in | 8 +++++---
- units/systemd-update-utmp-shutdown.service.in | 19 -------------------
- units/systemd-update-utmp.service.in | 21 +++++++++++++++++++++
- 8 files changed, 46 insertions(+), 42 deletions(-)
- rename man/{systemd-update-utmp-runlevel.service.xml => systemd-update-utmp.service.xml} (82%)
- delete mode 100644 units/systemd-update-utmp-shutdown.service.in
- create mode 100644 units/systemd-update-utmp.service.in
-
-diff --git a/Makefile-man.am b/Makefile-man.am
-index 7d62094..5888158 100644
---- a/Makefile-man.am
-+++ b/Makefile-man.am
-@@ -72,7 +72,7 @@ MANPAGES += \
- man/systemd-tmpfiles.8 \
- man/systemd-tty-ask-password-agent.1 \
- man/systemd-udevd.service.8 \
-- man/systemd-update-utmp-runlevel.service.8 \
-+ man/systemd-update-utmp.service.8 \
- man/systemd.1 \
- man/systemd.automount.5 \
- man/systemd.device.5 \
-@@ -191,7 +191,7 @@ MANPAGES_ALIAS += \
- man/systemd-udevd-control.socket.8 \
- man/systemd-udevd-kernel.socket.8 \
- man/systemd-udevd.8 \
-- man/systemd-update-utmp-shutdown.service.8 \
-+ man/systemd-update-utmp-runlevel.service.8 \
- man/systemd-update-utmp.8 \
- man/systemd-user.conf.5
- man/SD_ALERT.3: man/sd-daemon.3
-@@ -289,8 +289,8 @@ man/systemd-tmpfiles-setup.service.8: man/systemd-tmpfiles.8
- man/systemd-udevd-control.socket.8: man/systemd-udevd.service.8
- man/systemd-udevd-kernel.socket.8: man/systemd-udevd.service.8
- man/systemd-udevd.8: man/systemd-udevd.service.8
--man/systemd-update-utmp-shutdown.service.8: man/systemd-update-utmp-runlevel.service.8
--man/systemd-update-utmp.8: man/systemd-update-utmp-runlevel.service.8
-+man/systemd-update-utmp-runlevel.service.8: man/systemd-update-utmp.service.8
-+man/systemd-update-utmp.8: man/systemd-update-utmp.service.8
- man/systemd-user.conf.5: man/systemd-system.conf.5
- man/SD_ALERT.html: man/sd-daemon.html
- $(html-alias)
-@@ -577,10 +577,10 @@ man/systemd-udevd-kernel.socket.html: man/systemd-udevd.service.html
- man/systemd-udevd.html: man/systemd-udevd.service.html
- $(html-alias)
-
--man/systemd-update-utmp-shutdown.service.html: man/systemd-update-utmp-runlevel.service.html
-+man/systemd-update-utmp-runlevel.service.html: man/systemd-update-utmp.service.html
- $(html-alias)
-
--man/systemd-update-utmp.html: man/systemd-update-utmp-runlevel.service.html
-+man/systemd-update-utmp.html: man/systemd-update-utmp.service.html
- $(html-alias)
-
- man/systemd-user.conf.html: man/systemd-system.conf.html
-diff --git a/Makefile.am b/Makefile.am
-index 8d8139c..4c5e6fc 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -417,8 +417,8 @@ nodist_systemunit_DATA = \
- units/systemd-initctl.service \
- units/systemd-shutdownd.service \
- units/systemd-remount-fs.service \
-+ units/systemd-update-utmp.service \
- units/systemd-update-utmp-runlevel.service \
-- units/systemd-update-utmp-shutdown.service \
- units/systemd-tmpfiles-setup-dev.service \
- units/systemd-tmpfiles-setup.service \
- units/systemd-tmpfiles-clean.service \
-@@ -463,8 +463,8 @@ EXTRA_DIST += \
- units/systemd-initctl.service.in \
- units/systemd-shutdownd.service.in \
- units/systemd-remount-fs.service.in \
-+ units/systemd-update-utmp.service.in \
- units/systemd-update-utmp-runlevel.service.in \
-- units/systemd-update-utmp-shutdown.service.in \
- units/systemd-tmpfiles-setup-dev.service.in \
- units/systemd-tmpfiles-setup.service.in \
- units/systemd-tmpfiles-clean.service.in \
-@@ -4070,8 +4070,8 @@ RUNLEVEL4_TARGET_WANTS += \
- RUNLEVEL5_TARGET_WANTS += \
- systemd-update-utmp-runlevel.service
- endif
--SHUTDOWN_TARGET_WANTS += \
-- systemd-update-utmp-shutdown.service
-+SYSINIT_TARGET_WANTS += \
-+ systemd-update-utmp.service
- LOCAL_FS_TARGET_WANTS += \
- systemd-remount-fs.service \
- systemd-fsck-root.service \
-diff --git a/man/systemd-update-utmp-runlevel.service.xml b/man/systemd-update-utmp.service.xml
-similarity index 82%
-rename from man/systemd-update-utmp-runlevel.service.xml
-rename to man/systemd-update-utmp.service.xml
-index 867b958..846fc95 100644
---- a/man/systemd-update-utmp-runlevel.service.xml
-+++ b/man/systemd-update-utmp.service.xml
-@@ -19,10 +19,10 @@
- You should have received a copy of the GNU Lesser General Public License
- along with systemd; If not, see <http://www.gnu.org/licenses/>.
- -->
--<refentry id="systemd-update-utmp-runlevel.service">
-+<refentry id="systemd-update-utmp.service">
-
- <refentryinfo>
-- <title>systemd-update-utmp-runlevel.service</title>
-+ <title>systemd-update-utmp.service</title>
- <productname>systemd</productname>
-
- <authorgroup>
-@@ -36,21 +36,21 @@
- </refentryinfo>
-
- <refmeta>
-- <refentrytitle>systemd-update-utmp-runlevel.service</refentrytitle>
-+ <refentrytitle>systemd-update-utmp.service</refentrytitle>
- <manvolnum>8</manvolnum>
- </refmeta>
-
- <refnamediv>
-+ <refname>systemd-update-utmp.service</refname>
- <refname>systemd-update-utmp-runlevel.service</refname>
-- <refname>systemd-update-utmp-shutdown.service</refname>
- <refname>systemd-update-utmp</refname>
-- <refpurpose>Write audit and utmp updates at runlevel
-+ <refpurpose>Write audit and utmp updates at bootup, runlevel
- changes and shutdown</refpurpose>
- </refnamediv>
-
- <refsynopsisdiv>
-+ <para><filename>systemd-update-utmp.service</filename></para>
- <para><filename>systemd-update-utmp-runlevel.service</filename></para>
-- <para><filename>systemd-update-utmp-shutdown.service</filename></para>
- <para><filename>/usr/lib/systemd/systemd-update-utmp</filename></para>
- </refsynopsisdiv>
-
-@@ -60,8 +60,8 @@
- <para><filename>systemd-update-utmp-runlevel.service</filename>
- is a service that writes SysV runlevel changes to utmp
- and wtmp, as well as the audit logs, as they
-- occur. <filename>systemd-update-utmp-shutdown.service</filename>
-- does the same for shut-down requests.</para>
-+ occur. <filename>systemd-update-utmp.service</filename>
-+ does the same for system reboots and shut-down requests.</para>
- </refsect1>
-
- <refsect1>
-diff --git a/src/update-utmp/update-utmp.c b/src/update-utmp/update-utmp.c
-index 9184025..202aa98 100644
---- a/src/update-utmp/update-utmp.c
-+++ b/src/update-utmp/update-utmp.c
-@@ -104,7 +104,7 @@ static int get_current_runlevel(Context *c) {
- { '3', SPECIAL_RUNLEVEL3_TARGET },
- { '4', SPECIAL_RUNLEVEL4_TARGET },
- { '2', SPECIAL_RUNLEVEL2_TARGET },
-- { 'S', SPECIAL_RESCUE_TARGET },
-+ { '1', SPECIAL_RESCUE_TARGET },
- };
- const char
- *interface = "org.freedesktop.systemd1.Unit",
-diff --git a/units/systemd-update-utmp-runlevel.service.in b/units/systemd-update-utmp-runlevel.service.in
-index 27fae2c..99783e2 100644
---- a/units/systemd-update-utmp-runlevel.service.in
-+++ b/units/systemd-update-utmp-runlevel.service.in
-@@ -7,12 +7,14 @@
-
- [Unit]
- Description=Update UTMP about System Runlevel Changes
--Documentation=man:systemd-update-utmp-runlevel.service(8) man:utmp(5)
-+Documentation=man:systemd-update-utmp.service(8) man:utmp(5)
- DefaultDependencies=no
- RequiresMountsFor=/var/log/wtmp
--After=systemd-remount-fs.service systemd-tmpfiles-setup.service auditd.service
-+Conflicts=shutdown.target
-+Requisite=systemd-update-utmp.service
-+After=systemd-update-utmp.service
- After=runlevel1.target runlevel2.target runlevel3.target runlevel4.target runlevel5.target
--Before=final.target
-+Before=shutdown.target
-
- [Service]
- Type=oneshot
-diff --git a/units/systemd-update-utmp-shutdown.service.in b/units/systemd-update-utmp-shutdown.service.in
-deleted file mode 100644
-index aa93562..0000000
---- a/units/systemd-update-utmp-shutdown.service.in
-+++ /dev/null
-@@ -1,19 +0,0 @@
--# This file is part of systemd.
--#
--# systemd is free software; you can redistribute it and/or modify it
--# under the terms of the GNU Lesser General Public License as published by
--# the Free Software Foundation; either version 2.1 of the License, or
--# (at your option) any later version.
--
--[Unit]
--Description=Update UTMP about System Shutdown
--Documentation=man:systemd-update-utmp-runlevel.service(8) man:utmp(5)
--DefaultDependencies=no
--RequiresMountsFor=/var/log/wtmp
--After=systemd-remount-fs.service systemd-tmpfiles-setup.service auditd.service
--After=systemd-update-utmp-runlevel.service
--Before=final.target
--
--[Service]
--Type=oneshot
--ExecStart=@rootlibexecdir@/systemd-update-utmp shutdown
-diff --git a/units/systemd-update-utmp.service.in b/units/systemd-update-utmp.service.in
-new file mode 100644
-index 0000000..e7c20a5
---- /dev/null
-+++ b/units/systemd-update-utmp.service.in
-@@ -0,0 +1,21 @@
-+# This file is part of systemd.
-+#
-+# systemd is free software; you can redistribute it and/or modify it
-+# under the terms of the GNU Lesser General Public License as published by
-+# the Free Software Foundation; either version 2.1 of the License, or
-+# (at your option) any later version.
-+
-+[Unit]
-+Description=Update UTMP about System Reboot/Shutdown
-+Documentation=man:systemd-update-utmp.service(8) man:utmp(5)
-+DefaultDependencies=no
-+RequiresMountsFor=/var/log/wtmp
-+Conflicts=shutdown.target
-+After=systemd-readahead-collect.service systemd-readahead-replay.service systemd-remount-fs.service systemd-tmpfiles-setup.service auditd.service
-+Before=sysinit.target shutdown.target
-+
-+[Service]
-+Type=oneshot
-+RemainAfterExit=yes
-+ExecStart=@rootlibexecdir@/systemd-update-utmp reboot
-+ExecStop=@rootlibexecdir@/systemd-update-utmp shutdown
---
-1.8.2.3
-
diff --git a/core/systemd/PKGBUILD b/core/systemd/PKGBUILD
index ad695a979..e25d29d5f 100644
--- a/core/systemd/PKGBUILD
+++ b/core/systemd/PKGBUILD
@@ -3,36 +3,28 @@
pkgbase=systemd
pkgname=('systemd' 'systemd-sysvcompat')
-pkgver=204
-pkgrel=3
+pkgver=208
+pkgrel=1
arch=('i686' 'x86_64' 'mips64el')
url="http://www.freedesktop.org/wiki/Software/systemd"
-license=('GPL2' 'LGPL2.1' 'MIT')
makedepends=('acl' 'cryptsetup' 'dbus-core' 'docbook-xsl' 'gobject-introspection' 'gperf'
'gtk-doc' 'intltool' 'kmod' 'libcap' 'libgcrypt' 'libmicrohttpd' 'libxslt'
'linux-api-headers' 'pam' 'python' 'quota-tools' 'xz')
-options=('!libtool' '!distcc')
+options=('!libtool' 'strip' 'debug' '!distcc')
source=("http://www.freedesktop.org/software/$pkgname/$pkgname-$pkgver.tar.xz"
- 0001-utmp-turn-systemd-update-utmp-shutdown.service-into-.patch
- 0001-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch
'initcpio-hook-udev'
+ 'initcpio-install-systemd'
'initcpio-install-udev'
- 'initcpio-install-timestamp')
-md5sums=('a07619bb19f48164fbf0761d12fd39a8'
- '7f39f9fde1ff7b48293ed1e3d0a6c213'
- '66e3162856ded8eb7dc7383405c6e0d6'
- 'e99e9189aa2f6084ac28b8ddf605aeb8'
- 'fb37e34ea006c79be1c54cbb0f803414'
- 'df69615503ad293c9ddf9d8b7755282d')
+ '0001-fix-lingering-references-to-var-lib-backlight-random.patch')
+md5sums=('df64550d92afbffb4f67a434193ee165'
+ '29245f7a240bfba66e2b1783b63b6b40'
+ '8b68b0218a3897d4d37a6ccf47914774'
+ 'bde43090d4ac0ef048e3eaee8202a407'
+ '1b191c4e7a209d322675fd199e3abc66')
prepare() {
cd "$pkgname-$pkgver"
-
- patch -Np1 <"$srcdir/0001-utmp-turn-systemd-update-utmp-shutdown.service-into-.patch"
-
- patch -Np1 <"$srcdir/0001-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch"
-
- autoreconf
+ patch -Np1 -i ../0001-fix-lingering-references-to-var-lib-backlight-random.patch
}
build() {
@@ -41,7 +33,6 @@ build() {
[ "$CARCH" = "mips64el" ] && CFLAGS+=" -mno-plt"
./configure \
- --enable-static \
--libexecdir=/usr/lib \
--localstatedir=/var \
--sysconfdir=/etc \
@@ -63,6 +54,7 @@ check() {
package_systemd() {
pkgdesc="system and service manager"
+ license=('GPL2' 'LGPL2.1' 'MIT')
depends=('acl' 'bash' 'dbus-core' 'glib2' 'kbd' 'kmod' 'hwids' 'libcap' 'libgcrypt'
'pam' 'util-linux' 'xz')
provides=("libsystemd=$pkgver" 'nss-myhostname' "systemd-tools=$pkgver" "udev=$pkgver"
@@ -79,11 +71,13 @@ package_systemd() {
etc/dbus-1/system.d/org.freedesktop.hostname1.conf
etc/dbus-1/system.d/org.freedesktop.login1.conf
etc/dbus-1/system.d/org.freedesktop.locale1.conf
+ etc/dbus-1/system.d/org.freedesktop.machine1.conf
etc/dbus-1/system.d/org.freedesktop.timedate1.conf
+ etc/systemd/bootchart.conf
+ etc/systemd/journald.conf
+ etc/systemd/logind.conf
etc/systemd/system.conf
etc/systemd/user.conf
- etc/systemd/logind.conf
- etc/systemd/journald.conf
etc/udev/udev.conf)
install="systemd.install"
@@ -101,7 +95,7 @@ package_systemd() {
rmdir "$pkgdir/etc/systemd/system/getty.target.wants"
# get rid of RPM macros
- rm -r "$pkgdir/etc/rpm"
+ rm -r "$pkgdir/usr/lib/rpm"
# add back tmpfiles.d/legacy.conf
install -m644 "systemd-$pkgver/tmpfiles.d/legacy.conf" "$pkgdir/usr/lib/tmpfiles.d"
@@ -112,19 +106,28 @@ package_systemd() {
s#GROUP="cdrom"#GROUP="optical"#g' "$pkgdir"/usr/lib/udev/rules.d/*.rules
# add mkinitcpio hooks
+ install -Dm644 "$srcdir/initcpio-install-systemd" "$pkgdir/usr/lib/initcpio/install/systemd"
install -Dm644 "$srcdir/initcpio-install-udev" "$pkgdir/usr/lib/initcpio/install/udev"
install -Dm644 "$srcdir/initcpio-hook-udev" "$pkgdir/usr/lib/initcpio/hooks/udev"
- install -Dm644 "$srcdir/initcpio-install-timestamp" "$pkgdir/usr/lib/initcpio/install/timestamp"
+
+ # ensure proper permissions for /var/log/journal
+ chown root:systemd-journal "$pkgdir/var/log/journal"
+ chmod 2755 "$pkgdir/var/log/journal"
### split out manpages for sysvcompat
rm -rf "$srcdir/_sysvcompat"
install -dm755 "$srcdir"/_sysvcompat/usr/share/man/man8/
mv "$pkgdir"/usr/share/man/man8/{telinit,halt,reboot,poweroff,runlevel,shutdown}.8 \
"$srcdir"/_sysvcompat/usr/share/man/man8
+
+ # include MIT license, since it's technically custom
+ install -Dm755 "$srcdir/$pkgname-$pkgver/LICENSE.MIT" \
+ "$pkgdir/usr/share/licenses/systemd/LICENSE.MIT"
}
package_systemd-sysvcompat() {
pkgdesc="sysvinit compat for systemd"
+ license=('GPL2')
groups=('base')
conflicts=('sysvinit')
depends=('sysvinit-tools' 'systemd')
diff --git a/core/systemd/initcpio-hook-udev b/core/systemd/initcpio-hook-udev
index 75da7e4a8..0bc32e008 100644
--- a/core/systemd/initcpio-hook-udev
+++ b/core/systemd/initcpio-hook-udev
@@ -1,7 +1,9 @@
#!/usr/bin/ash
run_earlyhook() {
- udevd --daemon --resolve-names=never
+ kmod static-nodes --format=tmpfiles --output=/run/tmpfiles.d/kmod.conf
+ systemd-tmpfiles --prefix=/dev --create
+ /usr/lib/systemd/systemd-udevd --daemon --resolve-names=never
udevd_running=1
}
diff --git a/core/systemd/initcpio-install-systemd b/core/systemd/initcpio-install-systemd
new file mode 100644
index 000000000..2c59074a7
--- /dev/null
+++ b/core/systemd/initcpio-install-systemd
@@ -0,0 +1,159 @@
+#!/bin/bash
+
+strip_quotes() {
+ local len=${#1} quotes=$'[\'"]' str=${!1}
+
+ if [[ ${str:0:1} = ${str: -1} && ${str:0:1} = $quotes ]]; then
+ declare -g "$1=${str:1:-1}"
+ fi
+}
+
+add_udev_rule() {
+ # Add an udev rules file to the initcpio image. Dependencies on binaries
+ # will be discovered and added.
+ # $1: path to rules file (or name of rules file)
+
+ local rules= rule= key= value= binary=
+
+ rules=$(PATH=/usr/lib/udev/rules.d:/lib/udev/rules.d type -P "$1")
+ if [[ -z $rules ]]; then
+ # complain about not found rules
+ return 1
+ fi
+
+ add_file "$rules"
+
+ while IFS=, read -ra rule; do
+ # skip empty lines, comments
+ [[ -z $rule || $rule = @(+([[:space:]])|#*) ]] && continue
+
+ for pair in "${rule[@]}"; do
+ IFS=' =' read -r key value <<< "$pair"
+ case $key in
+ RUN@({program}|+)|IMPORT{program}|ENV{REMOVE_CMD})
+ strip_quotes 'value'
+ # just take the first word as the binary name
+ binary=${value%% *}
+ if [[ ${binary:0:1} != '/' ]]; then
+ binary=$(PATH=/usr/lib/udev:/lib/udev type -P "$binary")
+ fi
+ add_binary "$binary"
+ ;;
+ esac
+ done
+ done <"$rules"
+}
+
+add_systemd_unit() {
+ # Add a systemd unit file to the initcpio image. Hard dependencies on binaries
+ # and other unit files will be discovered and added.
+ # $1: path to rules file (or name of rules file)
+
+ local unit= rule= entry= key= value= binary= dep=
+
+ unit=$(PATH=/usr/lib/systemd/system:/lib/systemd/system type -P "$1")
+ if [[ -z $unit ]]; then
+ # complain about not found unit file
+ return 1
+ fi
+
+ add_file "$unit"
+
+ while IFS='=' read -r key values; do
+ read -ra values <<< "$values"
+
+ case $key in
+ Requires|OnFailure)
+ # only add hard dependencies (not Wants)
+ map add_systemd_unit "${values[@]}"
+ ;;
+ Exec*)
+ # don't add binaries unless they are required
+ if [[ ${values[0]:0:1} != '-' ]]; then
+ add_binary "${values[0]}"
+ fi
+ ;;
+ esac
+
+ done <"$unit"
+
+ # preserve reverse soft dependency
+ for dep in {/usr,}/lib/systemd/system/*.wants/${unit##*/}; do
+ if [[ -L $dep ]]; then
+ add_symlink "$dep"
+ fi
+ done
+
+ # add hard dependencies
+ if [[ -d $unit.requires ]]; then
+ for dep in "$unit".requires/*; do
+ add_systemd_unit ${dep##*/}
+ done
+ fi
+}
+
+build() {
+ local rules unit
+
+ # from base
+ add_binary /bin/mount
+ add_binary /usr/bin/kmod /usr/bin/modprobe
+
+ # systemd
+ add_binary /usr/lib/systemd/systemd /init
+ add_binary /usr/bin/systemd-tmpfiles
+
+ # generate sysroot.mount and sysroot-usr.mount
+ add_file "/usr/lib/systemd/system-generators/systemd-fstab-generator"
+
+ # udev rules and systemd units
+ map add_udev_rule "$rules" \
+ 50-udev-default.rules \
+ 60-persistent-storage.rules \
+ 64-btrfs.rules \
+ 80-drivers.rules \
+ 99-systemd.rules \
+
+ map add_systemd_unit \
+ ctrl-alt-del.target \
+ initrd-cleanup.service \
+ initrd-fs.target \
+ initrd-parse-etc.service \
+ initrd-root-fs.target \
+ initrd-switch-root.service \
+ initrd-switch-root.target \
+ initrd-udevadm-cleanup-db.service \
+ initrd.target \
+ kmod-static-nodes.service \
+ sockets.target \
+ systemd-fsck@.service \
+ systemd-journald.service \
+ systemd-tmpfiles-setup-dev.service \
+ systemd-udev-trigger.service \
+ systemd-udevd-control.socket \
+ systemd-udevd-kernel.socket \
+ systemd-udevd.service
+
+ add_symlink "/usr/lib/systemd/system/default.target" "initrd.target"
+
+ # libdbus needs the passwd info of the root user
+ # TODO: make sure this is no longer necessary when systemctl moves to sd-bus
+ add_file "/etc/nsswitch.conf"
+ add_file "/etc/passwd"
+ add_binary "$(readlink -f /usr/lib/libnss_files.so)"
+
+ # udev wants /etc/group since it doesn't launch with --resolve-names=never
+ add_file "/etc/group"
+}
+
+help() {
+ cat <<HELPEOF
+This will install a basic systemd setup in your initramfs, and is meant to
+replace the 'base', 'usr', 'udev' and 'timestamp' hooks. Other hooks with runtime
+components will need to be ported, and will not work as intended. You also may
+wish to still include the 'base' hook (before this hook) to ensure that a
+rescue shell exists on your initramfs.
+HELPEOF
+}
+
+# vim: set ft=sh ts=4 sw=4 et:
diff --git a/core/systemd/initcpio-install-timestamp b/core/systemd/initcpio-install-timestamp
deleted file mode 100644
index 259cc705b..000000000
--- a/core/systemd/initcpio-install-timestamp
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/bash
-
-build() {
- add_binary /usr/lib/systemd/systemd-timestamp /usr/bin/systemd-timestamp
-}
-
-help() {
- cat <<HELPEOF
-Provides support for RD_TIMESTAMP in early userspace, which can be read by a
-program such as systemd-analyze to determine boot time.
-HELPEOF
-}
-
-# vim: set ft=sh ts=4 sw=4 et:
diff --git a/core/systemd/initcpio-install-udev b/core/systemd/initcpio-install-udev
index 15124b8f7..419c19e58 100644
--- a/core/systemd/initcpio-install-udev
+++ b/core/systemd/initcpio-install-udev
@@ -4,8 +4,9 @@ build() {
local rules tool
add_file "/etc/udev/udev.conf"
- add_binary /usr/lib/systemd/systemd-udevd /usr/bin/udevd
+ add_binary /usr/lib/systemd/systemd-udevd
add_binary /usr/bin/udevadm
+ add_binary /usr/bin/systemd-tmpfiles
for rules in 50-udev-default.rules 60-persistent-storage.rules 64-btrfs.rules 80-drivers.rules; do
add_file "/usr/lib/udev/rules.d/$rules"
diff --git a/core/systemd/systemd.install b/core/systemd/systemd.install
index 508b384c3..f22536360 100644
--- a/core/systemd/systemd.install
+++ b/core/systemd/systemd.install
@@ -38,11 +38,24 @@ mask_net_naming() {
fi
}
+_208_changes() {
+ chown root:systemd-journal var/log/journal
+ chmod 2755 var/log/journal
+
+ if [ -e var/lib/backlight ] && [ ! -e var/lib/systemd/backlight ]; then
+ mv -T var/lib/backlight var/lib/systemd/backlight
+ fi
+
+ if [ -e var/lib/random-seed ] && [ ! -e var/lib/systemd/random-seed ]; then
+ mv -T var/lib/random-seed var/lib/systemd/random-seed
+ fi
+}
+
post_install() {
post_common
# enable getty@tty1 by default, but don't track the file
- systemctl enable getty@.service
+ systemctl enable getty@tty1.service
echo ":: Append 'init=/usr/lib/systemd/systemd' to your kernel command line in your"
echo " bootloader to replace sysvinit with systemd, or install systemd-sysvcompat"
@@ -87,6 +100,21 @@ post_upgrade() {
printf '==> The /bin/systemd symlink has been removed. Any references in your\n'
printf ' bootloader (or elsewhere) must be updated to /usr/lib/systemd/systemd.\n'
fi
+
+ if [ "$(vercmp 205-1 "$2")" -eq 1 ]; then
+ printf '==> systemd 205 restructures the cgroup hierarchy and changes internal\n'
+ printf ' protocols. You should reboot at your earliest convenience.\n'
+ fi
+
+ if [ "$(vercmp 206-1 "$2")" -eq 1 ]; then
+ printf '==> The "timestamp" hook for mkinitcpio no longer exists. If you used\n'
+ printf ' this hook, you must remove it from /etc/mkinitcpio.conf. A "systemd"\n'
+ printf ' hook has been added which provides this functionality, and more.\n'
+ fi
+
+ if [ "$(vercmp 208-1 "$2")" -eq 1 ]; then
+ _208_changes
+ fi
}
# vim:set ts=2 sw=2 et:
diff --git a/core/tar/PKGBUILD b/core/tar/PKGBUILD
index 4febb901d..d4aafe120 100644
--- a/core/tar/PKGBUILD
+++ b/core/tar/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 187045 2013-06-03 11:15:39Z allan $
+# $Id: PKGBUILD 195996 2013-10-07 10:34:06Z allan $
# Maintainer: Allan McRae <allan@archlinux.org>
# Contributor: Andreas Radke <andyrtr@archlinux.org>
pkgname=tar
-pkgver=1.26
-pkgrel=4
+pkgver=1.27
+pkgrel=1
pkgdesc="Utility used to store, backup, and transport files"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.gnu.org/software/tar/tar.html"
@@ -13,20 +13,9 @@ groups=('base')
depends=('glibc' 'sh')
options=('!emptydirs')
install=tar.install
-source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz{,.sig}
- tar.1
- gnulib-no-gets.patch)
-md5sums=('0ced6f20b9fa1bea588005b5ad4b52c1'
- '6618d5fe7785e138c27d7d6a24e998b2'
- 'e97e7343f4e23724b4c48bca2f033e38'
- '4408365a66887d65f4c8d1f416fb9d9f')
-
-prepare() {
- cd ${srcdir}/$pkgname-$pkgver
-
- # fix build failure with glibc-2.16
- sed -i -e '/gets is a/d' gnu/stdio.in.h
-}
+source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz{,.sig})
+md5sums=('3484fc42b7a82b82f2305b2971aa0e56'
+ 'SKIP')
build() {
cd ${srcdir}/$pkgname-$pkgver
@@ -42,6 +31,4 @@ check() {
package() {
cd ${srcdir}/$pkgname-$pkgver
make DESTDIR=${pkgdir} install
-
- install -Dm644 ${srcdir}/tar.1 ${pkgdir}/usr/share/man/man1/tar.1
}
diff --git a/core/tar/tar.1 b/core/tar/tar.1
deleted file mode 100644
index 75bbcd38c..000000000
--- a/core/tar/tar.1
+++ /dev/null
@@ -1,367 +0,0 @@
-.\" generated by script on Fri Aug 19 16:19:30 2011
-.Dd Aug 19, 2011
-.Dt TAR 1
-.Sh NAME
-.Nm tar
-.Nd The GNU version of the tar archiving utility
-.Sh SYNOPSIS
-.Nm tar
-.Oo Fl Oc Cm A Fl \-catenate \-concatenate Cm \||\| c Fl \-create Cm \||\| d Fl \-diff \-compare Cm \||\| Fl \-delete Cm \||\| r Fl \-append Cm \||\| t Fl \-list Cm \||\| Fl \-test\-label Cm \||\| u Fl \-update Cm \||\| x Fl \-extract \-get
-.Op Ar options
-.Op Ar pathname ...
-.Sh DESCRIPTION
-.Nm Tar
-stores and extracts files from a tape or disk archive.
-.Pp
-The first argument to
-tar
-should be a function; either one of the letters
-.Cm Acdrtux ,
-or one of the long function names.
-A function letter need not be prefixed with ``\-'', and may be combined
-with other single-letter options.
-A long function name must be prefixed with
-.Cm \\-\\- .
-Some options take a parameter; with the single-letter form
-these must be given as separate arguments.
-With the long form, they may be given by appending
-.Cm = Ns Ar value
-to the option.
-.Sh FUNCTION LETTERS
-Main operation mode:
-.Bl -tag -width flag
-.It Fl A , Fl \-catenate , Fl \-concatenate
-append tar files to an archive
-.It Fl c , Fl \-create
-create a new archive
-.It Fl d , Fl \-diff , Fl \-compare
-find differences between archive and file system
-.It Fl \-delete
-delete from the archive (not on mag tapes!)
-.It Fl r , Fl \-append
-append files to the end of an archive
-.It Fl t , Fl \-list
-list the contents of an archive
-.It Fl \-test\-label
-test the archive volume label and exit
-.It Fl u , Fl \-update
-only append files newer than copy in archive
-.It Fl x , Fl \-extract , Fl \-get
-extract files from an archive
-.El
-.Sh OTHER OPTIONS
-Operation modifiers:
-.Bl -tag -width flag
-.It \-[0\-7][lmh]
-specify drive and density
-.It Fl a , Fl \-auto\-compress
-use archive suffix to determine the compression program
-.It Fl \-add\-file Ns \= Ns Ar FILE
-add given FILE to the archive (useful if its name starts with a dash)
-.It Fl \-anchored
-patterns match file name start
-.It Fl \-no\-anchored
-patterns match after any `/' (default for exclusion)
-.It Fl \-atime\-preserve
-preserve access times on dumped files, either by restoring the times
-.It Fl \-no\-auto\-compress
-do not use archive suffix to determine the compression program
-.It Fl b , Fl \-blocking\-factor Ar BLOCKS
-BLOCKS x 512 bytes per record
-.It Fl B , Fl \-read\-full\-records
-reblock as we read (for 4.2BSD pipes)
-.It Fl \-backup
-backup before removal, choose version CONTROL
-.It Fl C , Fl \-directory Ar DIR
-change to directory DIR
-.It Fl \-check\-device
-check device numbers when creating incremental archives (default)
-.It Fl \-no\-check\-device
-do not check device numbers when creating incremental archives
-.It Fl \-checkpoint
-display progress messages every NUMBERth record (default 10)
-.It Fl \-checkpoint\-action Ns \= Ns Ar ACTION
-execute ACTION on each checkpoint
-.It Fl \-delay\-directory\-restore
-delay setting modification times and permissions of extracted
-.It Fl \-no\-delay\-directory\-restore
-cancel the effect of --delay-directory-restore option
-.It Fl \-exclude Ns \= Ns Ar PATTERN
-exclude files, given as a PATTERN
-.It Fl \-exclude\-backups
-exclude backup and lock files
-.It Fl \-exclude\-caches
-exclude contents of directories containing CACHEDIR.TAG,
-.It Fl \-exclude\-caches\-all
-exclude directories containing CACHEDIR.TAG
-.It Fl \-exclude\-caches\-under
-exclude everything under directories containing CACHEDIR.TAG
-.It Fl \-exclude\-tag Ns \= Ns Ar FILE
-exclude contents of directories containing FILE, except
-.It Fl \-exclude\-tag\-all Ns \= Ns Ar FILE
-exclude directories containing FILE
-.It Fl \-exclude\-tag\-under Ns \= Ns Ar FILE
-exclude everything under directories containing FILE
-.It Fl \-exclude\-vcs
-exclude version control system directories
-.It Fl f , Fl \-file Ar ARCHIVE
-use archive file or device ARCHIVE
-.It Fl F , Fl \-info\-script , Fl \-new\-volume\-script Ar NAME
-run script at end of each tape (implies -M)
-.It Fl \-force\-local
-archive file is local even if it has a colon
-.It Fl \-full\-time
-print file time to its full resolution
-.It Fl g , Fl \-listed\-incremental Ar FILE
-handle new GNU-format incremental backup
-.It Fl G , Fl \-incremental
-handle old GNU-format incremental backup
-.It Fl \-group Ns \= Ns Ar NAME
-force NAME as group for added files
-.It Fl h , Fl \-dereference
-follow symlinks; archive and dump the files they point to
-.It Fl H , Fl \-format Ar FORMAT
-create archive of the given formatFORMAT is one of the following:
-.Bl -tag -width flag
-.It Fl \-format=gnu
-GNU tar 1.13.x format
-.It Fl \-format=oldgnu
-GNU format as per tar <= 1.12
-.It Fl \-format=pax
-POSIX 1003.1-2001 (pax) format
-.It Fl \-format=posix
-same as pax
-.It Fl \-format=ustar
-POSIX 1003.1-1988 (ustar) format
-.It Fl \-format=v7
-old V7 tar format
-.El
-.It Fl \-hard\-dereference
-follow hard links; archive and dump the files they refer to
-.It Fl i , Fl \-ignore\-zeros
-ignore zeroed blocks in archive (means EOF)
-.It Fl I , Fl \-use\-compress\-program Ar PROG
-filter through PROG (must accept -d)
-.It Fl \-ignore\-case
-ignore case
-.It Fl \-no\-ignore\-case
-case sensitive matching (default)
-.It Fl \-ignore\-command\-error
-ignore exit codes of children
-.It Fl \-no\-ignore\-command\-error
-treat non-zero exit codes of children as error
-.It Fl \-ignore\-failed\-read
-do not exit with nonzero on unreadable files
-.It Fl \-index\-file Ns \= Ns Ar FILE
-send verbose output to FILE
-.It Fl j , Fl \-bzip2
-
-.It Fl J , Fl \-xz
-
-.It Fl k , Fl \-keep\-old\-files
-don't replace existing files when extracting
-.It Fl K , Fl \-starting\-file Ar MEMBER-NAME
-begin at member MEMBER-NAME in the archive
-.It Fl \-keep\-newer\-files
-don't replace existing files that are newer than their archive copies
-.It Fl l , Fl \-check\-links
-print a message if not all links are dumped
-.It Fl L , Fl \-tape\-length Ar NUMBER
-change tape after writing NUMBER x 1024 bytes
-.It Fl \-level Ns \= Ns Ar NUMBER
-dump level for created listed-incremental archive
-.It Fl \-lzip
-
-.It Fl \-lzma
-
-.It Fl \-lzop
-
-.It Fl m , Fl \-touch
-don't extract file modified time
-.It Fl M , Fl \-multi\-volume
-create/list/extract multi-volume archive
-.It Fl \-mode Ns \= Ns Ar CHANGES
-force (symbolic) mode CHANGES for added files
-.It Fl \-mtime Ns \= Ns Ar DATE-OR-FILE
-set mtime for added files from DATE-OR-FILE
-.It Fl n , Fl \-seek
-archive is seekable
-.It Fl N , Fl \-newer , Fl \-after\-date Ar DATE-OR-FILE
-only store files newer than DATE-OR-FILE
-.It Fl \-newer\-mtime Ns \= Ns Ar DATE
-compare date and time when data changed only
-.It Fl \-null
--T reads null-terminated names, disable -C
-.It Fl \-no\-null
-disable the effect of the previous --null option
-.It Fl \-numeric\-owner
-always use numbers for user/group names
-.It Fl O , Fl \-to\-stdout
-extract files to standard output
-.It Fl \-occurrence
-process only the NUMBERth occurrence of each file in the archive;
-.It Fl \-old\-archive , Fl \-portability
-same as --format=v7
-.It Fl \-one\-file\-system
-stay in local file system when creating archive
-.It Fl \-overwrite
-overwrite existing files when extracting
-.It Fl \-overwrite\-dir
-overwrite metadata of existing directories when extracting (default)
-.It Fl \-no\-overwrite\-dir
-preserve metadata of existing directories
-.It Fl \-owner Ns \= Ns Ar NAME
-force NAME as owner for added files
-.It Fl p , Fl \-preserve\-permissions , Fl \-same\-permissions
-extract information about file permissions (default for superuser)
-.It Fl P , Fl \-absolute\-names
-don't strip leading `/'s from file names
-.It Fl \-pax\-option Ns \= Ns Ar keyword[[:]=value][,keyword[[:]=value]]...
-control pax keywords
-.It Fl \-posix
-same as --format=posix
-.It Fl \-preserve
-same as both -p and -s
-.It Fl \-quote\-chars Ns \= Ns Ar STRING
-additionally quote characters from STRING
-.It Fl \-no\-quote\-chars Ns \= Ns Ar STRING
-disable quoting for characters from STRING
-.It Fl \-quoting\-style Ns \= Ns Ar STYLE
-set name quoting style; see below for valid STYLE values
-.It Fl R , Fl \-block\-number
-show block number within archive with each message
-.It Fl \-record\-size Ns \= Ns Ar NUMBER
-NUMBER of bytes per record, multiple of 512
-.It Fl \-recursion
-recurse into directories (default)
-.It Fl \-no\-recursion
-avoid descending automatically in directories
-.It Fl \-recursive\-unlink
-empty hierarchies prior to extracting directory
-.It Fl \-remove\-files
-remove files after adding them to the archive
-.It Fl \-restrict
-disable use of some potentially harmful options
-.It Fl \-rmt\-command Ns \= Ns Ar COMMAND
-use given rmt COMMAND instead of rmt
-.It Fl \-rsh\-command Ns \= Ns Ar COMMAND
-use remote COMMAND instead of rsh
-.It Fl s , Fl \-preserve\-order , Fl \-same\-order
-sort names to extract to match archive
-.It Fl S , Fl \-sparse
-handle sparse files efficiently
-.It Fl \-same\-owner
-try extracting files with the same ownership as exists in the archive (default for superuser)
-.It Fl \-no\-same\-owner
-extract files as yourself (default for ordinary users)
-.It Fl \-no\-same\-permissions
-apply the user's umask when extracting permissions from the archive (default for ordinary users)
-.It Fl \-no\-seek
-archive is not seekable
-.It Fl \-show\-defaults
-show tar defaults
-.It Fl \-show\-omitted\-dirs
-when listing or extracting, list each directory that does not match search criteria
-.It Fl \-show\-transformed\-names , Fl \-show\-stored\-names
-show file or archive names after transformation
-.It Fl \-sparse\-version Ns \= Ns Ar MAJOR[.MINOR]
-set version of the sparse format to use (implies --sparse)
-.It Fl \-strip\-components Ns \= Ns Ar NUMBER
-strip NUMBER leading components from file names on extraction
-.It Fl \-suffix Ns \= Ns Ar STRING
-backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)
-.It Fl T , Fl \-files\-from Ar FILE
-get names to extract or create from FILE
-.It Fl \-to\-command Ns \= Ns Ar COMMAND
-pipe extracted files to another program
-.It Fl \-totals
-print total bytes after processing the archive;
-.It Fl \-transform , Fl \-xform Ar EXPRESSION
-use sed replace EXPRESSION to transform file names
-.It Fl U , Fl \-unlink\-first
-remove each file prior to extracting over it
-.It Fl \-unquote
-unquote filenames read with -T (default)
-.It Fl \-no\-unquote
-do not unquote filenames read with -T
-.It Fl \-utc
-print file modification times in UTC
-.It Fl v , Fl \-verbose
-verbosely list files processed
-.It Fl V , Fl \-label Ar TEXT
-create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name
-.It Fl \-volno\-file Ns \= Ns Ar FILE
-use/update the volume number in FILE
-.It Fl w , Fl \-interactive , Fl \-confirmation
-ask for confirmation for every action
-.It Fl W , Fl \-verify
-attempt to verify the archive after writing it
-.It Fl \-warning Ns \= Ns Ar KEYWORD
-warning control
-.It Fl \-wildcards
-use wildcards (default for exclusion)
-.It Fl \-wildcards\-match\-slash
-wildcards match `/' (default for exclusion)
-.It Fl \-no\-wildcards\-match\-slash
-wildcards do not match `/'
-.It Fl \-no\-wildcards
-verbatim string matching
-.It Fl X , Fl \-exclude\-from Ar FILE
-exclude patterns listed in FILE
-.It Fl z , Fl \-gzip , Fl \-gunzip Fl \-ungzip
-
-.It Fl Z , Fl \-compress , Fl \-uncompress
-
-.El
-.Sh ENVIRONMENT
-The behavior of tar is controlled by the following environment variables,
-among others:
-.Bl -tag -width Ds
-.It Ev SIMPLE_BACKUP_SUFFIX
-Backup prefix to use when extracting, if
-.Fl \-suffix
-is not specified.
-The backup suffix defaults to `~' if neither is specified.
-.It Ev TAR_OPTIONS
-Options to prepend to those specified on the command line, separated by
-whitespace. Embedded backslashes may be used to escape whitespace or
-backslashes within an option.
-.It Ev TAPE
-Device or file to use for the archive if
-.Fl \-file
-is not specified.
-If this environment variable is unset, use stdin or stdout instead.
-.It Ev TAR_LONGLINK_100
-.El
-.Sh EXAMPLES
-Create archive.tar from files foo and bar.
-.Bd -literal -offset indent -compact
-tar \-cf archive.tar foo bar
-.Ed
-List all files in archive.tar verbosely.
-.Bd -literal -offset indent -compact
-tar \-tvf archive.tar
-.Ed
-Extract all files from archive.tar.
-.Bd -literal -offset indent -compact
-tar \-xf archive.tar
-.Ed
-.Sh SEE ALSO
-.\" libarchive
-.Xr tar 5 ,
-.\" man-pages
-.Xr symlink 7 ,
-.Xr rmt 8
-.Sh HISTORY
-The
-.Nm tar
-command appeared in
-.At v7 .
-.Sh BUGS
-The GNU folks, in general, abhor man pages, and create info documents instead.
-Unfortunately, the info document describing tar is licensed under the GFDL with
-invariant cover texts, which makes it impossible to include any text
-from that document in this man page.
-Most of the text in this document was automatically extracted from the usage
-text in the source.
-It may not completely describe all features of the program.
diff --git a/core/texinfo/PKGBUILD b/core/texinfo/PKGBUILD
index 244086cc7..927b8666e 100644
--- a/core/texinfo/PKGBUILD
+++ b/core/texinfo/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 180067 2013-03-15 22:55:32Z allan $
+# $Id: PKGBUILD 195842 2013-10-02 00:09:47Z allan $
# Maintainer: Allan McRae <allan@archlinux.org>
# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
pkgname=texinfo
-pkgver=5.1
+pkgver=5.2
pkgrel=1
pkgdesc="Utilities to work with and produce manuals, ASCII text, and on-line documentation from a single source file"
arch=('i686' 'x86_64' 'mips64el')
@@ -13,8 +13,8 @@ groups=('base' 'base-devel')
depends=('ncurses' 'findutils' 'gzip' 'perl' 'sh')
install=texinfo.install
source=(ftp://ftp.gnu.org/pub/gnu/${pkgname}/${pkgname}-${pkgver}.tar.xz{,.sig})
-md5sums=('52ee905a3b705020d2a1b6ec36d53ca6'
- '65c8c95799ea5905e03cee5825d3553f')
+md5sums=('cb489df8a7ee9d10a236197aefdb32c5'
+ 'SKIP')
build() {
cd ${srcdir}/${pkgname}-${pkgver}
diff --git a/core/texinfo/texinfo.install b/core/texinfo/texinfo.install
index f1554e4f4..1f220c572 100644
--- a/core/texinfo/texinfo.install
+++ b/core/texinfo/texinfo.install
@@ -1,5 +1,5 @@
infodir=usr/share/info
-filelist=(info.info info-stnd.info texinfo texinfo-1 texinfo-2 texinfo-3)
+filelist=(info.info info-stnd.info texinfo.info{,-1,-2,-3})
post_install() {
# Scan *all* info files on install
diff --git a/core/traceroute/PKGBUILD b/core/traceroute/PKGBUILD
index 76a48f766..478435c44 100644
--- a/core/traceroute/PKGBUILD
+++ b/core/traceroute/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 175126 2013-01-14 12:47:17Z stephane $
-# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# $Id: PKGBUILD 195972 2013-10-06 19:11:34Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
pkgname=traceroute
pkgver=2.0.19
-pkgrel=1
+pkgrel=2
pkgdesc="Tracks the route taken by packets over an IP network"
arch=('i686' 'x86_64' 'mips64el')
url="http://traceroute.sourceforge.net/"