Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libzypp-testsuite-tools for openSUSE:Factory checked in at 2022-07-26 19:44:24 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libzypp-testsuite-tools (Old) and /work/SRC/openSUSE:Factory/.libzypp-testsuite-tools.new.1533 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libzypp-testsuite-tools" Tue Jul 26 19:44:24 2022 rev:58 rq:990961 version:5.0.5 Changes: -------- --- /work/SRC/openSUSE:Factory/libzypp-testsuite-tools/libzypp-testsuite-tools.changes 2021-11-10 21:47:26.067837241 +0100 +++ /work/SRC/openSUSE:Factory/.libzypp-testsuite-tools.new.1533/libzypp-testsuite-tools.changes 2022-07-26 19:44:49.244130534 +0200 @@ -1,0 +2,6 @@ +Fri Jul 22 16:43:12 CEST 2022 - m...@suse.com + +- Fixes to build with libzypp newer than 17.31.0. +- version 5.0.5 + +------------------------------------------------------------------- Old: ---- libzypp-testsuite-tools-5.0.4.tar.bz2 New: ---- libzypp-testsuite-tools-5.0.5.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libzypp-testsuite-tools.spec ++++++ --- /var/tmp/diff_new_pack.rFhuk5/_old 2022-07-26 19:44:49.624071824 +0200 +++ /var/tmp/diff_new_pack.rFhuk5/_new 2022-07-26 19:44:49.632070588 +0200 @@ -1,7 +1,7 @@ # # spec file for package libzypp-testsuite-tools # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: libzypp-testsuite-tools -Version: 5.0.4 +Version: 5.0.5 Release: 0 License: GPL-2.0-only BuildRoot: %{_tmppath}/%{name}-%{version}-build ++++++ libzypp-testsuite-tools-5.0.4.tar.bz2 -> libzypp-testsuite-tools-5.0.5.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-testsuite-tools-5.0.4/VERSION.cmake new/libzypp-testsuite-tools-5.0.5/VERSION.cmake --- old/libzypp-testsuite-tools-5.0.4/VERSION.cmake 2021-11-10 11:25:20.000000000 +0100 +++ new/libzypp-testsuite-tools-5.0.5/VERSION.cmake 2022-07-22 16:57:48.000000000 +0200 @@ -34,7 +34,7 @@ # SET(VERSION_MAJOR "5") SET(VERSION_MINOR "0") -SET(VERSION_PATCH "4") +SET(VERSION_PATCH "5") -# LAST RELEASED: 5.0.4 +# LAST RELEASED: 5.0.5 #======= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-testsuite-tools-5.0.4/package/libzypp-testsuite-tools.changes new/libzypp-testsuite-tools-5.0.5/package/libzypp-testsuite-tools.changes --- old/libzypp-testsuite-tools-5.0.4/package/libzypp-testsuite-tools.changes 2021-11-10 11:25:20.000000000 +0100 +++ new/libzypp-testsuite-tools-5.0.5/package/libzypp-testsuite-tools.changes 2022-07-22 16:57:48.000000000 +0200 @@ -1,4 +1,10 @@ ------------------------------------------------------------------- +Fri Jul 22 16:43:12 CEST 2022 - m...@suse.com + +- Fixes to build with libzypp newer than 17.31.0. +- version 5.0.5 + +------------------------------------------------------------------- Wed Nov 10 11:13:38 CET 2021 - m...@suse.com - Switch to using CMake diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-testsuite-tools-5.0.4/src/deptestomatic.cc new/libzypp-testsuite-tools-5.0.5/src/deptestomatic.cc --- old/libzypp-testsuite-tools-5.0.4/src/deptestomatic.cc 2021-08-30 11:58:34.000000000 +0200 +++ new/libzypp-testsuite-tools-5.0.5/src/deptestomatic.cc 2022-07-22 16:57:48.000000000 +0200 @@ -52,6 +52,7 @@ #include "zypp/ZConfig.h" #include "zypp/base/String.h" +#include "zypp/base/StringV.h" #include "zypp/base/LogTools.h" #include "zypp/base/LogControl.h" #include "zypp/base/Exception.h" @@ -212,7 +213,7 @@ * \li source::alias * \li ResObject::constPtr as fallback. */ -struct KNEAOrder : public std::binary_function<PoolItem,PoolItem,bool> +struct KNEAOrder { // NOTE: operator() provides LESS semantics to order the set. // So LESS means 'prior in set'. We want 'better' archs and @@ -245,7 +246,7 @@ typedef std::set<PoolItem, KNEAOrder> PoolItemOrderSet; -struct Unique : public resfilter::PoolItemFilterFunctor +struct Unique { PoolItemOrderSet itemset; @@ -266,7 +267,7 @@ invokeOnEach( pool.begin( ), pool.end ( ), functor::chain( resfilter::ByUninstalled (), resfilter::ByTransact() ), - functor::functorRef<bool,PoolItem> (info) ); + std::ref(info) ); return info.itemset; } @@ -280,7 +281,7 @@ invokeOnEach( pool.begin( ), pool.end ( ), functor::chain( resfilter::ByInstalled (), resfilter::ByTransact() ), - functor::functorRef<bool,PoolItem> (info) ); + std::ref(info) ); return info.itemset; } @@ -331,24 +332,29 @@ { ResolverProblem problem = **iter; RESULT << "Problem:" << endl; + RESULT << "====================================" << endl; + RESULT << problem.description() << endl; + RESULT << "------------------------------------" << endl; for ( const std::string &prop : problem.completeProblemInfo() ) - RESULT << prop << endl; + RESULT << " -" << prop << endl; + RESULT << "------------------------------------" << endl; RESULT << problem.details() << endl; - ProblemSolutionList solutions = problem.solutions(); for ( ProblemSolutionList::const_iterator iter = solutions.begin(); iter != solutions.end(); ++iter ) { ProblemSolution solution = **iter; + RESULT << "------------------------------------" << endl; RESULT << " Solution:" << endl; RESULT << " " << solution.description() << endl; RESULT << " " << solution.details() << endl; } + RESULT << "------------------------------------" << endl; } } //--------------------------------------------------------------------------------------------------------------------- -struct IsStatisfied : public resfilter::ResObjectFilterFunctor +struct IsStatisfied { Resolvable::Kind kind; @@ -375,20 +381,20 @@ IsStatisfied info (ResKind::package); invokeOnEach( God->pool().begin( ), God->pool().end ( ), - functor::functorRef<bool,PoolItem> (info) ); + std::ref(info) ); } else { Resolvable::Kind kind = string2kind (kind_name); IsStatisfied info (kind); invokeOnEach( God->pool().byKindBegin( kind ), God->pool().byKindEnd( kind ), - functor::functorRef<bool,PoolItem> (info) ); + std::ref(info) ); } } //--------------------------------------------------------------------------------------------------------------------- -struct FindPackage : public resfilter::ResObjectFilterFunctor +struct FindPackage { PoolItem poolItem; Resolvable::Kind kind; @@ -406,6 +412,11 @@ { } + void _remember( PoolItem p ) + { + poolItem = p; + } + bool operator()( PoolItem p) { if (arch_set && arch != p->arch()) { // if arch requested, force this arch @@ -416,18 +427,15 @@ } if (edition_set) { - if (p->edition().match( edition ) == 0) { // if edition requested, force this edition - poolItem = p; - return false; - } - return true; + if (p->edition().match( edition ) != 0) + return true; } if (!poolItem // none yet || (poolItem->arch().compare( p->arch() ) < 0) // new has better arch || (poolItem->edition().compare( p->edition() ) < 0)) // new has better edition { - poolItem = p; + _remember( p ); } return true; } @@ -445,14 +453,14 @@ invokeOnEach( God->pool().byIdentBegin( kind,package_name ), God->pool().byIdentEnd( kind,package_name ), resfilter::ByRepository(source_alias), - functor::functorRef<bool,PoolItem> (info) ); + std::ref(info) ); poolItem = info.poolItem; if (!poolItem) { // try to find the resolvable over all channel. This is useful for e.g. languages invokeOnEach( God->pool().byIdentBegin( kind,package_name ), God->pool().byIdentEnd( kind,package_name ), - functor::functorRef<bool,PoolItem> (info) ); + std::ref(info) ); poolItem = info.poolItem; } } @@ -493,7 +501,7 @@ typedef multimap<string,PoolItem> ItemMap; -struct SortItem : public resfilter::PoolItemFilterFunctor +struct SortItem { ItemMap sorted; bool _show_all; @@ -526,7 +534,7 @@ cout << "Current pool: " << God->pool().size() << endl; invokeOnEach( God->pool().begin( ), God->pool().end ( ), - functor::functorRef<bool,PoolItem> (info) ); + std::ref(info) ); int count = 0; for (ItemMap::const_iterator it = info.sorted.begin(); it != info.sorted.end(); ++it) { @@ -571,7 +579,7 @@ SortItem info( true ); invokeOnEach( God->pool().begin( ), God->pool().end ( ), - functor::functorRef<bool,PoolItem> (info) ); + std::ref(info) ); for (ItemMap::const_iterator it = info.sorted.begin(); it != info.sorted.end(); ++it) { it->second.status().setLicenceConfirmed(); @@ -724,7 +732,7 @@ poolItem = get_poolItem( source_alias, name, kind_name, version, release, architecture ); if (poolItem) { - RESULT << "Installing " + RESULT << "Installing " << poolItem << ((poolItem->kind() != ResKind::package) ? (poolItem->kind().asString() + ":") : "") << name << (version.empty()?"":(string("-")+poolItem->edition().version())) @@ -956,7 +964,7 @@ if ( item ) { item->setStatus( item->hasInstalledObj() ? ui::S_Protected : ui::S_Taboo ); - RESULT << "Locking " << item << endl; + item->setStatus( ui::S_Taboo ); } else { @@ -1032,7 +1040,7 @@ PoolItem poolItem; - poolItem = get_poolItem( source_alias, name, kind_name ); + poolItem = get_poolItem( source_alias, name, kind_name, node.getProp ("version"), node.getProp ("release") ); if (poolItem) { // first: set anything @@ -1225,22 +1233,6 @@ } -inline size_t split( std::vector<std::string_view> & words_r, std::string_view line_r, std::string_view sepchars_r = " \t" ) -{ - size_t ret = 0; - while ( ! line_r.empty() ) { - std::string_view::size_type p = line_r.find_first_not_of( sepchars_r ); - if ( p == std::string_view::npos ) - break; - line_r = line_r.substr( p ); - p = line_r.find_first_of( sepchars_r ); - words_r.push_back( p == std::string_view::npos ? line_r : line_r.substr( 0, p ) ); - ++ret; - line_r = line_r.substr( p ); - } - return ret; -} - inline bool addhexc2num( CycleOrder::Integral & num_r, char ch_r ) { if ( '0' <= ch_r && ch_r <= '9' ) @@ -1270,7 +1262,9 @@ int cycleinfo( std::string_view cycle_r ) { std::vector<std::string_view> words; - if ( split( words, cycle_r ) <= 2 || words[0] != "cycle:" || words[1] != "-->" ) { + strv::split( cycle_r , [&words]( std::string_view word ) { words.push_back( word ); } ); + + if ( words.size() <= 2 || words[0] != "cycle:" || words[1] != "-->" ) { cerr << "Parse cycle OOPS: " << words << endl; return 1; }