More rpmlead exorcizing
authorPanu Matilainen <pmatilai@redhat.com>
Sat, 1 Dec 2007 19:06:00 +0000 (21:06 +0200)
committerPanu Matilainen <pmatilai@redhat.com>
Sat, 1 Dec 2007 19:06:00 +0000 (21:06 +0200)
- remove unnecessary type parameter to writeRPM(), header knows what it is
- remove unnecessary lead argument to readRPM(), it's unused anyway
- drop lead from cpioSourceArchive struct

build/buildio.h
build/pack.c
tools/rpminject.c

index f2ab33f..b324e7c 100644 (file)
@@ -20,21 +20,18 @@ typedef struct cpioSourceArchive_s {
     unsigned int cpioArchiveSize;
     FD_t       cpioFdIn;
     rpmfi      cpioList;
-    struct rpmlead * lead;     /* XXX FIXME: exorcize lead/arch/os */
 } * CSA_t;
 
 /**
  * Read rpm package components from file.
  * @param fileName     file name of package (or NULL to use stdin)
  * @retval specp       spec structure to carry package header (or NULL)
- * @retval lead                package lead
  * @retval sigs                package signature
  * @param csa
  * @return             0 on success
  */
 int readRPM(const char * fileName,
                rpmSpec * specp,
-               struct rpmlead * lead,
                Header * sigs,
                CSA_t csa);
 
