rpm  5.2.1
Data Structures | Typedefs | Functions | Variables
rpmrepo.c File Reference
#include "system.h"
#include <rpmio_internal.h>
#include <fts.h>
#include <argv.h>
#include <mire.h>
#include <poptIO.h>
#include <rpmtypes.h>
#include <rpmtag.h>
#include <pkgio.h>
#include <rpmts.h>
#include "debug.h"
#include "yum_primary_xml"
#include "yum_filelists_xml"
#include "yum_other_xml"
#include "wnh_primary_yaml"
#include "wnh_filelists_yaml"
#include "wnh_other_yaml"
#include "deb_Packages"
#include "deb_Sources"
#include "yum_primary_sqlite"
#include "yum_filelists_sqlite"
#include "yum_other_sqlite"
Include dependency graph for rpmrepo.c:

Go to the source code of this file.

Data Structures

struct  rpmrfile_s
 Repository metadata file. More...
 
struct  rpmrepo_s
 Repository. More...
 

Typedefs

typedef struct rpmrepo_srpmrepo
 
typedef struct rpmrfile_srpmrfile
 

Functions

static void repo_error (int lvl, const char *fmt,...)
 Print an error message and exit (if requested).
 
static void repoProgress (rpmrepo repo, const char *item, int current, int total)
 Display progress.
 
static int rpmioExists (const char *fn, struct stat *st)
 Return stat(2) for a file.
 
static time_t rpmioCtime (const char *fn)
 Return stat(2) creation time of a file.
 
static const char * repoRealpath (const char *lpath)
 Return realpath(3) canonicalized absolute path.
 
static int repoMkdir (rpmrepo repo, const char *dn)
 Create directory path.
 
static const char * repoGetPath (rpmrepo repo, const char *dir, const char *type, int compress)
 Return /repository/directory/component.markup.compression path.
 
static int repoTestSetupDirs (rpmrepo repo)
 Test for repository sanity.
 
static int chkSuffix (const char *fn, const char *suffix)
 Check file name for a suffix.
 
static const char ** repoGetFileList (rpmrepo repo, const char *roots[], const char *ext)
 Walk file/directory trees, looking for files with an extension.
 
static int repoCheckTimeStamps (rpmrepo repo)
 Check that repository time stamp is newer than any contained package.
 
static int rfileXMLWrite (rpmrfile rfile, const char *spew)
 Write to a repository metadata file.
 
static int repoFclose (rpmrepo repo, FD_t fd)
 Close an I/O stream, accumulating uncompress/digest statistics.
 
static int repoOpenMDFile (const rpmrepo repo, rpmrfile rfile)
 Open a repository metadata file.
 
static Header repoReadHeader (rpmrepo repo, const char *path)
 Read a header from a repository package file, computing package file digest.
 
static const char * rfileHeaderSprintf (Header h, const char *qfmt)
 Return header query.
 
static int repoWriteMDFile (rpmrepo repo, rpmrfile rfile, Header h)
 Export a single package's metadata to repository metadata file(s).
 
static int repoWriteMetadataDocs (rpmrepo repo, const char **pkglist)
 Export all package metadata to repository metadata file(s).
 
static int repoRfileDigest (const rpmrepo repo, rpmrfile rfile, const char **digestp)
 Compute digest of a file.
 
static int repoCloseMDFile (const rpmrepo repo, rpmrfile rfile)
 Close a repository metadata file.
 
static int repoDoPkgMetadata (rpmrepo repo)
 Write repository metadata files.
 
static const char * algo2tagname (uint32_t algo)
 
static const char * repoMDExpand (rpmrepo repo, rpmrfile rfile)
 Return a repository metadata file item.
 
static int repoDoRepoMetadata (rpmrepo repo)
 Write repository manifest.
 
static int repoDoFinalMove (rpmrepo repo)
 Rename temporary repository to final paths.
 
static void repoArgCallback (poptContext con, enum poptCallbackReason reason, const struct poptOption *opt, const char *arg, void *data)
 
int main (int argc, char *argv[])
 

Variables

static int _repo_debug
 
static const char primary_xml_init []
 
static const char primary_xml_fini [] = "</metadata>\n"
 
static const char filelists_xml_init []
 
static const char filelists_xml_fini [] = "</filelists>\n"
 
