summarylogtreecommitdiffstats
path: root/find-deps.py
diff options
context:
space:
mode:
authorSolomon Choina2020-03-28 22:59:36 -0400
committerSolomon Choina2020-03-28 22:59:36 -0400
commit4e68872c51a057ba278fcf7cba48a75a2a2fc60a (patch)
treec37b0da34fd894c4d7eddf96ba9a0a40c73e8068 /find-deps.py
parentd7fdeef664c86e376a7a1871b6f91b119dc7fa87 (diff)
downloadaur-4e68872c51a057ba278fcf7cba48a75a2a2fc60a.tar.gz
updpkgver and removing things that are not needed or whatever
Diffstat (limited to 'find-deps.py')
-rwxr-xr-xfind-deps.py48
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)))