@@ -47,7 +44,6 @@ int readRPM(const char * fileName,
  * @retval *hdrp       header to write (final header is returned).
  * @retval *pkgidp     header+payload MD5 of package (NULL to disable).
  * @param fileName     file name of package
- * @param type         RPMLEAD_SOURCE/RPMLEAD_BINARY
  * @param csa
  * @param passPhrase
  * @retval cookie      generated cookie (i.e build host/time)
@@ -55,7 +51,6 @@ int readRPM(const char * fileName,
  */
 int writeRPM(Header * hdrp, unsigned char ** pkgidp,
                const char * fileName,
-               int type,
                CSA_t csa,
                char * passPhrase,
                const char ** cookie);
index a6e57cb..e85d4c1 100644 (file)
@@ -263,7 +263,7 @@ static int processScriptFiles(rpmSpec spec, Package pkg)
     return 0;
 }
 
-int readRPM(const char *fileName, rpmSpec *specp, struct rpmlead *lead,
+int readRPM(const char *fileName, rpmSpec *specp, 
                Header *sigs, CSA_t csa)
 {
     FD_t fdi;
@@ -282,14 +282,6 @@ int readRPM(const char *fileName, rpmSpec *specp, struct rpmlead *lead,
        return RPMLOG_ERR;
     }
 
-    /* Get copy of lead */
-    if ((rc = Fread(lead, sizeof(char), RPMLEAD_SIZE, fdi)) != RPMLEAD_SIZE) {
-       rpmlog(RPMLOG_ERR, _("readRPM: read %s: %s\n"),
-               (fileName ? fileName : "<stdin>"),
-               Fstrerror(fdi));
-       return RPMLOG_ERR;
-    }
-
     /* XXX FIXME: EPIPE on <stdin> */
     if (Fseek(fdi, 0, SEEK_SET) == -1) {
        rpmlog(RPMLOG_ERR, _("%s: Fseek failed: %s\n"),
@@ -348,7 +340,7 @@ int readRPM(const char *fileName, rpmSpec *specp, struct rpmlead *lead,
 }
 
 int writeRPM(Header *hdrp, unsigned char ** pkgidp, const char *fileName,
-               int type, CSA_t csa, char *passPhrase, const char **cookie)
+            CSA_t csa, char *passPhrase, const char **cookie)
 {
     FD_t fd = NULL;
     FD_t ifd = NULL;
@@ -360,7 +352,7 @@ int writeRPM(Header *hdrp, unsigned char ** pkgidp, const char *fileName,
     char buf[BUFSIZ];
     Header h;
     Header sig = NULL;
-    int rc = 0;
+    int rc = 0, isSource;
 
     /* Transfer header reference form *hdrp to h. */
     h = headerLink(*hdrp);
@@ -370,18 +362,16 @@ int writeRPM(Header *hdrp, unsigned char ** pkgidp, const char *fileName,
        *pkgidp = NULL;
 
     /* Binary packages now have explicit Provides: name = version-release. */
-    if (type == RPMLEAD_BINARY)
+    isSource = headerIsSource(h);
+    if (isSource)
        providePackageNVR(h);
 
     /* Save payload information */
-    switch(type) {
-    case RPMLEAD_SOURCE:
+    if (isSource)
        rpmio_flags = rpmExpand("%{?_source_payload}", NULL);
-       break;
-    case RPMLEAD_BINARY:
+    else 
        rpmio_flags = rpmExpand("%{?_binary_payload}", NULL);
-       break;
-    }
+
     if (!(rpmio_flags && *rpmio_flags)) {
        rpmio_flags = _free(rpmio_flags);
        rpmio_flags = xstrdup("w9.gzdio");
@@ -698,8 +688,7 @@ int packageBinaries(rpmSpec spec)
        csa->cpioFdIn = fdNew("init (packageBinaries)");
        csa->cpioList = rpmfiLink(pkg->cpioList, "packageBinaries");
 
-       rc = writeRPM(&pkg->header, NULL, fn, RPMLEAD_BINARY,
-                   csa, spec->passPhrase, NULL);
+       rc = writeRPM(&pkg->header, NULL, fn, csa, spec->passPhrase, NULL);
 
        csa->cpioList = rpmfiFree(csa->cpioList);
        csa->cpioFdIn = fdFree(csa->cpioFdIn, "init (packageBinaries)");
@@ -739,7 +728,7 @@ int packageSources(rpmSpec spec)
        csa->cpioList = rpmfiLink(spec->sourceCpioList, "packageSources");
 
        spec->sourcePkgId = NULL;
-       rc = writeRPM(&spec->sourceHeader, &spec->sourcePkgId, fn, RPMLEAD_SOURCE,
+       rc = writeRPM(&spec->sourceHeader, &spec->sourcePkgId, fn, 
                csa, spec->passPhrase, &(spec->cookie));
 
        csa->cpioList = rpmfiFree(csa->cpioList);
index a13143f..3d806c7 100644 (file)
@@ -367,7 +367,6 @@ headerInject(Header *hdrp, cmd_t *cmds[], int ncmds)
 static int
 rewriteRPM(const char *fni, const char *fno, cmd_t *cmds[], int ncmds)
 {
-    struct rpmlead lead;       /* XXX FIXME: exorcize lead/arch/os */
     Header sigs;
     rpmSpec spec;
     struct cpioSourceArchive_s csabuf, *csa = &csabuf;
@@ -376,10 +375,9 @@ rewriteRPM(const char *fni, const char *fno, cmd_t *cmds[], int ncmds)
     csa->cpioArchiveSize = 0;
     csa->cpioFdIn = fdNew("init (rewriteRPM)");
     csa->cpioList = NULL;
-    csa->lead = &lead;         /* XXX FIXME: exorcize lead/arch/os */
 
     /* Read rpm and (partially) recreate spec/pkg control structures */
-    if ((rc = readRPM(fni, &spec, &lead, &sigs, csa)) != 0)
+    if ((rc = readRPM(fni, &spec, &sigs, csa)) != 0)
        return rc;
 
     /* Inject new strings into header tags */
@@ -387,11 +385,11 @@ rewriteRPM(const char *fni, const char *fno, cmd_t *cmds[], int ncmds)
        goto exit;
 
     /* Rewrite the rpm */
-    if (lead.type == RPMLEAD_SOURCE) {
-       rc = writeRPM(&spec->packages->header, NULL, fno, (int)lead.type,
+    if (headerIsSource(spec->packages->header)) {
+       rc = writeRPM(&spec->packages->header, NULL, fno, 
                csa, spec->passPhrase, &(spec->cookie));
     } else {
-       rc = writeRPM(&spec->packages->header, NULL, fno, (int)lead.type,
+       rc = writeRPM(&spec->packages->header, NULL, fno,
                csa, spec->passPhrase, NULL);
     }