Commit 5668b306 authored by Nicolas Dumazet's avatar Nicolas Dumazet

be smarter when checking linkage of compiled software


git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@42241 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent fcdb037c
...@@ -103,6 +103,7 @@ SKIP_PART_LIST = ( ...@@ -103,6 +103,7 @@ SKIP_PART_LIST = (
'parts/mariadb__compile__', 'parts/mariadb__compile__',
'parts/openoffice-bin', 'parts/openoffice-bin',
'parts/openoffice-bin__unpack__', 'parts/openoffice-bin__unpack__',
'parts/products-erp5',
) )
def readElfAsDict(f): def readElfAsDict(f):
...@@ -2372,10 +2373,23 @@ class AssertElfLinkedInternally(AssertSoftwareMixin): ...@@ -2372,10 +2373,23 @@ class AssertElfLinkedInternally(AssertSoftwareMixin):
develop_eggs_dir = os.path.join(os.path.abspath(os.curdir), 'develop-eggs') develop_eggs_dir = os.path.join(os.path.abspath(os.curdir), 'develop-eggs')
for root in (parts_dir, develop_eggs_dir): for root in (parts_dir, develop_eggs_dir):
for dirpath, dirlist, filelist in os.walk(root): for dirpath, dirlist, filelist in os.walk(root):
# stuff in parts/*/share/ will only be static things
if 'share' in dirpath or '.svn' in dirpath:
continue
for filename in filelist: for filename in filelist:
# skip some not needed places # skip some not needed places
if any([q in dirpath for q in SKIP_PART_LIST]): if any([q in dirpath for q in SKIP_PART_LIST]):
continue continue
# we only care about two kind of files:
# 1. files without extensions
# 2. .so files
spl = filename.rsplit('.', 1)
if len(spl) > 1 and 'so' not in spl:
continue
filename = os.path.join(dirpath, filename) filename = os.path.join(dirpath, filename)
link_list = readLddInfoList(filename) link_list = readLddInfoList(filename)
bad_link_list = [q for q in link_list if not q.startswith(parts_dir) \ bad_link_list = [q for q in link_list if not q.startswith(parts_dir) \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment