nokogiri 1.10.4 → 1.11.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of nokogiri might be problematic. Click here for more details.

Files changed (157) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -0
  3. data/LICENSE-DEPENDENCIES.md +1015 -947
  4. data/LICENSE.md +1 -1
  5. data/README.md +173 -94
  6. data/dependencies.yml +28 -26
  7. data/ext/nokogiri/depend +37 -358
  8. data/ext/nokogiri/extconf.rb +611 -391
  9. data/ext/nokogiri/html_document.c +78 -82
  10. data/ext/nokogiri/html_element_description.c +84 -71
  11. data/ext/nokogiri/html_entity_lookup.c +21 -16
  12. data/ext/nokogiri/html_sax_parser_context.c +69 -66
  13. data/ext/nokogiri/html_sax_push_parser.c +42 -34
  14. data/ext/nokogiri/libxml2_backwards_compat.c +121 -0
  15. data/ext/nokogiri/nokogiri.c +192 -87
  16. data/ext/nokogiri/nokogiri.h +181 -89
  17. data/ext/nokogiri/test_global_handlers.c +40 -0
  18. data/ext/nokogiri/xml_attr.c +15 -15
  19. data/ext/nokogiri/xml_attribute_decl.c +18 -18
  20. data/ext/nokogiri/xml_cdata.c +13 -18
  21. data/ext/nokogiri/xml_comment.c +19 -26
  22. data/ext/nokogiri/xml_document.c +230 -159
  23. data/ext/nokogiri/xml_document_fragment.c +13 -15
  24. data/ext/nokogiri/xml_dtd.c +54 -48
  25. data/ext/nokogiri/xml_element_content.c +30 -27
  26. data/ext/nokogiri/xml_element_decl.c +22 -22
  27. data/ext/nokogiri/xml_encoding_handler.c +17 -11
  28. data/ext/nokogiri/xml_entity_decl.c +32 -30
  29. data/ext/nokogiri/xml_entity_reference.c +16 -18
  30. data/ext/nokogiri/xml_namespace.c +56 -49
  31. data/ext/nokogiri/xml_node.c +354 -282
  32. data/ext/nokogiri/xml_node_set.c +168 -156
  33. data/ext/nokogiri/xml_processing_instruction.c +17 -19
  34. data/ext/nokogiri/xml_reader.c +195 -172
  35. data/ext/nokogiri/xml_relax_ng.c +52 -28
  36. data/ext/nokogiri/xml_sax_parser.c +118 -118
  37. data/ext/nokogiri/xml_sax_parser_context.c +103 -86
  38. data/ext/nokogiri/xml_sax_push_parser.c +36 -27
  39. data/ext/nokogiri/xml_schema.c +111 -34
  40. data/ext/nokogiri/xml_syntax_error.c +42 -21
  41. data/ext/nokogiri/xml_text.c +13 -17
  42. data/ext/nokogiri/xml_xpath_context.c +206 -123
  43. data/ext/nokogiri/xslt_stylesheet.c +158 -165
  44. data/lib/nokogiri.rb +6 -27
  45. data/lib/nokogiri/css.rb +1 -0
  46. data/lib/nokogiri/css/node.rb +1 -0
  47. data/lib/nokogiri/css/parser.rb +63 -62
  48. data/lib/nokogiri/css/parser.y +2 -2
  49. data/lib/nokogiri/css/parser_extras.rb +39 -36
  50. data/lib/nokogiri/css/syntax_error.rb +1 -0
  51. data/lib/nokogiri/css/tokenizer.rb +1 -0
  52. data/lib/nokogiri/css/xpath_visitor.rb +73 -43
  53. data/lib/nokogiri/decorators/slop.rb +1 -0
  54. data/lib/nokogiri/extension.rb +26 -0
  55. data/lib/nokogiri/html.rb +1 -0
  56. data/lib/nokogiri/html/builder.rb +1 -0
  57. data/lib/nokogiri/html/document.rb +13 -26
  58. data/lib/nokogiri/html/document_fragment.rb +16 -15
  59. data/lib/nokogiri/html/element_description.rb +1 -0
  60. data/lib/nokogiri/html/element_description_defaults.rb +1 -0
  61. data/lib/nokogiri/html/entity_lookup.rb +1 -0
  62. data/lib/nokogiri/html/sax/parser.rb +1 -0
  63. data/lib/nokogiri/html/sax/parser_context.rb +1 -0
  64. data/lib/nokogiri/html/sax/push_parser.rb +1 -0
  65. data/lib/nokogiri/jruby/dependencies.rb +20 -0
  66. data/lib/nokogiri/syntax_error.rb +1 -0
  67. data/lib/nokogiri/version.rb +3 -109
  68. data/lib/nokogiri/version/constant.rb +5 -0
  69. data/lib/nokogiri/version/info.rb +205 -0
  70. data/lib/nokogiri/xml.rb +1 -0
  71. data/lib/nokogiri/xml/attr.rb +1 -0
  72. data/lib/nokogiri/xml/attribute_decl.rb +1 -0
  73. data/lib/nokogiri/xml/builder.rb +3 -2
  74. data/lib/nokogiri/xml/cdata.rb +1 -0
  75. data/lib/nokogiri/xml/character_data.rb +1 -0
  76. data/lib/nokogiri/xml/document.rb +49 -24
  77. data/lib/nokogiri/xml/document_fragment.rb +5 -6
  78. data/lib/nokogiri/xml/dtd.rb +1 -0
  79. data/lib/nokogiri/xml/element_content.rb +1 -0
  80. data/lib/nokogiri/xml/element_decl.rb +1 -0
  81. data/lib/nokogiri/xml/entity_decl.rb +1 -0
  82. data/lib/nokogiri/xml/entity_reference.rb +1 -0
  83. data/lib/nokogiri/xml/namespace.rb +1 -0
  84. data/lib/nokogiri/xml/node.rb +624 -290
  85. data/lib/nokogiri/xml/node/save_options.rb +1 -0
  86. data/lib/nokogiri/xml/node_set.rb +1 -0
  87. data/lib/nokogiri/xml/notation.rb +1 -0
  88. data/lib/nokogiri/xml/parse_options.rb +10 -3
  89. data/lib/nokogiri/xml/pp.rb +1 -0
  90. data/lib/nokogiri/xml/pp/character_data.rb +1 -0
  91. data/lib/nokogiri/xml/pp/node.rb +1 -0
  92. data/lib/nokogiri/xml/processing_instruction.rb +1 -0
  93. data/lib/nokogiri/xml/reader.rb +9 -12
  94. data/lib/nokogiri/xml/relax_ng.rb +7 -2
  95. data/lib/nokogiri/xml/sax.rb +1 -0
  96. data/lib/nokogiri/xml/sax/document.rb +1 -0
  97. data/lib/nokogiri/xml/sax/parser.rb +1 -0
  98. data/lib/nokogiri/xml/sax/parser_context.rb +1 -0
  99. data/lib/nokogiri/xml/sax/push_parser.rb +1 -0
  100. data/lib/nokogiri/xml/schema.rb +13 -4
  101. data/lib/nokogiri/xml/searchable.rb +25 -16
  102. data/lib/nokogiri/xml/syntax_error.rb +1 -0
  103. data/lib/nokogiri/xml/text.rb +1 -0
  104. data/lib/nokogiri/xml/xpath.rb +2 -3
  105. data/lib/nokogiri/xml/xpath/syntax_error.rb +2 -1
  106. data/lib/nokogiri/xml/xpath_context.rb +1 -0
  107. data/lib/nokogiri/xslt.rb +1 -0
  108. data/lib/nokogiri/xslt/stylesheet.rb +1 -0
  109. data/lib/xsd/xmlparser/nokogiri.rb +1 -0
  110. data/patches/libxml2/0004-libxml2.la-is-in-top_builddir.patch +25 -0
  111. data/patches/libxml2/0005-Fix-infinite-loop-in-xmlStringLenDecodeEntities.patch +32 -0
  112. data/patches/libxml2/0006-htmlParseComment-treat-as-if-it-closed-the-comment.patch +73 -0
  113. data/patches/libxml2/0007-use-new-htmlParseLookupCommentEnd-to-find-comment-en.patch +103 -0
  114. data/patches/libxml2/0008-use-glibc-strlen.patch +53 -0
  115. data/patches/libxml2/0009-avoid-isnan-isinf.patch +81 -0
  116. data/patches/libxml2/0010-parser.c-shrink-the-input-buffer-when-appropriate.patch +70 -0
  117. data/ports/archives/libxml2-2.9.10.tar.gz +0 -0
  118. data/ports/archives/libxslt-1.1.34.tar.gz +0 -0
  119. metadata +97 -154
  120. data/ext/nokogiri/html_document.h +0 -10
  121. data/ext/nokogiri/html_element_description.h +0 -10
  122. data/ext/nokogiri/html_entity_lookup.h +0 -8
  123. data/ext/nokogiri/html_sax_parser_context.h +0 -11
  124. data/ext/nokogiri/html_sax_push_parser.h +0 -9
  125. data/ext/nokogiri/xml_attr.h +0 -9
  126. data/ext/nokogiri/xml_attribute_decl.h +0 -9
  127. data/ext/nokogiri/xml_cdata.h +0 -9
  128. data/ext/nokogiri/xml_comment.h +0 -9
  129. data/ext/nokogiri/xml_document.h +0 -23
  130. data/ext/nokogiri/xml_document_fragment.h +0 -10
  131. data/ext/nokogiri/xml_dtd.h +0 -10
  132. data/ext/nokogiri/xml_element_content.h +0 -10
  133. data/ext/nokogiri/xml_element_decl.h +0 -9
  134. data/ext/nokogiri/xml_encoding_handler.h +0 -8
  135. data/ext/nokogiri/xml_entity_decl.h +0 -10
  136. data/ext/nokogiri/xml_entity_reference.h +0 -9
  137. data/ext/nokogiri/xml_io.c +0 -61
  138. data/ext/nokogiri/xml_io.h +0 -11
  139. data/ext/nokogiri/xml_libxml2_hacks.c +0 -112
  140. data/ext/nokogiri/xml_libxml2_hacks.h +0 -12
  141. data/ext/nokogiri/xml_namespace.h +0 -14
  142. data/ext/nokogiri/xml_node.h +0 -13
  143. data/ext/nokogiri/xml_node_set.h +0 -12
  144. data/ext/nokogiri/xml_processing_instruction.h +0 -9
  145. data/ext/nokogiri/xml_reader.h +0 -10
  146. data/ext/nokogiri/xml_relax_ng.h +0 -9
  147. data/ext/nokogiri/xml_sax_parser.h +0 -39
  148. data/ext/nokogiri/xml_sax_parser_context.h +0 -10
  149. data/ext/nokogiri/xml_sax_push_parser.h +0 -9
  150. data/ext/nokogiri/xml_schema.h +0 -9
  151. data/ext/nokogiri/xml_syntax_error.h +0 -13
  152. data/ext/nokogiri/xml_text.h +0 -9
  153. data/ext/nokogiri/xml_xpath_context.h +0 -10
  154. data/ext/nokogiri/xslt_stylesheet.h +0 -14
  155. data/patches/libxslt/0001-Fix-security-framework-bypass.patch +0 -120
  156. data/ports/archives/libxml2-2.9.9.tar.gz +0 -0
  157. data/ports/archives/libxslt-1.1.33.tar.gz +0 -0
