rpm  4.8.1
Data Structures | Macros | Functions | Variables
rpmcli.h File Reference
#include <popt.h>
#include <rpm/rpmlib.h>
#include <rpm/rpmurl.h>
#include <rpm/rpmmacro.h>
#include <rpm/rpmcallback.h>
#include <rpm/rpmts.h>
#include <rpm/rpmfi.h>
#include <rpm/rpmvf.h>
#include <rpm/argv.h>
Include dependency graph for rpmcli.h:

Go to the source code of this file.

Data Structures

struct  rpmQVKArguments_s
 Describe query/verify/signature command line operation. More...
 
struct  rpmBuildArguments_s
 Describe build command line request. More...
 
struct  rpmInstallArguments_s
 Describe database command line requests. More...
 
struct  rpmDatabaseArguments_s
 Describe database command line requests. More...
 

Macros

#define RPMCLI_POPT_NODEPS   -1025
 Common/global popt tokens used for command line option tables. More...
 
#define RPMCLI_POPT_FORCE   -1026
 
#define RPMCLI_POPT_NOMD5   -1027
 
#define RPMCLI_POPT_NOFILEDIGEST   -1027 /* same as obsolete RPMCLI_POPT_NOMD5 */
 
#define RPMCLI_POPT_NOSCRIPTS   -1028
 
#define RPMCLI_POPT_NOSIGNATURE   -1029
 
#define RPMCLI_POPT_NODIGEST   -1030
 
#define RPMCLI_POPT_NOHDRCHK   -1031
 
#define RPMCLI_POPT_NOCONTEXTS   -1032
 

Functions

poptContext rpmcliInit (int argc, char *const argv[], struct poptOption *optionsTable)
 Initialize most everything needed by an rpm CLI executable context. More...
 
void rpmcliConfigured (void)
 Make sure that rpm configuration has been read. More...
 
poptContext rpmcliFini (poptContext optCon)
 Destroy most everything needed by an rpm CLI executable context. More...
 

Variables

int _noDirTokens
 Should version 3 packages be produced? More...
 
struct poptOption rpmcliAllPoptTable []
 Popt option table for options shared by all modes and executables. More...
 
int ftsOpts
 
struct poptOption rpmcliFtsPoptTable []
 
const char * rpmcliPipeOutput
 
const char * rpmcliRcfile
 
const char * rpmcliRootDir
 
RPMDB
struct rpmDatabaseArguments_s rpmDBArgs
 
struct poptOption rpmDatabasePoptTable []
 

RPMQV

#define _QUERY_FOR_BITS
 
enum  rpmQVSources_e {
  RPMQV_PACKAGE = 0, RPMQV_PATH, RPMQV_ALL, RPMQV_RPM,
  RPMQV_GROUP, RPMQV_WHATPROVIDES, RPMQV_WHATREQUIRES, RPMQV_TRIGGEREDBY,
  RPMQV_DBOFFSET, RPMQV_SPECFILE, RPMQV_PKGID, RPMQV_HDRID,
  RPMQV_FILEID, RPMQV_TID, RPMQV_HDLIST, RPMQV_FTSWALK
}
 Query/Verify argument qualifiers. More...
 
enum  rpmQueryFlags_e {
  QUERY_FOR_DEFAULT = 0, QUERY_MD5 = (1 << 0), QUERY_FILEDIGEST = (1 << 0), QUERY_SIZE = (1 << 1),
  QUERY_LINKTO = (1 << 2), QUERY_USER = (1 << 3), QUERY_GROUP = (1 << 4), QUERY_MTIME = (1 << 5),
  QUERY_MODE = (1 << 6), QUERY_RDEV = (1 << 7), QUERY_CONTEXTS = (1 << 15), QUERY_FILES = (1 << 16),
  QUERY_DEPS = (1 << 17), QUERY_SCRIPT = (1 << 18), QUERY_DIGEST = (1 << 19), QUERY_SIGNATURE = (1 << 20),
  QUERY_PATCHES = (1 << 21), QUERY_HDRCHK = (1 << 22), QUERY_FOR_LIST = (1 << 23), QUERY_FOR_STATE = (1 << 24),
  QUERY_FOR_DOCS = (1 << 25), QUERY_FOR_CONFIG = (1 << 26), QUERY_FOR_DUMPFILES = (1 << 27)
}
 Bit(s) to control rpmQuery() operation, stored in qva_flags. More...
 
