1 /* rpmarchive: spit out the main archive portion of a package */
7 int main(int argc, char **argv)
14 setprogname(argv[0]); /* Retrofit glibc __progname */
16 fdi = fdDup(STDIN_FILENO);
18 fdi = Fopen(argv[1], "r.ufdio");
21 if (fdi == NULL || Ferror(fdi)) {
22 fprintf(stderr, _("cannot open package: %s\n"), Fstrerror(fdi));
25 fdo = fdDup(STDOUT_FILENO);
27 rc = rpmReadPackageHeader(fdi, &h, &isSource, NULL, NULL);
32 fprintf(stderr, _("argument is not an RPM package\n"));
36 fprintf(stderr, _("error reading header from package\n"));
41 gzdi = Fdopen(fdi, "r.gzdio"); /* XXX gzdi == fdi */
42 if (gzdi == NULL || Ferror(gzdi)) {
43 fprintf(stderr, _("cannot re-open payload: %s\n"), Fstrerror(gzdi));
48 { char buffer[BUFSIZ];
50 while ((ct = Fread(buffer, sizeof(buffer[0]), sizeof(buffer), gzdi)) > 0) {
51 Fwrite(buffer, sizeof(buffer[0]), ct, fdo);
55 fprintf (stderr, "rpm2cpio: zlib: %s\n", Fstrerror(gzdi));
62 rc = ufdCopy(gzdi, fdo);
63 rc = (rc <= 0) ? EXIT_FAILURE : EXIT_SUCCESS;
67 Fclose(gzdi); /* XXX gzdi == fdi */