<div dir="ltr"><div>Dear cif-tools Maintainer,</div><div>The package cif-tools build failed on all arch. The crucial buildd log below:</div><div>```</div><div><pre style="color:rgb(0,0,0)">[ 28%] Building CXX object CMakeFiles/cif-grep.dir/src/cif-grep.cpp.o
/usr/bin/c++ -DCACHE_DIR=\"/var/cache/libcifpp\" -DDATA_DIR=\"/usr/share/libcifpp\" -DUSE_RSRC  -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -std=gnu++20 -MD -MT CMakeFiles/cif-grep.dir/src/cif-grep.cpp.o -MF CMakeFiles/cif-grep.dir/src/cif-grep.cpp.o.d -o CMakeFiles/cif-grep.dir/src/cif-grep.cpp.o -c /<<PKGBUILDDIR>>/src/cif-grep.cpp
/<<PKGBUILDDIR>>/src/cif-diff.cpp:122:14: error: ‘void templateParser::produce_datablock(const std::string&)’ marked ‘override’, but does not override
  122 |         void produce_datablock(const std::string &name) override
      |              ^~~~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/src/cif-diff.cpp:126:14: error: ‘void templateParser::produce_category(const std::string&)’ marked ‘override’, but does not override
  126 |         void produce_category(const std::string &name) override
      |              ^~~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/src/cif-diff.cpp:134:14: error: ‘void templateParser::produce_item(const std::string&, const std::string&, const std::string&)’ marked ‘override’, but does not override
  134 |         void produce_item(const std::string &category, const std::string &item, const std::string &value) override
      |              ^~~~~~~~~~~~
/<<PKGBUILDDIR>>/src/cif-diff.cpp: In function ‘void compareCategories(cif::category&, cif::category&, size_t)’:
/<<PKGBUILDDIR>>/src/cif-diff.cpp:165:38: warning: ‘cif::iset cif::category::key_fields() const’ is deprecated: use key_items instead [-Wdeprecated-declarations]
  165 |         for (auto &tag : a.key_fields())
      |                          ~~~~~~~~~~~~^~
In file included from /usr/include/cif++/datablock.hpp:29,
                 from /usr/include/cif++/file.hpp:31,
                 from /usr/include/cif++.hpp:30,
                 from /<<PKGBUILDDIR>>/src/cif-diff.cpp:33:
/usr/include/cif++/category.hpp:170:54: note: declared here
  170 |         [[deprecated("use key_items instead")]] iset key_fields() const; ///< Returns the cif::iset of key item names. Retrieved from the @ref category_validator for this category
      |                                                      ^~~~~~~~~~
/<<PKGBUILDDIR>>/src/cif-grep.cpp:61:14: error: ‘void statsParser::produce_datablock(const std::string&)’ marked ‘override’, but does not override
   61 |         void produce_datablock(const std::string &name) override
      |              ^~~~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/src/cif-grep.cpp:65:14: error: ‘void statsParser::produce_category(const std::string&)’ marked ‘override’, but does not override
   65 |         void produce_category(const std::string &name) override
      |              ^~~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/src/cif-grep.cpp:73:14: error: ‘void statsParser::produce_item(const std::string&, const std::string&, const std::string&)’ marked ‘override’, but does not override
   73 |         void produce_item(const std::string &category, const std::string &item, const std::string &value) override
      |              ^~~~~~~~~~~~
/<<PKGBUILDDIR>>/src/cif-diff.cpp: In function ‘void compareCifsText(cif::file&, cif::file&, const std::string&, const std::string&, bool, bool)’:
/<<PKGBUILDDIR>>/src/cif-diff.cpp:499:61: warning: ‘std::vector<std::__cxx11::basic_string<char> > cif::datablock::get_tag_order() const’ is deprecated: use get_item_order instead [-Wdeprecated-declarations]
  499 |                 b.front().write(out, a.front().get_tag_order());
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~^~
/usr/include/cif++/datablock.hpp:196:34: note: declared here
  196 |         std::vector<std::string> get_tag_order() const
      |                                  ^~~~~~~~~~~~~
/<<PKGBUILDDIR>>/src/cif-grep.cpp: In constructor ‘statsParser::statsParser(const std::string&, std::istream&, const std::string&, const std::string&, bool, bool, bool)’:
/<<PKGBUILDDIR>>/src/cif-grep.cpp:56:60: warning: ‘std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > cif::split_tag_name(std::string_view)’ is deprecated: use split_item_name instead [-Wdeprecated-declarations]
   56 |                 std::tie(mCat, mItem) = cif::split_tag_name(tag);
      |                                         ~~~~~~~~~~~~~~~~~~~^~~~~
In file included from /usr/include/cif++/item.hpp:31,
                 from /usr/include/cif++/row.hpp:29,
                 from /usr/include/cif++/condition.hpp:29,
                 from /usr/include/cif++/category.hpp:31,
                 from /usr/include/cif++/datablock.hpp:29,
                 from /usr/include/cif++/file.hpp:31,
                 from /usr/include/cif++.hpp:30,
                 from /<<PKGBUILDDIR>>/src/cif-grep.cpp:35:
/usr/include/cif++/text.hpp:329:38: note: declared here
  329 | std::tuple<std::string, std::string> split_tag_name(std::string_view item_name);
      |                                      ^~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/src/cif-grep.cpp: In function ‘size_t cifGrep(const std::string&, const std::string&, const std::string&, std::istream&, bool, bool, bool)’:
/<<PKGBUILDDIR>>/src/cif-grep.cpp:105:29: error: cannot declare variable ‘gp’ to be of abstract type ‘statsParser’
  105 |                 statsParser gp(file, is, pattern, quiet, printLineNr, invertMatch);
      |                             ^~
/<<PKGBUILDDIR>>/src/cif-grep.cpp:40:7: note:   because the following virtual functions are pure within ‘statsParser’:
   40 | class statsParser : public cif::sac_parser
      |       ^~~~~~~~~~~
In file included from /usr/include/cif++/file.hpp:32:
/usr/include/cif++/parser.hpp:252:22: note:     ‘virtual void cif::sac_parser::produce_datablock(std::string_view)’
  252 |         virtual void produce_datablock(std::string_view name) = 0;
      |                      ^~~~~~~~~~~~~~~~~
/usr/include/cif++/parser.hpp:253:22: note:     ‘virtual void cif::sac_parser::produce_category(std::string_view)’
  253 |         virtual void produce_category(std::string_view name) = 0;
      |                      ^~~~~~~~~~~~~~~~
/usr/include/cif++/parser.hpp:255:22: note:     ‘virtual void cif::sac_parser::produce_item(std::string_view, std::string_view, std::string_view)’
  255 |         virtual void produce_item(std::string_view category, std::string_view item, std::string_view value) = 0;
      |                      ^~~~~~~~~~~~
/<<PKGBUILDDIR>>/src/cif-grep.cpp:112:29: error: cannot declare variable ‘gp’ to be of abstract type ‘statsParser’
  112 |                 statsParser gp(file, is, tag, pattern, quiet, printLineNr, invertMatch);
      |                             ^~
/<<PKGBUILDDIR>>/src/cif-grep.cpp: In function ‘int pr_main(int, char**)’:
/<<PKGBUILDDIR>>/src/cif-grep.cpp:181:58: warning: ‘std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > cif::split_tag_name(std::string_view)’ is deprecated: use split_item_name instead [-Wdeprecated-declarations]
  181 |                 std::tie(cat, item) = cif::split_tag_name(tag);
      |                                       ~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/cif++/text.hpp:329:38: note: declared here
  329 | std::tuple<std::string, std::string> split_tag_name(std::string_view item_name);
      |                                      ^~~~~~~~~~~~~~
make[3]: *** [CMakeFiles/cif-diff.dir/build.make:83: CMakeFiles/cif-diff.dir/src/cif-diff.cpp.o] Error 1
make[3]: Leaving directory '/<<PKGBUILDDIR>>/obj-riscv64-linux-gnu'
make[2]: *** [CMakeFiles/Makefile2:972: CMakeFiles/cif-diff.dir/all] Error 2
make[2]: *** Waiting for unfinished jobs....</pre></div><div>```</div><div>The full buildd log is below:</div><div><a href="https://buildd.debian.org/status/fetch.php?pkg=cif-tools&arch=riscv64&ver=1.0.7-1%2Bb2&stamp=1729338657&raw=0" target="_blank">https://buildd.debian.org/status/fetch.php?pkg=cif-tools&arch=riscv64&ver=1.0.7-1%2Bb2&stamp=1729338657&raw=0</a></div><div><br></div><div>My solution to this issue:</div><div>The error occurred because the relevant parts of this package are not compatible with the current version of libcifpp. So,we can modify this part code to be compatible with libcifpp.I have tested the solution locally,and it works well.The debpatch is in the attachment.Please let me know whether this solution can be accepted.</div><font color="#888888"><font color="#888888"><div><br></div><div>Gui-Yue</div><div>Best Regards</div></font></font></div>