mpdcron: fix build by correcting a C function conflict in nokogiri
`nokogiri` defines a C function called `canonicalize` which conflicts
with another function defined in glibc. Upstream has fixed this
issue [1], but in a much newer version. And because the affected
file has changed since the merged patch [2], it isn't directly
applicable to the old gem version `mpdcron` depends on.
[1]: https://github.com/sparklemotion/nokogiri/issues/2105
[2]: 7a74cdbe45
This commit is contained in:
parent
a54350357e
commit
37517db1de
2 changed files with 35 additions and 0 deletions
|
@ -0,0 +1,22 @@
|
|||
diff --git a/ext/nokogiri/xml_document.c b/ext/nokogiri/xml_document.c
|
||||
index 1d2119c8..c1c87713 100644
|
||||
--- a/ext/nokogiri/xml_document.c
|
||||
+++ b/ext/nokogiri/xml_document.c
|
||||
@@ -492,7 +492,7 @@ static int block_caller(void * ctx, xmlNodePtr _node, xmlNodePtr _parent)
|
||||
* The block must return a non-nil, non-false value if the +obj+ passed in
|
||||
* should be included in the canonicalized document.
|
||||
*/
|
||||
-static VALUE canonicalize(int argc, VALUE* argv, VALUE self)
|
||||
+static VALUE nokogiri_xml_document_canonicalize(int argc, VALUE* argv, VALUE self)
|
||||
{
|
||||
VALUE mode;
|
||||
VALUE incl_ns;
|
||||
@@ -573,7 +573,7 @@ void init_xml_document()
|
||||
rb_define_method(klass, "encoding", encoding, 0);
|
||||
rb_define_method(klass, "encoding=", set_encoding, 1);
|
||||
rb_define_method(klass, "version", version, 0);
|
||||
- rb_define_method(klass, "canonicalize", canonicalize, -1);
|
||||
+ rb_define_method(klass, "nokogiri_xml_document_canonicalize", canonicalize, -1);
|
||||
rb_define_method(klass, "dup", duplicate_document, -1);
|
||||
rb_define_method(klass, "url", url, 0);
|
||||
rb_define_method(klass, "create_entity", create_entity, -1);
|
|
@ -18,6 +18,19 @@
|
|||
sha256 = "02bjydih0j515szfv9mls195cvpyidh6ixm7dwbl3s2sbaxxk5s4";
|
||||
type = "gem";
|
||||
};
|
||||
|
||||
dontBuild = false;
|
||||
patches = [
|
||||
# Fixes a naming conflict of nokogiri's `canonicalize` function
|
||||
# with one defined in glibc. This has been fixed upstream in 2020
|
||||
# in a much newer version (1.15.5), but through the divergence
|
||||
# of the affected file, the commit isn't directly applicable to
|
||||
# the one packaged here:
|
||||
#
|
||||
# https://github.com/sparklemotion/nokogiri/pull/2106/commits/7a74cdbe4538e964023e5a0fdca58d8af708b91e
|
||||
# https://github.com/sparklemotion/nokogiri/issues/2105
|
||||
./fix-canonicalize-conflict-with-glibc.patch
|
||||
];
|
||||
version = "1.10.3";
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue