58 lines
2.6 KiB
Diff
58 lines
2.6 KiB
Diff
--- scripts/checkelf.old 2014-06-19 18:50:10.499728066 +0200
|
|
+++ scripts/checkelf 2014-06-19 18:47:59.408732856 +0200
|
|
@@ -26,6 +26,7 @@
|
|
import itertools
|
|
import subprocess
|
|
|
|
+FILESDB = pisi.db.filesldb.FilesLDB()
|
|
INSTALLDB = pisi.db.installdb.InstallDB()
|
|
CONSTANTS = pisi.constants.Constants()
|
|
CMPFILTR = re.compile("(.*?)(\s*\((base|devel)\)\s*)$")
|
|
@@ -73,6 +74,7 @@
|
|
# result_undefined = undefined symbol errors
|
|
return (result_needed, result_broken, result_unused, result_undefined)
|
|
|
|
+found_objdump = []
|
|
def check_objdump(processed_needed, package_elf_files, package_name):
|
|
'''check the objdump needed libraries with the ldd libraries
|
|
the libraries that are needed can be used for dependencies'''
|
|
@@ -86,14 +88,18 @@
|
|
else:
|
|
# search for the package name (i.e: pisi sf /usr/lib/*.so )
|
|
# the library may not exist, thus adding an exception is welcome
|
|
+ if objdump_needed.startswith("/"): objdump_needed = objdump_needed[1:]
|
|
+ if objdump_needed in found_objdump: continue
|
|
try:
|
|
- dependency_name = pisi.api.search_file(objdump_needed)[0][0]
|
|
+ dependency_name = FILESDB.search_file(objdump_needed)[0][0]
|
|
+ found_objdump.extend([x.path for x in INSTALLDB.get_files(dependency_name).list])
|
|
except IndexError:
|
|
dependency_name = "broken"
|
|
#print "%s (probably broken dependency)" % needed
|
|
result_needed.append((objdump_needed, dependency_name))
|
|
return result_needed
|
|
|
|
+found_pc_files = []
|
|
def check_pc_files(pc_file):
|
|
'''check for .pc files created by pkgconfig and shipped with the package
|
|
these .pc files have requirements tags that can be used for dependencies'''
|
|
@@ -102,12 +108,14 @@
|
|
os.path.basename(pc_file).replace(".pc", "")).read().split("\n")[:-1])
|
|
|
|
for require in requires:
|
|
- require_file = "/usr/share/pkgconfig/%s.pc" % require
|
|
+ require_file = "usr/share/pkgconfig/%s.pc" % require
|
|
|
|
- if not os.path.exists(require_file):
|
|
- require_file = "/usr/lib/pkgconfig/%s.pc" % require
|
|
+ if not os.path.exists("/%s" % require_file):
|
|
+ require_file = "usr/lib/pkgconfig/%s.pc" % require
|
|
+ if require_file in found_pc_files: continue
|
|
try:
|
|
- dependency_name = pisi.api.search_file(require_file)[0][0]
|
|
+ dependency_name = FILESDB.search_file(require_file)[0][0]
|
|
+ found_pc_files.extend([x.path for x in INSTALLDB.get_files(dependency_name).list])
|
|
except IndexError:
|
|
dependency_name = "broken"
|
|
|