SHA256
8
0
forked from pool/xsd

Compare commits

...

6 Commits

Author SHA256 Message Date
Christophe Marin
9cb1cbf607 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/xsd?expand=0&rev=14 2024-10-30 14:16:32 +00:00
Christophe Marin
54fe9ce086 make builds reproducible
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/xsd?expand=0&rev=12
2023-08-07 08:33:14 +00:00
f5b5d0cc30 Accepting request 870798 from home:cgiboudeaux:devel:libraries:c_c++
- Update to 4.1.0
  * Support for abstract XML Schema types. The corresponding C++
    classes now have _clone() declared pure virtual which
    prevents construction of their instances.
- Drop 0001-Fix-build-with-GCC10.patch. Merged upstream.
- Rebase xsdcxx-rename.patch

OBS-URL: https://build.opensuse.org/request/show/870798
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/xsd?expand=0&rev=10
2021-02-10 09:04:29 +00:00
dd28d58684 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/xsd?expand=0&rev=8 2019-12-05 09:14:18 +00:00
fbad8a9f9c Accepting request 454232 from home:adamm:branches:devel:libraries:c_c++
- use individual libboost-*-devel packages instead of boost-devel

OBS-URL: https://build.opensuse.org/request/show/454232
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/xsd?expand=0&rev=6
2017-02-03 15:50:33 +00:00
08e39405bf 4.0.0
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/xsd?expand=0&rev=4
2014-07-23 21:48:31 +00:00
10 changed files with 192 additions and 770 deletions

69
CVE-2024-50602.patch Normal file
View File

