From 65eeff79fff8a1bfdf67ca51d147384f46f4d5c0 Mon Sep 17 00:00:00 2001 From: Nicolás Reynolds Date: Fri, 27 Dec 2013 23:55:53 +0000 Subject: Fri Dec 27 23:54:04 UTC 2013 --- core/binutils/PKGBUILD | 30 +- core/bison/PKGBUILD | 6 +- core/btrfs-progs/PKGBUILD | 12 +- core/coreutils/PKGBUILD | 10 +- core/cronie/PKGBUILD | 9 +- core/cryptsetup/PKGBUILD | 8 +- core/curl/PKGBUILD | 16 +- core/dbus/PKGBUILD | 22 +- core/dbus/memleak.patch | 37 + core/dhcpcd/PKGBUILD | 10 +- core/dhcpcd/dhcpcd.service | 4 +- core/dhcpcd/dhcpcd_.service | 4 +- core/dosfstools/PKGBUILD | 6 +- core/efivar/PKGBUILD | 7 +- core/file/PKGBUILD | 6 +- core/gcc/PKGBUILD | 204 +++-- core/gcc/gcc-4.8-lambda-ICE.patch | 35 + core/glib2/PKGBUILD | 6 +- core/glibc/PKGBUILD | 9 +- core/glibc/glibc-2.18-scanf-parse-0e-0.patch | 67 ++ core/inetutils/PKGBUILD | 43 +- core/inetutils/ftpd.service | 4 +- core/inetutils/rlogin.pam | 13 + core/inetutils/rlogin.socket | 9 + core/inetutils/rlogin@.service | 7 + core/inetutils/rsh.pam | 11 + core/inetutils/rsh.socket | 9 + core/inetutils/rsh@.service | 7 + core/inetutils/talk.service | 12 + core/inetutils/talk.socket | 9 + core/inetutils/telnet.socket | 10 + core/inetutils/telnet@.service | 7 + core/iproute2/PKGBUILD | 17 +- core/iproute2/unwanted-link-help.patch | 17 + core/iptables/PKGBUILD | 6 +- core/isl/PKGBUILD | 4 +- core/kbd/PKGBUILD | 19 +- core/kbd/fix-alt_is_meta.patch | 212 ----- core/kbd/merge-fullline_singleline.patch | 104 --- core/krb5/CVE-2002-2443.patch | 69 -- core/krb5/PKGBUILD | 38 +- core/krb5/krb5-1.10.1-gcc47.patch | 11 - core/krb5/krb5-kadmind.service | 2 +- core/krb5/krb5-kdc.service | 2 +- core/krb5/krb5-kpropd.service | 2 +- core/krb5/krb5-kpropd@.service | 2 +- core/libarchive/PKGBUILD | 4 +- core/libnl/PKGBUILD | 10 +- core/libpcap/PKGBUILD | 10 +- core/libpipeline/PKGBUILD | 14 +- core/lvm2/PKGBUILD | 8 +- core/make/PKGBUILD | 17 +- core/make/make-4.0-char-cast.patch | 43 + core/mdadm/PKGBUILD | 5 +- core/mpfr/PKGBUILD | 8 +- core/mpfr/mpfr-3.1.2-p3.patch | 779 ------------------ core/mpfr/mpfr-3.1.2-p5.patch | 905 +++++++++++++++++++++ core/nfs-utils/PKGBUILD | 8 +- core/openldap/PKGBUILD | 6 +- core/openssh/PKGBUILD | 6 +- core/openssl/PKGBUILD | 18 +- ...0.1-Check-DTLS_BAD_VER-for-version-number.patch | 31 + ...mac_sha1.c-fix-rare-bad-record-mac-on-AES.patch | 32 + core/openvpn/PKGBUILD | 50 +- ...envpn-2.3.0-fix-systemd-ask-password-path.patch | 11 - core/openvpn/openvpn.install | 8 + core/openvpn/openvpn@.service | 1 - core/pcre/PKGBUILD | 8 +- core/procps-ng/PKGBUILD | 18 +- core/s-nail/PKGBUILD | 18 +- ...ator-When-parsing-the-root-cmdline-option.patch | 29 + ...-stop-a-running-user-manager-from-garbage.patch | 36 + ...ator-Generate-explicit-dependencies-on-sy.patch | 102 +++ ...nerator-Generate-explicit-dependencies-on.patch | 55 ++ ...FsckPassNo-from-systemd-fsck-root.service.patch | 22 + ...005-mount-service-drop-FsckPassNo-support.patch | 364 +++++++++ .../0006-efi-boot-generator-hookup-to-fsck.patch | 81 ++ ...sck-root-only-run-when-requested-in-fstab.patch | 95 +++ core/systemd/PKGBUILD | 41 +- core/sysvinit-tools/0001-simplify-writelog.patch | 126 --- ...02-remove-ansi-escape-codes-from-log-file.patch | 80 -- core/sysvinit-tools/PKGBUILD | 42 - core/tar/PKGBUILD | 6 +- core/texinfo/PKGBUILD | 15 +- core/texinfo/texinfo-5.2-C-n-fix.patch | 10 + core/util-linux/0001-lsblk-fix-D-segfault.patch | 45 + ...mount-correctly-import-from-pylibmount.so.patch | 30 + core/util-linux/PKGBUILD | 15 +- 88 files changed, 2574 insertions(+), 1792 deletions(-) create mode 100644 core/dbus/memleak.patch create mode 100644 core/gcc/gcc-4.8-lambda-ICE.patch create mode 100644 core/glibc/glibc-2.18-scanf-parse-0e-0.patch create mode 100644 core/inetutils/rlogin.pam create mode 100644 core/inetutils/rlogin.socket create mode 100644 core/inetutils/rlogin@.service create mode 100644 core/inetutils/rsh.pam create mode 100644 core/inetutils/rsh.socket create mode 100644 core/inetutils/rsh@.service create mode 100644 core/inetutils/talk.service create mode 100644 core/inetutils/talk.socket create mode 100644 core/inetutils/telnet.socket create mode 100644 core/inetutils/telnet@.service create mode 100644 core/iproute2/unwanted-link-help.patch delete mode 100644 core/kbd/fix-alt_is_meta.patch delete mode 100644 core/kbd/merge-fullline_singleline.patch delete mode 100644 core/krb5/CVE-2002-2443.patch delete mode 100644 core/krb5/krb5-1.10.1-gcc47.patch create mode 100644 core/make/make-4.0-char-cast.patch delete mode 100644 core/mpfr/mpfr-3.1.2-p3.patch create mode 100644 core/mpfr/mpfr-3.1.2-p5.patch create mode 100644 core/openssl/openssl-1.0.1-Check-DTLS_BAD_VER-for-version-number.patch create mode 100644 core/openssl/openssl-1.0.1-e_aes_cbc_hmac_sha1.c-fix-rare-bad-record-mac-on-AES.patch delete mode 100644 core/openvpn/openvpn-2.3.0-fix-systemd-ask-password-path.patch create mode 100644 core/openvpn/openvpn.install create mode 100644 core/systemd/0001-fstab-generator-When-parsing-the-root-cmdline-option.patch create mode 100644 core/systemd/0001-login-Don-t-stop-a-running-user-manager-from-garbage.patch create mode 100644 core/systemd/0002-fstab-generator-Generate-explicit-dependencies-on-sy.patch create mode 100644 core/systemd/0003-gpt-auto-generator-Generate-explicit-dependencies-on.patch create mode 100644 core/systemd/0004-Remove-FsckPassNo-from-systemd-fsck-root.service.patch create mode 100644 core/systemd/0005-mount-service-drop-FsckPassNo-support.patch create mode 100644 core/systemd/0006-efi-boot-generator-hookup-to-fsck.patch create mode 100644 core/systemd/0007-fsck-root-only-run-when-requested-in-fstab.patch delete mode 100644 core/sysvinit-tools/0001-simplify-writelog.patch delete mode 100644 core/sysvinit-tools/0002-remove-ansi-escape-codes-from-log-file.patch delete mode 100644 core/sysvinit-tools/PKGBUILD create mode 100644 core/texinfo/texinfo-5.2-C-n-fix.patch create mode 100644 core/util-linux/0001-lsblk-fix-D-segfault.patch create mode 100644 core/util-linux/0001-pylibmount-correctly-import-from-pylibmount.so.patch (limited to 'core') diff --git a/core/binutils/PKGBUILD b/core/binutils/PKGBUILD index b3cdebc2f..6dc36f564 100644 --- a/core/binutils/PKGBUILD +++ b/core/binutils/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 196835 2013-10-20 12:06:12Z allan $ +# $Id: PKGBUILD 201559 2013-12-15 06:41:35Z allan $ # Maintainer: Allan McRae # toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc pkgname=binutils -pkgver=2.23.2 -pkgrel=3 +pkgver=2.24 +pkgrel=1 pkgdesc="A set of programs to assemble and manipulate binary and object files" arch=('i686' 'x86_64') url="http://www.gnu.org/software/binutils/" @@ -15,19 +15,13 @@ depends=('glibc>=2.18' 'zlib') checkdepends=('dejagnu' 'bc') options=('staticlibs' '!distcc' '!ccache') install=binutils.install -source=(ftp://ftp.gnu.org/gnu/binutils/binutils-${pkgver}.tar.bz2{,.sig} - binutils-2.23.2-texinfo-5.0.patch) -md5sums=('4f8fa651e35ef262edc01d60fb45702e' - 'dfde4428f08d91f309cdcfe92bf28d08' - '34e439ce23213a91e2af872dfbb5094c') +source=(ftp://ftp.gnu.org/gnu/binutils/binutils-${pkgver}.tar.bz2{,.sig}) +md5sums=('e0f71a7b2ddab0f8612336ac81d9636b' + 'SKIP') prepare() { cd ${srcdir}/binutils-${pkgver} - # http://sourceware.org/git/?p=binutils.git;a=patch;h=e02bf935 - # http://sourceware.org/git/?p=binutils.git;a=patch;h=935f8542 - patch -p1 -i ${srcdir}/binutils-2.23.2-texinfo-5.0.patch - # hack! - libiberty configure tests for header files using "$CPP $CPPFLAGS" sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" libiberty/configure @@ -40,9 +34,8 @@ build() { ${srcdir}/binutils-${pkgver}/configure --prefix=/usr \ --with-lib-path=/usr/lib:/usr/local/lib \ --with-bugurl=https://bugs.archlinux.org/ \ - --enable-ld=default --enable-gold \ - --enable-plugins --enable-threads \ - --with-pic --enable-shared \ + --enable-threads --enable-shared \ + --enable-ld=default --enable-gold --enable-plugins \ --disable-werror --disable-multilib # check the host environment and makes sure all the necessary tools are available @@ -62,13 +55,6 @@ check() { package() { cd ${srcdir}/binutils-build make prefix=${pkgdir}/usr tooldir=${pkgdir}/usr install - - # Add some useful headers - install -m644 ${srcdir}/binutils-${pkgver}/include/libiberty.h ${pkgdir}/usr/include - install -m644 ${srcdir}/binutils-${pkgver}/include/demangle.h ${pkgdir}/usr/include - - # Install PIC libiberty.a - install -m644 libiberty/pic/libiberty.a ${pkgdir}/usr/lib # Remove unwanted files rm ${pkgdir}/usr/share/man/man1/{dlltool,nlmconv,windres,windmc}* diff --git a/core/bison/PKGBUILD b/core/bison/PKGBUILD index 27ad9c6ae..7c0fbdf1d 100644 --- a/core/bison/PKGBUILD +++ b/core/bison/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 196831 2013-10-20 11:52:24Z allan $ +# $Id: PKGBUILD 201434 2013-12-11 15:08:40Z allan $ # Maintainer: Allan McRae # Contributor: Eric Belanger pkgname=bison -pkgver=3.0 +pkgver=3.0.2 pkgrel=1 pkgdesc="The GNU general-purpose parser generator" arch=('i686' 'x86_64') @@ -14,7 +14,7 @@ groups=('base-devel') options=('staticlibs') install=bison.install source=(ftp://ftp.gnu.org/gnu/bison/${pkgname}-${pkgver}.tar.xz{,.sig}) -md5sums=('a2624994561aa69f056c904c1ccb2880' +md5sums=('146be9ff9fbd27497f0bf2286a5a2082' 'SKIP') build() { diff --git a/core/btrfs-progs/PKGBUILD b/core/btrfs-progs/PKGBUILD index 0455899e1..0c7b57c62 100644 --- a/core/btrfs-progs/PKGBUILD +++ b/core/btrfs-progs/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 195489 2013-10-01 11:32:32Z tomegun $ +# $Id: PKGBUILD 202441 2013-12-21 23:13:17Z tomegun $ # Maintainer: Tom Gundersen # Contributor: Tobias Powalowski pkgname=btrfs-progs -pkgver=0.20rc1.3 +pkgver=3.12 pkgrel=1 pkgdesc="btrfs filesystem utilities" arch=(i686 x86_64) @@ -14,11 +14,14 @@ 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=194aa4a1bd6447bb545286d0bcb0b0be8204d79f" +source=("git://git.kernel.org/pub/scm/linux/kernel/git/mason/${pkgname}.git#tag=v${pkgver}" initcpio-install-btrfs initcpio-hook-btrfs) install=btrfs-progs.install options=(!staticlibs) +md5sums=('SKIP' + '7241ba3a4286d08da0d50b7176941112' + 'b09688a915a0ec8f40e2f5aacbabc9ad') build() { cd $pkgname @@ -42,6 +45,3 @@ package() { install -Dm644 "$srcdir/initcpio-hook-btrfs" \ "$pkgdir/usr/lib/initcpio/hooks/btrfs" } -md5sums=('SKIP' - '7241ba3a4286d08da0d50b7176941112' - 'b09688a915a0ec8f40e2f5aacbabc9ad') diff --git a/core/coreutils/PKGBUILD b/core/coreutils/PKGBUILD index f5a11ec40..018624ada 100644 --- a/core/coreutils/PKGBUILD +++ b/core/coreutils/PKGBUILD @@ -1,24 +1,24 @@ -# $Id: PKGBUILD 187020 2013-06-03 11:14:56Z allan $ +# $Id: PKGBUILD 201684 2013-12-18 05:22:31Z allan $ # Maintainer: Allan McRae # Contributor: judd pkgname=coreutils -pkgver=8.21 +pkgver=8.22 pkgrel=2 pkgdesc="The basic file, shell and text manipulation utilities of the GNU operating system" arch=('i686' 'x86_64') license=('GPL3') url="http://www.gnu.org/software/coreutils" groups=('base') -depends=('glibc' 'pam' 'acl' 'gmp' 'libcap') +depends=('glibc' 'pam' 'acl' 'gmp' 'libcap' 'openssl') install=${pkgname}.install source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz{,.sig}) -md5sums=('065ba41828644eca5dd8163446de5d64' +md5sums=('8fb0ae2267aa6e728958adc38f8163a2' 'SKIP') build() { cd ${srcdir}/${pkgname}-${pkgver} - ./configure --prefix=/usr --libexecdir=/usr/lib \ + ./configure --prefix=/usr --libexecdir=/usr/lib --with-openssl \ --enable-no-install-program=groups,hostname,kill,uptime make } diff --git a/core/cronie/PKGBUILD b/core/cronie/PKGBUILD index 128087d4e..a1e00c55d 100644 --- a/core/cronie/PKGBUILD +++ b/core/cronie/PKGBUILD @@ -1,9 +1,10 @@ +# $Id: PKGBUILD 200681 2013-12-02 07:24:30Z bisson $ # Contributor: Kaiting Chen # Maintainer: Gaetan Bisson pkgname='cronie' -pkgver=1.4.9 -pkgrel=5 +pkgver=1.4.11 +pkgrel=1 pkgdesc='Daemon that runs specified programs at scheduled times and related tools' url='https://fedorahosted.org/cronie/' license=('custom:BSD') @@ -14,10 +15,10 @@ optdepends=('pm-utils: defer anacron on battery power' 'smtp-forwarder: forward job output to email server') source=("https://fedorahosted.org/releases/c/r/${pkgname}/${pkgname}-${pkgver}.tar.gz" - 'service' + 'service' 'pam.d' 'deny') -sha1sums=('40405cb30b62bd60323e4daf5198f26f0e65c4c4' +sha1sums=('1a8d3648f5b7082c50128a06377a1194da668899' 'eb8ed1e22dbe9c02075fe4bbe925b6eeb9954649' '5eff7fb31f6bc0a924243ff046704726cf20c221' '0f279b8fb820340267d578dc85511c980715f91e') diff --git a/core/cryptsetup/PKGBUILD b/core/cryptsetup/PKGBUILD index 27b67e4f3..e0c0c2c79 100644 --- a/core/cryptsetup/PKGBUILD +++ b/core/cryptsetup/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 197805 2013-10-30 11:02:47Z allan $ +# $Id: PKGBUILD 202619 2013-12-22 13:44:39Z thomas $ # Maintainer: Thomas Bächler pkgname=cryptsetup -pkgver=1.6.2 -pkgrel=2 +pkgver=1.6.3 +pkgrel=1 pkgdesc="Userspace setup tool for transparent encryption of block devices using dm-crypt" arch=(i686 x86_64) license=('GPL') @@ -15,7 +15,7 @@ source=(http://cryptsetup.googlecode.com/files/${pkgname}-${pkgver}.tar.bz2 encrypt_hook encrypt_install sd-encrypt) -md5sums=('cd834da49fbe92dd66df02cc5c61280f' +md5sums=('a7aeb549a543eeac433eadfb6bc67837' 'SKIP' 'c279d86d6dc18322c054d2272ebb9e90' '21c45f9cab3e0b5165f68358884fbd0f' diff --git a/core/curl/PKGBUILD b/core/curl/PKGBUILD index 0c88797cf..06a7b278f 100644 --- a/core/curl/PKGBUILD +++ b/core/curl/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 198761 2013-11-03 13:49:41Z dreisner $ +# $Id: PKGBUILD 202635 2013-12-23 02:04:37Z dreisner $ # Maintainer: Dave Reisner # Contributor: Angel Velasquez # Contributor: Eric Belanger @@ -6,8 +6,8 @@ # Contributor: Daniel J Griffiths pkgname=curl -pkgver=7.33.0 -pkgrel=3 +pkgver=7.34.0 +pkgrel=1 pkgdesc="An URL retrieval utility and library" arch=('i686' 'x86_64') url="http://curl.haxx.se" @@ -16,19 +16,11 @@ depends=('ca-certificates' 'libssh2' 'openssl' 'zlib') provides=('libcurl.so') options=('strip' 'debug') source=("http://curl.haxx.se/download/$pkgname-$pkgver.tar.gz"{,.asc} - "0001-glob-fix-regression-from-commit-5ca96cb844.patch::https://github.com/bagder/curl/commit/867b52a.patch" curlbuild.h) -md5sums=('c8a4eaac7ce7b0d1bf458d62ccd4ef93' +md5sums=('d5b7edccbd1793e3549842e01331da20' 'SKIP' - 'd71c7eab7d38f1731f78285634a4c390' '751bd433ede935c8fae727377625a8ae') -prepare() { - cd "$pkgname-$pkgver" - - patch -Np1 < "$srcdir"/0001-glob-fix-regression-from-commit-5ca96cb844.patch -} - build() { cd "$pkgname-$pkgver" diff --git a/core/dbus/PKGBUILD b/core/dbus/PKGBUILD index c748a8611..f347e17d3 100644 --- a/core/dbus/PKGBUILD +++ b/core/dbus/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 197807 2013-10-30 11:03:01Z allan $ +# $Id: PKGBUILD 200253 2013-11-23 20:09:30Z tomegun $ # Maintainer: Tom Gundersen # Maintainer: Jan de Groot # Contributor: Link Dupont # pkgname=dbus -pkgver=1.6.16 +pkgver=1.6.18 pkgrel=1 pkgdesc="Freedesktop.org message bus system" url="http://www.freedesktop.org/Software/dbus" @@ -17,7 +17,17 @@ provides=('dbus-core') conflicts=('dbus-core') replaces=('dbus-core') source=(http://dbus.freedesktop.org/releases/dbus/dbus-$pkgver.tar.gz - 30-dbus systemd-user-session.patch) + 30-dbus systemd-user-session.patch memleak.patch) +md5sums=('b02e9c95027a416987b81f9893831061' + '3314d727fa57fc443fce25b5cbeebbcc' + 'd8a1bd529b3ddca671ee1a695a143db9' + 'cf86d68e39d975cec1e9f0342eb9b142') + +prepare() { + cd dbus-$pkgver + patch -Np1 -i ../systemd-user-session.patch + patch -Np1 -i ../memleak.patch +} build() { cd dbus-$pkgver @@ -31,9 +41,6 @@ build() { --disable-tests --disable-asserts \ --with-systemdsystemunitdir=/usr/lib/systemd/system \ --enable-systemd - - patch -p1 < "$srcdir/systemd-user-session.patch" - make } @@ -47,6 +54,3 @@ package(){ install -Dm644 COPYING "$pkgdir/usr/share/licenses/dbus/COPYING" } -md5sums=('1de63d9983d7785836ffae6c2181c698' - '3314d727fa57fc443fce25b5cbeebbcc' - 'd8a1bd529b3ddca671ee1a695a143db9') diff --git a/core/dbus/memleak.patch b/core/dbus/memleak.patch new file mode 100644 index 000000000..7dea7943e --- /dev/null +++ b/core/dbus/memleak.patch @@ -0,0 +1,37 @@ +From 03aeaccbffa97c9237b57ca067e3da7388862129 Mon Sep 17 00:00:00 2001 +From: Radoslaw Pajak +Date: Fri, 08 Nov 2013 12:51:32 +0000 +Subject: fixed memory freeing if error during listing services + +Signed-off-by: Radoslaw Pajak +Reviewed-by: Simon McVittie +Bug: https://bugs.freedesktop.org/show_bug.cgi?id=71526 +--- +diff --git a/bus/activation.c b/bus/activation.c +index fcb7133..ea48a26 100644 +--- a/bus/activation.c ++++ b/bus/activation.c +@@ -2179,7 +2179,7 @@ bus_activation_list_services (BusActivation *activation, + + error: + for (j = 0; j < i; j++) +- dbus_free (retval[i]); ++ dbus_free (retval[j]); + dbus_free (retval); + + return FALSE; +diff --git a/bus/services.c b/bus/services.c +index 6f380fa..01a720e 100644 +--- a/bus/services.c ++++ b/bus/services.c +@@ -368,7 +368,7 @@ bus_registry_list_services (BusRegistry *registry, + + error: + for (j = 0; j < i; j++) +- dbus_free (retval[i]); ++ dbus_free (retval[j]); + dbus_free (retval); + + return FALSE; +-- +cgit v0.9.0.2-2-gbebe diff --git a/core/dhcpcd/PKGBUILD b/core/dhcpcd/PKGBUILD index e72456a02..f6b0abcd7 100644 --- a/core/dhcpcd/PKGBUILD +++ b/core/dhcpcd/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 192483 2013-08-12 21:11:39Z dreisner $ +# $Id: PKGBUILD 199762 2013-11-15 21:24:38Z ronald $ # Maintainer: Ronald van Haren # Contributor: Tom Killian # Contributor: Judd Vinet pkgname=dhcpcd -pkgver=6.0.5 +pkgver=6.1.0 pkgrel=1 pkgdesc="RFC2131 compliant DHCP client daemon" url="http://roy.marples.name/projects/dhcpcd/" @@ -18,9 +18,9 @@ options=('emptydirs') # We Need the Empty /var/lib/dhcpcd Directory source=("http://roy.marples.name/downloads/$pkgname/$pkgname-$pkgver.tar.bz2" 'dhcpcd_.service' 'dhcpcd.service') -sha1sums=('433555ac11669333344d7ec80120f3ccdd0fcae5' - '6245b8db7e6f39a0305571726bb693a53901c400' - 'e49e01041f831281a1cd0c97ca21204e0aa07fda') +sha1sums=('dcd6970db0440398aaf3ae4b58cc262a67b2e472' + '6f1633edde14d29b5cdc09c4f029a450ef2ebc96' + '7f3e62908037b888df2f6b87af1c7611f462dd08') build() { cd ${srcdir}/${pkgname}-${pkgver} diff --git a/core/dhcpcd/dhcpcd.service b/core/dhcpcd/dhcpcd.service index 4a3bf366a..489023d3e 100644 --- a/core/dhcpcd/dhcpcd.service +++ b/core/dhcpcd/dhcpcd.service @@ -6,8 +6,8 @@ Before=network.target [Service] Type=forking PIDFile=/run/dhcpcd.pid -ExecStart=/sbin/dhcpcd -q -b -ExecStop=/sbin/dhcpcd -x +ExecStart=/bin/dhcpcd -q -b +ExecStop=/bin/dhcpcd -x [Install] WantedBy=multi-user.target diff --git a/core/dhcpcd/dhcpcd_.service b/core/dhcpcd/dhcpcd_.service index 8864ae284..e7bc5caf8 100644 --- a/core/dhcpcd/dhcpcd_.service +++ b/core/dhcpcd/dhcpcd_.service @@ -8,8 +8,8 @@ After=sys-subsystem-net-devices-%i.device [Service] Type=forking PIDFile=/run/dhcpcd-%I.pid -ExecStart=/usr/sbin/dhcpcd -q -w %I -ExecStop=/usr/sbin/dhcpcd -x %I +ExecStart=/usr/bin/dhcpcd -q -w %I +ExecStop=/usr/bin/dhcpcd -x %I [Install] WantedBy=multi-user.target diff --git a/core/dosfstools/PKGBUILD b/core/dosfstools/PKGBUILD index d44ff7311..0f0901f5f 100644 --- a/core/dosfstools/PKGBUILD +++ b/core/dosfstools/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 196781 2013-10-19 06:36:41Z tpowa $ +# $Id: PKGBUILD 200725 2013-12-03 16:03:02Z tpowa $ # Maintainer: dorphell # Committer: Judd Vinet pkgname=dosfstools -pkgver=3.0.23 +pkgver=3.0.24 pkgrel=1 pkgdesc="DOS filesystem utilities" arch=(i686 x86_64) @@ -10,7 +10,7 @@ depends=('glibc') source=(http://www.daniel-baumann.ch/files/software/$pkgname/$pkgname-$pkgver.tar.xz{,.sig}) url="http://www.daniel-baumann.ch/software/dosfstools/" license=('GPL2') -md5sums=('bfdca786880a7f1cc9ce8ac68cb1fd51' +md5sums=('41931f36ebee6e79e9dafe85cc916f2b' 'SKIP') build() { diff --git a/core/efivar/PKGBUILD b/core/efivar/PKGBUILD index 849868267..e8d8995d1 100644 --- a/core/efivar/PKGBUILD +++ b/core/efivar/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 194436 2013-09-16 12:12:17Z tpowa $ +# $Id: PKGBUILD 199468 2013-11-13 11:07:43Z tpowa $ # Maintainer : Tobias Powalowski # Contributor : Keshav Padram <(the.ridikulus.rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)> @@ -10,17 +10,18 @@ _pkgname="efivar" pkgname="${_pkgname}" pkgdesc="Library to manipulate EFI variables" -pkgver=0.6 +pkgver=0.7 pkgrel=1 arch=('x86_64' 'i686') url="https://github.com/vathpela/efivar" license=('LGPL2.1') +makedepends=('git') depends=('popt') conflicts=('libefivar') provides=('libefivar') options=('zipman' 'docs' '!makeflags') -source=("${_gitname}::git+${_gitroot}#branch=${_gitbranch}") +source=("${_gitname}::git+${_gitroot}#tag=${pkgver}") sha1sums=('SKIP') pkgver() { diff --git a/core/file/PKGBUILD b/core/file/PKGBUILD index 450e479bb..495d6b860 100644 --- a/core/file/PKGBUILD +++ b/core/file/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 197810 2013-10-30 11:03:22Z allan $ +# $Id: PKGBUILD 201433 2013-12-11 15:08:39Z allan $ # Maintainer: Allan McRae # Contributor: Andreas Radke pkgname=file -pkgver=5.15 +pkgver=5.16 pkgrel=1 pkgdesc="File type identification utility" arch=('i686' 'x86_64') @@ -12,7 +12,7 @@ groups=('base' 'base-devel') url="http://www.darwinsys.com/file/" depends=('glibc' 'zlib') source=(ftp://ftp.astron.com/pub/${pkgname}/${pkgname}-${pkgver}.tar.gz) -md5sums=('3f99565532f548d7540912c4642d1ede') +md5sums=('359c0cf41c3d438d17b4d293f3b950dc') build() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/core/gcc/PKGBUILD b/core/gcc/PKGBUILD index 6ed0ff9e7..412cd95bd 100644 --- a/core/gcc/PKGBUILD +++ b/core/gcc/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 197286 2013-10-25 01:09:21Z allan $ +# $Id: PKGBUILD 202694 2013-12-25 03:04:31Z allan $ # Maintainer: Allan McRae # toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc @@ -6,8 +6,9 @@ pkgname=('gcc' 'gcc-libs' 'gcc-fortran' 'gcc-objc' 'gcc-ada' 'gcc-go') pkgver=4.8.2 -pkgrel=3 -#_snapshot=4.8-20130725 +_pkgver=4.8 +pkgrel=7 +_snapshot=4.8-20131219 pkgdesc="The GNU Compiler Collection" arch=('i686' 'x86_64') license=('GPL' 'LGPL' 'FDL' 'custom') @@ -15,11 +16,13 @@ url="http://gcc.gnu.org" makedepends=('binutils>=2.23' 'libmpc' 'cloog' 'gcc-ada' 'doxygen') checkdepends=('dejagnu' 'inetutils') options=('!emptydirs') -source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2 - #ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-${_snapshot}.tar.bz2 - gcc-4.8-filename-output.patch) -md5sums=('a3d7d63b9cb6b6ea049469a0c4a43c9d' - '40cb437805e2f7a006aa0d0c3098ab0f') +source=(#ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2 + ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-${_snapshot}.tar.bz2 + gcc-4.8-filename-output.patch + gcc-4.8-lambda-ICE.patch) +md5sums=('666ef08f87649f941bc5512e13a88fdc' + '40cb437805e2f7a006aa0d0c3098ab0f' + '6eb6e080dbf7bc6825f53a0aaa6c4ef9') if [ -n "${_snapshot}" ]; then @@ -28,6 +31,8 @@ else _basedir=gcc-${pkgver} fi +_libdir="usr/lib/gcc/$CHOST/$pkgver" + prepare() { cd ${srcdir}/${_basedir} @@ -44,6 +49,13 @@ prepare() { # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57653 patch -p0 -i ${srcdir}/gcc-4.8-filename-output.patch + + # http://gcc.gnu.org/bugzilla//show_bug.cgi?id=56710 - commit 3d1f8279 + patch -p1 -i ${srcdir}/gcc-4.8-lambda-ICE.patch + + # installing libiberty headers is broken + # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56780#c6 + sed -i 's#@target_header_dir@#libiberty#' libiberty/Makefile.in mkdir ${srcdir}/gcc-build } @@ -64,19 +76,17 @@ build() { --enable-shared --enable-threads=posix \ --with-system-zlib --enable-__cxa_atexit \ --disable-libunwind-exceptions --enable-clocale=gnu \ - --disable-libstdcxx-pch \ + --disable-libstdcxx-pch --disable-libssp \ --enable-gnu-unique-object --enable-linker-build-id \ --enable-cloog-backend=isl --disable-cloog-version-check \ - --enable-lto --enable-gold --enable-ld=default \ - --enable-plugin --with-plugin-ld=ld.gold \ - --with-linker-hash-style=gnu --disable-install-libiberty \ - --disable-multilib --disable-libssp --disable-werror \ + --enable-lto --enable-plugin --enable-install-libiberty \ + --with-linker-hash-style=gnu \ + --disable-multilib --disable-werror \ --enable-checking=release make # make documentation - cd $CHOST/libstdc++-v3 - make doc-man-doxygen + make -C $CHOST/libstdc++-v3/doc doc-man-doxygen } check() { @@ -96,31 +106,38 @@ package_gcc-libs() pkgdesc="Runtime libraries shipped by GCC" groups=('base') depends=('glibc>=2.17') + options=('!emptydirs') install=gcc-libs.install cd ${srcdir}/gcc-build - make -j1 -C $CHOST/libgcc DESTDIR=${pkgdir} install-shared - for lib in libmudflap libgomp libstdc++-v3/src libitm libsanitizer/asan; do - make -j1 -C $CHOST/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES + + make -C $CHOST/libgcc DESTDIR=${pkgdir} install-shared + rm ${pkgdir}/${_libdir}/libgcc_eh.a + + for lib in libmudflap \ + libgomp \ + libitm \ + libatomic \ + libstdc++-v3/src \ + libquadmath \ + libgfortran \ + libsanitizer/asan; do + make -C $CHOST/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES done [[ $CARCH == "x86_64" ]] && \ - make -j1 -C $CHOST/libsanitizer/tsan DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES - - make -j1 -C $CHOST/libstdc++-v3/po DESTDIR=${pkgdir} install - make -j1 -C $CHOST/libgomp DESTDIR=${pkgdir} install-info - make -j1 -C $CHOST/libitm DESTDIR=${pkgdir} install-info + make -C $CHOST/libsanitizer/tsan DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES - make -j1 DESTDIR=${pkgdir} install-target-libquadmath - make -j1 DESTDIR=${pkgdir} install-target-libgfortran - make -j1 DESTDIR=${pkgdir} install-target-libobjc + make -C $CHOST/libobjc DESTDIR=${pkgdir} install-libs + + make -C $CHOST/libstdc++-v3/po DESTDIR=${pkgdir} install - # remove unnecessary files installed by install-target-{libquadmath,libgfortran,libobjc} - rm -r ${pkgdir}/usr/lib/{gcc/,libgfortran.spec} + for lib in libgomp \ + libitm \ + libquadmath; do + make -C $CHOST/$lib DESTDIR=${pkgdir} install-info + done - # remove static libraries - find ${pkgdir} -name *.a -delete - # Install Runtime Library Exception install -Dm644 ${srcdir}/${_basedir}/COPYING.RUNTIME \ ${pkgdir}/usr/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION @@ -135,28 +152,45 @@ package_gcc() install=gcc.install cd ${srcdir}/gcc-build + + make -C gcc DESTDIR=${pkgdir} install-driver install-cpp install-gcc-ar \ + c++.install-common install-headers install-plugin install-lto-wrapper + + install -m755 gcc/gcov $pkgdir/usr/bin/ + install -m755 -t $pkgdir/${_libdir}/ gcc/{cc1,cc1plus,collect2,lto1} + + make -C $CHOST/libgcc DESTDIR=${pkgdir} install + rm ${pkgdir}/usr/lib/libgcc_s.so* - make -j1 DESTDIR=${pkgdir} install + make -C $CHOST/libstdc++-v3/src DESTDIR=${pkgdir} install + make -C $CHOST/libstdc++-v3/include DESTDIR=${pkgdir} install + make -C $CHOST/libstdc++-v3/libsupc++ DESTDIR=${pkgdir} install + make -C $CHOST/libstdc++-v3/python DESTDIR=${pkgdir} install install -d $pkgdir/usr/share/gdb/auto-load/usr/lib - mv $pkgdir{,/usr/share/gdb/auto-load}/usr/lib/libstdc++.so.6.0.18-gdb.py - - # unfortunately it is much, much easier to install the lot and clean-up the mess... - rm $pkgdir/usr/bin/{{$CHOST-,}gfortran,{$CHOST-,}gccgo,gnat*} - rm $pkgdir/usr/lib/*.so* - rm $pkgdir/usr/lib/lib{atomic,gfortran,go{,begin},iberty,objc}.a - rm $pkgdir/usr/lib/libgfortran.spec - rm -r $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{ada{include,lib},finclude,include/objc} - rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{cc1obj{,plus},f951,gnat1,go1} - rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{libcaf_single,libgfortranbegin}.a - rm -r $pkgdir/usr/lib/go - rm $pkgdir/usr/share/info/{gccgo,gfortran,gnat*,libgomp,libquadmath,libitm}.info - rm $pkgdir/usr/share/locale/{de,fr}/LC_MESSAGES/libstdc++.mo - rm $pkgdir/usr/share/man/man1/{gccgo,gfortran}.1 - - # remove static libraries - note libstdc++.a is needed for the binutils and glibc testsuite - rm $pkgdir/usr/lib/lib{asan,gomp,itm,mudflap{,th},quadmath}.a - [[ $CARCH = "x86_64" ]] && rm $pkgdir/usr/lib/libtsan.a + mv $pkgdir/usr/lib/libstdc++.so.6.*-gdb.py \ + $pkgdir/usr/share/gdb/auto-load/usr/lib/ + rm ${pkgdir}/usr/lib/libstdc++.so* + + make DESTDIR=${pkgdir} install-fixincludes + make -C gcc DESTDIR=${pkgdir} install-mkheaders + make -C lto-plugin DESTDIR=${pkgdir} install + + make -C $CHOST/libgomp DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS \ + install-nodist_libsubincludeHEADERS + make -C $CHOST/libitm DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS + make -C $CHOST/libmudflap DESTDIR=${pkgdir} install-nobase_libsubincludeHEADERS + make -C $CHOST/libquadmath DESTDIR=${pkgdir} install-nodist_libsubincludeHEADERS + make -C $CHOST/libsanitizer/asan DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS + + make -C libiberty DESTDIR=${pkgdir} install + + make -C gcc DESTDIR=${pkgdir} install-man install-info + rm ${pkgdir}/usr/share/man/man1/{gccgo,gfortran}.1 + rm ${pkgdir}/usr/share/info/{gccgo,gfortran,gnat-style,gnat_rm,gnat_ugn}.info + + make -C libcpp DESTDIR=${pkgdir} install + make -C gcc DESTDIR=${pkgdir} install-po # many packages expect this symlinks ln -s gcc ${pkgdir}/usr/bin/cc @@ -191,13 +225,11 @@ EOF chmod 755 $pkgdir/usr/bin/c{8,9}9 # install the libstdc++ man pages - install -dm755 ${pkgdir}/usr/share/man/man3 - install -m644 -t ${pkgdir}/usr/share/man/man3 \ - ${CHOST}/libstdc++-v3/doc/doxygen/man/man3/*.3 + make -C $CHOST/libstdc++-v3/doc DESTDIR=$pkgdir doc-install-man # Install Runtime Library Exception - install -Dm644 ${srcdir}/${_basedir}/COPYING.RUNTIME \ - ${pkgdir}/usr/share/licenses/gcc/RUNTIME.LIBRARY.EXCEPTION + install -d ${pkgdir}/usr/share/licenses/gcc/ + ln -s ../gcc-libs/RUNTIME.LIBRARY.EXCEPTION ${pkgdir}/usr/share/licenses/gcc/ } package_gcc-fortran() @@ -208,24 +240,16 @@ package_gcc-fortran() install=gcc-fortran.install cd ${srcdir}/gcc-build - make -j1 DESTDIR=$pkgdir install-target-libgfortran - make -j1 -C $CHOST/libgomp DESTDIR=$pkgdir install-nodist_fincludeHEADERS - make -j1 -C gcc DESTDIR=$pkgdir fortran.install-{common,man,info} - install -Dm755 gcc/f951 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/f951 + make -C $CHOST/libgfortran DESTDIR=$pkgdir install-{{caf,my}execlibLTLIBRARIES,toolexeclibDATA} + make -C $CHOST/libgomp DESTDIR=$pkgdir install-nodist_fincludeHEADERS + make -C gcc DESTDIR=$pkgdir fortran.install-{common,man,info} + install -Dm755 gcc/f951 $pkgdir/${_libdir}/f951 ln -s gfortran ${pkgdir}/usr/bin/f95 - # remove files included in gcc-libs or gcc and unnneeded static lib - rm ${pkgdir}/usr/lib/lib{gfortran,gcc_s}.so* - rm ${pkgdir}/usr/lib/libquadmath.{a,so*} - rm ${pkgdir}/usr/lib/gcc/$CHOST/${pkgver}/{*.o,libgc*} - rm ${pkgdir}/usr/share/info/libquadmath.info - rm -r ${pkgdir}/usr/lib/gcc/$CHOST/${pkgver}/include - rm ${pkgdir}/usr/lib/libgfortran.a - # Install Runtime Library Exception - install -Dm644 ${srcdir}/${_basedir}/COPYING.RUNTIME \ - ${pkgdir}/usr/share/licenses/gcc-fortran/RUNTIME.LIBRARY.EXCEPTION + install -d ${pkgdir}/usr/share/licenses/gcc-fortran/ + ln -s ../gcc-libs/RUNTIME.LIBRARY.EXCEPTION ${pkgdir}/usr/share/licenses/gcc-fortran/ } package_gcc-objc() @@ -234,18 +258,13 @@ package_gcc-objc() depends=("gcc=$pkgver-$pkgrel") cd ${srcdir}/gcc-build - make -j1 DESTDIR=$pkgdir install-target-libobjc - install -dm755 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/ - install -m755 gcc/cc1obj{,plus} $pkgdir/usr/lib/gcc/$CHOST/$pkgver/ - - # remove files included in gcc-libs or gcc - rm ${pkgdir}/usr/lib/lib{gcc_s,objc}.so* - rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{*.o,lib*} - rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/include/unwind.h + make DESTDIR=$pkgdir -C $CHOST/libobjc install-headers + install -dm755 $pkgdir/${_libdir} + install -m755 gcc/cc1obj{,plus} $pkgdir/${_libdir}/ # Install Runtime Library Exception - install -Dm644 ${srcdir}/${_basedir}/COPYING.RUNTIME \ - ${pkgdir}/usr/share/licenses/gcc-objc/RUNTIME.LIBRARY.EXCEPTION + install -d ${pkgdir}/usr/share/licenses/gcc-objc/ + ln -s ../gcc-libs/RUNTIME.LIBRARY.EXCEPTION ${pkgdir}/usr/share/licenses/gcc-objc/ } package_gcc-ada() @@ -256,14 +275,20 @@ package_gcc-ada() install=gcc-ada.install cd ${srcdir}/gcc-build/gcc - make -j1 DESTDIR=$pkgdir ada.install-{common,info} - install -m755 gnat1 $pkgdir/usr/lib/gcc/$CHOST/$pkgver + make DESTDIR=$pkgdir ada.install-{common,info} + install -m755 gnat1 $pkgdir/${_libdir} ln -s gcc ${pkgdir}/usr/bin/gnatgcc + # insist on dynamic linking + mv ${pkgdir}/${_libdir}/adalib/libgna{rl,t}-${_pkgver}.so ${pkgdir}/usr/lib + ln -s libgnarl-${_pkgver}.so ${pkgdir}/usr/lib/libgnarl.so + ln -s libgnat-${_pkgver}.so ${pkgdir}/usr/lib/libgnat.so + rm ${pkgdir}/${_libdir}/adalib/libgna{rl,t}.* + # Install Runtime Library Exception - install -Dm644 ${srcdir}/${_basedir}/COPYING.RUNTIME \ - ${pkgdir}/usr/share/licenses/gcc-ada/RUNTIME.LIBRARY.EXCEPTION + install -d ${pkgdir}/usr/share/licenses/gcc-ada/ + ln -s ../gcc-libs/RUNTIME.LIBRARY.EXCEPTION ${pkgdir}/usr/share/licenses/gcc-ada/ } package_gcc-go() @@ -274,12 +299,13 @@ package_gcc-go() install=gcc-go.install cd ${srcdir}/gcc-build - make -j1 DESTDIR=$pkgdir install-target-libgo - make -j1 -C gcc DESTDIR=$pkgdir go.install-{common,man,info} - install -Dm755 gcc/go1 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/go1 - rm $pkgdir/usr/lib/lib{atomic,go}.a + make -C $CHOST/libgo DESTDIR=$pkgdir install-exec-am + make -C gcc DESTDIR=$pkgdir go.install-{common,man,info} + install -Dm755 gcc/go1 $pkgdir/${_libdir}/go1 + + rm $pkgdir/usr/lib/libgo.a # Install Runtime Library Exception - install -Dm644 ${srcdir}/${_basedir}/COPYING.RUNTIME \ - ${pkgdir}/usr/share/licenses/gcc-go/RUNTIME.LIBRARY.EXCEPTION + install -d ${pkgdir}/usr/share/licenses/gcc-go/ + ln -s ../gcc-libs/RUNTIME.LIBRARY.EXCEPTION ${pkgdir}/usr/share/licenses/gcc-go/ } diff --git a/core/gcc/gcc-4.8-lambda-ICE.patch b/core/gcc/gcc-4.8-lambda-ICE.patch new file mode 100644 index 000000000..cf77a9b35 --- /dev/null +++ b/core/gcc/gcc-4.8-lambda-ICE.patch @@ -0,0 +1,35 @@ +diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c +index 0b8e2f7..ad1c209 100644 +--- a/gcc/cp/semantics.c ++++ b/gcc/cp/semantics.c +@@ -2719,8 +2719,10 @@ finish_member_declaration (tree decl) + /*friend_p=*/0); + } + } +- /* Enter the DECL into the scope of the class. */ +- else if (pushdecl_class_level (decl)) ++ /* Enter the DECL into the scope of the class, if the class ++ isn't a closure (whose fields are supposed to be unnamed). */ ++ else if (CLASSTYPE_LAMBDA_EXPR (current_class_type) ++ || pushdecl_class_level (decl)) + { + if (TREE_CODE (decl) == USING_DECL) + { +diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-names1.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-names1.C +new file mode 100644 +index 0000000..df2b037 +--- /dev/null ++++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-names1.C +@@ -0,0 +1,9 @@ ++// PR c++/56710 ++// { dg-options "-std=c++11 -Wall" } ++ ++int main() ++{ ++ int t = 0; ++ return [&]() -> int {int __t; __t = t; return __t; }(); ++ return [&t]() -> int {int __t; __t = t; return __t; }(); ++} +-- +1.8.4.2 + diff --git a/core/glib2/PKGBUILD b/core/glib2/PKGBUILD index c8bca2735..2918b59ab 100644 --- a/core/glib2/PKGBUILD +++ b/core/glib2/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 197812 2013-10-30 11:03:36Z allan $ +# $Id: PKGBUILD 199901 2013-11-18 14:27:39Z heftig $ # Maintainer: Jan de Groot pkgbase=glib2 pkgname=(glib2 glib2-docs) -pkgver=2.38.1 +pkgver=2.38.2 pkgrel=1 pkgdesc="Common C routines used by GTK+ and other libs" url="http://www.gtk.org/" @@ -11,7 +11,7 @@ arch=(i686 x86_64) 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=('01906c62ac666d2ab3183cc07261b2536fab7b211c6129ab66b119c2af56d159' +sha256sums=('056a9854c0966a0945e16146b3345b7a82562a5ba4d5516fd10398732aea5734' '049240975cd2f1c88fbe7deb28af14d4ec7d2640495f7ca8980d873bb710cc97') prepare() { diff --git a/core/glibc/PKGBUILD b/core/glibc/PKGBUILD index 0cda50b39..3deb8cd15 100644 --- a/core/glibc/PKGBUILD +++ b/core/glibc/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 197798 2013-10-30 10:37:54Z allan $ +# $Id: PKGBUILD 201557 2013-12-15 06:41:32Z allan $ # Maintainer: Allan McRae # toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc @@ -8,7 +8,7 @@ pkgname=glibc pkgver=2.18 -pkgrel=9 +pkgrel=11 pkgdesc="GNU C Library" arch=('i686' 'x86_64') url="http://www.gnu.org/software/libc" @@ -29,6 +29,7 @@ source=(http://ftp.gnu.org/gnu/libc/${pkgname}-${pkgver}.tar.xz{,.sig} glibc-2.18-ptr-mangle-CVE-2013-4788.patch glibc-2.18-getaddrinfo-CVE-2013-4458.patch glibc-2.18-getaddrinfo-assertion.patch + glibc-2.18-scanf-parse-0e-0.patch glibc-2.18-strstr-hackfix.patch nscd.service nscd.tmpfiles @@ -43,6 +44,7 @@ md5sums=('88fbbceafee809e82efd52efa1e3c58f' '9749ba386b08a8fe53e7ecede9bf2dfb' '71329fccb8eb583fb0d67b55f1e8df68' 'd4d86add33f22125777e0ecff06bc9bb' + '01d19fe9b2aea489cf5651530e0369f2' '4441f6dfe7d75ced1fa75e54dd21d36e' 'd5fab2cd3abea65aa5ae696ea4a47d6b' 'da662ca76e7c8d7efbc7986ab7acea2d' @@ -73,6 +75,9 @@ prepare() { # upstream commit 894f3f10 patch -p1 -i $srcdir/glibc-2.18-getaddrinfo-assertion.patch + # upstream commit a4966c61 + patch -p1 -i $srcdir/glibc-2.18-scanf-parse-0e-0.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-scanf-parse-0e-0.patch b/core/glibc/glibc-2.18-scanf-parse-0e-0.patch new file mode 100644 index 000000000..651e56590 --- /dev/null +++ b/core/glibc/glibc-2.18-scanf-parse-0e-0.patch @@ -0,0 +1,67 @@ +diff --git a/stdio-common/tst-sscanf.c b/stdio-common/tst-sscanf.c +index 1edb227..3c34f58 100644 +--- a/stdio-common/tst-sscanf.c ++++ b/stdio-common/tst-sscanf.c +@@ -109,6 +109,19 @@ struct test double_tests[] = + { L("-inf"), L("%g"), 1 } + }; + ++struct test2 ++{ ++ const CHAR *str; ++ const CHAR *fmt; ++ int retval; ++ char residual; ++} double_tests2[] = ++{ ++ { L("0e+0"), L("%g%c"), 1, 0 }, ++ { L("0xe+0"), L("%g%c"), 2, '+' }, ++ { L("0x.e+0"), L("%g%c"), 2, '+' }, ++}; ++ + int + main (void) + { +@@ -196,5 +209,26 @@ main (void) + } + } + ++ for (i = 0; i < sizeof (double_tests2) / sizeof (double_tests2[0]); ++i) ++ { ++ double dummy; ++ int ret; ++ char c = 0; ++ ++ if ((ret = SSCANF (double_tests2[i].str, double_tests2[i].fmt, ++ &dummy, &c)) != double_tests2[i].retval) ++ { ++ printf ("double_tests2[%d] returned %d != %d\n", ++ i, ret, double_tests2[i].retval); ++ result = 1; ++ } ++ else if (ret == 2 && c != double_tests2[i].residual) ++ { ++ printf ("double_tests2[%d] stopped at '%c' != '%c'\n", ++ i, c, double_tests2[i].residual); ++ result = 1; ++ } ++ } ++ + return result; + } +diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c +index 78dc2fc..e6fa8f3 100644 +--- a/stdio-common/vfscanf.c ++++ b/stdio-common/vfscanf.c +@@ -1966,6 +1966,8 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr, + if (width > 0) + --width; + } ++ else ++ got_digit = 1; + } + + while (1) +-- +1.8.4.2 + diff --git a/core/inetutils/PKGBUILD b/core/inetutils/PKGBUILD index f4296de2b..fd85ed111 100644 --- a/core/inetutils/PKGBUILD +++ b/core/inetutils/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 194664 2013-09-20 17:37:51Z eric $ +# $Id: PKGBUILD 201551 2013-12-14 23:02:04Z eric $ # Maintainer: Eric Bélanger pkgname=inetutils pkgver=1.9.1.341 -pkgrel=1 +pkgrel=2 pkgdesc="A collection of common network programs" arch=('i686' 'x86_64') url="http://www.gnu.org/software/inetutils/" @@ -11,19 +11,32 @@ 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') +backup=('etc/xinetd.d/telnet' 'etc/xinetd.d/talk' + 'etc/xinetd.d/rlogin' 'etc/xinetd.d/rsh' + 'etc/pam.d/rlogin' 'etc/pam.d/rsh') options=('!emptydirs') install=inetutils.install -source=(ftp://ftp.archlinux.org/other/packages/inetutils/${pkgname}-${pkgver}.tar.xz{,.sig} \ - telnet.xinetd talk.xinetd rlogin.xinetd rsh.xinetd ftpd.service) +source=(ftp://ftp.archlinux.org/other/packages/inetutils/${pkgname}-${pkgver}.tar.xz{,.sig} + ftpd.service rlogin.pam rlogin@.service rlogin.socket rlogin.xinetd + rsh.pam rsh@.service rsh.socket rsh.xinetd talk.service talk.socket talk.xinetd + telnet@.service telnet.socket telnet.xinetd) sha1sums=('eaccc1568c9cc624f6cda3a265fb92ec72c7304d' 'SKIP' - '2b2dd71eb3233e5090f4c2df8abe9b4924d323f3' - 'b15ab4faa9d97652e182c98c1e3a3b3cbbf6383c' + 'aa4730d662398b6c33df2b6fc116ab6b5c3cd120' + '387b371cbaa3611b95d30f806c0dd08b621a584a' + '6f9a304391610a17b8ae3ad35b742c78c86aee16' + '0455126fa18d2a9422469d79b9e73dd928b15652' 'd9b8f8aab094ecb779d0f16f21b4683ab327516f' + '556b5372cbab8794e931e110b896fa8a61628bb1' + '828da7bce49ffc4e9645288759b275a98a2fbc40' + '7071da32d42a133ead039197ed891b518bb0f773' '26763ae31b8a5be256666a0ba55746941d75d6ee' - 'e4a764828b57f1e907ec96f4ae0e0cf0d3e2e802') + '4486c966d28736897bce1280d85d139bd10a5689' + 'd1813d42c5c9d2c60f03ebe33961de357a4b8b43' + 'b15ab4faa9d97652e182c98c1e3a3b3cbbf6383c' + '0917dc6b5a80d914bf550065b1733b7da2c776f3' + 'a7ac7bbe917ff80fd8cd4357fbc62fab50595c34' + '2b2dd71eb3233e5090f4c2df8abe9b4924d323f3') build() { cd ${pkgname}-${pkgver} @@ -58,5 +71,17 @@ package() { install -D -m644 "${srcdir}/talk.xinetd" "${pkgdir}/etc/xinetd.d/talk" install -D -m644 "${srcdir}/rlogin.xinetd" "${pkgdir}/etc/xinetd.d/rlogin" install -D -m644 "${srcdir}/rsh.xinetd" "${pkgdir}/etc/xinetd.d/rsh" + + install -D -m644 "${srcdir}/rlogin.pam" "${pkgdir}/etc/pam.d/rlogin" + install -D -m644 "${srcdir}/rsh.pam" "${pkgdir}/etc/pam.d/rsh" + install -D -m644 "${srcdir}/ftpd.service" "${pkgdir}/usr/lib/systemd/system/ftpd.service" + install -D -m644 "${srcdir}/rlogin@.service" "${pkgdir}/usr/lib/systemd/system/rlogin@.service" + install -D -m644 "${srcdir}/rlogin.socket" "${pkgdir}/usr/lib/systemd/system/rlogin.socket" + install -D -m644 "${srcdir}/rsh@.service" "${pkgdir}/usr/lib/systemd/system/rsh@.service" + install -D -m644 "${srcdir}/rsh.socket" "${pkgdir}/usr/lib/systemd/system/rsh.socket" + install -D -m644 "${srcdir}/talk.service" "${pkgdir}/usr/lib/systemd/system/talk.service" + install -D -m644 "${srcdir}/talk.socket" "${pkgdir}/usr/lib/systemd/system/talk.socket" + install -D -m644 "${srcdir}/telnet@.service" "${pkgdir}/usr/lib/systemd/system/telnet@.service" + install -D -m644 "${srcdir}/telnet.socket" "${pkgdir}/usr/lib/systemd/system/telnet.socket" } diff --git a/core/inetutils/ftpd.service b/core/inetutils/ftpd.service index 57549c088..3020804b0 100644 --- a/core/inetutils/ftpd.service +++ b/core/inetutils/ftpd.service @@ -3,8 +3,10 @@ Description=FTPD Daemon After=network.target [Service] -ExecStart=/usr/bin/ftpd -D Type=forking +PIDFile=/run/ftpd.pid +ExecStart=/usr/bin/ftpd -D +ExecStopPost=/bin/rm -f /run/ftpd.pid [Install] WantedBy=multi-user.target diff --git a/core/inetutils/rlogin.pam b/core/inetutils/rlogin.pam new file mode 100644 index 000000000..d92a5da40 --- /dev/null +++ b/core/inetutils/rlogin.pam @@ -0,0 +1,13 @@ +#%PAM-1.0 +# For root login to succeed here with pam_securetty, "rlogin" must be +# listed in /etc/securetty. +auth required pam_nologin.so +auth required pam_securetty.so +auth required pam_env.so +auth sufficient pam_rhosts.so +auth include system-auth +account include system-auth +password include system-auth +session optional pam_keyinit.so force revoke +session required pam_loginuid.so +session include system-auth diff --git a/core/inetutils/rlogin.socket b/core/inetutils/rlogin.socket new file mode 100644 index 000000000..c8c276c59 --- /dev/null +++ b/core/inetutils/rlogin.socket @@ -0,0 +1,9 @@ +[Unit] +Description=Remote Login Facilities Activation Socket + +[Socket] +ListenStream=513 +Accept=true + +[Install] +WantedBy=sockets.target diff --git a/core/inetutils/rlogin@.service b/core/inetutils/rlogin@.service new file mode 100644 index 000000000..77c18caa9 --- /dev/null +++ b/core/inetutils/rlogin@.service @@ -0,0 +1,7 @@ +[Unit] +Description=Remote Login Facilities Server +After=local-fs.target + +[Service] +ExecStart=-/usr/bin/rlogind +StandardInput=socket diff --git a/core/inetutils/rsh.pam b/core/inetutils/rsh.pam new file mode 100644 index 000000000..3c04bc7d6 --- /dev/null +++ b/core/inetutils/rsh.pam @@ -0,0 +1,11 @@ +#%PAM-1.0 +# For root login to succeed here with pam_securetty, "rsh" must be +# listed in /etc/securetty. +auth required pam_nologin.so +auth required pam_securetty.so +auth required pam_env.so +auth required pam_rhosts.so +account include system-auth +session optional pam_keyinit.so force revoke +session required pam_loginuid.so +session include system-auth diff --git a/core/inetutils/rsh.socket b/core/inetutils/rsh.socket new file mode 100644 index 000000000..4d44b99eb --- /dev/null +++ b/core/inetutils/rsh.socket @@ -0,0 +1,9 @@ +[Unit] +Description=Remote Shell Facilities Activation Socket + +[Socket] +ListenStream=514 +Accept=true + +[Install] +WantedBy=sockets.target diff --git a/core/inetutils/rsh@.service b/core/inetutils/rsh@.service new file mode 100644 index 000000000..403754a9f --- /dev/null +++ b/core/inetutils/rsh@.service @@ -0,0 +1,7 @@ +[Unit] +Description=Remote Shell Facilities Server +After=local-fs.target + +[Service] +ExecStart=-/usr/bin/rshd +StandardInput=socket diff --git a/core/inetutils/talk.service b/core/inetutils/talk.service new file mode 100644 index 000000000..25eb6732d --- /dev/null +++ b/core/inetutils/talk.service @@ -0,0 +1,12 @@ +[Unit] +Description=Talk Server +Documentation=man:talkd(8) man:talk(1) + +[Service] +User=nobody +Group=tty +ExecStart=/usr/bin/talkd +StandardInput=socket + +[Install] +Also=talk.socket diff --git a/core/inetutils/talk.socket b/core/inetutils/talk.socket new file mode 100644 index 000000000..b09e07cbb --- /dev/null +++ b/core/inetutils/talk.socket @@ -0,0 +1,9 @@ +[Unit] +Description=Talk Server Activation Socket +Documentation=man:talkd(8) man:talk(1) + +[Socket] +ListenDatagram=0.0.0.0:518 + +[Install] +WantedBy=sockets.target diff --git a/core/inetutils/telnet.socket b/core/inetutils/telnet.socket new file mode 100644 index 000000000..811b6725f --- /dev/null +++ b/core/inetutils/telnet.socket @@ -0,0 +1,10 @@ +[Unit] +Description=Telnet Server Activation Socket +Documentation=man:telnetd(8) + +[Socket] +ListenStream=23 +Accept=true + +[Install] +WantedBy=sockets.target diff --git a/core/inetutils/telnet@.service b/core/inetutils/telnet@.service new file mode 100644 index 000000000..d92af371b --- /dev/null +++ b/core/inetutils/telnet@.service @@ -0,0 +1,7 @@ +[Unit] +Description=Telnet Server +After=local-fs.target + +[Service] +ExecStart=-/usr/bin/telnetd +StandardInput=socket diff --git a/core/iproute2/PKGBUILD b/core/iproute2/PKGBUILD index c4ded449d..04ca6df34 100644 --- a/core/iproute2/PKGBUILD +++ b/core/iproute2/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 192132 2013-08-06 06:57:03Z bpiotrowski $ +# $Id: PKGBUILD 199763 2013-11-15 21:24:40Z ronald $ # Maintainer: Ronald van Haren # Contributor: Judd Vinet pkgname=iproute2 -pkgver=3.10.0 +pkgver=3.11.0 pkgrel=1 pkgdesc="IP Routing Utilities" arch=('i686' 'x86_64') @@ -16,13 +16,15 @@ groups=('base') provides=('iproute') conflicts=('iproute') replaces=('iproute') -options=('!makeflags') +options=('staticlibs' '!makeflags') backup=('etc/iproute2/ematch_map' 'etc/iproute2/rt_dsfield' 'etc/iproute2/rt_protos' \ 'etc/iproute2/rt_realms' 'etc/iproute2/rt_scopes' 'etc/iproute2/rt_tables') source=(http://www.kernel.org/pub/linux/utils/net/$pkgname/$pkgname-$pkgver.tar.xz - iproute2-fhs.patch) -sha1sums=('e94b5dc9dc586006b272f67134ec07f6fbc81bd7' - '35b8cf2dc94b73eccad427235c07596146cd6f6c') + iproute2-fhs.patch + unwanted-link-help.patch) +sha1sums=('efb5ca0688e28967ec146ac37cc728c4f53c9d8f' + '35b8cf2dc94b73eccad427235c07596146cd6f6c' + '3b1335f4025f657f388fbf4e5a740871e3129c2a') prepare() { cd $srcdir/$pkgname-$pkgver @@ -30,6 +32,9 @@ prepare() { # set correct fhs structure patch -Np1 -i "$srcdir/iproute2-fhs.patch" + # allow operations on links called "h", "he", "hel", "help" + patch -Np1 -i "$srcdir/unwanted-link-help.patch" + # do not treat warnings as errors sed -i 's/-Werror//' Makefile } diff --git a/core/iproute2/unwanted-link-help.patch b/core/iproute2/unwanted-link-help.patch new file mode 100644 index 000000000..8abe9e39d --- /dev/null +++ b/core/iproute2/unwanted-link-help.patch @@ -0,0 +1,17 @@ +diff -ru iproute2-3.10.0.orig/ip/iplink.c iproute2-3.10.0/ip/iplink.c +--- iproute2-3.10.0.orig/ip/iplink.c 2013-08-08 13:53:33.000000000 -0700 ++++ iproute2-3.10.0/ip/iplink.c 2013-08-08 13:55:03.179865309 -0700 +@@ -467,11 +467,11 @@ + addattr_l(&req->n, sizeof(*req), IFLA_NUM_RX_QUEUES, + &numrxqueues, 4); + } else { ++ if (matches(*argv, "help") == 0) ++ usage(); + if (strcmp(*argv, "dev") == 0) { + NEXT_ARG(); + } +- if (matches(*argv, "help") == 0) +- usage(); + if (*dev) + duparg2("dev", *argv); + *dev = *argv; diff --git a/core/iptables/PKGBUILD b/core/iptables/PKGBUILD index 5db343f22..0c65bd132 100644 --- a/core/iptables/PKGBUILD +++ b/core/iptables/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 197814 2013-10-30 11:03:50Z allan $ +# $Id: PKGBUILD 199764 2013-11-15 21:24:41Z ronald $ # Maintainer: Ronald van Haren # Contributor: Thomas Baechler pkgname=iptables -pkgver=1.4.19.1 +pkgver=1.4.20 pkgrel=1 pkgdesc='Linux kernel packet control tool' arch=('i686' 'x86_64') @@ -24,7 +24,7 @@ source=(http://www.netfilter.org/projects/iptables/files/${pkgname}-${pkgver}.ta iptables.service ip6tables.service iptables-flush) -sha1sums=('566ba23b73403b0e4b4511d35c40124717bba97b' +sha1sums=('7219b32657e9f794ff1b5a2476363c59f9c2175c' 'SKIP' '83b3363878e3660ce23b2ad325b53cbd6c796ecf' 'f085a71f467e4d7cb2cf094d9369b0bcc4bab6ec' diff --git a/core/isl/PKGBUILD b/core/isl/PKGBUILD index 49ce382ad..ffbd19bf2 100644 --- a/core/isl/PKGBUILD +++ b/core/isl/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 197163 2013-10-23 13:05:00Z allan $ +# $Id: PKGBUILD 201470 2013-12-12 15:38:37Z allan $ # Maintainer: Allan McRae pkgname=isl @@ -9,7 +9,7 @@ arch=('i686' 'x86_64') url="http://freecode.com/projects/isl" depends=('gmp') license=('MIT') -source=(ftp://ftp.linux.student.kuleuven.be/pub/people/skimo/isl/$pkgname-$pkgver.tar.bz2) +source=(http://isl.gforge.inria.fr/$pkgname-$pkgver.tar.bz2) md5sums=('27d381085ff1b5733c3e8a9b6ad24a4d') build() { diff --git a/core/kbd/PKGBUILD b/core/kbd/PKGBUILD index bce4b994c..f854388b9 100644 --- a/core/kbd/PKGBUILD +++ b/core/kbd/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 196308 2013-10-11 09:58:13Z tpowa $ +# $Id: PKGBUILD 199885 2013-11-18 07:11:38Z tpowa $ # Maintainer: Tobias Powalowski pkgname=kbd -pkgver=2.0.0 -pkgrel=2 +pkgver=2.0.1 +pkgrel=1 pkgdesc="Keytable files and keyboard utilities" arch=('i686' 'x86_64') url="http://www.kbd-project.org" @@ -12,17 +12,13 @@ depends=('glibc' 'pam') makedepends=('check') source=(ftp://ftp.altlinux.org/pub/people/legion/kbd/${pkgname}-${pkgver}.tar.gz 'fix-dvorak-es.patch' - 'fix-euro2.patch' - 'fix-alt_is_meta.patch' - 'merge-fullline_singleline.patch') + 'fix-euro2.patch') provides=('vlock') conflicts=('vlock') replaces=('vlock') -md5sums=('5ba259a0b2464196f6488a72070a3d60' +md5sums=('cc0ee9f2537d8636cae85a8c6541ed2e' '998957c4f815347dcc874c4d7555dc66' - 'd869200acbc0aab6a9cafa43cb140d4e' - '91de90cde763c7f704027c2837360098' - 'b21e24509ea9db206971ce8a02dfc46f') + 'd869200acbc0aab6a9cafa43cb140d4e') prepare() { cd ${srcdir}/${pkgname}-${pkgver} @@ -40,9 +36,6 @@ prepare() { patch -Np1 -i ../fix-dvorak-es.patch # fix euro2 #28213 patch -Np1 -i ../fix-euro2.patch - # fix #36689 - patch -Np1 -i ../fix-alt_is_meta.patch - patch -Np1 -i ../merge-fullline_singleline.patch } build() { diff --git a/core/kbd/fix-alt_is_meta.patch b/core/kbd/fix-alt_is_meta.patch deleted file mode 100644 index 865ea917b..000000000 --- a/core/kbd/fix-alt_is_meta.patch +++ /dev/null @@ -1,212 +0,0 @@ -From f6d17ec929f59cc65a8c5f8a4918c1fe89e2b85a Mon Sep 17 00:00:00 2001 -From: Alexey Gladkov -Date: Mon, 7 Oct 2013 17:48:57 +0400 -Subject: [PATCH] Fix alt_is_meta regression - -Signed-off-by: Alexey Gladkov ---- - src/libkeymap/kmap.c | 8 ++++---- - tests/Makefile.am | 8 ++++++-- - tests/alt-is-meta.in | 19 +++++++++++++++++++ - tests/alt-is-meta.map | 12 ++++++++++++ - tests/alt-is-meta.output | 42 ++++++++++++++++++++++++++++++++++++++++++ - tests/libkeymap-showmaps.c | 30 ++++++++++++++++++++++++++++++ - 6 files changed, 113 insertions(+), 6 deletions(-) - create mode 100755 tests/alt-is-meta.in - create mode 100644 tests/alt-is-meta.map - create mode 100644 tests/alt-is-meta.output - create mode 100644 tests/libkeymap-showmaps.c - -diff --git a/src/libkeymap/kmap.c b/src/libkeymap/kmap.c -index ca97ed5..c7945bc 100644 ---- a/src/libkeymap/kmap.c -+++ b/src/libkeymap/kmap.c -@@ -149,10 +149,10 @@ lk_add_key(struct lk_ctx *ctx, unsigned int k_table, unsigned int k_index, int k - int type = KTYP(keycode); - int val = KVAL(keycode); - -- if (alttable != k_table && !lk_key_exists(ctx, alttable, k_index) && -- (type == KT_LATIN || type == KT_LETTER) && val < 128) { -- if (lk_add_map(ctx, alttable) < 0) -- return -1; -+ if (alttable != k_table && lk_map_exists(ctx, alttable) && -+ !lk_key_exists(ctx, alttable, k_index) && -+ (type == KT_LATIN || type == KT_LETTER) && -+ val < 128) { - if (lk_add_key(ctx, alttable, k_index, K(KT_META, val)) < 0) - return -1; - } -diff --git a/tests/Makefile.am b/tests/Makefile.am -index e7d22c2..d9a9f61 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -7,10 +7,12 @@ AM_CFLAGS = $(CHECK_CFLAGS) - LDADD = $(top_builddir)/src/libkeymap/libkeymap.la $(CHECK_LIBS) - - EXTRA_DIST = \ -+ alt-is-meta.in \ - dumpkeys-bkeymap.in \ - dumpkeys-fulltable.in \ - dumpkeys-mktable.in \ - \ -+ alt-is-meta.map \ - charset-keymap0.map \ - dumpkeys.full.ruwin_cplk-UTF-8.map \ - dumpkeys.qwerty-layout.map \ -@@ -19,15 +21,16 @@ EXTRA_DIST = \ - keymap0.map keymap1.map keymap2.map keymap3.map keymap4.map keymap5.map keymap6.map \ - VoidSymbol.map \ - \ -+ alt-is-meta.output \ - dumpkeys.bkeymap.bin \ - dumpkeys.defkeymap.c - --check_SCRIPTS = dumpkeys-fulltable dumpkeys-mktable dumpkeys-bkeymap -+check_SCRIPTS = dumpkeys-fulltable dumpkeys-mktable dumpkeys-bkeymap alt-is-meta - check_PROGRAMS = libkeymap-init libkeymap-kmap libkeymap-keys libkeymap-parse \ - libkeymap-charset - - noinst_PROGRAMS = \ -- libkeymap-dumpkeys libkeymap-mktable libkeymap-bkeymap \ -+ libkeymap-dumpkeys libkeymap-mktable libkeymap-bkeymap libkeymap-showmaps \ - $(check_PROGRAMS) - - TESTS = $(check_PROGRAMS) $(check_SCRIPTS) -@@ -41,6 +44,7 @@ libkeymap_charset_SOURCES = libkeymap-charset.c - libkeymap_dumpkeys_SOURCES = libkeymap-dumpkeys.c - libkeymap_mktable_SOURCES = libkeymap-mktable.c - libkeymap_bkeymap_SOURCES = libkeymap-bkeymap.c -+libkeymap_showmaps_SOURCES = libkeymap-showmaps.c - - %: %.in - sed \ -diff --git a/tests/alt-is-meta.in b/tests/alt-is-meta.in -new file mode 100755 -index 0000000..ddd5ed8 ---- /dev/null -+++ b/tests/alt-is-meta.in -@@ -0,0 +1,19 @@ -+#!/bin/sh -efu -+ -+cwd="$(readlink -ev "${0%/*}")" -+ -+cd "$cwd" -+ -+rc=0 -+temp="$(mktemp "@BUILDDIR@/temp.XXXXXXXXX")" -+ -+./libkeymap-showmaps "@DATADIR@"/alt-is-meta.map > "$temp" || rc=$? -+cmp -s "@DATADIR@//alt-is-meta.output" "$temp" || rc=$? -+ -+if [ "$rc" != 0 ]; then -+ printf 'failed\n' -+else -+ rm -f -- "$temp" -+fi -+ -+exit $rc -diff --git a/tests/alt-is-meta.map b/tests/alt-is-meta.map -new file mode 100644 -index 0000000..fa182a5 ---- /dev/null -+++ b/tests/alt-is-meta.map -@@ -0,0 +1,12 @@ -+keymaps 0-9,12-13,16-20,22,24-25,28,32-41,44-45,48-52,54,56-57,60 -+alt_is_meta -+keycode 16 = +q Q backslash backslash Control_q \ -+ Control_q Control_backslash Control_backslash \ -+ Meta_q Meta_Q VoidSymbol VoidSymbol +Q \ -+ q VoidSymbol VoidSymbol VoidSymbol VoidSymbol \ -+ Meta_Q Meta_q VoidSymbol \ -+ +q Q backslash backslash Control_q \ -+ Control_q Control_backslash Control_backslash \ -+ Meta_q Meta_Q VoidSymbol VoidSymbol +Q \ -+ q VoidSymbol VoidSymbol VoidSymbol VoidSymbol \ -+ Meta_Q Meta_q VoidSymbol -diff --git a/tests/alt-is-meta.output b/tests/alt-is-meta.output -new file mode 100644 -index 0000000..25abb20 ---- /dev/null -+++ b/tests/alt-is-meta.output -@@ -0,0 +1,42 @@ -+keymap 000 -+keymap 001 -+keymap 002 -+keymap 003 -+keymap 004 -+keymap 005 -+keymap 006 -+keymap 007 -+keymap 008 -+keymap 009 -+keymap 012 -+keymap 013 -+keymap 016 -+keymap 017 -+keymap 018 -+keymap 019 -+keymap 020 -+keymap 022 -+keymap 024 -+keymap 025 -+keymap 028 -+keymap 032 -+keymap 033 -+keymap 034 -+keymap 035 -+keymap 036 -+keymap 037 -+keymap 038 -+keymap 039 -+keymap 040 -+keymap 041 -+keymap 044 -+keymap 045 -+keymap 048 -+keymap 049 -+keymap 050 -+keymap 051 -+keymap 052 -+keymap 054 -+keymap 056 -+keymap 057 -+keymap 060 -diff --git a/tests/libkeymap-showmaps.c b/tests/libkeymap-showmaps.c -new file mode 100644 -index 0000000..acbf9f1 ---- /dev/null -+++ b/tests/libkeymap-showmaps.c -@@ -0,0 +1,30 @@ -+#include -+#include -+#include -+#include -+ -+#include "contextP.h" -+ -+int main(int argc, char **argv) -+{ -+ int i; -+ struct lk_ctx *ctx; -+ lkfile_t f; -+ -+ ctx = lk_init(); -+ -+ f.pipe = 0; -+ strcpy(f.pathname, argv[1]); -+ f.fd = fopen( argv[1], "r"); -+ -+ lk_parse_keymap(ctx, &f); -+ -+ for (i = 0; i < ctx->keymap->total; i++) { -+ if (!lk_map_exists(ctx, i)) -+ continue; -+ printf("keymap %03d\n", i); -+ } -+ -+ lk_free(ctx); -+ return 0; -+} --- -1.7.3.3 - diff --git a/core/kbd/merge-fullline_singleline.patch b/core/kbd/merge-fullline_singleline.patch deleted file mode 100644 index cc2b2c3b0..000000000 --- a/core/kbd/merge-fullline_singleline.patch +++ /dev/null @@ -1,104 +0,0 @@ -From 301cb9f132017ec67cc00681ca3f7a25f0d24ca2 Mon Sep 17 00:00:00 2001 -From: Alexey Gladkov -Date: Mon, 7 Oct 2013 18:11:45 +0400 -Subject: [PATCH] parser: Merge fullline and singleline rule - -Signed-off-by: Alexey Gladkov ---- - src/libkeymap/parser.y | 59 ++++++++++++++++++++++++----------------------- - 1 files changed, 30 insertions(+), 29 deletions(-) - -diff --git a/src/libkeymap/parser.y b/src/libkeymap/parser.y -index 627494a..17d953a 100644 ---- a/src/libkeymap/parser.y -+++ b/src/libkeymap/parser.y -@@ -180,7 +180,6 @@ line : EOL - | usualstringsline - | usualcomposeline - | keymapline -- | fullline - | singleline - | strline - | compline -@@ -281,34 +280,7 @@ compline : COMPOSE compsym compsym TO compsym EOL - compsym : CCHAR { $$ = $1; } - | UNUMBER { $$ = $1 ^ 0xf000; } - ; --singleline : { -- ctx->mod = 0; -- } -- modifiers KEYCODE NUMBER EQUALS rvalue EOL -- { -- if (lk_add_key(ctx, ctx->mod, $4, $6) < 0) -- YYERROR; -- } -- | PLAIN KEYCODE NUMBER EQUALS rvalue EOL -- { -- if (lk_add_key(ctx, 0, $3, $5) < 0) -- YYERROR; -- } -- ; --modifiers : modifiers modifier -- | modifier -- ; --modifier : SHIFT { ctx->mod |= M_SHIFT; } -- | CONTROL { ctx->mod |= M_CTRL; } -- | ALT { ctx->mod |= M_ALT; } -- | ALTGR { ctx->mod |= M_ALTGR; } -- | SHIFTL { ctx->mod |= M_SHIFTL; } -- | SHIFTR { ctx->mod |= M_SHIFTR; } -- | CTRLL { ctx->mod |= M_CTRLL; } -- | CTRLR { ctx->mod |= M_CTRLR; } -- | CAPSSHIFT { ctx->mod |= M_CAPSSHIFT; } -- ; --fullline : KEYCODE NUMBER EQUALS rvalue0 EOL -+singleline : KEYCODE NUMBER EQUALS rvalue0 EOL - { - unsigned int j, i, keycode; - int *val; -@@ -367,6 +339,33 @@ fullline : KEYCODE NUMBER EQUALS rvalue0 EOL - } - } - } -+ -+ | modifiers KEYCODE NUMBER EQUALS rvalue EOL -+ { -+ if (lk_add_key(ctx, ctx->mod, $3, $5) < 0) -+ YYERROR; -+ ctx->mod = 0; -+ } -+ | PLAIN KEYCODE NUMBER EQUALS rvalue EOL -+ { -+ if (lk_add_key(ctx, 0, $3, $5) < 0) -+ YYERROR; -+ ctx->mod = 0; -+ } -+ ; -+modifiers : modifiers modifier -+ | modifier -+ ; -+modifier : SHIFT { ctx->mod |= M_SHIFT; } -+ | CONTROL { ctx->mod |= M_CTRL; } -+ | ALT { ctx->mod |= M_ALT; } -+ | ALTGR { ctx->mod |= M_ALTGR; } -+ | SHIFTL { ctx->mod |= M_SHIFTL; } -+ | SHIFTR { ctx->mod |= M_SHIFTR; } -+ | CTRLL { ctx->mod |= M_CTRLL; } -+ | CTRLR { ctx->mod |= M_CTRLR; } -+ | CAPSSHIFT { ctx->mod |= M_CAPSSHIFT; } -+ ; - ; - - rvalue0 : -@@ -393,6 +392,8 @@ lk_parse_keymap(struct lk_ctx *ctx, lkfile_t *f) - yyscan_t scanner; - int rc = -1; - -+ ctx->mod = 0; -+ - yylex_init(&scanner); - yylex_init_extra(ctx, &scanner); - --- -1.7.3.3 - diff --git a/core/krb5/CVE-2002-2443.patch b/core/krb5/CVE-2002-2443.patch deleted file mode 100644 index 3ef88155c..000000000 --- a/core/krb5/CVE-2002-2443.patch +++ /dev/null @@ -1,69 +0,0 @@ -From cf1a0c411b2668c57c41e9c4efd15ba17b6b322c Mon Sep 17 00:00:00 2001 -From: Tom Yu -Date: Fri, 3 May 2013 16:26:46 -0400 -Subject: [PATCH] Fix kpasswd UDP ping-pong [CVE-2002-2443] - -The kpasswd service provided by kadmind was vulnerable to a UDP -"ping-pong" attack [CVE-2002-2443]. Don't respond to packets unless -they pass some basic validation, and don't respond to our own error -packets. - -Some authors use CVE-1999-0103 to refer to the kpasswd UDP ping-pong -attack or UDP ping-pong attacks in general, but there is discussion -leading toward narrowing the definition of CVE-1999-0103 to the echo, -chargen, or other similar built-in inetd services. - -Thanks to Vincent Danen for alerting us to this issue. - -CVSSv2: AV:N/AC:L/Au:N/C:N/I:N/A:P/E:P/RL:O/RC:C - -ticket: 7637 (new) -target_version: 1.11.3 -tags: pullup ---- - src/kadmin/server/schpw.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/src/kadmin/server/schpw.c b/src/kadmin/server/schpw.c -index 15b0ab5..7f455d8 100644 ---- a/src/kadmin/server/schpw.c -+++ b/src/kadmin/server/schpw.c -@@ -52,7 +52,7 @@ - ret = KRB5KRB_AP_ERR_MODIFIED; - numresult = KRB5_KPASSWD_MALFORMED; - strlcpy(strresult, "Request was truncated", sizeof(strresult)); -- goto chpwfail; -+ goto bailout; - } - - ptr = req->data; -@@ -67,7 +67,7 @@ - numresult = KRB5_KPASSWD_MALFORMED; - strlcpy(strresult, "Request length was inconsistent", - sizeof(strresult)); -- goto chpwfail; -+ goto bailout; - } - - /* verify version number */ -@@ -80,7 +80,7 @@ - numresult = KRB5_KPASSWD_BAD_VERSION; - snprintf(strresult, sizeof(strresult), - "Request contained unknown protocol version number %d", vno); -- goto chpwfail; -+ goto bailout; - } - - /* read, check ap-req length */ -@@ -93,7 +93,7 @@ - numresult = KRB5_KPASSWD_MALFORMED; - strlcpy(strresult, "Request was truncated in AP-REQ", - sizeof(strresult)); -- goto chpwfail; -+ goto bailout; - } - - /* verify ap_req */ --- -1.8.1.6 - diff --git a/core/krb5/PKGBUILD b/core/krb5/PKGBUILD index e261a268e..a5b003f54 100644 --- a/core/krb5/PKGBUILD +++ b/core/krb5/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 188525 2013-06-15 07:57:25Z bpiotrowski $ +# $Id: PKGBUILD 199942 2013-11-20 02:11:51Z eric $ # Maintainer: Stéphane Gaudreault pkgname=krb5 -pkgver=1.11.3 +pkgver=1.11.4 pkgrel=1 pkgdesc="The Kerberos network authentication system" arch=('i686' 'x86_64') @@ -11,45 +11,39 @@ license=('custom') depends=('e2fsprogs' 'libldap' 'keyutils') makedepends=('perl') backup=('etc/krb5.conf' 'var/lib/krb5kdc/kdc.conf') -source=(http://web.mit.edu/kerberos/dist/${pkgname}/1.11/${pkgname}-${pkgver}-signed.tar - CVE-2002-2443.patch +options=('!emptydirs') +source=(http://web.mit.edu/kerberos/dist/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}-signed.tar krb5-config_LDFLAGS.patch krb5-kadmind.service krb5-kdc.service krb5-kpropd.service krb5-kpropd@.service krb5-kpropd.socket) -sha1sums=('df708a530a22ed09c7825742c108180319b10463' - '78ec307c2b5e32481a6da401013c428e0b867f36' +sha1sums=('a432489410efa3ff27ac0ae54f55edeede3ed63f' '09e478cddfb9d46d2981dd25ef96b8c3fd91e1aa' - 'a2a01e7077d9e89cda3457ea0e216debb3dc353c' - 'f5e4fa073e11b0fcb4e3098a5d58a4f791ec841e' - '614401dd4ac18e310153240bb26eb32ff1e8cf5b' - '023a8164f8ee7066ac814486a68bc605e79f6101' + '59bbc7e686cbb4bcefddf0f134d928d7bd5e7722' + '2ef2476a8673b3b702e829d8f451c839c2273b02' + '74d66aefd291f22dd80799f0437cc03d83083ed5' + '6787c6ce2783b3f980c423e2dd4abf5236af670b' 'f3677d30dbbd7106c581379c2c6ebb1bf7738912') -options=('!emptydirs') - -build() { - tar zxvf ${pkgname}-${pkgver}.tar.gz - cd "${srcdir}/${pkgname}-${pkgver}/src" +prepare() { + tar -xf ${pkgname}-${pkgver}.tar.gz + cd ${pkgname}-${pkgver}/src # cf https://bugs.gentoo.org/show_bug.cgi?id=448778 patch -Np2 -i "${srcdir}"/krb5-config_LDFLAGS.patch - # Fix kpasswd UDP ping-pong (CVE-2002-2443) - #patch -Np2 -i "${srcdir}"/CVE-2002-2443.patch - - rm lib/krb5/krb/deltat.c - # FS#25384 sed -i "/KRB5ROOT=/s/\/local//" util/ac_check_krb5.m4 +} +build() { + cd ${pkgname}-${pkgver}/src export CFLAGS+=" -fPIC -fno-strict-aliasing -fstack-protector-all" export CPPFLAGS+=" -I/usr/include/et" ./configure --prefix=/usr \ --sbindir=/usr/bin \ --sysconfdir=/etc \ - --mandir=/usr/share/man \ --localstatedir=/var/lib \ --enable-shared \ --with-system-et \ @@ -63,7 +57,7 @@ build() { } package() { - cd "${srcdir}/${pkgname}-${pkgver}/src" + cd ${pkgname}-${pkgver}/src make DESTDIR="${pkgdir}" EXAMPLEDIR=/usr/share/doc/${pkgname}/examples install # Fix FS#29889 diff --git a/core/krb5/krb5-1.10.1-gcc47.patch b/core/krb5/krb5-1.10.1-gcc47.patch deleted file mode 100644 index ffd01c2a3..000000000 --- a/core/krb5/krb5-1.10.1-gcc47.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -Naur krb5-1.10.1.ori/src/lib/krb5/krb/x-deltat.y krb5-1.10.1/src/lib/krb5/krb/x-deltat.y ---- krb5-1.10.1.ori/src/lib/krb5/krb/x-deltat.y 2011-09-06 07:34:32.000000000 -0400 -+++ krb5-1.10.1/src/lib/krb5/krb/x-deltat.y 2012-03-24 13:15:11.543551318 -0400 -@@ -44,6 +44,7 @@ - #ifdef __GNUC__ - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wuninitialized" -+#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" - #endif - - #include diff --git a/core/krb5/krb5-kadmind.service b/core/krb5/krb5-kadmind.service index f3836c898..4819e0df4 100644 --- a/core/krb5/krb5-kadmind.service +++ b/core/krb5/krb5-kadmind.service @@ -2,7 +2,7 @@ Description=Kerberos 5 administration server [Service] -ExecStart=/usr/sbin/kadmind -nofork +ExecStart=/usr/bin/kadmind -nofork [Install] WantedBy=multi-user.target diff --git a/core/krb5/krb5-kdc.service b/core/krb5/krb5-kdc.service index 6ec93bb72..4918f6000 100644 --- a/core/krb5/krb5-kdc.service +++ b/core/krb5/krb5-kdc.service @@ -2,7 +2,7 @@ Description=Kerberos 5 KDC [Service] -ExecStart=/usr/sbin/krb5kdc -n +ExecStart=/usr/bin/krb5kdc -n Restart=always [Install] diff --git a/core/krb5/krb5-kpropd.service b/core/krb5/krb5-kpropd.service index a7c5b579d..c6c322431 100644 --- a/core/krb5/krb5-kpropd.service +++ b/core/krb5/krb5-kpropd.service @@ -2,7 +2,7 @@ Description=Kerberos 5 propagation server [Service] -ExecStart=/usr/sbin/kpropd -S +ExecStart=/usr/bin/kpropd -S [Install] WantedBy=multi-user.target diff --git a/core/krb5/krb5-kpropd@.service b/core/krb5/krb5-kpropd@.service index 46f7e3639..989270f12 100644 --- a/core/krb5/krb5-kpropd@.service +++ b/core/krb5/krb5-kpropd@.service @@ -3,6 +3,6 @@ Description=Kerberos 5 propagation server Conflicts=krb5-kpropd.service [Service] -ExecStart=/usr/sbin/kpropd +ExecStart=/usr/bin/kpropd StandardInput=socket StandardError=syslog diff --git a/core/libarchive/PKGBUILD b/core/libarchive/PKGBUILD index cedff1878..3fd599d24 100644 --- a/core/libarchive/PKGBUILD +++ b/core/libarchive/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 197256 2013-10-24 19:47:22Z dreisner $ +# $Id: PKGBUILD 201474 2013-12-12 15:40:49Z dreisner $ # Maintainer: Dan McGee pkgname=libarchive @@ -17,7 +17,7 @@ source=("http://libarchive.org/downloads/$pkgname-$pkgver.tar.gz" 'libarchive-3.1.2-acl.patch') md5sums=('efad5a503f66329bb9d2f4308b5de98a' 'fda89c145bbcd793a96b06b463ef6a72' - '6432f3360abd5645461a9c825c75b307' + '6a63086b1a2e540d74ca6dc240dbd021' 'a5c995661c62429ceff2c23ea322393b') build() { diff --git a/core/libnl/PKGBUILD b/core/libnl/PKGBUILD index 81b1a7436..54273dbe9 100644 --- a/core/libnl/PKGBUILD +++ b/core/libnl/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 197824 2013-10-30 11:05:01Z allan $ +# $Id: PKGBUILD 200720 2013-12-03 10:31:08Z thomas $ # Maintainer: Thomas Bächler pkgname=libnl -pkgver=3.2.22 +pkgver=3.2.23 pkgrel=1 pkgdesc="Library for applications dealing with netlink sockets" arch=(i686 x86_64) @@ -11,10 +11,10 @@ license=(GPL) depends=(glibc) backup=(etc/libnl/classid etc/libnl/pktloc) source=("$url/files/$pkgname-$pkgver.tar.gz") -sha256sums=('c7c5f267dfeae0c1a530bf96b71fb7c8dbbb07d54beef49b6712d8d6166f629b') +sha256sums=('8cc2cda9aa8cbbad384b9bb1ba0f6777ed9bf65e1cc3170d8c2ba5b3ee12f2b3') build() { - cd "$srcdir/$pkgname-$pkgver" + cd "$srcdir"/$pkgname-$pkgver ./configure \ --prefix=/usr \ --sysconfdir=/etc \ @@ -24,6 +24,6 @@ build() { } package() { - cd "$srcdir/$pkgname-$pkgver" + cd "$srcdir"/$pkgname-$pkgver make DESTDIR="$pkgdir" install } diff --git a/core/libpcap/PKGBUILD b/core/libpcap/PKGBUILD index 2e200ea46..4a6ce828c 100644 --- a/core/libpcap/PKGBUILD +++ b/core/libpcap/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 185218 2013-05-12 09:08:12Z thomas $ +# $Id: PKGBUILD 200644 2013-11-30 17:42:00Z thomas $ # Maintainer: Thomas Bächler pkgname=libpcap -pkgver=1.4.0 +pkgver=1.5.1 pkgrel=1 pkgdesc="A system-independent interface for user-level packet capture" arch=('i686' 'x86_64') @@ -11,7 +11,7 @@ license=('BSD') depends=('glibc' 'libnl' 'sh' 'libusbx') makedepends=('flex') source=(http://www.tcpdump.org/release/libpcap-${pkgver}.tar.gz{,.sig}) -sha256sums=('7c6a2a4f71e8ab09804e6b4fb3aff998c5583108ac42c0e2967eee8e1dbc7406' +sha256sums=('259db4fe1e9f0b6b9c43a057ec5916dec7d0a821b00d6d6c4dff7db2445fa7e4' 'SKIP') build() { @@ -24,14 +24,12 @@ package() { cd ${srcdir}/${pkgname}-${pkgver} install -d -m755 ${pkgdir}/usr/bin make DESTDIR=${pkgdir} install - # remove static library - rm -rf ${pkgdir}/usr/lib/libpcap.a # backwards compatibility, programs often look for net/bpf.h mkdir -p ${pkgdir}/usr/include/net cd ${pkgdir}/usr/include/net ln -s ../pcap-bpf.h bpf.h - #install the license + # install the license install -D -m644 ${srcdir}/$pkgname-$pkgver/LICENSE ${pkgdir}/usr/share/licenses/$pkgname/LICENSE } diff --git a/core/libpipeline/PKGBUILD b/core/libpipeline/PKGBUILD index f2f2fe2c7..0cb892648 100644 --- a/core/libpipeline/PKGBUILD +++ b/core/libpipeline/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 197825 2013-10-30 11:05:08Z allan $ +# $Id: PKGBUILD 202643 2013-12-23 07:54:41Z andyrtr $ # Maintainer: Andreas Radke pkgname=libpipeline -pkgver=1.2.4 +pkgver=1.2.6 pkgrel=1 pkgdesc="a C library for manipulating pipelines of subprocesses in a flexible and convenient way" arch=('i686' 'x86_64') @@ -10,21 +10,21 @@ url="http://libpipeline.nongnu.org/" license=('GPL') depends=('glibc') source=(http://download.savannah.gnu.org/releases/libpipeline/$pkgname-$pkgver.tar.gz{,.sig}) -md5sums=('a98b07f6f487fa268d1ebd99806b85ff' +md5sums=('6d1d51a5dc102af41e0d269d2a31e6f9' 'SKIP') build() { - cd "$srcdir/$pkgname-$pkgver" + cd $pkgname-$pkgver ./configure --prefix=/usr make } check() { - cd "$srcdir/$pkgname-$pkgver" - make -k check + cd $pkgname-$pkgver + make check } package() { - cd "$srcdir/$pkgname-$pkgver" + cd $pkgname-$pkgver make DESTDIR="$pkgdir/" install } diff --git a/core/lvm2/PKGBUILD b/core/lvm2/PKGBUILD index facd7a94e..e31f8a81e 100644 --- a/core/lvm2/PKGBUILD +++ b/core/lvm2/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 197750 2013-10-29 09:58:36Z thomas $ +# $Id: PKGBUILD 199802 2013-11-16 17:53:26Z thomas $ # Maintainer: Eric Bélanger # Maintainer: Thomas Bächler pkgbase=lvm2 pkgname=('lvm2' 'device-mapper') -pkgver=2.02.103 -pkgrel=2 +pkgver=2.02.104 +pkgrel=1 arch=('i686' 'x86_64') url="http://sourceware.org/lvm2/" license=('GPL2' 'LGPL2.1') @@ -22,7 +22,7 @@ source=(ftp://sources.redhat.com/pub/lvm2/LVM2.${pkgver}.tgz{,.asc} lvm-monitoring.service lvmetad.service lvmetad.socket) -sha1sums=('1194babd8d3cd5a9620bec1fe98a3be060465daf' +sha1sums=('4c296453e10deafe02004fde40075cdb3792eeb2' 'SKIP' '76e83966d1bc84f9a1e30bcaff84b8b8fefbca0f' 'ff0fdf0a3005a41acd4b36865056109effc3474b' diff --git a/core/make/PKGBUILD b/core/make/PKGBUILD index 9b88e89d9..16f303685 100644 --- a/core/make/PKGBUILD +++ b/core/make/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 196827 2013-10-20 11:42:36Z allan $ +# $Id: PKGBUILD 201555 2013-12-15 06:41:30Z allan $ # Maintainer: Allan McRae # Contributor: judd pkgname=make pkgver=4.0 -pkgrel=1 +pkgrel=2 pkgdesc="GNU make utility to maintain groups of programs" arch=('i686' 'x86_64') url="http://www.gnu.org/software/make" @@ -12,9 +12,18 @@ license=('GPL3') groups=('base-devel') depends=('glibc' 'sh' 'guile') install=$pkgname.install -source=(ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.bz2{,.sig}) +source=(ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.bz2{,.sig} + make-4.0-char-cast.patch) md5sums=('571d470a7647b455e3af3f92d79f1c18' - 'SKIP') + 'SKIP' + '1840aae18e1c0d1c52563020ef3ff5f3') + +prepare() { + cd ${srcdir}/${pkgname}-${pkgver} + + # http://git.savannah.gnu.org/cgit/make.git/commit/?id=9d58570c + patch -p1 -i ${srcdir}/make-4.0-char-cast.patch +} build() { cd ${srcdir}/${pkgname}-${pkgver} diff --git a/core/make/make-4.0-char-cast.patch b/core/make/make-4.0-char-cast.patch new file mode 100644 index 000000000..c55490ffc --- /dev/null +++ b/core/make/make-4.0-char-cast.patch @@ -0,0 +1,43 @@ +From 9d58570c77240fed53d1f88217877f8e778f4bb2 Mon Sep 17 00:00:00 2001 +From: Paul Smith +Date: Sat, 26 Oct 2013 04:10:17 +0000 +Subject: * makeint.h (STOP_SET): [SV 40371] Cast to unsigned char. + +* tests/scripts/misc/utf8: Test variable names with characters >127. +Fix suggested by Robert Bogomip +--- +diff --git a/makeint.h b/makeint.h +index 77f51e0..c591427 100644 +--- a/makeint.h ++++ b/makeint.h +@@ -415,7 +415,7 @@ extern int unixy_shell; + # define MAP_VMSCOMMA 0x0000 + #endif + +-#define STOP_SET(_v,_m) ANY_SET (stopchar_map[(int)(_v)],(_m)) ++#define STOP_SET(_v,_m) ANY_SET (stopchar_map[(unsigned char)(_v)],(_m)) + + #if defined(HAVE_SYS_RESOURCE_H) && defined(HAVE_GETRLIMIT) && defined(HAVE_SETRLIMIT) + # define SET_STACK_SIZE +diff --git a/tests/scripts/misc/utf8 b/tests/scripts/misc/utf8 +new file mode 100644 +index 0000000..2adcd07 +--- a/dev/null ++++ b/tests/scripts/misc/utf8 +@@ -0,0 +1,14 @@ ++# -*-perl-*- ++$description = "Test utf8 handling."; ++ ++$details = ""; ++ ++# Variable names containing UTF8 characters ++run_make_test(" ++\xe2\x96\xaa := hello ++\$(info \$(\xe2\x96\xaa)) ++all: ++", ++ '', "hello\n#MAKE#: Nothing to be done for 'all'."); ++ ++1; +-- +cgit v0.9.0.2 diff --git a/core/mdadm/PKGBUILD b/core/mdadm/PKGBUILD index 1d862c439..323154a5d 100644 --- a/core/mdadm/PKGBUILD +++ b/core/mdadm/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 194030 2013-09-10 10:15:14Z tpowa $ +# $Id: PKGBUILD 199470 2013-11-13 11:08:13Z tpowa $ # Maintainer: Tobias Powalowski # Contributor: Judd Vinet pkgname=mdadm pkgver=3.3 -pkgrel=1 +pkgrel=2 pkgdesc="A tool for managing/monitoring Linux md device arrays, also known as Software RAID" arch=(i686 x86_64) license=('GPL') @@ -44,6 +44,7 @@ build() { package() { cd $srcdir/$pkgname-$pkgver make INSTALL=/usr/bin/install BINDIR=/usr/bin DESTDIR=$pkgdir install + make SYSTEMD_DIR=$pkgdir/usr/lib/systemd/system install-systemd install -D -m755 mdassemble $pkgdir/usr/bin/mdassemble install -D -m644 ../mdadm.conf $pkgdir/etc/mdadm.conf install -D -m644 ../mdadm_install $pkgdir/usr/lib/initcpio/install/mdadm diff --git a/core/mpfr/PKGBUILD b/core/mpfr/PKGBUILD index 8ad0ae2c4..3e086c971 100644 --- a/core/mpfr/PKGBUILD +++ b/core/mpfr/PKGBUILD @@ -1,13 +1,13 @@ -# $Id: PKGBUILD 197157 2013-10-23 13:04:22Z allan $ +# $Id: PKGBUILD 201554 2013-12-15 06:41:28Z allan $ # Maintainer: Allan McRae # Contributor: damir pkgname=mpfr _pkgver=3.1.2 -_patchlevel=p3 +_patchlevel=p5 pkgver=${_pkgver}.${_patchlevel} #pkgver=${_pkgver} -pkgrel=2 +pkgrel=1 pkgdesc="Multiple-precision floating-point library" arch=('i686' 'x86_64') url="http://www.mpfr.org/" @@ -18,7 +18,7 @@ source=(http://www.mpfr.org/mpfr-current/mpfr-${_pkgver}.tar.xz{,.asc} mpfr-${_pkgver}-${_patchlevel}.patch) md5sums=('e3d203d188b8fe60bb6578dd3152e05c' 'SKIP' - 'd22c975afc8599b06dd0d6c1128ac078') + 'e19c1d8db2cde4991ab52c8c20d16185') build() { cd "${srcdir}/${pkgname}-${_pkgver}" diff --git a/core/mpfr/mpfr-3.1.2-p3.patch b/core/mpfr/mpfr-3.1.2-p3.patch deleted file mode 100644 index 0339944b6..000000000 --- a/core/mpfr/mpfr-3.1.2-p3.patch +++ /dev/null @@ -1,779 +0,0 @@ -diff -Naurd mpfr-3.1.2-a/PATCHES mpfr-3.1.2-b/PATCHES ---- mpfr-3.1.2-a/PATCHES 2013-09-26 10:52:52.000000000 +0000 -+++ mpfr-3.1.2-b/PATCHES 2013-09-26 10:52:52.000000000 +0000 -@@ -0,0 +1 @@ -+exp_2 -diff -Naurd mpfr-3.1.2-a/VERSION mpfr-3.1.2-b/VERSION ---- mpfr-3.1.2-a/VERSION 2013-03-13 15:37:28.000000000 +0000 -+++ mpfr-3.1.2-b/VERSION 2013-09-26 10:52:52.000000000 +0000 -@@ -1 +1 @@ --3.1.2 -+3.1.2-p1 -diff -Naurd mpfr-3.1.2-a/src/exp_2.c mpfr-3.1.2-b/src/exp_2.c ---- mpfr-3.1.2-a/src/exp_2.c 2013-03-13 15:37:28.000000000 +0000 -+++ mpfr-3.1.2-b/src/exp_2.c 2013-09-26 10:52:52.000000000 +0000 -@@ -204,7 +204,7 @@ - for (k = 0; k < K; k++) - { - mpz_mul (ss, ss, ss); -- exps <<= 1; -+ exps *= 2; - exps += mpz_normalize (ss, ss, q); - } - mpfr_set_z (s, ss, MPFR_RNDN); -diff -Naurd mpfr-3.1.2-a/src/mpfr.h mpfr-3.1.2-b/src/mpfr.h ---- mpfr-3.1.2-a/src/mpfr.h 2013-03-13 15:37:37.000000000 +0000 -+++ mpfr-3.1.2-b/src/mpfr.h 2013-09-26 10:52:52.000000000 +0000 -@@ -27,7 +27,7 @@ - #define MPFR_VERSION_MAJOR 3 - #define MPFR_VERSION_MINOR 1 - #define MPFR_VERSION_PATCHLEVEL 2 --#define MPFR_VERSION_STRING "3.1.2" -+#define MPFR_VERSION_STRING "3.1.2-p1" - - /* Macros dealing with MPFR VERSION */ - #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) -diff -Naurd mpfr-3.1.2-a/src/version.c mpfr-3.1.2-b/src/version.c ---- mpfr-3.1.2-a/src/version.c 2013-03-13 15:37:34.000000000 +0000 -+++ mpfr-3.1.2-b/src/version.c 2013-09-26 10:52:52.000000000 +0000 -@@ -25,5 +25,5 @@ - const char * - mpfr_get_version (void) - { -- return "3.1.2"; -+ return "3.1.2-p1"; - } -diff -Naurd mpfr-3.1.2-a/PATCHES mpfr-3.1.2-b/PATCHES ---- mpfr-3.1.2-a/PATCHES 2013-09-26 10:56:55.000000000 +0000 -+++ mpfr-3.1.2-b/PATCHES 2013-09-26 10:56:55.000000000 +0000 -@@ -0,0 +1 @@ -+fits-smallneg -diff -Naurd mpfr-3.1.2-a/VERSION mpfr-3.1.2-b/VERSION ---- mpfr-3.1.2-a/VERSION 2013-09-26 10:52:52.000000000 +0000 -+++ mpfr-3.1.2-b/VERSION 2013-09-26 10:56:55.000000000 +0000 -@@ -1 +1 @@ --3.1.2-p1 -+3.1.2-p2 -diff -Naurd mpfr-3.1.2-a/src/fits_u.h mpfr-3.1.2-b/src/fits_u.h ---- mpfr-3.1.2-a/src/fits_u.h 2013-03-13 15:37:35.000000000 +0000 -+++ mpfr-3.1.2-b/src/fits_u.h 2013-09-26 10:56:55.000000000 +0000 -@@ -32,17 +32,20 @@ - int res; - - if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (f))) -- /* Zero always fit */ -- return MPFR_IS_ZERO (f) ? 1 : 0; -- else if (MPFR_IS_NEG (f)) -- /* Negative numbers don't fit */ -- return 0; -- /* now it fits if -- (a) f <= MAXIMUM -- (b) round(f, prec(slong), rnd) <= MAXIMUM */ -+ return MPFR_IS_ZERO (f) ? 1 : 0; /* Zero always fits */ - - e = MPFR_GET_EXP (f); - -+ if (MPFR_IS_NEG (f)) -+ return e >= 1 ? 0 /* f <= -1 does not fit */ -+ : rnd != MPFR_RNDN ? MPFR_IS_LIKE_RNDU (rnd, -1) /* directed mode */ -+ : e < 0 ? 1 /* f > -1/2 fits in MPFR_RNDN */ -+ : mpfr_powerof2_raw(f); /* -1/2 fits, -1 < f < -1/2 don't */ -+ -+ /* Now it fits if -+ (a) f <= MAXIMUM -+ (b) round(f, prec(slong), rnd) <= MAXIMUM */ -+ - /* first compute prec(MAXIMUM); fits in an int */ - for (s = MAXIMUM, prec = 0; s != 0; s /= 2, prec ++); - -diff -Naurd mpfr-3.1.2-a/src/fits_uintmax.c mpfr-3.1.2-b/src/fits_uintmax.c ---- mpfr-3.1.2-a/src/fits_uintmax.c 2013-03-13 15:37:33.000000000 +0000 -+++ mpfr-3.1.2-b/src/fits_uintmax.c 2013-09-26 10:56:55.000000000 +0000 -@@ -27,51 +27,19 @@ - #include "mpfr-intmax.h" - #include "mpfr-impl.h" - --#ifdef _MPFR_H_HAVE_INTMAX_T -- --/* We can't use fits_u.h <= mpfr_cmp_ui */ --int --mpfr_fits_uintmax_p (mpfr_srcptr f, mpfr_rnd_t rnd) --{ -- mpfr_exp_t e; -- int prec; -- uintmax_t s; -- mpfr_t x; -- int res; -- -- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (f))) -- /* Zero always fit */ -- return MPFR_IS_ZERO (f) ? 1 : 0; -- else if (MPFR_IS_NEG (f)) -- /* Negative numbers don't fit */ -- return 0; -- /* now it fits if -- (a) f <= MAXIMUM -- (b) round(f, prec(slong), rnd) <= MAXIMUM */ -- -- e = MPFR_GET_EXP (f); -- -- /* first compute prec(MAXIMUM); fits in an int */ -- for (s = MPFR_UINTMAX_MAX, prec = 0; s != 0; s /= 2, prec ++); -- -- /* MAXIMUM needs prec bits, i.e. MAXIMUM = 2^prec - 1 */ -- -- /* if e <= prec - 1, then f < 2^(prec-1) < MAXIMUM */ -- if (e <= prec - 1) -- return 1; -+/* Note: though mpfr-impl.h is included in fits_u.h, we also include it -+ above so that it gets included even when _MPFR_H_HAVE_INTMAX_T is not -+ defined; this is necessary to avoid an empty translation unit, which -+ is forbidden by ISO C. Without this, a failing test can be reproduced -+ by creating an invalid stdint.h somewhere in the default include path -+ and by compiling MPFR with "gcc -ansi -pedantic-errors". */ - -- /* if e >= prec + 1, then f >= 2^prec > MAXIMUM */ -- if (e >= prec + 1) -- return 0; -+#ifdef _MPFR_H_HAVE_INTMAX_T - -- MPFR_ASSERTD (e == prec); -+#define FUNCTION mpfr_fits_uintmax_p -+#define MAXIMUM MPFR_UINTMAX_MAX -+#define TYPE uintmax_t - -- /* hard case: first round to prec bits, then check */ -- mpfr_init2 (x, prec); -- mpfr_set (x, f, rnd); -- res = MPFR_GET_EXP (x) == e; -- mpfr_clear (x); -- return res; --} -+#include "fits_u.h" - - #endif -diff -Naurd mpfr-3.1.2-a/src/mpfr.h mpfr-3.1.2-b/src/mpfr.h ---- mpfr-3.1.2-a/src/mpfr.h 2013-09-26 10:52:52.000000000 +0000 -+++ mpfr-3.1.2-b/src/mpfr.h 2013-09-26 10:56:55.000000000 +0000 -@@ -27,7 +27,7 @@ - #define MPFR_VERSION_MAJOR 3 - #define MPFR_VERSION_MINOR 1 - #define MPFR_VERSION_PATCHLEVEL 2 --#define MPFR_VERSION_STRING "3.1.2-p1" -+#define MPFR_VERSION_STRING "3.1.2-p2" - - /* Macros dealing with MPFR VERSION */ - #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) -diff -Naurd mpfr-3.1.2-a/src/version.c mpfr-3.1.2-b/src/version.c ---- mpfr-3.1.2-a/src/version.c 2013-09-26 10:52:52.000000000 +0000 -+++ mpfr-3.1.2-b/src/version.c 2013-09-26 10:56:55.000000000 +0000 -@@ -25,5 +25,5 @@ - const char * - mpfr_get_version (void) - { -- return "3.1.2-p1"; -+ return "3.1.2-p2"; - } -diff -Naurd mpfr-3.1.2-a/tests/tfits.c mpfr-3.1.2-b/tests/tfits.c ---- mpfr-3.1.2-a/tests/tfits.c 2013-03-13 15:37:45.000000000 +0000 -+++ mpfr-3.1.2-b/tests/tfits.c 2013-09-26 10:56:55.000000000 +0000 -@@ -33,155 +33,176 @@ - #include "mpfr-intmax.h" - #include "mpfr-test.h" - --#define ERROR1 { printf("Initial error for x="); mpfr_dump(x); exit(1); } --#define ERROR2 { printf("Error for x="); mpfr_dump(x); exit(1); } -+#define ERROR1(N) \ -+ do \ -+ { \ -+ printf("Error %d for rnd = %s and x = ", N, \ -+ mpfr_print_rnd_mode ((mpfr_rnd_t) r)); \ -+ mpfr_dump(x); \ -+ exit(1); \ -+ } \ -+ while (0) - - static void check_intmax (void); - - int - main (void) - { -- mpfr_t x; -+ mpfr_t x, y; -+ int i, r; - - tests_start_mpfr (); - - mpfr_init2 (x, 256); -+ mpfr_init2 (y, 8); - -- /* Check NAN */ -- mpfr_set_nan (x); -- if (mpfr_fits_ulong_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_slong_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_uint_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_sint_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_ushort_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_sshort_p (x, MPFR_RNDN)) -- ERROR1; -+ RND_LOOP (r) -+ { - -- /* Check INF */ -- mpfr_set_inf (x, 1); -- if (mpfr_fits_ulong_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_slong_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_uint_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_sint_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_ushort_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_sshort_p (x, MPFR_RNDN)) -- ERROR1; -+ /* Check NAN */ -+ mpfr_set_nan (x); -+ if (mpfr_fits_ulong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (1); -+ if (mpfr_fits_slong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (2); -+ if (mpfr_fits_uint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (3); -+ if (mpfr_fits_sint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (4); -+ if (mpfr_fits_ushort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (5); -+ if (mpfr_fits_sshort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (6); - -- /* Check Zero */ -- MPFR_SET_ZERO (x); -- if (!mpfr_fits_ulong_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_slong_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_uint_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_sint_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_ushort_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_sshort_p (x, MPFR_RNDN)) -- ERROR2; -+ /* Check INF */ -+ mpfr_set_inf (x, 1); -+ if (mpfr_fits_ulong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (7); -+ if (mpfr_fits_slong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (8); -+ if (mpfr_fits_uint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (9); -+ if (mpfr_fits_sint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (10); -+ if (mpfr_fits_ushort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (11); -+ if (mpfr_fits_sshort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (12); - -- /* Check small op */ -- mpfr_set_str1 (x, "1@-1"); -- if (!mpfr_fits_ulong_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_slong_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_uint_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_sint_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_ushort_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_sshort_p (x, MPFR_RNDN)) -- ERROR2; -+ /* Check Zero */ -+ MPFR_SET_ZERO (x); -+ if (!mpfr_fits_ulong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (13); -+ if (!mpfr_fits_slong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (14); -+ if (!mpfr_fits_uint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (15); -+ if (!mpfr_fits_sint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (16); -+ if (!mpfr_fits_ushort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (17); -+ if (!mpfr_fits_sshort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (18); - -- /* Check 17 */ -- mpfr_set_ui (x, 17, MPFR_RNDN); -- if (!mpfr_fits_ulong_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_slong_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_uint_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_sint_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_ushort_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_sshort_p (x, MPFR_RNDN)) -- ERROR2; -+ /* Check small positive op */ -+ mpfr_set_str1 (x, "1@-1"); -+ if (!mpfr_fits_ulong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (19); -+ if (!mpfr_fits_slong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (20); -+ if (!mpfr_fits_uint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (21); -+ if (!mpfr_fits_sint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (22); -+ if (!mpfr_fits_ushort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (23); -+ if (!mpfr_fits_sshort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (24); - -- /* Check all other values */ -- mpfr_set_ui (x, ULONG_MAX, MPFR_RNDN); -- mpfr_mul_2exp (x, x, 1, MPFR_RNDN); -- if (mpfr_fits_ulong_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_slong_p (x, MPFR_RNDN)) -- ERROR1; -- mpfr_mul_2exp (x, x, 40, MPFR_RNDN); -- if (mpfr_fits_ulong_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_uint_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_sint_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_ushort_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_sshort_p (x, MPFR_RNDN)) -- ERROR1; -+ /* Check 17 */ -+ mpfr_set_ui (x, 17, MPFR_RNDN); -+ if (!mpfr_fits_ulong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (25); -+ if (!mpfr_fits_slong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (26); -+ if (!mpfr_fits_uint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (27); -+ if (!mpfr_fits_sint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (28); -+ if (!mpfr_fits_ushort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (29); -+ if (!mpfr_fits_sshort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (30); - -- mpfr_set_ui (x, ULONG_MAX, MPFR_RNDN); -- if (!mpfr_fits_ulong_p (x, MPFR_RNDN)) -- ERROR2; -- mpfr_set_ui (x, LONG_MAX, MPFR_RNDN); -- if (!mpfr_fits_slong_p (x, MPFR_RNDN)) -- ERROR2; -- mpfr_set_ui (x, UINT_MAX, MPFR_RNDN); -- if (!mpfr_fits_uint_p (x, MPFR_RNDN)) -- ERROR2; -- mpfr_set_ui (x, INT_MAX, MPFR_RNDN); -- if (!mpfr_fits_sint_p (x, MPFR_RNDN)) -- ERROR2; -- mpfr_set_ui (x, USHRT_MAX, MPFR_RNDN); -- if (!mpfr_fits_ushort_p (x, MPFR_RNDN)) -- ERROR2; -- mpfr_set_ui (x, SHRT_MAX, MPFR_RNDN); -- if (!mpfr_fits_sshort_p (x, MPFR_RNDN)) -- ERROR2; -+ /* Check all other values */ -+ mpfr_set_ui (x, ULONG_MAX, MPFR_RNDN); -+ mpfr_mul_2exp (x, x, 1, MPFR_RNDN); -+ if (mpfr_fits_ulong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (31); -+ if (mpfr_fits_slong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (32); -+ mpfr_mul_2exp (x, x, 40, MPFR_RNDN); -+ if (mpfr_fits_ulong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (33); -+ if (mpfr_fits_uint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (34); -+ if (mpfr_fits_sint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (35); -+ if (mpfr_fits_ushort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (36); -+ if (mpfr_fits_sshort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (37); - -- mpfr_set_si (x, 1, MPFR_RNDN); -- if (!mpfr_fits_sint_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_sshort_p (x, MPFR_RNDN)) -- ERROR2; -+ mpfr_set_ui (x, ULONG_MAX, MPFR_RNDN); -+ if (!mpfr_fits_ulong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (38); -+ mpfr_set_ui (x, LONG_MAX, MPFR_RNDN); -+ if (!mpfr_fits_slong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (39); -+ mpfr_set_ui (x, UINT_MAX, MPFR_RNDN); -+ if (!mpfr_fits_uint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (40); -+ mpfr_set_ui (x, INT_MAX, MPFR_RNDN); -+ if (!mpfr_fits_sint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (41); -+ mpfr_set_ui (x, USHRT_MAX, MPFR_RNDN); -+ if (!mpfr_fits_ushort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (42); -+ mpfr_set_ui (x, SHRT_MAX, MPFR_RNDN); -+ if (!mpfr_fits_sshort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (43); - -- /* Check negative value */ -- mpfr_set_si (x, -1, MPFR_RNDN); -- if (!mpfr_fits_sint_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_sshort_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_slong_p (x, MPFR_RNDN)) -- ERROR2; -- if (mpfr_fits_uint_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_ushort_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_ulong_p (x, MPFR_RNDN)) -- ERROR1; -+ mpfr_set_si (x, 1, MPFR_RNDN); -+ if (!mpfr_fits_sint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (44); -+ if (!mpfr_fits_sshort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (45); -+ -+ /* Check negative op */ -+ for (i = 1; i <= 4; i++) -+ { -+ int inv; -+ -+ mpfr_set_si_2exp (x, -i, -2, MPFR_RNDN); -+ mpfr_rint (y, x, (mpfr_rnd_t) r); -+ inv = MPFR_NOTZERO (y); -+ if (!mpfr_fits_ulong_p (x, (mpfr_rnd_t) r) ^ inv) -+ ERROR1 (46); -+ if (!mpfr_fits_slong_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (47); -+ if (!mpfr_fits_uint_p (x, (mpfr_rnd_t) r) ^ inv) -+ ERROR1 (48); -+ if (!mpfr_fits_sint_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (49); -+ if (!mpfr_fits_ushort_p (x, (mpfr_rnd_t) r) ^ inv) -+ ERROR1 (50); -+ if (!mpfr_fits_sshort_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (51); -+ } -+ } - - mpfr_clear (x); -+ mpfr_clear (y); - - check_intmax (); - -@@ -189,85 +210,98 @@ - return 0; - } - --static void check_intmax (void) -+static void -+check_intmax (void) - { - #ifdef _MPFR_H_HAVE_INTMAX_T -- mpfr_t x; -+ mpfr_t x, y; -+ int i, r; - -- mpfr_init2 (x, sizeof (uintmax_t)*CHAR_BIT); -+ mpfr_init2 (x, sizeof (uintmax_t) * CHAR_BIT); -+ mpfr_init2 (y, 8); - -- /* Check NAN */ -- mpfr_set_nan (x); -- if (mpfr_fits_uintmax_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_intmax_p (x, MPFR_RNDN)) -- ERROR1; -+ RND_LOOP (r) -+ { -+ /* Check NAN */ -+ mpfr_set_nan (x); -+ if (mpfr_fits_uintmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (52); -+ if (mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (53); - -- /* Check INF */ -- mpfr_set_inf (x, 1); -- if (mpfr_fits_uintmax_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_intmax_p (x, MPFR_RNDN)) -- ERROR1; -+ /* Check INF */ -+ mpfr_set_inf (x, 1); -+ if (mpfr_fits_uintmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (54); -+ if (mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (55); - -- /* Check Zero */ -- MPFR_SET_ZERO (x); -- if (!mpfr_fits_uintmax_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_intmax_p (x, MPFR_RNDN)) -- ERROR2; -+ /* Check Zero */ -+ MPFR_SET_ZERO (x); -+ if (!mpfr_fits_uintmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (56); -+ if (!mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (57); - -- /* Check small op */ -- mpfr_set_str1 (x, "1@-1"); -- if (!mpfr_fits_uintmax_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_intmax_p (x, MPFR_RNDN)) -- ERROR2; -+ /* Check positive small op */ -+ mpfr_set_str1 (x, "1@-1"); -+ if (!mpfr_fits_uintmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (58); -+ if (!mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (59); - -- /* Check 17 */ -- mpfr_set_ui (x, 17, MPFR_RNDN); -- if (!mpfr_fits_uintmax_p (x, MPFR_RNDN)) -- ERROR2; -- if (!mpfr_fits_intmax_p (x, MPFR_RNDN)) -- ERROR2; -+ /* Check 17 */ -+ mpfr_set_ui (x, 17, MPFR_RNDN); -+ if (!mpfr_fits_uintmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (60); -+ if (!mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (61); - -- /* Check hugest */ -- mpfr_set_ui_2exp (x, 42, sizeof (uintmax_t) * 32, MPFR_RNDN); -- if (mpfr_fits_uintmax_p (x, MPFR_RNDN)) -- ERROR1; -- if (mpfr_fits_intmax_p (x, MPFR_RNDN)) -- ERROR1; -+ /* Check hugest */ -+ mpfr_set_ui_2exp (x, 42, sizeof (uintmax_t) * 32, MPFR_RNDN); -+ if (mpfr_fits_uintmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (62); -+ if (mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (63); - -- /* Check all other values */ -- mpfr_set_uj (x, MPFR_UINTMAX_MAX, MPFR_RNDN); -- mpfr_add_ui (x, x, 1, MPFR_RNDN); -- if (mpfr_fits_uintmax_p (x, MPFR_RNDN)) -- ERROR1; -- mpfr_set_uj (x, MPFR_UINTMAX_MAX, MPFR_RNDN); -- if (!mpfr_fits_uintmax_p (x, MPFR_RNDN)) -- ERROR2; -- mpfr_set_sj (x, MPFR_INTMAX_MAX, MPFR_RNDN); -- mpfr_add_ui (x, x, 1, MPFR_RNDN); -- if (mpfr_fits_intmax_p (x, MPFR_RNDN)) -- ERROR1; -- mpfr_set_sj (x, MPFR_INTMAX_MAX, MPFR_RNDN); -- if (!mpfr_fits_intmax_p (x, MPFR_RNDN)) -- ERROR2; -- mpfr_set_sj (x, MPFR_INTMAX_MIN, MPFR_RNDN); -- if (!mpfr_fits_intmax_p (x, MPFR_RNDN)) -- ERROR2; -- mpfr_sub_ui (x, x, 1, MPFR_RNDN); -- if (mpfr_fits_intmax_p (x, MPFR_RNDN)) -- ERROR1; -+ /* Check all other values */ -+ mpfr_set_uj (x, MPFR_UINTMAX_MAX, MPFR_RNDN); -+ mpfr_add_ui (x, x, 1, MPFR_RNDN); -+ if (mpfr_fits_uintmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (64); -+ mpfr_set_uj (x, MPFR_UINTMAX_MAX, MPFR_RNDN); -+ if (!mpfr_fits_uintmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (65); -+ mpfr_set_sj (x, MPFR_INTMAX_MAX, MPFR_RNDN); -+ mpfr_add_ui (x, x, 1, MPFR_RNDN); -+ if (mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (66); -+ mpfr_set_sj (x, MPFR_INTMAX_MAX, MPFR_RNDN); -+ if (!mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (67); -+ mpfr_set_sj (x, MPFR_INTMAX_MIN, MPFR_RNDN); -+ if (!mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (68); -+ mpfr_sub_ui (x, x, 1, MPFR_RNDN); -+ if (mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (69); - -- /* Check negative value */ -- mpfr_set_si (x, -1, MPFR_RNDN); -- if (!mpfr_fits_intmax_p (x, MPFR_RNDN)) -- ERROR2; -- if (mpfr_fits_uintmax_p (x, MPFR_RNDN)) -- ERROR1; -+ /* Check negative op */ -+ for (i = 1; i <= 4; i++) -+ { -+ int inv; -+ -+ mpfr_set_si_2exp (x, -i, -2, MPFR_RNDN); -+ mpfr_rint (y, x, (mpfr_rnd_t) r); -+ inv = MPFR_NOTZERO (y); -+ if (!mpfr_fits_uintmax_p (x, (mpfr_rnd_t) r) ^ inv) -+ ERROR1 (70); -+ if (!mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) -+ ERROR1 (71); -+ } -+ } - - mpfr_clear (x); -+ mpfr_clear (y); - #endif - } -- -diff -Naurd mpfr-3.1.2-a/PATCHES mpfr-3.1.2-b/PATCHES ---- mpfr-3.1.2-a/PATCHES 2013-10-09 13:34:21.000000000 +0000 -+++ mpfr-3.1.2-b/PATCHES 2013-10-09 13:34:21.000000000 +0000 -@@ -0,0 +1 @@ -+clang-divby0 -diff -Naurd mpfr-3.1.2-a/VERSION mpfr-3.1.2-b/VERSION ---- mpfr-3.1.2-a/VERSION 2013-09-26 10:52:52.000000000 +0000 -+++ mpfr-3.1.2-b/VERSION 2013-10-09 13:34:21.000000000 +0000 -@@ -1 +1 @@ --3.1.2-p2 -+3.1.2-p3 -diff -Naurd mpfr-3.1.2-a/src/mpfr-impl.h mpfr-3.1.2-b/src/mpfr-impl.h ---- mpfr-3.1.2-a/src/mpfr-impl.h 2013-03-13 15:37:36.000000000 +0000 -+++ mpfr-3.1.2-b/src/mpfr-impl.h 2013-10-09 13:34:21.000000000 +0000 -@@ -468,8 +468,16 @@ - #define MPFR_LIMBS_PER_FLT ((IEEE_FLT_MANT_DIG-1)/GMP_NUMB_BITS+1) - - /* Visual C++ doesn't support +1.0/0.0, -1.0/0.0 and 0.0/0.0 -- at compile time. */ --#if defined(_MSC_VER) && defined(_WIN32) && (_MSC_VER >= 1200) -+ at compile time. -+ Clang with -fsanitize=undefined is a bit similar due to a bug: -+ http://llvm.org/bugs/show_bug.cgi?id=17381 -+ but even without its sanitizer, it may be better to use the -+ double_zero version until IEEE 754 division by zero is properly -+ supported: -+ http://llvm.org/bugs/show_bug.cgi?id=17000 -+*/ -+#if (defined(_MSC_VER) && defined(_WIN32) && (_MSC_VER >= 1200)) || \ -+ defined(__clang__) - static double double_zero = 0.0; - # define DBL_NAN (double_zero/double_zero) - # define DBL_POS_INF ((double) 1.0/double_zero) -@@ -501,6 +509,8 @@ - (with Xcode 2.4.1, i.e. the latest one). */ - #define LVALUE(x) (&(x) == &(x) || &(x) != &(x)) - #define DOUBLE_ISINF(x) (LVALUE(x) && ((x) > DBL_MAX || (x) < -DBL_MAX)) -+/* The DOUBLE_ISNAN(x) macro is also valid on long double x -+ (assuming that the compiler isn't too broken). */ - #ifdef MPFR_NANISNAN - /* Avoid MIPSpro / IRIX64 / gcc -ffast-math (incorrect) optimizations. - The + must not be replaced by a ||. With gcc -ffast-math, NaN is -diff -Naurd mpfr-3.1.2-a/src/mpfr.h mpfr-3.1.2-b/src/mpfr.h ---- mpfr-3.1.2-a/src/mpfr.h 2013-09-26 10:52:52.000000000 +0000 -+++ mpfr-3.1.2-b/src/mpfr.h 2013-10-09 13:34:21.000000000 +0000 -@@ -27,7 +27,7 @@ - #define MPFR_VERSION_MAJOR 3 - #define MPFR_VERSION_MINOR 1 - #define MPFR_VERSION_PATCHLEVEL 2 --#define MPFR_VERSION_STRING "3.1.2-p2" -+#define MPFR_VERSION_STRING "3.1.2-p3" - - /* Macros dealing with MPFR VERSION */ - #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) -diff -Naurd mpfr-3.1.2-a/src/version.c mpfr-3.1.2-b/src/version.c ---- mpfr-3.1.2-a/src/version.c 2013-09-26 10:52:52.000000000 +0000 -+++ mpfr-3.1.2-b/src/version.c 2013-10-09 13:34:21.000000000 +0000 -@@ -25,5 +25,5 @@ - const char * - mpfr_get_version (void) - { -- return "3.1.2-p2"; -+ return "3.1.2-p3"; - } -diff -Naurd mpfr-3.1.2-a/tests/tget_flt.c mpfr-3.1.2-b/tests/tget_flt.c ---- mpfr-3.1.2-a/tests/tget_flt.c 2013-03-13 15:37:44.000000000 +0000 -+++ mpfr-3.1.2-b/tests/tget_flt.c 2013-10-09 13:34:21.000000000 +0000 -@@ -28,9 +28,17 @@ - main (void) - { - mpfr_t x, y; -- float f, g, infp; -+ float f, g; - int i; -+#if !defined(MPFR_ERRDIVZERO) -+ float infp; -+#endif -+ -+ tests_start_mpfr (); - -+#if !defined(MPFR_ERRDIVZERO) -+ /* The definition of DBL_POS_INF involves a division by 0. This makes -+ "clang -O2 -fsanitize=undefined -fno-sanitize-recover" fail. */ - infp = (float) DBL_POS_INF; - if (infp * 0.5 != infp) - { -@@ -38,8 +46,7 @@ - fprintf (stderr, "(this is probably a compiler bug, please report)\n"); - exit (1); - } -- -- tests_start_mpfr (); -+#endif - - mpfr_init2 (x, 24); - mpfr_init2 (y, 24); -@@ -353,6 +360,7 @@ - printf ("expected %.8e, got %.8e\n", g, f); - exit (1); - } -+#if !defined(MPFR_ERRDIVZERO) - f = mpfr_get_flt (x, MPFR_RNDN); /* first round to 2^128 (even rule), - thus we should get +Inf */ - g = infp; -@@ -376,6 +384,7 @@ - printf ("expected %.8e, got %.8e\n", g, f); - exit (1); - } -+#endif - - mpfr_clear (x); - mpfr_clear (y); -diff -Naurd mpfr-3.1.2-a/tests/tset_ld.c mpfr-3.1.2-b/tests/tset_ld.c ---- mpfr-3.1.2-a/tests/tset_ld.c 2013-03-13 15:37:44.000000000 +0000 -+++ mpfr-3.1.2-b/tests/tset_ld.c 2013-10-09 13:34:21.000000000 +0000 -@@ -47,8 +47,11 @@ - static int - Isnan_ld (long double d) - { -- double e = (double) d; -- if (DOUBLE_ISNAN (e)) -+ /* Do not convert d to double as this can give an overflow, which -+ may confuse compilers without IEEE 754 support (such as clang -+ -fsanitize=undefined), or trigger a trap if enabled. -+ The DOUBLE_ISNAN macro should work fine on long double. */ -+ if (DOUBLE_ISNAN (d)) - return 1; - LONGDOUBLE_NAN_ACTION (d, goto yes); - return 0; diff --git a/core/mpfr/mpfr-3.1.2-p5.patch b/core/mpfr/mpfr-3.1.2-p5.patch new file mode 100644 index 000000000..d9962a637 --- /dev/null +++ b/core/mpfr/mpfr-3.1.2-p5.patch @@ -0,0 +1,905 @@ +diff -Naurd mpfr-3.1.2-a/PATCHES mpfr-3.1.2-b/PATCHES +--- mpfr-3.1.2-a/PATCHES 2013-09-26 10:52:52.000000000 +0000 ++++ mpfr-3.1.2-b/PATCHES 2013-09-26 10:52:52.000000000 +0000 +@@ -0,0 +1 @@ ++exp_2 +diff -Naurd mpfr-3.1.2-a/VERSION mpfr-3.1.2-b/VERSION +--- mpfr-3.1.2-a/VERSION 2013-03-13 15:37:28.000000000 +0000 ++++ mpfr-3.1.2-b/VERSION 2013-09-26 10:52:52.000000000 +0000 +@@ -1 +1 @@ +-3.1.2 ++3.1.2-p1 +diff -Naurd mpfr-3.1.2-a/src/exp_2.c mpfr-3.1.2-b/src/exp_2.c +--- mpfr-3.1.2-a/src/exp_2.c 2013-03-13 15:37:28.000000000 +0000 ++++ mpfr-3.1.2-b/src/exp_2.c 2013-09-26 10:52:52.000000000 +0000 +@@ -204,7 +204,7 @@ + for (k = 0; k < K; k++) + { + mpz_mul (ss, ss, ss); +- exps <<= 1; ++ exps *= 2; + exps += mpz_normalize (ss, ss, q); + } + mpfr_set_z (s, ss, MPFR_RNDN); +diff -Naurd mpfr-3.1.2-a/src/mpfr.h mpfr-3.1.2-b/src/mpfr.h +--- mpfr-3.1.2-a/src/mpfr.h 2013-03-13 15:37:37.000000000 +0000 ++++ mpfr-3.1.2-b/src/mpfr.h 2013-09-26 10:52:52.000000000 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 3 + #define MPFR_VERSION_MINOR 1 + #define MPFR_VERSION_PATCHLEVEL 2 +-#define MPFR_VERSION_STRING "3.1.2" ++#define MPFR_VERSION_STRING "3.1.2-p1" + + /* Macros dealing with MPFR VERSION */ + #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) +diff -Naurd mpfr-3.1.2-a/src/version.c mpfr-3.1.2-b/src/version.c +--- mpfr-3.1.2-a/src/version.c 2013-03-13 15:37:34.000000000 +0000 ++++ mpfr-3.1.2-b/src/version.c 2013-09-26 10:52:52.000000000 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "3.1.2"; ++ return "3.1.2-p1"; + } +diff -Naurd mpfr-3.1.2-a/PATCHES mpfr-3.1.2-b/PATCHES +--- mpfr-3.1.2-a/PATCHES 2013-09-26 10:56:55.000000000 +0000 ++++ mpfr-3.1.2-b/PATCHES 2013-09-26 10:56:55.000000000 +0000 +@@ -0,0 +1 @@ ++fits-smallneg +diff -Naurd mpfr-3.1.2-a/VERSION mpfr-3.1.2-b/VERSION +--- mpfr-3.1.2-a/VERSION 2013-09-26 10:52:52.000000000 +0000 ++++ mpfr-3.1.2-b/VERSION 2013-09-26 10:56:55.000000000 +0000 +@@ -1 +1 @@ +-3.1.2-p1 ++3.1.2-p2 +diff -Naurd mpfr-3.1.2-a/src/fits_u.h mpfr-3.1.2-b/src/fits_u.h +--- mpfr-3.1.2-a/src/fits_u.h 2013-03-13 15:37:35.000000000 +0000 ++++ mpfr-3.1.2-b/src/fits_u.h 2013-09-26 10:56:55.000000000 +0000 +@@ -32,17 +32,20 @@ + int res; + + if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (f))) +- /* Zero always fit */ +- return MPFR_IS_ZERO (f) ? 1 : 0; +- else if (MPFR_IS_NEG (f)) +- /* Negative numbers don't fit */ +- return 0; +- /* now it fits if +- (a) f <= MAXIMUM +- (b) round(f, prec(slong), rnd) <= MAXIMUM */ ++ return MPFR_IS_ZERO (f) ? 1 : 0; /* Zero always fits */ + + e = MPFR_GET_EXP (f); + ++ if (MPFR_IS_NEG (f)) ++ return e >= 1 ? 0 /* f <= -1 does not fit */ ++ : rnd != MPFR_RNDN ? MPFR_IS_LIKE_RNDU (rnd, -1) /* directed mode */ ++ : e < 0 ? 1 /* f > -1/2 fits in MPFR_RNDN */ ++ : mpfr_powerof2_raw(f); /* -1/2 fits, -1 < f < -1/2 don't */ ++ ++ /* Now it fits if ++ (a) f <= MAXIMUM ++ (b) round(f, prec(slong), rnd) <= MAXIMUM */ ++ + /* first compute prec(MAXIMUM); fits in an int */ + for (s = MAXIMUM, prec = 0; s != 0; s /= 2, prec ++); + +diff -Naurd mpfr-3.1.2-a/src/fits_uintmax.c mpfr-3.1.2-b/src/fits_uintmax.c +--- mpfr-3.1.2-a/src/fits_uintmax.c 2013-03-13 15:37:33.000000000 +0000 ++++ mpfr-3.1.2-b/src/fits_uintmax.c 2013-09-26 10:56:55.000000000 +0000 +@@ -27,51 +27,19 @@ + #include "mpfr-intmax.h" + #include "mpfr-impl.h" + +-#ifdef _MPFR_H_HAVE_INTMAX_T +- +-/* We can't use fits_u.h <= mpfr_cmp_ui */ +-int +-mpfr_fits_uintmax_p (mpfr_srcptr f, mpfr_rnd_t rnd) +-{ +- mpfr_exp_t e; +- int prec; +- uintmax_t s; +- mpfr_t x; +- int res; +- +- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (f))) +- /* Zero always fit */ +- return MPFR_IS_ZERO (f) ? 1 : 0; +- else if (MPFR_IS_NEG (f)) +- /* Negative numbers don't fit */ +- return 0; +- /* now it fits if +- (a) f <= MAXIMUM +- (b) round(f, prec(slong), rnd) <= MAXIMUM */ +- +- e = MPFR_GET_EXP (f); +- +- /* first compute prec(MAXIMUM); fits in an int */ +- for (s = MPFR_UINTMAX_MAX, prec = 0; s != 0; s /= 2, prec ++); +- +- /* MAXIMUM needs prec bits, i.e. MAXIMUM = 2^prec - 1 */ +- +- /* if e <= prec - 1, then f < 2^(prec-1) < MAXIMUM */ +- if (e <= prec - 1) +- return 1; ++/* Note: though mpfr-impl.h is included in fits_u.h, we also include it ++ above so that it gets included even when _MPFR_H_HAVE_INTMAX_T is not ++ defined; this is necessary to avoid an empty translation unit, which ++ is forbidden by ISO C. Without this, a failing test can be reproduced ++ by creating an invalid stdint.h somewhere in the default include path ++ and by compiling MPFR with "gcc -ansi -pedantic-errors". */ + +- /* if e >= prec + 1, then f >= 2^prec > MAXIMUM */ +- if (e >= prec + 1) +- return 0; ++#ifdef _MPFR_H_HAVE_INTMAX_T + +- MPFR_ASSERTD (e == prec); ++#define FUNCTION mpfr_fits_uintmax_p ++#define MAXIMUM MPFR_UINTMAX_MAX ++#define TYPE uintmax_t + +- /* hard case: first round to prec bits, then check */ +- mpfr_init2 (x, prec); +- mpfr_set (x, f, rnd); +- res = MPFR_GET_EXP (x) == e; +- mpfr_clear (x); +- return res; +-} ++#include "fits_u.h" + + #endif +diff -Naurd mpfr-3.1.2-a/src/mpfr.h mpfr-3.1.2-b/src/mpfr.h +--- mpfr-3.1.2-a/src/mpfr.h 2013-09-26 10:52:52.000000000 +0000 ++++ mpfr-3.1.2-b/src/mpfr.h 2013-09-26 10:56:55.000000000 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 3 + #define MPFR_VERSION_MINOR 1 + #define MPFR_VERSION_PATCHLEVEL 2 +-#define MPFR_VERSION_STRING "3.1.2-p1" ++#define MPFR_VERSION_STRING "3.1.2-p2" + + /* Macros dealing with MPFR VERSION */ + #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) +diff -Naurd mpfr-3.1.2-a/src/version.c mpfr-3.1.2-b/src/version.c +--- mpfr-3.1.2-a/src/version.c 2013-09-26 10:52:52.000000000 +0000 ++++ mpfr-3.1.2-b/src/version.c 2013-09-26 10:56:55.000000000 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "3.1.2-p1"; ++ return "3.1.2-p2"; + } +diff -Naurd mpfr-3.1.2-a/tests/tfits.c mpfr-3.1.2-b/tests/tfits.c +--- mpfr-3.1.2-a/tests/tfits.c 2013-03-13 15:37:45.000000000 +0000 ++++ mpfr-3.1.2-b/tests/tfits.c 2013-09-26 10:56:55.000000000 +0000 +@@ -33,155 +33,176 @@ + #include "mpfr-intmax.h" + #include "mpfr-test.h" + +-#define ERROR1 { printf("Initial error for x="); mpfr_dump(x); exit(1); } +-#define ERROR2 { printf("Error for x="); mpfr_dump(x); exit(1); } ++#define ERROR1(N) \ ++ do \ ++ { \ ++ printf("Error %d for rnd = %s and x = ", N, \ ++ mpfr_print_rnd_mode ((mpfr_rnd_t) r)); \ ++ mpfr_dump(x); \ ++ exit(1); \ ++ } \ ++ while (0) + + static void check_intmax (void); + + int + main (void) + { +- mpfr_t x; ++ mpfr_t x, y; ++ int i, r; + + tests_start_mpfr (); + + mpfr_init2 (x, 256); ++ mpfr_init2 (y, 8); + +- /* Check NAN */ +- mpfr_set_nan (x); +- if (mpfr_fits_ulong_p (x, MPFR_RNDN)) +- ERROR1; +- if (mpfr_fits_slong_p (x, MPFR_RNDN)) +- ERROR1; +- if (mpfr_fits_uint_p (x, MPFR_RNDN)) +- ERROR1; +- if (mpfr_fits_sint_p (x, MPFR_RNDN)) +- ERROR1; +- if (mpfr_fits_ushort_p (x, MPFR_RNDN)) +- ERROR1; +- if (mpfr_fits_sshort_p (x, MPFR_RNDN)) +- ERROR1; ++ RND_LOOP (r) ++ { + +- /* Check INF */ +- mpfr_set_inf (x, 1); +- if (mpfr_fits_ulong_p (x, MPFR_RNDN)) +- ERROR1; +- if (mpfr_fits_slong_p (x, MPFR_RNDN)) +- ERROR1; +- if (mpfr_fits_uint_p (x, MPFR_RNDN)) +- ERROR1; +- if (mpfr_fits_sint_p (x, MPFR_RNDN)) +- ERROR1; +- if (mpfr_fits_ushort_p (x, MPFR_RNDN)) +- ERROR1; +- if (mpfr_fits_sshort_p (x, MPFR_RNDN)) +- ERROR1; ++ /* Check NAN */ ++ mpfr_set_nan (x); ++ if (mpfr_fits_ulong_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (1); ++ if (mpfr_fits_slong_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (2); ++ if (mpfr_fits_uint_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (3); ++ if (mpfr_fits_sint_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (4); ++ if (mpfr_fits_ushort_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (5); ++ if (mpfr_fits_sshort_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (6); + +- /* Check Zero */ +- MPFR_SET_ZERO (x); +- if (!mpfr_fits_ulong_p (x, MPFR_RNDN)) +- ERROR2; +- if (!mpfr_fits_slong_p (x, MPFR_RNDN)) +- ERROR2; +- if (!mpfr_fits_uint_p (x, MPFR_RNDN)) +- ERROR2; +- if (!mpfr_fits_sint_p (x, MPFR_RNDN)) +- ERROR2; +- if (!mpfr_fits_ushort_p (x, MPFR_RNDN)) +- ERROR2; +- if (!mpfr_fits_sshort_p (x, MPFR_RNDN)) +- ERROR2; ++ /* Check INF */ ++ mpfr_set_inf (x, 1); ++ if (mpfr_fits_ulong_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (7); ++ if (mpfr_fits_slong_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (8); ++ if (mpfr_fits_uint_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (9); ++ if (mpfr_fits_sint_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (10); ++ if (mpfr_fits_ushort_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (11); ++ if (mpfr_fits_sshort_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (12); + +- /* Check small op */ +- mpfr_set_str1 (x, "1@-1"); +- if (!mpfr_fits_ulong_p (x, MPFR_RNDN)) +- ERROR2; +- if (!mpfr_fits_slong_p (x, MPFR_RNDN)) +- ERROR2; +- if (!mpfr_fits_uint_p (x, MPFR_RNDN)) +- ERROR2; +- if (!mpfr_fits_sint_p (x, MPFR_RNDN)) +- ERROR2; +- if (!mpfr_fits_ushort_p (x, MPFR_RNDN)) +- ERROR2; +- if (!mpfr_fits_sshort_p (x, MPFR_RNDN)) +- ERROR2; ++ /* Check Zero */ ++ MPFR_SET_ZERO (x); ++ if (!mpfr_fits_ulong_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (13); ++ if (!mpfr_fits_slong_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (14); ++ if (!mpfr_fits_uint_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (15); ++ if (!mpfr_fits_sint_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (16); ++ if (!mpfr_fits_ushort_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (17); ++ if (!mpfr_fits_sshort_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (18); + +- /* Check 17 */ +- mpfr_set_ui (x, 17, MPFR_RNDN); +- if (!mpfr_fits_ulong_p (x, MPFR_RNDN)) +- ERROR2; +- if (!mpfr_fits_slong_p (x, MPFR_RNDN)) +- ERROR2; +- if (!mpfr_fits_uint_p (x, MPFR_RNDN)) +- ERROR2; +- if (!mpfr_fits_sint_p (x, MPFR_RNDN)) +- ERROR2; +- if (!mpfr_fits_ushort_p (x, MPFR_RNDN)) +- ERROR2; +- if (!mpfr_fits_sshort_p (x, MPFR_RNDN)) +- ERROR2; ++ /* Check small positive op */ ++ mpfr_set_str1 (x, "1@-1"); ++ if (!mpfr_fits_ulong_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (19); ++ if (!mpfr_fits_slong_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (20); ++ if (!mpfr_fits_uint_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (21); ++ if (!mpfr_fits_sint_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (22); ++ if (!mpfr_fits_ushort_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (23); ++ if (!mpfr_fits_sshort_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (24); + +- /* Check all other values */ +- mpfr_set_ui (x, ULONG_MAX, MPFR_RNDN); +- mpfr_mul_2exp (x, x, 1, MPFR_RNDN); +- if (mpfr_fits_ulong_p (x, MPFR_RNDN)) +- ERROR1; +- if (mpfr_fits_slong_p (x, MPFR_RNDN)) +- ERROR1; +- mpfr_mul_2exp (x, x, 40, MPFR_RNDN); +- if (mpfr_fits_ulong_p (x, MPFR_RNDN)) +- ERROR1; +- if (mpfr_fits_uint_p (x, MPFR_RNDN)) +- ERROR1; +- if (mpfr_fits_sint_p (x, MPFR_RNDN)) +- ERROR1; +- if (mpfr_fits_ushort_p (x, MPFR_RNDN)) +- ERROR1; +- if (mpfr_fits_sshort_p (x, MPFR_RNDN)) +- ERROR1; ++ /* Check 17 */ ++ mpfr_set_ui (x, 17, MPFR_RNDN); ++ if (!mpfr_fits_ulong_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (25); ++ if (!mpfr_fits_slong_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (26); ++ if (!mpfr_fits_uint_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (27); ++ if (!mpfr_fits_sint_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (28); ++ if (!mpfr_fits_ushort_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (29); ++ if (!mpfr_fits_sshort_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (30); + +- mpfr_set_ui (x, ULONG_MAX, MPFR_RNDN); +- if (!mpfr_fits_ulong_p (x, MPFR_RNDN)) +- ERROR2; +- mpfr_set_ui (x, LONG_MAX, MPFR_RNDN); +- if (!mpfr_fits_slong_p (x, MPFR_RNDN)) +- ERROR2; +- mpfr_set_ui (x, UINT_MAX, MPFR_RNDN); +- if (!mpfr_fits_uint_p (x, MPFR_RNDN)) +- ERROR2; +- mpfr_set_ui (x, INT_MAX, MPFR_RNDN); +- if (!mpfr_fits_sint_p (x, MPFR_RNDN)) +- ERROR2; +- mpfr_set_ui (x, USHRT_MAX, MPFR_RNDN); +- if (!mpfr_fits_ushort_p (x, MPFR_RNDN)) +- ERROR2; +- mpfr_set_ui (x, SHRT_MAX, MPFR_RNDN); +- if (!mpfr_fits_sshort_p (x, MPFR_RNDN)) +- ERROR2; ++ /* Check all other values */ ++ mpfr_set_ui (x, ULONG_MAX, MPFR_RNDN); ++ mpfr_mul_2exp (x, x, 1, MPFR_RNDN); ++ if (mpfr_fits_ulong_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (31); ++ if (mpfr_fits_slong_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (32); ++ mpfr_mul_2exp (x, x, 40, MPFR_RNDN); ++ if (mpfr_fits_ulong_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (33); ++ if (mpfr_fits_uint_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (34); ++ if (mpfr_fits_sint_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (35); ++ if (mpfr_fits_ushort_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (36); ++ if (mpfr_fits_sshort_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (37); + +- mpfr_set_si (x, 1, MPFR_RNDN); +- if (!mpfr_fits_sint_p (x, MPFR_RNDN)) +- ERROR2; +- if (!mpfr_fits_sshort_p (x, MPFR_RNDN)) +- ERROR2; ++ mpfr_set_ui (x, ULONG_MAX, MPFR_RNDN); ++ if (!mpfr_fits_ulong_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (38); ++ mpfr_set_ui (x, LONG_MAX, MPFR_RNDN); ++ if (!mpfr_fits_slong_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (39); ++ mpfr_set_ui (x, UINT_MAX, MPFR_RNDN); ++ if (!mpfr_fits_uint_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (40); ++ mpfr_set_ui (x, INT_MAX, MPFR_RNDN); ++ if (!mpfr_fits_sint_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (41); ++ mpfr_set_ui (x, USHRT_MAX, MPFR_RNDN); ++ if (!mpfr_fits_ushort_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (42); ++ mpfr_set_ui (x, SHRT_MAX, MPFR_RNDN); ++ if (!mpfr_fits_sshort_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (43); + +- /* Check negative value */ +- mpfr_set_si (x, -1, MPFR_RNDN); +- if (!mpfr_fits_sint_p (x, MPFR_RNDN)) +- ERROR2; +- if (!mpfr_fits_sshort_p (x, MPFR_RNDN)) +- ERROR2; +- if (!mpfr_fits_slong_p (x, MPFR_RNDN)) +- ERROR2; +- if (mpfr_fits_uint_p (x, MPFR_RNDN)) +- ERROR1; +- if (mpfr_fits_ushort_p (x, MPFR_RNDN)) +- ERROR1; +- if (mpfr_fits_ulong_p (x, MPFR_RNDN)) +- ERROR1; ++ mpfr_set_si (x, 1, MPFR_RNDN); ++ if (!mpfr_fits_sint_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (44); ++ if (!mpfr_fits_sshort_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (45); ++ ++ /* Check negative op */ ++ for (i = 1; i <= 4; i++) ++ { ++ int inv; ++ ++ mpfr_set_si_2exp (x, -i, -2, MPFR_RNDN); ++ mpfr_rint (y, x, (mpfr_rnd_t) r); ++ inv = MPFR_NOTZERO (y); ++ if (!mpfr_fits_ulong_p (x, (mpfr_rnd_t) r) ^ inv) ++ ERROR1 (46); ++ if (!mpfr_fits_slong_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (47); ++ if (!mpfr_fits_uint_p (x, (mpfr_rnd_t) r) ^ inv) ++ ERROR1 (48); ++ if (!mpfr_fits_sint_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (49); ++ if (!mpfr_fits_ushort_p (x, (mpfr_rnd_t) r) ^ inv) ++ ERROR1 (50); ++ if (!mpfr_fits_sshort_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (51); ++ } ++ } + + mpfr_clear (x); ++ mpfr_clear (y); + + check_intmax (); + +@@ -189,85 +210,98 @@ + return 0; + } + +-static void check_intmax (void) ++static void ++check_intmax (void) + { + #ifdef _MPFR_H_HAVE_INTMAX_T +- mpfr_t x; ++ mpfr_t x, y; ++ int i, r; + +- mpfr_init2 (x, sizeof (uintmax_t)*CHAR_BIT); ++ mpfr_init2 (x, sizeof (uintmax_t) * CHAR_BIT); ++ mpfr_init2 (y, 8); + +- /* Check NAN */ +- mpfr_set_nan (x); +- if (mpfr_fits_uintmax_p (x, MPFR_RNDN)) +- ERROR1; +- if (mpfr_fits_intmax_p (x, MPFR_RNDN)) +- ERROR1; ++ RND_LOOP (r) ++ { ++ /* Check NAN */ ++ mpfr_set_nan (x); ++ if (mpfr_fits_uintmax_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (52); ++ if (mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (53); + +- /* Check INF */ +- mpfr_set_inf (x, 1); +- if (mpfr_fits_uintmax_p (x, MPFR_RNDN)) +- ERROR1; +- if (mpfr_fits_intmax_p (x, MPFR_RNDN)) +- ERROR1; ++ /* Check INF */ ++ mpfr_set_inf (x, 1); ++ if (mpfr_fits_uintmax_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (54); ++ if (mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (55); + +- /* Check Zero */ +- MPFR_SET_ZERO (x); +- if (!mpfr_fits_uintmax_p (x, MPFR_RNDN)) +- ERROR2; +- if (!mpfr_fits_intmax_p (x, MPFR_RNDN)) +- ERROR2; ++ /* Check Zero */ ++ MPFR_SET_ZERO (x); ++ if (!mpfr_fits_uintmax_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (56); ++ if (!mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (57); + +- /* Check small op */ +- mpfr_set_str1 (x, "1@-1"); +- if (!mpfr_fits_uintmax_p (x, MPFR_RNDN)) +- ERROR2; +- if (!mpfr_fits_intmax_p (x, MPFR_RNDN)) +- ERROR2; ++ /* Check positive small op */ ++ mpfr_set_str1 (x, "1@-1"); ++ if (!mpfr_fits_uintmax_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (58); ++ if (!mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (59); + +- /* Check 17 */ +- mpfr_set_ui (x, 17, MPFR_RNDN); +- if (!mpfr_fits_uintmax_p (x, MPFR_RNDN)) +- ERROR2; +- if (!mpfr_fits_intmax_p (x, MPFR_RNDN)) +- ERROR2; ++ /* Check 17 */ ++ mpfr_set_ui (x, 17, MPFR_RNDN); ++ if (!mpfr_fits_uintmax_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (60); ++ if (!mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (61); + +- /* Check hugest */ +- mpfr_set_ui_2exp (x, 42, sizeof (uintmax_t) * 32, MPFR_RNDN); +- if (mpfr_fits_uintmax_p (x, MPFR_RNDN)) +- ERROR1; +- if (mpfr_fits_intmax_p (x, MPFR_RNDN)) +- ERROR1; ++ /* Check hugest */ ++ mpfr_set_ui_2exp (x, 42, sizeof (uintmax_t) * 32, MPFR_RNDN); ++ if (mpfr_fits_uintmax_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (62); ++ if (mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (63); + +- /* Check all other values */ +- mpfr_set_uj (x, MPFR_UINTMAX_MAX, MPFR_RNDN); +- mpfr_add_ui (x, x, 1, MPFR_RNDN); +- if (mpfr_fits_uintmax_p (x, MPFR_RNDN)) +- ERROR1; +- mpfr_set_uj (x, MPFR_UINTMAX_MAX, MPFR_RNDN); +- if (!mpfr_fits_uintmax_p (x, MPFR_RNDN)) +- ERROR2; +- mpfr_set_sj (x, MPFR_INTMAX_MAX, MPFR_RNDN); +- mpfr_add_ui (x, x, 1, MPFR_RNDN); +- if (mpfr_fits_intmax_p (x, MPFR_RNDN)) +- ERROR1; +- mpfr_set_sj (x, MPFR_INTMAX_MAX, MPFR_RNDN); +- if (!mpfr_fits_intmax_p (x, MPFR_RNDN)) +- ERROR2; +- mpfr_set_sj (x, MPFR_INTMAX_MIN, MPFR_RNDN); +- if (!mpfr_fits_intmax_p (x, MPFR_RNDN)) +- ERROR2; +- mpfr_sub_ui (x, x, 1, MPFR_RNDN); +- if (mpfr_fits_intmax_p (x, MPFR_RNDN)) +- ERROR1; ++ /* Check all other values */ ++ mpfr_set_uj (x, MPFR_UINTMAX_MAX, MPFR_RNDN); ++ mpfr_add_ui (x, x, 1, MPFR_RNDN); ++ if (mpfr_fits_uintmax_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (64); ++ mpfr_set_uj (x, MPFR_UINTMAX_MAX, MPFR_RNDN); ++ if (!mpfr_fits_uintmax_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (65); ++ mpfr_set_sj (x, MPFR_INTMAX_MAX, MPFR_RNDN); ++ mpfr_add_ui (x, x, 1, MPFR_RNDN); ++ if (mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (66); ++ mpfr_set_sj (x, MPFR_INTMAX_MAX, MPFR_RNDN); ++ if (!mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (67); ++ mpfr_set_sj (x, MPFR_INTMAX_MIN, MPFR_RNDN); ++ if (!mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (68); ++ mpfr_sub_ui (x, x, 1, MPFR_RNDN); ++ if (mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (69); + +- /* Check negative value */ +- mpfr_set_si (x, -1, MPFR_RNDN); +- if (!mpfr_fits_intmax_p (x, MPFR_RNDN)) +- ERROR2; +- if (mpfr_fits_uintmax_p (x, MPFR_RNDN)) +- ERROR1; ++ /* Check negative op */ ++ for (i = 1; i <= 4; i++) ++ { ++ int inv; ++ ++ mpfr_set_si_2exp (x, -i, -2, MPFR_RNDN); ++ mpfr_rint (y, x, (mpfr_rnd_t) r); ++ inv = MPFR_NOTZERO (y); ++ if (!mpfr_fits_uintmax_p (x, (mpfr_rnd_t) r) ^ inv) ++ ERROR1 (70); ++ if (!mpfr_fits_intmax_p (x, (mpfr_rnd_t) r)) ++ ERROR1 (71); ++ } ++ } + + mpfr_clear (x); ++ mpfr_clear (y); + #endif + } +- +diff -Naurd mpfr-3.1.2-a/PATCHES mpfr-3.1.2-b/PATCHES +--- mpfr-3.1.2-a/PATCHES 2013-10-09 13:34:21.000000000 +0000 ++++ mpfr-3.1.2-b/PATCHES 2013-10-09 13:34:21.000000000 +0000 +@@ -0,0 +1 @@ ++clang-divby0 +diff -Naurd mpfr-3.1.2-a/VERSION mpfr-3.1.2-b/VERSION +--- mpfr-3.1.2-a/VERSION 2013-09-26 10:52:52.000000000 +0000 ++++ mpfr-3.1.2-b/VERSION 2013-10-09 13:34:21.000000000 +0000 +@@ -1 +1 @@ +-3.1.2-p2 ++3.1.2-p3 +diff -Naurd mpfr-3.1.2-a/src/mpfr-impl.h mpfr-3.1.2-b/src/mpfr-impl.h +--- mpfr-3.1.2-a/src/mpfr-impl.h 2013-03-13 15:37:36.000000000 +0000 ++++ mpfr-3.1.2-b/src/mpfr-impl.h 2013-10-09 13:34:21.000000000 +0000 +@@ -468,8 +468,16 @@ + #define MPFR_LIMBS_PER_FLT ((IEEE_FLT_MANT_DIG-1)/GMP_NUMB_BITS+1) + + /* Visual C++ doesn't support +1.0/0.0, -1.0/0.0 and 0.0/0.0 +- at compile time. */ +-#if defined(_MSC_VER) && defined(_WIN32) && (_MSC_VER >= 1200) ++ at compile time. ++ Clang with -fsanitize=undefined is a bit similar due to a bug: ++ http://llvm.org/bugs/show_bug.cgi?id=17381 ++ but even without its sanitizer, it may be better to use the ++ double_zero version until IEEE 754 division by zero is properly ++ supported: ++ http://llvm.org/bugs/show_bug.cgi?id=17000 ++*/ ++#if (defined(_MSC_VER) && defined(_WIN32) && (_MSC_VER >= 1200)) || \ ++ defined(__clang__) + static double double_zero = 0.0; + # define DBL_NAN (double_zero/double_zero) + # define DBL_POS_INF ((double) 1.0/double_zero) +@@ -501,6 +509,8 @@ + (with Xcode 2.4.1, i.e. the latest one). */ + #define LVALUE(x) (&(x) == &(x) || &(x) != &(x)) + #define DOUBLE_ISINF(x) (LVALUE(x) && ((x) > DBL_MAX || (x) < -DBL_MAX)) ++/* The DOUBLE_ISNAN(x) macro is also valid on long double x ++ (assuming that the compiler isn't too broken). */ + #ifdef MPFR_NANISNAN + /* Avoid MIPSpro / IRIX64 / gcc -ffast-math (incorrect) optimizations. + The + must not be replaced by a ||. With gcc -ffast-math, NaN is +diff -Naurd mpfr-3.1.2-a/src/mpfr.h mpfr-3.1.2-b/src/mpfr.h +--- mpfr-3.1.2-a/src/mpfr.h 2013-09-26 10:52:52.000000000 +0000 ++++ mpfr-3.1.2-b/src/mpfr.h 2013-10-09 13:34:21.000000000 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 3 + #define MPFR_VERSION_MINOR 1 + #define MPFR_VERSION_PATCHLEVEL 2 +-#define MPFR_VERSION_STRING "3.1.2-p2" ++#define MPFR_VERSION_STRING "3.1.2-p3" + + /* Macros dealing with MPFR VERSION */ + #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) +diff -Naurd mpfr-3.1.2-a/src/version.c mpfr-3.1.2-b/src/version.c +--- mpfr-3.1.2-a/src/version.c 2013-09-26 10:52:52.000000000 +0000 ++++ mpfr-3.1.2-b/src/version.c 2013-10-09 13:34:21.000000000 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "3.1.2-p2"; ++ return "3.1.2-p3"; + } +diff -Naurd mpfr-3.1.2-a/tests/tget_flt.c mpfr-3.1.2-b/tests/tget_flt.c +--- mpfr-3.1.2-a/tests/tget_flt.c 2013-03-13 15:37:44.000000000 +0000 ++++ mpfr-3.1.2-b/tests/tget_flt.c 2013-10-09 13:34:21.000000000 +0000 +@@ -28,9 +28,17 @@ + main (void) + { + mpfr_t x, y; +- float f, g, infp; ++ float f, g; + int i; ++#if !defined(MPFR_ERRDIVZERO) ++ float infp; ++#endif ++ ++ tests_start_mpfr (); + ++#if !defined(MPFR_ERRDIVZERO) ++ /* The definition of DBL_POS_INF involves a division by 0. This makes ++ "clang -O2 -fsanitize=undefined -fno-sanitize-recover" fail. */ + infp = (float) DBL_POS_INF; + if (infp * 0.5 != infp) + { +@@ -38,8 +46,7 @@ + fprintf (stderr, "(this is probably a compiler bug, please report)\n"); + exit (1); + } +- +- tests_start_mpfr (); ++#endif + + mpfr_init2 (x, 24); + mpfr_init2 (y, 24); +@@ -353,6 +360,7 @@ + printf ("expected %.8e, got %.8e\n", g, f); + exit (1); + } ++#if !defined(MPFR_ERRDIVZERO) + f = mpfr_get_flt (x, MPFR_RNDN); /* first round to 2^128 (even rule), + thus we should get +Inf */ + g = infp; +@@ -376,6 +384,7 @@ + printf ("expected %.8e, got %.8e\n", g, f); + exit (1); + } ++#endif + + mpfr_clear (x); + mpfr_clear (y); +diff -Naurd mpfr-3.1.2-a/tests/tset_ld.c mpfr-3.1.2-b/tests/tset_ld.c +--- mpfr-3.1.2-a/tests/tset_ld.c 2013-03-13 15:37:44.000000000 +0000 ++++ mpfr-3.1.2-b/tests/tset_ld.c 2013-10-09 13:34:21.000000000 +0000 +@@ -47,8 +47,11 @@ + static int + Isnan_ld (long double d) + { +- double e = (double) d; +- if (DOUBLE_ISNAN (e)) ++ /* Do not convert d to double as this can give an overflow, which ++ may confuse compilers without IEEE 754 support (such as clang ++ -fsanitize=undefined), or trigger a trap if enabled. ++ The DOUBLE_ISNAN macro should work fine on long double. */ ++ if (DOUBLE_ISNAN (d)) + return 1; + LONGDOUBLE_NAN_ACTION (d, goto yes); + return 0; +diff -Naurd mpfr-3.1.2-a/PATCHES mpfr-3.1.2-b/PATCHES +--- mpfr-3.1.2-a/PATCHES 2013-11-15 00:51:49.211333830 +0000 ++++ mpfr-3.1.2-b/PATCHES 2013-11-15 00:51:49.323334999 +0000 +@@ -0,0 +1 @@ ++printf-alt0 +diff -Naurd mpfr-3.1.2-a/VERSION mpfr-3.1.2-b/VERSION +--- mpfr-3.1.2-a/VERSION 2013-11-15 00:51:49.211333830 +0000 ++++ mpfr-3.1.2-b/VERSION 2013-11-15 00:51:49.323334999 +0000 +@@ -1 +1 @@ +-3.1.2-p3 ++3.1.2-p4 +diff -Naurd mpfr-3.1.2-a/src/mpfr.h mpfr-3.1.2-b/src/mpfr.h +--- mpfr-3.1.2-a/src/mpfr.h 2013-11-15 00:51:49.211333830 +0000 ++++ mpfr-3.1.2-b/src/mpfr.h 2013-11-15 00:51:49.323334999 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 3 + #define MPFR_VERSION_MINOR 1 + #define MPFR_VERSION_PATCHLEVEL 2 +-#define MPFR_VERSION_STRING "3.1.2-p3" ++#define MPFR_VERSION_STRING "3.1.2-p4" + + /* Macros dealing with MPFR VERSION */ + #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) +diff -Naurd mpfr-3.1.2-a/src/vasprintf.c mpfr-3.1.2-b/src/vasprintf.c +--- mpfr-3.1.2-a/src/vasprintf.c 2013-03-13 15:37:37.000000000 +0000 ++++ mpfr-3.1.2-b/src/vasprintf.c 2013-11-15 00:51:49.267334408 +0000 +@@ -1040,7 +1040,7 @@ + } + + /* Determine the different parts of the string representation of the regular +- number P when SPEC.SPEC is 'e', 'E', 'g', or 'G'. ++ number P when spec.spec is 'e', 'E', 'g', or 'G'. + DEC_INFO contains the previously computed exponent and string or is NULL. + + return -1 if some field > INT_MAX */ +@@ -1167,7 +1167,7 @@ + } + + /* Determine the different parts of the string representation of the regular +- number P when SPEC.SPEC is 'f', 'F', 'g', or 'G'. ++ number P when spec.spec is 'f', 'F', 'g', or 'G'. + DEC_INFO contains the previously computed exponent and string or is NULL. + + return -1 if some field of number_parts is greater than INT_MAX */ +@@ -1559,7 +1559,7 @@ + /* fractional part */ + { + np->point = MPFR_DECIMAL_POINT; +- np->fp_trailing_zeros = (spec.spec == 'g' && spec.spec == 'G') ? ++ np->fp_trailing_zeros = (spec.spec == 'g' || spec.spec == 'G') ? + spec.prec - 1 : spec.prec; + } + else if (spec.alt) +diff -Naurd mpfr-3.1.2-a/src/version.c mpfr-3.1.2-b/src/version.c +--- mpfr-3.1.2-a/src/version.c 2013-11-15 00:51:49.211333830 +0000 ++++ mpfr-3.1.2-b/src/version.c 2013-11-15 00:51:49.323334999 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "3.1.2-p3"; ++ return "3.1.2-p4"; + } +diff -Naurd mpfr-3.1.2-a/tests/tsprintf.c mpfr-3.1.2-b/tests/tsprintf.c +--- mpfr-3.1.2-a/tests/tsprintf.c 2013-03-13 15:37:44.000000000 +0000 ++++ mpfr-3.1.2-b/tests/tsprintf.c 2013-11-15 00:51:49.267334408 +0000 +@@ -456,10 +456,16 @@ + check_sprintf ("1.999900 ", "%-#10.7RG", x); + check_sprintf ("1.9999 ", "%-10.7RG", x); + mpfr_set_ui (x, 1, MPFR_RNDN); ++ check_sprintf ("1.", "%#.1Rg", x); ++ check_sprintf ("1. ", "%-#5.1Rg", x); ++ check_sprintf (" 1.0", "%#5.2Rg", x); + check_sprintf ("1.00000000000000000000000000000", "%#.30Rg", x); + check_sprintf ("1", "%.30Rg", x); + mpfr_set_ui (x, 0, MPFR_RNDN); +- check_sprintf ("0.000000000000000000000000000000", "%#.30Rg", x); ++ check_sprintf ("0.", "%#.1Rg", x); ++ check_sprintf ("0. ", "%-#5.1Rg", x); ++ check_sprintf (" 0.0", "%#5.2Rg", x); ++ check_sprintf ("0.00000000000000000000000000000", "%#.30Rg", x); + check_sprintf ("0", "%.30Rg", x); + + /* following tests with precision 53 bits */ +diff -Naurd mpfr-3.1.2-a/PATCHES mpfr-3.1.2-b/PATCHES +--- mpfr-3.1.2-a/PATCHES 2013-12-01 11:07:49.575329762 +0000 ++++ mpfr-3.1.2-b/PATCHES 2013-12-01 11:07:49.751331625 +0000 +@@ -0,0 +1 @@ ++custom_init_set +diff -Naurd mpfr-3.1.2-a/VERSION mpfr-3.1.2-b/VERSION +--- mpfr-3.1.2-a/VERSION 2013-12-01 11:07:49.571329714 +0000 ++++ mpfr-3.1.2-b/VERSION 2013-12-01 11:07:49.747331585 +0000 +@@ -1 +1 @@ +-3.1.2-p4 ++3.1.2-p5 +diff -Naurd mpfr-3.1.2-a/src/mpfr.h mpfr-3.1.2-b/src/mpfr.h +--- mpfr-3.1.2-a/src/mpfr.h 2013-12-01 11:07:49.571329714 +0000 ++++ mpfr-3.1.2-b/src/mpfr.h 2013-12-01 11:07:49.747331585 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 3 + #define MPFR_VERSION_MINOR 1 + #define MPFR_VERSION_PATCHLEVEL 2 +-#define MPFR_VERSION_STRING "3.1.2-p4" ++#define MPFR_VERSION_STRING "3.1.2-p5" + + /* Macros dealing with MPFR VERSION */ + #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) +@@ -861,7 +861,7 @@ + _t = (mpfr_kind_t) _k; \ + _s = 1; \ + } else { \ +- _t = (mpfr_kind_t) -k; \ ++ _t = (mpfr_kind_t) - _k; \ + _s = -1; \ + } \ + _e = _t == MPFR_REGULAR_KIND ? (e) : \ +diff -Naurd mpfr-3.1.2-a/src/version.c mpfr-3.1.2-b/src/version.c +--- mpfr-3.1.2-a/src/version.c 2013-12-01 11:07:49.575329762 +0000 ++++ mpfr-3.1.2-b/src/version.c 2013-12-01 11:07:49.747331585 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "3.1.2-p4"; ++ return "3.1.2-p5"; + } diff --git a/core/nfs-utils/PKGBUILD b/core/nfs-utils/PKGBUILD index df05a0fac..b1f4d1607 100644 --- a/core/nfs-utils/PKGBUILD +++ b/core/nfs-utils/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 191387 2013-07-25 11:24:46Z tpowa $ +# $Id: PKGBUILD 200306 2013-11-25 08:16:32Z tpowa $ # Maintainer: Tobias Powalowski # Contributor: John Proctor # Contributor: dibblethewrecker @@ -6,8 +6,8 @@ # Contributor: Marco Lima pkgname=nfs-utils -pkgver=1.2.8 -pkgrel=9 +pkgver=1.2.9 +pkgrel=1 pkgdesc="Support programs for Network File Systems" arch=('i686' 'x86_64') url='http://nfs.sourceforge.net' @@ -38,7 +38,7 @@ source=(http://downloads.sourceforge.net/project/nfs/${pkgname}/${pkgver}/${pkgn install=nfs-utils.install optdepends=('sqlite: for nfsdcltrack usage') -md5sums=('6e7d97de51e428a0b8698c16ca23db77' +md5sums=('18869d16db3f49c053f8c68eba3fe2e0' 'f73f197a16b02c3e248488ec35c4cf43' '9cef69bc686cc5dcac23fbb51450747d' 'ff585faf410a62c4333a027c50b56bae' diff --git a/core/openldap/PKGBUILD b/core/openldap/PKGBUILD index 98807de9e..424e77ff9 100644 --- a/core/openldap/PKGBUILD +++ b/core/openldap/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 198764 2013-11-03 16:44:35Z eric $ +# $Id: PKGBUILD 200710 2013-12-02 22:13:10Z eric $ # Maintainer: pkgbase=openldap pkgname=('libldap' 'openldap') -pkgver=2.4.37 +pkgver=2.4.38 pkgrel=1 arch=('i686' 'x86_64') url="http://www.openldap.org/" @@ -12,7 +12,7 @@ makedepends=('libltdl' 'libsasl' 'e2fsprogs' 'util-linux' 'chrpath') options=('!makeflags') source=(ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/${pkgbase}-${pkgver}.tgz slapd.service slapd.tmpfiles openldap-ntlm.patch) -sha1sums=('179b3d51f7569cca768384fee92aa43c8a82c5d9' +sha1sums=('b15132075661761dca822270cdbeddc3c49a6193' '2441815efbfa01ad7a1d39068e5503b53d1d04b0' '59241a813d7508294e4ef1cec3bfe1f5495e109d' 'e4afd9f1c810ef4c4cd8fe1101dfe5887f2b7eef') diff --git a/core/openssh/PKGBUILD b/core/openssh/PKGBUILD index 08713020d..63b69d345 100644 --- a/core/openssh/PKGBUILD +++ b/core/openssh/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 194510 2013-09-17 03:04:46Z bisson $ +# $Id: PKGBUILD 199078 2013-11-08 16:53:32Z bisson $ # Maintainer: Gaetan Bisson # Contributor: Aaron Griffin # Contributor: judd pkgname=openssh -pkgver=6.3p1 +pkgver=6.4p1 pkgrel=1 pkgdesc='Free version of the SSH connectivity tools' url='http://www.openssh.org/portable.html' @@ -20,7 +20,7 @@ source=("ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/${pkgname}-${pkgver} 'sshd.service' 'sshd.socket' 'sshd.pam') -sha1sums=('70845ca79474258cab29dbefae13d93e41a83ccb' +sha1sums=('cf5fe0eb118d7e4f9296fbc5d6884965885fc55d' '6df5be396f8c593bb511a249a1453294d18a01a6' '6a0ff3305692cf83aca96e10f3bb51e1c26fccda' 'ec49c6beba923e201505f5669cea48cad29014db' diff --git a/core/openssl/PKGBUILD b/core/openssl/PKGBUILD index 35d52bef9..f3d13b221 100644 --- a/core/openssl/PKGBUILD +++ b/core/openssl/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 197168 2013-10-23 13:51:53Z pierre $ +# $Id: PKGBUILD 199034 2013-11-07 14:18:31Z pierre $ # Maintainer: Pierre Schmitz pkgname=openssl @@ -6,7 +6,7 @@ _ver=1.0.1e # use a pacman compatible version scheme pkgver=${_ver/[a-z]/.${_ver//[0-9.]/}} #pkgver=$_ver -pkgrel=4 +pkgrel=5 pkgdesc='The Open Source toolkit for Secure Sockets Layer and Transport Layer Security' arch=('i686' 'x86_64') url='https://www.openssl.org' @@ -19,12 +19,16 @@ source=("https://www.openssl.org/source/${pkgname}-${_ver}.tar.gz" "https://www.openssl.org/source/${pkgname}-${_ver}.tar.gz.asc" 'no-rpath.patch' 'ca-dir.patch' - 'openssl-1.0.1e-fix_pod_syntax-1.patch') + 'openssl-1.0.1e-fix_pod_syntax-1.patch' + 'openssl-1.0.1-Check-DTLS_BAD_VER-for-version-number.patch' + 'openssl-1.0.1-e_aes_cbc_hmac_sha1.c-fix-rare-bad-record-mac-on-AES.patch') md5sums=('66bf6f10f060d561929de96f9dfe5b8c' 'SKIP' 'dc78d3d06baffc16217519242ce92478' '3bf51be3a1bbd262be46dc619f92aa90' - '88d3bef4bbdc640b0412315d8d347bdf') + '88d3bef4bbdc640b0412315d8d347bdf' + 'ae7848bb152b8834ceff30c8c480d422' + 'c5cc62a47cef72f4e5ad119a88e97ae4') prepare() { cd $srcdir/$pkgname-$_ver @@ -35,6 +39,12 @@ prepare() { patch -p0 -i $srcdir/ca-dir.patch patch -p1 -i $srcdir/openssl-1.0.1e-fix_pod_syntax-1.patch + # OpenSSL 1.0.0k, 1.0.1.d, 1.0.1e fail handshake with DTLS1_BAD_VER + # http://rt.openssl.org/Ticket/Display.html?id=2984 + patch -p1 -i $srcdir/openssl-1.0.1-Check-DTLS_BAD_VER-for-version-number.patch + # Communication problems with 1.0.1e + # http://rt.openssl.org/Ticket/Display.html?id=3002 + patch -p1 -i $srcdir/openssl-1.0.1-e_aes_cbc_hmac_sha1.c-fix-rare-bad-record-mac-on-AES.patch } build() { diff --git a/core/openssl/openssl-1.0.1-Check-DTLS_BAD_VER-for-version-number.patch b/core/openssl/openssl-1.0.1-Check-DTLS_BAD_VER-for-version-number.patch new file mode 100644 index 000000000..5a88220c3 --- /dev/null +++ b/core/openssl/openssl-1.0.1-Check-DTLS_BAD_VER-for-version-number.patch @@ -0,0 +1,31 @@ +From 9fe4603b8245425a4c46986ed000fca054231253 Mon Sep 17 00:00:00 2001 +From: David Woodhouse +Date: Tue, 12 Feb 2013 14:55:32 +0000 +Subject: Check DTLS_BAD_VER for version number. + +The version check for DTLS1_VERSION was redundant as +DTLS1_VERSION > TLS1_1_VERSION, however we do need to +check for DTLS1_BAD_VER for compatibility. + +PR:2984 +(cherry picked from commit d980abb22e22661e98e5cee33d760ab0c7584ecc) +--- + ssl/s3_cbc.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ssl/s3_cbc.c b/ssl/s3_cbc.c +index 02edf3f..443a31e 100644 +--- a/ssl/s3_cbc.c ++++ b/ssl/s3_cbc.c +@@ -148,7 +148,7 @@ int tls1_cbc_remove_padding(const SSL* s, + unsigned padding_length, good, to_check, i; + const unsigned overhead = 1 /* padding length byte */ + mac_size; + /* Check if version requires explicit IV */ +- if (s->version >= TLS1_1_VERSION || s->version == DTLS1_VERSION) ++ if (s->version >= TLS1_1_VERSION || s->version == DTLS1_BAD_VER) + { + /* These lengths are all public so we can test them in + * non-constant time. +-- +1.8.4.2 + diff --git a/core/openssl/openssl-1.0.1-e_aes_cbc_hmac_sha1.c-fix-rare-bad-record-mac-on-AES.patch b/core/openssl/openssl-1.0.1-e_aes_cbc_hmac_sha1.c-fix-rare-bad-record-mac-on-AES.patch new file mode 100644 index 000000000..f1a251227 --- /dev/null +++ b/core/openssl/openssl-1.0.1-e_aes_cbc_hmac_sha1.c-fix-rare-bad-record-mac-on-AES.patch @@ -0,0 +1,32 @@ +From 9ab3ce124616cb12bd39c6aa1e1bde0f46969b29 Mon Sep 17 00:00:00 2001 +From: Andy Polyakov +Date: Mon, 18 Mar 2013 19:29:41 +0100 +Subject: e_aes_cbc_hmac_sha1.c: fix rare bad record mac on AES-NI plaforms. + +PR: 3002 +(cherry picked from commit 5c60046553716fcf160718f59160493194f212dc) +--- + crypto/evp/e_aes_cbc_hmac_sha1.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/crypto/evp/e_aes_cbc_hmac_sha1.c b/crypto/evp/e_aes_cbc_hmac_sha1.c +index 483e04b..fb2c884 100644 +--- a/crypto/evp/e_aes_cbc_hmac_sha1.c ++++ b/crypto/evp/e_aes_cbc_hmac_sha1.c +@@ -328,10 +328,11 @@ static int aesni_cbc_hmac_sha1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, + + if (res!=SHA_CBLOCK) continue; + +- mask = 0-((inp_len+8-j)>>(sizeof(j)*8-1)); ++ /* j is not incremented yet */ ++ mask = 0-((inp_len+7-j)>>(sizeof(j)*8-1)); + data->u[SHA_LBLOCK-1] |= bitlen&mask; + sha1_block_data_order(&key->md,data,1); +- mask &= 0-((j-inp_len-73)>>(sizeof(j)*8-1)); ++ mask &= 0-((j-inp_len-72)>>(sizeof(j)*8-1)); + pmac->u[0] |= key->md.h0 & mask; + pmac->u[1] |= key->md.h1 & mask; + pmac->u[2] |= key->md.h2 & mask; +-- +1.8.4.2 + diff --git a/core/openvpn/PKGBUILD b/core/openvpn/PKGBUILD index 47050c051..cce0d84ec 100644 --- a/core/openvpn/PKGBUILD +++ b/core/openvpn/PKGBUILD @@ -1,34 +1,25 @@ -# $Id: PKGBUILD 197835 2013-10-30 11:06:16Z allan $ +# $Id: PKGBUILD 199780 2013-11-16 09:28:42Z thomas $ # Maintainer: Thomas Bächler pkgname=openvpn pkgver=2.3.2 -pkgrel=1 +pkgrel=2 pkgdesc="An easy-to-use, robust, and highly configurable VPN (Virtual Private Network)" arch=(i686 x86_64) url="http://openvpn.net/index.php/open-source.html" depends=('openssl' 'lzo2' 'iproute2') makedepends=('systemd') license=('custom') -backup=(usr/share/openvpn/easy-rsa/vars - usr/share/openvpn/easy-rsa/openssl-1.0.0.cnf) +install=openvpn.install source=(http://swupdate.openvpn.net/community/releases/openvpn-${pkgver}.tar.gz http://swupdate.openvpn.net/community/releases/openvpn-${pkgver}.tar.gz.asc - http://build.openvpn.net/downloads/releases/easy-rsa-2.2.0_master.tar.gz - http://build.openvpn.net/downloads/releases/easy-rsa-2.2.0_master.tar.gz.asc - openvpn@.service - openvpn-2.3.0-fix-systemd-ask-password-path.patch) + openvpn@.service) md5sums=('06e5f93dbf13f2c19647ca15ffc23ac1' 'SKIP' - 'fbf818b6e1f212e77b9ce0e6d92584a1' - 'SKIP' - '57ef7353ba2c28c04dfc387c3ca77a4f' - 'e1bd1523e38745e948c710db1a330bb1') + '71fab8d1c2aa3a1f2609e259eaaf88b3') build() { - cd $srcdir/$pkgname-$pkgver - patch -p0 -i $srcdir/openvpn-2.3.0-fix-systemd-ask-password-path.patch - # Build openvpn + cd "${srcdir}"/$pkgname-$pkgver CFLAGS="$CFLAGS -DPLUGIN_LIBDIR=\\\"/usr/lib/openvpn\\\"" ./configure \ --prefix=/usr \ --sbindir=/usr/bin \ @@ -37,29 +28,22 @@ build() { --enable-iproute2 \ --enable-systemd make - # Build easy-rsa - cd $srcdir/easy-rsa-2.2.0_master - ./configure --prefix=/usr --with-easyrsadir=/usr/share/openvpn/easy-rsa - make } package() { - cd $srcdir/$pkgname-$pkgver + cd "${srcdir}"/$pkgname-$pkgver # Install openvpn - make DESTDIR=$pkgdir install - install -d -m755 $pkgdir/etc/openvpn + make DESTDIR="${pkgdir}" install + install -d -m755 "${pkgdir}"/etc/openvpn # Install examples - install -d -m755 $pkgdir/usr/share/openvpn - cp -r sample/sample-config-files $pkgdir/usr/share/openvpn/examples + install -d -m755 "${pkgdir}"/usr/share/openvpn + cp -r sample/sample-config-files "${pkgdir}"/usr/share/openvpn/examples # Install license - install -D -m644 COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING + install -d -m755 "${pkgdir}"/usr/share/licenses/${pkgname}/ + ln -sf /usr/share/doc/${pkgname}/{COPYING,COPYRIGHT.GPL} "${pkgdir}"/usr/share/licenses/${pkgname}/ # Install contrib - install -d -m755 $pkgdir/usr/share/openvpn/contrib - cp -r contrib $pkgdir/usr/share/openvpn - # Install easy-rsa - cd $srcdir/easy-rsa-2.2.0_master - make install DESTDIR=$pkgdir - rm -f ${pkgdir}/usr/share/openvpn/easy-rsa/openssl-0.9.?.cnf - # Install rc scripts - install -D -m644 $srcdir/openvpn@.service $pkgdir/usr/lib/systemd/system/openvpn@.service + install -d -m755 "${pkgdir}"/usr/share/openvpn/contrib + cp -r contrib "${pkgdir}"/usr/share/openvpn + # Install systemd service + install -D -m644 "${srcdir}"/openvpn@.service "${pkgdir}"/usr/lib/systemd/system/openvpn@.service } diff --git a/core/openvpn/openvpn-2.3.0-fix-systemd-ask-password-path.patch b/core/openvpn/openvpn-2.3.0-fix-systemd-ask-password-path.patch deleted file mode 100644 index 77291727a..000000000 --- a/core/openvpn/openvpn-2.3.0-fix-systemd-ask-password-path.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- src/openvpn/console.c.orig 2013-01-30 09:42:57.480257300 +0100 -+++ src/openvpn/console.c 2013-01-30 09:43:07.446179811 +0100 -@@ -162,7 +162,7 @@ get_console_input_systemd (const char *p - struct argv argv; - - argv_init (&argv); -- argv_printf (&argv, "/bin/systemd-ask-password"); -+ argv_printf (&argv, "/usr/bin/systemd-ask-password"); - argv_printf_cat (&argv, "%s", prompt); - - if ((std_out = openvpn_popen (&argv, NULL)) < 0) { diff --git a/core/openvpn/openvpn.install b/core/openvpn/openvpn.install new file mode 100644 index 000000000..5fd3285cb --- /dev/null +++ b/core/openvpn/openvpn.install @@ -0,0 +1,8 @@ +## arg 1: the new package version +## arg 2: the old package version +post_upgrade() { + if [ $(vercmp 2.3.2-1 $2) -ge 0 ]; then + echo ">>> easy-rsa has moved into its own package. Run:" + echo ">>> # pacman -S easy-rsa" + fi +} diff --git a/core/openvpn/openvpn@.service b/core/openvpn/openvpn@.service index 63fdf0e36..de456266f 100644 --- a/core/openvpn/openvpn@.service +++ b/core/openvpn/openvpn@.service @@ -1,6 +1,5 @@ [Unit] Description=OpenVPN connection to %i -After=network.target [Service] Type=forking diff --git a/core/pcre/PKGBUILD b/core/pcre/PKGBUILD index ed0c13f86..4dc805e9f 100644 --- a/core/pcre/PKGBUILD +++ b/core/pcre/PKGBUILD @@ -1,18 +1,18 @@ -# $Id: PKGBUILD 197154 2013-10-23 13:04:19Z allan $ +# $Id: PKGBUILD 202198 2013-12-19 09:22:02Z allan $ # Maintainer: Allan McRae # Contributor: Eric Belanger # Contributor: John Proctor pkgname=pcre -pkgver=8.33 -pkgrel=2 +pkgver=8.34 +pkgrel=1 pkgdesc="A library that implements Perl 5-style regular expressions" arch=('i686' 'x86_64') url="http://www.pcre.org/" license=('BSD') depends=('gcc-libs') source=(ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/${pkgname}-${pkgver}.tar.bz2{,.sig}) -md5sums=('21514018448ac10062ece7a668fca949' +md5sums=('5439e321351bddd5533551bbce128d07' 'SKIP') build() { diff --git a/core/procps-ng/PKGBUILD b/core/procps-ng/PKGBUILD index faa14dadc..3942603bd 100644 --- a/core/procps-ng/PKGBUILD +++ b/core/procps-ng/PKGBUILD @@ -1,23 +1,23 @@ -# $Id: PKGBUILD 197838 2013-10-30 11:06:38Z allan $ +# $Id: PKGBUILD 201333 2013-12-09 03:38:18Z bisson $ # Maintainer: Gaetan Bisson # Contributor: Eric Bélanger pkgname=procps-ng -pkgver=3.3.8 -pkgrel=3 +pkgver=3.3.9 +pkgrel=1 pkgdesc='Utilities for monitoring your system and its processes' -url='http://gitorious.org/procps' +url='http://sourceforge.net/projects/procps-ng/' license=('GPL' 'LGPL') arch=('i686' 'x86_64') depends=('ncurses') source=("http://downloads.sourceforge.net/project/${pkgname}/Production/${pkgname}-${pkgver}.tar.xz") -sha1sums=('4fa6a373f969989a9e490df5eb49a2df62eca19a') +sha1sums=('088c77631745fc75ee41fc29c254a4069be4869a') groups=('base') -conflicts=('procps') -provides=('procps') -replaces=('procps') +conflicts=('procps' 'sysvinit-tools') +provides=('procps' 'sysvinit-tools') +replaces=('procps' 'sysvinit-tools') install=install @@ -30,7 +30,7 @@ build() { --libdir=/usr/lib \ --bindir=/usr/bin \ --sbindir=/usr/bin \ - --disable-static + make } diff --git a/core/s-nail/PKGBUILD b/core/s-nail/PKGBUILD index dc046d5c5..bf726ac6b 100644 --- a/core/s-nail/PKGBUILD +++ b/core/s-nail/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 197187 2013-10-23 17:10:51Z bisson $ +# $Id: PKGBUILD 202657 2013-12-23 17:15:07Z bisson $ # Maintainer: Gaetan Bisson # Contributor: Stéphane Gaudreault # Contributor: Sergej Pupykin # Contributor: Andreas Wagner pkgname=s-nail -pkgver=14.4.5 +pkgver=14.5 pkgrel=1 pkgdesc='Mail processing system with a command syntax reminiscent of ed' url='http://sourceforge.net/projects/s-nail/' @@ -14,7 +14,7 @@ arch=('i686' 'x86_64') depends=('openssl') optdepends=('smtp-forwarder: for sending mail') source=("http://downloads.sourceforge.net/project/${pkgname}/${pkgname}-${pkgver//./_}.tar.gz") -sha1sums=('cc972ddacdf9593739289eb0589ad0939255dfd7') +sha1sums=('0c7341f7404f7113a3c4ed915adfed720379e8e7') groups=('base') backup=('etc/mail.rc') @@ -22,11 +22,6 @@ replaces=('mailx' 'mailx-heirloom' 'heirloom-mailx') provides=('mailx' 'mailx-heirloom' 'heirloom-mailx') conflicts=('mailx' 'mailx-heirloom' 'heirloom-mailx') -prepare() { - cd "${srcdir}/${pkgname}-${pkgver}" - sed 's/s-nail/mail/g' -i cc-test.sh -} - build() { cd "${srcdir}/${pkgname}-${pkgver}" make \ @@ -36,12 +31,9 @@ build() { MAILSPOOL=/var/spool/mail \ SID= NAIL=mail \ config - make \ - CFLAGS="${CFLAGS} ${CPPFLAGS}" \ - LDFLAGS="${LDFLAGS}" \ - build -} + make build +} check() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/core/systemd/0001-fstab-generator-When-parsing-the-root-cmdline-option.patch b/core/systemd/0001-fstab-generator-When-parsing-the-root-cmdline-option.patch new file mode 100644 index 000000000..3cdbcf02d --- /dev/null +++ b/core/systemd/0001-fstab-generator-When-parsing-the-root-cmdline-option.patch @@ -0,0 +1,29 @@ +From 7f5806d7095a197e4788a7803642831beec295bf Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Thomas=20B=C3=A4chler?= +Date: Mon, 30 Sep 2013 00:32:33 +0200 +Subject: [PATCH 1/7] fstab-generator: When parsing the root= cmdline option, + set FsckPassNo to 1 + +[tomegun: without this we would never fsck the rootfs if it was directly +mounted 'rw' from the initrd. We now risk fsck'ing it twice in the case it +is mounted 'ro', so that should be addressed in a separate patch.] +--- + src/fstab-generator/fstab-generator.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c +index 9e7d55d..a7536f8 100644 +--- a/src/fstab-generator/fstab-generator.c ++++ b/src/fstab-generator/fstab-generator.c +@@ -442,7 +442,7 @@ static int parse_new_root_from_proc_cmdline(void) { + } + + log_debug("Found entry what=%s where=/sysroot type=%s", what, type); +- r = add_mount(what, "/sysroot", type, opts, 0, noauto, nofail, false, ++ r = add_mount(what, "/sysroot", type, opts, 1, noauto, nofail, false, + SPECIAL_INITRD_ROOT_FS_TARGET, "/proc/cmdline"); + + return (r < 0) ? r : 0; +-- +1.8.5.1 + diff --git a/core/systemd/0001-login-Don-t-stop-a-running-user-manager-from-garbage.patch b/core/systemd/0001-login-Don-t-stop-a-running-user-manager-from-garbage.patch new file mode 100644 index 000000000..9a92209e3 --- /dev/null +++ b/core/systemd/0001-login-Don-t-stop-a-running-user-manager-from-garbage.patch @@ -0,0 +1,36 @@ +From 95842c3f552072c9d153b3c0200f1bbb5bc3c2fb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Thomas=20B=C3=A4chler?= +Date: Sun, 15 Dec 2013 12:18:00 +0100 +Subject: [PATCH] login: Don't stop a running user manager from + garbage-collecting the user. + +With the current logic, a user will never be garbage-collected, since its +manager will always be around. Change the logic such that a user is +garbage-collected when it has no sessions and linger is disabled. + +This is a backport from the master branch to 208 which also backports +the improved handling of running slice and service jobs. +--- + src/login/logind-user.c | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/src/login/logind-user.c b/src/login/logind-user.c +index adbe638..e2fce5c 100644 +--- a/src/login/logind-user.c ++++ b/src/login/logind-user.c +@@ -629,12 +629,6 @@ int user_check_gc(User *u, bool drop_not_started) { + if (u->slice_job || u->service_job) + return 1; + +- if (u->slice && manager_unit_is_active(u->manager, u->slice) != 0) +- return 1; +- +- if (u->service && manager_unit_is_active(u->manager, u->service) != 0) +- return 1; +- + return 0; + } + +-- +1.8.5.1 + diff --git a/core/systemd/0002-fstab-generator-Generate-explicit-dependencies-on-sy.patch b/core/systemd/0002-fstab-generator-Generate-explicit-dependencies-on-sy.patch new file mode 100644 index 000000000..57edf64b4 --- /dev/null +++ b/core/systemd/0002-fstab-generator-Generate-explicit-dependencies-on-sy.patch @@ -0,0 +1,102 @@ +From 64e70e4b86d3f732d3513189312f6220d1d5cfbc Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Thomas=20B=C3=A4chler?= +Date: Mon, 30 Sep 2013 01:34:44 +0200 +Subject: [PATCH 2/7] fstab-generator: Generate explicit dependencies on + systemd-fsck@.service instead of using FsckPassNo + +[tomegun: + * order all fsck instances after fsck-root + * check for OOM + * added notes in the manpages] +--- + man/systemd-fsck@.service.xml | 3 ++- + man/systemd-fstab-generator.xml | 5 +++++ + src/fstab-generator/fstab-generator.c | 21 +++++++++++++++++---- + units/systemd-fsck@.service.in | 2 +- + 4 files changed, 25 insertions(+), 6 deletions(-) + +diff --git a/man/systemd-fsck@.service.xml b/man/systemd-fsck@.service.xml +index e934352..17bd1c0 100644 +--- a/man/systemd-fsck@.service.xml ++++ b/man/systemd-fsck@.service.xml +@@ -62,7 +62,8 @@ + system + check. systemd-fsck-root.service is + responsible for file system checks on the root +- file system. ++ file system. The root file system check is performed ++ before the other file systems. + + systemd-fsck will + forward file system checking progress to the +diff --git a/man/systemd-fstab-generator.xml b/man/systemd-fstab-generator.xml +index 9ca16c7..740db8f 100644 +--- a/man/systemd-fstab-generator.xml ++++ b/man/systemd-fstab-generator.xml +@@ -61,6 +61,11 @@ + reloaded. This will instantiate mount and swap units + as necessary. + ++ The passno field ++ is treated like a simlpe boolean, and the ordering information ++ is discarded. However, the root filesystem is checked ++ before all the other filesystems. ++ + See + systemd.mount5 + and +diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c +index a7536f8..77247de 100644 +--- a/src/fstab-generator/fstab-generator.c ++++ b/src/fstab-generator/fstab-generator.c +@@ -209,17 +209,30 @@ static int add_mount( + "Before=%s\n", + post); + ++ if (passno > 0) { ++ _cleanup_free_ char *fsck = NULL; ++ ++ fsck = unit_name_from_path_instance("systemd-fsck", what, ".service"); ++ if (!fsck) ++ return log_oom(); ++ ++ fprintf(f, ++ "Requires=%s\n" ++ "After=%s\n", ++ fsck, ++ fsck); ++ } ++ ++ + fprintf(f, + "\n" + "[Mount]\n" + "What=%s\n" + "Where=%s\n" +- "Type=%s\n" +- "FsckPassNo=%i\n", ++ "Type=%s\n", + what, + where, +- type, +- passno); ++ type); + + if (!isempty(opts) && + !streq(opts, "defaults")) +diff --git a/units/systemd-fsck@.service.in b/units/systemd-fsck@.service.in +index e229cdc..c12efa8 100644 +--- a/units/systemd-fsck@.service.in ++++ b/units/systemd-fsck@.service.in +@@ -10,7 +10,7 @@ Description=File System Check on %f + Documentation=man:systemd-fsck@.service(8) + DefaultDependencies=no + BindsTo=%i.device +-After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device ++After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device systemd-fsck-root.service + Before=shutdown.target + + [Service] +-- +1.8.5.1 + diff --git a/core/systemd/0003-gpt-auto-generator-Generate-explicit-dependencies-on.patch b/core/systemd/0003-gpt-auto-generator-Generate-explicit-dependencies-on.patch new file mode 100644 index 000000000..c1b3aa049 --- /dev/null +++ b/core/systemd/0003-gpt-auto-generator-Generate-explicit-dependencies-on.patch @@ -0,0 +1,55 @@ +From 4c8bda2442bfc6d84a5deb241dc29efcb81bf3af Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Thomas=20B=C3=A4chler?= +Date: Mon, 30 Sep 2013 01:34:45 +0200 +Subject: [PATCH 3/7] gpt-auto-generator: Generate explicit dependencies on + systemd-fsck@.service instead of using FsckPassNo + +[tomegun: check for OOM] +--- + src/gpt-auto-generator/gpt-auto-generator.c | 14 +++++++++----- + 1 file changed, 9 insertions(+), 5 deletions(-) + +diff --git a/src/gpt-auto-generator/gpt-auto-generator.c b/src/gpt-auto-generator/gpt-auto-generator.c +index fae4b71..25440e7 100644 +--- a/src/gpt-auto-generator/gpt-auto-generator.c ++++ b/src/gpt-auto-generator/gpt-auto-generator.c +@@ -182,7 +182,7 @@ static int add_swap(const char *path, const char *fstype) { + } + + static int add_home(const char *path, const char *fstype) { +- _cleanup_free_ char *unit = NULL, *lnk = NULL; ++ _cleanup_free_ char *unit = NULL, *lnk = NULL, *fsck = NULL; + _cleanup_fclose_ FILE *f = NULL; + + if (dir_is_empty("/home") <= 0) +@@ -200,19 +200,23 @@ static int add_home(const char *path, const char *fstype) { + return -errno; + } + ++ fsck = unit_name_from_path_instance("systemd-fsck", path, ".service"); ++ if (!fsck) ++ return log_oom(); ++ + fprintf(f, + "# Automatically generated by systemd-gpt-auto-generator\n\n" + "[Unit]\n" + "DefaultDependencies=no\n" +- "After=" SPECIAL_LOCAL_FS_PRE_TARGET "\n" ++ "Requires=%s\n" ++ "After=" SPECIAL_LOCAL_FS_PRE_TARGET " %s\n" + "Conflicts=" SPECIAL_UMOUNT_TARGET "\n" + "Before=" SPECIAL_UMOUNT_TARGET " " SPECIAL_LOCAL_FS_TARGET "\n\n" + "[Mount]\n" + "What=%s\n" + "Where=/home\n" +- "Type=%s\n" +- "FsckPassNo=2\n", +- path, fstype); ++ "Type=%s\n", ++ fsck, fsck, path, fstype); + + fflush(f); + if (ferror(f)) { +-- +1.8.5.1 + diff --git a/core/systemd/0004-Remove-FsckPassNo-from-systemd-fsck-root.service.patch b/core/systemd/0004-Remove-FsckPassNo-from-systemd-fsck-root.service.patch new file mode 100644 index 000000000..90ff5456f --- /dev/null +++ b/core/systemd/0004-Remove-FsckPassNo-from-systemd-fsck-root.service.patch @@ -0,0 +1,22 @@ +From 4952a9beff339b75641a7a84c226c11d6bd680c4 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Thomas=20B=C3=A4chler?= +Date: Mon, 30 Sep 2013 01:34:46 +0200 +Subject: [PATCH 4/7] Remove FsckPassNo from systemd-fsck-root.service + +--- + units/systemd-fsck-root.service.in | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/units/systemd-fsck-root.service.in b/units/systemd-fsck-root.service.in +index 4388314..4162983 100644 +--- a/units/systemd-fsck-root.service.in ++++ b/units/systemd-fsck-root.service.in +@@ -19,5 +19,4 @@ Type=oneshot + RemainAfterExit=yes + ExecStart=@rootlibexecdir@/systemd-fsck + StandardOutput=journal+console +-FsckPassNo=1 + TimeoutSec=0 +-- +1.8.5.1 + diff --git a/core/systemd/0005-mount-service-drop-FsckPassNo-support.patch b/core/systemd/0005-mount-service-drop-FsckPassNo-support.patch new file mode 100644 index 000000000..9758c4676 --- /dev/null +++ b/core/systemd/0005-mount-service-drop-FsckPassNo-support.patch @@ -0,0 +1,364 @@ +From accdd018ede77ef1c057775396c18c73406cbcb4 Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Sat, 5 Oct 2013 17:28:09 +0200 +Subject: [PATCH 5/7] mount/service: drop FsckPassNo support + +We now treat passno as boleans in the generators, and don't need this any more. fsck itself +is able to sequentialize checks on the same local media, so in the common case the ordering +is redundant. + +It is still possible to force an order by using .d fragments, in case that is desired. +--- + TODO | 4 --- + man/systemd.mount.xml | 22 --------------- + man/systemd.service.xml | 27 ------------------- + src/core/load-fragment-gperf.gperf.m4 | 2 -- + src/core/load-fragment.c | 30 --------------------- + src/core/load-fragment.h | 1 - + src/core/mount.c | 32 +--------------------- + src/core/mount.h | 1 - + src/core/service.c | 51 ----------------------------------- + src/core/service.h | 2 -- + 10 files changed, 1 insertion(+), 171 deletions(-) + +diff --git a/TODO b/TODO +index 29a76ef..f0060d9 100644 +--- a/TODO ++++ b/TODO +@@ -84,8 +84,6 @@ Features: + + * ensure scope units may be started only a single time + +-* document that in instead of FsckPassNo= people should just add a manual dep to systemd-fsck@.service to their mount units. +- + * better error message if you run systemctl without systemd running + + * systemctl status output should should include list of triggering units and their status +@@ -562,8 +560,6 @@ Features: + + * when breaking cycles drop sysv services first, then services from /run, then from /etc, then from /usr + +-* move passno parsing to fstab generator +- + * automount: implement expire: + - set superblock timeout AUTOFS_DEV_IOCTL_TIMEOUT_CMD + - periodically run AUTOFS_DEV_IOCTL_EXPIRE_CMD +diff --git a/man/systemd.mount.xml b/man/systemd.mount.xml +index 48af1ca..217289a 100644 +--- a/man/systemd.mount.xml ++++ b/man/systemd.mount.xml +@@ -273,28 +273,6 @@ + + + +- Compatibility Options +- +- The following option is also available in the +- [Mount] section, but exists purely +- for compatibility reasons and should not be used in +- newly written mount files. +- +- +- +- FsckPassNo= +- +- The pass number for +- the file system checking service for +- this mount. See +- systemd.service5 +- for more information on this setting. +- +- +- +- +- +- + See Also + + systemd1, +diff --git a/man/systemd.service.xml b/man/systemd.service.xml +index 81a4078..b1e3af2 100644 +--- a/man/systemd.service.xml ++++ b/man/systemd.service.xml +@@ -970,33 +970,6 @@ + range 0-99. + + +- +- FsckPassNo= +- Set the fsck passno +- priority to use to order this service +- in relation to other file system +- checking services. This option is only +- necessary to fix ordering in relation +- to fsck jobs automatically created for +- all /etc/fstab +- entries with a value in the fs_passno +- column > 0. As such it should only be +- used as option for fsck +- services. Almost always it is a better +- choice to add explicit ordering +- directives via +- After= or +- Before=, +- instead. For more details see +- systemd.unit5. If +- used, pass an integer value in the +- same range as +- /etc/fstab's +- fs_passno column. See +- fstab5 +- for details. +- +- + + + +diff --git a/src/core/load-fragment-gperf.gperf.m4 b/src/core/load-fragment-gperf.gperf.m4 +index 31fb7bc..e3025d2 100644 +--- a/src/core/load-fragment-gperf.gperf.m4 ++++ b/src/core/load-fragment-gperf.gperf.m4 +@@ -173,7 +173,6 @@ Service.NonBlocking, config_parse_bool, 0, + Service.BusName, config_parse_unit_string_printf, 0, offsetof(Service, bus_name) + Service.NotifyAccess, config_parse_notify_access, 0, offsetof(Service, notify_access) + Service.Sockets, config_parse_service_sockets, 0, 0 +-Service.FsckPassNo, config_parse_fsck_passno, 0, offsetof(Service, fsck_passno) + EXEC_CONTEXT_CONFIG_ITEMS(Service)m4_dnl + CGROUP_CONTEXT_CONFIG_ITEMS(Service)m4_dnl + KILL_CONTEXT_CONFIG_ITEMS(Service)m4_dnl +@@ -225,7 +224,6 @@ Mount.What, config_parse_string, 0, + Mount.Where, config_parse_path, 0, offsetof(Mount, where) + Mount.Options, config_parse_string, 0, offsetof(Mount, parameters_fragment.options) + Mount.Type, config_parse_string, 0, offsetof(Mount, parameters_fragment.fstype) +-Mount.FsckPassNo, config_parse_fsck_passno, 0, offsetof(Mount, parameters_fragment.passno) + Mount.TimeoutSec, config_parse_sec, 0, offsetof(Mount, timeout_usec) + Mount.DirectoryMode, config_parse_mode, 0, offsetof(Mount, directory_mode) + EXEC_CONTEXT_CONFIG_ITEMS(Mount)m4_dnl +diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c +index fb7efca..4067930 100644 +--- a/src/core/load-fragment.c ++++ b/src/core/load-fragment.c +@@ -1033,35 +1033,6 @@ int config_parse_sysv_priority(const char *unit, + } + #endif + +-int config_parse_fsck_passno(const char *unit, +- const char *filename, +- unsigned line, +- const char *section, +- const char *lvalue, +- int ltype, +- const char *rvalue, +- void *data, +- void *userdata) { +- +- int *passno = data; +- int i, r; +- +- assert(filename); +- assert(lvalue); +- assert(rvalue); +- assert(data); +- +- r = safe_atoi(rvalue, &i); +- if (r || i < 0) { +- log_syntax(unit, LOG_ERR, filename, line, -r, +- "Failed to parse fsck pass number, ignoring: %s", rvalue); +- return 0; +- } +- +- *passno = (int) i; +- return 0; +-} +- + DEFINE_CONFIG_PARSE_ENUM(config_parse_kill_mode, kill_mode, KillMode, "Failed to parse kill mode"); + + int config_parse_kill_signal(const char *unit, +@@ -2708,7 +2679,6 @@ void unit_dump_config_items(FILE *f) { + { config_parse_start_limit_action, "ACTION" }, + { config_parse_set_status, "STATUS" }, + { config_parse_service_sockets, "SOCKETS" }, +- { config_parse_fsck_passno, "PASSNO" }, + { config_parse_environ, "ENVIRON" }, + { config_parse_syscall_filter, "SYSCALL" }, + { config_parse_cpu_shares, "SHARES" }, +diff --git a/src/core/load-fragment.h b/src/core/load-fragment.h +index 90e5e3a..404df76 100644 +--- a/src/core/load-fragment.h ++++ b/src/core/load-fragment.h +@@ -56,7 +56,6 @@ int config_parse_exec_secure_bits(const char *unit, const char *filename, unsign + int config_parse_bounding_set(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); + int config_parse_limit(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); + int config_parse_sysv_priority(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); +-int config_parse_fsck_passno(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); + int config_parse_kill_signal(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); + int config_parse_exec_mount_flags(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); + int config_parse_timer(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); +diff --git a/src/core/mount.c b/src/core/mount.c +index 70cd372..88563b3 100644 +--- a/src/core/mount.c ++++ b/src/core/mount.c +@@ -313,33 +313,6 @@ static int mount_add_device_links(Mount *m) { + if (r < 0) + return r; + +- if (p->passno > 0 && +- UNIT(m)->manager->running_as == SYSTEMD_SYSTEM) { +- char *name; +- Unit *fsck; +- /* Let's add in the fsck service */ +- +- /* aka SPECIAL_FSCK_SERVICE */ +- name = unit_name_from_path_instance("systemd-fsck", p->what, ".service"); +- if (!name) +- return -ENOMEM; +- +- r = manager_load_unit_prepare(UNIT(m)->manager, name, NULL, NULL, &fsck); +- if (r < 0) { +- log_warning_unit(name, +- "Failed to prepare unit %s: %s", name, strerror(-r)); +- free(name); +- return r; +- } +- free(name); +- +- SERVICE(fsck)->fsck_passno = p->passno; +- +- r = unit_add_two_dependencies(UNIT(m), UNIT_AFTER, UNIT_REQUIRES, fsck, true); +- if (r < 0) +- return r; +- } +- + return 0; + } + +@@ -1410,7 +1383,6 @@ static int mount_add_one( + const char *where, + const char *options, + const char *fstype, +- int passno, + bool set_flags) { + int r; + Unit *u; +@@ -1530,8 +1502,6 @@ static int mount_add_one( + free(p->fstype); + p->fstype = f; + +- p->passno = passno; +- + if (load_extras) { + r = mount_add_extras(MOUNT(u)); + if (r < 0) +@@ -1601,7 +1571,7 @@ static int mount_load_proc_self_mountinfo(Manager *m, bool set_flags) { + if (!d || !p) + return log_oom(); + +- k = mount_add_one(m, d, p, o, fstype, 0, set_flags); ++ k = mount_add_one(m, d, p, o, fstype, set_flags); + if (k < 0) + r = k; + } +diff --git a/src/core/mount.h b/src/core/mount.h +index 7cd4320..a955069 100644 +--- a/src/core/mount.h ++++ b/src/core/mount.h +@@ -58,7 +58,6 @@ typedef struct MountParameters { + char *what; + char *options; + char *fstype; +- int passno; + } MountParameters; + + typedef enum MountResult { +diff --git a/src/core/service.c b/src/core/service.c +index 96ed2d3..ce75757 100644 +--- a/src/core/service.c ++++ b/src/core/service.c +@@ -1056,48 +1056,6 @@ static int service_load_sysv(Service *s) { + } + #endif + +-static int fsck_fix_order(Service *s) { +- Unit *other; +- int r; +- +- assert(s); +- +- if (s->fsck_passno <= 0) +- return 0; +- +- /* For each pair of services where both have an fsck priority +- * we order things based on it. */ +- +- LIST_FOREACH(units_by_type, other, UNIT(s)->manager->units_by_type[UNIT_SERVICE]) { +- Service *t; +- UnitDependency d; +- +- t = SERVICE(other); +- +- if (s == t) +- continue; +- +- if (UNIT(t)->load_state != UNIT_LOADED) +- continue; +- +- if (t->fsck_passno <= 0) +- continue; +- +- if (t->fsck_passno < s->fsck_passno) +- d = UNIT_AFTER; +- else if (t->fsck_passno > s->fsck_passno) +- d = UNIT_BEFORE; +- else +- continue; +- +- r = unit_add_dependency(UNIT(s), d, UNIT(t), true); +- if (r < 0) +- return r; +- } +- +- return 0; +-} +- + static int service_verify(Service *s) { + assert(s); + +@@ -1254,10 +1212,6 @@ static int service_load(Unit *u) { + return r; + #endif + +- r = fsck_fix_order(s); +- if (r < 0) +- return r; +- + if (s->bus_name) + if ((r = unit_watch_bus_name(u, s->bus_name)) < 0) + return r; +@@ -1381,11 +1335,6 @@ static void service_dump(Unit *u, FILE *f, const char *prefix) { + prefix, s->sysv_runlevels); + #endif + +- if (s->fsck_passno > 0) +- fprintf(f, +- "%sFsckPassNo: %i\n", +- prefix, s->fsck_passno); +- + if (s->status_text) + fprintf(f, "%sStatus Text: %s\n", + prefix, s->status_text); +diff --git a/src/core/service.h b/src/core/service.h +index ce5b5e0..37fa6ff 100644 +--- a/src/core/service.h ++++ b/src/core/service.h +@@ -157,8 +157,6 @@ struct Service { + pid_t main_pid, control_pid; + int socket_fd; + +- int fsck_passno; +- + bool permissions_start_only; + bool root_directory_start_only; + bool remain_after_exit; +-- +1.8.5.1 + diff --git a/core/systemd/0006-efi-boot-generator-hookup-to-fsck.patch b/core/systemd/0006-efi-boot-generator-hookup-to-fsck.patch new file mode 100644 index 000000000..3830ecfcf --- /dev/null +++ b/core/systemd/0006-efi-boot-generator-hookup-to-fsck.patch @@ -0,0 +1,81 @@ +From d09ee17da21b7ca2259067ac4e54f8a1cc3c0fc0 Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Sat, 5 Oct 2013 17:32:21 +0200 +Subject: [PATCH 6/7] efi-boot-generator: hookup to fsck + +--- + TODO | 1 - + src/efi-boot-generator/efi-boot-generator.c | 26 ++++++++++++++++++++++---- + 2 files changed, 22 insertions(+), 5 deletions(-) + +diff --git a/TODO b/TODO +index f0060d9..814d82d 100644 +--- a/TODO ++++ b/TODO +@@ -308,7 +308,6 @@ Features: + * introduce ExecCondition= in services + + * EFI: +- - fsck hookup for the ESP mount is missing + - write man page for efi boot generator + - honor language efi variables for default language selection (if there are any?) + - honor timezone efi variables for default timezone selection (if there are any?) +diff --git a/src/efi-boot-generator/efi-boot-generator.c b/src/efi-boot-generator/efi-boot-generator.c +index 05b95ed..e20d325 100644 +--- a/src/efi-boot-generator/efi-boot-generator.c ++++ b/src/efi-boot-generator/efi-boot-generator.c +@@ -26,13 +26,14 @@ + #include "path-util.h" + #include "util.h" + #include "mkdir.h" ++#include "unit-name.h" + + static const char *arg_dest = "/tmp"; + + int main(int argc, char *argv[]) { + int r = EXIT_SUCCESS; + sd_id128_t id; +- _cleanup_free_ char *name = NULL; ++ _cleanup_free_ char *name = NULL, *what = NULL, *fsck = NULL; + _cleanup_fclose_ FILE *f = NULL; + + if (argc > 1 && argc != 4) { +@@ -75,15 +76,32 @@ int main(int argc, char *argv[]) { + return EXIT_FAILURE; + } + ++ r = asprintf(&what, ++ "/dev/disk/by-partuuid/%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", ++ SD_ID128_FORMAT_VAL(id)); ++ if (r < 0) { ++ log_oom(); ++ return EXIT_FAILURE; ++ } ++ ++ fsck = unit_name_from_path_instance("systemd-fsck", what, ".service"); ++ if (!fsck) { ++ log_oom(); ++ return EXIT_FAILURE; ++ } ++ + fprintf(f, + "# Automatially generated by systemd-efi-boot-generator\n\n" + "[Unit]\n" +- "Description=EFI System Partition\n\n" ++ "Description=EFI System Partition\n" ++ "Requires=%s\n" ++ "After=%s\n" ++ "\n" + "[Mount]\n" + "Where=/boot\n" +- "What=/dev/disk/by-partuuid/%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x\n" ++ "What=%s\n" + "Options=umask=0077\n", +- SD_ID128_FORMAT_VAL(id)); ++ fsck, fsck, what); + + free(name); + name = strjoin(arg_dest, "/boot.automount", NULL); +-- +1.8.5.1 + diff --git a/core/systemd/0007-fsck-root-only-run-when-requested-in-fstab.patch b/core/systemd/0007-fsck-root-only-run-when-requested-in-fstab.patch new file mode 100644 index 000000000..112b5b59a --- /dev/null +++ b/core/systemd/0007-fsck-root-only-run-when-requested-in-fstab.patch @@ -0,0 +1,95 @@ +From a7623afb7a48ab1d7b5b24fbd5f1033acfb2301c Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Sat, 19 Oct 2013 11:38:42 +0200 +Subject: [PATCH 7/7] fsck-root: only run when requested in fstab + +fsck-root is redundant in case an initrd is used, or in case the rootfs +is never remounted 'rw', so the new default is the correct behavior for +most users. For the rest, they should enable it in fstab. +--- + Makefile.am | 1 - + man/systemd-fsck@.service.xml | 4 +++- + src/fstab-generator/fstab-generator.c | 31 ++++++++++++++++++++++--------- + 3 files changed, 25 insertions(+), 11 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index ca01179..a29a32a 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -4447,7 +4447,6 @@ SYSINIT_TARGET_WANTS += \ + systemd-update-utmp.service + LOCAL_FS_TARGET_WANTS += \ + systemd-remount-fs.service \ +- systemd-fsck-root.service \ + tmp.mount + MULTI_USER_TARGET_WANTS += \ + getty.target \ +diff --git a/man/systemd-fsck@.service.xml b/man/systemd-fsck@.service.xml +index 17bd1c0..811392b 100644 +--- a/man/systemd-fsck@.service.xml ++++ b/man/systemd-fsck@.service.xml +@@ -63,7 +63,9 @@ + check. systemd-fsck-root.service is + responsible for file system checks on the root + file system. The root file system check is performed +- before the other file systems. ++ before the other file systems. Either service is enabled ++ at boot if passno in /etc/fstab for ++ the filesystem is set to a value greater than zero. + + systemd-fsck will + forward file system checking progress to the +diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c +index 77247de..78d7609 100644 +--- a/src/fstab-generator/fstab-generator.c ++++ b/src/fstab-generator/fstab-generator.c +@@ -210,17 +210,29 @@ static int add_mount( + post); + + if (passno > 0) { +- _cleanup_free_ char *fsck = NULL; ++ if (streq(where, "/")) { ++ lnk = strjoin(arg_dest, "/", SPECIAL_LOCAL_FS_TARGET, ".wants/", "systemd-fsck-root.service", NULL); ++ if (!lnk) ++ return log_oom(); + +- fsck = unit_name_from_path_instance("systemd-fsck", what, ".service"); +- if (!fsck) +- return log_oom(); ++ mkdir_parents_label(lnk, 0755); ++ if (symlink("systemd-fsck-root.service", lnk) < 0) { ++ log_error("Failed to create symlink %s: %m", lnk); ++ return -errno; ++ } ++ } else { ++ _cleanup_free_ char *fsck = NULL; + +- fprintf(f, +- "Requires=%s\n" +- "After=%s\n", +- fsck, +- fsck); ++ fsck = unit_name_from_path_instance("systemd-fsck", what, ".service"); ++ if (!fsck) ++ return log_oom(); ++ ++ fprintf(f, ++ "Requires=%s\n" ++ "After=%s\n", ++ fsck, ++ fsck); ++ } + } + + +@@ -248,6 +260,7 @@ static int add_mount( + + if (!noauto) { + if (post) { ++ free(lnk); + lnk = strjoin(arg_dest, "/", post, nofail || automount ? ".wants/" : ".requires/", name, NULL); + if (!lnk) + return log_oom(); +-- +1.8.5.1 + diff --git a/core/systemd/PKGBUILD b/core/systemd/PKGBUILD index f585da446..a109f375d 100644 --- a/core/systemd/PKGBUILD +++ b/core/systemd/PKGBUILD @@ -4,7 +4,7 @@ pkgbase=systemd pkgname=('systemd' 'systemd-sysvcompat') pkgver=208 -pkgrel=2 +pkgrel=3 arch=('i686' 'x86_64') url="http://www.freedesktop.org/wiki/Software/systemd" makedepends=('acl' 'cryptsetup' 'dbus-core' 'docbook-xsl' 'gobject-introspection' 'gperf' @@ -17,20 +17,50 @@ source=("http://www.freedesktop.org/software/$pkgname/$pkgname-$pkgver.tar.xz" 'initcpio-install-udev' '0001-fix-lingering-references-to-var-lib-backlight-random.patch' '0001-mount-check-for-NULL-before-reading-pm-what.patch' - '0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch') + '0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch' + '0001-login-Don-t-stop-a-running-user-manager-from-garbage.patch' + '0001-fstab-generator-When-parsing-the-root-cmdline-option.patch' + '0002-fstab-generator-Generate-explicit-dependencies-on-sy.patch' + '0003-gpt-auto-generator-Generate-explicit-dependencies-on.patch' + '0004-Remove-FsckPassNo-from-systemd-fsck-root.service.patch' + '0005-mount-service-drop-FsckPassNo-support.patch' + '0006-efi-boot-generator-hookup-to-fsck.patch' + '0007-fsck-root-only-run-when-requested-in-fstab.patch') md5sums=('df64550d92afbffb4f67a434193ee165' '29245f7a240bfba66e2b1783b63b6b40' '8b68b0218a3897d4d37a6ccf47914774' 'bde43090d4ac0ef048e3eaee8202a407' '1b191c4e7a209d322675fd199e3abc66' 'a693bef63548163ffc165f4c4801ebf7' - 'ccafe716d87df9c42af0d1960b5a4105') + 'ccafe716d87df9c42af0d1960b5a4105' + '441e3d464ee6af5fe4af6a8bc10d7980' + '718d841203cf2ea9e24a7d0f1d19d48b' + '623c77bad0d2968e44963d72924825f1' + 'e52fc8368853c7800ab03ab8868cfd41' + '2096f33bd36dfa0a7f0431d0a429787a' + 'd2481a6ea199b581e243a950125b0ca6' + 'c2aee634a3a6c50778968f0d5c756f40' + 'ef8b8212d504bb73c10bf4e85f0703b2') prepare() { cd "$pkgname-$pkgver" patch -Np1 < "$srcdir"/0001-fix-lingering-references-to-var-lib-backlight-random.patch patch -Np1 < "$srcdir"/0001-mount-check-for-NULL-before-reading-pm-what.patch patch -Np1 < "$srcdir"/0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch + # Fix lingering user managers + patch -Np1 < "$srcdir"/0001-login-Don-t-stop-a-running-user-manager-from-garbage.patch + # Backport changes in fstab passno handling + # Basically, we only need 0001 and 0007, but 0007 is based on earlier patches, + # and it doesn't hurt to backport them all. + patch -Np1 < "$srcdir"/0001-fstab-generator-When-parsing-the-root-cmdline-option.patch + patch -Np1 < "$srcdir"/0002-fstab-generator-Generate-explicit-dependencies-on-sy.patch + patch -Np1 < "$srcdir"/0003-gpt-auto-generator-Generate-explicit-dependencies-on.patch + patch -Np1 < "$srcdir"/0004-Remove-FsckPassNo-from-systemd-fsck-root.service.patch + patch -Np1 < "$srcdir"/0005-mount-service-drop-FsckPassNo-support.patch + patch -Np1 < "$srcdir"/0006-efi-boot-generator-hookup-to-fsck.patch + patch -Np1 < "$srcdir"/0007-fsck-root-only-run-when-requested-in-fstab.patch + + autoreconf } build() { @@ -118,6 +148,9 @@ package_systemd() { chown root:systemd-journal "$pkgdir/var/log/journal" chmod 2755 "$pkgdir/var/log/journal" + # fix pam file + sed 's|system-auth|system-login|g' -i "$pkgdir/etc/pam.d/systemd-user" + ### split out manpages for sysvcompat rm -rf "$srcdir/_sysvcompat" install -dm755 "$srcdir"/_sysvcompat/usr/share/man/man8/ @@ -134,7 +167,7 @@ package_systemd-sysvcompat() { license=('GPL2') groups=('base') conflicts=('sysvinit') - depends=('sysvinit-tools' 'systemd') + depends=('systemd') mv "$srcdir/_sysvcompat"/* "$pkgdir" diff --git a/core/sysvinit-tools/0001-simplify-writelog.patch b/core/sysvinit-tools/0001-simplify-writelog.patch deleted file mode 100644 index cc28f14bc..000000000 --- a/core/sysvinit-tools/0001-simplify-writelog.patch +++ /dev/null @@ -1,126 +0,0 @@ -From 5577552eb1344ddd661893564b1e628f8edcf13d Mon Sep 17 00:00:00 2001 -From: Florian Pritz -Date: Fri, 15 Jun 2012 16:41:52 +0200 -Subject: [PATCH 1/2] simplify writelog() - -All we do is prepend the date and remove \r. We don't handle color -codes, but the user can just cat the log file in a terminal and it will -interpret the codes correctly. - -Signed-off-by: Florian Pritz ---- - bootlogd.c | 76 +++++++++++++++++------------------------------------------- - 1 file changed, 21 insertions(+), 55 deletions(-) - -diff --git a/bootlogd.c b/bootlogd.c -index 570d382..e36e261 100644 ---- a/bootlogd.c -+++ b/bootlogd.c -@@ -68,11 +68,6 @@ int didnl = 1; - int createlogfile = 0; - int syncalot = 0; - --struct line { -- char buf[256]; -- int pos; --} line; -- - /* - * Console devices as listed on the kernel command line and - * the mapping to actual devices in /dev -@@ -351,63 +346,34 @@ int consolename(char *res, int rlen) - */ - void writelog(FILE *fp, unsigned char *ptr, int len) - { -- time_t t; -- char *s; -- char tmp[8]; -- int olen = len; -- int dosync = 0; -- int tlen; -- -- while (len > 0) { -- tmp[0] = 0; -- if (didnl) { -+ int dosync = 0; -+ int i; -+ static int first_run = 1; -+ -+ for (i = 0; i < len; i++) { -+ int ignore = 0; -+ -+ /* prepend date to every line */ -+ if (*(ptr-1) == '\n' || first_run) { -+ time_t t; -+ char *s; - time(&t); - s = ctime(&t); - fprintf(fp, "%.24s: ", s); -- didnl = 0; -+ dosync = 1; -+ first_run = 0; - } -- switch (*ptr) { -- case 27: /* ESC */ -- strcpy(tmp, "^["); -- break; -- case '\r': -- line.pos = 0; -- break; -- case 8: /* ^H */ -- if (line.pos > 0) line.pos--; -- break; -- case '\n': -- didnl = 1; -- dosync = 1; -- break; -- case '\t': -- line.pos += (line.pos / 8 + 1) * 8; -- if (line.pos >= (int)sizeof(line.buf)) -- line.pos = sizeof(line.buf) - 1; -- break; -- case 32 ... 127: -- case 161 ... 255: -- tmp[0] = *ptr; -- tmp[1] = 0; -- break; -- default: -- sprintf(tmp, "\\%03o", *ptr); -- break; -- } -- ptr++; -- len--; - -- tlen = strlen(tmp); -- if (tlen && (line.pos + tlen < (int)sizeof(line.buf))) { -- memcpy(line.buf + line.pos, tmp, tlen); -- line.pos += tlen; -+ if (*ptr == '\r') { -+ ignore = 1; - } -- if (didnl) { -- fprintf(fp, "%s\n", line.buf); -- memset(&line, 0, sizeof(line)); -+ -+ if (!ignore) { -+ fwrite(ptr, sizeof(char), 1, fp); - } -- } - -+ ptr++; -+ } - if (dosync) { - fflush(fp); - if (syncalot) { -@@ -415,7 +381,7 @@ void writelog(FILE *fp, unsigned char *ptr, int len) - } - } - -- outptr += olen; -+ outptr += len; - if (outptr >= endptr) - outptr = ringbuf; - --- -1.7.10.4 - diff --git a/core/sysvinit-tools/0002-remove-ansi-escape-codes-from-log-file.patch b/core/sysvinit-tools/0002-remove-ansi-escape-codes-from-log-file.patch deleted file mode 100644 index 89b3280df..000000000 --- a/core/sysvinit-tools/0002-remove-ansi-escape-codes-from-log-file.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 8d0022d9540112a92ce8d88c91c4ac10bad8c9ef Mon Sep 17 00:00:00 2001 -From: Florian Pritz -Date: Sun, 24 Jun 2012 15:49:51 +0200 -Subject: [PATCH 2/2] remove ansi escape codes from log file - -References: https://en.wikipedia.org/wiki/ANSI_escape_code - -Signed-off-by: Florian Pritz ---- - bootlogd.c | 45 +++++++++++++++++++++++++++++++++++++++++++-- - 1 file changed, 43 insertions(+), 2 deletions(-) - -diff --git a/bootlogd.c b/bootlogd.c -index e36e261..88e610d 100644 ---- a/bootlogd.c -+++ b/bootlogd.c -@@ -349,6 +349,7 @@ void writelog(FILE *fp, unsigned char *ptr, int len) - int dosync = 0; - int i; - static int first_run = 1; -+ static int inside_esc = 0; - - for (i = 0; i < len; i++) { - int ignore = 0; -@@ -364,10 +365,50 @@ void writelog(FILE *fp, unsigned char *ptr, int len) - first_run = 0; - } - -- if (*ptr == '\r') { -- ignore = 1; -+ /* remove escape sequences, but do it in a way that allows us to stop -+ * in the middle in case the string was cut off */ -+ if (inside_esc == 1) { -+ /* first '[' is special because if we encounter it again, it should be considered the final byte */ -+ if (*ptr == '[') { -+ /* multi char sequence */ -+ ignore = 1; -+ inside_esc = 2; -+ } else { -+ /* single char sequence */ -+ if (*ptr >= 64 && *ptr <= 95) { -+ ignore = 1; -+ } -+ inside_esc = 0; -+ } -+ } else if (inside_esc == 2) { -+ switch (*ptr) { -+ case '0' ... '9': /* intermediate chars of escape sequence */ -+ case ';': -+ case 32 ... 47: -+ if (inside_esc) { -+ ignore = 1; -+ } -+ break; -+ case 64 ... 126: /* final char of escape sequence */ -+ if (inside_esc) { -+ ignore = 1; -+ inside_esc = 0; -+ } -+ break; -+ } -+ } else { -+ switch (*ptr) { -+ case '\r': -+ ignore = 1; -+ break; -+ case 27: /* ESC */ -+ ignore = 1; -+ inside_esc = 1; -+ break; -+ } - } - -+ - if (!ignore) { - fwrite(ptr, sizeof(char), 1, fp); - } --- -1.7.10.4 - diff --git a/core/sysvinit-tools/PKGBUILD b/core/sysvinit-tools/PKGBUILD deleted file mode 100644 index 86ab094a9..000000000 --- a/core/sysvinit-tools/PKGBUILD +++ /dev/null @@ -1,42 +0,0 @@ -# $Id: PKGBUILD 197264 2013-10-24 20:11:17Z dreisner $ -# Maintainer: Tom Gundersen -# Maintainer: Eric Belanger - -pkgname=sysvinit-tools -pkgdesc="Linux System V Init Tools" -pkgver=2.88 -pkgrel=12 -arch=('i686' 'x86_64') -url="http://savannah.nongnu.org/projects/sysvinit" -license=('GPL') -depends=('glibc') -source=(http://download.savannah.gnu.org/releases/sysvinit/sysvinit-${pkgver}dsf.tar.bz2 - "0001-simplify-writelog.patch" - "0002-remove-ansi-escape-codes-from-log-file.patch") -sha1sums=('f2ca149df1314a91f3007cccd7a0aa47d990de26' - '326112c8a9bd24cb45bd4bb2f958a25f0ac4773d' - 'bbecfa7dfa45ac7c37ed8ac59fb53f6a85064b32') - -build() { - cd "$srcdir/sysvinit-${pkgver}dsf" - - # FS#30005 - patch -p1 -d "src" -i "${srcdir}/0001-simplify-writelog.patch" - patch -p1 -d "src" -i "${srcdir}/0002-remove-ansi-escape-codes-from-log-file.patch" - - # only build what we need... - make -C src fstab-decode killall5 bootlogd -} - -package() { - cd "$srcdir/sysvinit-${pkgver}dsf" - - install -dm755 "$pkgdir/usr/bin" "$pkgdir/usr/share/man/man8" - - # binaries - install -m755 src/{fstab-decode,killall5,bootlogd} "$pkgdir/usr/bin" - ln -s killall5 "$pkgdir/usr/bin/pidof" - - # manpages - install -m644 man/{bootlogd,pidof,killall5,fstab-decode}.8 "$pkgdir/usr/share/man/man8" -} diff --git a/core/tar/PKGBUILD b/core/tar/PKGBUILD index 4970dba50..67f548c5a 100644 --- a/core/tar/PKGBUILD +++ b/core/tar/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 195996 2013-10-07 10:34:06Z allan $ +# $Id: PKGBUILD 199999 2013-11-21 01:21:02Z allan $ # Maintainer: Allan McRae # Contributor: Andreas Radke pkgname=tar -pkgver=1.27 +pkgver=1.27.1 pkgrel=1 pkgdesc="Utility used to store, backup, and transport files" arch=('i686' 'x86_64') @@ -14,7 +14,7 @@ depends=('glibc' 'sh') options=('!emptydirs') install=tar.install source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz{,.sig}) -md5sums=('3484fc42b7a82b82f2305b2971aa0e56' +md5sums=('e0382a4064e09a4943f3adeff1435978' 'SKIP') build() { diff --git a/core/texinfo/PKGBUILD b/core/texinfo/PKGBUILD index db46eecf8..24bacfcd4 100644 --- a/core/texinfo/PKGBUILD +++ b/core/texinfo/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 195842 2013-10-02 00:09:47Z allan $ +# $Id: PKGBUILD 199326 2013-11-11 03:44:43Z allan $ # Maintainer: Allan McRae # Contributor: Tom Newsom pkgname=texinfo pkgver=5.2 -pkgrel=1 +pkgrel=2 pkgdesc="Utilities to work with and produce manuals, ASCII text, and on-line documentation from a single source file" arch=('i686' 'x86_64') url="http://www.gnu.org/software/texinfo/" @@ -12,9 +12,16 @@ license=('GPL3') 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}) +source=(ftp://ftp.gnu.org/pub/gnu/${pkgname}/${pkgname}-${pkgver}.tar.xz{,.sig} + texinfo-5.2-C-n-fix.patch) md5sums=('cb489df8a7ee9d10a236197aefdb32c5' - 'SKIP') + 'SKIP' + '89724bac1ecbd1a57b1ea81e87f96f44') + +prepare() { + cd ${srcdir}/${pkgname}-${pkgver} + patch -p0 -i ${srcdir}/texinfo-5.2-C-n-fix.patch +} build() { cd ${srcdir}/${pkgname}-${pkgver} diff --git a/core/texinfo/texinfo-5.2-C-n-fix.patch b/core/texinfo/texinfo-5.2-C-n-fix.patch new file mode 100644 index 000000000..adf545126 --- /dev/null +++ b/core/texinfo/texinfo-5.2-C-n-fix.patch @@ -0,0 +1,10 @@ +--- info/infomap.c (revision 5386) ++++ info/infomap.c (working copy) +@@ -297,6 +297,7 @@ + CONTROL('f'), NUL, A_info_forward_char, + CONTROL('h'), NUL, A_info_get_help_window, + CONTROL('l'), NUL, A_info_redraw_display, ++ CONTROL('n'), NUL, A_info_next_line, + CONTROL('p'), NUL, A_info_prev_line, + CONTROL('r'), NUL, A_isearch_backward, + CONTROL('s'), NUL, A_isearch_forward, diff --git a/core/util-linux/0001-lsblk-fix-D-segfault.patch b/core/util-linux/0001-lsblk-fix-D-segfault.patch new file mode 100644 index 000000000..8e4d7c6d2 --- /dev/null +++ b/core/util-linux/0001-lsblk-fix-D-segfault.patch @@ -0,0 +1,45 @@ +From 71d842c01992b3678de4da4773ed54f08c0ab4f6 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Mon, 18 Nov 2013 11:27:35 +0100 +Subject: [PATCH] lsblk: fix -D segfault + +References: https://bugzilla.redhat.com/show_bug.cgi?id=1031262 +Signed-off-by: Karel Zak +--- + misc-utils/lsblk.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/misc-utils/lsblk.c b/misc-utils/lsblk.c +index 9f7f1b6..9b53be3 100644 +--- a/misc-utils/lsblk.c ++++ b/misc-utils/lsblk.c +@@ -903,7 +903,7 @@ static void set_tt_data(struct blkdev_cxt *cxt, int col, int id, struct tt_line + if (cxt->discard && p) + tt_line_set_data(ln, col, p); + else +- tt_line_set_data(ln, col, "0"); ++ tt_line_set_data(ln, col, xstrdup("0")); + break; + case COL_DGRAN: + if (lsblk->bytes) +@@ -936,7 +936,7 @@ static void set_tt_data(struct blkdev_cxt *cxt, int col, int id, struct tt_line + if (cxt->discard && p) + tt_line_set_data(ln, col, p); + else +- tt_line_set_data(ln, col, "0"); ++ tt_line_set_data(ln, col, xstrdup("0")); + break; + case COL_WSAME: + if (lsblk->bytes) +@@ -948,7 +948,7 @@ static void set_tt_data(struct blkdev_cxt *cxt, int col, int id, struct tt_line + "queue/write_same_max_bytes", &x) == 0) + p = size_to_human_string(SIZE_SUFFIX_1LETTER, x); + } +- tt_line_set_data(ln, col, p ? p : "0"); ++ tt_line_set_data(ln, col, p ? p : xstrdup("0")); + break; + }; + } +-- +1.8.4.2 + diff --git a/core/util-linux/0001-pylibmount-correctly-import-from-pylibmount.so.patch b/core/util-linux/0001-pylibmount-correctly-import-from-pylibmount.so.patch new file mode 100644 index 000000000..34040b9eb --- /dev/null +++ b/core/util-linux/0001-pylibmount-correctly-import-from-pylibmount.so.patch @@ -0,0 +1,30 @@ +From c8e5e6e7323642f7e6f12ee5f5231b0ec44c40ab Mon Sep 17 00:00:00 2001 +From: Dave Reisner +Date: Thu, 21 Nov 2013 12:25:27 -0500 +Subject: [PATCH] pylibmount: correctly import from pylibmount.so + +Without this, python is unable to find the module: + +$ python -c 'import libmount' +Traceback (most recent call last): + File "", line 1, in + File "/usr/lib/python3.3/site-packages/libmount/__init__.py", line 1, in + from pylibmount import * +ImportError: No module named 'pylibmount' + +Signed-off-by: Dave Reisner +--- + libmount/python/libmount/__init__.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libmount/python/libmount/__init__.py b/libmount/python/libmount/__init__.py +index 243c639..09104e2 100644 +--- a/libmount/python/libmount/__init__.py ++++ b/libmount/python/libmount/__init__.py +@@ -1,2 +1,2 @@ +-from pylibmount import * ++from .pylibmount import * + +-- +1.8.4.2 + diff --git a/core/util-linux/PKGBUILD b/core/util-linux/PKGBUILD index 27df08ea7..d72a68384 100644 --- a/core/util-linux/PKGBUILD +++ b/core/util-linux/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 197844 2013-10-30 11:07:21Z allan $ +# $Id: PKGBUILD 201467 2013-12-12 15:33:24Z dreisner $ # Maintainer: Tom Gundersen # Maintainer: Dave Reisner # Contributor: judd pkgname=util-linux pkgver=2.24 -pkgrel=1 +pkgrel=2 pkgdesc="Miscellaneous system utilities for Linux" url="http://www.kernel.org/pub/linux/utils/util-linux/" arch=('i686' 'x86_64') @@ -19,6 +19,8 @@ provides=("util-linux-ng=$pkgver" 'eject') license=('GPL2') options=('strip' 'debug') source=("ftp://ftp.kernel.org/pub/linux/utils/$pkgname/v2.24/$pkgname-$pkgver.tar.xz" + 0001-lsblk-fix-D-segfault.patch + 0001-pylibmount-correctly-import-from-pylibmount.so.patch uuidd.tmpfiles pam-login pam-common @@ -30,11 +32,20 @@ backup=(etc/pam.d/chfn etc/pam.d/su-l) install=util-linux.install md5sums=('4fac6443427f575fc5f3531a4ad2ca01' + '1899fe3b853a5835c76cca0501b6b518' + 'a18a1e89ffdfa3bc96ae976646a723ec' 'a39554bfd65cccfd8254bb46922f4a67' '4368b3f98abd8a32662e094c54e7f9b1' 'a31374fef2cba0ca34dfc7078e2969e4' 'fa85e5cce5d723275b14365ba71a8aad') +prepare() { + cd "$pkgname-$pkgver" + + patch -Np1 <"$srcdir"/0001-lsblk-fix-D-segfault.patch + patch -Np1 <"$srcdir"/0001-pylibmount-correctly-import-from-pylibmount.so.patch +} + build() { cd "$pkgname-$pkgver" -- cgit v1.2.3-54-g00ecf