The xmlschema library is an implementation of XML Schema for Python (supports
Python 2.7 and Python 3.5+).
This library arises from the needs of a solid Python layer for processing XML
Schema based files for MaX (Materials design at the Exascale) European project.
A significant problem is the encoding and the decoding of the XML data files
produced by different simulation software. Another important requirement is the
XML data validation, in order to put the produced data under control. The lack
of a suitable alternative for Python in the schema-based decoding of XML data
has led to build this library. Obviously this library can be useful for other
cases related to XML Schema based processing, not only for the original scope.
The proposal of this package is to provide XPath 1.0 and 2.0 selectors for
Python's ElementTree XML data structures, both for the standard ElementTree
library and for the lxml.etree library.
For lxml.etree this package can be useful for providing XPath 2.0 selectors,
because lxml.etree already has it's own implementation of XPath 1.0.
1.0.0:
* Drop Python 2.7 and 3.4 support (as upstream sphinx has dropped
support for these as well).
* Add Python 3.8 support (contributed by hroncok).
* Update for Sphinx 2.x, and drop Sphinx 1.x support (as there is too
much difference between the two versions).
* Non-bibtex citations will now no longer issue warnings
* Switch to codecov for coverage reporting.
Version 0.22.2
- Fixed compatibility with Python 2 and older versions of Python 3.
Version 0.22.1
- Fixed non-working ``--backend`` option with ``pybtex -l python``.
Release 2.2.0:
Incompatible changes
apidoc: template files are renamed to .rst_t
html: Field lists will be styled by grid layout
Deprecated¶
sphinx.domains.math.MathDomain.add_equation()
sphinx.domains.math.MathDomain.get_next_equation_number()
The info and warn arguments of sphinx.ext.autosummary.generate.generate_autosummary_docs()
sphinx.ext.autosummary.generate._simple_info()
sphinx.ext.autosummary.generate._simple_warn()
sphinx.ext.todo.merge_info()
sphinx.ext.todo.process_todo_nodes()
sphinx.ext.todo.process_todos()
sphinx.ext.todo.purge_todos()
Features added
* graphviz: :graphviz_dot: option is renamed to :layout:
* html: emit a warning if html_static_path and html_extra_path directories are inside output directory
* html: Add a label to search input for accessability purposes
* apidoc: Add --templatedir option
* Add override argument to app.add_autodocumenter()
* imgmath: let imgmath_use_preview work also with the SVG format for images rendering inline math
* LaTeX: refactor visit_enumerated_list() to use \sphinxsetlistlabels
* quickstart: Use https://docs.python.org/3/ for default setting of intersphinx_mapping
* sphinx-build: give reasons why rebuilded
Bugs fixed
py domain: duplicated warning does not point the location of source code
* html: Sphinx never updates a copy of html_logo even if original file has changed
* html theme: scrollbar is hard to see on classic theme and macOS
* linkcheck: Consider HTTP 503 response as not an error
* Make generated download links reproducible
* UnboundLocalError is raised if broken extension installed
* autodoc: autodoc_inherit_docstrings does not effect to __init__() and __new__()
* autodoc: autodoc_member_order does not refer order of imports when 'bysource' order
* autodoc: missing type annotation for variadic and keyword parameters
* autodoc: Formatting issues with autodoc_typehints=’none’
* autodoc: crashed when target code contains custom method-like objects
* autosummary: crashed with wrong autosummary_generate setting
* autosummary: crashes without no autosummary_generate setting
* LaTeX: autonumbered list can not be customized in LaTeX since Sphinx 1.8.0
* Failed to load last environment object when extension added
* Invalid sort in pair index
* last_updated wrongly assumes timezone as UTC
* std domain: option directive registers an index entry for each comma separated option
* sphinx-build: Escaped characters in error messages
* doctest comments not getting trimmed since Sphinx 1.8.0
* glossary: Wrong hyperlinks are generated for non alphanumeric terms
* i18n: classifiers of definition list are not translated with docutils-0.15
* DocFieldTransformer raises AttributeError when given directive is not a subclass of ObjectDescription
Release 2.1.2:
Bugs fixed
* custom lexers fails highlighting when syntax error
* info field lists are incorrectly recognized
Release 2.1.1 (released Jun 10, 2019)
Incompatible changes
* autodoc: Stop to generate document for undocumented module variables
Bugs fixed
* LaTeX: admonitions of note type can get separated from immediately preceding section title by pagebreak
* autodoc: crashed when autodocumenting classes with __slots__ = None
* autodoc: generates docs for “optional import”ed modules as variables
* autosummary: crashed when generating document of properties
* napoleon: docstrings for properties are not processed
* napoleon: “Unknown target name” error if variable name ends with underscore
* apidoc: missing blank lines between modules
Release 2.1.0:
Incompatible changes
Ignore filenames without file extension given to Builder.build_specific() API directly
* The anchor of term in glossary directive is changed if it is consisted by non-ASCII characters
* html: Centering tables by default using CSS
* latex: xelatex and xeCJK are used for Chinese documents by default
Sphinx.add_lexer() now takes a Lexer class instead of instance. An instance of lexers are still supported until Sphinx-3.x.
Deprecated
sphinx.builders.latex.LaTeXBuilder.apply_transforms()
sphinx.builders._epub_base.EpubBuilder.esc()
sphinx.directives.Acks
sphinx.directives.Author
sphinx.directives.Centered
sphinx.directives.Class
sphinx.directives.CodeBlock
sphinx.directives.Figure
sphinx.directives.HList
sphinx.directives.Highlight
sphinx.directives.Include
sphinx.directives.Index
sphinx.directives.LiteralInclude
sphinx.directives.Meta
sphinx.directives.Only
sphinx.directives.SeeAlso
sphinx.directives.TabularColumns
sphinx.directives.TocTree
sphinx.directives.VersionChange
sphinx.domains.python.PyClassmember
sphinx.domains.python.PyModulelevel
sphinx.domains.std.StandardDomain._resolve_citation_xref()
sphinx.domains.std.StandardDomain.note_citations()
sphinx.domains.std.StandardDomain.note_citation_refs()
sphinx.domains.std.StandardDomain.note_labels()
sphinx.environment.NoUri
sphinx.ext.apidoc.format_directive()
sphinx.ext.apidoc.format_heading()
sphinx.ext.apidoc.makename()
sphinx.ext.autodoc.importer.MockFinder
sphinx.ext.autodoc.importer.MockLoader
sphinx.ext.autodoc.importer.mock()
sphinx.ext.autosummary.autolink_role()
sphinx.ext.imgmath.DOC_BODY
sphinx.ext.imgmath.DOC_BODY_PREVIEW
sphinx.ext.imgmath.DOC_HEAD
sphinx.transforms.CitationReferences
sphinx.transforms.SmartQuotesSkipper
sphinx.util.docfields.DocFieldTransformer.preprocess_fieldtypes()
sphinx.util.node.find_source_node()
sphinx.util.i18n.find_catalog()
sphinx.util.i18n.find_catalog_files()
sphinx.util.i18n.find_catalog_source_files()
For more details, see deprecation APIs list.
Features added
Add a helper class sphinx.transforms.post_transforms.SphinxPostTransform
Add helper methods
PythonDomain.note_module()
PythonDomain.note_object()
SphinxDirective.set_source_info()
* Support --keep-going with BuildDoc setup command
math directive now supports :class: option
todo: todo directive now supports :name: option
Enable override via environment of SPHINXOPTS and SPHINXBUILD Makefile variables
* autodoc: Unable to document bound instance methods exported as module functions
* autodoc: autodoc_default_options now supports imported-members option
* autodoc: Support coroutine
* autodoc: Support abstractmethod
* autodoc: Support attributes in __slots__. For dict-style __slots__, autodoc considers values as a docstring of the attribute
* autodoc: Add autodoc_typehints to suppress typehints from signature
* autodoc: automodule directive now handles undocumented module level variables
* autosummary: Add autosummary_imported_members to display imported members on autosummary
* make clean is catastrophically broken if building into ‘.’
* Support %O% environment variable in make.bat
* py domain: Add :async: option to py:function directive
* py domain: Add new options to py:method directive
:abstractmethod:
:async:
:classmethod:
:property:
:staticmethod:
rst domain: Add directive:option directive to describe the option for directive
* html: Add a label to search form for accessability purposes
* html: Consistent and semantic CSS for signatures
* The rawsource property of production nodes now contains the full production rule
* autosectionlabel: Allow suppression of warnings
coverage: Support a new coverage_ignore_pyobjects option
* latex: Support to build Chinese documents
Bugs fixed
* Inappropriate node_id has been generated by glossary directive if term is consisted by non-ASCII characters
* ifconfig: contents after headings are not shown
commented term in glossary directive is wrongly recognized
* rst domain: rst:directive directive generates waste space
* py domain: Module index (py-modindex.html) has duplicate titles
* man: invalid output when doctest follows rubric
* “Hyperlink target is not referenced” message is shown even if referenced
* autodoc: tab_width setting of docutils has been ignored
* autodoc: crashes with a plain Tuple on Python 3.6 and 3.5
* autosummary: autosummary table gets confused by complex type hints
* autosummary: confused by an argument having some kind of default value
Generated Makefiles lack a final EOL
* extlinks: Cannot escape angle brackets in link caption
* linkcheck: Send commonly used User-Agent
* html search: failed to search document with haiku and scrolls themes
* html search: Fix the ranking of search results
* Wrong year is returned for SOURCE_DATE_EPOCH
* image directive crashes by unknown image format
* C++, allow 8 and 9 in hexadecimal integer literals.
* Fix the string in quickstart for ‘path’ argument of parser
LaTeX: Figures in admonitions produced errors
Release 2.0.1:
Bugs fixed
LaTeX: some system labels are not translated
RemovedInSphinx30Warning is marked as pending
deprecation warnings are not emitted
sphinx.application.CONFIG_FILENAME
sphinx.builders.htmlhelp
viewcode_import
* C++, properly parse full xrefs that happen to have a short xref as prefix
* napoleon: AttributeError is raised for raised section having references
* circular import error on importing SerializingHTMLBuilder
* LaTeX: ‘releasename’ setting for latex_elements is ignored
* html: Search function is broken with 3rd party themes
* html: HTML5Translator crashed with invalid field node
* html theme: The style of field lists has changed in bizstyle theme
Release 2.0.0:
Dependencies
2.0.0b1
LaTeX builder now depends on TeX Live 2015 or above.
LaTeX builder (with 'pdflatex' latex_engine) will process Unicode Greek letters in text (not in math mark-up) via the text font and will not escape them to math mark-up. See the discussion of the 'fontenc' key of latex_elements; such (optional) support for Greek adds, for example on Ubuntu xenial, the texlive-lang-greek and (if default font set-up is not modified) cm-super(-minimal) as additional Sphinx LaTeX requirements.
LaTeX builder with latex_engine set to 'xelatex' or to 'lualatex' requires (by default) the FreeFont fonts, which in Ubuntu xenial are provided by package fonts-freefont-otf, and e.g. in Fedora 29 via package texlive-gnu-freefont.
requests 2.5.0 or above
The six package is no longer a dependency
The sphinxcontrib-websupport package is no longer a dependency
Some packages are separated to sub packages:
sphinxcontrib.applehelp
sphinxcontrib.devhelp
sphinxcontrib.htmlhelp
sphinxcontrib.jsmath
sphinxcontrib.serializinghtml
sphinxcontrib.qthelp
Incompatible changes
2.0.0b1
Drop python 2.7 and 3.4 support
Drop docutils 0.11 support
Drop features and APIs deprecated in 1.7.x
The default setting for master_doc is changed to 'index' which has been longly used as default of sphinx-quickstart.
LaTeX: Move message resources to sphinxmessage.sty
LaTeX: Stop using \captions<lang> macro for some labels
LaTeX: for 'xelatex' and 'lualatex', use the FreeFont OpenType fonts as default choice
LaTeX: 'xelatex' and 'lualatex' now use \small in code-blocks (due to FreeMono character width) like 'pdflatex' already did (due to Courier character width). You may need to adjust this via latex_elements 'fvset' key, in case of usage of some other OpenType fonts
LaTeX: Greek letters in text are not escaped to math mode mark-up, and they will use the text font not the math font. The LGR font encoding must be added to the 'fontenc' key of latex_elements for this to work (only if it is needed by the document, of course).
LaTeX: setting the language to 'en' triggered Sonny option of fncychap, now it is Bjarne to match case of no language specified.
* doctest: Follow highlight_language on highlighting doctest block. As a result, they are highlighted as python3 by default.
The order of argument for HTMLTranslator, HTML5Translator and ManualPageTranslator are changed
LaTeX: hard-coded redefinitions of \l@section and \l@subsection formerly done during loading of 'manual' docclass get executed later, at time of \sphinxtableofcontents. This means that custom user definitions from LaTeX preamble now get overwritten. Use \sphinxtableofcontentshook to insert custom user definitions. See Macros.
quickstart: Simplify generated conf.py
* quickstart: some questions are removed. They are still able to specify via command line options
websupport: unbundled from sphinx core. Please use sphinxcontrib-websupport
C++, the visibility of base classes is now always rendered as present in the input. That is, private is now shown, where it was ellided before.
LaTeX: graphics inclusion of oversized images rescales to not exceed the text width and height, even if width and/or height option were used.
epub: epub_title defaults to the project option
* All tables and figures without align option are displayed to center
* html: Output HTML5 by default
2.0.0b2
texinfo: image files are copied into name-figure directory
Deprecated
2.0.0b1
Support for evaluating Python 2 syntax is deprecated. This includes configuration files which should be converted to Python 3.
The arguments of EpubBuilder.build_mimetype(), EpubBuilder.build_container(), EpubBuilder.bulid_content(), EpubBuilder.build_toc() and EpubBuilder.build_epub()
The arguments of Epub3Builder.build_navigation_doc()
The config variables
html_experimental_html5_writer
The encoding argument of autodoc.Documenter.get_doc(), autodoc.DocstringSignatureMixin.get_doc(), autodoc.DocstringSignatureMixin._find_signature(), and autodoc.ClassDocumenter.get_doc() are deprecated.
The importer argument of sphinx.ext.autodoc.importer._MockModule
The nodetype argument of sphinx.search.WordCollector. is_meta_keywords()
The suffix argument of env.doc2path() is deprecated.
The string style base argument of env.doc2path() is deprecated.
The fallback to allow omitting the filename argument from an overridden IndexBuilder.feed() method is deprecated.
sphinx.addnodes.abbreviation
sphinx.application.Sphinx._setting_up_extension
sphinx.builders.epub3.Epub3Builder.validate_config_value()
sphinx.builders.html.SingleFileHTMLBuilder
sphinx.builders.htmlhelp.HTMLHelpBuilder.open_file()
sphinx.cmd.quickstart.term_decode()
sphinx.cmd.quickstart.TERM_ENCODING
sphinx.config.check_unicode()
sphinx.config.string_classes
sphinx.domains.cpp.DefinitionError.description
sphinx.domains.cpp.NoOldIdError.description
sphinx.domains.cpp.UnsupportedMultiCharacterCharLiteral.decoded
sphinx.ext.autodoc.importer._MockImporter
sphinx.ext.autosummary.Autosummary.warn()
sphinx.ext.autosummary.Autosummary.genopt
sphinx.ext.autosummary.Autosummary.warnings
sphinx.ext.autosummary.Autosummary.result
sphinx.ext.doctest.doctest_encode()
sphinx.io.SphinxBaseFileInput
sphinx.io.SphinxFileInput.supported
sphinx.io.SphinxRSTFileInput
sphinx.registry.SphinxComponentRegistry.add_source_input()
sphinx.roles.abbr_role()
sphinx.roles.emph_literal_role()
sphinx.roles.menusel_role()
sphinx.roles.index_role()
sphinx.roles.indexmarkup_role()
sphinx.testing.util.remove_unicode_literal()
sphinx.util.attrdict
sphinx.util.force_decode()
sphinx.util.get_matching_docs()
sphinx.util.inspect.Parameter
sphinx.util.jsonimpl
sphinx.util.osutil.EEXIST
sphinx.util.osutil.EINVAL
sphinx.util.osutil.ENOENT
sphinx.util.osutil.EPIPE
sphinx.util.osutil.walk()
sphinx.util.PeekableIterator
sphinx.util.pycompat.NoneType
sphinx.util.pycompat.TextIOWrapper
sphinx.util.pycompat.UnicodeMixin
sphinx.util.pycompat.htmlescape
sphinx.util.pycompat.indent
sphinx.util.pycompat.sys_encoding
sphinx.util.pycompat.terminal_safe()
sphinx.util.pycompat.u
sphinx.writers.latex.ExtBabel
sphinx.writers.latex.LaTeXTranslator._make_visit_admonition()
sphinx.writers.latex.LaTeXTranslator.babel_defmacro()
sphinx.writers.latex.LaTeXTranslator.collect_footnotes()
sphinx.writers.latex.LaTeXTranslator.generate_numfig_format()
sphinx.writers.texinfo.TexinfoTranslator._make_visit_admonition()
sphinx.writers.text.TextTranslator._make_depart_admonition()
template variables for LaTeX template
logo
numfig_format
pageautorefname
translatablestrings
For more details, see deprecation APIs list.
Features added
2.0.0b1
* The search results preview of generated HTML documentation is reader-friendlier: instead of showing the snippets as raw reStructuredText markup, Sphinx now renders the corresponding HTML. This means the Sphinx extension Sphinx: pretty search results is no longer necessary. Note that changes to the search function of your custom or 3rd-party HTML template might overwrite this improvement.
* autodoc: Support suppress_warnings
* autodoc: autodoc_default_options supports member-order
* autodoc: Display readable names in type annotations for mocked objects
* autodoc: autodoc_default_options accepts True as a value
* autodoc: Add autodecorator directive for decorators
* autosummary: Add autosummary_mock_imports to mock external libraries on importing targets
* htmlhelp: Add htmlhelp_file_suffix and htmlhelp_link_suffix
* text: Support complex tables (colspan and rowspan)
LaTeX: support rendering (not in math, yet) of Greek and Cyrillic Unicode letters in non-Cyrillic document even with 'pdflatex' as latex_engine
* The versionadded, versionchanged and deprecated directives are now generated with their own specific CSS classes (added, changed and deprecated, respectively) in addition to the generic versionmodified class.
* apidoc: Add –extensions option to sphinx-apidoc
* C++, added an alias directive for inserting lists of declarations, that references existing declarations (e.g., for making a synopsis).
C++: add cpp:struct to complement cpp:class.
* the HTML search considers words that contain a search term of length three or longer a match.
* epub: Show warning for duplicated ToC entries
* Allow to omit an argument for code-block directive. If omitted, it follows highlight or highlight_language
* html: Add html4_writer to use old HTML4 writer
* HTML search: A placeholder for the search summary prevents search result links from changing their position when the search terminates. This makes navigating search results easier.
* linkcheck also checks remote images exist
* githubpages: create CNAME file for custom domains when html_baseurl set
* autosectionlabel: restrict the labeled sections by new config value; autosectionlabel_maxdepth
Bugs fixed
2.0.0b1
* LaTeX: writer should not translate Greek unicode, but use textgreek package
* LaTeX: PDF does not build with default font config for Russian language and 'xelatex' or 'lualatex' as latex_engine
* LaTeX: Greek letters in section titles disappear from PDF bookmarks
* LaTeX: Unicode Greek letters in math directive break PDF build (fix requires extra set-up, see latex_elements 'textgreek' key and/or latex_engine setting)
* LaTeX: should the Bjarne style of fncychap be used for English also if passed as language option?
* LaTeX: (lualatex only) escaping of > by \textgreater{} is not enough as \textgreater{}\textgreater{} applies TeX-ligature
LaTeX: project name is not escaped if latex_documents omitted
LaTeX: authors are not shown if latex_documents omitted
HTML: Invalid HTML5 file is generated for a glossary having multiple terms for one description
QtHelp: OS dependent path separator is used in .qhp file
HTML search: search always returns nothing when multiple search terms are used and one term is shorter than three characters
2.0.0b2
* html: Anchor links are not added to figures
* html: Defer searchindex.js rather than loading it via ajax
* html: Table cells and list items have large margins
* linenothreshold option for highlight directive was ignored
texinfo: make install-info causes syntax error
texinfo: make install-info fails on macOS
* texinfo: image files are not copied on make install-info
* A cross reference in heading is rendered as literal
* C++, fix cpp:alias problems in LaTeX (and singlehtml)
* classes attribute of citation_reference node is lost
AssertionError is raised when custom citation_reference node having classes attribute refers missing citation
* Support code directive
C++, fix parsing of braced initializers.
* AttributeError is raised for old styled index nodes
* inheritance_diagram: correctly describe behavior of parts option in docs, allow negative values.
* i18n: Captions missing in translations for hidden TOCs
2.0.0 final
* py domain: unexpected prefix is generated
Testing
2.0.0b1
Stop to use SPHINX_TEST_TEMPDIR envvar
2.0.0b2
Add a helper function: sphinx.testing.restructuredtext.parse()
json2tsv reads JSON data from stdin. It outputs each JSON type to a
TAB-Separated Value format per line. The -n flag can be used to show
the indices for array types (by default off).
Please note that this version has the potential to break some applications
that use null-terminated UCS-2 and UCS-4 encoded strings in order to fix a
potentially unbounded buffer over-read. Very few applications do this
however. For additional information please see "Upgrading from Aspell 0.60.7"
in the manual.
(http://aspell.net/man-html/Upgrading-from-Aspell-0_002e60_002e7.html)
Major changes from 0.60.7 to 0.68.8:
* Prevent a potentially unbounded buffer over-read by no longer
supporting null-terminated UCS-2 and UCS-4 encoded strings with the
original C API.
* Ensure that possible typos are listed before other suggestions when
typo analysis is used. Also fix a bug so that suggestions that
split a word using a space or hyphen are not always first.
* Add Markdown filter.
* Add new 'wordlists' option, which is a list of UTF-8 files that
contain additional words to accept.
* Add new 'camel-case' option, which enables support for checking
camelCase words.
* Sort personal and replacement dictionaries.
* Change 'ultra' suggestion mode to only find words that are within
one-edit distance or have the same soundslike.
Other changes from 0.60.7:
* Implement the 'aspell filter' command.
* Fix a bug in 'AspellDocumentChecker' that prevented it from working
with UCS-2 and UCS-4 encoded strings.
* Remove unused 'sug-edit-dist' option.
* 'AspellDocumentChecker' now expects the document a line at a time
in order to work with the new Markdown filter. If the document is
split on white space characters instead, nothing will break, but
new filters such as the Markdown filter may give incorrect results.
* The 'clean' option and command will no longer split a word.
* Various documentation improvements.
* Removal of several outdated appendices that don't really belong in
the main manual. Parts that are still relevent may eventually be
moved elsewhere, but for now they are available online at
<http://aspell.net/0.60.7/man-html/>.
* Fix various crashes and other problems found by Google's OSS-Fuzz.
- CPPFLAGS/LDFLAGS patch for rman Makefile added
- HOMEPAGE in package Makefile updated
- LICENSE added to package Makefile (Artistic 1.0)
- DESCR updated (program is now called PolyglotMan)
Version 3.0.4
* BUGFIX: Restricted mode strips out CSS attributes again.
* Update travis to more current versions and test against current Pillow version.
Pkgsrc changes:
* Renamed patches to follow new pkgsrc conventions.
* Oddly, the .tgz distfile isn't actually compressed. Compensate.
Upstream changes:
Release 1.51
============
Released 17.12.26.
Subversion directory release_number/10.51.00.
* Build: Add --disable-abyss-openssl for build environments that
appear to have Openssl but don't really. (A Pkg-config design
flaw makes that happen sometimes - you can't control what
directories it searches for .pc files).
* Windows build: add Visual Studio 2017 project files, fix various
things broken for Windows in recent updates. Thanks to Maksym
Veremeyenko.
Release 1.50
============
Released 17.09.28.
Subversion directory release_number/10.50.00.
* Build: fix installation of programs. Introduced in Xmlrpc-c
1.47 (September 2016).
* Windows build: fix ChanSwitchUnixGetListenName not found.
* Windows build: Add current VS2010express project files.
* Windows build: various fixes. Doesn't necessarily work yet.
Release 1.49
============
Released 17.03.26.
Subversion directory release_number/10.49.00.
* Add program xmlrpc_dumpserver.
Release 1.48
============
Released 16.12.27.
Subversion directory release_number/10.48.00.
* Disable 10M restriction on document size in Libxml2 XML parser.
* Build: Recognize additional Linux "host OS" environments. E.g.
"linux-uclibc".
* Build: replace BUILDTOOL_CC and BUILDTOOL_CCLD with more
conventional CC_FOR_BUILD. Add CFLAGS_FOR_BUILD, LDFLAGS_FOR_BUILD.
* Build: Don't attempt to build C++ internal utility module
cmdline_parser_cpp if we aren't building the C++ libraries. In
that case, 1) it isn't needed, and 2) the environment probably
is incapable of compiling C++.
* Build: Use AC_CHECK_TOOL to determine 'ar' command and
AC_PROG_RANLIB to determine 'ranlib' command to use.
* Build: fix compile failure in build for a system that does not
have Unicode wide characters (wchar_t).
Release 1.47
============
Released 16.09.25.
Subversion directory release_number/10.47.00.
* Install: fix bug: xmlrpc_expat.pc not installed.
* Install: Add 'uninstall' make target
Release 1.46
============
Released 16.06.29.
Subversion directory release_number/01.46.00.
* Packet stream client: Add option to throw a BrokenConnEx
exception when transport fails because the server hung up or
network broke, instead of throwing error.
* Add ServerAbyss::getListenName method, ChanSwitchUnixGetListeName:
ability to find out on what port your server is listening.
* Packet stream server ('serverPstreamConn'): fix bug: runOnce()
fails with indication that it was interrupted when the server
hangs up. Always broken (interruptible RunOnce() was new in
Xmlrpc-c 1.14 (March 2008).
* Fix compile failure with old OpenSSL that doesn't have
SSL_ERROR_WANT_ACCEPT. Introduced in Xmlrpc-c 1.45.
Release 1.45
============
Released 16.03.27.
Subversion directory release_number/01.45.00.
* Add SSL/TLS capability via OpenSSL to Abyss server.
* Fix xmlrpc_mem_block accidentally made private in 1.44.
* Build: Remove example and test program usage of XML parser
facility (<xmlrpc-c/xmlparser.h>), which was made private in
1.44, so the examples and tools no longer build.
Release 1.44
============
Released 15.12.31.
Subversion directory release_number/01.44.00.
* C++: Add 'toValue' and 'fromValue' for 64-bit integer
(xmlrpc_c::value_i8).
* Memory block utility: Remove xmlrpc_mem_block_init and
xmlrpc_mem_block_clean. These complicate forward compatibility
and probably were never used. xmlrpc_mem_block_new and
xmlrpc_mem_block_free remain to fulfill the same purpose.
* Remove XML parser (<xmlrpc-c/xmlparser.h>) from external API.
This is not specific to XML-RPC, so has no business being a
service of Xmlrpc-c. It is just an abstraction to allow us to
use various XML parsing libraries (to wit, Expat and Libxml2).
We don't think it was ever used externally.
* Build: make install does not create empty man page directory.
Release 1.43
============
Released 15.09.27.
Subversion directory release_number/01.43.00.
* Add xmlrpc_value_new(): deep copy of xmlrpc_value.
* Abyss C++: Add 'terminate' and 'resetTerminate' methods,
analogous to C Abyss 'ServerTerminate' and 'ServerResetTerminate'.
* Fix bug: infinite recursion if you try to format a floating
point value that was created from something other than a finite
number. Creation of a floating point XML-RPC value from something
other than a number now fails. Introduced in Xmlrpc-c 1.15
(June 2008).
* Curl client: fix garbage in message where explanation from Curl
library belongs. Always there, with some Curl libraries.
* Curl client: fix instantaneous timeout with some Curl libraries.
Introduced in Xmlrpc-c 1.41 (March 2015).
* Curl client: fix 'connect_timeout' transport parameter interpreted
as 'timeout'. Always broken ('connect_timeout' was new in
Xmlrpc-c 1.41 (March 2015)).
Release 1.42
============
Released 15.06.28.
Subversion directory release_number/01.42.00.
* AbysssServer: add 'Session::headerValue' and 'Session::getHeaderValue'.
* Fix crash in 'xmlrpc' program under most circumstances. Broken
in Xmlrpc-c 1.40 (December 2014).
* Packet socket: fix missing parenthesis in error message. Broken
in Xmlrpc-c 1.25 (December 2010).
Release 1.41
============
Released 15.03.26.
Subversion directory release_number/01.41.00.
* Fix crash: multithreaded client program that uses the Curl XML
transport and does not specify a Curl timeout transport parameter
crashes because of signal use inside the Curl library, unless
the Curl library is one that does DNS lookups with the ARES
library.
* Make a client that uses the Curl XML transport and does not
specify a Curl timeout transport parameter wait indefinitely
for a DNS lookup, or at least until the OS DNS lookup service
gives up, unless the Curl library is one that does DNS lookups
with the ARES library. In previous releases, the RPC failed
after waiting 5 minutes. This was not intended as an enhancement,
but rather is a side effect of fixing the crash described above.
But it also adds consistency, since the wait for the DNS lookup
was always indefinite, ironically, in the case that the program
specified timeout.
* Add connect_timeout curl transport parameter.
* Packet stream socket: fix: sends corrupted packet when the
packet contains an ESC character. Always broken. (packet stream
sockets were new in Xmlrpc-c 1.11 - June 2007).
* Add XMLRPC_TRACE_PACKETSOCKET environment variable: a means of
tracing communication at the packet socket level.
* Build: Use -pthread on compile and link instead of just linking
libpthread if compiler is GNU.
* Build: Don't rely on <features.h> to define __BEGIN_DECLS
* Build: don't ignore LDFLAGS in build of Gennmtab. Broken since
Xmlrpc-c 1.32 (September 2012).
* Many changes to accomodate Mingw. May not work completely yet.
* Build: fix a "recompile with -fPIC" failure in parallel make.
* Build: fix failure with configure --disable-abyss-threads.
Introduced in Xmlrpc-c 1.38 (March 2014).
Release 1.40
============
Released 14.12.28.
Subversion directory release_number/01.40.00.
* Fix AbyssServer::readRequestBody for chunked bodies. Always
broken (AbyssServer was new in Netpbm 1.39 (September 2014).
* Add pkg-config files (e.g. xmlrpc.pc)
* Build: fix 'make distclean' so it doesn't leave src/cpp/srcdir
and src/cpp/blddir.
Release 1.39
============
Released 14.09.27.
Subversion directory release_number/01.39.00.
* Add C++ Abyss server classes. Not documented yet.
* Abyss: with access control, send Access-Control-Allow-Headers
headers for Content-Type and Content-Length.
* Curl client: Fix bogus "please call curl_muti_perform()" error
with very old Curl library.
* Abyss: fix bug: RequestAuth() always says not authenticated.
Broken in 1.10 (March 2007).
* Abyss: fix missing prototype for RequestAuth(). Always broken.
* Install: fix bug: <xmlrpc-c/base64.hpp> not installed.
Release 1.38
============
Released 14.03.25.
Subversion directory release_number/01.38.00.
* Fix bug: When serializing a very large floating point number,
sender of an XML-RPC message adds some junk after the decimal
point. With assertion checking enabled, it just crashes. Broken
in 1.15 (June 2008).
* xmlrpc program: add ability to specify a struct or array RPC
parameter (struct/ and array/).
* Abyss: fix parsing of URI with %HH escape sequence - always
said invalid URI. Broken in 1.31 (June 2012).
* Abyss: Fail ServerRun() and ServerRunOnce() if user hasn't done
ServerInit() instead of trying to make the channel switch accept
a connection even though it isn't in listening state. Combined
with the two problems below, this caused POSIX socket servers
to go into an infinite loop if the user called ServerRun()
without a prior ServerInit().
* Abyss: Fail ChanSwitchAccept() if user hasn't done ChanSwitchListen()
instead of trying to make the OS do the accept.
* Abyss: Unix socket: Fix bug: POLLHUP and POLLERR state on
listening or interrupt socket caused accept function to return
as if the wait had simply been interrupted.
* Abyss: fix error HTTP response for invalid request line - showed
wrong request line. Always broken. (The request line in that
message was new in Xmlrpc-c 1.19 (June 2009).
* Abyss: add details to invalid request line error HTTP response.
* xmlrpc-c-config: add "abyss" target to get just the Abyss
library - no XML-RPC stuff.
Release 1.37
============
Released 13.12.31.
Subversion directory release_number/01.37.00.
* Abyss server: Fix bug: reported HTTP status 408 (Request timed
out) for all problems getting the request from the client. Also
add text detail of problems getting the request from the client
to the HTTP error response.
* Fix pervasive wild pointer dereference when memory allocation
of small string fails. Introduced in 1.01 (January 2005).
* Fixes for Windows build problems introduced in 1.33.
Release 1.36
============
Released 13.09.29.
Subversion directory release_number/01.36.00.
* C++ server: add versions of 'xmlrpc_c::registry::addMethod'
that takes a simple pointer to the method object, so you can
use it with automatic and static method objects. Same for
'xmlrpc_c::registry::setDefaultMethod'.
* Remove 128M limit on certain memory allocations.
* Change strategy for overallocating memory - grow blocks no more
than a megabyte at a time; shrink blocks sometimes.
* Fix interpretation of dateTime.iso8601 variant with timezone
information. As broken, it would add up to a second to the
correct datetime or reject the message claiming that it has
invalid syntax. Always broken (recognition of the timezone
variant was introduced in Xmlrpc-c 1.20 (September 2009).
* 'xmlrpc', 'xmlrpc_pstream', 'xmlrpc_parsecall': add ability to
display dateTime.iso8601.
* AIX build: various fixes.
* Windows build: fix reference to _snprintf; broke in Xmlrpc-c 1.34.
* Windows build: fix lock_windows.c so it compiles. File was new
in Xmlrpc-c 1.33 and never compiled. Fix girmem.cpp to use
lock_platform, etc. instead of pthreadx, which was removed in
Xmlrpc-c 1.33.
Release 1.35
============
Released 13.06.27.
Subversion directory release_number/01.35.00.
* Abyss: fix wrong peer address with Unix socket channel made
with ChannelUnixCreateFd(). Always broken (ability to get peer
address was added in Release 1.07 (October 2006)).
* JSON value formatting: Fix buffer overrun.
* Build: build 'configure' with Autoconf 2.69 (previously built
with 2.67).
Release 1.34
============
Released 13.03.30.
Subversion directory release_number/01.34.00
* Build: fix libpthread dependency bug introduced in 1.33.00.
* Test program build: include <unistd.h> instead of <sys/unistd.h>.
Release 1.33
============
Released 12.12.27.
Subversion directory release_number/01.33.00.
* Make xmlrpc_value thread-safe (after construction, when the
only modification allowed is to the reference count).
* Client with Curl transport: fix bug which disables interruption
unless you register a progress function for the transport.
Introduced in 1.24 (September 2010).
* Add xmlrpc_init(), xmlrpc_term().
* Server: fix method add failure when signature string contains
"I" (for 64 bit integer). Always broken (64 bit integer type
was new in Xmlrpc-c 1.07 (October 2006)).
* libxml2: fix memory leaks. Always broken (ability to use libxml2
was added in Release 1.00 (October 2004)).
* Abyss: Fix memory read through wild pointer upon interruption
of server. Probably harmless.
* Windows build: rename DLL configurations to avoid ambiguity
between DLL and static library builds.
Release 1.32
============
Released 12.09.28.
Subversion directory release_number/01.32.00.
* Abyss server: terminate sooner when the HTTP request handler
requests shutdown. Formerly, after e.g. a 'system.shutdown'
RPC, the server waited for the persistent TCP connections,
including the one in which the RPC transaction was transported,
to end (typically 15 seconds later). Now, it interrupts channel
reads and writes on all connections so they will notice they
are supposed to wind up and do so.
* Abyss server: add basic server operation tracing with
ABYSS_TRACE_SERVER environment variable.
* Abyss server, XML-RPC Abyss server: add control of number of
simultaneous connections and OS connection backlog.
* Use random salt in hash values in built-in XML parser. Without
this, a malicious user can create a putative XML-RPC call or
response that takes a long time to parse, thus using excessive
CPU resources. This code is adapted from true Expat's fix for
CVE-2012-0876 to XML-RPC's fork of Expat, by Tyler Hicks
<tyhicks@canonical.com>.
* Server: Fix crash when string value in parameter list contains
invalid UTF-8. Broken in 1.18 (March 2006). Diagnosed by Stephen
Hansen, Programmer <stephen@tlo.com>.
* Fix crash in built-in XML parser which causes a memory leak
when it can't get additional memory (re-allocation fails). This
code is adapted from true Expat's fix for CVE-2012-1148 to
XML-RPC's fork of Expat, by Tyler Hicks <tyhicks@canonical.com>.
* Build: fix build tree != source tree bug: no transport_config.mk.
Broken in 1.10 (March 2007).
* Windows build: properly export client class in xmlrpc-c_client++.dll.
By Maksym Veremeyenko <verem@m1stereo.tv>
* Build: don't build tools by default. Broken in 1.30 (March 2012).
* Build: fix up how LDFLAGS, CFLAGS, and CXXFLAGS (make variables)
are used. Deprecate LADD and CADD, which were meant for the
same thing.
* Build: fix make clean so it cleans src/cpp.
* Build: fix so build of test programs does not fail if you didn't
build client facilities.
* Build: fix 'check'. By Tyler Hicks <tyhicks@canonical.com>.
Release 1.31
============
Released 12.06.30.
Subversion directory release_number/01.31.00.
* Abyss XML-RPC server: make xmlrpc_server_abyss() fail instead
of exiting program when it can't bind and listen.
* Abyss server: Add ServerInit2() - fails instead of exiting
program if it can't bind and listen.
* Curl client XML transport: when server sends garbage instead
of valid HTTP response, put the garbage (which is often an
error message) in the error message.
* Add xmlrpc_read_datetime_8601(),
xmlrpc_c::value_datetime::iso8601Value().
* xmlrpc_c::value_datetime: add ability to construct from and
cast to xmlrpc_datetime.
* Fix crash due to bogus memory free when xmlrpc_parse_value()
fails. Broken in 1.07 (October 2006).
* Abyss server: Fix bug: rejects request with colons in the host
name (e.g. IPv6 address form "[::1]") as invalid.
* Curl client XML transport: Fix error message when servers
responds with non-HTTP garbage. Used to say HTTP response code
is zero.
* Curl client XML transport: fix occasional crash with modern
Curl introduced in 1.28.
* Abyss server: Fix crash when client doesn't specify access
control. Broken in 1.25 (December 2011).
* Abyss server: Improved formatting of IPv6 addresses for Abyss
"channel info.". Also no more build-time dependency on nonstandard
s6_addr16, introduced in 1.29.
* Windows: Remove #include <windows.h> from public header file
to avoid conflicts with other inclusions in user's program that
include other variations of <windows.h>. By Maksym Veremeyenko
<verem@m1stereo.tv>
* Install: fix install of man pages to wrong directory. Broken
in 1.18 (March 2009).
* Windows build: Fix winsock2 conflict.
Release 1.30
============
Released 12.03.31.
Subversion directory release_number/01.30.00.
* Add ability for Abyss and XML-RPC Abyss server to listen on a
particular interface (IP address).
* Abyss XML-RPC server: Fix bug in access control expiration.
* xmlrpc, xmlrpc_pstream client programs: fix bug in display of
unprintable ASCII as \xHH: shows \xff where it should be
something else.
* Windows Abyss: fix 16 byte per thread memory leak. Thanks Angelo Masci.
* Build: add missing include of <ostream> to base.hpp. Broken in 1.26.
* Build: remove --enable-tools option added in 1.18. User can
just do 'make -C tools ' or 'make all' to get that.
Release 1.29
============
Released 11.12.31.
Subversion directory release_number/01.29.00.
* Abyss: Add ChanSwitchUnixCreateIpV6Port: ability to listen for
client connections on an IP Version 6 TCP port.
* Curl client XML transport: Add 'referer' option.
* Improved invalid UTF-8 error message.
* xmlrpc client program: fix bug: doesn't accept b/f to mean
boolean false. Broken since 1.07.
* Fix crash when sending structure with a member value too large.
Introduced in 1.21.
* Fix Windows build, undefined macro XMLRPC_S_IWUSR introduced in 1.28.
Release 1.28
============
Released 11.09.27.
Subversion directory release_number/1.28.00.
* Curl client: add "gssapi_delegation" option. Needed in some
cases with newer Curl libraries to get back old function.
* Fix bug: infinite loop parsing XML when a string or character
data is longer than 1K in UTF-8. Introduced in 1.12.
* Curl client: fix libcurl version in user-agent header. Always
broken (user-agent function added in Release 1.03).
* Client curl transport: fix bug: multiple authentication methods
doesn't work; only one of them takes effect. Always broken.
* C++ Curl client: fix bug: ignores proxy Curl transport options.
Always broken.
* Windows: Add VS2008 64 bit static library building. Remove MSVC
6 project files. From now on, VS2008 will be the standard. The
single set of project files build static and DLL, 32 bit and
64.
* Accomodate newer libcurl, which does not have <curl/types.h>.
* Fix per-connection memory leak in libwww client XML transport.
Present since the beginning.
* Build: fix some parallel make forced ordering.
* Build with --disable-abyss-threads: include <sys/wait.h> instead
of <wait.h> in Abyss thread_fork.c.
* Build of test programs: Fix "struct sockaddr_in" not defined
in server_pstream.cpp.
* Build: fix undeclared struct timespec.
* Build: Work with systems that don't define S_IREAD in <sys/stat.h>.
* C++: Reorder arrayValueSlice() and arrayValueAvrray() definitions
in <xmlrpc-c/base.hpp> to please Clang.
Release 1.27
============
Released 11.06.27.
Subversion directory release_number/1.27.00.
* Many changes to accomodate Mingw. May not work completely yet.
By Maksym Veremeyenko <verem@m1stereo.tv>.
* Windows build: update non-DLL project files to accomodate recent
changes to tree. By Maksym Veremeyenko <verem@m1stereo.tv>.
* Windows build: add missing DLLEXPORT to some class declarations
so user programs build. By Maksym Veremeyenko <verem@m1stereo.tv>.
* Build: Fix detection of libwww, broken in 1.24.
* Build: Don't use trailing comma in enum; not accepted by some
C++ compilers.
* Build: Add a user-defined default constructor for class callInfo
to avoid compilation failure with recent GNU compilers.
* Mac OS X build: include -install_name on library link so
dependents can find it automatically. Thanks Joshua Root
(jmr@macports.org).
Release 1.26
============
Released 11.03.26.
Subversion directory release_number/1.26.00.
* Add output operator (operator<<) for xmlrpc-c::value::type_t.
* JSON serializer: eliminate trailing commas that Internet Explorer
doesn't like. Thanks Bo Lorentzen <bl@lue.dk>.
* JSON serializer: improve human readability of JSON. Thanks Bo
Lorentzen <bl@lue.dk>.
* Fix JSON integer parsing and formatting broken in 1.25.
* Build: Fix prototype/definition mismatch in libwww.cpp with
some compilers (e.g. Solaris).
* Build: Fix linking of xml-rpc-api2cpp with some linkers (e.g. Solaris).
* Don't assume that "char" is signed (array init'ed with -1 cells),
so use "int" instead.
* Add dependency on libidn2, since I otherwise got a link error.
Bump PKGREVISION.
Some of the changes since 3.2.3:
April 2003 - V4.0.0
o Support for XML DocBook output.
o A new tool, robohdrs, is included -- it can insert empty headers
in the source code.
o Support for cascading style sheets (CSS) in HTML mode.
o Complete rework of the commandline interface.
o ROBODoc can now work with directories and subdirectories,
and does not need xref files anymore.
o All documentation can be created with a single command, you
no longer need a makefile to create your documentation.
o The manual is now in docbook format and much more extensive.
o Lots of refactoring, code should be easier to extend and understand
now.
o There is now some design documentation.
o Support for single file and multiple file documentation.
o Dropped support for Amiga Guide format.
o More unittests.
o Support for packaging under RedHat and OS-X
o C++ and C examples have been removed.