typedef enum rpmQVSources_e rpmQVSources
 Query/Verify argument qualifiers. More...
 
typedef enum rpmQueryFlags_e rpmQueryFlags
 Bit(s) to control rpmQuery() operation, stored in qva_flags. More...
 
typedef struct rpmQVKArguments_sQVA_t
 
typedef int(* QVF_t) (QVA_t qva, rpmts ts, Header h)
 Function to display iterator matches. More...
 
typedef int(* QSpecF_t) (rpmts ts, QVA_t qva, const char *arg)
 Function to query spec file. More...
 
rpmQueryFlags rpmcliQueryFlags
 Bit(s) from common command line options. More...
 
struct rpmQVKArguments_s rpmQVKArgs
 
struct poptOption rpmQVSourcePoptTable []
 
struct poptOption rpmQueryPoptTable []
 
struct poptOption rpmVerifyPoptTable []
 
int rpmcliShowMatches (QVA_t qva, rpmts ts)
 Display query/verify information for each header in iterator. More...
 
void rpmDisplayQueryTags (FILE *fp)
 Display list of tags that can be used in –queryformat. More...
 
int rpmQueryVerify (QVA_t qva, rpmts ts, const char *arg)
 Common query/verify source interface, called once for each CLI arg. More...
 
int showQueryPackage (QVA_t qva, rpmts ts, Header h)
 Display results of package query. More...
 
int rpmcliArgIter (rpmts ts, QVA_t qva, ARGV_const_t argv)
 Iterate over query/verify arg list. More...
 
int rpmcliQuery (rpmts ts, QVA_t qva, ARGV_const_t argv)
 Display package information. More...
 
int showVerifyPackage (QVA_t qva, rpmts ts, Header h)
 Display results of package verify. More...
 
int rpmVerifySignatures (QVA_t qva, rpmts ts, FD_t fd, const char *fn)
 Check package and header signatures. More...
 
int rpmcliVerify (rpmts ts, QVA_t qva, ARGV_const_t argv)
 Verify package install. More...
 

RPMBT

typedef struct rpmBuildArguments_sBTA_t
 
struct rpmBuildArguments_s rpmBTArgs
 
struct poptOption rpmBuildPoptTable []
 

RPMEIU

#define UNINSTALL_NONE   INSTALL_NONE
 Bit(s) to control rpmErase() operation. More...
 
#define UNINSTALL_NODEPS   INSTALL_NODEPS
 
#define UNINSTALL_ALLMATCHES   INSTALL_ALLMATCHES
 
enum  rpmInstallFlags_e {
  INSTALL_NONE = 0, INSTALL_PERCENT = (1 << 0), INSTALL_HASH = (1 << 1), INSTALL_NODEPS = (1 << 2),
  INSTALL_NOORDER = (1 << 3), INSTALL_LABEL = (1 << 4), INSTALL_UPGRADE = (1 << 5), INSTALL_FRESHEN = (1 << 6),
  INSTALL_INSTALL = (1 << 7), INSTALL_ERASE = (1 << 8), INSTALL_ALLMATCHES = (1 << 9)
}
 Bit(s) to control rpmInstall() operation. More...
 
typedef enum rpmInstallFlags_e rpmInstallFlags
 Bit(s) to control rpmInstall() operation. More...
 
int rpmcliPackagesTotal
 
int rpmcliHashesCurrent
 
int rpmcliHashesTotal
 
int rpmcliProgressCurrent
 
int rpmcliProgressTotal
 
struct rpmInstallArguments_s rpmIArgs
 
struct poptOption rpmInstallPoptTable []
 
void * rpmShowProgress (const void *arg, const rpmCallbackType what, const rpm_loff_t amount, const rpm_loff_t total, fnpyKey key, void *data)
 The rpm CLI generic transaction callback handler. More...
 
int rpmInstallSource (rpmts ts, const char *arg, char **specFilePtr, char **cookie)
 Install source rpm package. More...
 
