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')
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.