From 9d140d2509b3f83361aaf5c88d62b81d59215221 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Tue, 6 Dec 2016 13:22:32 -0500 Subject: [PATCH] add mk-standalone --- mk-standalone | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100755 mk-standalone diff --git a/mk-standalone b/mk-standalone new file mode 100755 index 0000000..1ae9823 --- /dev/null +++ b/mk-standalone @@ -0,0 +1,24 @@ +#!/usr/bin/env python3 + +import re +import sys +import os +from subprocess import * + +def main(args): + if len(args) < 3: + sys.stderr.write("Usage: %s binary dest\n" % args[0]) + return 1 + binary = args[1] + dest = args[2] + os.mkdir(dest) + for line in Popen(["ldd", binary], stdout = PIPE).communicate()[0].decode().split("\n"): + m = re.search(r'=>\s*(/\S*)', line) + if m is not None: + lib = m.group(1) + os.spawnlp(os.P_WAIT, "cp", "cp", "-L", lib, dest) + os.spawnlp(os.P_WAIT, "cp", "cp", "-L", binary, dest) + os.spawnlp(os.P_WAIT, "patchelf", "patchelf", "--set-rpath", "$ORIGIN", os.path.join(dest, os.path.basename(binary))) + +if __name__ == "__main__": + sys.exit(main(sys.argv))