static const char other_xml_init []
 
static const char other_xml_fini [] = "</otherdata>\n"
 
static const char repomd_xml_init []
 
static const char repomd_xml_fini [] = "</repomd>\n"
 
static const char primary_xml_qfmt [] =
 
static const char filelists_xml_qfmt [] =
 
static const char other_xml_qfmt [] =
 
static const char primary_yaml_qfmt [] =
 
static const char filelists_yaml_qfmt [] =
 
static const char other_yaml_qfmt [] =
 
static const char Packages_qfmt [] =
 
static const char Sources_qfmt [] =
 
static const char * primary_sql_init []
 
static const char * filelists_sql_init []
 
static const char * other_sql_init []
 
static const char primary_sql_qfmt [] =
 
static const char filelists_sql_qfmt [] =
 
static const char other_sql_qfmt [] =
 
static struct rpmrepo_s __rpmrepo
 
static rpmrepo _rpmrepo = &__rpmrepo
 
static int compression = -1
 
static struct poptOption repoCompressionPoptTable []
 
static struct poptOption optionsTable []
 

Typedef Documentation

typedef struct rpmrepo_s* rpmrepo

Definition at line 67 of file rpmrepo.c.

typedef struct rpmrfile_s* rpmrfile

Definition at line 68 of file rpmrepo.c.

Function Documentation

static const char* algo2tagname ( uint32_t  algo)
static
static int chkSuffix ( const char *  fn,
const char *  suffix 
)
static

Check file name for a suffix.

Parameters
fnfile name
suffixsuffix
Returns
1 if file name ends with suffix

Definition at line 758 of file rpmrepo.c.

Referenced by repoGetFileList().

int main ( int  argc,
char *  argv[] 
)
static void repo_error ( int  lvl,
const char *  fmt,
  ... 
)
static

Print an error message and exit (if requested).

Parameters
lvlerror level (non-zero exits)
fmtmsg format

Definition at line 526 of file rpmrepo.c.

References __progname, and EXIT_FAILURE.

Referenced by main(), repoCheckTimeStamps(), repoCloseMDFile(), repoDoFinalMove(), repoDoRepoMetadata(), repoGetFileList(), repoMkdir(), repoOpenMDFile(), repoTestSetupDirs(), repoWriteMetadataDocs(), rfileHeaderSprintf(), and rfileXMLWrite().

static void repoArgCallback ( poptContext  con,
enum poptCallbackReason  reason,
const struct poptOption *  opt,
const char *  arg,
void *  data 
)
static

Definition at line 1830 of file rpmrepo.c.

References _, __progname, _rpmrepo, EXIT_FAILURE, and rpmrepo_s::verbose.

static int repoCheckTimeStamps ( rpmrepo  repo)
static

Check that repository time stamp is newer than any contained package.

Parameters
reporepository
Returns
0 on success

Definition at line 840 of file rpmrepo.c.

References _, rpmrepo_s::checkts, rpmrepo_s::mdtimestamp, rpmrepo_s::pkglist, repo_error(), and rpmioExists().

Referenced by main().

static int repoCloseMDFile ( const rpmrepo  repo,
rpmrfile  rfile 
)
static
static int repoDoFinalMove ( rpmrepo  repo)
static

Rename temporary repository to final paths.

Parameters
reporepository
Returns
0 always

Definition at line 1724 of file rpmrepo.c.

References _, _free(), Closedir(), dirent, errno, rpmrepo_s::finaldir, rpmrepo_s::markup, rpmrepo_s::olddir, Opendir(), rpmrepo_s::outputdir, Readdir(), Rename(), repo_error(), Rmdir(), rpmGetPath(), rpmioExists(), rpmrepo_s::suffix, rpmrepo_s::tempdir, and Unlink().

Referenced by main().

static int repoDoPkgMetadata ( rpmrepo  repo)
static
static int repoDoRepoMetadata ( rpmrepo  repo)
static
static int repoFclose ( rpmrepo  repo,
FD_t  fd 
)
static

Close an I/O stream, accumulating uncompress/digest statistics.

Parameters
reporepository
fdI/O stream
Returns
0 on success

Definition at line 894 of file rpmrepo.c.

