Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package maeparser for openSUSE:Factory checked in at 2026-06-30 15:12:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/maeparser (Old) and /work/SRC/openSUSE:Factory/.maeparser.new.11887 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "maeparser" Tue Jun 30 15:12:17 2026 rev:4 rq:1362504 version:1.3.3 Changes: -------- --- /work/SRC/openSUSE:Factory/maeparser/maeparser.changes 2023-02-02 18:28:18.191435348 +0100 +++ /work/SRC/openSUSE:Factory/.maeparser.new.11887/maeparser.changes 2026-06-30 15:12:52.158895960 +0200 @@ -1,0 +2,11 @@ +Thu May 14 11:37:26 UTC 2026 - Friedrich Haubensak <[email protected]> + +- Update to version 1.3.3 + * 1.3.3 release: + - Read .mae files with empty blocks + * 1.3.2 release: + - Make the boost::iostreams dependency option optional +- Add maeparser-1.3.3-cmake.patch: upstream improvements, made + after release, to cmake files + +------------------------------------------------------------------- Old: ---- maeparser-1.3.1.tar.gz New: ---- maeparser-1.3.3-cmake.patch maeparser-1.3.3.tar.gz ----------(New B)---------- New: - Make the boost::iostreams dependency option optional - Add maeparser-1.3.3-cmake.patch: upstream improvements, made after release, to cmake files ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ maeparser.spec ++++++ --- /var/tmp/diff_new_pack.80eayB/_old 2026-06-30 15:12:52.646912475 +0200 +++ /var/tmp/diff_new_pack.80eayB/_new 2026-06-30 15:12:52.646912475 +0200 @@ -1,7 +1,7 @@ # # spec file for package maeparser # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2026 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,12 +18,13 @@ %define abiver 1 Name: maeparser -Version: 1.3.1 +Version: 1.3.3 Release: 0 Summary: Maestro file parser License: MIT URL: https://github.com/schrodinger/maeparser Source: https://github.com/schrodinger/maeparser/archive/v%{version}/%{name}-%{version}.tar.gz +Patch: maeparser-1.3.3-cmake.patch BuildRequires: c++_compiler BuildRequires: cmake BuildRequires: libboost_filesystem-devel @@ -77,7 +78,6 @@ %license LICENSE.txt %doc README.md %{_includedir}/maeparser -%{_libdir}/cmake/maeparser-config.cmake -%{_libdir}/cmake/maeparser-config-relwithdebinfo.cmake +%{_libdir}/cmake/maeparser %{_libdir}/libmaeparser.so ++++++ maeparser-1.3.3-cmake.patch ++++++ commits to https://github.com/schrodinger/maeparser after release --- a/CMakeLists.txt 2025-06-06 22:24:00.000000000 +0200 +++ b/CMakeLists.txt 2026-03-07 12:18:00.000000000 +0100 @@ -1,7 +1,7 @@ set (CMAKE_CXX_STANDARD 11) cmake_minimum_required(VERSION 3.12) -project(maeparser) +project(maeparser VERSION 1.3.3) option(MAEPARSER_RIGOROUS_BUILD "Abort the build if the compiler issues any warnings" OFF ) option(MAEPARSER_BUILD_TESTS "Whether test executables should be built" ON) @@ -54,12 +54,12 @@ message(STATUS "Using zlib library for iostreams dependency.") endif(Boost_ZLIB_FOUND) - target_link_libraries(maeparser ${boost_libs}) -endif(MAEPARSER_BOOST_IOSTREAMS_SUPPORT) + target_link_libraries(maeparser PRIVATE ${boost_libs}) +endif(MAEPARSER_USE_BOOST_IOSTREAMS) SET_TARGET_PROPERTIES (maeparser PROPERTIES - VERSION 1.3.3 + VERSION ${PROJECT_VERSION} SOVERSION 1 ) @@ -82,7 +82,13 @@ INSTALL(EXPORT maeparser-targets FILE ${PROJECT_NAME}-config.cmake - DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/maeparser) + +include(CMakePackageConfigHelpers) +write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake + COMPATIBILITY AnyNewerVersion) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/maeparser) file(GLOB mae_headers "*.hpp") install(FILES ${mae_headers} DESTINATION include/maeparser) ++++++ maeparser-1.3.1.tar.gz -> maeparser-1.3.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maeparser-1.3.1/CMakeLists.txt new/maeparser-1.3.3/CMakeLists.txt --- old/maeparser-1.3.1/CMakeLists.txt 2023-02-01 20:22:56.000000000 +0100 +++ new/maeparser-1.3.3/CMakeLists.txt 2025-06-06 22:24:27.000000000 +0200 @@ -1,11 +1,12 @@ set (CMAKE_CXX_STANDARD 11) -cmake_minimum_required(VERSION 3.5) +cmake_minimum_required(VERSION 3.12) project(maeparser) option(MAEPARSER_RIGOROUS_BUILD "Abort the build if the compiler issues any warnings" OFF ) option(MAEPARSER_BUILD_TESTS "Whether test executables should be built" ON) option(MAEPARSER_BUILD_SHARED_LIBS "Build maeparser as a shared library (turn off for a static one)" ON) +option(MAEPARSER_USE_BOOST_IOSTREAMS "Build maeparser with boost::iostreams" ON) if(MSVC) # C4251 disables warnings for export STL containers as arguments (returning a vector of things) @@ -37,25 +38,28 @@ target_compile_definitions(maeparser PRIVATE "STATIC_MAEPARSER") endif(MAEPARSER_BUILD_SHARED_LIBS) -find_package(Boost COMPONENTS iostreams REQUIRED) -include_directories(${Boost_INCLUDE_DIRS}) -set(boost_libs ${Boost_LIBRARIES}) - -find_package(Boost COMPONENTS zlib QUIET) -if(Boost_ZLIB_FOUND) - set(boost_libs ${boost_libs} ${Boost_LIBRARIES}) - message(STATUS "Using Boost zlib module for iostreams dependency.") -else(Boost_ZLIB_FOUND) - find_package(ZLIB REQUIRED) - set(boost_libs ${boost_libs} ${ZLIB_LIBRARIES}) - message(STATUS "Using zlib library for iostreams dependency.") -endif(Boost_ZLIB_FOUND) +if(MAEPARSER_USE_BOOST_IOSTREAMS) + find_package(Boost COMPONENTS iostreams REQUIRED) + include_directories(${Boost_INCLUDE_DIRS}) + set(boost_libs ${Boost_LIBRARIES}) + target_compile_definitions(maeparser PRIVATE "MAEPARSER_HAVE_BOOST_IOSTREAMS") + + find_package(Boost COMPONENTS zlib QUIET) + if(Boost_ZLIB_FOUND) + set(boost_libs ${boost_libs} ${Boost_LIBRARIES}) + message(STATUS "Using Boost zlib module for iostreams dependency.") + else(Boost_ZLIB_FOUND) + find_package(ZLIB REQUIRED) + set(boost_libs ${boost_libs} ZLIB::ZLIB) + message(STATUS "Using zlib library for iostreams dependency.") + endif(Boost_ZLIB_FOUND) -target_link_libraries(maeparser ${boost_libs}) + target_link_libraries(maeparser ${boost_libs}) +endif(MAEPARSER_BOOST_IOSTREAMS_SUPPORT) SET_TARGET_PROPERTIES (maeparser PROPERTIES - VERSION 1.3.1 + VERSION 1.3.3 SOVERSION 1 ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maeparser-1.3.1/MaeParser.cpp new/maeparser-1.3.3/MaeParser.cpp --- old/maeparser-1.3.1/MaeParser.cpp 2023-02-01 20:22:56.000000000 +0100 +++ new/maeparser-1.3.3/MaeParser.cpp 2025-06-06 22:24:27.000000000 +0200 @@ -294,7 +294,7 @@ std::string MaeParser::blockBeginning(int* indexed) { - *indexed = 0; + *indexed = -1; char* save = m_buffer.current; if (!property_key_author_name(m_buffer, save)) { @@ -361,14 +361,14 @@ } }; - int indexed = 0; + int indexed = -1; for (advance(); *m_buffer.current != '}'; advance()) { - std::string name = blockBeginning(&indexed); - if (indexed) { - indexed_block_parser->parse(name, indexed, m_buffer); - } else { - auto sub_block = blockBody(name); + std::string subblock_name = blockBeginning(&indexed); + if (indexed < 0) { // Not an indexed block + auto sub_block = blockBody(subblock_name); block->addBlock(std::move(sub_block)); + } else { + indexed_block_parser->parse(subblock_name, indexed, m_buffer); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maeparser-1.3.1/Reader.cpp new/maeparser-1.3.3/Reader.cpp --- old/maeparser-1.3.1/Reader.cpp 2023-02-01 20:22:56.000000000 +0100 +++ new/maeparser-1.3.3/Reader.cpp 2025-06-06 22:24:27.000000000 +0200 @@ -1,9 +1,11 @@ #include "Reader.hpp" #include <boost/algorithm/string/predicate.hpp> +#ifdef MAEPARSER_HAVE_BOOST_IOSTREAMS #include <boost/iostreams/device/file.hpp> #include <boost/iostreams/filter/gzip.hpp> #include <boost/iostreams/filtering_stream.hpp> +#endif #include <fstream> #include <iostream> @@ -11,8 +13,10 @@ #include <utility> using boost::algorithm::ends_with; +#ifdef MAEPARSER_HAVE_BOOST_IOSTREAMS using boost::iostreams::file_source; using boost::iostreams::filtering_istream; +#endif namespace schrodinger { @@ -35,10 +39,17 @@ std::shared_ptr<std::istream> stream; if (ends_with(fname, ".maegz") || ends_with(fname, ".mae.gz")) { +#ifdef MAEPARSER_HAVE_BOOST_IOSTREAMS auto* gzip_stream = new filtering_istream(); gzip_stream->push(boost::iostreams::gzip_decompressor()); gzip_stream->push(file_source(fname, ios_mode)); stream.reset(static_cast<std::istream*>(gzip_stream)); +#else + std::stringstream ss; + ss << "Unable to open " << fname << " for reading, " + << "as maeparser was compiled without boost::iostreams support"; + throw std::runtime_error(ss.str()); +#endif } else { auto* file_stream = new std::ifstream(fname, ios_mode); stream.reset(static_cast<std::istream*>(file_stream)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maeparser-1.3.1/Writer.cpp new/maeparser-1.3.3/Writer.cpp --- old/maeparser-1.3.1/Writer.cpp 2023-02-01 20:22:56.000000000 +0100 +++ new/maeparser-1.3.3/Writer.cpp 2025-06-06 22:24:27.000000000 +0200 @@ -1,9 +1,11 @@ #include "Writer.hpp" #include <boost/algorithm/string/predicate.hpp> +#ifdef MAEPARSER_HAVE_BOOST_IOSTREAMS #include <boost/iostreams/device/file.hpp> #include <boost/iostreams/filter/gzip.hpp> #include <boost/iostreams/filtering_stream.hpp> +#endif #include <fstream> #include <iostream> @@ -14,8 +16,10 @@ using namespace std; using boost::algorithm::ends_with; +#ifdef MAEPARSER_HAVE_BOOST_IOSTREAMS using boost::iostreams::file_sink; using boost::iostreams::filtering_ostream; +#endif namespace schrodinger { @@ -32,10 +36,17 @@ const auto ios_mode = std::ios_base::out | std::ios_base::binary; if (ends_with(fname, ".maegz") || ends_with(fname, ".mae.gz")) { +#ifdef MAEPARSER_HAVE_BOOST_IOSTREAMS auto* gzip_stream = new filtering_ostream(); gzip_stream->push(boost::iostreams::gzip_compressor()); gzip_stream->push(file_sink(fname, ios_mode)); m_out.reset(static_cast<ostream*>(gzip_stream)); +#else + std::stringstream ss; + ss << "Unable to open " << fname << " for writing, " + << "as maeparser was compiled without boost::iostreams support"; + throw std::runtime_error(ss.str()); +#endif } else { auto* file_stream = new ofstream(fname, ios_mode); m_out.reset(static_cast<ostream*>(file_stream)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maeparser-1.3.1/test/MaeParserTest.cpp new/maeparser-1.3.3/test/MaeParserTest.cpp --- old/maeparser-1.3.1/test/MaeParserTest.cpp 2023-02-01 20:22:56.000000000 +0100 +++ new/maeparser-1.3.3/test/MaeParserTest.cpp 2025-06-06 22:24:27.000000000 +0200 @@ -123,23 +123,23 @@ { { auto ss = std::make_shared<std::stringstream>("m_something {"); - int indexed = 0; + int indexed = -2; MaeParser mp(ss); std::string name = mp.blockBeginning(&indexed); BOOST_REQUIRE_EQUAL(name, "m_something"); - BOOST_REQUIRE_EQUAL(indexed, 0); + BOOST_REQUIRE_EQUAL(indexed, -1); } { auto ss = std::make_shared<std::stringstream>("mmmm_block{"); - int indexed = 0; + int indexed = -2; MaeParser mp(ss); std::string name = mp.blockBeginning(&indexed); BOOST_REQUIRE_EQUAL(name, "mmmm_block"); - BOOST_REQUIRE_EQUAL(indexed, 0); + BOOST_REQUIRE_EQUAL(indexed, -1); } { auto ss = std::make_shared<std::stringstream>("m_whatev[23]{"); - int indexed = 0; + int indexed = -2; MaeParser mp(ss); std::string name = mp.blockBeginning(&indexed); BOOST_REQUIRE_EQUAL(name, "m_whatev"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maeparser-1.3.1/test/ReaderTest.cpp new/maeparser-1.3.3/test/ReaderTest.cpp --- old/maeparser-1.3.1/test/ReaderTest.cpp 2023-02-01 20:22:56.000000000 +0100 +++ new/maeparser-1.3.3/test/ReaderTest.cpp 2025-06-06 22:24:27.000000000 +0200 @@ -356,6 +356,7 @@ m_test_nested_indexed_block m_test_block m_test_repeated_block + m_empty_block m_test_indexed_block */ @@ -365,6 +366,7 @@ {"m_test_nested_indexed_block", 2}, {"m_test_block", 1}, {"m_test_repeated_block", 1}, + {"m_empty_block", 1}, {"m_test_indexed_block", 1}, {schrodinger::mae::ATOM_BLOCK, 0}, {schrodinger::mae::BOND_BLOCK, 0}, @@ -372,7 +374,7 @@ std::vector<std::pair<std::string, unsigned int>> actual_subblocks; write_block_names(*b, 0, actual_subblocks); - BOOST_REQUIRE(actual_subblocks.size() == expected_subblocks.size()); + BOOST_CHECK_EQUAL(actual_subblocks.size(), expected_subblocks.size()); for (unsigned int i = 0; i < actual_subblocks.size(); ++i) { auto actual = actual_subblocks[i]; auto expected = expected_subblocks[i]; @@ -396,7 +398,7 @@ auto b = r.next(CT_BLOCK); BOOST_REQUIRE(b); - BOOST_CHECK_EQUAL(b->getStringProperty("s_m_prop:name::with:::many::::colons"), - "1.1.0"); + BOOST_CHECK_EQUAL( + b->getStringProperty("s_m_prop:name::with:::many::::colons"), "1.1.0"); } BOOST_AUTO_TEST_SUITE_END() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maeparser-1.3.1/test/subblock_sample.mae new/maeparser-1.3.3/test/subblock_sample.mae --- old/maeparser-1.3.1/test/subblock_sample.mae 2023-02-01 20:22:56.000000000 +0100 +++ new/maeparser-1.3.3/test/subblock_sample.mae 2025-06-06 22:24:27.000000000 +0200 @@ -90,6 +90,10 @@ ::: } } + m_empty_block[0] { + ::: + ::: + } } }
