diff options
author | Kyle Keen <keenerd@gmail.com> | 2017-03-22 11:16:03 -0400 |
---|---|---|
committer | Kyle Keen <keenerd@gmail.com> | 2017-03-22 11:16:03 -0400 |
commit | 1a44d4e747e8a9cec372b7df6c6620ef02a6481f (patch) | |
tree | 05f77278993bd3bc225303ee807949ced32ef5c5 | |
parent | 95565276ab9e69dece302a1226cd85bb49c093dd (diff) | |
download | namcap-1a44d4e747e8a9cec372b7df6c6620ef02a6481f.tar.gz namcap-1a44d4e747e8a9cec372b7df6c6620ef02a6481f.zip |
Packages can symlink to files in depenencies (FS#53282)
Signed-off-by: Kyle Keen <keenerd@gmail.com>
-rw-r--r-- | Namcap/rules/symlink.py | 10 | ||||
-rw-r--r-- | Namcap/tests/package/test_symlink.py | 3 |
2 files changed, 12 insertions, 1 deletions
diff --git a/Namcap/rules/symlink.py b/Namcap/rules/symlink.py index c43e498..f595bc5 100644 --- a/Namcap/rules/symlink.py +++ b/Namcap/rules/symlink.py @@ -18,12 +18,20 @@ # import os from Namcap.ruleclass import * +from Namcap.package import load_from_db class package(TarballRule): name = "symlink" description = "Checks that symlinks point to the right place" def analyze(self, pkginfo, tar): - filenames = [s.name for s in tar] + filenames = set(s.name for s in tar) + depfilenames = set() + for d in pkginfo['depends']: + p = load_from_db(d) + if not p: + continue + depfilenames |= set(name for name,_,_ in p['files']) + filenames |= depfilenames for i in tar: if i.issym(): self.infos.append(("symlink-found %s points to %s", (i.name, i.linkname))) diff --git a/Namcap/tests/package/test_symlink.py b/Namcap/tests/package/test_symlink.py index 43d20c5..92c8d51 100644 --- a/Namcap/tests/package/test_symlink.py +++ b/Namcap/tests/package/test_symlink.py @@ -46,6 +46,7 @@ package() { ln -s ../nofile "${pkgdir}/usr/share/somelink2" ln -s //usr/share/somedata "${pkgdir}/usr/share/validlink" ln -s ../share/somedata "${pkgdir}/usr/share/validlink2" + ln -s /usr/include/math.h "${pkgdir}/usr/share/deplink" } """ def test_symlink_files(self): @@ -74,6 +75,8 @@ package() { ("usr/share/validlink", "//usr/share/somedata")), ("symlink-found %s points to %s", ("usr/share/validlink2", "../share/somedata")), + ("symlink-found %s points to %s", + ("usr/share/deplink", "/usr/include/math.h")), ])) # vim: set ts=4 sw=4 noet: |