References Fclose(), FDSTAT_DIGEST, fdstat_op(), FDSTAT_READ, rpmswAdd(), RPMTS_OP_DIGEST, RPMTS_OP_UNCOMPRESS, rpmtsOp(), and rpmrepo_s::ts.

Referenced by repoCloseMDFile(), repoDoRepoMetadata(), and repoRfileDigest().

static const char** repoGetFileList ( rpmrepo  repo,
const char *  roots[],
const char *  ext 
)
static

Walk file/directory trees, looking for files with an extension.

Parameters
reporepository
rootsfile/directory trees to search
extfile extension to match (usually ".rpm")
Returns
list of files with the extension

Definition at line 774 of file rpmrepo.c.

References _, argvAdd(), argvPrint(), chkSuffix(), errno, rpmrepo_s::excludeMire, Fts_close(), FTS_D, FTS_DP, FTS_F, _ftsent::fts_info, _ftsent::fts_level, _ftsent::fts_name, _ftsent::fts_namelen, Fts_open(), _ftsent::fts_path, Fts_read(), FTS_SL, rpmrepo_s::ftsoptions, rpmrepo_s::includeMire, mireApply(), rpmrepo_s::nexcludes, rpmrepo_s::nincludes, rpmrepo_s::nofollow, and repo_error().

Referenced by main(), and repoDoPkgMetadata().

static const char* repoGetPath ( rpmrepo  repo,
const char *  dir,
const char *  type,
int  compress 
)
static

Return /repository/directory/component.markup.compression path.

Parameters
reporepository
dirdirectory
typefile
Returns
repository file path

Definition at line 657 of file rpmrepo.c.

References rpmrepo_s::markup, rpmrepo_s::outputdir, rpmGetPath(), and rpmrepo_s::suffix.

Referenced by repoDoRepoMetadata(), repoOpenMDFile(), repoRfileDigest(), and repoTestSetupDirs().

static const char* repoMDExpand ( rpmrepo  repo,
rpmrfile  rfile 
)
static

Return a repository metadata file item.

Parameters
reporepository
Returns
repository metadata file item

Definition at line 1509 of file rpmrepo.c.

References rpmrepo_s::algo, algo2tagname(), rpmrfile_s::ctime, rpmrfile_s::digest, rpmrepo_s::finaldir, rpmrepo_s::markup, rpmExpand(), snprintf(), rpmrepo_s::suffix, rpmrfile_s::type, and rpmrfile_s::Zdigest.

Referenced by repoDoRepoMetadata().

static int repoMkdir ( rpmrepo  repo,
const char *  dn 
)
static

Create directory path.

Parameters
reporepository
dndirectory path
Returns
0 on success

Definition at line 629 of file rpmrepo.c.

References _, _free(), errno, Mkdir(), rpmrepo_s::outputdir, repo_error(), rpmGetPath(), rpmioMkpath(), URL_IS_UNKNOWN, and urlPath().

Referenced by repoTestSetupDirs().

static int repoOpenMDFile ( const rpmrepo  repo,
rpmrfile  rfile 
)
static

Open a repository metadata file.

Parameters
reporepository
rfilerepository metadata file
Returns
0 on success

Definition at line 917 of file rpmrepo.c.

References _, _free(), rpmrepo_s::algo, rpmrfile_s::fd, fdInitDigest(), Fopen(), Fstrerror(), Fwrite(), rpmrepo_s::outputdir, PGPHASHALGO_NONE, rpmrepo_s::pkgcount, repo_error(), repoGetPath(), rpmGetPath(), snprintf(), rpmrfile_s::sql_init, rpmrepo_s::tempdir, rpmrfile_s::type, rpmrepo_s::wmode, and rpmrfile_s::xml_init.

Referenced by repoDoPkgMetadata().

static void repoProgress ( rpmrepo  repo,
const char *  item,
int  current,
int  total 
)
static

Display progress.

Parameters
reporepository
itemrepository item (usually a file path)
currentcurrent iteration index
totalmaximum iteration index

Definition at line 549 of file rpmrepo.c.

References __progname.

Referenced by repoWriteMetadataDocs().

static Header repoReadHeader ( rpmrepo  repo,
const char *  path 
)
static

Read a header from a repository package file, computing package file digest.

Parameters
reporepository
pathpackage file path
Returns
header (NULL on error)

Definition at line 982 of file rpmrepo.c.

