#include <time.h>
#include <rpm/rpmlib.h> /* RPMSIGTAG*, rpmReadPackageFile */
-#include <rpm/rpmts.h>
#include <rpm/rpmfileutil.h>
#include <rpm/rpmlog.h>
*/
static rpmRC cpio_doio(FD_t fdo, Header h, CSA_t csa, const char * fmodeMacro)
{
- rpmts ts = NULL;
- rpmfi fi = csa->cpioList;
- rpmte te = NULL;
char *failedFile = NULL;
FD_t cfd;
int fsmrc;
if (cfd == NULL)
return RPMRC_FAIL;
- /* make up a transaction element for passing to fsm */
- ts = rpmtsCreate();
- rpmtsAddInstallElement(ts, h, NULL, 0, NULL);
- te = rpmtsElement(ts, 0);
-
- fsmrc = rpmPackageFilesArchive(ts, te, fi, cfd,
+ fsmrc = rpmPackageFilesArchive(csa->cpioList, headerIsSource(h), cfd,
&csa->cpioArchiveSize, &failedFile);
if (fsmrc) {
free(failedFile);
Fclose(cfd);
- rpmtsFree(ts);
return (fsmrc == 0) ? RPMRC_OK : RPMRC_FAIL;
}
}
-int rpmPackageFilesArchive(rpmts ts, rpmte te, rpmfi fi, FD_t cfd,
+int rpmPackageFilesArchive(rpmfi fi, int isSrc, FD_t cfd,
rpm_loff_t * archiveSize, char ** failedFile)
{
- rpmfs fs = rpmteGetFileStates(te);
- FSM_t fsm = fsmNew(FSM_PKGBUILD, ts, fs, fi, failedFile);;
+ rpmfs fs = rpmfsNew(rpmfiFC(fi), 0);;
+ FSM_t fsm = fsmNew(FSM_PKGBUILD, NULL, fs, fi, failedFile);;
rpmcpio_t archive = rpmcpioOpen(cfd, O_WRONLY);
int rc = 0;
fsm->mapFlags |= CPIO_MAP_TYPE;
- if (rpmteIsSource(te))
+ if (isSrc)
fsm->mapFlags |= CPIO_FOLLOW_SYMLINKS;
if (archive == NULL) {
*archiveSize = (rc == 0) ? rpmcpioTell(archive) : 0;
rpmcpioFree(archive);
+ rpmfsFree(fs);
fsmFree(fsm);
return rc;
int rpmPackageFilesRemove(rpmts ts, rpmte te, rpmfi fi,
rpmpsm psm, char ** failedFile);
-int rpmPackageFilesArchive(rpmts ts, rpmte te, rpmfi fi, FD_t cfd,
+int rpmPackageFilesArchive(rpmfi fi, int isSrc, FD_t cfd,
rpm_loff_t * archiveSize, char ** failedFile);
RPM_GNUC_INTERNAL