summaryrefslogtreecommitdiffstats
path: root/abs/core/gawk
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core/gawk')
-rw-r--r--abs/core/gawk/PKGBUILD31
-rw-r--r--abs/core/gawk/gawk-3.1.5-segfault_fix-1.patch43
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");