diff -Nru cif-tools-1.0.7/debian/changelog cif-tools-1.0.7/debian/changelog
--- cif-tools-1.0.7/debian/changelog	2022-11-22 20:03:32.000000000 +0800
+++ cif-tools-1.0.7/debian/changelog	2024-10-23 10:40:58.000000000 +0800
@@ -1,3 +1,9 @@
+cif-tools (1.0.7-1.1) UNRELEASED; urgency=medium
+
+  * fix build failure caused by Several virtual functions are marked as override, but they do not actually override the corresponding functions in the base class. 
+
+ -- Gui-Yue <yuemeng.gui@gmail.com>  Wed, 23 Oct 2024 10:40:58 +0800
+
 cif-tools (1.0.7-1) unstable; urgency=medium
 
   * New upstream release.
diff -Nru cif-tools-1.0.7/debian/patches/fix_cif-diff_cpp_buildfailed.patch cif-tools-1.0.7/debian/patches/fix_cif-diff_cpp_buildfailed.patch
--- cif-tools-1.0.7/debian/patches/fix_cif-diff_cpp_buildfailed.patch	1970-01-01 08:00:00.000000000 +0800
+++ cif-tools-1.0.7/debian/patches/fix_cif-diff_cpp_buildfailed.patch	2024-10-23 10:40:58.000000000 +0800
@@ -0,0 +1,93 @@
+--- a/src/cif-diff.cpp
++++ b/src/cif-diff.cpp
+@@ -119,11 +119,11 @@
+ 	{
+ 	}
+ 
+-	void produce_datablock(const std::string &name) override
++	void produce_datablock(std::string_view name) override
+ 	{
+ 	}
+ 
+-	void produce_category(const std::string &name) override
++	void produce_category(std::string_view name) override
+ 	{
+ 	}
+ 
+@@ -131,9 +131,9 @@
+ 	{
+ 	}
+ 
+-	void produce_item(const std::string &category, const std::string &item, const std::string &value) override
++	void produce_item(std::string_view category, std::string_view item, std::string_view value) override
+ 	{
+-		std::string tag = "_" + category + "." + item;
++		std::string tag = std::string("_") + std::string(category) + "." + std::string(item);
+ 		if (find(mOrder.rbegin(), mOrder.rend(), tag) == mOrder.rend())
+ 			mOrder.push_back(tag);
+ 	}
+@@ -162,7 +162,7 @@
+ 	auto keys = catValidator->m_keys;
+ 	std::vector<size_t> keyIx;
+ 
+-	for (auto &tag : a.key_fields())
++	for (auto &tag : a.key_items())
+ 	{
+ 		auto iv = catValidator->get_validator_for_item(tag);
+ 		if (iv == nullptr)
+--- a/src/cif-grep.cpp
++++ b/src/cif-grep.cpp
+@@ -53,16 +53,16 @@
+ 	statsParser(const std::string &file, std::istream &is, const std::string &tag, const std::string &pattern, bool quiet, bool printLineNr, bool invertMatch)
+ 		: statsParser(file, is, pattern, quiet, printLineNr, invertMatch)
+ 	{
+-		std::tie(mCat, mItem) = cif::split_tag_name(tag);
++		std::tie(mCat, mItem) = cif::split_item_name(tag);
+ 	}
+ 
+ 	size_t getMatches() const { return mMatches; }
+ 
+-	void produce_datablock(const std::string &name) override
++	void produce_datablock(std::string_view name) override
+ 	{
+ 	}
+ 
+-	void produce_category(const std::string &name) override
++	void produce_category(std::string_view name) override
+ 	{
+ 	}
+ 
+@@ -70,11 +70,11 @@
+ 	{
+ 	}
+ 
+-	void produce_item(const std::string &category, const std::string &item, const std::string &value) override
++	void produce_item(std::string_view category, std::string_view item, std::string_view value) override
+ 	{
+ 		if ((mCat.empty() or cif::iequals(category, mCat)) and
+ 			(mItem.empty() or cif::iequals(item, mItem)) and
+-			std::regex_search(value, mRx) == not mInvertMatch)
++			std::regex_search(std::string(value), mRx) == not mInvertMatch)
+ 		{
+ 			++mMatches;
+ 
+@@ -178,7 +178,7 @@
+ 		tag = config.get<std::string>("item");
+ 
+ 		std::string cat, item;
+-		std::tie(cat, item) = cif::split_tag_name(tag);
++		std::tie(cat, item) = cif::split_item_name(tag);
+ 
+ 		if (cat.empty())
+ 			throw std::runtime_error("Invalid category in tag: '" + cat + '\'');
+--- a/src/mmCQL.cpp
++++ b/src/mmCQL.cpp
+@@ -1056,7 +1056,7 @@
+ 		{
+ 			if (item == "*")
+ 				transform(cv->m_item_validators.begin(), cv->m_item_validators.end(), back_inserter(nItems),
+-					[cat](auto iv) { return iv.m_tag; });
++					[cat](auto iv) { return iv.m_item_name; });
+ 			else
+ 				nItems.push_back(item);
+ 		}
diff -Nru cif-tools-1.0.7/debian/patches/series cif-tools-1.0.7/debian/patches/series
--- cif-tools-1.0.7/debian/patches/series	1970-01-01 08:00:00.000000000 +0800
+++ cif-tools-1.0.7/debian/patches/series	2024-10-23 10:40:16.000000000 +0800
@@ -0,0 +1 @@
+fix_cif-diff_cpp_buildfailed.patch
