From eab9637fef4313452919caf6f9a09bb58819f389 Mon Sep 17 00:00:00 2001 From: Michael Andres Date: Mon, 28 Apr 2014 15:07:53 +0200 Subject: [PATCH] Target: maintain AutoInstalled database file Formerly auto/user installed informationn was retrieved from the history file. This had several drawbacks (log rotation, parsing effort, can't be tweaked). --- zypp/target/TargetImpl.cc | 10 ++++++++++ zypp/target/TargetImpl.h | 3 +++ 2 files changed, 13 insertions(+) diff --git a/zypp/target/TargetImpl.cc b/zypp/target/TargetImpl.cc index 47c852b..17a9db3 100644 --- a/zypp/target/TargetImpl.cc +++ b/zypp/target/TargetImpl.cc @@ -764,6 +764,7 @@ namespace zypp TargetImpl::TargetImpl( const Pathname & root_r, bool doRebuild_r ) : _root( root_r ) , _requestedLocalesFile( home() / "RequestedLocales" ) + , _autoInstalledFile( home() / "AutoInstalled" ) , _hardLocksFile( Pathname::assertprefix( _root, ZConfig::instance().locksFile() ) ) { _rpm.initDatabase( root_r, Pathname(), doRebuild_r ); @@ -1122,6 +1123,10 @@ namespace zypp } } { + sat::StringQueue q; + for ( const auto & idstr : _autoInstalledFile.data() ) + q.push( idstr.id() ); + satpool.setAutoInstalled( q ); } if ( ZConfig::instance().apply_locks_file() ) { @@ -1227,7 +1232,12 @@ namespace zypp filesystem::assert_dir( home() ); // requested locales _requestedLocalesFile.setLocales( pool_r.getRequestedLocales() ); + // autoinstalled { + SolvIdentFile::Data newdata; + for ( sat::Queue::value_type id : result.rTransaction().autoInstalled() ) + newdata.insert( IdString(id) ); + _autoInstalledFile.setData( newdata ); } // hard locks if ( ZConfig::instance().apply_locks_file() ) diff --git a/zypp/target/TargetImpl.h b/zypp/target/TargetImpl.h index 45ccfa2..353370a 100644 --- a/zypp/target/TargetImpl.h +++ b/zypp/target/TargetImpl.h @@ -27,6 +27,7 @@ #include "zypp/target/rpm/RpmDb.h" #include "zypp/target/TargetException.h" #include "zypp/target/RequestedLocalesFile.h" +#include "zypp/target/SolvIdentFile.h" #include "zypp/target/HardLocksFile.h" #include "zypp/ManagedFile.h" @@ -209,6 +210,8 @@ namespace zypp rpm::RpmDb _rpm; /** Requested Locales database */ RequestedLocalesFile _requestedLocalesFile; + /** user/auto installed database */ + SolvIdentFile _autoInstalledFile; /** Hard-Locks database */ HardLocksFile _hardLocksFile; /** Cache distributionVersion */ -- 2.7.4