AUTHORS createrepo/__init__.py createrepo.spec docs/createrepo.8 genpkgmetadata.py README
[email protected] (Seth Vidal)
| Newsgroups | gmane.linux.rpm.metadata |
|---|---|
| Message-ID | <[email protected]> |
AUTHORS | 4 ++++ README | 3 ++- createrepo.spec | 2 +- createrepo/__init__.py | 15 +++++++++++++-- docs/createrepo.8 | 15 ++++++++++----- genpkgmetadata.py | 17 ++++++++++++++++- 6 files changed, 46 insertions(+), 10 deletions(-) New commits: commit 1020057de0fbaad469bd86927ac7622fce7a19d8 Author: Seth Vidal <[email protected]> Date: Tue Oct 21 14:22:12 2008 -0400 - document --content, --distro and --revision - update urls in spec and docs - add Authors file diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..d18ef02 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,4 @@ +Seth Vidal +Luke Macken +James Antill +Paul Nasrat diff --git a/README b/README index b35c668..99bd0dd 100644 --- a/README +++ b/README @@ -4,7 +4,8 @@ other package-repository-related tools. run createrepo -h for usage syntax -http://linux.duke.edu/createrepo/ +http://createrepo.baseurl.org/ + diff --git a/createrepo.spec b/createrepo.spec index ac4573c..fc49870 100644 --- a/createrepo.spec +++ b/createrepo.spec @@ -7,7 +7,7 @@ Release: 1 License: GPL Group: System Environment/Base Source: %{name}-%{version}.tar.gz -URL: http://linux.duke.edu/metadata/ +URL: http://createrepo.baseurl.org/ BuildRoot: %{_tmppath}/%{name}-%{version}root BuildArchitectures: noarch Requires: python >= 2.1, rpm-python, rpm >= 0:4.1.1, libxml2-python diff --git a/createrepo/__init__.py b/createrepo/__init__.py index 488abb4..744bb67 100644 --- a/createrepo/__init__.py +++ b/createrepo/__init__.py @@ -84,8 +84,9 @@ class MetaDataConfig(object): self.changelog_limit = None # needs to be an int or None self.unique_md_filenames = False self.additional_metadata = {} # dict of 'type':'filename' - - + self.revision = str(int(time.time())) + self.content_tags = [] # flat list of strings (like web 2.0 tags) + self.distro_tags = []# [(cpeid(None allowed), human-readable-string)] class SimpleMDCallBack(object): def errorlog(self, thing): @@ -604,6 +605,16 @@ class MetaDataGenerator: rpmns = reporoot.newNs("http://linux.duke.edu/metadata/rpm", 'rpm') repopath = os.path.join(self.conf.outputdir, self.conf.tempdir) repofilepath = os.path.join(repopath, self.conf.repomdfile) + + revision = reporoot.newChild(None, 'revision', self.conf.revision) + if self.conf.content_tags or self.conf.distro_tags: + tags = reporoot.newChild(None, 'tags', None) + for item in self.conf.content_tags: + c_tags = tags.newChild(None, 'content', item) + for (cpeid,item) in self.conf.distro_tags: + d_tags = tags.newChild(None, 'distro', item) + if cpeid: + d_tags.newProp('cpeid', cpeid) sumtype = self.conf.sumtype if self.conf.database_only: diff --git a/docs/createrepo.8 b/docs/createrepo.8 index 719edff..1a31190 100644 --- a/docs/createrepo.8 +++ b/docs/createrepo.8 @@ -73,9 +73,13 @@ Ignore symlinks of packages Only import the last N changelog entries, from each rpm, into the metadata .IP "\fB\--unique-md-filenames\fP" Include the file's checksum in the metadata filename, helps HTTP caching - -.IP "\fB\--database-only\fP" -Generate only the sqlite dbs. Do not create the xml metadata at all. +.IP "\--distro\fP" +Specify distro tags. Can be specified more than once. Optional syntax specifying a +cpeid(http://cpe.mitre.org/) --distro=cpeid,distrotag +.IP "\--content\fP" +Specify keyword/tags about the content of the repository. Can be specified more than once. +.IP "\--revision\fP" +Arbitrary string for a repository revision. .SH "EXAMPLES" Here is an example of a repository with a groups file. Note that the @@ -99,11 +103,12 @@ repodata/repomd.xml .PP .SH "AUTHORS" .nf -Seth Vidal <[email protected]> +See the Authors file .fi .PP .SH "BUGS" Any bugs which are found should be emailed to the mailing list: [email protected] [email protected] +or reported in trac at: http://createrepo.baseurl.org .fi diff --git a/genpkgmetadata.py b/genpkgmetadata.py index 5fe9a9a..77b4095 100755 --- a/genpkgmetadata.py +++ b/genpkgmetadata.py @@ -83,7 +83,13 @@ def parseArgs(args, conf): default=False, action="store_true", help="include the file's checksum in the filename, helps" \ "with proxies") - + parser.add_option("--distro", default=[], action="append", + help="distro tag and optional cpeid: --distro 'cpeid,textname'") + parser.add_option("--content", default=[], dest='content_tags', action="append", + help="tags for the content in the repository") + parser.add_option("--revision", default=None, + help="user-specified revision for this repository") + (opts, argsleft) = parser.parse_args(args) if len(argsleft) > 1 and not opts.split: errorprint(_('Error: Only one directory allowed per run.')) @@ -115,6 +121,15 @@ def parseArgs(args, conf): conf.directory = directory conf.directories = directories + # distro tag parsing + + for spec in opts.distro: + if spec.find(',') == -1: + conf.distro_tags.append((None,spec)) + else: + splitspec = spec.split(',') + conf.distro_tags.append((splitspec[0], splitspec[1])) + lst = [] if conf.pkglist: pfo = open(conf.pkglist, 'r')