4 #include <wibble/test.h>
10 #include <wibble/exception.h>
12 #include <apt-pkg/pkgcache.h>
13 #include <apt-pkg/sourcelist.h>
14 #include <apt-pkg/error.h>
15 #include <apt-pkg/policy.h>
16 #include <apt-pkg/cachefile.h>
17 #include <apt-pkg/progress.h>
18 #include <apt-pkg/pkgcachegen.h>
19 #include <apt-pkg/init.h>
28 std::string
desc()
const throw () {
33 while ( !_error->empty() ) {
35 _error->PopMessage( err );
36 std::cerr << err << std::endl;
143 m_progress =
new OpProgress();
144 m_tryWriteable =
true;
165 if ( !_config->FindB(
"Initialized") ) {
166 pkgInitConfig(*_config);
167 _config->Set(
"Initialized", 1);
168 pkgInitSystem(*_config, _system);
173 if ( m_tryWriteable ) {
176 }
catch ( std::exception e ) {
177 m_tryWriteable =
false;
179 m_tryWriteable =
true;
185 if ( list.ReadMainList() == false ) {
186 _error->DumpErrors();
187 throw wibble::exception::System(
188 "The list of sources could not be read." );
192 bool Res = pkgMakeStatusCache( list, *m_progress, &m, !m_writeable );
195 std::cerr <<
"The package lists or status file "
196 "could not be parsed or opened." << std::endl;
198 "The package lists or status file "
199 "could not be parsed or opened." );
202 m_cache =
new pkgCache( m,
true );
204 if ( ReadPinFile( *
m_policy ) ==
false )
205 throw wibble::exception::System(
"error reading pin file" );
210 if ( _config->FindB(
"Initialized") ) {
222 pkgCache::VerIterator
anyVersion( pkgCache::PkgIterator pi ) {
223 if ( pi.end() )
return pkgCache::VerIterator();
224 return pi.VersionList();
228 pkgCache::PkgIterator pi =
cache().FindPkg( p.
package() );
229 if ( pi.end() )
return Token();
230 pkgCache::VerIterator vi =
policy().GetCandidateVer( pi );
231 if ( vi.end() )
return Token();
238 if ( pi.end() )
return pkgCache::VerIterator();
239 pkgCache::VerIterator vi =
policy().GetCandidateVer( pi );
240 if ( vi.end() )
return pkgCache::VerIterator();
245 if ( pi.end() )
return pkgCache::VerIterator();
246 pkgCache::VerIterator vi = pkgCache::VerIterator(
cache(),
247 cache().VerP + pi->CurrentVer );
248 if ( vi.end() )
return pkgCache::VerIterator();
261 return pkgCache::VerIterator();
262 for (pkgCache::VerIterator vi = pi.VersionList(); !vi.end(); ++vi)
263 if ( t.
version() == vi.VerStr() )
265 return pkgCache::VerIterator();
269 pkgCache::VerIterator vi )
272 return pkgCache::VerFileIterator();
273 pkgCache::VerFileIterator vfi = vi.FileList();
274 for ( ; !vfi.end(); vfi++ )
275 if ( ( vfi.File()->Flags & pkgCache::Flag::NotSource ) == 0)
291 if ( ! ( P->CurrentState == pkgCache::State::ConfigFiles
292 || P->CurrentState == pkgCache::State::NotInstalled ) )
297 pkgDepCache::StateCache S =
state()[ P ];
300 if ( ( S.iFlags & pkgDepCache::ReInstall )
301 == pkgDepCache::ReInstall )
307 if ( ( S.iFlags & pkgDepCache::Purge ) == pkgDepCache::Purge )
311 if ( S.InstBroken() )
313 if ( P->SelectedState == pkgCache::State::Hold )
341 template<
typename Internal >
352 bool empty()
const {
return m_head.end(); }
391 extern const char *
fields[];
396 typedef std::string
T;
Definition: core/apt.h:360
std::string desc() const
Definition: core/apt.h:28
pkgCache::PkgIterator lookupPackage(Token t)
Definition: core/apt.h:252
bool hasVersion() const
Definition: token.h:36
Definition: core/apt.h:359
Definition: core/apt.h:42
pkgDepCache & state()
Definition: core/apt.h:119
Definition: core/apt.h:50
Definition: core/apt.h:388
PackageState & operator=(unsigned i)
Definition: core/apt.h:62
const version::Internal & head() const
Definition: core/apt.h:377
Definition: core/apt.h:27
unsigned m_state
Definition: core/apt.h:106
void invalidate()
Definition: core/apt.h:209
const char * fields[]
Definition: record.cpp:8
Definition: core/apt.h:47
Token validate(Token t)
Definition: core/apt.h:325
Definition: core/apt.h:51
Definition: core/apt.h:54
bool m_writeable
Definition: core/apt.h:133
time_t timestamp()
Definition: core/apt.h:135
pkgPolicy * m_policy
Definition: core/apt.h:338
PackageState & operator|=(const PackageState &s)
Definition: core/apt.h:67
Internal & head()
Definition: core/apt.h:351
Definition: core/apt.h:389
Definition: core/apt.h:388
AptException(const std::string &ctx)
Definition: core/apt.h:32
bool hold() const
Definition: core/apt.h:95
pkgCache::VerIterator Internal
Definition: core/apt.h:362
Definition: core/apt.h:387
Definition: core/apt.h:369
Definition: core/apt.h:44
bool writeable()
Definition: core/apt.h:152
Internal m_head
Definition: core/apt.h:343
Internal Type
Definition: core/apt.h:344
-*- C++ -*- (c) 2006, 2007 Petr Rockai me@mornfall.net
Definition: apt.cc:43
bool isInstalled() const
Definition: core/apt.h:81
OpProgress * m_progress
Definition: core/apt.h:131
PackageState invalidState()
Definition: core/apt.h:282
PropertyId
Definition: core/apt.h:359
pkgCache * m_cache
Definition: core/apt.h:336
Definition: core/apt.h:374
bool purge() const
Definition: core/apt.h:88
Definition: core/apt.h:387
pkgCache::VerIterator lookupVersion(Token t)
Definition: core/apt.h:256
bool install() const
Definition: core/apt.h:83
pkgCache::VerFileIterator Internal
Definition: core/apt.h:393
Definition: core/apt.h:395
bool held() const
Definition: core/apt.h:100
Definition: core/apt.h:55
Definition: core/apt.h:46
std::string package() const
Definition: token.h:22
pkgPolicy & policy()
Definition: core/apt.h:125
Definition: core/apt.h:389
Definition: core/apt.h:369
Definition: core/apt.h:112
Definition: core/apt.h:360
Definition: core/apt.h:388
bool valid() const
Definition: token.h:40
pkgCache::VerIterator anyVersion(pkgCache::PkgIterator pi)
Definition: core/apt.h:222
time_t aptTimestamp()
Definition: apt.cpp:9
~AptDatabase()
Definition: core/apt.h:331
bool willBreak() const
Definition: core/apt.h:90
bool nowBroken() const
Definition: core/apt.h:101
static pkgCache::VerFileIterator lookupVersionFile(pkgCache::VerIterator vi)
Definition: core/apt.h:268
Definition: core/apt.h:52
version::Internal m_head
Definition: core/apt.h:375
Definition: core/apt.h:389
Definition: core/apt.h:359
PackageState()
Definition: core/apt.h:76
bool hasNewVersion() const
Definition: core/apt.h:98
void openState()
Definition: core/apt.h:158
std::string version() const
Definition: token.h:17
Query
Definition: core/apt.h:43
Definition: core/apt.h:45
const Internal & head() const
Definition: core/apt.h:350
Definition: core/apt.h:369
PackageState(unsigned a)
Definition: core/apt.h:72
Definition: core/apt.h:53
bool modify() const
Definition: core/apt.h:103
Definition: core/apt.h:360
void setProgress(OpProgress *p)
Definition: core/apt.h:148
Definition: core/apt.h:342
bool keep() const
Definition: core/apt.h:89
Definition: core/apt.h:388
pkgDepCache * m_state
Definition: core/apt.h:337
Definition: core/apt.h:359
bool isValid() const
Definition: core/apt.h:79
version::Internal & head()
Definition: core/apt.h:378
std::string _id
Definition: token.h:11
bool installed() const
Definition: core/apt.h:97
bool empty() const
Definition: core/apt.h:352
Definition: core/apt.h:387
PropertyId
Definition: core/apt.h:387
AptInternalList tail() const
Definition: core/apt.h:345
Definition: core/apt.h:370
pkgCache::VerIterator candidateVersion(pkgCache::PkgIterator pi)
Definition: core/apt.h:237
Token candidateVersion(Token p)
Definition: core/apt.h:227
Definition: core/apt.h:363
std::string T
Definition: core/apt.h:396
pkgCache::PkgIterator Internal
Definition: core/apt.h:371
AptInternalList< Internal > InternalList
Definition: core/apt.h:381
AptInternalList(Internal head)
Definition: core/apt.h:353
pkgCache::VerIterator installedVersion(pkgCache::PkgIterator pi)
Definition: core/apt.h:244
PackageState packageState(pkgCache::PkgIterator P)
Definition: core/apt.h:286
AptDatabase()
Definition: core/apt.h:139
pkgCache & cache()
Definition: core/apt.h:113
Definition: core/apt.h:387
PropertyId
Definition: core/apt.h:369
Definition: core/apt.h:372
Definition: core/apt.h:369
bool m_tryWriteable
Definition: core/apt.h:132
bool reinstall() const
Definition: core/apt.h:85
AptInternalList()
Definition: core/apt.h:354
bool newInstall() const
Definition: core/apt.h:94
bool upgrade() const
Definition: core/apt.h:92
bool upgradable() const
Definition: core/apt.h:99
PackageState packageState(Token t)
Definition: core/apt.h:318
Definition: core/apt.h:369
Definition: core/apt.h:387
Definition: core/apt.h:387
void openCache()
Definition: core/apt.h:164
unsigned state
Definition: core/apt.h:58
Definition: core/apt.h:49
Definition: core/apt.h:359
Definition: core/apt.h:48