Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libzim for openSUSE:Factory checked in at 2026-08-14 22:04:55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libzim (Old) and /work/SRC/openSUSE:Factory/.libzim.new.1258 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libzim" Fri Aug 14 22:04:55 2026 rev:6 rq:1370917 version:9.8.2 Changes: -------- --- /work/SRC/openSUSE:Factory/libzim/libzim.changes 2026-07-12 17:12:57.092944900 +0200 +++ /work/SRC/openSUSE:Factory/.libzim.new.1258/libzim.changes 2026-08-14 22:05:29.331807172 +0200 @@ -1,0 +2,7 @@ +Thu Aug 13 05:02:32 UTC 2026 - Martin Pluskal <[email protected]> + +- Update to 9.8.2: + * Stop the reader code writing to stdout, which polluted zimcheck + output + +------------------------------------------------------------------- Old: ---- libzim-9.8.1.tar.gz New: ---- libzim-9.8.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libzim.spec ++++++ --- /var/tmp/diff_new_pack.bCheCY/_old 2026-08-14 22:05:30.061833229 +0200 +++ /var/tmp/diff_new_pack.bCheCY/_new 2026-08-14 22:05:30.063833300 +0200 @@ -18,7 +18,7 @@ %define sover 9 Name: libzim -Version: 9.8.1 +Version: 9.8.2 Release: 0 Summary: Reference implementation for the ZIM file format License: GPL-2.0-or-later ++++++ libzim-9.8.1.tar.gz -> libzim-9.8.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzim-9.8.1/ChangeLog new/libzim-9.8.2/ChangeLog --- old/libzim-9.8.1/ChangeLog 2026-07-11 15:50:37.000000000 +0200 +++ new/libzim-9.8.2/ChangeLog 2026-08-12 18:51:28.000000000 +0200 @@ -1,3 +1,8 @@ +libzim 9.8.2 +============ + + * Quick fix for pollution of zimcheck output (@veloman-yunkan #1105) + libzim 9.8.1 ============ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzim-9.8.1/meson.build new/libzim-9.8.2/meson.build --- old/libzim-9.8.1/meson.build 2026-07-11 15:50:37.000000000 +0200 +++ new/libzim-9.8.2/meson.build 2026-08-12 18:51:28.000000000 +0200 @@ -1,5 +1,5 @@ project('libzim', ['c', 'cpp'], - version : '9.8.1', + version : '9.8.2', license : 'GPL2', default_options : ['c_std=c11', 'cpp_std=c++17', 'werror=true']) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzim-9.8.1/scripts/download_test_data.py new/libzim-9.8.2/scripts/download_test_data.py --- old/libzim-9.8.1/scripts/download_test_data.py 2026-07-11 15:50:37.000000000 +0200 +++ new/libzim-9.8.2/scripts/download_test_data.py 2026-08-12 18:51:28.000000000 +0200 @@ -26,7 +26,7 @@ import tarfile import sys -TEST_DATA_VERSION = "0.9.0" +TEST_DATA_VERSION = "0.10.0" ARCHIVE_URL_TEMPL = "https://github.com/openzim/zim-testing-suite/releases/download/{version}/zim-testing-suite-{version}.tar.gz" if __name__ == "__main__": diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzim-9.8.1/src/search.cpp new/libzim-9.8.2/src/search.cpp --- old/libzim-9.8.1/src/search.cpp 2026-07-11 15:50:37.000000000 +0200 +++ new/libzim-9.8.2/src/search.cpp 2026-08-12 18:51:28.000000000 +0200 @@ -44,7 +44,6 @@ #endif #include "xapian.h" -#include <unicode/locid.h> #include "constants.h" @@ -60,15 +59,7 @@ if (! language.empty()) { m_language = language; } - if (!m_language.empty()) { - icu::Locale languageLocale(language.c_str()); - /* Configuring language base stemming */ - try { - m_stemmer = Xapian::Stem(languageLocale.getLanguage()); - } catch (...) { - std::cout << "No stemming for language '" << languageLocale.getLanguage() << "'" << std::endl; - } - } + m_stemmer = getXapianStemmer(m_language); m_stopwords = db.get_metadata("stopwords"); } @@ -316,7 +307,7 @@ auto query = mp_internalDb->parseQuery(m_query); if (mp_internalDb->m_verbose) { - std::cout << "Parsed query '" << m_query.m_query << "' to " << query.get_description() << std::endl; + std::cerr << "Parsed query '" << m_query.m_query << "' to " << query.get_description() << std::endl; } enquire->set_query(query); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzim-9.8.1/src/suggestion.cpp new/libzim-9.8.2/src/suggestion.cpp --- old/libzim-9.8.1/src/suggestion.cpp 2026-07-11 15:50:37.000000000 +0200 +++ new/libzim-9.8.2/src/suggestion.cpp 2026-08-12 18:51:28.000000000 +0200 @@ -27,10 +27,6 @@ #include "tools.h" #include "constants.h" -#if defined(ENABLE_XAPIAN) -#include <unicode/locid.h> -#endif // ENABLE_XAPIAN - namespace zim { @@ -84,17 +80,9 @@ language = m_archive.getMetadata("Language"); } catch(...) {} } - if (!language.empty()) { - icu::Locale languageLocale(language.c_str()); - /* Configuring language base stemming */ - try { - m_stemmer = Xapian::Stem(languageLocale.getLanguage()); - m_queryParser.set_stemmer(m_stemmer); - } catch (...) { - std::cout << "No stemming for language '" << languageLocale.getLanguage() << "'" << std::endl; - } - } + m_stemmer = getXapianStemmer(language); + m_queryParser.set_stemmer(m_stemmer); m_database = database; } @@ -274,7 +262,7 @@ const auto unaccentedQuery = removeAccents(m_query); auto query = mp_internalDb->parseQuery(unaccentedQuery); if (mp_internalDb->m_verbose) { - std::cout << "Parsed query '" << unaccentedQuery << "' to " << query.get_description() << std::endl; + std::cerr << "Parsed query '" << unaccentedQuery << "' to " << query.get_description() << std::endl; } enquire->set_query(query); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzim-9.8.1/src/tools.cpp new/libzim-9.8.2/src/tools.cpp --- old/libzim-9.8.1/src/tools.cpp 2026-07-11 15:50:37.000000000 +0200 +++ new/libzim-9.8.2/src/tools.cpp 2026-08-12 18:51:28.000000000 +0200 @@ -282,6 +282,7 @@ #include <unicode/translit.h> #include <unicode/ucnv.h> #include <unicode/putil.h> +#include <unicode/locid.h> #define BATCH_SIZE (4*1024) std::string zim::removeAccents(const std::string& text) @@ -349,4 +350,20 @@ { u_setDataDirectory(path.c_str()); } + +Xapian::Stem zim::getXapianStemmer(const std::string& iso639LangCode) +{ + Xapian::Stem stemmer; + if (!iso639LangCode.empty()) { + icu::Locale languageLocale(iso639LangCode.c_str()); + const std::string twoLetterLangCode = languageLocale.getLanguage(); + try { + stemmer = Xapian::Stem(twoLetterLangCode); + } catch (...) { + std::cerr << "No stemming for language '" << twoLetterLangCode << "'" << std::endl; + } + } + return stemmer; +} + #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzim-9.8.1/src/tools.h new/libzim-9.8.2/src/tools.h --- old/libzim-9.8.1/src/tools.h 2026-07-11 15:50:37.000000000 +0200 +++ new/libzim-9.8.2/src/tools.h 2026-08-12 18:51:28.000000000 +0200 @@ -33,6 +33,7 @@ #if defined(ENABLE_XAPIAN) namespace Xapian { class Database; + class Stem; } #endif // ENABLE_XAPIAN namespace zim { @@ -76,6 +77,7 @@ #if defined(ENABLE_XAPIAN) std::string LIBZIM_PRIVATE_API removeAccents(const std::string& text); bool LIBZIM_PRIVATE_API getDbFromAccessInfo(zim::ItemDataDirectAccessInfo accessInfo, Xapian::Database& database); + Xapian::Stem getXapianStemmer(const std::string& iso639LangCode); #endif } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzim-9.8.1/src/xapian/htmlparse.cc new/libzim-9.8.2/src/xapian/htmlparse.cc --- old/libzim-9.8.1/src/xapian/htmlparse.cc 2026-07-11 15:50:37.000000000 +0200 +++ new/libzim-9.8.2/src/xapian/htmlparse.cc 2026-08-12 18:51:28.000000000 +0200 @@ -212,7 +212,7 @@ if (enc == string::npos || enc == decl.size()) break; if (decl[enc] != '=') break; - + enc = decl.find_first_not_of(" \t\r\n", enc + 1); if (enc == string::npos || enc == decl.size()) break; @@ -355,12 +355,12 @@ } } #if 0 - cout << "<" << tag; + cerr << "<" << tag; map<string, string>::const_iterator x; for (x = parameters.begin(); x != parameters.end(); x++) { - cout << " " << x->first << "=\"" << x->second << "\""; + cerr << " " << x->first << "=\"" << x->second << "\""; } - cout << ">\n"; + cerr << ">\n"; #endif opening_tag(tag); parameters.clear();