References _, __progname, _free(), rpmrepo_s::baseurl, Fclose(), fdFiniDigest(), fdInitDigest(), Ferror(), Fopen(), Fread(), Fstrerror(), headerFree(), headerSetBaseURL(), headerSetDigest(), PGPHASHALGO_NONE, rpmrepo_s::pkgalgo, RPMRC_FAIL, RPMRC_NOKEY, RPMRC_NOTFOUND, RPMRC_NOTTRUSTED, RPMRC_OK, rpmReadPackageFile(), and rpmrepo_s::ts.

Referenced by repoWriteMetadataDocs().

static const char* repoRealpath ( const char *  lpath)
static

Return realpath(3) canonicalized absolute path.

Parameters
lpathfile path canonicalized absolute path

Definition at line 607 of file rpmrepo.c.

References MAXPATHLEN, Realpath(), and xstrdup().

Referenced by main().

static int repoRfileDigest ( const rpmrepo  repo,
rpmrfile  rfile,
const char **  digestp 
)
static
static int repoTestSetupDirs ( rpmrepo  repo)
static

Test for repository sanity.

Parameters
reporepository
Returns
0 on success

Definition at line 672 of file rpmrepo.c.

References _, _free(), Access(), rpmrepo_s::checkts, rpmrepo_s::directories, rpmrepo_s::finaldir, rpmrepo_s::mdtimestamp, rpmrepo_s::olddir, rpmrepo_s::outputdir, repo_error(), repoGetPath(), repoMkdir(), rpmGetPath(), rpmioExists(), rpmrepo_s::split, rpmrepo_s::tempdir, and W_OK.

Referenced by main().

static int repoWriteMDFile ( rpmrepo  repo,
rpmrfile  rfile,
Header  h 
)
static

Export a single package's metadata to repository metadata file(s).

Parameters
reporepository
rfilerepository metadata file
hheader
Returns
0 on success

Definition at line 1194 of file rpmrepo.c.

References rfileHeaderSprintf(), rfileXMLWrite(), rpmrfile_s::sql_qfmt, and rpmrfile_s::xml_qfmt.

Referenced by repoWriteMetadataDocs().

static int repoWriteMetadataDocs ( rpmrepo  repo,
const char **  pkglist 
)
static

Export all package metadata to repository metadata file(s).

Parameters
reporepository
pkglistrepository packages
Returns
0 on success

Definition at line 1221 of file rpmrepo.c.

References _, rpmrepo_s::basedir, rpmrepo_s::baseurl, rpmrepo_s::current, rpmrepo_s::directories, errno, rpmrepo_s::filelists, headerFree(), headerSetInstance(), rpmrepo_s::other, rpmrepo_s::pkgcount, rpmrepo_s::primary, rpmrepo_s::quiet, repo_error(), repoProgress(), repoReadHeader(), repoWriteMDFile(), rpmGetPath(), and rpmrepo_s::verbose.

Referenced by repoDoPkgMetadata().

static const char* rfileHeaderSprintf ( Header  h,
const char *  qfmt 
)
static

Return header query.

Parameters
hheader
qfmtquery format
Returns
query format result

Definition at line 1044 of file rpmrepo.c.

References _, headerSprintf(), and repo_error().

Referenced by repoWriteMDFile().

static int rfileXMLWrite ( rpmrfile  rfile,
const char *  spew 
)
static

Write to a repository metadata file.

Parameters
rfilerepository metadata file
spewcontents
Returns
0 on success

Definition at line 870 of file rpmrepo.c.

References _, _free(), rpmrfile_s::fd, Fstrerror(), Fwrite(), and repo_error().

Referenced by repoCloseMDFile(), repoDoRepoMetadata(), and repoWriteMDFile().

static time_t rpmioCtime ( const char *  fn)
static

Return stat(2) creation time of a file.

Parameters
fnfile path
Returns
st_ctime

Definition at line 589 of file rpmrepo.c.

References rpmioExists().

Referenced by repoCloseMDFile().

static int rpmioExists ( const char *  fn,
struct stat *  st 
)
static

Return stat(2) for a file.

Return values
ststat(2) buffer
Returns
0 on success

Definition at line 577 of file rpmrepo.c.

References Stat().

Referenced by repoCheckTimeStamps(), repoDoFinalMove(), repoDoRepoMetadata(), repoRfileDigest(), repoTestSetupDirs(), and rpmioCtime().

