diff --git a/pkgs/development/libraries/xsd/default.nix b/pkgs/development/libraries/xsd/default.nix new file mode 100644 index 000000000000..bef2e46e0736 --- /dev/null +++ b/pkgs/development/libraries/xsd/default.nix @@ -0,0 +1,38 @@ +{ stdenv, fetchurl, xercesc }: + +let + fixed_paths = ''LDFLAGS="-L${xercesc}/lib" CPPFLAGS="-I${xercesc}/include"''; +in +stdenv.mkDerivation rec { + name = "xsd-${version}"; + version = "4.0.0"; + + src = fetchurl { + url = "http://codesynthesis.com/download/xsd/4.0/xsd-4.0.0+dep.tar.bz2"; + sha256 = "05wqhmd5cd4pdky8i8qysnh96d2h16ly8r73whmbxkajiyf2m9gc"; + }; + + patches = [ ./xsdcxx.patch ]; + + configurePhase = '' + patchShebangs . + ''; + + buildPhase = '' + make ${fixed_paths} + ''; + + buildInputs = [ xercesc ]; + + installPhase = '' + make ${fixed_paths} install_prefix="$out" install + ''; + + meta = { + homepage = http://www.codesynthesis.com/products/xsd; + description = "An open-source, cross-platform W3C XML Schema to C++ data binding compiler"; + license = stdenv.lib.licenses.gpl2; + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.jagajaga ]; + }; +} diff --git a/pkgs/development/libraries/xsd/xsdcxx.patch b/pkgs/development/libraries/xsd/xsdcxx.patch new file mode 100644 index 000000000000..88a893c6e602 --- /dev/null +++ b/pkgs/development/libraries/xsd/xsdcxx.patch @@ -0,0 +1,126 @@ +--- xsd-4.0.0+dep/xsd/doc/xsd.1~ 2014-09-14 12:25:36.862267587 +0000 ++++ xsd-4.0.0+dep/xsd/doc/xsd.1 2014-09-14 12:28:25.728229892 +0000 +@@ -1,16 +1,16 @@ + .\" Process this file with +-.\" groff -man -Tascii xsd.1 ++.\" groff -man -Tascii xsdcxx.1 + .\" + .TH XSD 1 "July 2014" "XSD 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 +@@ -206,7 +206,7 @@ + \fIfilename\fP \fInamespace\fP + + For example, if you have file \fBhello\.xsd\fP with namespace +-\fBhttp://example\.com/hello\fP and you run \fBxsd\fP on this file, then the ++\fBhttp://example\.com/hello\fP and you run \fBxsdcxx\fP on this file, then the + string in question will be: + + \fBhello\.xsd\. http://example\.com/hello\fP +@@ -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. +--- xsd-4.0.0+dep/xsd/doc/xsd.xhtml~ 2014-09-14 12:28:37.731513138 +0000 ++++ xsd-4.0.0+dep/xsd/doc/xsd.xhtml 2014-09-14 12:30:11.277789610 +0000 +@@ -50,19 +50,19 @@ + +
xsd - W3C XML Schema to C++ Compiler
++xsdcxx - W3C XML Schema to C++ Compiler
+ +xsd command [options] file [file ...]
xsd help [command]
xsd version
xsdcxx command [options] file [file ...]
xsdcxx help [command]
xsdcxx version
xsd
generates vocabulary-specific, statically-typed
++
xsdcxx
generates vocabulary-specific, statically-typed
+ C++ mapping from W3C XML Schema definitions. Particular mapping to
+ produce is selected by a command
. Each mapping has
+ a number of mapping-specific options
that should
+@@ -104,7 +104,7 @@
+
+
help
xsd help command
xsdcxx help command
For example, if you have file hello.xsd
with
+ namespace http://example.com/hello
and you run
+- xsd
on this file, then the string in question will
++ xsdcxx
on this file, then the string in question will
+ be:
hello.xsd. http://example.com/hello
If the input file is not a valid W3C XML Schema definition,
+- xsd
will issue diagnostic messages to STDERR
++ xsdcxx
will issue diagnostic messages to STDERR
+ and exit with non-zero exit code.