RPMTRANS_FLAG_NOTRIGGERS = (1 << 4), /*!< from --notriggers */
RPMTRANS_FLAG_NODOCS = (1 << 5), /*!< from --excludedocs */
RPMTRANS_FLAG_ALLFILES = (1 << 6), /*!< from --allfiles */
- /* bit 7 unused */
+ RPMTRANS_FLAG_NOPLUGINS = (1 << 7), /*!< from --noplugins */
RPMTRANS_FLAG_NOCONTEXTS = (1 << 8), /*!< from --nocontexts */
- /* bits 9-15 unused */
+ RPMTRANS_FLAG_NOCAPS = (1 << 9), /*!< from --nocaps */
+ /* bits 10-15 unused */
RPMTRANS_FLAG_NOTRIGGERPREIN= (1 << 16), /*!< from --notriggerprein */
RPMTRANS_FLAG_NOPRE = (1 << 17), /*!< from --nopre */
RPMTRANS_FLAG_NOPOST = (1 << 18), /*!< from --nopost */
RPMTRANS_FLAG_NOPREUN = (1 << 21), /*!< from --nopreun */
RPMTRANS_FLAG_NOPOSTUN = (1 << 22), /*!< from --nopostun */
RPMTRANS_FLAG_NOTRIGGERPOSTUN = (1 << 23), /*!< from --notriggerpostun */
- /* bits 24-25 unused */
- RPMTRANS_FLAG_NOCOLLECTIONS = (1 << 26), /*!< from --nocollections */
+ RPMTRANS_FLAG_NOPRETRANS = (1 << 24), /*!< from --nopretrans */
+ RPMTRANS_FLAG_NOPOSTTRANS = (1 << 25), /*!< from --noposttrans */
+ /* bit 26 unused */
RPMTRANS_FLAG_NOMD5 = (1 << 27), /*!< from --nomd5 */
RPMTRANS_FLAG_NOFILEDIGEST = (1 << 27), /*!< from --nofiledigest (alias to --nomd5) */
/* bits 28-29 unused */
( RPMTRANS_FLAG_NOPRE | \
RPMTRANS_FLAG_NOPOST | \
RPMTRANS_FLAG_NOPREUN | \
- RPMTRANS_FLAG_NOPOSTUN \
+ RPMTRANS_FLAG_NOPOSTUN | \
+ RPMTRANS_FLAG_NOPRETRANS | \
+ RPMTRANS_FLAG_NOPOSTTRANS \
)
#define _noTransTriggers \
RPMVSF_NEEDPAYLOAD = (1 << 1),
/* bit(s) 2-7 unused */
RPMVSF_NOSHA1HEADER = (1 << 8),
- RPMVSF_NOMD5HEADER = (1 << 9), /* unimplemented */
+ RPMVSF_NOSHA256HEADER = (1 << 9),
RPMVSF_NODSAHEADER = (1 << 10),
- RPMVSF_NORSAHEADER = (1 << 11), /* unimplemented */
+ RPMVSF_NORSAHEADER = (1 << 11),
/* bit(s) 12-15 unused */
- RPMVSF_NOSHA1 = (1 << 16), /* unimplemented */
+ RPMVSF_NOPAYLOAD = (1 << 16),
RPMVSF_NOMD5 = (1 << 17),
RPMVSF_NODSA = (1 << 18),
RPMVSF_NORSA = (1 << 19)
#define _RPMVSF_NODIGESTS \
( RPMVSF_NOSHA1HEADER | \
- RPMVSF_NOMD5HEADER | \
- RPMVSF_NOSHA1 | \
+ RPMVSF_NOSHA256HEADER | \
+ RPMVSF_NOPAYLOAD | \
RPMVSF_NOMD5 )
#define _RPMVSF_NOSIGNATURES \
#define _RPMVSF_NOHEADER \
( RPMVSF_NOSHA1HEADER | \
- RPMVSF_NOMD5HEADER | \
+ RPMVSF_NOSHA256HEADER | \
RPMVSF_NODSAHEADER | \
RPMVSF_NORSAHEADER )
#define _RPMVSF_NOPAYLOAD \
- ( RPMVSF_NOSHA1 | \
- RPMVSF_NOMD5 | \
+ ( RPMVSF_NOMD5 | \
+ RPMVSF_NOPAYLOAD | \
RPMVSF_NODSA | \
RPMVSF_NORSA )
RPMTS_OP_MAX = 17
} rpmtsOpX;
+enum rpmtxnFlags_e {
+ RPMTXN_READ = (1 << 0),
+ RPMTXN_WRITE = (1 << 1),
+};
+typedef rpmFlags rpmtxnFlags;
+
/** \ingroup rpmts
* Perform dependency resolution on the transaction set.
*
const void * keyp, size_t keylen);
/** \ingroup rpmts
+ * Import a header into the rpmdb
+ * @param txn transaction handle
+ * @param h header
+ * @param flags (unused)
+ * @return RPMRC_OK/RPMRC_FAIL
+ */
+rpmRC rpmtsImportHeader(rpmtxn txn, Header h, rpmFlags flags);
+
+/** \ingroup rpmts
* Import public key packet(s).
* @todo Implicit --update policy for gpg-pubkey headers.
* @param ts transaction set
rpmRelocation * relocs);
/** \ingroup rpmts
+ * Add package to be reinstalled to transaction set.
+ *
+ * @param ts transaction set
+ * @param h header
+ * @param key package retrieval key (e.g. file name)
+ * @return 0 on success
+ */
+int rpmtsAddReinstallElement(rpmts ts, Header h, const fnpyKey key);
+
+/** \ingroup rpmts
* Add package to be erased to transaction set.
* @param ts transaction set
* @param h header
*/
int rpmtsAddEraseElement(rpmts ts, Header h, int dboffset);
+/** \ingroup rpmts
+ * Create a transaction (lock) handle
+ * @param ts transaction set
+ * @param flags flags
+ * @return transaction handle
+ */
+rpmtxn rpmtxnBegin(rpmts ts, rpmtxnFlags flags);
+
+/** \ingroup rpmts
+ * Destroy transaction (lock) handle
+ * @param txn transaction handle
+ * @return NULL always
+ */
+rpmtxn rpmtxnEnd(rpmtxn txn);
+
/** \ingroup rpmte
* Destroy transaction element iterator.
* @param tsi transaction element iterator