int rpmInstall (rpmts ts, struct rpmInstallArguments_s *ia, ARGV_t fileArgv)
 Install/upgrade/freshen binary rpm package. More...
 
int rpmErase (rpmts ts, struct rpmInstallArguments_s *ia, ARGV_const_t argv)
 Erase binary rpm package. More...
 

RPMK

enum  rpmSignFlags_e {
  RPMSIGN_NONE = 0, RPMSIGN_CHK_SIGNATURE = 'K', RPMSIGN_NEW_SIGNATURE = 'R', RPMSIGN_ADD_SIGNATURE = 'A',
  RPMSIGN_DEL_SIGNATURE = 'D', RPMSIGN_IMPORT_PUBKEY = 'I'
}
 Bit(s) to control rpmReSign() operation. More...
 
typedef enum rpmSignFlags_e rpmSignFlags
 Bit(s) to control rpmReSign() operation. More...
 
struct poptOption rpmSignPoptTable []
 
int rpmcliSign (rpmts ts, QVA_t qva, ARGV_const_t argv)
 Create/Modify/Check elements from signature header. More...
 

Macro Definition Documentation

◆ _QUERY_FOR_BITS

#define _QUERY_FOR_BITS

◆ RPMCLI_POPT_FORCE

#define RPMCLI_POPT_FORCE   -1026

Definition at line 71 of file rpmcli.h.

◆ RPMCLI_POPT_NOCONTEXTS

#define RPMCLI_POPT_NOCONTEXTS   -1032

Definition at line 78 of file rpmcli.h.

◆ RPMCLI_POPT_NODEPS

#define RPMCLI_POPT_NODEPS   -1025

Common/global popt tokens used for command line option tables.

Definition at line 70 of file rpmcli.h.

◆ RPMCLI_POPT_NODIGEST

#define RPMCLI_POPT_NODIGEST   -1030

Definition at line 76 of file rpmcli.h.

◆ RPMCLI_POPT_NOFILEDIGEST

#define RPMCLI_POPT_NOFILEDIGEST   -1027 /* same as obsolete RPMCLI_POPT_NOMD5 */

Definition at line 73 of file rpmcli.h.

◆ RPMCLI_POPT_NOHDRCHK

#define RPMCLI_POPT_NOHDRCHK   -1031

Definition at line 77 of file rpmcli.h.

◆ RPMCLI_POPT_NOMD5

#define RPMCLI_POPT_NOMD5   -1027

Definition at line 72 of file rpmcli.h.

◆ RPMCLI_POPT_NOSCRIPTS

#define RPMCLI_POPT_NOSCRIPTS   -1028

Definition at line 74 of file rpmcli.h.

◆ RPMCLI_POPT_NOSIGNATURE

#define RPMCLI_POPT_NOSIGNATURE   -1029

Definition at line 75 of file rpmcli.h.

◆ UNINSTALL_ALLMATCHES

#define UNINSTALL_ALLMATCHES   INSTALL_ALLMATCHES

Definition at line 371 of file rpmcli.h.

Referenced by main().

◆ UNINSTALL_NODEPS

#define UNINSTALL_NODEPS   INSTALL_NODEPS

Definition at line 370 of file rpmcli.h.

Referenced by main().

◆ UNINSTALL_NONE

#define UNINSTALL_NONE   INSTALL_NONE

Bit(s) to control rpmErase() operation.

Definition at line 369 of file rpmcli.h.

Typedef Documentation

◆ BTA_t

typedef struct rpmBuildArguments_s* BTA_t

Definition at line 335 of file rpmcli.h.

◆ QSpecF_t

typedef int(* QSpecF_t) (rpmts ts, QVA_t qva, const char *arg)

Function to query spec file.

Parameters
tstransaction set
qvaparsed query/verify options
argquery argument
Returns
0 on success

Definition at line 168 of file rpmcli.h.

◆ QVA_t

typedef struct rpmQVKArguments_s* QVA_t

Definition at line 148 of file rpmcli.h.

◆ QVF_t

typedef int(* QVF_t) (QVA_t qva, rpmts ts, Header h)

Function to display iterator matches.

Parameters
qvaparsed query/verify options
tstransaction set
hheader to use for query/verify
Returns
0 on success