@@ -0,0 +1,69 @@
From 0552959d99413279c456e3289ad24db783f579ba Mon Sep 17 00:00:00 2001
From: Christophe Marin <christophe@krop.fr>
Date: Wed, 30 Oct 2024 14:50:13 +0100
Subject: [PATCH] Backport fix for CVE-2024-50602
---
libcutl/cutl/details/expat/expat.h | 4 +++-
libcutl/cutl/details/expat/xmlparse.c | 9 ++++++++-
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/libcutl/cutl/details/expat/expat.h b/libcutl/cutl/details/expat/expat.h
index f5dd736..85a0f8a 100644
--- a/libcutl/cutl/details/expat/expat.h
+++ b/libcutl/cutl/details/expat/expat.h
@@ -95,7 +95,9 @@ enum XML_Error {
/* Added in 2.0. */
XML_ERROR_RESERVED_PREFIX_XML,
XML_ERROR_RESERVED_PREFIX_XMLNS,
- XML_ERROR_RESERVED_NAMESPACE_URI
+ XML_ERROR_RESERVED_NAMESPACE_URI,
+ /* Added in 2.6.4. */
+ XML_ERROR_NOT_STARTED,
};
enum XML_Content_Type {
diff --git a/libcutl/cutl/details/expat/xmlparse.c b/libcutl/cutl/details/expat/xmlparse.c
index d469102..fd9fc79 100644
--- a/libcutl/cutl/details/expat/xmlparse.c
+++ b/libcutl/cutl/details/expat/xmlparse.c
@@ -1750,6 +1750,9 @@ enum XML_Status XMLCALL
XML_StopParser(XML_Parser parser, XML_Bool resumable)
{
switch (ps_parsing) {
+ case XML_INITIALIZED:
+ errorCode = XML_ERROR_NOT_STARTED;
+ return XML_STATUS_ERROR;
case XML_SUSPENDED:
if (resumable) {
errorCode = XML_ERROR_SUSPENDED;
@@ -1760,7 +1763,7 @@ XML_StopParser(XML_Parser parser, XML_Bool resumable)
case XML_FINISHED:
errorCode = XML_ERROR_FINISHED;
return XML_STATUS_ERROR;
- default:
+ case XML_PARSING:
if (resumable) {
#ifdef XML_DTD
if (isParamEntity) {
@@ -1772,6 +1775,9 @@ XML_StopParser(XML_Parser parser, XML_Bool resumable)
}
else
ps_parsing = XML_FINISHED;
+ break;
+ default:
+ assert(0);
}
return XML_STATUS_OK;
}
@@ -1959,6 +1965,7 @@ XML_ErrorString(enum XML_Error code)
XML_L("reserved prefix (xml) must not be undeclared or bound to another namespace name"),
XML_L("reserved prefix (xmlns) must not be declared or undeclared"),
XML_L("prefix must not be bound to one of the reserved namespace names")
+ XML_L("parser not started")
};
if (code > 0 && code < sizeof(message)/sizeof(message[0]))
return message[code];
--
2.47.0

View File

@@ -1,703 +0,0 @@
diff --git a/libxsd-frontend/xsd-frontend/parser.cxx b/libxsd-frontend/xsd-frontend/parser.cxx
index 0238a7b..0df56dd 100644
--- a/libxsd-frontend/xsd-frontend/parser.cxx
+++ b/libxsd-frontend/xsd-frontend/parser.cxx
@@ -1274,7 +1274,11 @@ namespace XSDFrontend
operator () (SemanticGraph::Path const& x,
SemanticGraph::Path const& y) const
{
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
return x.native_file_string () < y.native_file_string ();
+#else
+ return x.string () < y.string ();
+#endif
}
};
@@ -1627,9 +1631,15 @@ namespace XSDFrontend
friend Boolean
operator< (SchemaId const& x, SchemaId const& y)
{
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
return x.path_.native_file_string () < y.path_.native_file_string ()
|| (x.path_.native_file_string () == y.path_.native_file_string ()
&& x.ns_ < y.ns_);
+#else
+ return x.path_.string () < y.path_.string ()
+ || (x.path_.string () == y.path_.string ()
+ && x.ns_ < y.ns_);
+#endif
}
private:
@@ -2376,6 +2386,7 @@ namespace XSDFrontend
Path path, rel_path, abs_path;
try
{
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
try
{
path = Path (loc);
@@ -2386,6 +2397,10 @@ namespace XSDFrontend
//
path = Path (loc, boost::filesystem::native);
}
+#else
+ // The new ABI does not have a fallback native representation
+ path = Path (loc.c_str());
+#endif
if (path.is_complete ())
{
@@ -2479,6 +2494,7 @@ namespace XSDFrontend
Path path, rel_path, abs_path;
try
{
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
try
{
path = Path (loc);
@@ -2489,6 +2505,10 @@ namespace XSDFrontend
//
path = Path (loc, boost::filesystem::native);
}
+#else
+ // The new ABI does not have a fallback native representation
+ path = Path (loc.c_str());
+#endif
if (path.is_complete ())
{
@@ -4674,9 +4694,14 @@ namespace XSDFrontend
return true;
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
XSDFrontend::SemanticGraph::Path abs_path (
XML::transcode_to_narrow (e.getLocation ()->getURI ()),
boost::filesystem::native);
+#else
+ XSDFrontend::SemanticGraph::Path abs_path (
+ XML::transcode_to_narrow (e.getLocation ()->getURI ()).c_str());
+#endif
XSDFrontend::SemanticGraph::Path rel_path (ctx_.file (abs_path));
@@ -4729,8 +4754,12 @@ namespace XSDFrontend
base_ (base),
ctx_ (ctx)
{
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
setSystemId (XML::XMLChString (
String (abs_.native_file_string ())).c_str ());
+#else
+ setSystemId (XML::XMLChString (String (abs_.string ())).c_str ());
+#endif
}
virtual Xerces::BinInputStream*
@@ -4803,8 +4832,12 @@ namespace XSDFrontend
// base_uri should be a valid path by now.
//
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
Path base (XML::transcode_to_narrow (base_uri),
boost::filesystem::native);
+#else
+ Path base (XML::transcode_to_narrow (base_uri).c_str());
+#endif
if (prv_id == 0)
{
@@ -4830,6 +4863,7 @@ namespace XSDFrontend
{
Path path;
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
try
{
path = Path (path_str);
@@ -4840,6 +4874,10 @@ namespace XSDFrontend
//
path = Path (path_str, boost::filesystem::native);
}
+#else
+ // The new ABI does not have a fallback native representation
+ path = Path (path_str.c_str());
+#endif
Path base_dir (base.branch_path ());
diff --git a/libxsd-frontend/xsd-frontend/semantic-graph/elements.cxx b/libxsd-frontend/xsd-frontend/semantic-graph/elements.cxx
index 9027282..6a2addf 100644
--- a/libxsd-frontend/xsd-frontend/semantic-graph/elements.cxx
+++ b/libxsd-frontend/xsd-frontend/semantic-graph/elements.cxx
@@ -342,5 +342,9 @@ namespace XSDFrontend
std::wostream&
operator<< (std::wostream& os, XSDFrontend::SemanticGraph::Path const& path)
{
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
return os << path.native_file_string ().c_str ();
+#else
+ return os << path.string ().c_str ();
+#endif
}
diff --git a/libxsd-frontend/xsd-frontend/transformations/anonymous.cxx b/libxsd-frontend/xsd-frontend/transformations/anonymous.cxx
index 65d8e76..118fd5d 100644
--- a/libxsd-frontend/xsd-frontend/transformations/anonymous.cxx
+++ b/libxsd-frontend/xsd-frontend/transformations/anonymous.cxx
@@ -275,7 +275,11 @@ namespace XSDFrontend
}
catch (SemanticGraph::InvalidPath const&)
{
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
file_str = file.native_file_string ();
+#else
+ file_str = file.string ();
+#endif
}
String name (
@@ -358,7 +362,11 @@ namespace XSDFrontend
}
catch (SemanticGraph::InvalidPath const&)
{
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
file_str = file.native_file_string ();
+#else
+ file_str = file.string ();
+#endif
}
}
@@ -441,7 +449,11 @@ namespace XSDFrontend
}
catch (SemanticGraph::InvalidPath const&)
{
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
file_str = file.native_file_string ();
+#else
+ file_str = file.string ();
+#endif
}
String name (
@@ -639,7 +651,11 @@ namespace XSDFrontend
}
catch (SemanticGraph::InvalidPath const&)
{
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
file_str = file.native_file_string ();
+#else
+ file_str = file.string ();
+#endif
}
String name (
diff --git a/libxsd-frontend/xsd-frontend/transformations/schema-per-type.cxx b/libxsd-frontend/xsd-frontend/transformations/schema-per-type.cxx
index 2cc6457..9ac8445 100644
--- a/libxsd-frontend/xsd-frontend/transformations/schema-per-type.cxx
+++ b/libxsd-frontend/xsd-frontend/transformations/schema-per-type.cxx
@@ -167,7 +167,11 @@ namespace XSDFrontend
try
{
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
path = Path (file_name);
+#else
+ path = Path (file_name.c_str());
+#endif
}
catch (InvalidPath const&)
{
@@ -349,6 +353,7 @@ namespace XSDFrontend
//
NarrowString abs_path;
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
// Try to use the portable representation of the path. If that
// fails, fall back to the native representation.
//
@@ -360,9 +365,17 @@ namespace XSDFrontend
{
abs_path = path.native_file_string ();
}
+#else
+ // The new ABI does not have a fallback native representation
+ abs_path = path.string ();
+#endif
NarrowString tf (trans_.translate_schema (abs_path));
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
NarrowString file (tf ? tf : path.leaf ());
+#else
+ NarrowString file (tf ? tf : path.filename ().string());
+#endif
Size p (file.rfind ('.'));
NarrowString ext (
@@ -389,7 +402,11 @@ namespace XSDFrontend
try
{
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
(*i)->context ().set ("renamed", SemanticGraph::Path (new_name));
+#else
+ (*i)->context ().set ("renamed", SemanticGraph::Path (new_name.c_str()));
+#endif
}
catch (SemanticGraph::InvalidPath const&)
{
diff --git a/xsd/xsd/cxx/elements.cxx b/xsd/xsd/cxx/elements.cxx
index 4d28311..d2600dc 100644
--- a/xsd/xsd/cxx/elements.cxx
+++ b/xsd/xsd/cxx/elements.cxx
@@ -326,7 +326,11 @@ namespace CXX
}
catch (SemanticGraph::InvalidPath const&)
{
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
pair = path.native_file_string ();
+#else
+ pair = path.string ();
+#endif
}
}
diff --git a/xsd/xsd/cxx/parser/elements.cxx b/xsd/xsd/cxx/parser/elements.cxx
index 9c2dac3..b3458c7 100644
--- a/xsd/xsd/cxx/parser/elements.cxx
+++ b/xsd/xsd/cxx/parser/elements.cxx
@@ -244,7 +244,11 @@ namespace CXX
}
catch (SemanticGraph::InvalidPath const&)
{
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
path_str = path.native_file_string ();
+#else
+ path_str = path.string ();
+#endif
}
String inc_path;
diff --git a/xsd/xsd/cxx/parser/generator.cxx b/xsd/xsd/cxx/parser/generator.cxx
index 617ff4f..b3aee76 100644
--- a/xsd/xsd/cxx/parser/generator.cxx
+++ b/xsd/xsd/cxx/parser/generator.cxx
@@ -552,7 +552,11 @@ namespace CXX
{
try
{
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
Path fs_path (path, boost::filesystem::native);
+#else
+ Path fs_path (path.c_str());
+#endif
ifs.open (fs_path, std::ios_base::in | std::ios_base::binary);
if (!ifs.is_open ())
@@ -638,7 +642,11 @@ namespace CXX
{
if (NarrowString name = ops.value<CLI::extern_xml_schema> ())
{
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
if (file_path.native_file_string () != name)
+#else
+ if (file_path.string () != name)
+#endif
generate_xml_schema = false;
}
}
@@ -815,7 +823,11 @@ namespace CXX
// Generate code.
//
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
NarrowString name (file_path.leaf ());
+#else
+ NarrowString name (file_path.filename().string());
+#endif
NarrowString skel_suffix (ops.value <CLI::skel_file_suffix> ());
NarrowString impl_suffix (ops.value <CLI::impl_file_suffix> ());
@@ -921,9 +933,15 @@ namespace CXX
cxx_driver_name = cxx_driver_expr.merge (name);
}
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
Path hxx_path (hxx_name, boost::filesystem::native);
Path ixx_path (ixx_name, boost::filesystem::native);
Path cxx_path (cxx_name, boost::filesystem::native);
+#else
+ Path hxx_path (hxx_name.c_str());
+ Path ixx_path (ixx_name.c_str());
+ Path cxx_path (cxx_name.c_str());
+#endif
Path hxx_impl_path;
Path cxx_impl_path;
@@ -931,9 +949,15 @@ namespace CXX
if (impl || driver)
{
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
hxx_impl_path = Path (hxx_impl_name, boost::filesystem::native);
cxx_impl_path = Path (cxx_impl_name, boost::filesystem::native);
cxx_driver_path = Path (cxx_driver_name, boost::filesystem::native);
+#else
+ hxx_impl_path = Path (hxx_impl_name.c_str());
+ cxx_impl_path = Path (cxx_impl_name.c_str());
+ cxx_driver_path = Path (cxx_driver_name.c_str());
+#endif
}
Path out_dir;
@@ -942,7 +966,11 @@ namespace CXX
{
try
{
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
out_dir = Path (dir, boost::filesystem::native);
+#else
+ out_dir = Path (dir.c_str());
+#endif
}
catch (InvalidPath const&)
{
@@ -1010,7 +1038,11 @@ namespace CXX
}
unlinks.add (hxx_impl_path);
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
file_list.push_back (hxx_impl_path.native_file_string ());
+#else
+ file_list.push_back (hxx_impl_path.string ());
+#endif
if (!ops.value<CLI::force_overwrite> ())
{
@@ -1036,7 +1068,11 @@ namespace CXX
}
unlinks.add (cxx_impl_path);
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
file_list.push_back (cxx_impl_path.native_file_string ());
+#else
+ file_list.push_back (cxx_impl_path.string ());
+#endif
}
if (driver)
@@ -1065,7 +1101,11 @@ namespace CXX
}
unlinks.add (cxx_driver_path);
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
file_list.push_back (cxx_driver_path.native_file_string ());
+#else
+ file_list.push_back (cxx_driver_path.string ());
+#endif
}
// Open the skel files.
@@ -1081,7 +1121,11 @@ namespace CXX
}
unlinks.add (hxx_path);
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
file_list.push_back (hxx_path.native_file_string ());
+#else
+ file_list.push_back (hxx_path.string ());
+#endif
if (inline_)
{
@@ -1094,7 +1138,11 @@ namespace CXX
}
unlinks.add (ixx_path);
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
file_list.push_back (ixx_path.native_file_string ());
+#else
+ file_list.push_back (ixx_path.string ());
+#endif
}
@@ -1109,7 +1157,11 @@ namespace CXX
}
unlinks.add (cxx_path);
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
file_list.push_back (cxx_path.native_file_string ());
+#else
+ file_list.push_back (cxx_path.string ());
+#endif
}
// Print copyright and license.
@@ -1168,7 +1220,11 @@ namespace CXX
NarrowString guard_prefix (ops.value<CLI::guard_prefix> ());
if (!guard_prefix)
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
guard_prefix = file_path.branch_path ().native_directory_string ();
+#else
+ guard_prefix = file_path.branch_path ().string ();
+#endif
if (guard_prefix)
guard_prefix += '_';
diff --git a/xsd/xsd/cxx/tree/elements.cxx b/xsd/xsd/cxx/tree/elements.cxx
index d5f03c0..cad5a33 100644
--- a/xsd/xsd/cxx/tree/elements.cxx
+++ b/xsd/xsd/cxx/tree/elements.cxx
@@ -1312,7 +1312,11 @@ namespace CXX
}
catch (SemanticGraph::InvalidPath const&)
{
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
path_str = path.native_file_string ();
+#else
+ path_str = path.string ();
+#endif
}
String inc_path;
diff --git a/xsd/xsd/cxx/tree/generator.cxx b/xsd/xsd/cxx/tree/generator.cxx
index c13bf1f..fe5286a 100644
--- a/xsd/xsd/cxx/tree/generator.cxx
+++ b/xsd/xsd/cxx/tree/generator.cxx
@@ -773,7 +773,11 @@ namespace CXX
{
try
{
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
Path fs_path (path, boost::filesystem::native);
+#else
+ Path fs_path (path.c_str());
+#endif
ifs.open (fs_path, std::ios_base::in | std::ios_base::binary);
if (!ifs.is_open ())
@@ -939,7 +943,11 @@ namespace CXX
{
if (NarrowString name = ops.value<CLI::extern_xml_schema> ())
{
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
if (file_path.native_file_string () != name)
+#else
+ if (file_path.string () != name)
+#endif
generate_xml_schema = false;
}
}
@@ -954,7 +962,11 @@ namespace CXX
// Generate code.
//
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
NarrowString name (file_path.leaf ());
+#else
+ NarrowString name (file_path.filename ().string());
+#endif
NarrowString hxx_suffix (ops.value <CLI::hxx_suffix> ());
NarrowString ixx_suffix (ops.value <CLI::ixx_suffix> ());
@@ -1013,9 +1025,15 @@ namespace CXX
NarrowString ixx_name (inline_ ? ixx_expr.merge (name) : NarrowString ());
NarrowString fwd_name (forward ? fwd_expr.merge (name) : NarrowString ());
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
Path hxx_path (hxx_name, boost::filesystem::native);
Path ixx_path (ixx_name, boost::filesystem::native);
Path fwd_path (fwd_name, boost::filesystem::native);
+#else
+ Path hxx_path (hxx_name.c_str());
+ Path ixx_path (ixx_name.c_str());
+ Path fwd_path (fwd_name.c_str());
+#endif
Paths cxx_paths;
if (source)
@@ -1041,12 +1059,20 @@ namespace CXX
}
cxx_paths.push_back (
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
Path (cxx_expr.merge (part_name), boost::filesystem::native));
+#else
+ Path (cxx_expr.merge (part_name).c_str()));
+#endif
}
}
else
cxx_paths.push_back (
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
Path (cxx_expr.merge (name), boost::filesystem::native));
+#else
+ Path (cxx_expr.merge (name).c_str()));
+#endif
}
Path out_dir;
@@ -1055,7 +1081,11 @@ namespace CXX
{
try
{
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
out_dir = Path (dir, boost::filesystem::native);
+#else
+ out_dir = Path (dir.c_str());
+#endif
}
catch (InvalidPath const&)
{
@@ -1108,7 +1138,11 @@ namespace CXX
}
unlinks.add (fwd_path);
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
file_list.push_back (fwd_path.native_file_string ());
+#else
+ file_list.push_back (fwd_path.string ());
+#endif
}
@@ -1121,7 +1155,11 @@ namespace CXX
}
unlinks.add (hxx_path);
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
file_list.push_back (hxx_path.native_file_string ());
+#else
+ file_list.push_back (hxx_path.string ());
+#endif
// IXX
@@ -1137,7 +1175,11 @@ namespace CXX
}
unlinks.add (ixx_path);
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
file_list.push_back (ixx_path.native_file_string ());
+#else
+ file_list.push_back (ixx_path.string ());
+#endif
}
@@ -1158,7 +1200,11 @@ namespace CXX
}
unlinks.add (*i);
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
file_list.push_back (i->native_file_string ());
+#else
+ file_list.push_back (i->string ());
+#endif
cxx.push_back (s);
}
}
@@ -1230,7 +1276,11 @@ namespace CXX
NarrowString guard_prefix (ops.value<CLI::guard_prefix> ());
if (!guard_prefix)
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
guard_prefix = file_path.branch_path ().native_directory_string ();
+#else
+ guard_prefix = file_path.branch_path ().string ();
+#endif
if (guard_prefix)
guard_prefix += '_';
diff --git a/xsd/xsd/xsd.cxx b/xsd/xsd/xsd.cxx
index 1c66a8a..2e2f6ce 100644
--- a/xsd/xsd/xsd.cxx
+++ b/xsd/xsd/xsd.cxx
@@ -636,7 +636,11 @@ main (Int argc, Char* argv[])
try
{
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
tu = SemanticGraph::Path (args[i], boost::filesystem::native);
+#else
+ tu = SemanticGraph::Path (args[i]);
+#endif
}
catch (SemanticGraph::InvalidPath const&)
{
@@ -675,7 +679,11 @@ main (Int argc, Char* argv[])
if (NarrowString name =
tree_ops->value<CXX::Tree::CLI::extern_xml_schema> ())
{
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
if (tu.native_file_string () != name)
+#else
+ if (tu.string () != name)
+#endif
gen_xml_schema = false;
}
}
@@ -690,7 +698,11 @@ main (Int argc, Char* argv[])
if (NarrowString name =
parser_ops->value<CXX::Parser::CLI::extern_xml_schema> ())
{
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
if (tu.native_file_string () != name)
+#else
+ if (tu.string () != name)
+#endif
gen_xml_schema = false;
}
}
@@ -827,8 +839,13 @@ main (Int argc, Char* argv[])
{
try
{
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
paths.push_back (
SemanticGraph::Path (args[i], boost::filesystem::native));
+#else
+ paths.push_back (
+ SemanticGraph::Path (args[i]));
+#endif
}
catch (SemanticGraph::InvalidPath const&)
{
@@ -991,9 +1008,17 @@ main (Int argc, Char* argv[])
try
{
OutputFileStream ofs;
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
SemanticGraph::Path path (fl);
+#else
+ SemanticGraph::Path path (fl.c_str());
+#endif
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
ofs.open (fl, std::ios_base::out);
+#else
+ ofs.open (fl.c_str(), std::ios_base::out);
+#endif
if (!ofs.is_open ())
{
diff --git a/xsd/xsd/xsd.hxx b/xsd/xsd/xsd.hxx
index f847392..508c8da 100644
--- a/xsd/xsd/xsd.hxx
+++ b/xsd/xsd/xsd.hxx
@@ -38,7 +38,11 @@ struct AutoUnlink
{
if (!canceled_)
{
+#if !defined(BOOST_FILESYSTEM_VERSION) || BOOST_FILESYSTEM_VERSION == 2
std::remove (file_.native_file_string ().c_str ());
+#else
+ std::remove (file_.string ().c_str ());
+#endif
}
}

3
cxx-parser-guide.pdf Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a25f551b18183e15f0511d77f00bdd44e6493fedffc42a380be384ae95783991
size 195628

3
cxx-tree-guide.pdf Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4a99c7ce34f79ea96d83409005d95819197c9c25fe8611f27995633a5d7dbe10
size 130901

3
cxx-tree-manual.pdf Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:03f6cb1cba7a8c6419c4848c47f13de2ddbaffce6255c4d220a50e1db4733ed5
size 260145

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4b79b88ed81a1384024138ff37891c4fb55908267fbc8b9bad80f37fddcbabed
size 1201081

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4fbe2d1e17ad4451bb3a9d9101ac89f7b465205470f1c7ad5e2c1386ac2c87d2
size 1778335

View File

@@ -1,3 +1,64 @@
-------------------------------------------------------------------
Wed Oct 30 13:51:59 UTC 2024 - Christophe Marin <christophe@krop.fr>
- Add patch (CVE-2024-50602, boo#1232580)
* CVE-2024-50602.patch
-------------------------------------------------------------------
Mon Aug 7 08:25:23 UTC 2023 - Christophe Marin <christophe@krop.fr>
- Use pre-generated pdf files to have reproducible builds.
-------------------------------------------------------------------
Wed Feb 10 08:34:07 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
- Update to 4.1.0
* Support for abstract XML Schema types. The corresponding C++
classes now have _clone() declared pure virtual which
prevents construction of their instances.
- Drop 0001-Fix-build-with-GCC10.patch. Merged upstream.
- Rebase xsdcxx-rename.patch
-------------------------------------------------------------------
Thu Dec 5 09:03:23 UTC 2019 - Christophe Giboudeaux <christophe@krop.fr>
- Add 0001-Fix-build-with-GCC10.patch (boo#1158369)
- Run spec-cleaner
-------------------------------------------------------------------
Thu Feb 2 15:44:53 UTC 2017 - adam.majer@suse.de
- use individual libboost-*-devel packages instead of boost-devel
-------------------------------------------------------------------
Wed Jul 23 21:25:00 UTC 2014 - cgiboudeaux@gmx.com
- Update to 4.0.0
* Drop support for Xerces-C++ <= 2.8.0.
* Oracle/Berkeley DB XML support has been dropped.
* New option, --std, specifies the C++ standard that the generated code
should conform to. Valid values are c++98 (default) and c++11.
* New option, --fat-type-file, triggers the placement of code corresponding
to global elements into type files instead of schema files in the file-
per-type mode. This option is primarily useful when trying to minimize
the amount of object code that is linked to an executable by packaging
compiled generated code into a static (archive) library.
* New option, --generate-dep, triggers the generation of the make
dependency files (.d) for the generated C++ files. Other options
controlling dependency generation are: --generate-dep-only,
--dep-phony, --dep-target, --dep-suffix, and --dep-regex. For
details on this functionality, refer to the XSD compiler command
line manual (man pages).
* New option, --suppress-assignment, suppresses the generation of copy
assignment operators for complex types. If this option is specified,
the copy assignment operators for such types are declared private and
left unimplemented.
* New option, --polymorphic-plate, allows the creation of multiple
polymorphic map plates in the same application. For details, refer
to the XSD compiler command line manual (man pages).
See the NEWS file for the complete changelog
- Drop boost1.46-buildfix.patch (no longer needed)
-------------------------------------------------------------------
Wed May 9 11:43:55 UTC 2012 - cgiboudeaux@gmx.com

View File

@@ -1,7 +1,7 @@
#
# spec file for package xsd
#
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,30 +12,33 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: xsd
%define rversion 3.3.0-1
Version: 3.3.0.1
Version: 4.1.0
Release: 0
Summary: W3C XML schema to C++ data binding compiler
# http://www.codesynthesis.com/products/xsd/license.xhtml
License: SUSE-GPL-2.0-with-FLOSS-exception
Url: http://www.codesynthesis.com/products/xsd/
Group: Development/Languages/C and C++
Source0: http://www.codesynthesis.com/download/xsd/3.3/%{name}-%{rversion}+dep.tar.bz2
URL: https://www.codesynthesis.com/products/xsd/
Source0: https://codesynthesis.com/~boris/tmp/xsd/%{version}.a11/%{name}-%{version}.a11+dep.tar.bz2
Source1: cxx-tree-guide.pdf
Source2: cxx-parser-guide.pdf
Source3: cxx-tree-manual.pdf
Source99: xsd-rpmlintrc
# Rename xsd to xsdcxx
Patch0: xsdcxx-rename.patch
# Author: Konstantinos Margaritis <markos@genesi-usa.com> - http://bugs.debian.org/624942
Patch1: boost1.46-buildfix.patch
BuildRequires: Xerces-c-devel
BuildRequires: boost-devel
# PATCH-FIX-UPSTREAM -- CVE-2024-50602
Patch1: CVE-2024-50602.patch
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: ghostscript
BuildRequires: libboost_headers-devel
BuildRequires: libxerces-c-devel > 2.8.0
BuildRequires: m4
Requires: Xerces-c-devel
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Requires: libxerces-c-devel
%description
CodeSynthesis XSD is an open-source, cross-platform W3C XML Schema to
@@ -48,22 +51,21 @@ dealing with intricacies of reading and writing XML.
%package doc
Summary: API documentation files for xsd
Requires: xsd
Group: Documentation/Other
Requires: xsd
BuildArch: noarch
%description doc
This package contains API documentation for xsd.
%prep
%setup -q -n %{name}-%{rversion}+dep
%patch0 -p1
%patch1 -p1
%autosetup -p1 -n %{name}-%{version}.a11+dep
%build
make verbose=1 CXXFLAGS="%{optflags}" %{?_smp_mflags}
%make_build CXXFLAGS="%{optflags}"
%install
make install_prefix="%{buildroot}%{_prefix}" install
make install_prefix="%{buildroot}%{_prefix}" install
# Rename xsd to xsdcxx to avoid conflicting with mono-web package.
mv %{buildroot}%{_bindir}/xsd %{buildroot}%{_bindir}/xsdcxx
@@ -71,22 +73,24 @@ mv %{buildroot}%{_datadir}/doc/xsd %{buildroot}%{_datadir}/doc/xsdcxx
mv %{buildroot}%{_mandir}/man1/xsd.1 %{buildroot}%{_mandir}/man1/xsdcxx.1
# Remove duplicate docs.
rm -rf %{buildroot}%{_datadir}/doc/libxsd
rm -r %{buildroot}%{_datadir}/doc/libxsd
# Remove Microsoft Visual C++ compiler helper files.
rm -rf %{buildroot}%{_includedir}/xsd/cxx/compilers
# the pdf creation relies on a double conversion, first to create a ps file, then a PDF
# the process produces unreproducible builds. Replace with pre-generated files
cp -f %{SOURCE1} %{buildroot}%{_datadir}/doc/xsdcxx/cxx/tree/cxx-tree-guide.pdf
cp -f %{SOURCE2} %{buildroot}%{_datadir}/doc/xsdcxx/cxx/tree/guide/cxx-parser-guide.pdf
cp -f %{SOURCE3} %{buildroot}%{_datadir}/doc/xsdcxx/cxx/tree/manual/cxx-tree-manual.pdf
%fdupes -s %{buildroot}%{_datadir}/doc
%files
%defattr(-,root,root,-)
%doc README xsd/NEWS xsd/LICENSE xsd/GPLv2 xsd/FLOSSE
%license xsd/LICENSE
%doc README xsd/NEWS xsd/GPLv2 xsd/FLOSSE
%{_bindir}/xsdcxx
%{_includedir}/xsd/
%{_mandir}/man1/xsdcxx.1*
%{_mandir}/man1/xsdcxx.1%{?ext_man}
%files doc
%defattr(-,root,root,-)
%doc %{_datadir}/doc/xsdcxx
%changelog

View File

@@ -1,13 +1,13 @@
diff --git a/xsd/documentation/xsd.1 b/xsd/documentation/xsd.1
index 8b97b14..bebd8cb 100644
--- a/xsd/documentation/xsd.1
+++ b/xsd/documentation/xsd.1
diff --git a/xsd/doc/xsd.1 b/xsd/doc/xsd.1
index b7f0796..ff5ff11 100644
--- a/xsd/doc/xsd.1
+++ b/xsd/doc/xsd.1
@@ -3,14 +3,14 @@
.\"
.TH XSD 1 "April 2010" "XSD 3.3.0"
.TH XSD 1 "July 2014" "XSD 4.1.0"
.SH NAME
-xsd \- W3C XML Schema to C++ Compiler
+xsdxx \- W3C XML Schema to C++ Compiler
+xsdcxx \- W3C XML Schema to C++ Compiler
.\"
.\"
.\"
@@ -51,16 +51,7 @@ index 8b97b14..bebd8cb 100644
.I command
.RE
.PP
@@ -203,7 +203,7 @@ For example, if you have file
with namespace
.B http://example.com/hello
and you run
-.B xsd
+.B xsdcxx
on this file, then the string in question will be:
.B hello.xsd. http://example.com/hello
@@ -1877,7 +1877,7 @@ option. With this approach you don't need to worry about shell quoting.
@@ -1461,7 +1461,7 @@ option. With this approach you don't need to worry about shell quoting.
.\"
.SH DIAGNOSTICS
If the input file is not a valid W3C XML Schema definition,
@@ -69,11 +60,11 @@ index 8b97b14..bebd8cb 100644
will issue diagnostic messages to
.B STDERR
and exit with non-zero exit code.
diff --git a/xsd/documentation/xsd.xhtml b/xsd/documentation/xsd.xhtml
index 4acf822..1817947 100644
--- a/xsd/documentation/xsd.xhtml
+++ b/xsd/documentation/xsd.xhtml
@@ -55,14 +55,14 @@
diff --git a/xsd/doc/xsd.xhtml b/xsd/doc/xsd.xhtml
index 41e8517..45970d7 100644
--- a/xsd/doc/xsd.xhtml
+++ b/xsd/doc/xsd.xhtml
@@ -57,14 +57,14 @@
<h1>SYNOPSIS</h1>
<dl id="synopsis">
@@ -92,7 +83,7 @@ index 4acf822..1817947 100644
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
@@ -104,7 +104,7 @@
@@ -106,7 +106,7 @@
<dt><code><b>help</b></code></dt>
<dd>Print usage information and exit. Use
@@ -101,21 +92,12 @@ index 4acf822..1817947 100644
for command-specific help.
</dd>
@@ -174,7 +174,7 @@
@@ -218,7 +218,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
+ <code><b>xsdcxx</b></code> on this file, then the string in question
will be:</p>
<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>
@@ -1575,7 +1575,7 @@ namespace .*
<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>
<p><code><b>hello.xsd. http://example.com/hello</b></code></p>