From: Patrick Ohly Date: Tue, 3 Feb 2015 14:27:49 +0000 (-0800) Subject: package_rpm.bbclass: support packaging of symlinks to directories X-Git-Tag: rev_ivi_2015_02_04~9 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f118cfa23bc5f18773cb17ae8ea498d204459489;p=scm%2Fbb%2Ftizen-distro.git package_rpm.bbclass: support packaging of symlinks to directories os.walk() returns symlinks to directories in the "dirs" lists, but then never enters them by default. As a result, the old code applied neither the directory handling (because that is active once a directory gets entered) nor the file handling and thus never packaged such symlinks. The fix is simple: find such special directory entries and move them to the "files" list. Signed-off-by: Patrick Ohly --- diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass index 92ddf7a..6483e96 100644 --- a/meta/classes/package_rpm.bbclass +++ b/meta/classes/package_rpm.bbclass @@ -197,6 +197,13 @@ python write_specfile () { if path.endswith("DEBIAN") or path.endswith("CONTROL"): continue + # Treat all symlinks to directories as normal files. + # os.walk() lists them as directories. + for i, entry in enumerate(dirs): + if os.path.islink(os.path.join(rootpath, entry)): + del dirs[i] + files.append(entry) + # Directory handling can happen in two ways, either DIRFILES is not set at all # in which case we fall back to the older behaviour of packages owning all their # directories