From a5c247c549cdce14f863580a8af132720e9e851e Mon Sep 17 00:00:00 2001 From: Panu Matilainen Date: Fri, 3 Dec 2010 13:38:59 +0200 Subject: [PATCH] Internalize most direct rpmdb manipulation functions - Since rpm 4.1 times, callers are supposed to use the rpmtsFooDB() variants instead of the lower-level rpmdb functions, and mixing them is not safe. Enforce the use of ts-level versions by making rpmdbLink(), rpmdbOpen(), rpmdbInit(), rpmdbClose(), rpmdbSync(), rpmdbVerify() and rpmdbRebuild() internal-only. - Doing this now to eliminate a few needs for breaking API again in 4.10 (one can wish, right?) --- lib/rpmdb.h | 60 -------------------------------------------------- lib/rpmdb_internal.h | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 60 deletions(-) diff --git a/lib/rpmdb.h b/lib/rpmdb.h index a8479f5..3c7aac2 100644 --- a/lib/rpmdb.h +++ b/lib/rpmdb.h @@ -39,53 +39,6 @@ typedef enum rpmdbOpX_e { rpmop rpmdbOp(rpmdb db, rpmdbOpX opx); /** \ingroup rpmdb - * Reference a database instance. - * @param db rpm database - * @return new rpm database reference - */ -rpmdb rpmdbLink(rpmdb db); - -/** \ingroup rpmdb - * Open rpm database. - * @param prefix path to top of install tree - * @retval dbp address of rpm database - * @param mode open(2) flags: O_RDWR or O_RDONLY (O_CREAT also) - * @param perms database permissions - * @return 0 on success - */ -int rpmdbOpen (const char * prefix, rpmdb * dbp, - int mode, int perms); - -/** \ingroup rpmdb - * Initialize database. - * @param prefix path to top of install tree - * @param perms database permissions - * @return 0 on success - */ -int rpmdbInit(const char * prefix, int perms); - -/** \ingroup rpmdb - * Verify database components. - * @param prefix path to top of install tree - * @return 0 on success - */ -int rpmdbVerify(const char * prefix); - -/** \ingroup rpmdb - * Close all database indices and free rpmdb. - * @param db rpm database - * @return 0 on success - */ -int rpmdbClose (rpmdb db); - -/** \ingroup rpmdb - * Sync all database indices. - * @param db rpm database - * @return 0 on success - */ -int rpmdbSync (rpmdb db); - -/** \ingroup rpmdb * Open all database indices. * @param db rpm database * @return 0 on success @@ -207,19 +160,6 @@ int rpmdbCheckTerminate(int terminate); rpmdbMatchIterator rpmdbFreeIterator(rpmdbMatchIterator mi); /** \ingroup rpmdb - * Rebuild database indices from package headers. - * @param prefix path to top of install tree - * @param ts transaction set (or NULL) - * @param (*hdrchk) headerCheck() vector (or NULL) - * @return 0 on success - */ -int rpmdbRebuild(const char * prefix, rpmts ts, - rpmRC (*hdrchk) (rpmts ts, const void *uh, size_t uc, char ** msg)); - - - - -/** \ingroup rpmdb * Get an iterator for an index * @param db rpm database * @param rpmtag the index to iterate over diff --git a/lib/rpmdb_internal.h b/lib/rpmdb_internal.h index 9447d05..3f5c598 100644 --- a/lib/rpmdb_internal.h +++ b/lib/rpmdb_internal.h @@ -14,6 +14,68 @@ extern "C" { #endif /** \ingroup rpmdb + * Reference a database instance. + * @param db rpm database + * @return new rpm database reference + */ +rpmdb rpmdbLink(rpmdb db); + +/** \ingroup rpmdb + * Open rpm database. + * @param prefix path to top of install tree + * @retval dbp address of rpm database + * @param mode open(2) flags: O_RDWR or O_RDONLY (O_CREAT also) + * @param perms database permissions + * @return 0 on success + */ +RPM_GNUC_INTERNAL +int rpmdbOpen (const char * prefix, rpmdb * dbp, int mode, int perms); + +/** \ingroup rpmdb + * Initialize database. + * @param prefix path to top of install tree + * @param perms database permissions + * @return 0 on success + */ +RPM_GNUC_INTERNAL +int rpmdbInit(const char * prefix, int perms); + +/** \ingroup rpmdb + * Close all database indices and free rpmdb. + * @param db rpm database + * @return 0 on success + */ +RPM_GNUC_INTERNAL +int rpmdbClose (rpmdb db); + +/** \ingroup rpmdb + * Sync all database indices. + * @param db rpm database + * @return 0 on success + */ +RPM_GNUC_INTERNAL +int rpmdbSync (rpmdb db); + +/** \ingroup rpmdb + * Rebuild database indices from package headers. + * @param prefix path to top of install tree + * @param ts transaction set (or NULL) + * @param (*hdrchk) headerCheck() vector (or NULL) + * @return 0 on success + */ +RPM_GNUC_INTERNAL +int rpmdbRebuild(const char * prefix, rpmts ts, + rpmRC (*hdrchk) (rpmts ts, const void *uh, size_t uc, char ** msg)); + +/** \ingroup rpmdb + * Verify database components. + * @param prefix path to top of install tree + * @return 0 on success + */ +RPM_GNUC_INTERNAL +int rpmdbVerify(const char * prefix); + +/** \ingroup rpmdb * Add package header to rpm database and indices. * @param db rpm database * @param h header -- 2.7.4