Hello community, here is the log from the commit of package libzypp for openSUSE:Factory checked in at 2018-10-22 11:04:13 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libzypp (Old) and /work/SRC/openSUSE:Factory/.libzypp.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libzypp" Mon Oct 22 11:04:13 2018 rev:405 rq:641674 version:17.8.0 Changes: -------- --- /work/SRC/openSUSE:Factory/libzypp/libzypp.changes 2018-10-11 11:45:46.010762755 +0200 +++ /work/SRC/openSUSE:Factory/.libzypp.new/libzypp.changes 2018-10-22 11:04:48.612199523 +0200 @@ -1,0 +2,10 @@ +Fri Oct 12 14:01:19 CEST 2018 - [email protected] + +- Add infrastructure to flag specific packages to trigger a + reboot needed hint (fate#326451) +- Adapt to libsolv: Drop support for REPOKEY_TYPE_U32 +- Resolver: add setInr to request solving namespaces +- ResolverNamespace: add No/AllResolverNamespaces constants +- version 17.8.0 (2) + +------------------------------------------------------------------- Old: ---- libzypp-17.7.2.tar.bz2 New: ---- libzypp-17.8.0.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libzypp.spec ++++++ --- /var/tmp/diff_new_pack.APpdNu/_old 2018-10-22 11:04:54.572194460 +0200 +++ /var/tmp/diff_new_pack.APpdNu/_new 2018-10-22 11:04:54.588194447 +0200 @@ -17,7 +17,7 @@ Name: libzypp -Version: 17.7.2 +Version: 17.8.0 Release: 0 Url: https://github.com/openSUSE/libzypp Summary: Package, Patch, Pattern, and Product Management ++++++ libzypp-17.7.2.tar.bz2 -> libzypp-17.8.0.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.7.2/VERSION.cmake new/libzypp-17.8.0/VERSION.cmake --- old/libzypp-17.7.2/VERSION.cmake 2018-10-01 14:31:07.000000000 +0200 +++ new/libzypp-17.8.0/VERSION.cmake 2018-10-12 14:03:12.000000000 +0200 @@ -60,9 +60,9 @@ # SET(LIBZYPP_MAJOR "17") SET(LIBZYPP_COMPATMINOR "2") -SET(LIBZYPP_MINOR "7") -SET(LIBZYPP_PATCH "2") +SET(LIBZYPP_MINOR "8") +SET(LIBZYPP_PATCH "0") # -# LAST RELEASED: 17.7.2 (2) +# LAST RELEASED: 17.8.0 (2) # (The number in parenthesis is LIBZYPP_COMPATMINOR) #======= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.7.2/package/libzypp.changes new/libzypp-17.8.0/package/libzypp.changes --- old/libzypp-17.7.2/package/libzypp.changes 2018-10-01 14:31:07.000000000 +0200 +++ new/libzypp-17.8.0/package/libzypp.changes 2018-10-12 14:03:12.000000000 +0200 @@ -1,4 +1,14 @@ ------------------------------------------------------------------- +Fri Oct 12 14:01:19 CEST 2018 - [email protected] + +- Add infrastructure to flag specific packages to trigger a + reboot needed hint (fate#326451) +- Adapt to libsolv: Drop support for REPOKEY_TYPE_U32 +- Resolver: add setInr to request solving namespaces +- ResolverNamespace: add No/AllResolverNamespaces constants +- version 17.8.0 (2) + +------------------------------------------------------------------- Mon Oct 1 14:04:15 CEST 2018 - [email protected] - Fix blocking wait for finished child process (bsc#1109877) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.7.2/po/id.po new/libzypp-17.8.0/po/id.po --- old/libzypp-17.7.2/po/id.po 2018-10-01 14:31:07.000000000 +0200 +++ new/libzypp-17.8.0/po/id.po 2018-10-05 15:08:55.000000000 +0200 @@ -3,21 +3,22 @@ # Copyright (C) 2002 SuSE Linux AG. # Copyright (C) 1999-2001 SuSE GmbH. # I Made Wiryana <[email protected]>, 1999. +# Kukuh Syafaat <[email protected]>, 2017-2018. msgid "" msgstr "" "Project-Id-Version: YaST (@memory@)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" -"PO-Revision-Date: 2017-10-03 15:55+0700\n" +"PO-Revision-Date: 2018-10-05 13:06+0000\n" "Last-Translator: Kukuh Syafaat <[email protected]>\n" -"Language-Team: Indonesian <https://l10n.opensuse.org/projects/libzypp/master/" -"id/>\n" +"Language-Team: Indonesian " +"<https://l10n.opensuse.org/projects/libzypp/master/id/>\n" "Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Poedit 2.0.3\n" +"X-Generator: Weblate 2.18\n" #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55 #: zypp/target/hal/HalException.h:64 @@ -1618,9 +1619,8 @@ msgstr "Mencoba untuk mengimpor kunci %s tidak ada ke keyring %s" #: zypp/KeyRing.cc:542 zypp/KeyRing.cc:546 -#, fuzzy msgid "Failed to import key." -msgstr "Gagal mengimpor kunci publik %1%" +msgstr "Gagal mengimpor kunci." #: zypp/KeyRing.cc:553 zypp/KeyRing.cc:557 zypp/KeyRing.cc:561 msgid "Failed to delete key." @@ -4210,20 +4210,20 @@ #: zypp/RepoInfo.cc:513 #, boost-format msgid "Looking for gpg key ID %1% in cache %2%." -msgstr "" +msgstr "Mencari kunci gpg ID %1% dalam cache %2%." #. translator: %1% is a gpg key ID like 3DBDC284 #. %2% is a repositories name #: zypp/RepoInfo.cc:541 #, boost-format msgid "Looking for gpg key ID %1% in repository %2%." -msgstr "" +msgstr "Mencari kunci gpg ID %1% dalam repositori %2%." #. translator: %1% is a repositories name #: zypp/RepoInfo.cc:565 #, boost-format msgid "Repository %1% does not define additional 'gpgkey=' URLs." -msgstr "" +msgstr "Repositori %1% tidak mendefinisikan 'gpgkey=' URL tambahan." #: zypp/RepoManager.cc:314 #, boost-format @@ -4637,7 +4637,7 @@ #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." -msgstr "" +msgstr "Data yang diunduh melebihi ukuran yang diharapkan '%s' dari '%s'." #: zypp/media/MediaException.cc:203 #, c-format, boost-format @@ -5080,13 +5080,13 @@ #: zypp/target/RpmPostTransCollector.cc:103 #, boost-format msgid "Executing %%posttrans script '%1%'" -msgstr "" +msgstr "Menjalankan skrip '%1%' %%posttrans" #. show a final message #: zypp/target/RpmPostTransCollector.cc:161 #, c-format, boost-format msgid "Executing %posttrans scripts" -msgstr "" +msgstr "Menjalankan skrip %posttrans" #: zypp/target/TargetImpl.cc:311 msgid " executed" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.7.2/po/zh_TW.po new/libzypp-17.8.0/po/zh_TW.po --- old/libzypp-17.7.2/po/zh_TW.po 2018-10-01 14:31:07.000000000 +0200 +++ new/libzypp-17.8.0/po/zh_TW.po 2018-10-06 13:02:12.000000000 +0200 @@ -11,7 +11,7 @@ "Project-Id-Version: zypp\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 11:09+0200\n" -"PO-Revision-Date: 2018-08-13 17:01+0000\n" +"PO-Revision-Date: 2018-10-06 11:01+0000\n" "Last-Translator: Yi-Jyun Pan <[email protected]>\n" "Language-Team: Chinese (Taiwan) " "<https://l10n.opensuse.org/projects/libzypp/master/zh_TW/>\n" @@ -4189,7 +4189,7 @@ #: zypp/media/MediaException.cc:195 #, c-format, boost-format msgid "Downloaded data exceeded the expected filesize '%s' of '%s'." -msgstr "下載到的資料超出了預期檔案大小 %$2s 中的 %1$s。" +msgstr "下載到的資料超出了預期檔案大小 %s/%s。" #: zypp/media/MediaException.cc:203 #, c-format, boost-format diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.7.2/zypp/Resolver.cc new/libzypp-17.8.0/zypp/Resolver.cc --- old/libzypp-17.7.2/zypp/Resolver.cc 2018-10-01 14:31:07.000000000 +0200 +++ new/libzypp-17.8.0/zypp/Resolver.cc 2018-10-05 11:37:18.000000000 +0200 @@ -86,6 +86,10 @@ void Resolver::setIgnoreAlreadyRecommended( bool yesno_r) { _pimpl->setIgnoreAlreadyRecommended( yesno_r ); } bool Resolver::ignoreAlreadyRecommended() const { return _pimpl->ignoreAlreadyRecommended(); } + void Resolver::setInr( ResolverNamespaces namespaces_r ) { _pimpl->setInr( namespaces_r ); } + void Resolver::resetInr() { setInr( ResolverNamespaces() ); } + ResolverNamespaces Resolver::inr() const { return _pimpl->inr(); } + void Resolver::setOnlyRequires( bool yesno_r ) { _pimpl->setOnlyRequires( yesno_r ); } void Resolver::resetOnlyRequires() { _pimpl->setOnlyRequires( indeterminate ); } bool Resolver::onlyRequires() const { return _pimpl->onlyRequires(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.7.2/zypp/Resolver.h new/libzypp-17.8.0/zypp/Resolver.h --- old/libzypp-17.7.2/zypp/Resolver.h 2018-10-01 14:31:07.000000000 +0200 +++ new/libzypp-17.8.0/zypp/Resolver.h 2018-10-05 11:37:18.000000000 +0200 @@ -22,6 +22,7 @@ #include "zypp/PoolItem.h" #include "zypp/Capabilities.h" #include "zypp/Capability.h" +#include "zypp/ResolverNamespace.h" #include "zypp/solver/detail/Types.h" @@ -188,6 +189,15 @@ bool ignoreAlreadyRecommended() const; /** + * Weak form of \ref ignoreAlreadyRecommended \c =false. + * Try to re-evaluate recommendations for specific namespaces only. + * \note May not support all namespaces. + */ + void setInr( ResolverNamespaces namespaces_r ); + void resetInr(); + ResolverNamespaces inr() const; + + /** * Setting whether required packages are installed ONLY * So recommended packages, language packages and packages which depend * on hardware (modalias) will not be regarded. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.7.2/zypp/ResolverNamespace.h new/libzypp-17.8.0/zypp/ResolverNamespace.h --- old/libzypp-17.7.2/zypp/ResolverNamespace.h 2018-10-01 14:31:07.000000000 +0200 +++ new/libzypp-17.8.0/zypp/ResolverNamespace.h 2018-10-05 11:37:18.000000000 +0200 @@ -31,6 +31,12 @@ /** \relates ResolverNamespace Flags */ ZYPP_DECLARE_FLAGS_AND_OPERATORS(ResolverNamespaces,ResolverNamespace); + /** \relates ResolverNamespace All bits set. */ + static constexpr const ResolverNamespaces NoResolverNamespaces = ResolverNamespace(); + + /** \relates ResolverNamespace All bits set. */ + static constexpr const ResolverNamespaces AllResolverNamespaces = ResolverNamespace(0xff); + /** \relates ResolverNamespace The underlying libsolv ID */ inline constexpr IdString asIdString( ResolverNamespace obj ) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.7.2/zypp/base/LogControl.cc new/libzypp-17.8.0/zypp/base/LogControl.cc --- old/libzypp-17.7.2/zypp/base/LogControl.cc 2018-10-01 14:31:07.000000000 +0200 +++ new/libzypp-17.8.0/zypp/base/LogControl.cc 2018-10-04 18:00:33.000000000 +0200 @@ -60,6 +60,23 @@ } std::cerr << ansi[level_r%n] << "OSD[" << msg_r << "]\033[0m" << std::endl; } + + + unsigned TraceLeave::_depth = 0; + + TraceLeave::TraceLeave( const char * file_r, const char * fnc_r, int line_r ) + : _file( std::move(file_r) ) + , _fnc( std::move(fnc_r) ) + , _line( line_r ) + { + //std::string::size_type p( _file.find_last_of( '/' ) ); + //if ( p != std::string::npos ) + //_file.erase( 0, p+1 ); + USR << ">>> " << std::string(_depth++,'>') << " " << _file << "(" << _fnc << "):" << _line << endl; + } + + TraceLeave::~TraceLeave() + { USR << "<<< " << std::string(--_depth,'<') << " " << _file << "(" << _fnc << "):" << _line << endl; } } #endif // ZYPP_NDEBUG diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.7.2/zypp/base/Logger.h new/libzypp-17.8.0/zypp/base/Logger.h --- old/libzypp-17.7.2/zypp/base/Logger.h 2018-10-01 14:31:07.000000000 +0200 +++ new/libzypp-17.8.0/zypp/base/Logger.h 2018-10-04 18:00:33.000000000 +0200 @@ -19,16 +19,31 @@ #ifdef ZYPP_NDEBUG #define OSDLOG( MSG ) #define OSMLOG( L, MSG ) +#define TRACELEAVE #else namespace zypp { namespace debug { void osdlog( const std::string & msg_r, unsigned level_r ); // LogControl.cc + + struct TraceLeave // LogControl.cc + { + TraceLeave( const TraceLeave & ) =delete; + TraceLeave & operator=( const TraceLeave & ) =delete; + TraceLeave( const char * file_r, const char * fnc_r, int line_r ); + ~TraceLeave(); + private: + static unsigned _depth; + const char * _file; + const char * _fnc; + int _line; + }; } } #define OSDLOG( MSG ) ::zypp::debug::osdlog( MSG, 0 ) #define OSMLOG( L, MSG ) ::zypp::debug::osdlog( MSG, L ) +#define TRACELEAVE ::zypp::debug::TraceLeave _TraceLeave( __FILE__, __FUNCTION__, __LINE__ ) #endif // ZYPP_NDEBUG /////////////////////////////////////////////////////////////////// diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.7.2/zypp/repo/yum/Downloader.cc new/libzypp-17.8.0/zypp/repo/yum/Downloader.cc --- old/libzypp-17.7.2/zypp/repo/yum/Downloader.cc 2018-10-01 14:31:07.000000000 +0200 +++ new/libzypp-17.8.0/zypp/repo/yum/Downloader.cc 2018-10-04 18:00:33.000000000 +0200 @@ -37,7 +37,7 @@ RepoStatus Downloader::status( MediaSetAccess &media ) { - RepoStatus ret( media.provideFile( repoInfo().path() / "/repodata/repomd.xml" ) ); + RepoStatus ret( media.provideOptionalFile( repoInfo().path() / "/repodata/repomd.xml" ) ); if ( !ret.empty() ) // else: mandatory master index is missing ret = ret && RepoStatus( media.provideOptionalFile( "/media.1/media" ) ); // else: mandatory master index is missing -> stay empty diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.7.2/zypp/sat/LookupAttr.cc new/libzypp-17.8.0/zypp/sat/LookupAttr.cc --- old/libzypp-17.7.2/zypp/sat/LookupAttr.cc 2018-10-01 14:31:07.000000000 +0200 +++ new/libzypp-17.8.0/zypp/sat/LookupAttr.cc 2018-10-05 14:57:44.000000000 +0200 @@ -383,7 +383,6 @@ { switch ( solvAttrType() ) { - case REPOKEY_TYPE_U32: case REPOKEY_TYPE_NUM: case REPOKEY_TYPE_CONSTANT: return true; @@ -547,7 +546,6 @@ { switch ( solvAttrType() ) { - case REPOKEY_TYPE_U32: case REPOKEY_TYPE_NUM: case REPOKEY_TYPE_CONSTANT: return _dip->kv.num; @@ -566,7 +564,6 @@ { switch ( solvAttrType() ) { - case REPOKEY_TYPE_U32: case REPOKEY_TYPE_NUM: case REPOKEY_TYPE_CONSTANT: return SOLV_KV_NUM64(&_dip->kv); @@ -634,7 +631,6 @@ } break; - case REPOKEY_TYPE_U32: case REPOKEY_TYPE_NUM: case REPOKEY_TYPE_CONSTANT: return str::numstring( asInt() ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.7.2/zypp/sat/Pool.cc new/libzypp-17.8.0/zypp/sat/Pool.cc --- old/libzypp-17.7.2/zypp/sat/Pool.cc 2018-10-01 14:31:07.000000000 +0200 +++ new/libzypp-17.8.0/zypp/sat/Pool.cc 2018-10-12 12:44:03.000000000 +0200 @@ -243,6 +243,9 @@ Queue Pool::autoInstalled() const { return myPool().autoInstalled(); } void Pool::setAutoInstalled( const Queue & autoInstalled_r ){ myPool().setAutoInstalled( autoInstalled_r ); } + Queue Pool::rebootNeededIdents() const { return myPool().rebootNeededIdents(); } + void Pool::setRebootNeededIdents( const Queue & rebootNeeded_r ){ myPool().setRebootNeededIdents( rebootNeeded_r ); } + /****************************************************************** ** ** FUNCTION NAME : operator<< diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.7.2/zypp/sat/Pool.h new/libzypp-17.8.0/zypp/sat/Pool.h --- old/libzypp-17.7.2/zypp/sat/Pool.h 2018-10-01 14:31:07.000000000 +0200 +++ new/libzypp-17.8.0/zypp/sat/Pool.h 2018-10-12 12:44:03.000000000 +0200 @@ -265,6 +265,12 @@ void setAutoInstalled( const Queue & autoInstalled_r ); //@} + /** Get ident list of all solvables that trigger the "reboot needed" flag. */ + Queue rebootNeededIdents() const; + + /** Set ident list of all solvables that trigger the "reboot needed" flag. */ + void setRebootNeededIdents( const Queue & rebootNeeded_r ); + public: /** Expert backdoor. */ detail::CPool * get() const; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.7.2/zypp/sat/Solvable.cc new/libzypp-17.8.0/zypp/sat/Solvable.cc --- old/libzypp-17.7.2/zypp/sat/Solvable.cc 2018-10-01 14:31:07.000000000 +0200 +++ new/libzypp-17.8.0/zypp/sat/Solvable.cc 2018-10-12 12:44:03.000000000 +0200 @@ -387,6 +387,11 @@ return myPool().isOnSystemByAuto( ident_r ); } + bool Solvable::identTriggersRebootHint ( const IdString &ident_r ) + { + return myPool().triggersRebootNeededHint( ident_r ); + } + bool Solvable::multiversionInstall() const { NO_SOLVABLE_RETURN( false ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.7.2/zypp/sat/Solvable.h new/libzypp-17.8.0/zypp/sat/Solvable.h --- old/libzypp-17.7.2/zypp/sat/Solvable.h 2018-10-01 14:31:07.000000000 +0200 +++ new/libzypp-17.8.0/zypp/sat/Solvable.h 2018-10-12 12:44:03.000000000 +0200 @@ -136,6 +136,11 @@ /** \overload static version */ static bool identIsAutoInstalled( const IdString & ident_r ); + /** Whether installing or upgrading a solvable with the same \ref ident will trigger the reboot needed hint. */ + bool identTriggersRebootHint() const + { return identTriggersRebootHint( ident() ); } + static bool identTriggersRebootHint ( const IdString &ident_r ); + /** Whether different versions of this package can be installed at the same time. * Per default \c false. \see also \ref ZConfig::multiversion. */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.7.2/zypp/sat/SolvableType.h new/libzypp-17.8.0/zypp/sat/SolvableType.h --- old/libzypp-17.7.2/zypp/sat/SolvableType.h 2018-10-01 14:31:07.000000000 +0200 +++ new/libzypp-17.8.0/zypp/sat/SolvableType.h 2018-10-12 12:44:03.000000000 +0200 @@ -80,6 +80,7 @@ bool onSystemByAuto() const { return satSolvable().onSystemByAuto(); } bool identIsAutoInstalled() const { return satSolvable().identIsAutoInstalled(); } bool multiversionInstall() const { return satSolvable().multiversionInstall(); } + bool identTriggersRebootHint() const { return satSolvable().identTriggersRebootHint(); } Date buildtime() const { return satSolvable().buildtime(); } Date installtime() const { return satSolvable().installtime(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.7.2/zypp/sat/detail/PoolImpl.h new/libzypp-17.8.0/zypp/sat/detail/PoolImpl.h --- old/libzypp-17.7.2/zypp/sat/detail/PoolImpl.h 2018-10-01 14:31:07.000000000 +0200 +++ new/libzypp-17.8.0/zypp/sat/detail/PoolImpl.h 2018-10-12 12:44:03.000000000 +0200 @@ -306,6 +306,18 @@ bool isOnSystemByAuto( IdString ident_r ) const { return _autoinstalled.contains( ident_r.id() ); } + + /** Get ident list of all solvables that trigger the "reboot needed" flag. */ + StringQueue rebootNeededIdents() const + { return _rebootNeeded; } + + /** Set ident list of all solvables that trigger the "reboot needed" flag. */ + void setRebootNeededIdents( const StringQueue & rebootNeeded_r ) + { _rebootNeeded = rebootNeeded_r; } + + bool triggersRebootNeededHint( IdString ident_r ) const + { return _rebootNeeded.contains( ident_r.id() ); } + //@} public: @@ -337,6 +349,9 @@ /** */ sat::StringQueue _autoinstalled; + /** database of all identifiers that will trigger the "reboot needed" flag */ + sat::StringQueue _rebootNeeded; + /** filesystems mentioned in /etc/sysconfig/storage */ mutable scoped_ptr<std::set<std::string> > _requiredFilesystemsPtr; }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.7.2/zypp/solver/detail/Resolver.cc new/libzypp-17.8.0/zypp/solver/detail/Resolver.cc --- old/libzypp-17.7.2/zypp/solver/detail/Resolver.cc 2018-10-01 14:31:07.000000000 +0200 +++ new/libzypp-17.8.0/zypp/solver/detail/Resolver.cc 2018-10-05 11:37:18.000000000 +0200 @@ -47,6 +47,9 @@ using std::endl; using std::make_pair; +#undef ZYPP_BASE_LOGGER_LOGGROUP +#define ZYPP_BASE_LOGGER_LOGGROUP "zypp::solver" + ///////////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////////// @@ -73,6 +76,7 @@ OUTS( _solveSrcPackages ); OUTS( _cleandepsOnRemove ); OUTS( _ignoreAlreadyRecommended ); + OUTS( _inr ); #undef OUT return os << "<resolver/>"; } @@ -91,6 +95,7 @@ , _solveSrcPackages ( false ) , _cleandepsOnRemove ( ZConfig::instance().solver_cleandepsOnRemove() ) , _ignoreAlreadyRecommended ( true ) + // _inr defaults to ResolverNamespaces() { sat::Pool satPool( sat::Pool::instance() ); @@ -306,6 +311,7 @@ _satResolver->setFixsystem ( isVerifyingMode() ); _satResolver->setIgnorealreadyrecommended ( ignoreAlreadyRecommended() ); + _satResolver->setInr ( inr() ); _satResolver->setOnlyRequires ( onlyRequires() ); _satResolver->setUpdatesystem (_updateMode); _satResolver->setSolveSrcPackages ( solveSrcPackages() ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.7.2/zypp/solver/detail/Resolver.h new/libzypp-17.8.0/zypp/solver/detail/Resolver.h --- old/libzypp-17.7.2/zypp/solver/detail/Resolver.h 2018-10-01 14:31:07.000000000 +0200 +++ new/libzypp-17.8.0/zypp/solver/detail/Resolver.h 2018-10-05 11:37:18.000000000 +0200 @@ -95,6 +95,7 @@ bool _cleandepsOnRemove; // whether removing a package should also remove no longer needed requirements bool _ignoreAlreadyRecommended; //ignore recommended packages that have already been recommended by the installed packages + ResolverNamespaces _inr; // Try to re-evaluate recommendations for these namespaces //@} // Additional QueueItems which has to be regarded by the solver @@ -167,6 +168,9 @@ bool ignoreAlreadyRecommended() const { return _ignoreAlreadyRecommended; } void setIgnoreAlreadyRecommended( bool yesno_r ) { _ignoreAlreadyRecommended = yesno_r; } + ResolverNamespaces inr() const { return _inr; } + void setInr( ResolverNamespaces namespaces_r ) { _inr = namespaces_r; } + bool onlyRequires () const { return _onlyRequires; } void setOnlyRequires( TriBool state_r ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.7.2/zypp/solver/detail/SATResolver.cc new/libzypp-17.8.0/zypp/solver/detail/SATResolver.cc --- old/libzypp-17.7.2/zypp/solver/detail/SATResolver.cc 2018-10-01 14:31:07.000000000 +0200 +++ new/libzypp-17.8.0/zypp/solver/detail/SATResolver.cc 2018-10-05 11:37:18.000000000 +0200 @@ -62,6 +62,9 @@ #define XDEBUG(x) do { if (base::logger::isExcessive()) XXX << x << std::endl;} while (0) +#undef ZYPP_BASE_LOGGER_LOGGROUP +#define ZYPP_BASE_LOGGER_LOGGROUP "zypp::solver" + ///////////////////////////////////////////////////////////////////////// namespace zypp { /////////////////////////////////////////////////////////////////////// @@ -167,6 +170,7 @@ os << " solveSrcPackages = " << _solveSrcPackages << endl; os << " cleandepsOnRemove = " << _cleandepsOnRemove << endl; os << " fixsystem = " << _fixsystem << endl; + os << " inr namespace = " << _inr << endl; } else { os << "<NULL>"; } @@ -622,16 +626,30 @@ // Ad rules for changed requestedLocales const auto & trackedLocaleIds( myPool().trackedLocaleIds() ); - for ( const auto & locale : trackedLocaleIds.added() ) + if ( _inr.testFlag( ResolverNamespace::language ) ) { - queue_push( &(_jobQueue), SOLVER_INSTALL | SOLVER_SOLVABLE_PROVIDES ); - queue_push( &(_jobQueue), Capability( ResolverNamespace::language, IdString(locale) ).id() ); + // inr mode + for ( const auto & locale : trackedLocaleIds.current() ) + { + queue_push( &(_jobQueue), SOLVER_INSTALL | SOLVER_SOLVABLE_PROVIDES ); + queue_push( &(_jobQueue), Capability( ResolverNamespace::language, IdString(locale) ).id() ); + } + // TODO cleanup not requested locale packages? } - - for ( const auto & locale : trackedLocaleIds.removed() ) + else { - queue_push( &(_jobQueue), SOLVER_ERASE | SOLVER_SOLVABLE_PROVIDES | SOLVER_CLEANDEPS ); // needs uncond. SOLVER_CLEANDEPS! - queue_push( &(_jobQueue), Capability( ResolverNamespace::language, IdString(locale) ).id() ); + // just track changed locakes + for ( const auto & locale : trackedLocaleIds.added() ) + { + queue_push( &(_jobQueue), SOLVER_INSTALL | SOLVER_SOLVABLE_PROVIDES ); + queue_push( &(_jobQueue), Capability( ResolverNamespace::language, IdString(locale) ).id() ); + } + + for ( const auto & locale : trackedLocaleIds.removed() ) + { + queue_push( &(_jobQueue), SOLVER_ERASE | SOLVER_SOLVABLE_PROVIDES | SOLVER_CLEANDEPS ); // needs uncond. SOLVER_CLEANDEPS! + queue_push( &(_jobQueue), Capability( ResolverNamespace::language, IdString(locale) ).id() ); + } } // Add rules for parallel installable resolvables with different versions diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.7.2/zypp/solver/detail/SATResolver.h new/libzypp-17.8.0/zypp/solver/detail/SATResolver.h --- old/libzypp-17.7.2/zypp/solver/detail/SATResolver.h 2018-10-01 14:31:07.000000000 +0200 +++ new/libzypp-17.8.0/zypp/solver/detail/SATResolver.h 2018-10-05 11:37:18.000000000 +0200 @@ -115,6 +115,8 @@ bool _cleandepsOnRemove:1; // whether removing a package should also remove no longer needed requirements private: + ResolverNamespaces _inr; // Try to re-evaluate recommendations for these namespaces + private: // ---------------------------------- methods std::string SATprobleminfoString (Id problem, std::string &detail, Id &ignoreId); void resetItemTransaction (PoolItem item); @@ -176,6 +178,9 @@ bool ignorealreadyrecommended () const {return _ignorealreadyrecommended;} void setIgnorealreadyrecommended ( const bool ignorealreadyrecommended) { _ignorealreadyrecommended = ignorealreadyrecommended;} + ResolverNamespaces inr() const { return _inr; } + void setInr( ResolverNamespaces namespaces_r ) { _inr = namespaces_r; } + bool distupgrade () const {return _distupgrade;} void setDistupgrade ( const bool distupgrade) { _distupgrade = distupgrade;} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.7.2/zypp/solver/detail/Testcase.cc new/libzypp-17.8.0/zypp/solver/detail/Testcase.cc --- old/libzypp-17.7.2/zypp/solver/detail/Testcase.cc 2018-10-01 14:31:07.000000000 +0200 +++ new/libzypp-17.8.0/zypp/solver/detail/Testcase.cc 2018-10-05 11:37:18.000000000 +0200 @@ -308,6 +308,7 @@ void deleteResolvable( const PoolItem & pi_r ); void addDependencies (const CapabilitySet &capRequire, const CapabilitySet &capConflict); void addUpgradeRepos( const std::set<Repository> & upgradeRepos_r ); + void addInr( ResolverNamespaces namespaces_r ); std::string filename () { return dumpFile; } }; @@ -463,6 +464,12 @@ } } +void HelixControl::addInr( ResolverNamespaces namespaces_r ) +{ + if ( namespaces_r ) + *file << "<inrNamespaces str=\"" << namespaces_r << "\" int=\"" << str::numstring((namespaces_r)) << "\"/>" << endl; +} + //--------------------------------------------------------------------------- Testcase::Testcase() @@ -594,6 +601,7 @@ control.addDependencies (SystemCheck::instance().requiredSystemCap(), SystemCheck::instance().conflictSystemCap()); control.addUpgradeRepos( resolver.upgradeRepos() ); + control.addInr( resolver.inr() ); control.addTagIf( "distupgrade", resolver.isUpgradeMode() ); control.addTagIf( "update", resolver.isUpdateMode() ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.7.2/zypp/target/TargetImpl.cc new/libzypp-17.8.0/zypp/target/TargetImpl.cc --- old/libzypp-17.7.2/zypp/target/TargetImpl.cc 2018-10-01 14:31:07.000000000 +0200 +++ new/libzypp-17.8.0/zypp/target/TargetImpl.cc 2018-10-12 12:44:03.000000000 +0200 @@ -30,6 +30,7 @@ #include "zypp/ZConfig.h" #include "zypp/ZYppFactory.h" +#include "zypp/PathInfo.h" #include "zypp/PoolItem.h" #include "zypp/ResObjects.h" @@ -1072,6 +1073,38 @@ q.push( idstr.id() ); satpool.setAutoInstalled( q ); } + + //load the packages that will trigger the update flag being set + { + sat::StringQueue q; + filesystem::Pathname needRebootFile = home() / "needreboot"; + if ( filesystem::PathInfo ( needRebootFile ).isExist() ) { + SolvIdentFile file ( needRebootFile ); + for ( const auto & idstr : file.data() ) { + q.push( idstr.id() ); + } + } + + filesystem::Pathname needRebootDir = home() / "needreboot.d"; + if ( filesystem::PathInfo ( needRebootDir ).isExist() ) { + filesystem::DirContent ls; + filesystem::readdir( ls, needRebootDir, false ); + + for ( const filesystem::DirEntry &entry : ls ) { + + if ( entry.type != filesystem::FT_FILE ) + continue; + + SolvIdentFile file ( needRebootDir / entry.name ); + for ( const auto & idstr : file.data() ) { + q.push( idstr.id() ); + } + } + } + + satpool.setRebootNeededIdents( q ); + } + if ( ZConfig::instance().apply_locks_file() ) { const HardLocksFile::Data & hardLocks( _hardLocksFile.data() ); @@ -1468,6 +1501,12 @@ } else { + if ( citem.identTriggersRebootHint() ) { + auto rebootNeededFile = root() / "/var/run/reboot-needed"; + if ( filesystem::assert_file( rebootNeededFile ) == EEXIST) + filesystem::touch( rebootNeededFile ); + } + success = true; step->stepStage( sat::Transaction::STEP_DONE ); }