Definition at line 158 of file rpmcli.h.

◆ rpmInstallFlags

Bit(s) to control rpmInstall() operation.

◆ rpmQueryFlags

Bit(s) to control rpmQuery() operation, stored in qva_flags.

Todo:
Merge rpmQueryFlags, rpmVerifyFlags, and rpmVerifyAttrs?.

◆ rpmQVSources

Query/Verify argument qualifiers.

Todo:
Reassign to tag values.

◆ rpmSignFlags

Bit(s) to control rpmReSign() operation.

Enumeration Type Documentation

◆ rpmInstallFlags_e

Bit(s) to control rpmInstall() operation.

Enumerator
INSTALL_NONE 
INSTALL_PERCENT 

from –percent

INSTALL_HASH 

from –hash

INSTALL_NODEPS 

from –nodeps

INSTALL_NOORDER 

from –noorder

INSTALL_LABEL 

from –verbose (notify)

INSTALL_UPGRADE 

from –upgrade

INSTALL_FRESHEN 

from –freshen

INSTALL_INSTALL 

from –install

INSTALL_ERASE 

from –erase

INSTALL_ALLMATCHES 

from –allmatches

Definition at line 352 of file rpmcli.h.

◆ rpmQueryFlags_e

Bit(s) to control rpmQuery() operation, stored in qva_flags.

Todo:
Merge rpmQueryFlags, rpmVerifyFlags, and rpmVerifyAttrs?.
Enumerator
QUERY_FOR_DEFAULT 
QUERY_MD5 

from –nomd5

QUERY_FILEDIGEST 

from –nofiledigest, same as –nomd5

QUERY_SIZE 

from –nosize

QUERY_LINKTO 

from –nolink

QUERY_USER 

from –nouser)

QUERY_GROUP 

from –nogroup)

QUERY_MTIME 

from –nomtime)

QUERY_MODE 

from –nomode)

QUERY_RDEV 

from –nodev

QUERY_CONTEXTS 

verify: from –nocontexts

QUERY_FILES 

verify: from –nofiles

QUERY_DEPS 

verify: from –nodeps

QUERY_SCRIPT 

verify: from –noscripts

QUERY_DIGEST 

verify: from –nodigest

QUERY_SIGNATURE 

verify: from –nosignature

QUERY_PATCHES 

verify: from –nopatches

QUERY_HDRCHK 

verify: from –nohdrchk

QUERY_FOR_LIST 

query: from –list

QUERY_FOR_STATE 

query: from –state

QUERY_FOR_DOCS 

query: from –docfiles

QUERY_FOR_CONFIG 

query: from –configfiles

QUERY_FOR_DUMPFILES 

query: from –dump

Definition at line 110 of file rpmcli.h.

◆ rpmQVSources_e

Query/Verify argument qualifiers.

Todo:
Reassign to tag values.
Enumerator
RPMQV_PACKAGE 

... from package name db search.

RPMQV_PATH 

... from file path db search.

RPMQV_ALL 

... from each installed package.

RPMQV_RPM 

... from reading binary rpm package.

RPMQV_GROUP 

... from group db search.

RPMQV_WHATPROVIDES 

... from provides db search.

RPMQV_WHATREQUIRES 

... from requires db search.

RPMQV_TRIGGEREDBY 

... from trigger db search.

RPMQV_DBOFFSET 

... from database header instance.

RPMQV_SPECFILE 

... from spec file parse (query only).

RPMQV_PKGID 

... from package id (header+payload MD5).

RPMQV_HDRID 

... from header id (immutable header SHA1).

RPMQV_FILEID 

... from file id (file MD5).

RPMQV_TID 

... from install transaction id (time stamp).

RPMQV_HDLIST 

... from system hdlist.

RPMQV_FTSWALK 

... from fts(3) walk.

Definition at line 87 of file rpmcli.h.

◆ rpmSignFlags_e

Bit(s) to control rpmReSign() operation.

Enumerator
RPMSIGN_NONE 
RPMSIGN_CHK_SIGNATURE 

from –checksig

RPMSIGN_NEW_SIGNATURE 

from –resign

RPMSIGN_ADD_SIGNATURE 

from –addsign

