summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2011-09-17 04:47:35 +0000
committerMike Frysinger <vapier@gentoo.org>2011-09-17 04:47:35 +0000
commit78010fe544bcba0d5daba4b2287c079a04622c24 (patch)
treebc12127d2f4b2f9f591963e77fba88c1388ee8c4 /dev-libs/libpcre
parentCleanup base.use.mask (diff)
downloadgentoo-2-78010fe544bcba0d5daba4b2287c079a04622c24.tar.gz
gentoo-2-78010fe544bcba0d5daba4b2287c079a04622c24.tar.bz2
gentoo-2-78010fe544bcba0d5daba4b2287c079a04622c24.zip
Add fix from upstream for posix regex behavior #382919 by Christian Kaps.
(Portage version: 2.2.0_alpha58/cvs/Linux x86_64)
Diffstat (limited to 'dev-libs/libpcre')
-rw-r--r--dev-libs/libpcre/ChangeLog8
-rw-r--r--dev-libs/libpcre/files/libpcre-8.13-posix-regex.patch29
-rw-r--r--dev-libs/libpcre/libpcre-8.13-r1.ebuild57
3 files changed, 93 insertions, 1 deletions
diff --git a/dev-libs/libpcre/ChangeLog b/dev-libs/libpcre/ChangeLog
index de0a05803300..a3b13d551565 100644
--- a/dev-libs/libpcre/ChangeLog
+++ b/dev-libs/libpcre/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for dev-libs/libpcre
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/libpcre/ChangeLog,v 1.183 2011/09/01 06:26:43 radhermit Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/libpcre/ChangeLog,v 1.184 2011/09/17 04:47:35 vapier Exp $
+
+*libpcre-8.13-r1 (17 Sep 2011)
+
+ 17 Sep 2011; Mike Frysinger <vapier@gentoo.org> +libpcre-8.13-r1.ebuild,
+ +files/libpcre-8.13-posix-regex.patch:
+ Add fix from upstream for posix regex behavior #382919 by Christian Kaps.
*libpcre-8.13 (01 Sep 2011)
diff --git a/dev-libs/libpcre/files/libpcre-8.13-posix-regex.patch b/dev-libs/libpcre/files/libpcre-8.13-posix-regex.patch
new file mode 100644
index 000000000000..6c6d2c38954c
--- /dev/null
+++ b/dev-libs/libpcre/files/libpcre-8.13-posix-regex.patch
@@ -0,0 +1,29 @@
+http://bugs.exim.org/show_bug.cgi?id=1136
+https://bugs.gentoo.org/382919
+
+--- code/trunk/pcre_compile.c 2011/08/02 11:00:40 654
++++ code/trunk/pcre_compile.c 2011/08/21 09:00:54 661
+@@ -2295,8 +2295,13 @@
+ A user pointed out that PCRE was rejecting [:a[:digit:]] whereas Perl was not.
+ It seems that the appearance of a nested POSIX class supersedes an apparent
+ external class. For example, [:a[:digit:]b:] matches "a", "b", ":", or
+-a digit. Also, unescaped square brackets may also appear as part of class
+-names. For example, [:a[:abc]b:] gives unknown class "[:abc]b:]"in Perl.
++a digit.
++
++In Perl, unescaped square brackets may also appear as part of class names. For
++example, [:a[:abc]b:] gives unknown POSIX class "[:abc]b:]". However, for
++[:a[:abc]b][b:] it gives unknown POSIX class "[:abc]b][b:]", which does not
++seem right at all. PCRE does not allow closing square brackets in POSIX class
++names.
+
+ Arguments:
+ ptr pointer to the initial [
+@@ -2314,6 +2319,7 @@
+ {
+ if (*ptr == CHAR_BACKSLASH && ptr[1] == CHAR_RIGHT_SQUARE_BRACKET)
+ ptr++;
++ else if (*ptr == CHAR_RIGHT_SQUARE_BRACKET) return FALSE;
+ else
+ {
+ if (*ptr == terminator && ptr[1] == CHAR_RIGHT_SQUARE_BRACKET)
diff --git a/dev-libs/libpcre/libpcre-8.13-r1.ebuild b/dev-libs/libpcre/libpcre-8.13-r1.ebuild
new file mode 100644
index 000000000000..4bb6bd0289e2
--- /dev/null
+++ b/dev-libs/libpcre/libpcre-8.13-r1.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/libpcre/libpcre-8.13-r1.ebuild,v 1.1 2011/09/17 04:47:35 vapier Exp $
+
+EAPI="4"
+
+inherit libtool eutils toolchain-funcs flag-o-matic
+
+DESCRIPTION="Perl-compatible regular expression library"
+HOMEPAGE="http://www.pcre.org/"
+MY_P="pcre-${PV/_rc/-RC}"
+if [[ ${PV} == *_rc* ]] ; then
+ # Only the final releases are available here.
+ SRC_URI="mirror://sourceforge/pcre/${MY_P}.tar.bz2
+ ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/${MY_P}.tar.bz2"
+else
+ SRC_URI="ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/Testing/${MY_P}.tar.bz2"
+fi
+
+LICENSE="BSD"
+SLOT="3"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="bzip2 +cxx +recursion-limit static-libs unicode zlib"
+
+RDEPEND="bzip2? ( app-arch/bzip2 )
+ zlib? ( sys-libs/zlib )"
+DEPEND="${RDEPEND}
+ dev-util/pkgconfig
+ userland_GNU? ( >=sys-apps/findutils-4.4.0 )"
+
+S=${WORKDIR}/${MY_P}
+
+src_prepare() {
+ sed -i -e "s:-lpcre ::" libpcrecpp.pc.in || die
+ elibtoolize
+ epatch "${FILESDIR}"/${P}-posix-regex.patch #382919
+}
+
+src_configure() {
+ [[ ${CHOST} == *-mint* ]] && append-flags -D_GNU_SOURCE
+ econf \
+ --with-match-limit-recursion=$(use recursion-limit && echo 8192 || echo MATCH_LIMIT) \
+ $(use_enable unicode utf8) $(use_enable unicode unicode-properties) \
+ $(use_enable cxx cpp) \
+ $(use_enable zlib pcregrep-libz) \
+ $(use_enable bzip2 pcregrep-libbz2) \
+ $(use_enable static-libs static) \
+ --enable-shared \
+ --htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
+ --docdir="${EPREFIX}"/usr/share/doc/${PF}
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+ gen_usr_ldscript -a pcre
+ find "${D}" -type f -name '*.la' -exec rm -f {} +
+}