1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
#include "Tools.h"
#include <zypp/PoolQuery.h>
#include <zypp/target/rpm/librpmDb.h>
#include <zypp/parser/ProductFileReader.h>
#include <zypp/sat/WhatObsoletes.h>
#include <zypp/ExternalProgram.h>
///////////////////////////////////////////////////////////////////
//static const Pathname sysRoot( getenv("SYSROOT") ? getenv("SYSROOT") : "/Local/ROOT" );
//static const Pathname sysRoot( "/tmp/ToolScanRepos" );
static const Pathname sysRoot( "/" );
///////////////////////////////////////////////////////////////////
bool solve()
{
bool rres = false;
{
//zypp::base::LogControl::TmpLineWriter shutUp;
//getZYpp()->resolver()->setOnlyRequires( true );
rres = getZYpp()->resolver()->resolvePool();
}
if ( ! rres )
{
ERR << "resolve " << rres << endl;
getZYpp()->resolver()->problems();
return false;
}
MIL << "resolve " << rres << endl;
return true;
}
bool upgrade()
{
bool rres = false;
{
//zypp::base::LogControl::TmpLineWriter shutUp;
Measure x( "Upgrade" );
rres = getZYpp()->resolver()->doUpgrade();
}
if ( ! rres )
{
Measure x( "Upgrade Error" );
ERR << "upgrade " << rres << endl;
getZYpp()->resolver()->problems();
return false;
}
MIL << "upgrade " << rres << endl;
return true;
}
namespace zypp
{
namespace target
{
void writeUpgradeTestcase();
}
}
std::ostream & operator<<( std::ostream & str, const sat::Solvable::SplitIdent & obj )
{
str << "{" << obj.ident() << "}{" << obj.kind() << "}{" << obj.name () << "}" << endl;
return str;
}
namespace zypp {
std::ostream & dumpOn( std::ostream & str, const Url & obj )
{
str << "{" << obj.getHost() << "}{" << obj.getPort() << "}";
return str;
}
}
int main( int argc, char * argv[] )
try {
--argc;
++argv;
zypp::base::LogControl::instance().logToStdErr();
INT << "===[START]==========================================" << endl;
///////////////////////////////////////////////////////////////////
if ( sysRoot == "/" )
::unsetenv( "ZYPP_CONF" );
ResPool pool( ResPool::instance() );
sat::Pool satpool( sat::Pool::instance() );
///////////////////////////////////////////////////////////////////
dumpRange( WAR << "satpool.multiversion " , satpool.multiversion().begin(), satpool.multiversion().end() ) << endl;
TestSetup::LoadSystemAt( sysRoot, Arch_i586 );
///////////////////////////////////////////////////////////////////
ui::Selectable::Ptr p( getSel<Package>( "kruler" ) );
if ( p )
{
USR << p->setToDelete() << endl;
getZYpp()->resolver()->setCleandepsOnRemove( true );
solve();
}
///////////////////////////////////////////////////////////////////
INT << "===[END]============================================" << endl << endl;
zypp::base::LogControl::instance().logNothing();
return 0;
}
catch ( const Exception & exp )
{
INT << exp << endl << exp.historyAsString();
}
catch (...)
{}
|