RPMSIGN_DEL_SIGNATURE 

from –delsign

RPMSIGN_IMPORT_PUBKEY 

from –import

Definition at line 485 of file rpmcli.h.

Function Documentation

◆ rpmcliArgIter()

int rpmcliArgIter ( rpmts  ts,
QVA_t  qva,
ARGV_const_t  argv 
)

Iterate over query/verify arg list.

Parameters
tstransaction set
qvaparsed query/verify options
argvquery argument(s) (or NULL)
Returns
0 on success, else no. of failures

◆ rpmcliConfigured()

void rpmcliConfigured ( void  )

Make sure that rpm configuration has been read.

Warning
Options like –rcfile and –verbose must precede callers option.

Referenced by main().

◆ rpmcliFini()

poptContext rpmcliFini ( poptContext  optCon)

Destroy most everything needed by an rpm CLI executable context.

Parameters
optConpopt context
Returns
NULL always

◆ rpmcliInit()

poptContext rpmcliInit ( int  argc,
char *const  argv[],
struct poptOption *  optionsTable 
)

Initialize most everything needed by an rpm CLI executable context.

Parameters
argcno. of args
argvarg array
optionsTablepopt option table
Returns
popt context (or NULL)

◆ rpmcliQuery()

int rpmcliQuery ( rpmts  ts,
QVA_t  qva,
ARGV_const_t  argv 
)

Display package information.

Todo:
hack: RPMQV_ALL can pass char ** arglist = NULL, not char * arg. Union?
Parameters
tstransaction set
qvaparsed query/verify options
argvquery argument(s) (or NULL)
Returns
0 on success, else no. of failures

Referenced by main().

◆ rpmcliShowMatches()

int rpmcliShowMatches ( QVA_t  qva,
rpmts  ts 
)

Display query/verify information for each header in iterator.

This routine uses:

  • qva->qva_mi rpm database iterator
  • qva->qva_showPackage query/verify display routine
Parameters
qvaparsed query/verify options
tstransaction set
Returns
result of last non-zero showPackage() return

◆ rpmcliSign()

int rpmcliSign ( rpmts  ts,
QVA_t  qva,
ARGV_const_t  argv 
)

Create/Modify/Check elements from signature header.

Parameters
tstransaction set
qvamode flags and parameters
argvarray of arguments (NULL terminated)
Returns
0 on success

Referenced by main().

◆ rpmcliVerify()

int rpmcliVerify ( rpmts  ts,
QVA_t  qva,
ARGV_const_t  argv 
)

Verify package install.

Todo:
hack: RPMQV_ALL can pass char ** arglist = NULL, not char * arg. Union?
Parameters
tstransaction set
qvaparsed query/verify options
argvverify argument(s) (or NULL)
Returns
0 on success, else no. of failures

Referenced by main().

◆ rpmDisplayQueryTags()

void rpmDisplayQueryTags ( FILE *  fp)

Display list of tags that can be used in –queryformat.

Parameters
fpfile handle to use for display

◆ rpmErase()

int rpmErase ( rpmts  ts,
struct rpmInstallArguments_s ia,
ARGV_const_t  argv 
)

Erase binary rpm package.

Parameters
tstransaction set
iacontrol args/bits
argvarray of package file names (NULL terminated)
Returns
0 on success

Referenced by main().

◆ rpmInstall()

int rpmInstall ( rpmts  ts,
struct rpmInstallArguments_s ia,
ARGV_t  fileArgv 
)

Install/upgrade/freshen binary rpm package.

Parameters
tstransaction set
iamode flags and parameters
fileArgvarray of package file names (NULL terminated)
Returns
0 on success
Todo:
fileArgv is modified on errors, should be ARGV_const_t

Referenced by main().

◆ rpmInstallSource()

int rpmInstallSource ( rpmts  ts,
const char *  arg,
char **  specFilePtr,
char **  cookie 
)

Install source rpm package.

Parameters
tstransaction set
argsource rpm file name
Return values
*specFilePtr(installed) spec file name
*cookie
Returns
0 on success

Referenced by main().

◆ rpmQueryVerify()

int rpmQueryVerify ( QVA_t  qva,
rpmts  ts,
const char *  arg 
)

