RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  ____________________________________________________________________________

  Server: rpm5.org                         Name:   Jeff Johnson
  Root:   /v/rpm/cvs                       Email:  [EMAIL PROTECTED]
  Module: rpm                              Date:   24-Mar-2008 19:45:18
  Branch: HEAD                             Handle: 2008032418451800

  Modified files:
    rpm/rpmio               rpmrepo.c

  Log:
    - jbj: rpmrepo: prepare for selectable markup and compression.

  Summary:
    Revision    Changes     Path
    1.14        +14 -20     rpm/rpmio/rpmrepo.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmrepo.c
  ============================================================================
  $ cvs diff -u -r1.13 -r1.14 rpmrepo.c
  --- rpm/rpmio/rpmrepo.c       24 Mar 2008 18:21:22 -0000      1.13
  +++ rpm/rpmio/rpmrepo.c       24 Mar 2008 18:45:18 -0000      1.14
  @@ -23,9 +23,7 @@
   typedef struct rpmrfile_s * rpmrfile;
   
   struct rpmrfile_s {
  -    const char * file;
       const char * type;
  -    const char * href;
       const char * init;
       const char * qfmt;
       const char * fini;
  @@ -69,6 +67,8 @@
       const char * finaldir;
   /[EMAIL PROTECTED]@*/
       const char * olddir;
  +    const char * markup;
  +    const char * suffix;
   
       time_t mdtimestamp;
   
  @@ -239,35 +239,29 @@
       .tempdir = ".repodata",
       .finaldir        = "repodata",
       .olddir  = ".olddata",
  +    .markup  = "xml",
  +    .suffix  = "gz",
       .algo    = PGPHASHALGO_SHA1,
       .primary = {
  -     .file   = "primary.xml.gz",
        .type   = "primary",
  -     .href   = "repodata/primary.xml.gz",
        .init   = init_primary,
        .qfmt   = qfmt_primary,
        .fini   = fini_primary
       },
       .filelists       = {
  -     .file   = "filelists.xml.gz",
        .type   = "filelists",
  -     .href   = "repodata/filelists.xml.gz",
        .init   = init_filelists,
        .qfmt   = qfmt_filelists,
        .fini   = fini_filelists
       },
       .other   = {
  -     .file   = "other.xml.gz",
        .type   = "other",
  -     .href   = "repodata/other.xml.gz",
        .init   = init_other,
        .qfmt   = qfmt_other,
        .fini   = fini_other
       },
       .repomd  = {
  -     .file   = "repomd.xml.gz",
        .type   = "repomd",
  -     .href   = "repodata/repomd.xml.gz",
        .init   = init_repomd,
        .qfmt   = NULL,
        .fini   = fini_repomd
  @@ -365,11 +359,11 @@
   
     { static const char * dirs[] = { ".repodata", "repodata", NULL };
       static const char * files[] =
  -     { "primary.xml.gz", "filelists.xml.gz", "other.xml.gz", 
"repomd.xml.gz", NULL };
  +     { "primary", "filelists", "other", "repomd", NULL };
       const char ** dirp, ** filep;
       for (dirp = dirs; *dirp != NULL; dirp++) {
        for (filep = files; *filep != NULL; filep++) {
  -         fn = rpmGetPath(repo->outputdir, "/", *dirp, "/", *filep, NULL);
  +         fn = rpmGetPath(repo->outputdir, "/", *dirp, "/", *filep, ".", 
repo->markup, ".", repo->suffix, NULL);
            if (rpmioExists(fn, st)) {
                if (Access(fn, W_OK))
                    repo_error(1, _("Path must be writable: %s"), fn);
  @@ -580,7 +574,7 @@
       const char * spew = rfile->init;
       size_t nspew = strlen(spew);
       const char * fn =
  -        rpmGetPath(repo->outputdir, "/", repo->tempdir, "/", rfile->file, 
NULL);
  +        rpmGetPath(repo->outputdir, "/", repo->tempdir, "/", rfile->type, 
".", repo->markup, ".", repo->suffix, NULL);
       /* XXX todo: fill in repo->pkgcount */
       size_t nb;
   
  @@ -948,7 +942,7 @@
       <checksum type=\"", spewalgo, "\">", rfile->digest, "</checksum>\n\
       <timestamp>", spewtime, "</timestamp>\n\
       <open-checksum type=\"",spewalgo,"\">", rfile->digest, 
"</open-checksum>\n\
  -    <location href=\"", rfile->href, "\"/>\n\
  +    <location href=\"", repo->finaldir, "/", rfile->type, ".", repo->markup, 
".", repo->suffix, "\"/>\n\
     </data>\n", NULL);
   }
   
  @@ -962,21 +956,21 @@
       const char * repopath =
                rpmGetPath(repo->outputdir, "/", repo->tempdir, NULL);
       const char * repofilepath =
  -             rpmGetPath(repopath, "/", repo->repomd.file, NULL);
  +             rpmGetPath(repopath, "/", repo->repomd.type, ".", repo->markup, 
".", repo->suffix, NULL);
       FD_t fd;
   
   if (_repo_debug)
   fprintf(stderr, "==> repoDoRepoMetadata(%p)\n", repo);
   
  -    fn = rpmGetPath(repo->outputdir, "/", repo->tempdir, "/", 
repo->other.file, NULL);
  +    fn = rpmGetPath(repo->outputdir, "/", repo->tempdir, "/", 
repo->other.type, ".", repo->markup, ".", repo->suffix, NULL);
       repo->other.ctime = rpmioCtime(fn);
       fn = _free(fn);
   
  -    fn = rpmGetPath(repo->outputdir, "/", repo->tempdir, "/", 
repo->filelists.file, NULL);
  +    fn = rpmGetPath(repo->outputdir, "/", repo->tempdir, "/", 
repo->filelists.type, ".", repo->markup, ".", repo->suffix, NULL);
       repo->filelists.ctime = rpmioCtime(fn);
       fn = _free(fn);
   
  -    fn = rpmGetPath(repo->outputdir, "/", repo->tempdir, "/", 
repo->primary.file, NULL);
  +    fn = rpmGetPath(repo->outputdir, "/", repo->tempdir, "/", 
repo->primary.type, ".", repo->markup, ".", repo->suffix, NULL);
       repo->primary.ctime = rpmioCtime(fn);
       fn = _free(fn);
   
  @@ -1193,11 +1187,11 @@
       }
   
     { static const char * files[] =
  -     { "primary.xml.gz", "filelists.xml.gz", "other.xml.gz", 
"repomd.xml.gz", "groupfile", NULL };
  +     { "primary", "filelists", "other", "repomd", "group", NULL };
       const char ** filep;
   
       for (filep = files; *filep != NULL; filep++) {
  -     oldfile = rpmGetPath(output_old_dir, "/", *filep, NULL);
  +     oldfile = rpmGetPath(output_old_dir, "/", *filep, ".", repo->markup, 
".", repo->suffix, NULL);
        if (rpmioExists(oldfile, st)) {
            if (Unlink(oldfile))
                repo_error(1, _("Could not remove old metadata file: %s: %s"),
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                rpm-cvs@rpm5.org

Reply via email to