Variable Documentation

struct rpmrepo_s __rpmrepo
static

Definition at line 421 of file rpmrepo.c.

int _repo_debug
static

Definition at line 65 of file rpmrepo.c.

rpmrepo _rpmrepo = &__rpmrepo
static

Definition at line 516 of file rpmrepo.c.

Referenced by main(), and repoArgCallback().

int compression = -1
static

Definition at line 1856 of file rpmrepo.c.

const char* filelists_sql_init[]
static
Initial value:
= {
"PRAGMA synchronous = \"OFF\";",
"pragma locking_mode = \"EXCLUSIVE\";",
"CREATE TABLE db_info (dbversion INTEGER, checksum TEXT);",
"CREATE TABLE filelist ( pkgKey INTEGER, name TEXT, type TEXT );",
"CREATE TABLE packages ( pkgKey INTEGER PRIMARY KEY, pkgId TEXT);",
"CREATE INDEX filelistnames ON filelist (name);",
"CREATE INDEX keyfile ON filelist (pkgKey);",
"CREATE INDEX pkgId ON packages (pkgId);",
"CREATE TRIGGER remove_filelist AFTER DELETE ON packages\
\n BEGIN\
\n DELETE FROM filelist WHERE pkgKey = old.pkgKey;\
\n END;",
"INSERT into db_info values (9, 'direct_create');",
NULL
}

Definition at line 300 of file rpmrepo.c.

const char filelists_sql_qfmt[] =
static

Definition at line 403 of file rpmrepo.c.

const char filelists_xml_fini[] = "</filelists>\n"
static

Definition at line 208 of file rpmrepo.c.

const char filelists_xml_init[]
static
Initial value:
=
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
"<filelists xmlns=\"http://linux.duke.edu/metadata/filelists\" packages=\"0\">\n"

Definition at line 204 of file rpmrepo.c.

const char filelists_xml_qfmt[] =
static

Definition at line 231 of file rpmrepo.c.

const char filelists_yaml_qfmt[] =
static

Definition at line 246 of file rpmrepo.c.

struct poptOption optionsTable[]
static

Definition at line 1874 of file rpmrepo.c.

const char* other_sql_init[]
static
Initial value:
= {
"PRAGMA synchronous = \"OFF\";",
"pragma locking_mode = \"EXCLUSIVE\";",
"CREATE TABLE changelog ( pkgKey INTEGER, author TEXT, date INTEGER, changelog TEXT);",
"CREATE TABLE db_info (dbversion INTEGER, checksum TEXT);",
"CREATE TABLE packages ( pkgKey INTEGER PRIMARY KEY, pkgId TEXT);",
"CREATE INDEX keychange ON changelog (pkgKey);",
"CREATE INDEX pkgId ON packages (pkgId);",
"CREATE TRIGGER remove_changelogs AFTER DELETE ON packages\
\n BEGIN\
\n DELETE FROM changelog WHERE pkgKey = old.pkgKey;\
\n END;",
"INSERT into db_info values (9, 'direct_create');",
NULL
}

Definition at line 319 of file rpmrepo.c.

const char other_sql_qfmt[] =
static

Definition at line 415 of file rpmrepo.c.

const char other_xml_fini[] = "</otherdata>\n"
static

Definition at line 215 of file rpmrepo.c.

const char other_xml_init[]
static
Initial value:
=
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
"<otherdata xmlns=\"http://linux.duke.edu/metadata/other\" packages=\"0\">\n"

Definition at line 211 of file rpmrepo.c.

const char other_xml_qfmt[] =
static

Definition at line 236 of file rpmrepo.c.

const char other_yaml_qfmt[] =
static

Definition at line 251 of file rpmrepo.c.

const char Packages_qfmt[] =
static

Definition at line 256 of file rpmrepo.c.