Common query/verify source interface, called once for each CLI arg.

This routine uses:

  • qva->qva_mi rpm database iterator
  • qva->qva_showPackage query/verify display routine
Parameters
qvaparsed query/verify options
tstransaction set
argname of source to query/verify
Returns
showPackage() result, 1 if rpmdbInitIterator() is NULL

◆ rpmShowProgress()

void* rpmShowProgress ( const void *  arg,
const rpmCallbackType  what,
const rpm_loff_t  amount,
const rpm_loff_t  total,
fnpyKey  key,
void *  data 
)

The rpm CLI generic transaction callback handler.

Todo:
Remove headerFormat() from the progress callback.
Deprecated:
Transaction callback arguments need to change, so don't rely on this routine in the rpmcli API.
Parameters
argper-callback private data (e.g. an rpm header)
whatcallback identifier
amountper-callback progress info
totalper-callback progress info
keyopaque header key (e.g. file name or PyObject)
dataprivate data (e.g. rpmInstallInterfaceFlags)
Returns
per-callback data (e.g. an opened FD_t)

◆ rpmVerifySignatures()

int rpmVerifySignatures ( QVA_t  qva,
rpmts  ts,
FD_t  fd,
const char *  fn 
)

Check package and header signatures.

Parameters
qvaparsed query/verify options
tstransaction set
fdpackage file handle
fnpackage file name
Returns
0 on success, 1 on failure

◆ showQueryPackage()

int showQueryPackage ( QVA_t  qva,
rpmts  ts,
Header  h 
)

Display results of package query.

Todo:
Devise a meaningful return code.
Parameters
qvaparsed query/verify options
tstransaction set
hheader to use for query
Returns
0 always

◆ showVerifyPackage()

int showVerifyPackage ( QVA_t  qva,
rpmts  ts,
Header  h 
)

Display results of package verify.

Parameters
qvaparsed query/verify options
tstransaction set
hheader to use for verify
Returns
result of last non-zero verify return

Variable Documentation

◆ _noDirTokens

int _noDirTokens

Should version 3 packages be produced?

◆ ftsOpts

int ftsOpts

◆ rpmBTArgs

struct rpmBuildArguments_s rpmBTArgs

Referenced by main().

◆ rpmBuildPoptTable

struct poptOption rpmBuildPoptTable[]

◆ rpmcliAllPoptTable

struct poptOption rpmcliAllPoptTable[]

Popt option table for options shared by all modes and executables.

◆ rpmcliFtsPoptTable

struct poptOption rpmcliFtsPoptTable[]

◆ rpmcliHashesCurrent

int rpmcliHashesCurrent

◆ rpmcliHashesTotal

int rpmcliHashesTotal

◆ rpmcliPackagesTotal

int rpmcliPackagesTotal

◆ rpmcliPipeOutput

const char* rpmcliPipeOutput

Referenced by main().

◆ rpmcliProgressCurrent

int rpmcliProgressCurrent

◆ rpmcliProgressTotal

int rpmcliProgressTotal

◆ rpmcliQueryFlags

rpmQueryFlags rpmcliQueryFlags

Bit(s) from common command line options.

◆ rpmcliRcfile

const char* rpmcliRcfile

Referenced by main().

◆ rpmcliRootDir

const char* rpmcliRootDir

Referenced by main().

◆ rpmDatabasePoptTable

struct poptOption rpmDatabasePoptTable[]

◆ rpmDBArgs

struct rpmDatabaseArguments_s rpmDBArgs

Referenced by main().

◆ rpmIArgs

struct rpmInstallArguments_s rpmIArgs

Referenced by main().

◆ rpmInstallPoptTable

struct poptOption rpmInstallPoptTable[]

◆ rpmQueryPoptTable

struct poptOption rpmQueryPoptTable[]

◆ rpmQVKArgs

struct rpmQVKArguments_s rpmQVKArgs

Referenced by main().

◆ rpmQVSourcePoptTable

struct poptOption rpmQVSourcePoptTable[]

◆ rpmSignPoptTable

struct poptOption rpmSignPoptTable[]

◆ rpmVerifyPoptTable

struct poptOption rpmVerifyPoptTable[]