diff options
author | 2006-04-12 00:12:42 +0000 | |
---|---|---|
committer | 2006-04-12 00:12:42 +0000 | |
commit | e4bcf9dd90300823216f24c01362058e68c6b4da (patch) | |
tree | a5dbfe80a240b35d2414cab41fd4edf7015ee37e /sys-apps/gawk | |
parent | add some more notes about this patch (diff) | |
download | historical-e4bcf9dd90300823216f24c01362058e68c6b4da.tar.gz historical-e4bcf9dd90300823216f24c01362058e68c6b4da.tar.bz2 historical-e4bcf9dd90300823216f24c01362058e68c6b4da.zip |
Fix bug in FIELDWIDTHS and grab some other patches from Fedora.
Package-Manager: portage-2.1_pre7-r5
Diffstat (limited to 'sys-apps/gawk')
-rw-r--r-- | sys-apps/gawk/ChangeLog | 9 | ||||
-rw-r--r-- | sys-apps/gawk/Manifest | 10 | ||||
-rw-r--r-- | sys-apps/gawk/files/digest-gawk-3.1.5-r1 | 3 | ||||
-rw-r--r-- | sys-apps/gawk/files/gawk-3.1.5-binmode.patch | 20 | ||||
-rw-r--r-- | sys-apps/gawk/files/gawk-3.1.5-fieldwidths.patch | 35 | ||||
-rw-r--r-- | sys-apps/gawk/files/gawk-3.1.5-num2str.patch | 42 | ||||
-rw-r--r-- | sys-apps/gawk/gawk-3.1.5-r1.ebuild | 112 |
7 files changed, 230 insertions, 1 deletions
diff --git a/sys-apps/gawk/ChangeLog b/sys-apps/gawk/ChangeLog index 87cfb116d1a1..d7ce0b7fefe7 100644 --- a/sys-apps/gawk/ChangeLog +++ b/sys-apps/gawk/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for sys-apps/gawk # Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-apps/gawk/ChangeLog,v 1.76 2006/03/30 15:12:21 flameeyes Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-apps/gawk/ChangeLog,v 1.77 2006/04/12 00:12:42 vapier Exp $ + +*gawk-3.1.5-r1 (12 Apr 2006) + + 12 Apr 2006; Mike Frysinger <vapier@gentoo.org> + +files/gawk-3.1.5-binmode.patch, +files/gawk-3.1.5-fieldwidths.patch, + +files/gawk-3.1.5-num2str.patch, +gawk-3.1.5-r1.ebuild: + Fix bug in FIELDWIDTHS and grab some other patches from Fedora. 30 Mar 2006; Diego Pettenò <flameeyes@gentoo.org> gawk-3.1.5.ebuild: Add ~x86-fbsd keyword. diff --git a/sys-apps/gawk/Manifest b/sys-apps/gawk/Manifest index a68b23d634e1..672a3301ba9d 100644 --- a/sys-apps/gawk/Manifest +++ b/sys-apps/gawk/Manifest @@ -1,3 +1,6 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA1 + MD5 a61f515a05b6ba4e482ea862ac92f519 ChangeLog 11850 RMD160 ffcf2be9d2b23fc2ad580a4d92ca6cb3d4fffed5 ChangeLog 11850 SHA256 5d7c0ab2fc7e43bf9df2f78fb7a1a3ff78fa03f779cd74b3b98efb550f9df73e ChangeLog 11850 @@ -70,3 +73,10 @@ SHA256 4e3e000902e32afb1e5ea0a126d8b8f4821f4ecab449791ced7d8c2bf7186390 gawk-3.1 MD5 9a09f8d531c582e78977dbfd96edc1f2 metadata.xml 164 RMD160 f43cbec30b7074319087c9acffdb9354b17b0db3 metadata.xml 164 SHA256 f5f2891f2a4791cd31350bb2bb572131ad7235cd0eeb124c9912c187ac10ce92 metadata.xml 164 +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.2.2 (GNU/Linux) + +iD8DBQFEPEYR2+ySkm8kpY0RAox5AJ4h90WeOELzzo25H9+23Lbm7e++ngCcD5VL +NdCN93lnq1XSG3NyOb5fRVE= +=Hlz3 +-----END PGP SIGNATURE----- diff --git a/sys-apps/gawk/files/digest-gawk-3.1.5-r1 b/sys-apps/gawk/files/digest-gawk-3.1.5-r1 new file mode 100644 index 000000000000..9ac602be41d5 --- /dev/null +++ b/sys-apps/gawk/files/digest-gawk-3.1.5-r1 @@ -0,0 +1,3 @@ +MD5 4760325489479cac17fe0114b8f62f30 gawk-3.1.5.tar.gz 2310919 +RMD160 8d875f4ea9e9ef5c932468cf43c691f6e082b197 gawk-3.1.5.tar.gz 2310919 +SHA256 463dcb9d0ca398b1d4f5a332f6cd9cec56441265fca616f2ea1b44d459e9f0f8 gawk-3.1.5.tar.gz 2310919 diff --git a/sys-apps/gawk/files/gawk-3.1.5-binmode.patch b/sys-apps/gawk/files/gawk-3.1.5-binmode.patch new file mode 100644 index 000000000000..ab811d2c92f7 --- /dev/null +++ b/sys-apps/gawk/files/gawk-3.1.5-binmode.patch @@ -0,0 +1,20 @@ +Ripped from Fedora + +* Thu Dec 22 2005 Karel Zak <kzak@redhat.com> 3.1.5-5 +- fix "gawk -v BINMODE=1" (patch by Aharon Robbins) + + * eval.c (set_BINMODE): Fix logic of test for no numeric value. + Makes `gawk -v BINMODE=1 ...' work again. Thanks to Eli Zaretskii + <eliz@gnu.org> for pointing out the problem. + +--- gawk-3.1.5/eval.c.binmode 2005-12-22 19:05:32.000000000 +0100 ++++ gawk-3.1.5/eval.c 2005-12-22 19:06:40.000000000 +0100 +@@ -2167,7 +2167,7 @@ + } + } + +- if (! digits || (BINMODE_node->var_value->flags & MAYBE_NUM) == 0) { ++ if (! digits && (BINMODE_node->var_value->flags & MAYBE_NUM) == 0) { + BINMODE = 0; + if (strcmp(p, "r") == 0) + BINMODE = 1; diff --git a/sys-apps/gawk/files/gawk-3.1.5-fieldwidths.patch b/sys-apps/gawk/files/gawk-3.1.5-fieldwidths.patch new file mode 100644 index 000000000000..905718b1f2f6 --- /dev/null +++ b/sys-apps/gawk/files/gawk-3.1.5-fieldwidths.patch @@ -0,0 +1,35 @@ +Ripped from Fedora + +* Sun Oct 9 2005 Karel Zak <kzak@redhat.com> 3.1.5-4 +- fix off-by-one error in assignment of sentinel value at + end of FIELDWIDTHS array. (patch by Aharon Robbins) + +--- gawk-3.1.5/field.c.fieldwidths 2005-05-11 17:28:15.000000000 +0200 ++++ gawk-3.1.5/field.c 2005-10-09 08:35:54.000000000 +0200 +@@ -916,7 +916,7 @@ + + parse_field = fw_parse_field; + scan = force_string(FIELDWIDTHS_node->var_value)->stptr; +- end = scan + 1; ++ + if (FIELDWIDTHS == NULL) + emalloc(FIELDWIDTHS, int *, fw_alloc * sizeof(int), "set_FIELDWIDTHS"); + FIELDWIDTHS[0] = 0; +@@ -941,7 +941,7 @@ + errno = 0; + tmp = strtoul(scan, &end, 10); + if (errno != 0 +- || !(*end == '\0' || is_blank(*end)) ++ || (*end != '\0' && ! is_blank(*end)) + || !(0 < tmp && tmp <= INT_MAX)) + fatal(_("invalid FIELDWIDTHS value, near `%s'"), + scan); +@@ -954,7 +954,7 @@ + if (*scan == '\0') + break; + } +- FIELDWIDTHS[i] = -1; ++ FIELDWIDTHS[i+1] = -1; + + update_PROCINFO("FS", "FIELDWIDTHS"); + } diff --git a/sys-apps/gawk/files/gawk-3.1.5-num2str.patch b/sys-apps/gawk/files/gawk-3.1.5-num2str.patch new file mode 100644 index 000000000000..57ecd46b4762 --- /dev/null +++ b/sys-apps/gawk/files/gawk-3.1.5-num2str.patch @@ -0,0 +1,42 @@ +Ripped from Fedora + +* Thu Dec 22 2005 Karel Zak <kzak@redhat.com> 3.1.5-5 +- fix conversion from large number to string (patch by Aharon Robbins) + +--- gawk-3.1.5/node.c.num2str 2005-07-26 20:07:43.000000000 +0200 ++++ gawk-3.1.5/node.c 2005-12-22 19:41:55.000000000 +0100 +@@ -151,6 +151,7 @@ + register char *sp = buf; + double val; + char *orig, *trans, save; ++ register long num; + + if (! do_traditional && (s->flags & INTLSTR) != 0) { + save = s->stptr[s->stlen]; +@@ -163,9 +164,12 @@ + return tmp_string(trans, strlen(trans)); + } + +- /* not an integral value, or out of range */ +- if ((val = double_to_int(s->numbr)) != s->numbr +- || val < LONG_MIN || val > LONG_MAX) { ++ /* conversion to long overflows, or out of range, or not integral */ ++ val = double_to_int(s->numbr); ++ num = (long) val; ++ if ( (s->numbr > 0 && num < 0) ++ || (s->numbr < 0 && num > 0) ++ || val < LONG_MIN || val > LONG_MAX || val != s->numbr) { + /* + * Once upon a time, if GFMT_WORKAROUND wasn't defined, + * we just blindly did this: +@@ -199,9 +203,7 @@ + + goto no_malloc; + } else { +- /* integral value */ +- /* force conversion to long only once */ +- register long num = (long) val; ++ /* integral value, in range, too! */ + if (num < NVAL && num >= 0) { + sp = (char *) values[num]; + s->stlen = 1; diff --git a/sys-apps/gawk/gawk-3.1.5-r1.ebuild b/sys-apps/gawk/gawk-3.1.5-r1.ebuild new file mode 100644 index 000000000000..6a9080260911 --- /dev/null +++ b/sys-apps/gawk/gawk-3.1.5-r1.ebuild @@ -0,0 +1,112 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-apps/gawk/gawk-3.1.5-r1.ebuild,v 1.1 2006/04/12 00:12:42 vapier Exp $ + +inherit eutils toolchain-funcs multilib + +DESCRIPTION="GNU awk pattern-matching language" +HOMEPAGE="http://www.gnu.org/software/gawk/gawk.html" +SRC_URI="mirror://gnu/gawk/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc-macos ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd" +IUSE="nls build" + +RDEPEND="" +DEPEND="${RDEPEND} + nls? ( sys-devel/gettext )" + +SFFS=${WORKDIR}/filefuncs + +src_unpack() { + unpack ${P}.tar.gz + + # Copy filefuncs module's source over ... + cp -pPR "${FILESDIR}"/filefuncs "${SFFS}" || die "cp failed" + + cd "${S}" + epatch "${FILESDIR}"/${P}-core.patch + epatch "${FILESDIR}"/${P}-gcc4.patch + # Patches from Fedora + epatch "${FILESDIR}"/${PN}-3.1.3-getpgrp_void.patch + epatch "${FILESDIR}"/${P}-fieldwidths.patch #127163 + epatch "${FILESDIR}"/${P}-binmode.patch + epatch "${FILESDIR}"/${P}-num2str.patch + # support for dec compiler. + [[ $(tc-getCC) == "ccc" ]] && epatch "${FILESDIR}"/${PN}-3.1.2-dec-alpha-compiler.diff +} + +src_compile() { + econf \ + --bindir=/bin \ + --libexec='$(libdir)/misc' \ + $(use_enable nls) \ + --enable-switch \ + || die + emake || die "emake failed" + + cd "${SFFS}" + emake CC=$(tc-getCC) || die "filefuncs emake failed" +} + +src_install() { + make install DESTDIR="${D}" || die "install failed" + cd "${SFFS}" + make LIBDIR="$(get_libdir)" install || die "filefuncs install failed" + + dodir /usr/bin + # In some rare cases, (p)gawk gets installed as (p)gawk- and not + # (p)gawk-${PV} ... Also make sure that /bin/(p)gawk is a symlink + # to /bin/(p)gawk-${PV}. + local binpath x + for x in gawk pgawk igawk ; do + [[ ${x} == "gawk" ]] \ + && binpath="/bin" \ + || binpath="/usr/bin" + + if [[ -f ${D}/bin/${x} && ! -f ${D}/bin/${x}-${PV} ]] ; then + mv -f "${D}"/bin/${x} "${D}"/${binpath}/${x}-${PV} + elif [[ -f ${D}/bin/${x}- && ! -f ${D}/bin/${x}-${PV} ]] ; then + mv -f "${D}"/bin/${x}- "${D}"/${binpath}/${x}-${PV} + elif [[ ${binpath} == "/usr/bin" && -f ${D}/bin/${x}-${PV} ]] ; then + mv -f "${D}"/bin/${x}-${PV} "${D}"/${binpath}/${x}-${PV} + fi + + rm -f "${D}"/bin/${x} + dosym ${x}-${PV} ${binpath}/${x} + [[ ${binpath} == "/usr/bin" ]] && dosym /usr/bin/${x}-${PV} /bin/${x} + done + + rm -f "${D}"/bin/awk + dodir /usr/bin + # Compat symlinks + dosym /bin/gawk-${PV} /usr/bin/gawk + dosym gawk-${PV} /bin/awk + dosym /bin/gawk-${PV} /usr/bin/awk + [[ ${USERLAND} != "GNU" ]] && rm -f "${D}"/{,usr/}bin/awk{,-${PV}} + + # Install headers + insinto /usr/include/awk + doins "${S}"/*.h || die "ins headers failed" + # We do not want 'acconfig.h' in there ... + rm -f "${D}"/usr/include/awk/acconfig.h + + if ! use build ; then + cd "${S}" + rm -f "${D}"/usr/share/man/man1/pgawk.1 + dosym gawk.1.gz /usr/share/man/man1/pgawk.1.gz + [[ ${USERLAND} == "GNU" ]] && dosym gawk.1.gz /usr/share/man/man1/awk.1.gz + dodoc AUTHORS ChangeLog FUTURES LIMITATIONS NEWS PROBLEMS POSIX.STD README + docinto README_d + dodoc README_d/* + docinto awklib + dodoc awklib/ChangeLog + docinto pc + dodoc pc/ChangeLog + docinto posix + dodoc posix/ChangeLog + else + rm -r "${D}"/usr/share + fi +} |