diff options
-rw-r--r-- | dev-cpp/xsd/Manifest | 1 | ||||
-rw-r--r-- | dev-cpp/xsd/files/xsd-4.0.0-disable_examples_and_tests.patch | 50 | ||||
-rw-r--r-- | dev-cpp/xsd/files/xsd-4.0.0-fix-expat-support.patch | 59 | ||||
-rw-r--r-- | dev-cpp/xsd/files/xsd-4.0.0-fix-include.patch | 11 | ||||
-rw-r--r-- | dev-cpp/xsd/files/xsd-4.0.0-xsdcxx-rename.patch | 159 | ||||
-rw-r--r-- | dev-cpp/xsd/metadata.xml | 14 | ||||
-rw-r--r-- | dev-cpp/xsd/xsd-4.0.0.ebuild | 151 |
7 files changed, 438 insertions, 7 deletions
diff --git a/dev-cpp/xsd/Manifest b/dev-cpp/xsd/Manifest index 42c2bd834e2d..836a7bd00925 100644 --- a/dev-cpp/xsd/Manifest +++ b/dev-cpp/xsd/Manifest @@ -1 +1,2 @@ DIST xsd-3.3.0.tar.bz2 999479 SHA256 6157e3b0f3108f69a8d9344956020c234841d4a1de28745b19e45f8ee34b0c66 SHA512 4e7d18d71b362c4b67ad70c59c68d9be4a5f7210c94306c1685c2991a5eb82496675ac0c53f2919237e658d2e1fcf7e1bf5abe295127c7cf175c8eed090a8570 WHIRLPOOL 70b4767c463d4c5be65f8757e519a98a3c9dbc00f9a8a86026bdba5115eae5c5c7008ea05709ba293a68ab8de718b070cc0b4f6390f5bac62dca5f8a63480341 +DIST xsd-4.0.0.tar.bz2 1042144 SHA256 dd85f46407c7ec161518f3fdc64263afb68b057b1bc0b09b47d792d1fabd29c2 SHA512 0bac508e6948ef9e2399daed2554fcff3eaa79a7e62a3b245c777fb8bef3c5c80a35403bffdb00f72d3cf1b411747a91c059dd1c932b0a00baf076d3e60da527 WHIRLPOOL 84cd9baeb2a9fbfa24dafd212950ca7e7ab808d3bc432c8fbf3837c4aad2d1aefabc5fa7f6ac1fb69584b6bd136f04badf435c28024009b0edc00ea7f2ef78ef diff --git a/dev-cpp/xsd/files/xsd-4.0.0-disable_examples_and_tests.patch b/dev-cpp/xsd/files/xsd-4.0.0-disable_examples_and_tests.patch new file mode 100644 index 000000000000..d04487a17762 --- /dev/null +++ b/dev-cpp/xsd/files/xsd-4.0.0-disable_examples_and_tests.patch @@ -0,0 +1,50 @@ +--- a/makefile ++++ b/makefile +@@ -15,8 +15,6 @@ + .PHONY: $(dist-pre) + + $(default): $(out_base)/xsd/ \ +- $(out_base)/tests/ \ +- $(out_base)/examples/ \ + $(out_base)/doc/ + + # Test. +@@ -28,7 +26,6 @@ + # + $(install): $(out_base)/xsd/.install \ + $(out_base)/libxsd/.install \ +- $(out_base)/examples/.install \ + $(out_base)/doc/.install + $(call install-dir,$(src_base)/dist/examples/build,$(install_doc_dir)/xsd/examples/build) + $(call install-dir,$(src_base)/dist/examples/cxx,$(install_doc_dir)/xsd/examples/cxx,-name makefile) +@@ -44,7 +41,6 @@ + # + $(dist): $(out_base)/xsd/.dist \ + $(out_base)/libxsd/.dist \ +- $(out_base)/examples/.dist \ + $(out_base)/doc/.dist + $(call install-dir,$(src_base)/dist/examples/build,$(dist_prefix)/examples/build) + $(call install-dir,$(src_base)/dist/examples/cxx,$(dist_prefix)/examples/cxx,-name makefile) +@@ -59,7 +55,6 @@ + $(dist-win): $(dist-pre) \ + $(out_base)/xsd/.dist-win \ + $(out_base)/libxsd/.dist-win \ +- $(out_base)/examples/.dist-win \ + $(out_base)/doc/.dist-win + $(call install-dir,$(src_base)/dist/etc,$(dist_prefix)/etc) + $(call install-dir,$(src_base)/dist/examples/build,$(dist_prefix)/examples/build) +@@ -90,14 +85,10 @@ + # Clean. + # + $(clean): $(out_base)/xsd/.clean \ +- $(out_base)/tests/.clean \ +- $(out_base)/examples/.clean \ + $(out_base)/doc/.clean + + $(call include,$(bld_root)/install.make) + + $(call import,$(src_base)/xsd/makefile) + $(call import,$(src_base)/libxsd/makefile) +-$(call import,$(src_base)/tests/makefile) +-$(call import,$(src_base)/examples/makefile) + $(call import,$(src_base)/doc/makefile) diff --git a/dev-cpp/xsd/files/xsd-4.0.0-fix-expat-support.patch b/dev-cpp/xsd/files/xsd-4.0.0-fix-expat-support.patch new file mode 100644 index 000000000000..e91b74eb4c35 --- /dev/null +++ b/dev-cpp/xsd/files/xsd-4.0.0-fix-expat-support.patch @@ -0,0 +1,59 @@ +## Fix bug in C++/Parser Expat Support http://scm.codesynthesis.com/?p=xsd/xsd.git;a=commitdiff;h=94cba986108a0e0f42295572ca42c356d59328d7 +### Author Boris Kolpackov <boris@codesynthesis.com> +## Thu, 24 Jul 2014 11:40:01 +0100 (12:40 +0200) +### Committer Boris Kolpackov <boris@codesynthesis.com> +## Thu, 24 Jul 2014 11:40:01 +0100 (12:40 +0200) +--- xsd/libxsd/xsd/cxx/parser/expat/elements.hxx ++++ xsd/libxsd/xsd/cxx/parser/expat/elements.hxx +@@ -51,7 +51,9 @@ namespace xsd + } + }; + +- typedef std::unique_ptr<XML_ParserStruct> parser_auto_ptr; ++ typedef ++ std::unique_ptr<XML_ParserStruct, parser_deleter> ++ parser_auto_ptr; + #else + // Simple auto pointer for Expat's XML_Parser object. + // +--- xsd/libxsd/xsd/cxx/parser/expat/elements.txx ++++ xsd/libxsd/xsd/cxx/parser/expat/elements.txx +@@ -283,9 +283,10 @@ namespace xsd + throw std::bad_alloc (); + + if (system_id || public_id) +- parse_begin (parser, system_id ? *system_id : *public_id, eh); ++ parse_begin ( ++ parser.get (), system_id ? *system_id : *public_id, eh); + else +- parse_begin (parser, eh); ++ parse_begin (parser.get (), eh); + + // Temporarily unset the exception failbit. Also clear the + // fail bit when we reset the old state if it was caused +@@ -310,8 +311,10 @@ namespace xsd + break; + } + +- if (XML_Parse ( +- parser, buf, is.gcount (), is.eof ()) == XML_STATUS_ERROR) ++ if (XML_Parse (parser.get (), ++ buf, ++ is.gcount (), ++ is.eof ()) == XML_STATUS_ERROR) + { + r = false; + break; +##http://scm.codesynthesis.com/?p=xsd/xsd.git;a=commitdiff;h=0e5fab0664fb36c6253dfd7bb86d8985d1b349ef +--- xsd/libxsd/xsd/cxx/parser/expat/elements.txx ++++ xsd/libxsd/xsd/cxx/parser/expat/elements.txx +@@ -279,7 +279,7 @@ namespace xsd + { + parser_auto_ptr parser (XML_ParserCreateNS (0, XML_Char (' '))); + +- if (parser == 0) ++ if (parser.get () == 0) + throw std::bad_alloc (); + + if (system_id || public_id) + diff --git a/dev-cpp/xsd/files/xsd-4.0.0-fix-include.patch b/dev-cpp/xsd/files/xsd-4.0.0-fix-include.patch new file mode 100644 index 000000000000..85ea3e54313e --- /dev/null +++ b/dev-cpp/xsd/files/xsd-4.0.0-fix-include.patch @@ -0,0 +1,11 @@ +--- a/xsd/xsd.cxx ++++ b/xsd/xsd.cxx +@@ -15,7 +15,7 @@ + + #include <xsd-frontend/parser.hxx> + #include <xsd-frontend/transformations/anonymous.hxx> +-#include <xsd-frontend/transformations/enum-synthesis.cxx> ++#include <xsd-frontend/transformations/enum-synthesis.hxx> + #include <xsd-frontend/transformations/restriction.hxx> + #include <xsd-frontend/transformations/schema-per-type.hxx> + #include <xsd-frontend/transformations/simplifier.hxx> diff --git a/dev-cpp/xsd/files/xsd-4.0.0-xsdcxx-rename.patch b/dev-cpp/xsd/files/xsd-4.0.0-xsdcxx-rename.patch new file mode 100644 index 000000000000..cb78348e7b67 --- /dev/null +++ b/dev-cpp/xsd/files/xsd-4.0.0-xsdcxx-rename.patch @@ -0,0 +1,159 @@ +Description: change docu from xsd to xsdcxx +Author: Jörg Frings-Fürst <debian@jff-webhosting.net> +Reviewed-by: +Last-Update: 2014-07-22 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +Index: trunk/xsd/doc/xsd.1 +=================================================================== +--- a/doc/xsd.1 ++++ b/doc/xsd.1 +@@ -1,16 +1,16 @@ + .\" Process this file with + .\" groff -man -Tascii xsd.1 + .\" +-.TH XSD 1 "July 2014" "XSD 4.0.0" ++.TH XSDCXX 1 "July 2014" "XSDCXX 4.0.0" + .SH NAME +-xsd \- W3C XML Schema to C++ Compiler ++xsdcxx \- W3C XML Schema to C++ Compiler + .\" + .\" + .\" + .\"-------------------------------------------------------------------- + .SH SYNOPSIS + .\"-------------------------------------------------------------------- +-.B xsd ++.B xsdcxx + .I command + .B [ + .I options +@@ -20,19 +20,19 @@ + .I file + .B ...] + .in +-.B xsd help ++.B xsdcxx help + .B [ + .I command + .B ] + .in +-.B xsd version ++.B xsdcxx version + .\" + .\" + .\" + .\"-------------------------------------------------------------------- + .SH DESCRIPTION + .\"-------------------------------------------------------------------- +-.B xsd ++.B xsdcxx + generates vocabulary-specific, statically-typed C++ mapping from W3C XML + Schema definitions. Particular mapping to produce is selected by a + .IR command . +@@ -96,7 +96,7 @@ + .PP + .RS + .RS 3 +-.B xsd help ++.B xsdcxx help + .I command + .RE + .PP +@@ -133,9 +133,9 @@ + + When the C++11 mode is selected, you normally don't need to perform any + extra steps other than enable C++11 in your C++ compiler, if required\. The +-XSD compiler will automatically add the necessary macro defines to the +-generated header files that will switch the header-only XSD runtime library +-(\fBlibxsd\fP) to the C++11 mode\. However, if you include any of the XSD ++XSDCXX compiler will automatically add the necessary macro defines to the ++generated header files that will switch the header-only XSDCXX runtime library ++(\fBlibxsd\fP) to the C++11 mode\. However, if you include any of the XSDCXX + runtime headers directly in your application (normally you just include the + generated headers), then you will need to define the \fBXSD_CXX11\fP macro + for your entire project\. +@@ -1632,7 +1632,7 @@ + .\" + .SH DIAGNOSTICS + If the input file is not a valid W3C XML Schema definition, +-.B xsd ++.B xsdcxx + will issue diagnostic messages to + .B STDERR + and exit with non-zero exit code. +Index: trunk/xsd/doc/xsd.xhtml +=================================================================== +--- a/doc/xsd.xhtml ++++ b/doc/xsd.xhtml +@@ -3,11 +3,11 @@ + <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> + + <head> +- <title>XSD 4.0.0 Compiler Command Line Manual</title> ++ <title>XSDCXX 4.0.0 Compiler Command Line Manual</title> + + <meta name="copyright" content="© 2005-2014 Code Synthesis Tools CC"/> + <meta name="keywords" content="xsd,xml,schema,c++,mapping,data,binding,code,generator,manual,man,page"/> +- <meta name="description" content="XSD Compiler Command Line Manual"/> ++ <meta name="description" content="XSDCXX Compiler Command Line Manual"/> + + <link rel="stylesheet" type="text/css" href="default.css" /> + +@@ -50,19 +50,19 @@ + + <h1>NAME</h1> + +- <p>xsd - W3C XML Schema to C++ Compiler</p> ++ <p>xsdcxx - W3C XML Schema to C++ Compiler</p> + + <h1>SYNOPSIS</h1> + + <dl id="synopsis"> +- <dt><code><b>xsd</b> <i>command</i> [<i>options</i>] <i>file</i> [<i>file</i> ...]</code></dt> +- <dt><code><b>xsd help</b> [<i>command</i>]</code></dt> +- <dt><code><b>xsd version</b></code></dt> ++ <dt><code><b>xsdcxx</b> <i>command</i> [<i>options</i>] <i>file</i> [<i>file</i> ...]</code></dt> ++ <dt><code><b>xsdcxx help</b> [<i>command</i>]</code></dt> ++ <dt><code><b>xsdcxx version</b></code></dt> + </dl> + + <h1>DESCRIPTION</h1> + +- <p><code><b>xsd</b></code> generates vocabulary-specific, statically-typed ++ <p><code><b>xsdcxx</b></code> generates vocabulary-specific, statically-typed + C++ mapping from W3C XML Schema definitions. Particular mapping to + produce is selected by a <code><i>command</i></code>. Each mapping has + a number of mapping-specific <code><i>options</i></code> that should +@@ -138,10 +138,10 @@ + + <p>When the C++11 mode is selected, you normally don't need to perform any + extra steps other than enable C++11 in your C++ compiler, if required. The +- XSD compiler will automatically add the necessary macro defines to the +- generated header files that will switch the header-only XSD runtime library ++ XSDCXX compiler will automatically add the necessary macro defines to the ++ generated header files that will switch the header-only XSDCXX runtime library + (<code><b>libxsd</b></code>) to the C++11 mode. However, if you include any +- of the XSD runtime headers directly in your application (normally you just ++ of the XSDCXX runtime headers directly in your application (normally you just + include the generated headers), then you will need to define the + <code><b>XSD_CXX11</b></code> macro for your entire project.</p></dd> + +@@ -219,7 +219,7 @@ + + <p>For example, if you have file <code><b>hello.xsd</b></code> with + namespace <code><b>http://example.com/hello</b></code> and you run +- <code><b>xsd</b></code> on this file, then the string in question will ++ <code><b>xsdcxx</b></code> on this file, then the string in question will + be:</p> + + <p><code><b>hello.xsd. http://example.com/hello</b></code></p> +@@ -1530,7 +1530,7 @@ + <h1>DIAGNOSTICS</h1> + + <p>If the input file is not a valid W3C XML Schema definition, +- <code><b>xsd</b></code> will issue diagnostic messages to STDERR ++ <code><b>xsdcxx</b></code> will issue diagnostic messages to STDERR + and exit with non-zero exit code.</p> + + <h1>BUGS</h1> diff --git a/dev-cpp/xsd/metadata.xml b/dev-cpp/xsd/metadata.xml index 3d9805766066..e09ce345ca3b 100644 --- a/dev-cpp/xsd/metadata.xml +++ b/dev-cpp/xsd/metadata.xml @@ -1,11 +1,11 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="person"> - <email>dev-zero@gentoo.org</email> - <name>Tiziano Müller</name> -</maintainer> -<use> - <flag name="ace">Enable support for serializing to/from an ACE CDR stream</flag> -</use> + <maintainer type="project"> + <email>cpp@gentoo.org</email> + <name>Gentoo C++ Project</name> + </maintainer> + <use> + <flag name="ace">Enable support for serializing to/from an ACE CDR stream</flag> + </use> </pkgmetadata> diff --git a/dev-cpp/xsd/xsd-4.0.0.ebuild b/dev-cpp/xsd/xsd-4.0.0.ebuild new file mode 100644 index 000000000000..a898c343ad5b --- /dev/null +++ b/dev-cpp/xsd/xsd-4.0.0.ebuild @@ -0,0 +1,151 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +inherit toolchain-funcs versionator + +DESCRIPTION="An open-source, cross-platform W3C XML Schema to C++ data binding compiler" +HOMEPAGE="http://www.codesynthesis.com/products/xsd/" +SRC_URI="http://www.codesynthesis.com/download/${PN}/$(get_version_component_range 1-2)/${P}.tar.bz2" +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86" +IUSE="ace doc examples test zlib" + +RDEPEND=" + >=dev-libs/xerces-c-3.0.0 + dev-libs/boost:=[threads] + dev-cpp/libcutl + >=dev-cpp/libxsd-frontend-2.0.0 + ace? ( dev-libs/ace ) + zlib? ( sys-libs/zlib )" +DEPEND="${RDEPEND} + dev-util/build + doc? ( app-doc/doxygen )" + +PATCHES=( + "${FILESDIR}/${PN}-4.0.0-disable_examples_and_tests.patch" + "${FILESDIR}/${PN}-4.0.0-xsdcxx-rename.patch" + "${FILESDIR}/${PN}-4.0.0-fix-expat-support.patch" + "${FILESDIR}/${PN}-4.0.0-fix-include.patch" +) + +src_configure() { + # Maintainer notes: + # * xqilla is not required, this is only whether or not to include the xpath + # examples which require xqilla + mkdir -p \ + build/cxx/gnu \ + build/import/lib{ace,boost,cult,backend-elements,xerces-c,xqilla,xsd-frontend,z} || die + + cat >> build/configuration-dynamic.make <<- EOF || die + xsd_with_zlib := $(usex zlib y n) + xsd_with_ace := $(usex ace y n) + xsd_with_xdr := y + xsd_with_xqilla := y + xsd_with_boost_date_time := y + xsd_with_boost_serialization := y + EOF + + cat >> build/cxx/configuration-dynamic.make <<- EOF || die + cxx_id := gnu + cxx_optimize := n + cxx_debug := n + cxx_rpath := n + cxx_pp_extra_options := + cxx_extra_options := ${CXXFLAGS} + cxx_ld_extra_options := ${LDFLAGS} + cxx_extra_libs := + cxx_extra_lib_paths := + EOF + + cat >> build/cxx/gnu/configuration-dynamic.make <<- EOF || die + cxx_gnu := $(tc-getCXX) + cxx_gnu_libraries := + cxx_gnu_optimization_options := + EOF + + # cli + cat >> build/import/cli/configuration-dynamic.make <<- EOF || die + cli_installed := y + EOF + + # ace + cat >> build/import/libace/configuration-dynamic.make <<- EOF || die + libace_installed := y + EOF + + # boost + cat >> build/import/libboost/configuration-dynamic.make <<- EOF || die + libboost_installed := y + libboost_system := y + EOF + + # libcutl + cat >> build/import/libcutl/configuration-dynamic.make <<- EOF || die + libcutl_installed := y + EOF + + # xerces-c + cat >> build/import/libxerces-c/configuration-dynamic.make <<- EOF || die + libxerces_c_installed := y + EOF + + # xqilla + cat >> build/import/libxqilla/configuration-dynamic.make <<- EOF || die + libxqilla_installed := y + EOF + + # libxsd-frontend + cat >> build/import/libxsd-frontend/configuration-dynamic.make <<- EOF || die + libxsd_frontend_installed := y + EOF + + # zlib + cat >> build/import/libz/configuration-dynamic.make <<- EOF || die + libz_installed := y + EOF +} + +src_compile() { + emake verbose=1 + + if use doc; then + emake -C "${S}/doc/cxx/tree/reference" verbose=1 + fi + if use test; then + XERCESC_NLS_HOME="${EPREFIX}/usr/share/xerces-c/msg" emake -C tests verbose=1 + fi +} + +src_test() { + XERCESC_NLS_HOME="${EPREFIX}/usr/share/xerces-c/msg" emake -C tests test +} + +src_install() { + emake install_prefix="${ED%/}/usr" install + + # Renaming binary/manpage to avoid collision with mono-2.0's xsd/xsd2 + mv "${ED%/}"/usr/bin/xsd{,cxx} || die + mv "${ED%/}"/usr/share/man/man1/xsd{,cxx}.1 || die + + # remove incorrectly installed documentation + rm -rf "${ED%/}/usr/share/doc" || die + # clean out all non-html related files + find doc/ \( -iname '*.1' -o -iname 'makefile*' -o -iname '*doxygen' \ + -o -iname '*doxytag' -o -iname '*html2ps' \) -delete || die + + DOCS=( NEWS README FLOSSE ) + HTML_DOCS=( doc/. ) + einstalldocs + + newdoc libxsd/README README.libxsd + newdoc libxsd/FLOSSE FLOSSE.libxsd + + if use examples; then + dodoc -r examples + docompress -x /usr/share/doc/${PF}/examples + fi +} |