--- /dev/null
+#!/usr/bin/env python3
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2021 Intel Corporation
+
+import os
+import sys
+import shutil
+from os.path import abspath, dirname, join
+
+def fixup_library_renames(contents):
+ """since library directory names have dropped the 'librte_' prefix,
+ add those prefixes back in for patches than need it"""
+ modified = False
+
+ # first get all the DPDK libs to build up replacement list
+ # stored in function attribute between calls
+ try:
+ libdirs = fixup_library_renames.libdirs
+ except AttributeError:
+ dpdk_libdir = abspath(join(dirname(sys.argv[0]), '..', 'lib'))
+ for root, dirs, files in os.walk(dpdk_libdir):
+ fixup_library_renames.libdirs = dirs
+ libdirs = dirs
+ break
+
+ for i in range(len(contents)):
+ # skip over any lines which don't have lib in it
+ if not "lib/" in contents[i]:
+ continue
+ for d in libdirs:
+ if f'lib/{d}' in contents[i]:
+ modified = True
+ contents[i] = contents[i].replace(f'lib/{d}', f'lib/librte_{d}')
+ return modified
+
+def main():
+ "takes list of patches off argv and processes each"
+ for patch in sys.argv[1:]:
+ modified = False
+ with open(patch) as f:
+ contents = f.readlines()
+
+ modified |= fixup_library_renames(contents)
+ # other functions to change the patch go here
+
+ if not modified:
+ continue
+ shutil.copyfile(f'{patch}', f'{patch}.bak')
+ with open(patch, 'w') as f:
+ f.writelines(contents)
+
+if __name__ == "__main__":
+ main()