const char* primary_sql_init[]
static
Initial value:
= {
"PRAGMA synchronous = \"OFF\";",
"pragma locking_mode = \"EXCLUSIVE\";",
"CREATE TABLE conflicts ( pkgKey INTEGER, name TEXT, flags TEXT, epoch TEXT, version TEXT, release TEXT );",
"CREATE TABLE db_info (dbversion INTEGER, checksum TEXT);",
"CREATE TABLE files ( pkgKey INTEGER, name TEXT, type TEXT );",
"CREATE TABLE obsoletes ( pkgKey INTEGER, name TEXT, flags TEXT, epoch TEXT, version TEXT, release TEXT );",
"CREATE TABLE packages ( pkgKey INTEGER PRIMARY KEY, pkgId TEXT, name TEXT, arch TEXT, version TEXT, epoch TEXT, release TEXT, summary TEXT, description TEXT, url TEXT, time_file INTEGER, time_build INTEGER, rpm_license TEXT, rpm_vendor TEXT, rpm_group TEXT, rpm_buildhost TEXT, rpm_sourcerpm TEXT, rpm_header_start INTEGER, rpm_header_end INTEGER, rpm_packager TEXT, size_package INTEGER, size_installed INTEGER, size_archive INTEGER, location_href TEXT, location_base TEXT, checksum_type TEXT);",
"CREATE TABLE provides ( pkgKey INTEGER, name TEXT, flags TEXT, epoch TEXT, version TEXT, release TEXT );",
"CREATE TABLE requires ( pkgKey INTEGER, name TEXT, flags TEXT, epoch TEXT, version TEXT, release TEXT );",
"CREATE INDEX filenames ON files (name);",
"CREATE INDEX packageId ON packages (pkgId);",
"CREATE INDEX packagename ON packages (name);",
"CREATE INDEX pkgconflicts on conflicts (pkgKey);",
"CREATE INDEX pkgobsoletes on obsoletes (pkgKey);",
"CREATE INDEX pkgprovides on provides (pkgKey);",
"CREATE INDEX pkgrequires on requires (pkgKey);",
"CREATE INDEX providesname ON provides (name);",
"CREATE INDEX requiresname ON requires (name);",
"CREATE TRIGGER removals AFTER DELETE ON packages\
\n BEGIN\n\
\n DELETE FROM files WHERE pkgKey = old.pkgKey;\
\n DELETE FROM requires WHERE pkgKey = old.pkgKey;\
\n DELETE FROM provides WHERE pkgKey = old.pkgKey;\
\n DELETE FROM conflicts WHERE pkgKey = old.pkgKey;\
\n DELETE FROM obsoletes WHERE pkgKey = old.pkgKey;\
\n END;",
"INSERT into db_info values (9, 'direct_create');",
NULL
}

Definition at line 267 of file rpmrepo.c.

const char primary_sql_qfmt[] =
static

Definition at line 392 of file rpmrepo.c.

const char primary_xml_fini[] = "</metadata>\n"
static

Definition at line 201 of file rpmrepo.c.

const char primary_xml_init[]
static
Initial value:
=
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
"<metadata xmlns=\"http://linux.duke.edu/metadata/common\" xmlns:rpm=\"http://linux.duke.edu/metadata/rpm\" packages=\"0\">\n"

Definition at line 197 of file rpmrepo.c.

const char primary_xml_qfmt[] =
static

Definition at line 226 of file rpmrepo.c.

const char primary_yaml_qfmt[] =
static

Definition at line 241 of file rpmrepo.c.

struct poptOption repoCompressionPoptTable[]
static
Initial value:
= {
{ "uncompressed", '\0', POPT_ARG_VAL, &compression, 0,
N_("don't compress"), NULL },
{ "gzip", 'Z', POPT_ARG_VAL, &compression, 1,
N_("use gzip compression"), NULL },
{ "bzip2", '\0', POPT_ARG_VAL, &compression, 2,
N_("use bzip2 compression"), NULL },
{ "lzma", '\0', POPT_ARG_VAL, &compression, 3,
N_("use lzma compression"), NULL },
{ "xz", '\0', POPT_ARG_VAL, &compression, 4,
N_("use xz compression"), NULL },
POPT_TABLEEND
}

Definition at line 1859 of file rpmrepo.c.

const char repomd_xml_fini[] = "</repomd>\n"
static

Definition at line 222 of file rpmrepo.c.

const char repomd_xml_init[]
static
Initial value:
= "\
<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\
<repomd xmlns=\"http://linux.duke.edu/metadata/repo\">\n"

Definition at line 218 of file rpmrepo.c.

const char Sources_qfmt[] =
static

Definition at line 261 of file rpmrepo.c.