diff options
author | Leonardo Boshell <leonardop@gentoo.org> | 2006-03-31 00:43:32 +0000 |
---|---|---|
committer | Leonardo Boshell <leonardop@gentoo.org> | 2006-03-31 00:43:32 +0000 |
commit | c874170e04444efffcbf9cc11f0213f3f961b7ce (patch) | |
tree | 10fcc1ffef65ab718c71c9794fca48d6b50e98b5 /dev-libs/libxslt | |
parent | Add ~x86-fbsd keyword. (diff) | |
download | historical-c874170e04444efffcbf9cc11f0213f3f961b7ce.tar.gz historical-c874170e04444efffcbf9cc11f0213f3f961b7ce.tar.bz2 historical-c874170e04444efffcbf9cc11f0213f3f961b7ce.zip |
Added patch to fix a segfault under certain scenarios (bug #106992). Dropped static USE flag.
Package-Manager: portage-2.1_pre7-r2
Diffstat (limited to 'dev-libs/libxslt')
-rw-r--r-- | dev-libs/libxslt/ChangeLog | 11 | ||||
-rw-r--r-- | dev-libs/libxslt/Manifest | 25 | ||||
-rw-r--r-- | dev-libs/libxslt/files/digest-libxslt-1.1.15-r1 | 3 | ||||
-rw-r--r-- | dev-libs/libxslt/files/libxslt-1.1.15-pattern_fix.patch | 448 | ||||
-rw-r--r-- | dev-libs/libxslt/libxslt-1.1.15-r1.ebuild | 65 |
5 files changed, 537 insertions, 15 deletions
diff --git a/dev-libs/libxslt/ChangeLog b/dev-libs/libxslt/ChangeLog index b22fe6bd6561..45ba7d1a6480 100644 --- a/dev-libs/libxslt/ChangeLog +++ b/dev-libs/libxslt/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for dev-libs/libxslt -# Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-libs/libxslt/ChangeLog,v 1.129 2005/11/11 23:00:50 hansmi Exp $ +# Copyright 2002-2006 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/dev-libs/libxslt/ChangeLog,v 1.130 2006/03/31 00:43:32 leonardop Exp $ + +*libxslt-1.1.15-r1 (31 Mar 2006) + + 31 Mar 2006; Leonardo Boshell <leonardop@gentoo.org> + +files/libxslt-1.1.15-pattern_fix.patch, +libxslt-1.1.15-r1.ebuild: + Patch to fix a segfault with certain xpath statements (bug #106992). Dropped + 'static' USE flag. 11 Nov 2005; Michael Hanselmann <hansmi@gentoo.org> libxslt-1.1.15.ebuild: Stable on ppc. diff --git a/dev-libs/libxslt/Manifest b/dev-libs/libxslt/Manifest index 239af4156d72..b69ae9582e98 100644 --- a/dev-libs/libxslt/Manifest +++ b/dev-libs/libxslt/Manifest @@ -1,25 +1,24 @@ ------BEGIN PGP SIGNED MESSAGE----- -Hash: SHA1 - -MD5 d2ca9bb53b30ab4b26a5aff19f86e51f ChangeLog 15270 -RMD160 99c5722fb02649340bdcbc3a180b9d8ed548908a ChangeLog 15270 -SHA256 f05004de4712edbd25bf4aba3488b7201925e394ff098b7d8ffc070fb67dce92 ChangeLog 15270 +MD5 a4b1aa97776be627485c06b05f15c517 ChangeLog 15533 +RMD160 d184020cbd12fdedda9026042fb24de3cfca5baf ChangeLog 15533 +SHA256 d987aeb35059ab748ba2ea83a41176a121b3a067bd3811fd368bee5992c283f5 ChangeLog 15533 MD5 3f759d81e688060d55a76a9529dd41d7 files/digest-libxslt-1.1.15 68 RMD160 baf1fde40f27ae6debf5a8475d5b8da0e33a8030 files/digest-libxslt-1.1.15 68 SHA256 5044e560aeaef16387ac3d2fbb845893aca87dd3a7e949f07f2bcc98ad9f62af files/digest-libxslt-1.1.15 68 +MD5 661100efff83221b769292fe6f0d1993 files/digest-libxslt-1.1.15-r1 250 +RMD160 86372706ddc840f50a50991809737ba45b7a75d0 files/digest-libxslt-1.1.15-r1 250 +SHA256 588cf2cdf41c649d628086f6117addb677cd24842336430485663ed1039f2b27 files/digest-libxslt-1.1.15-r1 250 +MD5 684db3ea80f64024cc1d2c3466790f04 files/libxslt-1.1.15-pattern_fix.patch 13404 +RMD160 390c01b4988c1df5d9f6d2b77fb7d47dc18cca89 files/libxslt-1.1.15-pattern_fix.patch 13404 +SHA256 34c13e32ca69eb5c55669d23e07710f56ec1c275fd78fa8ad2d36cc7f413a0a7 files/libxslt-1.1.15-pattern_fix.patch 13404 MD5 a772cd7aafe8f9e0fd59de02b2ea2e85 files/libxslt.m4-libxslt-1.1.8.patch 1292 RMD160 0dcd21978aa0102784df670f2c9835da227f42c8 files/libxslt.m4-libxslt-1.1.8.patch 1292 SHA256 0da59fb6cb50bf30e8ac79644df90394707ac07e60337aa3c0e53986781e9e0d files/libxslt.m4-libxslt-1.1.8.patch 1292 +MD5 636d561d6a3cab54c7f83792eec51db1 libxslt-1.1.15-r1.ebuild 1873 +RMD160 a813581892c1604a1a958c2e1eaf9004e3c025eb libxslt-1.1.15-r1.ebuild 1873 +SHA256 14b411ca306be6a15642bfa165a6334bd754a0f51e3a9763af90b15a1b40e95a libxslt-1.1.15-r1.ebuild 1873 MD5 8d0a9caf015cb42e81bb61f26389f555 libxslt-1.1.15.ebuild 1749 RMD160 8ad9e5bdf8f483eecf86176067cf1da8cafc0ded libxslt-1.1.15.ebuild 1749 SHA256 42c7dc5790bd7ba32741cd2b810c0b00d8d1b2ddf80fa0fa34d1bcb83f067931 libxslt-1.1.15.ebuild 1749 MD5 03ad2e6c4ab41244af1015a8bbb0b39f metadata.xml 158 RMD160 c0e2bae8e91bb6be8922bac5e4f597302e06587e metadata.xml 158 SHA256 3a7dbca0fdc557de69783e0663e2d76ddab129ea8a19b2d0ef6d3e5d1b947ce1 metadata.xml 158 ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.2.2 (GNU/Linux) - -iD8DBQFEH2qg2+ySkm8kpY0RAt53AJ9JJSUyG94WwIgzaeQFH5ASYgCzNQCcDDtk -h3P/knbpVR2LyYykxBVbauY= -=GybH ------END PGP SIGNATURE----- diff --git a/dev-libs/libxslt/files/digest-libxslt-1.1.15-r1 b/dev-libs/libxslt/files/digest-libxslt-1.1.15-r1 new file mode 100644 index 000000000000..ed0997e82420 --- /dev/null +++ b/dev-libs/libxslt/files/digest-libxslt-1.1.15-r1 @@ -0,0 +1,3 @@ +MD5 0a48d1a723d5338b246702ab1769e7bf libxslt-1.1.15.tar.bz2 1822862 +RMD160 8a560fdc635a2ab8d74ba95f9a98236a52204573 libxslt-1.1.15.tar.bz2 1822862 +SHA256 6322124f471d6ed4908833cddaba512b247aa169cb8d1ebd87219afe051c6e03 libxslt-1.1.15.tar.bz2 1822862 diff --git a/dev-libs/libxslt/files/libxslt-1.1.15-pattern_fix.patch b/dev-libs/libxslt/files/libxslt-1.1.15-pattern_fix.patch new file mode 100644 index 000000000000..ed1433ce0d34 --- /dev/null +++ b/dev-libs/libxslt/files/libxslt-1.1.15-pattern_fix.patch @@ -0,0 +1,448 @@ +diff -NurdB libxslt-1.1.15/libxslt/pattern.c libxslt-1.1.15-patched/libxslt/pattern.c +--- libxslt-1.1.15/libxslt/pattern.c 2005-09-04 17:41:43.000000000 -0500 ++++ libxslt-1.1.15-patched/libxslt/pattern.c 2006-03-30 19:23:03.000000000 -0500 +@@ -268,6 +268,7 @@ + * @op: an op + * @value: the first value + * @value2: the second value ++ * @novar: flag to set XML_XPATH_NOVAR + * + * Add an step to an XSLT Compiled Match + * +@@ -275,7 +276,7 @@ + */ + static int + xsltCompMatchAdd(xsltParserContextPtr ctxt, xsltCompMatchPtr comp, +- xsltOp op, xmlChar * value, xmlChar * value2) ++ xsltOp op, xmlChar * value, xmlChar * value2, int novar) + { + if (comp->nbStep >= 40) { + xsltTransformError(NULL, NULL, NULL, +@@ -308,7 +309,8 @@ + else + xctxt = xmlXPathNewContext(NULL); + #ifdef XML_XPATH_NOVAR +- xctxt->flags = XML_XPATH_NOVAR; ++ if (novar != 0) ++ xctxt->flags = XML_XPATH_NOVAR; + #endif + if (ctxt->style != NULL) + xctxt->dict = ctxt->style->dict; +@@ -317,7 +319,8 @@ + if (comp->steps[comp->nbStep].comp == NULL) { + xsltTransformError(NULL, ctxt->style, ctxt->elem, + "Failed to compile predicate\n"); +- ctxt->style->errors++; ++ if (ctxt->style != NULL) ++ ctxt->style->errors++; + } + } + comp->nbStep++; +@@ -1181,8 +1184,8 @@ + #define NEXT ((*ctxt->cur) ? ctxt->cur++: ctxt->cur) + + +-#define PUSH(op, val, val2) \ +- if (xsltCompMatchAdd(ctxt, ctxt->comp, (op), (val), (val2))) goto error; ++#define PUSH(op, val, val2, novar) \ ++ if (xsltCompMatchAdd(ctxt, ctxt->comp, (op), (val), (val2), (novar))) goto error; + + #define SWAP() \ + xsltSwapTopCompMatch(ctxt->comp); +@@ -1358,6 +1361,7 @@ + * @ctxt: the compilation context + * @name: a preparsed name + * @aid: whether id/key are allowed there ++ * @novar: flag to prohibit xslt var + * + * Compile the XSLT LocationIdKeyPattern + * [3] IdKeyPattern ::= 'id' '(' Literal ')' +@@ -1370,7 +1374,8 @@ + * | 'processing-instruction' '(' Literal ')' + */ + static void +-xsltCompileIdKeyPattern(xsltParserContextPtr ctxt, xmlChar *name, int aid) { ++xsltCompileIdKeyPattern(xsltParserContextPtr ctxt, xmlChar *name, ++ int aid, int novar) { + xmlChar *lit = NULL; + xmlChar *lit2 = NULL; + +@@ -1394,7 +1399,7 @@ + return; + } + NEXT; +- PUSH(XSLT_OP_ID, lit, NULL); ++ PUSH(XSLT_OP_ID, lit, NULL, novar); + } else if ((aid) && (xmlStrEqual(name, (const xmlChar *)"key"))) { + NEXT; + SKIP_BLANKS; +@@ -1422,7 +1427,7 @@ + } + NEXT; + /* TODO: support namespace in keys */ +- PUSH(XSLT_OP_KEY, lit, lit2); ++ PUSH(XSLT_OP_KEY, lit, lit2, novar); + } else if (xmlStrEqual(name, (const xmlChar *)"processing-instruction")) { + NEXT; + SKIP_BLANKS; +@@ -1439,7 +1444,7 @@ + } + } + NEXT; +- PUSH(XSLT_OP_PI, lit, NULL); ++ PUSH(XSLT_OP_PI, lit, NULL, novar); + } else if (xmlStrEqual(name, (const xmlChar *)"text")) { + NEXT; + SKIP_BLANKS; +@@ -1450,7 +1455,7 @@ + return; + } + NEXT; +- PUSH(XSLT_OP_TEXT, NULL, NULL); ++ PUSH(XSLT_OP_TEXT, NULL, NULL, novar); + } else if (xmlStrEqual(name, (const xmlChar *)"comment")) { + NEXT; + SKIP_BLANKS; +@@ -1461,7 +1466,7 @@ + return; + } + NEXT; +- PUSH(XSLT_OP_COMMENT, NULL, NULL); ++ PUSH(XSLT_OP_COMMENT, NULL, NULL, novar); + } else if (xmlStrEqual(name, (const xmlChar *)"node")) { + NEXT; + SKIP_BLANKS; +@@ -1472,7 +1477,7 @@ + return; + } + NEXT; +- PUSH(XSLT_OP_NODE, NULL, NULL); ++ PUSH(XSLT_OP_NODE, NULL, NULL, novar); + } else if (aid) { + xsltTransformError(NULL, NULL, NULL, + "xsltCompileIdKeyPattern : expecting 'key' or 'id' or node type\n"); +@@ -1493,6 +1498,7 @@ + * xsltCompileStepPattern: + * @ctxt: the compilation context + * @token: a posible precompiled name ++ * @novar: flag to prohibit xslt variables from pattern + * + * Compile the XSLT StepPattern and generates a precompiled + * form suitable for fast matching. +@@ -1511,7 +1517,7 @@ + */ + + static void +-xsltCompileStepPattern(xsltParserContextPtr ctxt, xmlChar *token) { ++xsltCompileStepPattern(xsltParserContextPtr ctxt, xmlChar *token, int novar) { + xmlChar *name = NULL; + const xmlChar *URI = NULL; + xmlChar *URL = NULL; +@@ -1524,7 +1530,7 @@ + NEXT; + if (CUR == '*') { + NEXT; +- PUSH(XSLT_OP_ATTR, NULL, NULL); ++ PUSH(XSLT_OP_ATTR, NULL, NULL, novar); + goto parse_predicate; + } + token = xsltScanQName(ctxt, &prefix); +@@ -1544,7 +1550,7 @@ + if (token == NULL) { + if (CUR == '*') { + NEXT; +- PUSH(XSLT_OP_ATTR, NULL, URL); ++ PUSH(XSLT_OP_ATTR, NULL, URL, novar); + return; + } + xsltTransformError(NULL, NULL, NULL, +@@ -1552,7 +1558,7 @@ + ctxt->error = 1; + goto error; + } +- PUSH(XSLT_OP_ATTR, token, URL); ++ PUSH(XSLT_OP_ATTR, token, URL, novar); + goto parse_predicate; + } + if (token == NULL) +@@ -1560,7 +1566,7 @@ + if (token == NULL) { + if (CUR == '*') { + NEXT; +- PUSH(XSLT_OP_ALL, token, NULL); ++ PUSH(XSLT_OP_ALL, token, NULL, novar); + goto parse_predicate; + } else { + xsltTransformError(NULL, NULL, NULL, +@@ -1573,7 +1579,7 @@ + + SKIP_BLANKS; + if (CUR == '(') { +- xsltCompileIdKeyPattern(ctxt, token, 0); ++ xsltCompileIdKeyPattern(ctxt, token, 0, novar); + if (ctxt->error) + goto error; + } else if (CUR == ':') { +@@ -1600,7 +1606,7 @@ + if (token == NULL) { + if (CUR == '*') { + NEXT; +- PUSH(XSLT_OP_NS, URL, NULL); ++ PUSH(XSLT_OP_NS, URL, NULL, novar); + } else { + xsltTransformError(NULL, NULL, NULL, + "xsltCompileStepPattern : Name expected\n"); +@@ -1608,7 +1614,7 @@ + goto error; + } + } else { +- PUSH(XSLT_OP_ELEM, token, URL); ++ PUSH(XSLT_OP_ELEM, token, URL, novar); + } + } else { + NEXT; +@@ -1618,7 +1624,7 @@ + if (token == NULL) { + if (CUR == '*') { + NEXT; +- PUSH(XSLT_OP_ALL, token, NULL); ++ PUSH(XSLT_OP_ALL, token, NULL, novar); + goto parse_predicate; + } else { + xsltTransformError(NULL, NULL, NULL, +@@ -1636,7 +1642,7 @@ + if (URI != NULL) + URL = xmlStrdup(URI); + } +- PUSH(XSLT_OP_CHILD, name, URL); ++ PUSH(XSLT_OP_CHILD, name, URL, novar); + } else if (xmlStrEqual(token, (const xmlChar *) "attribute")) { + xmlFree(token); + token = xsltScanName(ctxt); +@@ -1655,7 +1661,7 @@ + if (URI != NULL) + URL = xmlStrdup(URI); + } +- PUSH(XSLT_OP_ATTR, name, URL); ++ PUSH(XSLT_OP_ATTR, name, URL, novar); + } else { + xsltTransformError(NULL, NULL, NULL, + "xsltCompileStepPattern : 'child' or 'attribute' expected\n"); +@@ -1666,7 +1672,7 @@ + } + } else if (CUR == '*') { + NEXT; +- PUSH(XSLT_OP_ALL, token, NULL); ++ PUSH(XSLT_OP_ALL, token, NULL, novar); + } else { + URI = xsltGetQNameURI(ctxt->elem, &token); + if (token == NULL) { +@@ -1675,7 +1681,7 @@ + } + if (URI != NULL) + URL = xmlStrdup(URI); +- PUSH(XSLT_OP_ELEM, token, URL); ++ PUSH(XSLT_OP_ELEM, token, URL, novar); + } + parse_predicate: + SKIP_BLANKS; +@@ -1713,7 +1719,7 @@ + return; + } + ret = xmlStrndup(q, CUR_PTR - q); +- PUSH(XSLT_OP_PREDICATE, ret, NULL); ++ PUSH(XSLT_OP_PREDICATE, ret, NULL, novar); + /* push the predicate lower than local test */ + SWAP(); + NEXT; +@@ -1731,6 +1737,7 @@ + * xsltCompileRelativePathPattern: + * @comp: the compilation context + * @token: a posible precompiled name ++ * @novar: flag to prohibit xslt variables + * + * Compile the XSLT RelativePathPattern and generates a precompiled + * form suitable for fast matching. +@@ -1740,24 +1747,24 @@ + * | RelativePathPattern '//' StepPattern + */ + static void +-xsltCompileRelativePathPattern(xsltParserContextPtr ctxt, xmlChar *token) { +- xsltCompileStepPattern(ctxt, token); ++xsltCompileRelativePathPattern(xsltParserContextPtr ctxt, xmlChar *token, int novar) { ++ xsltCompileStepPattern(ctxt, token, novar); + if (ctxt->error) + goto error; + SKIP_BLANKS; + while ((CUR != 0) && (CUR != '|')) { + if ((CUR == '/') && (NXT(1) == '/')) { +- PUSH(XSLT_OP_ANCESTOR, NULL, NULL); ++ PUSH(XSLT_OP_ANCESTOR, NULL, NULL, novar); + NEXT; + NEXT; + SKIP_BLANKS; +- xsltCompileStepPattern(ctxt, NULL); ++ xsltCompileStepPattern(ctxt, NULL, novar); + } else if (CUR == '/') { +- PUSH(XSLT_OP_PARENT, NULL, NULL); ++ PUSH(XSLT_OP_PARENT, NULL, NULL, novar); + NEXT; + SKIP_BLANKS; + if ((CUR != 0) && (CUR != '|')) { +- xsltCompileRelativePathPattern(ctxt, NULL); ++ xsltCompileRelativePathPattern(ctxt, NULL, novar); + } + } else { + ctxt->error = 1; +@@ -1773,6 +1780,7 @@ + /** + * xsltCompileLocationPathPattern: + * @ctxt: the compilation context ++ * @novar: flag to prohibit xslt variables + * + * Compile the XSLT LocationPathPattern and generates a precompiled + * form suitable for fast matching. +@@ -1782,7 +1790,7 @@ + * | '//'? RelativePathPattern + */ + static void +-xsltCompileLocationPathPattern(xsltParserContextPtr ctxt) { ++xsltCompileLocationPathPattern(xsltParserContextPtr ctxt, int novar) { + SKIP_BLANKS; + if ((CUR == '/') && (NXT(1) == '/')) { + /* +@@ -1792,22 +1800,22 @@ + NEXT; + NEXT; + ctxt->comp->priority = 0.5; /* '//' means not 0 priority */ +- xsltCompileRelativePathPattern(ctxt, NULL); ++ xsltCompileRelativePathPattern(ctxt, NULL, novar); + } else if (CUR == '/') { + /* + * We need to find root as the parent + */ + NEXT; + SKIP_BLANKS; +- PUSH(XSLT_OP_ROOT, NULL, NULL); ++ PUSH(XSLT_OP_ROOT, NULL, NULL, novar); + if ((CUR != 0) && (CUR != '|')) { +- PUSH(XSLT_OP_PARENT, NULL, NULL); +- xsltCompileRelativePathPattern(ctxt, NULL); ++ PUSH(XSLT_OP_PARENT, NULL, NULL, novar); ++ xsltCompileRelativePathPattern(ctxt, NULL, novar); + } + } else if (CUR == '*') { +- xsltCompileRelativePathPattern(ctxt, NULL); ++ xsltCompileRelativePathPattern(ctxt, NULL, novar); + } else if (CUR == '@') { +- xsltCompileRelativePathPattern(ctxt, NULL); ++ xsltCompileRelativePathPattern(ctxt, NULL, novar); + } else { + xmlChar *name; + name = xsltScanName(ctxt); +@@ -1819,34 +1827,35 @@ + } + SKIP_BLANKS; + if ((CUR == '(') && !xmlXPathIsNodeType(name)) { +- xsltCompileIdKeyPattern(ctxt, name, 1); ++ xsltCompileIdKeyPattern(ctxt, name, 1, novar); + if ((CUR == '/') && (NXT(1) == '/')) { +- PUSH(XSLT_OP_ANCESTOR, NULL, NULL); ++ PUSH(XSLT_OP_ANCESTOR, NULL, NULL, novar); + NEXT; + NEXT; + SKIP_BLANKS; +- xsltCompileRelativePathPattern(ctxt, NULL); ++ xsltCompileRelativePathPattern(ctxt, NULL, novar); + } else if (CUR == '/') { +- PUSH(XSLT_OP_PARENT, NULL, NULL); ++ PUSH(XSLT_OP_PARENT, NULL, NULL, novar); + NEXT; + SKIP_BLANKS; +- xsltCompileRelativePathPattern(ctxt, NULL); ++ xsltCompileRelativePathPattern(ctxt, NULL, novar); + } + return; + } +- xsltCompileRelativePathPattern(ctxt, name); ++ xsltCompileRelativePathPattern(ctxt, name, novar); + } + error: + return; + } + + /** +- * xsltCompilePattern: ++ * xsltCompilePatternInternal: + * @pattern: an XSLT pattern + * @doc: the containing document + * @node: the containing element + * @style: the stylesheet + * @runtime: the transformation context, if done at run-time ++ * @novar: flag to prohibit xslt variables + * + * Compile the XSLT pattern and generates a list of precompiled form suitable + * for fast matching. +@@ -1856,10 +1865,10 @@ + * Returns the generated pattern list or NULL in case of failure + */ + +-xsltCompMatchPtr +-xsltCompilePattern(const xmlChar *pattern, xmlDocPtr doc, ++static xsltCompMatchPtr ++xsltCompilePatternInternal(const xmlChar *pattern, xmlDocPtr doc, + xmlNodePtr node, xsltStylesheetPtr style, +- xsltTransformContextPtr runtime) { ++ xsltTransformContextPtr runtime, int novar) { + xsltParserContextPtr ctxt = NULL; + xsltCompMatchPtr element, first = NULL, previous = NULL; + int current, start, end, level, j; +@@ -1938,7 +1947,7 @@ + This may be changed by xsltCompileLocationPathPattern. + */ + element->priority = 0; +- xsltCompileLocationPathPattern(ctxt); ++ xsltCompileLocationPathPattern(ctxt, novar); + if (ctxt->error) { + xsltTransformError(NULL, style, node, + "xsltCompilePattern : failed to compile '%s'\n", +@@ -2013,6 +2022,29 @@ + return(NULL); + } + ++/** ++ * xsltCompilePattern: ++ * @pattern: an XSLT pattern ++ * @doc: the containing document ++ * @node: the containing element ++ * @style: the stylesheet ++ * @runtime: the transformation context, if done at run-time ++ * ++ * Compile the XSLT pattern and generates a list of precompiled form suitable ++ * for fast matching. ++ * ++ * [1] Pattern ::= LocationPathPattern | Pattern '|' LocationPathPattern ++ * ++ * Returns the generated pattern list or NULL in case of failure ++ */ ++ ++xsltCompMatchPtr ++xsltCompilePattern(const xmlChar *pattern, xmlDocPtr doc, ++ xmlNodePtr node, xsltStylesheetPtr style, ++ xsltTransformContextPtr runtime) { ++ return (xsltCompilePatternInternal(pattern, doc, node, style, runtime, 0)); ++} ++ + /************************************************************************ + * * + * Module interfaces * +@@ -2041,7 +2073,8 @@ + return(-1); + + priority = cur->priority; +- pat = xsltCompilePattern(cur->match, style->doc, cur->elem, style, NULL); ++ pat = xsltCompilePatternInternal(cur->match, style->doc, cur->elem, ++ style, NULL, 1); + while (pat) { + next = pat->next; + pat->next = NULL; diff --git a/dev-libs/libxslt/libxslt-1.1.15-r1.ebuild b/dev-libs/libxslt/libxslt-1.1.15-r1.ebuild new file mode 100644 index 000000000000..c9439cb1492f --- /dev/null +++ b/dev-libs/libxslt/libxslt-1.1.15-r1.ebuild @@ -0,0 +1,65 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-libs/libxslt/libxslt-1.1.15-r1.ebuild,v 1.1 2006/03/31 00:43:32 leonardop Exp $ + +inherit libtool gnome.org eutils python + +DESCRIPTION="XSLT libraries and tools" +HOMEPAGE="http://www.xmlsoft.org/" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" +IUSE="crypt debug python" + +DEPEND=">=dev-libs/libxml2-2.6.17 + crypt? ( >=dev-libs/libgcrypt-1.1.92 ) + python? ( dev-lang/python )" + +src_unpack() { + unpack ${A} + cd "${S}" + + # we still require the 1.1.8 patch for the .m4 file, to add + # the CXXFLAGS defines <obz@gentoo.org> + epatch "${FILESDIR}"/libxslt.m4-${PN}-1.1.8.patch + + # Patch from CVS to fix segfault when processing certain xpath statements + # (bug #106992) + epatch "${FILESDIR}"/${P}-pattern_fix.patch + + # Patch Makefile to fix bug #99382 so that html gets installed in ${PF} + sed -i -e 's:libxslt-$(VERSION):${PF}:' doc/Makefile.in + + epunt_cxx + elibtoolize +} + +src_compile() { + # Always pass --with-debugger. It is required by third parties (see + # e.g. bug #98345) + local myconf="--with-debugger \ + $(use_with python) \ + $(use_with crypt crypto) \ + $(use_with debug) \ + $(use_with debug mem-debug)" + + econf ${myconf} || die "configure failed" + + # Patching the Makefiles to respect get_libdir + # Fixes BUG #86756, please keep this. + # Danny van Dyk <kugelfang@gentoo.org> 2005/03/26 + for x in $(find "${S}" -name "Makefile") ; do + sed \ + -e "s|^\(PYTHON_SITE_PACKAGES\ =\ \/usr\/\).*\(\/python.*\)|\1$(get_libdir)\2|g" \ + -i ${x} \ + || die "sed failed" + done + + emake || die "Compilation failed" +} + +src_install() { + make DESTDIR="${D}" install || die "Installation failed" + dodoc AUTHORS ChangeLog FEATURES NEWS README TODO +} |