A pyexpat parser for rpmHeader xml.
authorjbj <devnull@localhost>
Sat, 12 Jun 2004 12:12:25 +0000 (12:12 +0000)
committerjbj <devnull@localhost>
Sat, 12 Jun 2004 12:12:25 +0000 (12:12 +0000)
CVS patchset: 7312
CVS date: 2004/06/12 12:12:25

tools/.cvsignore
tools/expatparser.py [new file with mode: 0644]
tools/rpmHeader.dtd [new file with mode: 0644]
tools/time.xml [new file with mode: 0644]

index 86fce0e..e580b2a 100644 (file)
@@ -8,16 +8,13 @@ debugedit
 dump
 dumpdb
 javadeps
-rpmarchive
 rpmcache
 rpmdeps
 rpmfile
 rpmgraph
-rpmheader
 rpminject
-rpmlead
 rpmsort
-rpmsignature
+rpmtool
 striptofile
 tpkgid
 unstripfile
diff --git a/tools/expatparser.py b/tools/expatparser.py
new file mode 100644 (file)
index 0000000..aa75e5d
--- /dev/null
@@ -0,0 +1,49 @@
+import sys, xml.parsers.expat
+
+class RpmExpatParser:
+    def __init__(self, fn):
+       self.f = open(fn)
+       self.p = xml.parsers.expat.ParserCreate()
+       self.p.StartElementHandler = self.start_element
+       self.p.EndElementHandler = self.end_element
+       self.p.CharacterDataHandler = self.char_data
+       self.n = 2
+       self.lvl = 0
+
+    def spew(self, l):
+       sys.stdout.write(l)
+       sys.stdout.flush()
+
+    def pad(self):
+       return (' ' * (self.n * self.lvl))
+
+    def start_element(self, name, attrs):
+       l = self.pad() + '<' + name
+       if attrs.has_key(u'name'):
+           l = l + ' name=' + attrs[u'name']
+       l = l + '>'
+       if self.lvl < 2:
+           l = l + '\r\n'
+       self.spew(l)
+       self.lvl = self.lvl + 1
+    
+    def end_element(self, name):
+       self.lvl = self.lvl - 1
+       l = '</' + name + '>'
+       if self.lvl < 2:
+           l = self.pad() + l
+       l = l + '\r\n'
+       self.spew(l)
+
+    def char_data(self, data):
+       if not data.isspace():
+           self.spew(data)
+
+    def read(self, *args):
+       return self.f.read(*args)
+
+    def ParseFile(self):
+       self.p.ParseFile(self)
+
+p = RpmExpatParser('time.xml')
+p.ParseFile()
diff --git a/tools/rpmHeader.dtd b/tools/rpmHeader.dtd
new file mode 100644 (file)
index 0000000..a214a36
--- /dev/null
@@ -0,0 +1,9 @@
+<!DOCTYPE rpmHeader [
+<!ELEMENT rpmHeader (rpmTag+)>
+<!ELEMENT rpmTag       (string+|integer+|base64+)>
+<!ATTLIST rpmTag name  CDATA #REQUIRED
+>
+<!ELEMENT string       (#PCDATA)>
+<!ELEMENT integer      (#PCDATA)>
+<!ELEMENT base64       (#PCDATA)>
+]>
diff --git a/tools/time.xml b/tools/time.xml
new file mode 100644 (file)
index 0000000..d03f384
--- /dev/null
@@ -0,0 +1,363 @@
+<?xml version="1.0"?>
+<!DOCTYPE rpmHeader [
+<!ELEMENT rpmHeader (rpmTag+)>
+<!ELEMENT rpmTag       (string+|integer+|base64+)>
+<!ATTLIST rpmTag name  CDATA #REQUIRED
+>
+<!ELEMENT string       (#PCDATA)>
+<!ELEMENT integer      (#PCDATA)>
+<!ELEMENT base64       (#PCDATA)>
+]>
+<rpmHeader>
+  <rpmTag name="Headeri18ntable">
+       <string>C</string>
+  </rpmTag>
+  <rpmTag name="Name">
+       <string>time</string>
+  </rpmTag>
+  <rpmTag name="Version">
+       <string>1.7</string>
+  </rpmTag>
+  <rpmTag name="Release">
+       <string>22</string>
+  </rpmTag>
+  <rpmTag name="Summary">
+       <string>A GNU utility for monitoring a program's use of system resources.</string>
+  </rpmTag>
+  <rpmTag name="Description">
+       <string>The GNU time utility runs another program, collects information about
+the resources used by that program while it is running, and displays
+the results.</string>
+  </rpmTag>
+  <rpmTag name="Buildtime">
+       <integer>1081809660</integer>
+  </rpmTag>
+  <rpmTag name="Buildhost">
+       <string>wellfleet.jbj.org</string>
+  </rpmTag>
+  <rpmTag name="Size">
+       <integer>20670</integer>
+  </rpmTag>
+  <rpmTag name="License">
+       <string>GPL</string>
+  </rpmTag>
+  <rpmTag name="Group">
+       <string>Applications/System</string>
+  </rpmTag>
+  <rpmTag name="Os">
+       <string>linux</string>
+  </rpmTag>
+  <rpmTag name="Arch">
+       <string>i386</string>
+  </rpmTag>
+  <rpmTag name="Postin">
+       <string>/sbin/install-info /usr/share/info/time.info.gz /usr/share/info/dir \
+       --entry="* time: (time).                GNU time Utility"</string>
+  </rpmTag>
+  <rpmTag name="Preun">
+       <string>if [ "$1" = 0 ]; then
+    /sbin/install-info --delete /usr/share/info/time.info.gz /usr/share/info/dir \
+       --entry="* time: (time).                GNU time Utility" 
+fi</string>
+  </rpmTag>
+  <rpmTag name="Filesizes">
+       <integer>14203</integer>
+       <integer>4096</integer>
+       <integer>811</integer>
+       <integer>663</integer>
+       <integer>4993</integer>
+  </rpmTag>
+  <rpmTag name="Filemodes">
+       <integer>33261</integer>
+       <integer>16877</integer>
+       <integer>33188</integer>
+       <integer>33188</integer>
+       <integer>33188</integer>
+  </rpmTag>
+  <rpmTag name="Filerdevs">
+       <integer>0</integer>
+       <integer>0</integer>
+       <integer>0</integer>
+       <integer>0</integer>
+       <integer>0</integer>
+  </rpmTag>
+  <rpmTag name="Filemtimes">
+       <integer>1081809659</integer>
+       <integer>1081809660</integer>
+       <integer>834531888</integer>
+       <integer>834604687</integer>
+       <integer>1081809659</integer>
+  </rpmTag>
+  <rpmTag name="Filemd5s">
+       <string>a811f210128c11dddbbbe069fe6df5d2</string>
+       <string></string>
+       <string>0ad5e82cfb2ac82b2bfc3bb998150ed6</string>
+       <string>44e9fc77c32600526ed39343511914a1</string>
+       <string>b0f6f713c3249dc4f31a6715dc893d44</string>
+  </rpmTag>
+  <rpmTag name="Filelinktos">
+       <string></string>
+       <string></string>
+       <string></string>
+       <string></string>
+       <string></string>
+  </rpmTag>
+  <rpmTag name="Fileflags">
+       <integer>0</integer>
+       <integer>0</integer>
+       <integer>2</integer>
+       <integer>2</integer>
+       <integer>2</integer>
+  </rpmTag>
+  <rpmTag name="Fileusername">
+       <string>root</string>
+       <string>root</string>
+       <string>root</string>
+       <string>root</string>
+       <string>root</string>
+  </rpmTag>
+  <rpmTag name="Filegroupname">
+       <string>root</string>
+       <string>root</string>
+       <string>root</string>
+       <string>root</string>
+       <string>root</string>
+  </rpmTag>
+  <rpmTag name="Sourcerpm">
+       <string>time-1.7-22.src.rpm</string>
+  </rpmTag>
+  <rpmTag name="Fileverifyflags">
+       <integer>4294967295</integer>
+       <integer>0</integer>
+       <integer>0</integer>
+       <integer>0</integer>
+       <integer>4294967295</integer>
+  </rpmTag>
+  <rpmTag name="Providename">
+       <string>time</string>
+  </rpmTag>
+  <rpmTag name="Requireflags">
+       <integer>1344</integer>
+       <integer>2368</integer>
+       <integer>64</integer>
+       <integer>16384</integer>
+       <integer>16384</integer>
+       <integer>16384</integer>
+       <integer>16777290</integer>
+       <integer>16777290</integer>
+  </rpmTag>
+  <rpmTag name="Requirename">
+       <string>/bin/sh</string>
+       <string>/bin/sh</string>
+       <string>/sbin/install-info</string>
+       <string>libc.so.6</string>
+       <string>libc.so.6(GLIBC_2.0)</string>
+       <string>libc.so.6(GLIBC_2.1)</string>
+       <string>rpmlib(CompressedFileNames)</string>
+       <string>rpmlib(PayloadFilesHavePrefix)</string>
+  </rpmTag>
+  <rpmTag name="Requireversion">
+       <string></string>
+       <string></string>
+       <string></string>
+       <string></string>
+       <string></string>
+       <string></string>
+       <string>3.0.4-1</string>
+       <string>4.0-1</string>
+  </rpmTag>
+  <rpmTag name="Rpmversion">
+       <string>4.3.1</string>
+  </rpmTag>
+  <rpmTag name="Changelogtime">
+       <integer>1054764000</integer>
+       <integer>1043272800</integer>
+       <integer>1037743200</integer>
+       <integer>1024696800</integer>
+       <integer>1024524000</integer>
+       <integer>1022191200</integer>
+       <integer>1014674400</integer>
+       <integer>1007589600</integer>
+       <integer>993420000</integer>
+       <integer>980978400</integer>
+       <integer>963439200</integer>
+       <integer>962316000</integer>
+       <integer>960156000</integer>
+       <integer>922053600</integer>
+       <integer>902786400</integer>
+       <integer>893714400</integer>
+       <integer>877989600</integer>
+       <integer>877644000</integer>
+       <integer>865288800</integer>
+  </rpmTag>
+  <rpmTag name="Changelogname">
+       <string>Elliot Lee &lt;sopwith@redhat.com&gt;</string>
+       <string>Tim Powers &lt;timp@redhat.com&gt;</string>
+       <string>Tim Powers &lt;timp@redhat.com&gt;</string>
+       <string>Tim Powers &lt;timp@redhat.com&gt;</string>
+       <string>Florian La Roche &lt;Florian.LaRoche@redhat.de&gt;</string>
+       <string>Tim Powers &lt;timp@redhat.com&gt;</string>
+       <string>Elliot Lee &lt;sopwith@redhat.com&gt;</string>
+       <string>Tom Tromey &lt;tromey@redhat.com&gt;</string>
+       <string>Elliot Lee &lt;sopwith@redhat.com&gt;</string>
+       <string>Preston Brown &lt;pbrown@redhat.com&gt;</string>
+       <string>Prospector &lt;bugzilla@redhat.com&gt;</string>
+       <string>Preston Brown &lt;pbrown@redhat.com&gt;</string>
+       <string>Jeff Johnson &lt;jbj@redhat.com&gt;</string>
+       <string>Cristian Gafton &lt;gafton@redhat.com&gt; </string>
+       <string>Erik Troan &lt;ewt@redhat.com&gt;</string>
+       <string>Prospector System &lt;bugs@redhat.com&gt;</string>
+       <string>Cristian Gafton &lt;gafton@redhat.com&gt;</string>
+       <string>Cristian Gafton &lt;gafton@redhat.com&gt;</string>
+       <string>Erik Troan &lt;ewt@redhat.com&gt;</string>
+  </rpmTag>
+  <rpmTag name="Changelogtext">
+       <string>- rebuilt</string>
+       <string>- rebuilt</string>
+       <string>- rebuild on all arches</string>
+       <string>- automated rebuild</string>
+       <string>- do not strip apps, do not compress info page</string>
+       <string>- automated rebuild</string>
+       <string>- Remove HAVE_WAIT3 hack, tried to replace it with a requirement for an 
+autoconf with the fixed test, didn't work, put in another less-bad hack 
+instead.</string>
+       <string>- Bump release, force HAVE_WAIT3 to be defined at build time</string>
+       <string>- Bump release + rebuild.</string>
+       <string>- prereq install-info (#24715)</string>
+       <string>- automatic rebuild</string>
+       <string>- using / as the file manifesto has weird results.</string>
+       <string>- FHS packaging.</string>
+       <string>- auto rebuild in the new build environment (release 9)</string>
+       <string>- buildrooted and defattr'd</string>
+       <string>- translations modified for de, fr, tr</string>
+       <string>- fixed info handling</string>
+       <string>- updated the spec file; added info file handling</string>
+       <string>- built against glibc</string>
+  </rpmTag>
+  <rpmTag name="Postinprog">
+       <string>/bin/sh</string>
+  </rpmTag>
+  <rpmTag name="Preunprog">
+       <string>/bin/sh</string>
+  </rpmTag>
+  <rpmTag name="Cookie">
+       <string>wellfleet.jbj.org 1081809660</string>
+  </rpmTag>
+  <rpmTag name="Filedevices">
+       <integer>770</integer>
+       <integer>770</integer>
+       <integer>770</integer>
+       <integer>770</integer>
+       <integer>770</integer>
+  </rpmTag>
+  <rpmTag name="Fileinodes">
+       <integer>4162447</integer>
+       <integer>2952857</integer>
+       <integer>4227626</integer>
+       <integer>4227627</integer>
+       <integer>4194947</integer>
+  </rpmTag>
+  <rpmTag name="Filelangs">
+       <string></string>
+       <string></string>
+       <string></string>
+       <string></string>
+       <string></string>
+  </rpmTag>
+  <rpmTag name="Prefixes">
+       <string>/usr</string>
+  </rpmTag>
+  <rpmTag name="Provideflags">
+       <integer>8</integer>
+  </rpmTag>
+  <rpmTag name="Provideversion">
+       <string>1.7-22</string>
+  </rpmTag>
+  <rpmTag name="Dirindexes">
+       <integer>0</integer>
+       <integer>1</integer>
+       <integer>2</integer>
+       <integer>2</integer>
+       <integer>3</integer>
+  </rpmTag>
+  <rpmTag name="Basenames">
+       <string>time</string>
+       <string>time-1.7</string>
+       <string>NEWS</string>
+       <string>README</string>
+       <string>time.info.gz</string>
+  </rpmTag>
+  <rpmTag name="Dirnames">
+       <string>/usr/bin/</string>
+       <string>/usr/share/doc/</string>
+       <string>/usr/share/doc/time-1.7/</string>
+       <string>/usr/share/info/</string>
+  </rpmTag>
+  <rpmTag name="Optflags">
+       <string>-O2 -g -march=i386 -mcpu=i686</string>
+  </rpmTag>
+  <rpmTag name="Payloadformat">
+       <string>cpio</string>
+  </rpmTag>
+  <rpmTag name="Payloadcompressor">
+       <string>gzip</string>
+  </rpmTag>
+  <rpmTag name="Payloadflags">
+       <string>9</string>
+  </rpmTag>
+  <rpmTag name="Rhnplatform">
+       <string>i386</string>
+  </rpmTag>
+  <rpmTag name="Platform">
+       <string>i386-redhat-linux</string>
+  </rpmTag>
+  <rpmTag name="Filecolors">
+       <integer>1</integer>
+       <integer>0</integer>
+       <integer>0</integer>
+       <integer>0</integer>
+       <integer>0</integer>
+  </rpmTag>
+  <rpmTag name="Fileclass">
+       <integer>2</integer>
+       <integer>3</integer>
+       <integer>1</integer>
+       <integer>1</integer>
+       <integer>0</integer>
+  </rpmTag>
+  <rpmTag name="Classdict">
+       <string></string>
+       <string>ASCII English text</string>
+       <string>ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), not stripped</string>
+       <string>directory</string>
+  </rpmTag>
+  <rpmTag name="Filedependsx">
+       <integer>0</integer>
+       <integer>0</integer>
+       <integer>0</integer>
+       <integer>0</integer>
+       <integer>0</integer>
+  </rpmTag>
+  <rpmTag name="Filedependsn">
+       <integer>3</integer>
+       <integer>0</integer>
+       <integer>0</integer>
+       <integer>0</integer>
+       <integer>0</integer>
+  </rpmTag>
+  <rpmTag name="Dependsdict">
+       <integer>1375731715</integer>
+       <integer>1375731716</integer>
+       <integer>1375731717</integer>
+  </rpmTag>
+  <rpmTag name="Sourcepkgid">
+       <base64>8vaKpUrEkvma6oCg0Z/otm==</base64>
+  </rpmTag>
+  <rpmTag name="Filecontexts">
+       <string>system_u:object_r:bin_t</string>
+       <string>system_u:object_r:usr_t</string>
+       <string>system_u:object_r:usr_t</string>
+       <string>system_u:object_r:usr_t</string>
+       <string>system_u:object_r:usr_t</string>
+  </rpmTag>
+</rpmHeader>