15#ifndef ZYPP_TARGET_RPM_RPMDB_H
16#define ZYPP_TARGET_RPM_RPMDB_H
39class RpmPostTransCollector;
56 using Error =
class InstTargetError;
109 return( ! _root.
empty() );
126 void initDatabase(
Pathname root_r =
Pathname(),
bool doRebuild_r =
false );
136 void closeDatabase();
144 void rebuildDatabase();
152 void importPubkey(
const PublicKey & pubkey_r );
160 void removePubkey(
const PublicKey & pubkey_r );
165 std::list<PublicKey> pubkeys()
const;
170 std::set<Edition> pubkeyEditions()
const;
184 std::list<FileInfo> fileList(
const std::string & name_r,
const Edition & edition_r )
const;
190 bool hasFile(
const std::string & file_r,
const std::string & name_r =
"" )
const;
196 std::string whoOwnsFile(
const std::string & file_r )
const;
201 bool hasProvides(
const std::string & tag_r )
const;
206 bool hasRequiredBy(
const std::string & tag_r )
const;
211 bool hasConflicts(
const std::string & tag_r )
const;
216 bool hasPackage(
const std::string & name_r )
const;
221 bool hasPackage(
const std::string & name_r,
const Edition & ed_r )
const;
234 void getData(
const std::string & name_r,
246 void getData(
const std::string & name_r,
const Edition & ed_r,
256 SYNC_TO_KEYRING = 1<<0,
257 SYNC_FROM_KEYRING = 1<<1,
258 SYNC_BOTH = SYNC_TO_KEYRING | SYNC_FROM_KEYRING
263 void syncTrustedKeys( SyncTrustedKeyBits mode_r = SYNC_BOTH );
268 void importZyppKeyRingTrustedKeys();
272 void exportTrustedKeysInZyppKeyRing();
293 ExternalProgram::Stderr_To_Stdout);
299 bool systemReadLine(std::string &line);
338 void processConfigFiles(
const std::string& line,
339 const std::string& name,
341 const char* difffailmsg,
342 const char* diffgenmsg);
407 void installPackage (
const Pathname & filename, RpmInstFlags flags = RPMINST_NONE );
421 void removePackage(
const std::string & name_r, RpmInstFlags flags = RPMINST_NONE );
422 void removePackage(
Package::constPtr package, RpmInstFlags flags = RPMINST_NONE );
424 void removePackage(
const std::string & name_r, RpmInstFlags flags,
RpmPostTransCollector* postTransCollector_r );
431 int runposttrans(
const Pathname & filename_r,
const std::function<
void(
const std::string&)>& output_r );
449 bool backupPackage(
const std::string& packageName);
457 bool backupPackage(
const Pathname& filename);
464 void setBackupPath(
const Pathname& path);
474 _packagebackups = yes;
487 bool queryChangedFiles(FileList & fileList,
const std::string& packageName);
494 std::ostream &
dumpOn( std::ostream &
str )
const override;
Edition represents [epoch:]version[-release]
Execute a program and give access to its io An object of this class encapsulates the execution of an ...
Stderr_Disposition
Define symbols for different policies on the handling of stderr.
TraitsType::constPtrType constPtr
Class representing one GPG Public Key (PublicKeyData + ASCII armored in a tempfile).
Base class for reference counted objects.
bool empty() const
Test for an empty path.
Extract and remember posttrans scripts for later execution.
Interface to the rpm program.
std::string error_message
Error message from running rpm as external program.
std::vector< const char * > RpmArgVec
class InstTargetError Error
Default error class.
Pathname _backuppath
/var/adm/backup
ExternalProgram * process
The connection to the rpm process.
SyncTrustedKeyBits
Sync mode for syncTrustedKeys.
std::set< std::string > FileList
const Pathname & root() const
void createPackageBackups(bool yes)
whether to create package backups during install or removal
const Pathname & dbPath() const
Pathname _dbPath
Directory that contains the rpmdb.
bool _packagebackups
create package backups?
Pathname getBackupPath(void)
get backup dir for rpm config files
Pathname _root
Root directory for all operations.
int exit_code
The exit code of the rpm process, or -1 if not yet known.
CheckPackageResult
checkPackage result
String related utilities and Regular expression matching.
boost::noncopyable NonCopyable
Ensure derived classes cannot be copied.
std::ostream & operator<<(std::ostream &str, const librpmDb::db_const_iterator &obj)
Easy-to use interface to the ZYPP dependency resolver.
std::ostream & dumpOn(std::ostream &str, const Capability &obj)
const Arch Arch_armv7hnl Arch_armv7nhl ZYPP_API
Detailed rpm signature check log messages A single multiline message if CHK_OK.