tdnf/client/prototypes.h

873 lines
13 KiB
C
Raw Normal View History

2015-04-02 09:59:27 +08:00
/*
2015-04-16 05:10:08 +08:00
* Copyright (C) 2015 VMware, Inc. All Rights Reserved.
*
* Licensed under the GNU Lesser General Public License v2.1 (the "License");
* you may not use this file except in compliance with the License. The terms
* of the License are located in the COPYING file of this distribution.
*/
/*
* Header : prototypes.h
*
* Abstract :
*
* tdnfclientlib
*
* client library
*
* Authors : Priyesh Padmavilasom (ppadmavilasom@vmware.com)
*/
//checklocal.c
uint32_t
TDNFCheckLocalPackagesInternal(
PTDNF pTdnf,
const char* pszLocalPath
);
//clean.c
uint32_t
TDNFCopyEnabledRepos(
PTDNF_REPO_DATA_INTERNAL pRepoData,
char*** pppszReposUsed
);
//client.c
uint32_t
TDNFApplyScopeFilter(
HyQuery hQuery,
TDNF_SCOPE nScope
);
uint32_t
TDNFApplyPackageFilter(
HyQuery hQuery,
char** ppszPackageNameSpecs
);
2015-04-02 09:59:27 +08:00
//gpgcheck.c
uint32_t
ReadGPGKey(
const char* pszFile,
char** ppszKeyData
);
uint32_t
AddKeyToKeyRing(
const char* pszFile,
rpmKeyring pKeyring
);
uint32_t
VerifyRpmSig(
rpmKeyring pKeyring,
const char* pszPkgFile
);
2015-04-02 09:59:27 +08:00
uint32_t
TDNFGPGCheck(
rpmKeyring pKeyring,
const char* pszUrlKeyFile,
const char* pszPackage
);
//init.c
uint32_t
TDNFCloneCmdArgs(
PTDNF_CMD_ARGS pCmdArgsIn,
PTDNF_CMD_ARGS* ppCmdArgs
);
uint32_t
TDNFCloneSetOpts(
PTDNF_CMD_OPT pCmdOptIn,
PTDNF_CMD_OPT* ppCmdOpt
);
2015-04-02 09:59:27 +08:00
uint32_t
TDNFInitSack(
PTDNF pTdnf,
HySack* phSack,
int nFlags
);
uint32_t
TDNFLoadYumRepo(
HySack hSack,
HyRepo hRepo,
int nFlags
);
uint32_t
TDNFRefreshRepo(
PTDNF pTdnf,
int nCleanMetadata,
PTDNF_REPO_DATA_INTERNAL pRepo
);
uint32_t
TDNFRefreshSack(
PTDNF pTdnf,
int nCleanMetadata
);
//makecache.c
uint32_t
TDNFRefreshCache(
PTDNF pTdnf
);
2015-04-02 09:59:27 +08:00
//repoutils.c
uint32_t
TDNFRepoMakeCacheDirs(
const char* pszRepo
);
uint32_t
TDNFRepoGetBaseUrl(
PTDNF pTdnf,
const char* pszRepo,
char** ppszBaseUrl
);
uint32_t
TDNFRepoGetUserPass(
PTDNF pTdnf,
const char* pszRepo,
char** ppszUserPass
);
uint32_t
TDNFRepoGetRpmCacheDir(
PTDNF pTdnf,
const char* pszRepo,
char** ppszRpmCacheDir
);
uint32_t
TDNFRepoRemoveCache(
PTDNF pTdnf,
const char* pszRepoId
);
2015-06-10 07:30:09 +08:00
uint32_t
TDNFRepoApplyProxySettings(
PTDNF_CONF pConf,
CURL *pCurl
2015-06-10 07:30:09 +08:00
);
2015-04-02 09:59:27 +08:00
//remoterepo.c
uint32_t
TDNFDownloadFile(
PTDNF pTdnf,
const char *pszRepo,
const char *pszFileUrl,
const char *pszFile,
const char *pszProgressData
);
uint32_t
2015-04-02 09:59:27 +08:00
TDNFDownloadPackage(
PTDNF pTdnf,
HyPackage hPkg,
const char* pszCacheDir
);
//packageutils.c
uint32_t
TDNFFindAvailablePkgByPkg(
HySack hSack,
HyPackage hPkgToFind,
HyPackage* phPkg
);
2015-04-02 09:59:27 +08:00
uint32_t
TDNFFindInstalledPkgByName(
HySack hSack,
const char* pszName,
HyPackage* phPkg
);
uint32_t
TDNFFindInstalledPkgByPkg(
HySack hSack,
HyPackage hPkgToFind,
HyPackage* phPkg
);
2015-04-02 09:59:27 +08:00
uint32_t
TDNFGetInstalled(
HySack hSack,
HyPackageList* phPkgList,
char** ppszPackageNameSpecs
2015-04-02 09:59:27 +08:00
);
uint32_t
TDNFMatchForReinstall(
HySack hSack,
const char* pszName,
HyPackageList* phPkgList
);
uint32_t
TDNFPopulatePkgInfos(
HyPackageList hPkgList,
PTDNF_PKG_INFO* ppPkgInfos
);
uint32_t
TDNFPopulatePkgInfoArray(
HyPackageList hPkgList,
TDNF_PKG_DETAIL nDetail,
PTDNF_PKG_INFO* ppPkgInfo,
uint32_t* pdwCount
);
2015-10-02 23:57:07 +08:00
uint32_t
TDNFPackageGetLatest(
HyPackageList hPkgList,
HyPackage* phPkgLatest
);
2015-11-06 13:42:02 +08:00
uint32_t
TDNFAppendPackages(
PTDNF_PKG_INFO* ppDest,
PTDNF_PKG_INFO pSource
);
uint32_t
TDNFPackageGetDowngrade(
HyPackageList hPkgList,
HyPackage hPkgCurrent,
HyPackage* phPkgDowngrade
);
uint32_t
TDNFGetGlobPackages(
PTDNF pTdnf,
char* pszPkgGlob,
HyPackageList* phPkgList
);
uint32_t
2015-11-09 11:52:04 +08:00
TDNFFilterPackages(
2015-11-06 13:42:02 +08:00
PTDNF pTdnf,
2015-11-09 11:52:04 +08:00
int nScope,
2015-11-06 13:42:02 +08:00
HyPackageList* phPkgList
);
2015-11-09 11:52:04 +08:00
uint32_t
TDNFAddPackagesForInstall(
HyPackageList hPkgListSource,
HyPackageList hPkgListGoal
);
uint32_t
TDNFAddPackagesForUpgrade(
HySack hSack,
2015-11-09 11:52:04 +08:00
HyPackageList hPkgListSource,
HyPackageList hPkgListGoal
);
uint32_t
TDNFAddPackagesForDowngrade(
HySack hSack,
2015-11-09 11:52:04 +08:00
HyPackageList hPkgListSource,
HyPackageList hPkgListGoal
);
2015-04-02 09:59:27 +08:00
//goal.c
uint32_t
TDNFGoalGetResultsIgnoreNoData(
HyPackageList hPkgList,
PTDNF_PKG_INFO* ppPkgInfoResults
);
uint32_t
TDNFGoalGetResults(
HyPackageList hPkgList,
PTDNF_PKG_INFO* ppPkgInfoResults
);
uint32_t
TDNFGoalSetUserInstalled(
HyGoal hGoal,
HyPackageList hPkgList
);
2015-04-02 09:59:27 +08:00
uint32_t
TDNFGoal(
PTDNF pTdnf,
HyPackageList hPkgList,
PTDNF_SOLVED_PKG_INFO pInfo
);
uint32_t
TDNFGoalReportProblems(
HyGoal hGoal
);
2015-11-06 13:42:02 +08:00
uint32_t
TDNFAddGoal(
PTDNF pTdnf,
int nAlterType,
HyGoal hGoal,
HyPackage hPkg
);
uint32_t
TDNFGoalGetAllResultsIgnoreNoData(
int nResolveFor,
HyGoal hGoal,
PTDNF_SOLVED_PKG_INFO* ppInfo
);
2015-04-02 09:59:27 +08:00
//config.c
int
TDNFConfGetRpmVerbosity(
PTDNF pTdnf
);
uint32_t
TDNFConfSetFlag(
TDNF_CONF_FLAG nFlag,
int nValue //0 or 1
);
uint32_t
TDNFConfGetFlag(
TDNF_CONF_FLAG nFlag,
int nValue //0 or 1
);
uint32_t
TDNFConfSetValue(
TDNF_CONF_TYPE nType,
const char* pszValue
);
uint32_t
TDNFConfGetValue(
TDNF_CONF_TYPE nType,
char** ppszValue
);
uint32_t
TDNFReadKeyValue(
PCONF_SECTION pSection,
const char* pszKeyName,
const char* pszDefault,
char** ppszValue
);
uint32_t
TDNFReadKeyValueBoolean(
PCONF_SECTION pSection,
const char* pszKeyName,
int nDefault,
int* pnValue
);
uint32_t
TDNFReadKeyValueInt(
PCONF_SECTION pSection,
const char* pszKeyName,
int nDefault,
int* pnValue
);
2015-04-02 09:59:27 +08:00
uint32_t
TDNFReadConfig(
2015-12-13 05:30:40 +08:00
PTDNF pTdnf,
const char* pszConfFile,
const char* pszConfGroup
2015-12-13 05:30:40 +08:00
);
uint32_t
TDNFConfigExpandVars(
PTDNF pTdnf
2015-04-02 09:59:27 +08:00
);
2015-06-10 07:30:09 +08:00
uint32_t
TDNFConfigReadProxySettings(
PCONF_SECTION pSection,
2015-06-10 07:30:09 +08:00
PTDNF_CONF pConf);
2015-04-02 09:59:27 +08:00
void
TDNFFreeConfig(
PTDNF_CONF pConf
);
2015-12-13 05:30:40 +08:00
uint32_t
TDNFConfigReplaceVars(
PTDNF pTdnf,
char** pszString
);
2015-04-02 09:59:27 +08:00
//repo.c
uint32_t
TDNFInitRepoFromMetadata(
HyRepo hRepo,
PTDNF_REPO_METADATA pRepoMD
);
2015-04-02 09:59:27 +08:00
uint32_t
TDNFInitRepo(
PTDNF pTdnf,
PTDNF_REPO_DATA_INTERNAL pRepoData,
2015-04-02 09:59:27 +08:00
HyRepo* phRepo
);
uint32_t
TDNFGetGPGCheck(
PTDNF pTdnf,
const char* pszRepo,
int* pnGPGCheck,
char** ppszUrlGPGKey
);
uint32_t
TDNFGetRepoById(
2015-04-02 09:59:27 +08:00
PTDNF pTdnf,
const char* pszName,
PTDNF_REPO_DATA_INTERNAL* ppRepo
2015-04-02 09:59:27 +08:00
);
uint32_t
TDNFGetRepoMD(
PTDNF pTdnf,
PTDNF_REPO_DATA_INTERNAL pRepoData,
const char *pszRepoDataDir,
PTDNF_REPO_METADATA *ppRepoMD
);
uint32_t
TDNFEnsureRepoMDParts(
PTDNF pTdnf,
const char *pszBaseUrl,
PTDNF_REPO_METADATA pRepoMDRel,
PTDNF_REPO_METADATA *ppRepoMD
);
uint32_t
TDNFParseRepoMD(
PTDNF_REPO_METADATA pRepoMD
);
uint32_t
TDNFFindRepoMDPart(
Repo *pSolvRepo,
const char *pszType,
char **ppszPart
);
void
TDNFFreeRepoMetadata(
PTDNF_REPO_METADATA pRepoMD
);
2015-04-02 09:59:27 +08:00
//repolist.c
uint32_t
TDNFLoadReposFromFile(
2015-12-13 05:30:40 +08:00
PTDNF pTdnf,
char* pszRepoFile,
PTDNF_REPO_DATA_INTERNAL* ppRepos
);
2015-04-02 09:59:27 +08:00
uint32_t
TDNFLoadRepoData(
2015-12-13 05:30:40 +08:00
PTDNF pTdnf,
2015-04-02 09:59:27 +08:00
TDNF_REPOLISTFILTER nFilter,
PTDNF_REPO_DATA_INTERNAL* ppReposAll
2015-04-02 09:59:27 +08:00
);
uint32_t
TDNFRepoListFinalize(
PTDNF pTdnf
);
uint32_t
TDNFAlterRepoState(
PTDNF_REPO_DATA_INTERNAL pRepos,
int nEnable,
const char* pszId
);
uint32_t
TDNFCloneRepo(
PTDNF_REPO_DATA_INTERNAL pRepoIn,
PTDNF_REPO_DATA* ppRepo
);
void
TDNFFreeReposInternal(
PTDNF_REPO_DATA_INTERNAL pRepos
);
//resolve.c
HySubject
hy_subject_create(
const char * pattern
);
HyPossibilities
hy_subject_nevra_possibilities_real(
HySubject subject,
HyForm *forms, HySack sack, int flags
);
int
hy_possibilities_next_nevra(
HyPossibilities iter,
HyNevra *out_nevra
);
2015-06-01 05:51:16 +08:00
void
hy_possibilities_free(
HyPossibilities iter
);
void
hy_subject_free(
HySubject subject
);
uint32_t
TDNFGetMatchingInstalledAndAvailable(
PTDNF pTdnf,
int nAlterType,
const char* pszPkgName,
PTDNF_SOLVED_PKG_INFO pSolvedPkgInfo,
HyPackageList* phPkgListGoal
);
uint32_t
TDNFGetMatching(
PTDNF pTdnf,
int nSystem,
const char* pszName,
HyPackageList* phPkgList
);
uint32_t
TDNFGetGoalPackageList(
TDNF_ALTERTYPE nAlterType,
HyPackageList hPkgsInstalled,
HyPackageList hPkgsAvailable,
HyPackageList* phPkgList
);
uint32_t
TDNFGetSelector(
PTDNF pTdnf,
const char* pszPkg,
HySelector* phSelector
);
2015-10-02 01:18:08 +08:00
uint32_t
2015-11-06 13:42:02 +08:00
TDNFPrepareAllPackages(
PTDNF pTdnf,
PTDNF_SOLVED_PKG_INFO pSolvedPkgInfo,
HyPackageList* phPkgListGoal
);
uint32_t
TDNFPrepareAndAddPkg(
2015-10-02 01:18:08 +08:00
PTDNF pTdnf,
2015-11-06 13:42:02 +08:00
const char* pszPkgName,
PTDNF_SOLVED_PKG_INFO pSolvedPkgInfo,
HyPackageList hPkgListGoal
2015-10-02 01:18:08 +08:00
);
uint32_t
2015-11-06 13:42:02 +08:00
TDNFPrepareSinglePkg(
2015-10-02 01:18:08 +08:00
PTDNF pTdnf,
2015-11-06 13:42:02 +08:00
const char* pszPkgName,
PTDNF_SOLVED_PKG_INFO pSolvedPkgInfo,
HyPackageList* phPkgListGoal
);
uint32_t
2015-11-09 11:52:04 +08:00
TDNFAddFilteredPkgs(
2015-11-06 13:42:02 +08:00
PTDNF pTdnf,
2015-11-09 11:52:04 +08:00
int nScope,
2015-11-06 13:42:02 +08:00
PTDNF_SOLVED_PKG_INFO pSolvedPkgInfo,
HyPackageList hPkgListGoal
2015-10-02 01:18:08 +08:00
);
2015-11-09 11:52:04 +08:00
uint32_t
TDNFAddNotResolved(
PTDNF_SOLVED_PKG_INFO pSolvedInfo,
const char* pszPkgName
);
//rpmtrans.c
uint32_t
TDNFRpmExecTransaction(
PTDNF pTdnf,
PTDNF_SOLVED_PKG_INFO pSolvedInfo
);
void*
TDNFRpmCB(
const void* pArg,
const rpmCallbackType what,
const rpm_loff_t amount,
const rpm_loff_t total,
fnpyKey key,
void* data
);
uint32_t
TDNFPopulateTransaction(
PTDNFRPMTS pTS,
PTDNF pTdnf,
PTDNF_SOLVED_PKG_INFO pSolvedInfo
);
uint32_t
TDNFTransAddDowngradePkgs(
PTDNFRPMTS pTS,
PTDNF pTdnf
);
uint32_t
TDNFTransAddErasePkgs(
PTDNFRPMTS pTS,
PTDNF pTdnf
);
2015-10-27 00:59:23 +08:00
uint32_t
TDNFTransAddObsoletedPkgs(
PTDNFRPMTS pTS,
PTDNF pTdnf
);
uint32_t
TDNFTransAddErasePkg(
PTDNFRPMTS pTS,
HyPackage hPkg
);
uint32_t
TDNFTransAddInstallPkgs(
PTDNFRPMTS pTS,
PTDNF pTdnf
);
2015-07-13 15:00:52 +08:00
uint32_t
TDNFTransAddReInstallPkgs(
PTDNFRPMTS pTS,
PTDNF pTdnf
);
uint32_t
TDNFTransAddInstallPkg(
PTDNFRPMTS pTS,
PTDNF pTdnf,
HyPackage hPkg,
int nUpgrade
);
uint32_t
TDNFTransAddUpgradePkgs(
PTDNFRPMTS pTS,
PTDNF pTdnf
);
uint32_t
TDNFRunTransaction(
PTDNFRPMTS pTS,
PTDNF pTdnf
);
uint32_t
TDNFRemoveCachedRpms(
PTDNF_CACHED_RPM_LIST pCachedRpmsList
);
void
TDNFFreeCachedRpmsArray(
PTDNF_CACHED_RPM_LIST pArray
);
2015-04-02 09:59:27 +08:00
//memory.c
2015-11-23 08:01:19 +08:00
void
TDNFFreeCmdOpt(
PTDNF_CMD_OPT pCmdOpt
);
//search.c
uint32_t
TDNFQueryTermsHelper(
HyPackageList hAccumPkgList,
HyQuery hQuery,
int nKeyId,
const char* pszMatch
);
uint32_t
QueryTermsInNameSummary(
HyPackageList,
HyQuery,
const char*
);
uint32_t
QueryTermsInDescUrl(
HyPackageList,
HyQuery,
const char*
);
uint32_t
TDNFQueryTerms(
HyPackageList hAccumPkgList,
PTDNF_CMD_ARGS pCmdArgs,
HyQuery hQuery,
int nStartArgIndex,
TDNFQueryTermsFunction pfQueryTerms
);
2015-04-02 09:59:27 +08:00
//strings.c
uint32_t
TDNFAllocateString(
const char* pszSrc,
char** ppszDst
);
uint32_t
TDNFSafeAllocateString(
const char* pszSrc,
char** ppszDst
);
uint32_t
TDNFAllocateStringPrintf(
char** ppszDst,
const char* pszFmt,
...
);
2015-12-13 05:30:40 +08:00
uint32_t
TDNFAllocateStringN(
const char* pszSrc,
uint32_t dwNumElements,
char** ppszDst
);
uint32_t
TDNFReplaceString(
const char* pszSource,
const char* pszSearch,
const char* pszReplace,
char** ppszDst
);
//updateinfo.c
uint32_t
TDNFGetUpdateInfoPackages(
HyAdvisory hAdv,
PTDNF_UPDATEINFO_PKG* ppUpdateInfoPkg
);
void
TDNFFreeUpdateInfoReferences(
PTDNF_UPDATEINFO_REF pRef
);
void
TDNFFreeUpdateInfoPackages(
PTDNF_UPDATEINFO_PKG pPkg
);
2015-04-02 09:59:27 +08:00
//utils.c
uint32_t
TDNFIsSystemError(
uint32_t dwError
);
uint32_t
TDNFIsCurlError(
uint32_t dwError
);
uint32_t
TDNFGetSystemError(
uint32_t dwError
);
2015-04-02 09:59:27 +08:00
uint32_t
TDNFIsDir(
const char* pszPath,
int* pnPathIsDir
);
int
TDNFIsGlob(
const char* pszString
);
2015-04-02 09:59:27 +08:00
uint32_t
TDNFUtilsMakeDir(
const char* pszPath
);
uint32_t
TDNFUtilsMakeDirs(
const char* pszPath
);
uint32_t
TDNFTouchFile(
const char* pszFile
);
2015-12-13 05:30:40 +08:00
uint32_t
TDNFRawGetPackageVersion(
const char* pszRootDir,
const char* pszPkg,
char** ppszVersion
);
uint32_t
TDNFGetKernelArch(
char** ppszArch
);
uint32_t
TDNFUpdateMetadataMarkerFile(
const char* pszRepoDataFolder
);
uint32_t
TDNFParseMetadataExpire(
const char* pszMetadataExpire,
long* plMetadataExpire
);
uint32_t
TDNFShouldSyncMetadata(
const char* pszRepoDataFolder,
long lMetadataExpire,
int* pnShouldSync
);
uint32_t
TDNFAppendPath(
const char *pszBase,
const char *pszPart,
char **ppszPath
);
//validate.c
uint32_t
TDNFValidateCmdArgs(
PTDNF pTdnf
2015-04-02 09:59:27 +08:00
);
uint32_t
TDNFIsInitialized(
);