Go to the documentation of this file.
6 #include <rpm/rpmlib.h>
7 #include <rpm/rpmtag.h>
9 #include <rpm/rpmpgp.h>
11 #include <rpm/rpmts.h>
15 int main(
int argc,
char *argv[])
19 char * rpmio_flags = NULL;
25 _fsetmode( stdin,
"b");
26 _fsetmode( stdout,
"b");
40 fdi =
fdDup(STDIN_FILENO);
42 if (
rstreq(argv[1],
"-h") ||
rstreq(argv[1],
"--help")) {
43 fprintf(stderr,
"Usage: rpm2cpio file.rpm\n");
46 fdi =
Fopen(argv[1],
"r.ufdio");
50 fprintf(stderr,
"%s: %s: %s\n", argv[0],
51 (argc == 1 ?
"<stdin>" : argv[1]),
Fstrerror(fdi));
54 fdo =
fdDup(STDOUT_FILENO);
76 fprintf(stderr,
_(
"argument is not an RPM package\n"));
81 fprintf(stderr,
_(
"error reading header from package\n"));
88 rpmio_flags =
rstrscat(NULL,
"r.", compr ? compr :
"gzip", NULL);
92 gzdi =
Fdopen(fdi, rpmio_flags);
96 fprintf(stderr,
_(
"cannot re-open payload: %s\n"),
Fstrerror(gzdi));
100 rc = (
ufdCopy(gzdi, fdo) == payload_size) ? EXIT_SUCCESS : EXIT_FAILURE;
#define _RPMVSF_NOSIGNATURES
const char * Fstrerror(FD_t fd)
int main(int argc, char *argv[])
off_t ufdCopy(FD_t sfd, FD_t tfd)
FD_t Fdopen(FD_t ofd, const char *fmode)
#define _RPMVSF_NODIGESTS
int rpmReadConfigFiles(const char *file, const char *target)
rpmRC rpmReadPackageFile(rpmts ts, FD_t fd, const char *fn, Header *hdrp)
char * rstrscat(char **dest, const char *arg,...) RPM_GNUC_NULL_TERMINATED
struct headerToken_s * Header
rpmVSFlags rpmtsSetVSFlags(rpmts ts, rpmVSFlags vsflags)
FD_t Fopen(const char *path, const char *fmode)
static int rstreq(const char *s1, const char *s2)
Test for string equality.
@ RPMTAG_PAYLOADCOMPRESSOR
rpmts rpmtsFree(rpmts ts)