From f118cfa23bc5f18773cb17ae8ea498d204459489 Mon Sep 17 00:00:00 2001 From: Patrick Ohly Date: Tue, 3 Feb 2015 06:27:49 -0800 Subject: [PATCH] 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 --- meta/classes/package_rpm.bbclass | 7 +++++++ 1 file changed, 7 insertions(+) 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 -- 2.7.4