Created
December 20, 2017 18:25
-
-
Save danieldk/9788f9cbf8df9d8d2983212d86b0a89d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/PKGBUILD b/PKGBUILD | |
index 3e09bcd..631d0e0 100644 | |
--- a/PKGBUILD | |
+++ b/PKGBUILD | |
@@ -1,30 +1,32 @@ | |
# Maintainer: Brendan Abolivier <brendan@cozycloud.cc> | |
pkgname=xqilla | |
-pkgver=2.3.2 | |
+pkgver=2.3.3 | |
pkgrel=1 | |
-epoch= | |
pkgdesc="An XQuery and XPath 2.0 library, written in C++ and built on top of Xerces-C." | |
-arch=("any") | |
+arch=("x86_64") | |
url="http://xqilla.sourceforge.net/" | |
license=("GPL3") | |
-groups=() | |
-depends=("xerces-c") | |
-provides=("xqilla") | |
-backup=() | |
-changelog= | |
-source=("http://downloads.sourceforge.net/project/xqilla/XQilla-2.3.2.tar.gz" | |
- "https://archive.apache.org/dist/xerces/c/3/sources/xerces-c-3.1.2.tar.gz") | |
-noextract=() | |
-sha256sums=("5ae0aed4091521d5c2f541093e02a81ebe55a9087ba735f80b110068584e217c" | |
- "743bd0a029bf8de56a587c270d97031e0099fe2b7142cef03e0da16e282655a0") | |
+depends=("xerces-c" "icu") | |
+source=("https://downloads.sourceforge.net/project/xqilla/XQilla-${pkgver}.tar.gz" | |
+ "xerces-containing-node.patch") | |
+sha256sums=('8f76b9b4f966f315acc2a8e104e426d8a76ba4ea3441b0ecfdd1e39195674fd6' | |
+ '36ffb2dff579e5610ca3be2a962942433127b24a78ca454647059d6d54b8e014') | |
+ | |
+prepare() { | |
+ cd "XQilla-${pkgver}" | |
+ | |
+ # Apply patch from Homebrew to make XQilla compatible with Xerces-C 3.2. | |
+ # See: https://sourceforge.net/p/xqilla/bugs/48/ | |
+ patch -p1 < "${srcdir}/xerces-containing-node.patch" | |
+} | |
build() { | |
- cd XQilla-2.3.2 | |
- ./configure --with-xerces=`pwd`/../xerces-c-3.1.2/ | |
- make | |
+ cd "XQilla-${pkgver}" | |
+ ./configure --prefix=/usr --with-xerces=/usr | |
+ make | |
} | |
package() { | |
- cd XQilla-2.3.2 | |
- make DESTDIR="$pkgdir/" install | |
+ cd "XQilla-${pkgver}" | |
+ make DESTDIR="${pkgdir}/" install | |
} | |
diff --git a/xerces-containing-node.patch b/xerces-containing-node.patch | |
new file mode 100644 | |
index 0000000..6ab3a5b | |
--- /dev/null | |
+++ b/xerces-containing-node.patch | |
@@ -0,0 +1,55 @@ | |
+--- a/src/dom-api/impl/XPathDocumentImpl.cpp 2017-09-03 19:24:35 UTC | |
++++ b/src/dom-api/impl/XPathDocumentImpl.cpp | |
+@@ -62,7 +62,11 @@ DOMNode *XPathDocumentImpl::insertBefore | |
+ if (thisNodeImpl->isReadOnly()) | |
+ throw DOMException(DOMException::NO_MODIFICATION_ALLOWED_ERR, 0, getMemoryManager()); | |
+ | |
++#if _XERCES_VERSION >= 30200 | |
++ DOMNode* thisNode = fParent.fContainingNode; | |
++#else | |
+ DOMNode* thisNode = castToNode(&fParent); | |
++#endif | |
+ if (newChild->getOwnerDocument() != thisNode) | |
+ throw DOMException(DOMException::WRONG_DOCUMENT_ERR, 0, getMemoryManager()); | |
+ | |
+--- a/src/dom-api/impl/XPathNamespaceImpl.cpp 2017-09-03 20:26:37 UTC | |
++++ b/src/dom-api/impl/XPathNamespaceImpl.cpp | |
+@@ -33,7 +33,11 @@ XERCES_CPP_NAMESPACE_USE; | |
+ | |
+ XPathNamespaceImpl::XPathNamespaceImpl(const XMLCh* const nsPrefix, | |
+ const XMLCh* const nsUri, DOMElement *owner, DOMDocument *docOwner) | |
++#if _XERCES_VERSION >= 30200 | |
++ : fNode(this, docOwner) | |
++#else | |
+ : fNode(docOwner) | |
++#endif | |
+ { | |
+ DOMNodeImpl *argImpl = castToNodeImpl(this); | |
+ | |
+@@ -54,7 +58,13 @@ XPathNamespaceImpl::XPathNamespaceImpl(c | |
+ } | |
+ | |
+ XPathNamespaceImpl::XPathNamespaceImpl(const XPathNamespaceImpl &other) | |
+- : fNode(other.fNode), uri(other.uri), prefix(other.prefix) | |
++#if _XERCES_VERSION >= 30200 | |
++ : fNode(this, other.fNode), | |
++#else | |
++ : fNode(other.fNode), | |
++ | |
++#endif | |
++ uri(other.uri), prefix(other.prefix) | |
+ { | |
+ } | |
+ | |
+@@ -196,7 +206,11 @@ short XPathNamespaceImpl::com | |
+ | |
+ //if it is a custom node and bigger than us we must ask it for the order | |
+ if(otherType > DOMXPathNamespace::XPATH_NAMESPACE_NODE) { | |
++#if _XERCES_VERSION >= 30200 | |
++ DOMNodeImpl tmp(const_cast<XPathNamespaceImpl *>(this), 0); | |
++#else | |
+ DOMNodeImpl tmp(0); | |
++#endif | |
+ #if _XERCES_VERSION >= 30000 | |
+ return tmp.reverseTreeOrderBitPattern(other->compareDocumentPosition(this)); | |
+ #else |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment