fix bug where not all files were getting included
authorSeth Vidal <skvidal@linux.duke.edu>
Sat, 17 Jan 2004 06:04:00 +0000 (06:04 +0000)
committerSeth Vidal <skvidal@linux.duke.edu>
Sat, 17 Jan 2004 06:04:00 +0000 (06:04 +0000)
make the directory detection more reliable

dumpMetadata.py
genpkgmetadata.py

index 564b14fd44882179ab738060fe8fdeb19b8aa11c..11321eb696bf55944626b5632a89a3471ce2044d 100644 (file)
@@ -26,7 +26,7 @@ import sha
 import types
 import struct
 import re
-
+import stat
 
 
 def returnHdr(ts, package):
@@ -246,7 +246,7 @@ class RpmMetaData:
     def _stringToVersion(self, strng):
         i = strng.find(':')
         if i != -1:
-            epoch = long(strng[:i])
+            epoch = strng[:i]
         else:
             epoch = '0'
         j = strng.find('-')
@@ -367,21 +367,17 @@ class RpmMetaData:
         """produces lists of dirs and files for this header in two lists"""
         
         files = self.listTagByName('filenames')
-        fileclasses = self.listTagByName('fileclass')
         fileflags = self.listTagByName('fileflags')
-        filetuple = zip(files, fileclasses, fileflags)
-        classdict = self.listTagByName('classdict')
-        for (file, fileclass, flags) in filetuple:
-            if fileclass is None or file is None: # this is a dumb test
-                self.filenames.append(file)
-                continue
-            if (flags & 64): # check for ghost
-                self.ghostnames.append(file)
-                continue
-            if classdict[fileclass] == 'directory':
-                self.dirnames.append(file)
+        filemodes = self.listTagByName('filemodes')
+        filetuple = zip(files, filemodes, fileflags)
+        for (file, mode, flag) in filetuple:
+            if stat.S_ISDIR(mode):
+                self.dirnames.append(file)                
             else:
-                self.filenames.append(file)
+                if (flag & 64): 
+                    self.ghostnames.append(file)
+                else:
+                    self.filenames.append(file)
 
         
     def usefulFiles(self):
index f4de6f2781062569948f550e12b0fbf9b8e30061..7062c250fe37e4aa60e574fdc1f2ff39056a013f 100755 (executable)
@@ -250,6 +250,7 @@ def doPkgMetadata(cmds, ts):
             else:
                 output = node.serialize(None, 1)
                 basefile.write(output)
+                basefile.write('\n')
                 node.unlinkNode()
                 node.freeNode()
                 del node
@@ -262,6 +263,7 @@ def doPkgMetadata(cmds, ts):
             else:
                 output = node.serialize(None, 1)
                 flfile.write(output)
+                flfile.write('\n')
                 node.unlinkNode()
                 node.freeNode()
                 del node
@@ -274,6 +276,7 @@ def doPkgMetadata(cmds, ts):
             else:
                 output = node.serialize(None, 1)
                 otherfile.write(output)
+                otherfile.write('\n')
                 node.unlinkNode()
                 node.freeNode()
                 del node