@@ -0,0 +1,73 @@
1
+ From 4f51a6d2b1755ce5b36c524c215aad70d864ac1d Mon Sep 17 00:00:00 2001
2
+ From: Mike Dalessio <mike.dalessio@gmail.com>
3
+ Date: Mon, 3 Aug 2020 17:36:05 -0400
4
+ Subject: [PATCH 1/2] htmlParseComment: treat `--!>` as if it closed the
5
+ comment
6
+
7
+ See guidance provided on incorrectly-closed comments here:
8
+
9
+ https://html.spec.whatwg.org/multipage/parsing.html#parse-error-incorrectly-closed-comment
10
+ ---
11
+ HTMLparser.c | 28 ++++++++++++++++++++--------
12
+ 1 file changed, 20 insertions(+), 8 deletions(-)
13
+
14
+ diff --git a/HTMLparser.c b/HTMLparser.c
15
+ index 7b6d689..4d43479 100644
16
+ --- a/HTMLparser.c
17
+ +++ b/HTMLparser.c
18
+ @@ -3300,6 +3300,7 @@ htmlParseComment(htmlParserCtxtPtr ctxt) {
19
+ int q, ql;
20
+ int r, rl;
21
+ int cur, l;
22
+ + int next, nl;
23
+ xmlParserInputState state;
24
+
25
+ /*
26
+ @@ -3332,6 +3333,21 @@ htmlParseComment(htmlParserCtxtPtr ctxt) {
27
+ while (IS_CHAR(cur) &&
28
+ ((cur != '>') ||
29
+ (r != '-') || (q != '-'))) {
30
+ + NEXTL(l);
31
+ + next = CUR_CHAR(nl);
32
+ + if (next == 0) {
33
+ + SHRINK;
34
+ + GROW;
35
+ + next = CUR_CHAR(nl);
36
+ + }
37
+ +
38
+ + if ((q == '-') && (r == '-') && (cur == '!') && (next == '>')) {
39
+ + htmlParseErr(ctxt, XML_ERR_COMMENT_NOT_FINISHED,
40
+ + "Comment incorrectly closed by '--!>'", NULL, NULL);
41
+ + cur = '>';
42
+ + break;
43
+ + }
44
+ +
45
+ if (len + 5 >= size) {
46
+ xmlChar *tmp;
47
+
48
+ @@ -3345,18 +3361,14 @@ htmlParseComment(htmlParserCtxtPtr ctxt) {
49
+ }
50
+ buf = tmp;
51
+ }
52
+ - COPY_BUF(ql,buf,len,q);
53
+ + COPY_BUF(ql,buf,len,q);
54
+ +
55
+ q = r;
56
+ ql = rl;
57
+ r = cur;
58
+ rl = l;
59
+ - NEXTL(l);
60
+ - cur = CUR_CHAR(l);
61
+ - if (cur == 0) {
62
+ - SHRINK;
63
+ - GROW;
64
+ - cur = CUR_CHAR(l);
65
+ - }
66
+ + cur = next;
67
+ + l = nl;
68
+ }
69
+ buf[len] = 0;
70
+ if (IS_CHAR(cur)) {
71
+ --
72
+ 2.25.1
73
+
@@ -0,0 +1,103 @@
1
+ From b20d746fa7cbb74716171bc49d836af99927e41e Mon Sep 17 00:00:00 2001
2
+ From: Mike Dalessio <mike.dalessio@gmail.com>
3
+ Date: Sun, 11 Oct 2020 14:15:37 -0400
4
+ Subject: [PATCH 2/2] use new htmlParseLookupCommentEnd to find comment ends
5
+
6
+ Note that the caret in error messages generated during comment parsing
7
+ may have moved by one byte.
8
+
9
+ See guidance provided on incorrectly-closed comments here:
10
+
11
+ https://html.spec.whatwg.org/multipage/parsing.html#parse-error-incorrectly-closed-comment
12
+ ---
13
+ HTMLparser.c | 46 +++++++++++++++++++++++++++++++++++++---------
14
+ 1 file changed, 37 insertions(+), 9 deletions(-)
15
+
16
+ diff --git a/HTMLparser.c b/HTMLparser.c
17
+ index 4d43479..000dc3d 100644
18
+ --- a/HTMLparser.c
19
+ +++ b/HTMLparser.c
20
+ @@ -5331,6 +5331,39 @@ htmlParseLookupChars(htmlParserCtxtPtr ctxt, const xmlChar * stop,
21
+ return (-1);
22
+ }
23
+
24
+ +/**
25
+ + * htmlParseLookupCommentEnd:
26
+ + * @ctxt: an HTML parser context
27
+ + *
28
+ + * Try to find a comment end tag in the input stream
29
+ + * The search includes "-->" as well as WHATWG-recommended incorrectly-closed tags.
30
+ + * (See https://html.spec.whatwg.org/multipage/parsing.html#parse-error-incorrectly-closed-comment)
31
+ + * This function has a side effect of (possibly) incrementing ctxt->checkIndex
32
+ + * to avoid rescanning sequences of bytes, it DOES change the state of the
33
+ + * parser, do not use liberally.
34
+ + * This wraps to htmlParseLookupSequence()
35
+ + *
36
+ + * Returns the index to the current parsing point if the full sequence is available, -1 otherwise.
37
+ + */
38
+ +static int
39
+ +htmlParseLookupCommentEnd(htmlParserCtxtPtr ctxt)
40
+ +{
41
+ + int mark = 0;
42
+ + int cur = CUR_PTR - BASE_PTR;
43
+ +
44
+ + while (mark >= 0) {
45
+ + mark = htmlParseLookupSequence(ctxt, '-', '-', 0, 1, 1);
46
+ + if ((mark < 0) ||
47
+ + (NXT(mark+2) == '>') ||
48
+ + ((NXT(mark+2) == '!') && (NXT(mark+3) == '>'))) {
49
+ + return mark;
50
+ + }
51
+ + ctxt->checkIndex = cur + mark + 1;
52
+ + }
53
+ + return mark;
54
+ +}
55
+ +
56
+ +
57
+ /**
58
+ * htmlParseTryOrFinish:
59
+ * @ctxt: an HTML parser context
60
+ @@ -5507,8 +5540,7 @@ htmlParseTryOrFinish(htmlParserCtxtPtr ctxt, int terminate) {
61
+ cur = in->cur[0];
62
+ if ((cur == '<') && (next == '!') &&
63
+ (in->cur[2] == '-') && (in->cur[3] == '-')) {
64
+ - if ((!terminate) &&
65
+ - (htmlParseLookupSequence(ctxt, '-', '-', '>', 1, 1) < 0))
66
+ + if ((!terminate) && (htmlParseLookupCommentEnd(ctxt) < 0))
67
+ goto done;
68
+ #ifdef DEBUG_PUSH
69
+ xmlGenericError(xmlGenericErrorContext,
70
+ @@ -5567,8 +5599,7 @@ htmlParseTryOrFinish(htmlParserCtxtPtr ctxt, int terminate) {
71
+ next = in->cur[1];
72
+ if ((cur == '<') && (next == '!') &&
73
+ (in->cur[2] == '-') && (in->cur[3] == '-')) {
74
+ - if ((!terminate) &&
75
+ - (htmlParseLookupSequence(ctxt, '-', '-', '>', 1, 1) < 0))
76
+ + if ((!terminate) && (htmlParseLookupCommentEnd(ctxt) < 0))
77
+ goto done;
78
+ #ifdef DEBUG_PUSH
79
+ xmlGenericError(xmlGenericErrorContext,
80
+ @@ -5614,8 +5645,7 @@ htmlParseTryOrFinish(htmlParserCtxtPtr ctxt, int terminate) {
81
+ next = in->cur[1];
82
+ if ((cur == '<') && (next == '!') &&
83
+ (in->cur[2] == '-') && (in->cur[3] == '-')) {
84
+ - if ((!terminate) &&
85
+ - (htmlParseLookupSequence(ctxt, '-', '-', '>', 1, 1) < 0))
86
+ + if ((!terminate) && (htmlParseLookupCommentEnd(ctxt) < 0))
87
+ goto done;
88
+ #ifdef DEBUG_PUSH
89
+ xmlGenericError(xmlGenericErrorContext,
90
+ @@ -5871,9 +5901,7 @@ htmlParseTryOrFinish(htmlParserCtxtPtr ctxt, int terminate) {
91
+ htmlParseDocTypeDecl(ctxt);
92
+ } else if ((cur == '<') && (next == '!') &&
93
+ (in->cur[2] == '-') && (in->cur[3] == '-')) {
94
+ - if ((!terminate) &&
95
+ - (htmlParseLookupSequence(
96
+ - ctxt, '-', '-', '>', 1, 1) < 0))
97
+ + if ((!terminate) && (htmlParseLookupCommentEnd(ctxt) < 0))
98
+ goto done;
99
+ #ifdef DEBUG_PUSH
100
+ xmlGenericError(xmlGenericErrorContext,
101
+ --
102
+ 2.25.1
103
+
@@ -0,0 +1,53 @@
1
+ From c94172d2a4451368530db2186190d70be8a1d9e5 Mon Sep 17 00:00:00 2001
2
+ From: Ilya Zub <ilya@serpapi.com>
3
+ Date: Wed, 23 Dec 2020 12:45:29 +0200
4
+ Subject: Use glibc strlen to speed up xmlStrlen
5
+ MIME-Version: 1.0
6
+ Content-Type: text/plain; charset=UTF-8
7
+ Content-Transfer-Encoding: 8bit
8
+
9
+ xmlStrlen (entire HTML file): 926171.936981 μs
10
+ glibc_xmlStrlen (entire HTML file): 36905.903992 μs
11
+ delta (xmlStrlen ÷ glibc_xmlStrlen): 25.094584 times
12
+
13
+ xmlStrlen (average string): 57479.204010 μs
14
+ glibc_xmlStrlen (average string): 5802.069000 μs
15
+ delta (xmlStrlen ÷ glibc_xmlStrlen): 9.905937 times
16
+
17
+ xmlStrlen (bigger string): 388056.315979 μs
18
+ glibc_xmlStrlen (bigger string): 12797.856995 μs
19
+ delta (xmlStrlen ÷ glibc_xmlStrlen): 30.318382 times
20
+
21
+ xmlStrlen (smallest string): 15870.046021 μs
22
+ glibc_xmlStrlen (smallest string): 6282.208984 μs
23
+ delta (xmlStrlen ÷ glibc_xmlStrlen): 2.527903 times
24
+
25
+ See https://gitlab.gnome.org/GNOME/libxml2/-/issues/212 for reference.
26
+ ---
27
+ xmlstring.c | 9 ++-------
28
+ 1 file changed, 2 insertions(+), 7 deletions(-)
29
+
30
+ diff --git a/xmlstring.c b/xmlstring.c
31
+ index e8a1e45d..df247dff 100644
32
+ --- a/xmlstring.c
33
+ +++ b/xmlstring.c
34
+ @@ -423,14 +423,9 @@ xmlStrsub(const xmlChar *str, int start, int len) {
35
+
36
+ int
37
+ xmlStrlen(const xmlChar *str) {
38
+ - int len = 0;
39
+ -
40
+ if (str == NULL) return(0);
41
+ - while (*str != 0) { /* non input consuming */
42
+ - str++;
43
+ - len++;
44
+ - }
45
+ - return(len);
46
+ +
47
+ + return strlen((const char*)str);
48
+ }
49
+
50
+ /**
51
+ --
52
+ 2.29.2
53
+
@@ -0,0 +1,81 @@
1
+ This patch is a result of rake-compiler-dock using centos 7 (manylinux2014) to cross-compile.
2
+
3
+ Centos, for reasons I have not been able to discern, implements `isnan` and `isinf` as a function
4
+ and not as a macro. Debian knows how to resolve that function at dynamic-link time (despite using a
5
+ macro at compile time), but musl-based systems (like alpine) do not. Running `nm` on nokogiri.so
6
+ created on such a centos system shows:
7
+
8
+ ```
9
+ U __isinf@@GLIBC_2.2.5
10
+ U __isnan@@GLIBC_2.2.5
11
+ ```
12
+
13
+ (see https://github.com/sparklemotion/nokogiri/pull/2142 for more info)
14
+
15
+ This patch avoids using glibc's `isnan` and `isinf` calls, instead using libxml2's fallback
16
+ implementation. There's history here, see libxml2 commit 8813f39:
17
+
18
+ commit 8813f39
19
+ Author: Nick Wellnhofer <wellnhofer@aevum.de>
20
+ Date: 2017-09-21 00:11:26 +0200
21
+
22
+ Simplify XPath NaN, inf and -0 handling
23
+
24
+ Use C99 macros NAN, INFINITY, isnan, isinf. If they're not available:
25
+
26
+ - Assume that (0.0 / 0.0) generates a NaN and !(x == x) tests for NaN.
27
+ - Use C89's HUGE_VAL for INFINITY.
28
+
29
+ Remove manual handling of NaN, infinity and negative zero in functions
30
+ xmlXPathValueFlipSign and xmlXPathDivValues.
31
+
32
+ Remove xmlXPathGetSign. All the tests for negative zero can be replaced
33
+ with a test for negative or positive zero.
34
+
35
+ Simplify xmlXPathRoundFunction.
36
+
37
+ Remove Trio dependency.
38
+
39
+ This should work on IEEE 754 compliant implementations even if the C99
40
+ macros aren't available, but will likely break some ancient platforms.
41
+ If problems arise, my plan is to port the relevant trionan.c solution
42
+ to xpath.c. Note that non-compliant implementations are impossible
43
+ to fully support, anyway, since XPath requires IEEE 754.
44
+
45
+ This patch would be unnecessary if any of the following was true:
46
+
47
+ * centos implements these as macros, and doesn't generate an unresolved symbol for either in the shared library
48
+ * we had a way to ensure `__isinf` and `__isnan` resolve on musl (e.g., we implement them locally)
49
+
50
+ diff --git a/xpath.c b/xpath.c
51
+ index 9f64ab9..5b6d999 100644
52
+ --- a/xpath.c
53
+ +++ b/xpath.c
54
+ @@ -509,11 +509,7 @@ xmlXPathInit(void) {
55
+ */
56
+ int
57
+ xmlXPathIsNaN(double val) {
58
+ -#ifdef isnan
59
+ - return isnan(val);
60
+ -#else
61
+ return !(val == val);
62
+ -#endif
63
+ }
64
+
65
+ /**
66
+ @@ -524,15 +520,11 @@ xmlXPathIsNaN(double val) {
67
+ */
68
+ int
69
+ xmlXPathIsInf(double val) {
70
+ -#ifdef isinf
71
+ - return isinf(val) ? (val > 0 ? 1 : -1) : 0;
72
+ -#else
73
+ if (val >= INFINITY)
74
+ return 1;
75
+ if (val <= -INFINITY)
76
+ return -1;
77
+ return 0;
78
+ -#endif
79
+ }
80
+
81
+ #endif /* SCHEMAS or XPATH */
@@ -0,0 +1,70 @@
1
+ From ca565c1edef9a455453fa8564270cc9c5813e1b9 Mon Sep 17 00:00:00 2001
2
+ From: Mike Dalessio <mike.dalessio@gmail.com>
3
+ Date: Sun, 31 Jan 2021 09:53:56 -0500
4
+ Subject: [PATCH] parser.c: shrink the input buffer when appropriate
5
+
6
+ Fixes GNOME/libxml2#200
7
+
8
+ Also see discussions at:
9
+ - GNOME/libxml2#192
10
+ - https://gitlab.gnome.org/nwellnhof/libxml2/-/commit/99bda1e
11
+ - https://github.com/sparklemotion/nokogiri/issues/2132
12
+ ---
13
+ parser.c | 6 ++++++
14
+ 1 file changed, 6 insertions(+)
15
+
16
+ diff --git a/parser.c b/parser.c
17
+ index a7bdc7f..efde672 100644
18
+ --- a/parser.c
19
+ +++ b/parser.c
20
+ @@ -4204,6 +4204,7 @@ xmlParseSystemLiteral(xmlParserCtxtPtr ctxt) {
21
+ }
22
+ count++;
23
+ if (count > 50) {
24
+ + SHRINK;
25
+ GROW;
26
+ count = 0;
27
+ if (ctxt->instate == XML_PARSER_EOF) {
28
+ @@ -4291,6 +4292,7 @@ xmlParsePubidLiteral(xmlParserCtxtPtr ctxt) {
29
+ buf[len++] = cur;
30
+ count++;
31
+ if (count > 50) {
32
+ + SHRINK;
33
+ GROW;
34
+ count = 0;
35
+ if (ctxt->instate == XML_PARSER_EOF) {
36
+ @@ -4571,6 +4573,7 @@ xmlParseCharDataComplex(xmlParserCtxtPtr ctxt, int cdata) {
37
+ }
38
+ count++;
39
+ if (count > 50) {
40
+ + SHRINK;
41
+ GROW;
42
+ count = 0;
43
+ if (ctxt->instate == XML_PARSER_EOF)
44
+ @@ -4776,6 +4779,7 @@ xmlParseCommentComplex(xmlParserCtxtPtr ctxt, xmlChar *buf,
45
+
46
+ count++;
47
+ if (count > 50) {
48
+ + SHRINK;
49
+ GROW;
50
+ count = 0;
51
+ if (ctxt->instate == XML_PARSER_EOF) {
52
+ @@ -5186,6 +5190,7 @@ xmlParsePI(xmlParserCtxtPtr ctxt) {
53
+ }
54
+ count++;
55
+ if (count > 50) {
56
+ + SHRINK;
57
+ GROW;
58
+ if (ctxt->instate == XML_PARSER_EOF) {
59
+ xmlFree(buf);
60
+ @@ -9783,6 +9788,7 @@ xmlParseCDSect(xmlParserCtxtPtr ctxt) {
61
+ sl = l;
62
+ count++;
63
+ if (count > 50) {
64
+ + SHRINK;
65
+ GROW;
66
+ if (ctxt->instate == XML_PARSER_EOF) {
67
+ xmlFree(buf);
68
+ --
69
+ 2.25.1
70
+
metadata CHANGED
@@ -1,105 +1,94 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nokogiri
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.4
4
+ version: 1.11.2
5
5
  platform: ruby
6
6
  authors:
7
- - Aaron Patterson
8
7
  - Mike Dalessio
8
+ - Aaron Patterson
9
9
  - Yoko Harada
10
- - Tim Elliott
11
10
  - Akinori MUSHA
12
11
  - John Shahid
12
+ - Karol Bucek
13
13
  - Lars Kanis
14
+ - Sergio Arbeo
15
+ - Timothy Elliott
16
+ - Nobuyoshi Nakada
14
17
  autorequire:
15
18
  bindir: bin
16
19
  cert_chain: []
17
- date: 2019-08-11 00:00:00.000000000 Z
20
+ date: 2021-03-11 00:00:00.000000000 Z
18
21
  dependencies:
19
22
  - !ruby/object:Gem::Dependency
20
- name: mini_portile2
23
+ name: racc
21
24
  requirement: !ruby/object:Gem::Requirement
22
25
  requirements:
23
26
  - - "~>"
24
27
  - !ruby/object:Gem::Version
25
- version: 2.4.0
28
+ version: '1.4'
26
29
  type: :runtime
27
30
  prerelease: false
28
31
  version_requirements: !ruby/object:Gem::Requirement
29
32
  requirements:
30
33
  - - "~>"
31
34
  - !ruby/object:Gem::Version
32
- version: 2.4.0
35
+ version: '1.4'
33
36
  - !ruby/object:Gem::Dependency
34
- name: concourse
35
- requirement: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - "~>"
38
- - !ruby/object:Gem::Version
39
- version: '0.24'
40
- type: :development
41
- prerelease: false
42
- version_requirements: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - "~>"
45
- - !ruby/object:Gem::Version
46
- version: '0.24'
47
- - !ruby/object:Gem::Dependency
48
- name: hoe-bundler
37
+ name: mini_portile2
49
38
  requirement: !ruby/object:Gem::Requirement
50
39
  requirements:
51
40
  - - "~>"
52
41
  - !ruby/object:Gem::Version
53
- version: '1.2'
54
- type: :development
42
+ version: 2.5.0
43
+ type: :runtime
55
44
  prerelease: false
56
45
  version_requirements: !ruby/object:Gem::Requirement
57
46
  requirements:
58
47
  - - "~>"
59
48
  - !ruby/object:Gem::Version
60
- version: '1.2'
49
+ version: 2.5.0
61
50
  - !ruby/object:Gem::Dependency
62
- name: hoe-debugging
51
+ name: bundler
63
52
  requirement: !ruby/object:Gem::Requirement
64
53
  requirements:
65
54
  - - "~>"
66
55
  - !ruby/object:Gem::Version
67
- version: '2.0'
56
+ version: '2.2'
68
57
  type: :development
69
58
  prerelease: false
70
59
  version_requirements: !ruby/object:Gem::Requirement
71
60
  requirements:
72
61
  - - "~>"
73
62
  - !ruby/object:Gem::Version
74
- version: '2.0'
63
+ version: '2.2'
75
64
  - !ruby/object:Gem::Dependency
76
- name: hoe-gemspec
65
+ name: concourse
77
66
  requirement: !ruby/object:Gem::Requirement
78
67
  requirements:
79
68
  - - "~>"
80
69
  - !ruby/object:Gem::Version
81
- version: '1.0'
70
+ version: '0.41'
82
71
  type: :development
83
72
  prerelease: false
84
73
  version_requirements: !ruby/object:Gem::Requirement
85
74
  requirements:
86
75
  - - "~>"
87
76
  - !ruby/object:Gem::Version
88
- version: '1.0'
77
+ version: '0.41'
89
78
  - !ruby/object:Gem::Dependency
90
- name: hoe-git
79
+ name: hoe-markdown
91
80
  requirement: !ruby/object:Gem::Requirement
92
81
  requirements:
93
82
  - - "~>"
94
83
  - !ruby/object:Gem::Version
95
- version: '1.6'
84
+ version: '1.4'
96
85
  type: :development
97
86
  prerelease: false
98
87
  version_requirements: !ruby/object:Gem::Requirement
99
88
  requirements:
100
89
  - - "~>"
101
90
  - !ruby/object:Gem::Version
102
- version: '1.6'
91
+ version: '1.4'
103
92
  - !ruby/object:Gem::Dependency
104
93
  name: minitest
105
94
  requirement: !ruby/object:Gem::Requirement
@@ -115,61 +104,61 @@ dependencies:
115
104
  - !ruby/object:Gem::Version
116
105
  version: '5.8'
117
106
  - !ruby/object:Gem::Dependency
118
- name: racc
107
+ name: minitest-reporters
119
108
  requirement: !ruby/object:Gem::Requirement
120
109
  requirements:
121
110
  - - "~>"
122
111
  - !ruby/object:Gem::Version
123
- version: 1.4.14
112
+ version: '1.4'
124
113
  type: :development
125
114
  prerelease: false
126
115
  version_requirements: !ruby/object:Gem::Requirement
127
116
  requirements:
128
117
  - - "~>"
129
118
  - !ruby/object:Gem::Version
130
- version: 1.4.14
119
+ version: '1.4'
131
120
  - !ruby/object:Gem::Dependency
132
121
  name: rake
133
122
  requirement: !ruby/object:Gem::Requirement
134
123
  requirements:
135
124
  - - "~>"
136
125
  - !ruby/object:Gem::Version
137
- version: '12.0'
126
+ version: '13.0'
138
127
  type: :development
139
128
  prerelease: false
140
129
  version_requirements: !ruby/object:Gem::Requirement
141
130
  requirements:
142
131
  - - "~>"
143
132
  - !ruby/object:Gem::Version
144
- version: '12.0'
133
+ version: '13.0'
145
134
  - !ruby/object:Gem::Dependency
146
135
  name: rake-compiler
147
136
  requirement: !ruby/object:Gem::Requirement
148
137
  requirements:
149
138
  - - "~>"
150
139
  - !ruby/object:Gem::Version
151
- version: 1.0.3
140
+ version: '1.1'
152
141
  type: :development
153
142
  prerelease: false
154
143
  version_requirements: !ruby/object:Gem::Requirement
155
144
  requirements:
156
145
  - - "~>"
157
146
  - !ruby/object:Gem::Version
158
- version: 1.0.3
147
+ version: '1.1'
159
148
  - !ruby/object:Gem::Dependency
160
149
  name: rake-compiler-dock
161
150
  requirement: !ruby/object:Gem::Requirement
162
151
  requirements:
163
152
  - - "~>"
164
153
  - !ruby/object:Gem::Version
165
- version: 0.7.0
154
+ version: '1.1'
166
155
  type: :development
167
156
  prerelease: false
168
157
  version_requirements: !ruby/object:Gem::Requirement
169
158
  requirements:
170
159
  - - "~>"
171
160
  - !ruby/object:Gem::Version
172
- version: 0.7.0
161
+ version: '1.1'
173
162
  - !ruby/object:Gem::Dependency
174
163
  name: rexical
175
164
  requirement: !ruby/object:Gem::Requirement
@@ -190,117 +179,89 @@ dependencies:
190
179
  requirements:
191
180
  - - "~>"
192
181
  - !ruby/object:Gem::Version
193
- version: '0.73'
182
+ version: '1.7'
194
183
  type: :development
195
184
  prerelease: false
196
185
  version_requirements: !ruby/object:Gem::Requirement
197
186
  requirements:
198
187
  - - "~>"
199
188
  - !ruby/object:Gem::Version
200
- version: '0.73'
189
+ version: '1.7'
201
190
  - !ruby/object:Gem::Dependency
202
191
  name: simplecov
203
192
  requirement: !ruby/object:Gem::Requirement
204
193
  requirements:
205
194
  - - "~>"
206
195
  - !ruby/object:Gem::Version
207
- version: '0.16'
196
+ version: '0.20'
208
197
  type: :development
209
198
  prerelease: false
210
199
  version_requirements: !ruby/object:Gem::Requirement
211
200
  requirements:
212
201
  - - "~>"
213
202
  - !ruby/object:Gem::Version
214
- version: '0.16'
203
+ version: '0.20'
215
204
  - !ruby/object:Gem::Dependency
216
- name: rdoc
217
- requirement: !ruby/object:Gem::Requirement
218
- requirements:
219
- - - ">="
220
- - !ruby/object:Gem::Version
221
- version: '4.0'
222
- - - "<"
223
- - !ruby/object:Gem::Version
224
- version: '7'
225
- type: :development
226
- prerelease: false
227
- version_requirements: !ruby/object:Gem::Requirement
228
- requirements:
229
- - - ">="
230
- - !ruby/object:Gem::Version
231
- version: '4.0'
232
- - - "<"
233
- - !ruby/object:Gem::Version
234
- version: '7'
235
- - !ruby/object:Gem::Dependency
236
- name: hoe
205
+ name: yard
237
206
  requirement: !ruby/object:Gem::Requirement
238
207
  requirements:
239
208
  - - "~>"
240
209
  - !ruby/object:Gem::Version
241
- version: '3.18'
210
+ version: '0.9'
242
211
  type: :development
243
212
  prerelease: false
244
213
  version_requirements: !ruby/object:Gem::Requirement
245
214
  requirements:
246
215
  - - "~>"
247
216
  - !ruby/object:Gem::Version
248
- version: '3.18'
249
- description: |-
250
- Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser. Among
251
- Nokogiri's many features is the ability to search documents via XPath
252
- or CSS3 selectors.
253
- email:
254
- - aaronp@rubyforge.org
255
- - mike.dalessio@gmail.com
256
- - yokolet@gmail.com
257
- - tle@holymonkey.com
258
- - knu@idaemons.org
259
- - jvshahid@gmail.com
260
- - lars@greiz-reinsdorf.de
217
+ version: '0.9'
218
+ description: |
219
+ Nokogiri (鋸) makes it easy and painless to work with XML and HTML from Ruby. It provides a
220
+ sensible, easy-to-understand API for reading, writing, modifying, and querying documents. It is
221
+ fast and standards-compliant by relying on native parsers like libxml2 (C) and xerces (Java).
222
+ email: nokogiri-talk@googlegroups.com
261
223
  executables:
262
224
  - nokogiri
263
225
  extensions:
264
226
  - ext/nokogiri/extconf.rb
265
227
  extra_rdoc_files:
266
- - LICENSE-DEPENDENCIES.md
267
- - LICENSE.md
268
- - README.md
269
- - ext/nokogiri/html_document.c
270
- - ext/nokogiri/html_element_description.c
271
- - ext/nokogiri/html_entity_lookup.c
272
- - ext/nokogiri/html_sax_parser_context.c
273
- - ext/nokogiri/html_sax_push_parser.c
274
- - ext/nokogiri/nokogiri.c
228
+ - ext/nokogiri/xml_dtd.c
229
+ - ext/nokogiri/xml_xpath_context.c
275
230
  - ext/nokogiri/xml_attr.c
276
- - ext/nokogiri/xml_attribute_decl.c
277
- - ext/nokogiri/xml_cdata.c
231
+ - ext/nokogiri/libxml2_backwards_compat.c
278
232
  - ext/nokogiri/xml_comment.c
279
- - ext/nokogiri/xml_document.c
280
- - ext/nokogiri/xml_document_fragment.c
281
- - ext/nokogiri/xml_dtd.c
233
+ - ext/nokogiri/nokogiri.c
234
+ - ext/nokogiri/xml_sax_parser_context.c
235
+ - ext/nokogiri/xml_node_set.c
236
+ - ext/nokogiri/xml_reader.c
237
+ - ext/nokogiri/xml_cdata.c
282
238
  - ext/nokogiri/xml_element_content.c
239
+ - ext/nokogiri/html_entity_lookup.c
240
+ - ext/nokogiri/xml_namespace.c
241
+ - ext/nokogiri/xml_document.c
283
242
  - ext/nokogiri/xml_element_decl.c
243
+ - ext/nokogiri/xml_schema.c
244
+ - ext/nokogiri/html_document.c
245
+ - ext/nokogiri/xml_processing_instruction.c
246
+ - ext/nokogiri/xml_text.c
247
+ - ext/nokogiri/xml_syntax_error.c
248
+ - ext/nokogiri/xml_document_fragment.c
249
+ - ext/nokogiri/xml_sax_push_parser.c
284
250
  - ext/nokogiri/xml_encoding_handler.c
251
+ - ext/nokogiri/html_sax_push_parser.c
252
+ - ext/nokogiri/xml_relax_ng.c
285
253
  - ext/nokogiri/xml_entity_decl.c
286
- - ext/nokogiri/xml_entity_reference.c
287
- - ext/nokogiri/xml_io.c
288
- - ext/nokogiri/xml_libxml2_hacks.c
289
- - ext/nokogiri/xml_namespace.c
254
+ - ext/nokogiri/test_global_handlers.c
290
255
  - ext/nokogiri/xml_node.c
291
- - ext/nokogiri/xml_node_set.c
292
- - ext/nokogiri/xml_processing_instruction.c
293
- - ext/nokogiri/xml_reader.c
294
- - ext/nokogiri/xml_relax_ng.c
295
- - ext/nokogiri/xml_sax_parser.c
296
- - ext/nokogiri/xml_sax_parser_context.c
297
- - ext/nokogiri/xml_sax_push_parser.c
298
- - ext/nokogiri/xml_schema.c
299
- - ext/nokogiri/xml_syntax_error.c
300
- - ext/nokogiri/xml_text.c
301
- - ext/nokogiri/xml_xpath_context.c
256
+ - ext/nokogiri/xml_entity_reference.c
302
257
  - ext/nokogiri/xslt_stylesheet.c
258
+ - ext/nokogiri/html_sax_parser_context.c
259
+ - ext/nokogiri/xml_sax_parser.c
260
+ - ext/nokogiri/xml_attribute_decl.c
261
+ - ext/nokogiri/html_element_description.c
262
+ - README.md
303
263
  files:
264
+ - Gemfile
304
265
  - LICENSE-DEPENDENCIES.md
305
266
  - LICENSE.md
306
267
  - README.md
@@ -309,73 +270,40 @@ files:
309
270
  - ext/nokogiri/depend
310
271
  - ext/nokogiri/extconf.rb
311
272
  - ext/nokogiri/html_document.c
312
- - ext/nokogiri/html_document.h
313
273
  - ext/nokogiri/html_element_description.c
314
- - ext/nokogiri/html_element_description.h
315
274
  - ext/nokogiri/html_entity_lookup.c
316
- - ext/nokogiri/html_entity_lookup.h
317
275
  - ext/nokogiri/html_sax_parser_context.c
318
- - ext/nokogiri/html_sax_parser_context.h
319
276
  - ext/nokogiri/html_sax_push_parser.c
320
- - ext/nokogiri/html_sax_push_parser.h
277
+ - ext/nokogiri/libxml2_backwards_compat.c
321
278
  - ext/nokogiri/nokogiri.c
322
279
  - ext/nokogiri/nokogiri.h
280
+ - ext/nokogiri/test_global_handlers.c
323
281
  - ext/nokogiri/xml_attr.c
324
- - ext/nokogiri/xml_attr.h
325
282
  - ext/nokogiri/xml_attribute_decl.c
326
- - ext/nokogiri/xml_attribute_decl.h
327
283
  - ext/nokogiri/xml_cdata.c
328
- - ext/nokogiri/xml_cdata.h
329
284
  - ext/nokogiri/xml_comment.c
330
- - ext/nokogiri/xml_comment.h
331
285
  - ext/nokogiri/xml_document.c
332
- - ext/nokogiri/xml_document.h
333
286
  - ext/nokogiri/xml_document_fragment.c
334
- - ext/nokogiri/xml_document_fragment.h
335
287
  - ext/nokogiri/xml_dtd.c
336
- - ext/nokogiri/xml_dtd.h
337
288
  - ext/nokogiri/xml_element_content.c
338
- - ext/nokogiri/xml_element_content.h
339
289
  - ext/nokogiri/xml_element_decl.c
340
- - ext/nokogiri/xml_element_decl.h
341
290
  - ext/nokogiri/xml_encoding_handler.c
342
- - ext/nokogiri/xml_encoding_handler.h
343
291
  - ext/nokogiri/xml_entity_decl.c
344
- - ext/nokogiri/xml_entity_decl.h
345
292
  - ext/nokogiri/xml_entity_reference.c
346
- - ext/nokogiri/xml_entity_reference.h
347
- - ext/nokogiri/xml_io.c
348
- - ext/nokogiri/xml_io.h
349
- - ext/nokogiri/xml_libxml2_hacks.c
350
- - ext/nokogiri/xml_libxml2_hacks.h
351
293
  - ext/nokogiri/xml_namespace.c
352
- - ext/nokogiri/xml_namespace.h
353
294
  - ext/nokogiri/xml_node.c
354
- - ext/nokogiri/xml_node.h
355
295
  - ext/nokogiri/xml_node_set.c
356
- - ext/nokogiri/xml_node_set.h
357
296
  - ext/nokogiri/xml_processing_instruction.c
358
- - ext/nokogiri/xml_processing_instruction.h
359
297
  - ext/nokogiri/xml_reader.c
360
- - ext/nokogiri/xml_reader.h
361
298
  - ext/nokogiri/xml_relax_ng.c
362
- - ext/nokogiri/xml_relax_ng.h
363
299
  - ext/nokogiri/xml_sax_parser.c
364
- - ext/nokogiri/xml_sax_parser.h
365
300
  - ext/nokogiri/xml_sax_parser_context.c
366
- - ext/nokogiri/xml_sax_parser_context.h
367
301
  - ext/nokogiri/xml_sax_push_parser.c
368
- - ext/nokogiri/xml_sax_push_parser.h
369
302
  - ext/nokogiri/xml_schema.c
370
- - ext/nokogiri/xml_schema.h
371
303
  - ext/nokogiri/xml_syntax_error.c
372
- - ext/nokogiri/xml_syntax_error.h
373
304
  - ext/nokogiri/xml_text.c
374
- - ext/nokogiri/xml_text.h
375
305
  - ext/nokogiri/xml_xpath_context.c
376
- - ext/nokogiri/xml_xpath_context.h
377
306
  - ext/nokogiri/xslt_stylesheet.c
378
- - ext/nokogiri/xslt_stylesheet.h
379
307
  - lib/nokogiri.rb
380
308
  - lib/nokogiri/css.rb
381
309
  - lib/nokogiri/css/node.rb
@@ -387,6 +315,7 @@ files:
387
315
  - lib/nokogiri/css/tokenizer.rex
388
316
  - lib/nokogiri/css/xpath_visitor.rb
389
317
  - lib/nokogiri/decorators/slop.rb
318
+ - lib/nokogiri/extension.rb
390
319
  - lib/nokogiri/html.rb
391
320
  - lib/nokogiri/html/builder.rb
392
321
  - lib/nokogiri/html/document.rb
@@ -397,8 +326,11 @@ files:
397
326
  - lib/nokogiri/html/sax/parser.rb
398
327
  - lib/nokogiri/html/sax/parser_context.rb
399
328
  - lib/nokogiri/html/sax/push_parser.rb
329
+ - lib/nokogiri/jruby/dependencies.rb
400
330
  - lib/nokogiri/syntax_error.rb
401
331
  - lib/nokogiri/version.rb
332
+ - lib/nokogiri/version/constant.rb
333
+ - lib/nokogiri/version/info.rb
402
334
  - lib/nokogiri/xml.rb
403
335
  - lib/nokogiri/xml/attr.rb
404
336
  - lib/nokogiri/xml/attribute_decl.rb
@@ -442,13 +374,24 @@ files:
442
374
  - patches/libxml2/0001-Revert-Do-not-URI-escape-in-server-side-includes.patch
443
375
  - patches/libxml2/0002-Remove-script-macro-support.patch
444
376
  - patches/libxml2/0003-Update-entities-to-remove-handling-of-ssi.patch
445
- - patches/libxslt/0001-Fix-security-framework-bypass.patch
446
- - ports/archives/libxml2-2.9.9.tar.gz
447
- - ports/archives/libxslt-1.1.33.tar.gz
448
- homepage:
377
+ - patches/libxml2/0004-libxml2.la-is-in-top_builddir.patch
378
+ - patches/libxml2/0005-Fix-infinite-loop-in-xmlStringLenDecodeEntities.patch
379
+ - patches/libxml2/0006-htmlParseComment-treat-as-if-it-closed-the-comment.patch
380
+ - patches/libxml2/0007-use-new-htmlParseLookupCommentEnd-to-find-comment-en.patch
381
+ - patches/libxml2/0008-use-glibc-strlen.patch
382
+ - patches/libxml2/0009-avoid-isnan-isinf.patch
383
+ - patches/libxml2/0010-parser.c-shrink-the-input-buffer-when-appropriate.patch
384
+ - ports/archives/libxml2-2.9.10.tar.gz
385
+ - ports/archives/libxslt-1.1.34.tar.gz
386
+ homepage: https://nokogiri.org
449
387
  licenses:
450
388
  - MIT
451
- metadata: {}
389
+ metadata:
390
+ homepage_uri: https://nokogiri.org
391
+ bug_tracker_uri: https://github.com/sparklemotion/nokogiri/issues
392
+ documentation_uri: https://nokogiri.org/rdoc/index.html
393
+ changelog_uri: https://nokogiri.org/CHANGELOG.html
394
+ source_code_uri: https://github.com/sparklemotion/nokogiri
452
395
  post_install_message:
453
396
  rdoc_options:
454
397
  - "--main"
@@ -459,15 +402,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
459
402
  requirements:
460
403
  - - ">="
461
404
  - !ruby/object:Gem::Version
462
- version: 2.3.0
405
+ version: 2.5.0
463
406
  required_rubygems_version: !ruby/object:Gem::Requirement
464
407
  requirements:
465
408
  - - ">="
466
409
  - !ruby/object:Gem::Version
467
410
  version: '0'
468
411
  requirements: []
469
- rubygems_version: 3.0.3
412
+ rubygems_version: 3.1.4
470
413
  signing_key:
471
414
  specification_version: 4
472
- summary: Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser
415
+ summary: Nokogiri (鋸) makes it easy and painless to work with XML and HTML from Ruby.
473
416
  test_files: []