summaryrefslogtreecommitdiff
path: root/usr/src/tools/scripts/validate_pkg.py
diff options
context:
space:
mode:
authorAlexander Pyhalov <apyhalov@gmail.com>2014-09-22 18:30:58 +0400
committerDan McDonald <danmcd@omniti.com>2014-09-23 13:46:14 -0400
commit3be32116258babbbdd231a5bba8e6e58e87daa99 (patch)
treeb400cab651749a95cdc7e42e80b321af86b8498b /usr/src/tools/scripts/validate_pkg.py
parent482a774964a5167f49856a87b22ce7797ce5d694 (diff)
downloadillumos-joyent-3be32116258babbbdd231a5bba8e6e58e87daa99.tar.gz
5189 validate_pkg should support mediated links
Reviewed by: Richard Lowe <richlowe@richlowe.net> Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com> Approved by: Dan McDonald <danmcd@omniti.com>
Diffstat (limited to 'usr/src/tools/scripts/validate_pkg.py')
-rw-r--r--usr/src/tools/scripts/validate_pkg.py6
1 files changed, 5 insertions, 1 deletions
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)