From 3be32116258babbbdd231a5bba8e6e58e87daa99 Mon Sep 17 00:00:00 2001 From: Alexander Pyhalov Date: Mon, 22 Sep 2014 18:30:58 +0400 Subject: 5189 validate_pkg should support mediated links Reviewed by: Richard Lowe Reviewed by: Josef 'Jeff' Sipek Approved by: Dan McDonald --- usr/src/tools/scripts/validate_pkg.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'usr/src/tools/scripts/validate_pkg.py') diff --git a/usr/src/tools/scripts/validate_pkg.py b/usr/src/tools/scripts/validate_pkg.py index 2ac1e009d0..6678b211e8 100644 --- a/usr/src/tools/scripts/validate_pkg.py +++ b/usr/src/tools/scripts/validate_pkg.py @@ -60,6 +60,7 @@ OUTPUTMAP = { ("path", "path=") ], "link": [ + ("mediator", "mediator="), ("path", "path="), ("target", "target=") ], @@ -196,9 +197,10 @@ class FileInfo(object): # # For symlinks, all that's left is the link target. + # For mediated symlinks targets can differ. # if typelhs == "link": - return lhs.target != rhs.target + return (lhs.mediator is None) and (lhs.target != rhs.target) # # For a directory, it's important that both be directories, @@ -306,6 +308,7 @@ class ActionInfo(FileInfo): elif action.name == "link": target = action.attrs["target"] self.target = os.path.normpath(target) + self.mediator = action.attrs.get("mediator") elif action.name == "dir": self.owner = action.attrs["owner"] self.group = action.attrs["group"] @@ -366,6 +369,7 @@ class RealFileInfo(FileInfo): self.isdir = True elif stat.S_ISLNK(mode): self.target = os.path.normpath(os.readlink(path)) + self.mediator = None else: raise UnsupportedFileFormatError(path, mode) -- cgit v1.2.3