diff options
author | Solomon Choina | 2020-03-28 22:59:36 -0400 |
---|---|---|
committer | Solomon Choina | 2020-03-28 22:59:36 -0400 |
commit | 4e68872c51a057ba278fcf7cba48a75a2a2fc60a (patch) | |
tree | c37b0da34fd894c4d7eddf96ba9a0a40c73e8068 /find-deps.py | |
parent | d7fdeef664c86e376a7a1871b6f91b119dc7fa87 (diff) | |
download | aur-4e68872c51a057ba278fcf7cba48a75a2a2fc60a.tar.gz |
updpkgver and removing things that are not needed or whatever
Diffstat (limited to 'find-deps.py')
-rwxr-xr-x | find-deps.py | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/find-deps.py b/find-deps.py deleted file mode 100755 index 92095f934cfd..000000000000 --- a/find-deps.py +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env python3 - -""" -Usage: find-deps.py <binary> [<binary> ...] - -Finds (pacman/ALPM) dependencies for a binary or set of binaries based -on dynamically linked libraries. - -""" - -import sys -import os -import subprocess -import re - -def subprocess_get_lines(args, fail_okay=False): - try: - output = subprocess.check_output(args) - except subprocess.CalledProcessError as e: - if fail_okay: - output = e.output - else: - raise - return output.decode().splitlines() - -# Get the filenames of the libs we need -#del os.environ['LD_PRELOAD'] # otherwise fakeroot will interfere -ldd_output = subprocess_get_lines(['ldd'] + sys.argv[1:]) -regex = re.compile(r' => (.*) \(0x[0-9a-f]+\)$') -libs = set(match.group(1) for match in map(regex.search, ldd_output) if match) - -# Figure out which packages own them -deps = set(subprocess_get_lines( - ['pacman', '--query', '--owns', '--quiet'] + list(libs), - fail_okay=True -)) - -# Remove redundant dependencies -needed = set(deps) -for pkg in deps: - if pkg not in needed: - continue # this subtree has already been pruned - redundant = subprocess_get_lines( - ['pactree', '--unique', pkg] - )[1:] # first line is pkg itself - needed.difference_update(redundant) - -print(' '.join(sorted(needed))) |