Loading CMakeLists.txt +111 −54 Original line number Diff line number Diff line Loading @@ -420,6 +420,31 @@ if(WITH_EXPAT) message(FATAL_ERROR "The include directory specified for Expat appears to be invalid. It should contain the file expat.h, but it does not.") else() if (LIBEXPAT_INCLUDE_DIR AND EXISTS "${LIBEXPAT_INCLUDE_DIR}/expat.h") file(STRINGS "${LIBEXPAT_INCLUDE_DIR}/expat.h" expat_version_str REGEX "^#[\t ]*define[\t ]+XML_(MAJOR|MINOR|MICRO)_VERSION[\t ]+[0-9]+$") unset(EXPAT_VERSION_STRING) foreach(VPART MAJOR MINOR MICRO) foreach(VLINE ${expat_version_str}) if(VLINE MATCHES "^#[\t ]*define[\t ]+XML_${VPART}_VERSION[\t ]+([0-9]+)$") set(EXPAT_VERSION_PART "${CMAKE_MATCH_1}") if(EXPAT_VERSION_STRING) set(EXPAT_VERSION_STRING "${EXPAT_VERSION_STRING}.${EXPAT_VERSION_PART}") else() set(EXPAT_VERSION_STRING "${EXPAT_VERSION_PART}") endif() endif() endforeach() endforeach() if (EXPAT_VERSION_STRING VERSION_LESS 1.95.9) message(FATAL_ERROR "Expat version ${EXPAT_VERSION_STRING} is not compatible with libSBML. Please use a version newer than 1.95.8 or an alternate XML parser.") endif() endif() endif() endif(WITH_EXPAT) Loading Loading @@ -494,6 +519,39 @@ if(WITH_XERCES) DOC "The directory containing the Xerces include files." ) if (EXISTS "${XERCES_INCLUDE_DIR}/xercesc/util/XercesVersion.hpp") function(_myXercesC_GET_VERSION version_hdr) file(STRINGS ${version_hdr} _contents REGEX "^[ \t]*#define XERCES_VERSION_.*") if(_contents) string(REGEX REPLACE ".*#define XERCES_VERSION_MAJOR[ \t]+([0-9]+).*" "\\1" XercesC_MAJOR "${_contents}") string(REGEX REPLACE ".*#define XERCES_VERSION_MINOR[ \t]+([0-9]+).*" "\\1" XercesC_MINOR "${_contents}") string(REGEX REPLACE ".*#define XERCES_VERSION_REVISION[ \t]+([0-9]+).*" "\\1" XercesC_PATCH "${_contents}") if(NOT XercesC_MAJOR MATCHES "^[0-9]+$") message(FATAL_ERROR "Version parsing failed for XERCES_VERSION_MAJOR!") endif() if(NOT XercesC_MINOR MATCHES "^[0-9]+$") message(FATAL_ERROR "Version parsing failed for XERCES_VERSION_MINOR!") endif() if(NOT XercesC_PATCH MATCHES "^[0-9]+$") message(FATAL_ERROR "Version parsing failed for XERCES_VERSION_REVISION!") endif() set(XercesC_VERSION "${XercesC_MAJOR}.${XercesC_MINOR}.${XercesC_PATCH}" PARENT_SCOPE) else() message(FATAL_ERROR "Include file ${version_hdr} does not exist or does not contain expected version information") endif() endfunction() _myXercesC_GET_VERSION("${XERCES_INCLUDE_DIR}/xercesc/util/XercesVersion.hpp") if (XercesC_VERSION VERSION_EQUAL 2.6.0) message(FATAL_ERROR "Xerces version ${XercesC_VERSION} contains known bugs and is not compatible with libSBML. Please use a newer version of Xerces or an alternate XML parser.") endif() endif () set(LIBSBML_XML_LIBRARY "xerces-c") set(LIBSBML_XML_LIBRARY_INCLUDE ${XERCES_INCLUDE_DIR}) set(LIBSBML_XML_LIBRARY_LIBS ${XERCES_LIBRARY}) Loading @@ -507,7 +565,6 @@ it does not.") endif(WITH_XERCES) ############################################################################### # # Locate bz2 Loading Loading @@ -953,7 +1010,7 @@ else(UNIX) NAMES vld.h PATHS ${LIBSBML_DEPENDENCY_DIR}/include "$ENV{PROGRAMFILES}/Visual Leak Detector/include" "$ENV{PROGRAMFILES(X86)}/Visual Leak Detector/include" "$ENV{ProgramW6432}/Visual Leak Detector/include" DOC "Directory containing VLD files." ) if (NOT VLD_INCLUDE_DIR) Loading Makefile.in +2 −0 Original line number Diff line number Diff line Loading @@ -259,6 +259,7 @@ examples = \ examples/perl/printUnits.pl \ examples/perl/promoteParameters.pl \ examples/perl/readSBML.pl \ examples/perl/renameSId.pl \ examples/perl/translateMath.pl \ examples/perl/unsetAnnotation.pl \ examples/perl/unsetNotes.pl \ Loading Loading @@ -286,6 +287,7 @@ examples = \ examples/python/printUnits.py \ examples/python/promoteParameters.py \ examples/python/readSBML.py \ examples/python/stringInput.py \ examples/python/setIdFromNames.py \ examples/python/translateMath.py \ examples/python/unsetAnnotation.py \ Loading NEWS.txt +152 −0 Original line number Diff line number Diff line libSBML NEWS -- History of user-visible changes ==================================================================== 5.16.0 (2017-12-07) ==================================================================== STABLE RELEASE * Note The L3 Render Package has been approved by the SBML Editors, but approval came too late in the libSBML release cycle to include it in this stable release of libSBML. There are now two implementations of support for SBML Level 3 Version 2 Core. The libSBML code for L3V2 can now be considered stable and will only change for bug fixes. * New features - The MATLAB interface now supports both the 'qual' and 'groups' packages, in addition to 'fbc'. - Unit checking has been expanded to include checking the <math> of <trigger>, <constraint> and <stoichiometryMath> to at least allow detection of values with undeclared units. - Writing out an XMLNode that represented XHTML with multiple nested text elements could distrupt indentation (see bug fixes). A new function XMLNode::writeToStream(XMLOutputStream&) checks the indentation is correctly recovered after writing out the XMLNode. - 'comp' package-specific updates: - There has been some improvements made to the reporting of line numbers for errors and warnings. * Bug fixes - SF Tracker #450: Code validating the shadowing of localParameter was checking both 'id' and 'species' attributes. This rule should only check the species attribute. - SBML validation failed to distinguish between LocalParameters and Parameters in L3V1 when reporting errors. This is fixed. - libSBML had incorrectly reported that the 'fast' attribute was a required attribute of L3V2 <reaction> elements. This is fixed. - The libSBML C API does not work with default arguments. There were previously a few stray ones left in the API code. These have been removed. - The SBMLTransforms::evaluateASTNode function previously failed to check that model values had been evaluated prior to trying to evaluate an ASTNode. The relevant function now checks whether the map of values is present and populates it, if necessary. - Code that checked the syntax for attributes of type ID and IDREF did not always use the appropriate function. These cases have been fixed. - The use of an invalid syntax as the sbml:units attribute on a math <cn> element was not being detected. This has been fixed. Thanks to Nicolas Rodriguez for the report. - The SBMLTransforms::evaluateASTNode function missed the fact that in SBML Level 2, stoichiometry defaulted to '1'. This has been corrected. - The use of certain combinations of text elements in a <notes> element could derail the entire indentation of the document. This has been reported by several people. Hopefully this time we have fixed the situation for all cases where it may occur. - The interactive help text stored with the functions and classes in the Python bindings had many formatting problems and outright omissions due to bugs in our "rewrite_pydoc.py" code. Many of these problems should be fixed now. - 'fbc' package-specific bug fixes: - Validation incorrectly reported an empty <listOfFluxObjectives> even when a model was being created and did in fact have a <fluxObjective> element. This has been fixed. Thanks to Arthur Goldberg for reporting it. - An empty <geneProductAssociation> caused the reading of model files to crash libSBML. This no longer happens. - 'layout' package-specific bug fixes: - Conversion between Level 2 annotations using both layout and render and Level 3 packages has been corrected. - 'qual' package-specific bug fixes: - Functions to get math on a <functionTerm> element were missing from the C API. They have been added. * Configuration/build system changes - SourceForge Tracker item #447: Configuration no longer defines HAVE_IEEEFP_H when using MSVC compilers as it is not needed and not always present. Thanks to Alan Garny for spotting this. - SourceForge Tracker item #443 & separate unreported problems: Build failures with Java 9 should be fixed now. Thanks to Chris West for reporting the issue related to building the docs. * Miscellaneous - SWIG only supports Javascript node 6x. Thus we cannot currently support later versions of node. - Documentation for the C API has been extensively improved. - Support has been added for Python 2 unicode input. - Currently we supply lib files built with MSVC2010 as part of the windows installers. These will be removed from future releases. Please let us know if this is an issue for you. EXPERIMENTAL RELEASE * New features - 'render' package-specific updates: - At the request of the SBMLEditors the attribute 'name' has been added to render elements. * Bug fixes - 'render' package-specific bug fixes: - Conversion between Level 2 annotations using both layout and render and Level 3 packages has been corrected. - 'spatial' package-specific bug fixes: - There was a mismatch in the SetOperation enumeration in the specification. This has been agreed as 'union', 'intersection' and 'difference' and libSBML code has changed to reflect this. - Corrected the output of a <csGeometry> element to correctly use an upper case G. ==================================================================== 5.15.2 (2017-07-27) ==================================================================== Loading README.txt +4 −18 Original line number Diff line number Diff line Loading @@ -288,16 +288,12 @@ experienced the issue and offer a workaround more quickly than the libSBML developers can respond. 5. MAILING LISTS 5. FORUMS AND MAILING LISTS ====================================================================== There are two kinds of mailing lists available: normal discussion lists for humans, and a SVN change notification list. Discussion lists ---------------- All discussion lists, their web interfaces and their RSS feeds are at There are different forums/mailing lists available for SBML. Most are hosted by Google Groups; a few legacy lists are still operated as SourceForge mailing lists. You can find a list of all of them here: http://sbml.org/Forums/ Loading @@ -316,16 +312,6 @@ of libsbml-development will enable you to keep in touch with the latest developments in libSBML as well as to ask questions and share your experiences with fellow developers and users of libSBML. SVN notification ---------------- If you are obtaining your libSBML files from SVN, you may wish to subscribe to the mailing list sbml-svn, to be apprised of changes to the SVN repository as soon as they are committed. You can join the list by visiting the following URL: https://lists.sourceforge.net/lists/listinfo/sbml-svn 6. LICENSING AND DISTRIBUTION ====================================================================== Loading VERSION.txt +1 −1 Original line number Diff line number Diff line 5.15.2 5.16.0 Loading
CMakeLists.txt +111 −54 Original line number Diff line number Diff line Loading @@ -420,6 +420,31 @@ if(WITH_EXPAT) message(FATAL_ERROR "The include directory specified for Expat appears to be invalid. It should contain the file expat.h, but it does not.") else() if (LIBEXPAT_INCLUDE_DIR AND EXISTS "${LIBEXPAT_INCLUDE_DIR}/expat.h") file(STRINGS "${LIBEXPAT_INCLUDE_DIR}/expat.h" expat_version_str REGEX "^#[\t ]*define[\t ]+XML_(MAJOR|MINOR|MICRO)_VERSION[\t ]+[0-9]+$") unset(EXPAT_VERSION_STRING) foreach(VPART MAJOR MINOR MICRO) foreach(VLINE ${expat_version_str}) if(VLINE MATCHES "^#[\t ]*define[\t ]+XML_${VPART}_VERSION[\t ]+([0-9]+)$") set(EXPAT_VERSION_PART "${CMAKE_MATCH_1}") if(EXPAT_VERSION_STRING) set(EXPAT_VERSION_STRING "${EXPAT_VERSION_STRING}.${EXPAT_VERSION_PART}") else() set(EXPAT_VERSION_STRING "${EXPAT_VERSION_PART}") endif() endif() endforeach() endforeach() if (EXPAT_VERSION_STRING VERSION_LESS 1.95.9) message(FATAL_ERROR "Expat version ${EXPAT_VERSION_STRING} is not compatible with libSBML. Please use a version newer than 1.95.8 or an alternate XML parser.") endif() endif() endif() endif(WITH_EXPAT) Loading Loading @@ -494,6 +519,39 @@ if(WITH_XERCES) DOC "The directory containing the Xerces include files." ) if (EXISTS "${XERCES_INCLUDE_DIR}/xercesc/util/XercesVersion.hpp") function(_myXercesC_GET_VERSION version_hdr) file(STRINGS ${version_hdr} _contents REGEX "^[ \t]*#define XERCES_VERSION_.*") if(_contents) string(REGEX REPLACE ".*#define XERCES_VERSION_MAJOR[ \t]+([0-9]+).*" "\\1" XercesC_MAJOR "${_contents}") string(REGEX REPLACE ".*#define XERCES_VERSION_MINOR[ \t]+([0-9]+).*" "\\1" XercesC_MINOR "${_contents}") string(REGEX REPLACE ".*#define XERCES_VERSION_REVISION[ \t]+([0-9]+).*" "\\1" XercesC_PATCH "${_contents}") if(NOT XercesC_MAJOR MATCHES "^[0-9]+$") message(FATAL_ERROR "Version parsing failed for XERCES_VERSION_MAJOR!") endif() if(NOT XercesC_MINOR MATCHES "^[0-9]+$") message(FATAL_ERROR "Version parsing failed for XERCES_VERSION_MINOR!") endif() if(NOT XercesC_PATCH MATCHES "^[0-9]+$") message(FATAL_ERROR "Version parsing failed for XERCES_VERSION_REVISION!") endif() set(XercesC_VERSION "${XercesC_MAJOR}.${XercesC_MINOR}.${XercesC_PATCH}" PARENT_SCOPE) else() message(FATAL_ERROR "Include file ${version_hdr} does not exist or does not contain expected version information") endif() endfunction() _myXercesC_GET_VERSION("${XERCES_INCLUDE_DIR}/xercesc/util/XercesVersion.hpp") if (XercesC_VERSION VERSION_EQUAL 2.6.0) message(FATAL_ERROR "Xerces version ${XercesC_VERSION} contains known bugs and is not compatible with libSBML. Please use a newer version of Xerces or an alternate XML parser.") endif() endif () set(LIBSBML_XML_LIBRARY "xerces-c") set(LIBSBML_XML_LIBRARY_INCLUDE ${XERCES_INCLUDE_DIR}) set(LIBSBML_XML_LIBRARY_LIBS ${XERCES_LIBRARY}) Loading @@ -507,7 +565,6 @@ it does not.") endif(WITH_XERCES) ############################################################################### # # Locate bz2 Loading Loading @@ -953,7 +1010,7 @@ else(UNIX) NAMES vld.h PATHS ${LIBSBML_DEPENDENCY_DIR}/include "$ENV{PROGRAMFILES}/Visual Leak Detector/include" "$ENV{PROGRAMFILES(X86)}/Visual Leak Detector/include" "$ENV{ProgramW6432}/Visual Leak Detector/include" DOC "Directory containing VLD files." ) if (NOT VLD_INCLUDE_DIR) Loading
Makefile.in +2 −0 Original line number Diff line number Diff line Loading @@ -259,6 +259,7 @@ examples = \ examples/perl/printUnits.pl \ examples/perl/promoteParameters.pl \ examples/perl/readSBML.pl \ examples/perl/renameSId.pl \ examples/perl/translateMath.pl \ examples/perl/unsetAnnotation.pl \ examples/perl/unsetNotes.pl \ Loading Loading @@ -286,6 +287,7 @@ examples = \ examples/python/printUnits.py \ examples/python/promoteParameters.py \ examples/python/readSBML.py \ examples/python/stringInput.py \ examples/python/setIdFromNames.py \ examples/python/translateMath.py \ examples/python/unsetAnnotation.py \ Loading
NEWS.txt +152 −0 Original line number Diff line number Diff line libSBML NEWS -- History of user-visible changes ==================================================================== 5.16.0 (2017-12-07) ==================================================================== STABLE RELEASE * Note The L3 Render Package has been approved by the SBML Editors, but approval came too late in the libSBML release cycle to include it in this stable release of libSBML. There are now two implementations of support for SBML Level 3 Version 2 Core. The libSBML code for L3V2 can now be considered stable and will only change for bug fixes. * New features - The MATLAB interface now supports both the 'qual' and 'groups' packages, in addition to 'fbc'. - Unit checking has been expanded to include checking the <math> of <trigger>, <constraint> and <stoichiometryMath> to at least allow detection of values with undeclared units. - Writing out an XMLNode that represented XHTML with multiple nested text elements could distrupt indentation (see bug fixes). A new function XMLNode::writeToStream(XMLOutputStream&) checks the indentation is correctly recovered after writing out the XMLNode. - 'comp' package-specific updates: - There has been some improvements made to the reporting of line numbers for errors and warnings. * Bug fixes - SF Tracker #450: Code validating the shadowing of localParameter was checking both 'id' and 'species' attributes. This rule should only check the species attribute. - SBML validation failed to distinguish between LocalParameters and Parameters in L3V1 when reporting errors. This is fixed. - libSBML had incorrectly reported that the 'fast' attribute was a required attribute of L3V2 <reaction> elements. This is fixed. - The libSBML C API does not work with default arguments. There were previously a few stray ones left in the API code. These have been removed. - The SBMLTransforms::evaluateASTNode function previously failed to check that model values had been evaluated prior to trying to evaluate an ASTNode. The relevant function now checks whether the map of values is present and populates it, if necessary. - Code that checked the syntax for attributes of type ID and IDREF did not always use the appropriate function. These cases have been fixed. - The use of an invalid syntax as the sbml:units attribute on a math <cn> element was not being detected. This has been fixed. Thanks to Nicolas Rodriguez for the report. - The SBMLTransforms::evaluateASTNode function missed the fact that in SBML Level 2, stoichiometry defaulted to '1'. This has been corrected. - The use of certain combinations of text elements in a <notes> element could derail the entire indentation of the document. This has been reported by several people. Hopefully this time we have fixed the situation for all cases where it may occur. - The interactive help text stored with the functions and classes in the Python bindings had many formatting problems and outright omissions due to bugs in our "rewrite_pydoc.py" code. Many of these problems should be fixed now. - 'fbc' package-specific bug fixes: - Validation incorrectly reported an empty <listOfFluxObjectives> even when a model was being created and did in fact have a <fluxObjective> element. This has been fixed. Thanks to Arthur Goldberg for reporting it. - An empty <geneProductAssociation> caused the reading of model files to crash libSBML. This no longer happens. - 'layout' package-specific bug fixes: - Conversion between Level 2 annotations using both layout and render and Level 3 packages has been corrected. - 'qual' package-specific bug fixes: - Functions to get math on a <functionTerm> element were missing from the C API. They have been added. * Configuration/build system changes - SourceForge Tracker item #447: Configuration no longer defines HAVE_IEEEFP_H when using MSVC compilers as it is not needed and not always present. Thanks to Alan Garny for spotting this. - SourceForge Tracker item #443 & separate unreported problems: Build failures with Java 9 should be fixed now. Thanks to Chris West for reporting the issue related to building the docs. * Miscellaneous - SWIG only supports Javascript node 6x. Thus we cannot currently support later versions of node. - Documentation for the C API has been extensively improved. - Support has been added for Python 2 unicode input. - Currently we supply lib files built with MSVC2010 as part of the windows installers. These will be removed from future releases. Please let us know if this is an issue for you. EXPERIMENTAL RELEASE * New features - 'render' package-specific updates: - At the request of the SBMLEditors the attribute 'name' has been added to render elements. * Bug fixes - 'render' package-specific bug fixes: - Conversion between Level 2 annotations using both layout and render and Level 3 packages has been corrected. - 'spatial' package-specific bug fixes: - There was a mismatch in the SetOperation enumeration in the specification. This has been agreed as 'union', 'intersection' and 'difference' and libSBML code has changed to reflect this. - Corrected the output of a <csGeometry> element to correctly use an upper case G. ==================================================================== 5.15.2 (2017-07-27) ==================================================================== Loading
README.txt +4 −18 Original line number Diff line number Diff line Loading @@ -288,16 +288,12 @@ experienced the issue and offer a workaround more quickly than the libSBML developers can respond. 5. MAILING LISTS 5. FORUMS AND MAILING LISTS ====================================================================== There are two kinds of mailing lists available: normal discussion lists for humans, and a SVN change notification list. Discussion lists ---------------- All discussion lists, their web interfaces and their RSS feeds are at There are different forums/mailing lists available for SBML. Most are hosted by Google Groups; a few legacy lists are still operated as SourceForge mailing lists. You can find a list of all of them here: http://sbml.org/Forums/ Loading @@ -316,16 +312,6 @@ of libsbml-development will enable you to keep in touch with the latest developments in libSBML as well as to ask questions and share your experiences with fellow developers and users of libSBML. SVN notification ---------------- If you are obtaining your libSBML files from SVN, you may wish to subscribe to the mailing list sbml-svn, to be apprised of changes to the SVN repository as soon as they are committed. You can join the list by visiting the following URL: https://lists.sourceforge.net/lists/listinfo/sbml-svn 6. LICENSING AND DISTRIBUTION ====================================================================== Loading