diff options
Diffstat (limited to 'abs/core/gawk')
-rw-r--r-- | abs/core/gawk/PKGBUILD | 31 | ||||
-rw-r--r-- | abs/core/gawk/gawk-3.1.5-segfault_fix-1.patch | 43 |
2 files changed, 74 insertions, 0 deletions
diff --git a/abs/core/gawk/PKGBUILD b/abs/core/gawk/PKGBUILD new file mode 100644 index 0000000..976a574 --- /dev/null +++ b/abs/core/gawk/PKGBUILD @@ -0,0 +1,31 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: dorphell <dorphell@archlinux.org> +# Contributor: Tom Newsom <Jeepster@gmx.co.uk> +pkgname=gawk +pkgver=3.1.6 +pkgrel=11 +pkgdesc="Gnu version of awk" +arch=(i686 x86_64) +url="http://www.gnu.org/directory/GNU/gawk.html" +license=('GPL') +groups=('base') +provides=('awk') +replaces=('mawk') +source=(ftp://ftp.gnu.org/pub/gnu/$pkgname/$pkgname-$pkgver.tar.gz) +depends=('bash' 'glibc') +md5sums=('b237751aef53c9ead9644e376bc53386') + +build() { + cd $startdir/src/$pkgname-$pkgver + ./configure --prefix=/usr + make || return 1 + make DESTDIR=$startdir/pkg install + mv $startdir/pkg/usr/libexec $startdir/pkg/usr/lib + mkdir $startdir/pkg/bin + mv $startdir/pkg/usr/bin/gawk* $startdir/pkg/bin/ + mv $startdir/pkg/usr/bin/awk $startdir/pkg/bin/ + # don't use hardlinks to manpages, it messes up our compression stuff + rm $startdir/pkg/usr/share/man/man1/pgawk.1 + ln -s gawk.1 $startdir/pkg/usr/share/man/man1/pgawk.1 + ln -s gawk.1 $startdir/pkg/usr/share/man/man1/awk.1 +} diff --git a/abs/core/gawk/gawk-3.1.5-segfault_fix-1.patch b/abs/core/gawk/gawk-3.1.5-segfault_fix-1.patch new file mode 100644 index 0000000..aa2f17b --- /dev/null +++ b/abs/core/gawk/gawk-3.1.5-segfault_fix-1.patch @@ -0,0 +1,43 @@ +Submitted By: Matthew Burgess <matthew@linuxfromscratch.org> +Date: 2005-09-24 +Initial Package Version: 3.1.5 +Upstream Status: From Upstream +Origin: http://lists.gnu.org/archive/html/bug-gnu-utils/2005-08/msg00047.html +Description: Fixes a bug which causes gawk to segfault when operating on a non-existent file. + +diff -Naur gawk-3.1.5.orig/io.c gawk-3.1.5/io.c +--- gawk-3.1.5.orig/io.c 2005-07-26 18:07:43.000000000 +0000 ++++ gawk-3.1.5/io.c 2005-09-24 14:43:13.771380264 +0000 +@@ -2480,9 +2480,12 @@ + { + struct stat sbuf; + struct open_hook *oh; ++ int iop_malloced = FALSE; + +- if (iop == NULL) ++ if (iop == NULL) { + emalloc(iop, IOBUF *, sizeof(IOBUF), "iop_alloc"); ++ iop_malloced = TRUE; ++ } + memset(iop, '\0', sizeof(IOBUF)); + iop->flag = 0; + iop->fd = fd; +@@ -2495,7 +2498,8 @@ + } + + if (iop->fd == INVALID_HANDLE) { +- free(iop); ++ if (iop_malloced) ++ free(iop); + return NULL; + } + if (isatty(iop->fd)) +@@ -2503,7 +2507,7 @@ + iop->readsize = iop->size = optimal_bufsize(iop->fd, & sbuf); + iop->sbuf = sbuf; + if (do_lint && S_ISREG(sbuf.st_mode) && sbuf.st_size == 0) +- lintwarn(_("data file `%s' is empty"), name); ++ lintwarn(_("data file `%s' is empty"), name); + errno = 0; + iop->count = iop->scanoff = 0; + emalloc(iop->buf, char *, iop->size += 2, "iop_alloc"); |