Date: Sunday, September 14, 2014 @ 09:59:58 Author: allan Revision: 221646
upgpkg: glibc 2.20-2 add a few upstream patches, make sure ldconfig has run Added: glibc/trunk/glibc-2.20-do_ftell_wide-memleak.patch glibc/trunk/glibc-2.20-getifaddrs_internal-segfault.patch glibc/trunk/glibc-2.20-linux-3.16-additions.patch Modified: glibc/trunk/PKGBUILD glibc/trunk/glibc.install -----------------------------------------------+ PKGBUILD | 22 ++++++++++++++++-- glibc-2.20-do_ftell_wide-memleak.patch | 12 +++++++++ glibc-2.20-getifaddrs_internal-segfault.patch | 29 ++++++++++++++++++++++++ glibc-2.20-linux-3.16-additions.patch | 15 ++++++++++++ glibc.install | 2 - 5 files changed, 77 insertions(+), 3 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2014-09-14 07:33:04 UTC (rev 221645) +++ PKGBUILD 2014-09-14 07:59:58 UTC (rev 221646) @@ -8,7 +8,7 @@ pkgname=glibc pkgver=2.20 -pkgrel=1 +pkgrel=2 pkgdesc="GNU C Library" arch=('i686' 'x86_64') url="http://www.gnu.org/software/libc" @@ -22,15 +22,33 @@ options=('!strip' 'staticlibs') install=glibc.install source=(http://ftp.gnu.org/gnu/libc/${pkgname}-${pkgver}.tar.xz{,.sig} + glibc-2.20-getifaddrs_internal-segfault.patch + glibc-2.20-linux-3.16-additions.patch + glibc-2.20-do_ftell_wide-memleak.patch locale.gen.txt locale-gen) md5sums=('948a6e06419a01bd51e97206861595b0' 'SKIP' + '1c5d5c2017445c75dbc5c6d0c1e45ddb' + '8f1059f431b842e54b12bde689620df8' + 'b50feeab78fa6ce0a8cfb41ee8dc1fd8' '07ac979b6ab5eeb778d55f041529d623' '476e9113489f93b348b21e144b6a8fcf') -validpgpkeys=('F37CDAB708E65EA183FD1AF625EF0A436C2A4AFF') +validpgpkeys=('F37CDAB708E65EA183FD1AF625EF0A436C2A4AFF') # Carlos O'Donell prepare() { + cd ${srcdir}/glibc-${pkgver} + + # fix segfault in getifaddrs_internal + # https://sourceware.org/ml/libc-alpha/2014-09/msg00312.html + patch -p1 -i $srcdir/glibc-2.20-getifaddrs_internal-segfault.patch + + # linux 3.16 additions - commit 0bd72468 + patch -p1 -i $srcdir/glibc-2.20-linux-3.16-additions.patch + + # plug memory leak - commit 984c0ea9 + patch -p1 -i $srcdir/glibc-2.20-do_ftell_wide-memleak.patch + mkdir ${srcdir}/glibc-build } Added: glibc-2.20-do_ftell_wide-memleak.patch =================================================================== --- glibc-2.20-do_ftell_wide-memleak.patch (rev 0) +++ glibc-2.20-do_ftell_wide-memleak.patch 2014-09-14 07:59:58 UTC (rev 221646) @@ -0,0 +1,12 @@ +diff --git a/libio/wfileops.c b/libio/wfileops.c +index f123add..ebc06e8 100644 +--- a/libio/wfileops.c ++++ b/libio/wfileops.c +@@ -711,6 +711,7 @@ do_ftell_wide (_IO_FILE *fp) + return WEOF; + + offset += outstop - out; ++ free (out); + } + + /* We don't trust _IO_read_end to represent the current file offset Added: glibc-2.20-getifaddrs_internal-segfault.patch =================================================================== --- glibc-2.20-getifaddrs_internal-segfault.patch (rev 0) +++ glibc-2.20-getifaddrs_internal-segfault.patch 2014-09-14 07:59:58 UTC (rev 221646) @@ -0,0 +1,29 @@ +diff --git a/sysdeps/unix/sysv/linux/ifaddrs.c b/sysdeps/unix/sysv/linux/ifaddrs.c +index 2c04e17..a47b2ed 100644 +--- a/sysdeps/unix/sysv/linux/ifaddrs.c ++++ b/sysdeps/unix/sysv/linux/ifaddrs.c +@@ -770,20 +770,17 @@ getifaddrs_internal (struct ifaddrs **ifap) + + if (cp != NULL) + { +- char c; + unsigned int preflen; + +- if ((max_prefixlen > 0) && +- (ifam->ifa_prefixlen > max_prefixlen)) ++ if (ifam->ifa_prefixlen > max_prefixlen) + preflen = max_prefixlen; + else + preflen = ifam->ifa_prefixlen; + +- for (i = 0; i < ((preflen - 1) / 8); i++) ++ for (i = 0; i < preflen / 8; i++) + *cp++ = 0xff; +- c = 0xff; +- c <<= ((128 - preflen) % 8); +- *cp = c; ++ if (preflen % 8) ++ *cp = 0xff << (8 - preflen % 8); + } + } + } Added: glibc-2.20-linux-3.16-additions.patch =================================================================== --- glibc-2.20-linux-3.16-additions.patch (rev 0) +++ glibc-2.20-linux-3.16-additions.patch 2014-09-14 07:59:58 UTC (rev 221646) @@ -0,0 +1,15 @@ +diff --git a/sysdeps/gnu/netinet/udp.h b/sysdeps/gnu/netinet/udp.h +index 32159cd..8cc1c60 100644 +--- a/sysdeps/gnu/netinet/udp.h ++++ b/sysdeps/gnu/netinet/udp.h +@@ -78,6 +78,10 @@ struct udphdr + #define UDP_CORK 1 /* Never send partially complete segments. */ + #define UDP_ENCAP 100 /* Set the socket to accept + encapsulated packets. */ ++#define UDP_NO_CHECK6_TX 101 /* Disable sending checksum for UDP ++ over IPv6. */ ++#define UDP_NO_CHECK6_RX 102 /* Disable accepting checksum for UDP ++ over IPv6. */ + + /* UDP encapsulation types */ + #define UDP_ENCAP_ESPINUDP_NON_IKE 1 /* draft-ietf-ipsec-nat-t-ike-00/01 */ Modified: glibc.install =================================================================== --- glibc.install 2014-09-14 07:33:04 UTC (rev 221645) +++ glibc.install 2014-09-14 07:59:58 UTC (rev 221646) @@ -4,7 +4,7 @@ post_upgrade() { ldconfig -r . - if [[ $(vercmp 2.19-2 $2) = 1 ]]; then + if [[ $(vercmp 2.20-2 $2) = 1 ]]; then locale-gen fi