File createrepo-0.4.11-fixsymlinks.patch of Package createrepo

Index: genpkgmetadata.py
===================================================================
--- genpkgmetadata.py.orig
+++ genpkgmetadata.py
@@ -99,9 +99,13 @@ class MetaDataGenerator:
 
         def extension_visitor(filelist, dirname, names):
             for fn in names:
-                if os.path.isdir(fn):
-                    continue
-                if self.cmds['skip-symlinks'] and os.path.islink(fn):
+                if os.path.islink(dirname + '/' + fn):
+                    if self.cmds['skip-symlinks']:
+                        continue
+                    elif os.path.isdir(dirname + '/' + fn):
+                        os.path.walk(dirname + '/' + fn, extension_visitor, filelist)
+                        continue
+                elif os.path.isdir(dirname + '/' + fn):
                     continue
                 elif fn[-extlen:].lower() == '%s' % (ext):
                     relativepath = dirname.replace(startdir, "", 1)
@@ -345,9 +349,15 @@ class SplitMetaDataGenerator(MetaDataGen
 
         def extension_visitor(arg, dirname, names):
             for fn in names:
-                if os.path.isdir(fn):
+                if os.path.islink(dirname + '/' + fn):
+                    if self.cmds['skip-symlinks']:
+                        continue
+                    elif os.path.isdir(dirname + '/' + fn):
+                        os.path.walk(dirname + '/' + fn, extension_visitor, arg)
+                        continue
+                elif os.path.isdir(dirname + '/' + fn):
                     continue
-                elif string.lower(fn[-extlen:]) == '%s' % (ext):
+                if string.lower(fn[-extlen:]) == '%s' % (ext):
                     reldir = os.path.basename(dirname)
                     if reldir == os.path.basename(directory):
                         reldir = ""
openSUSE Build Service is sponsored by