From 8e5427042da3d39e809a7c5eaf8e2b988a3abd0a Mon Sep 17 00:00:00 2001 From: Florian Pritz Date: Fri, 1 Jul 2011 17:17:25 +0200 Subject: add find-broken-perl-packages.sh Signed-off-by: Florian Pritz --- find-broken-perl-packages.sh | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100755 find-broken-perl-packages.sh (limited to 'find-broken-perl-packages.sh') diff --git a/find-broken-perl-packages.sh b/find-broken-perl-packages.sh new file mode 100755 index 0000000..1b09144 --- /dev/null +++ b/find-broken-perl-packages.sh @@ -0,0 +1,21 @@ +#!/bin/bash +perllibpath="/usr/lib/perl5/vendor_perl/auto/" + +tmpdir=$(mktemp -d /tmp/find-broken-perl-package.XXXXXXXX) +find "$perllibpath" -name "*.so" | + sed \ + -e "s|$perllibpath||" \ + -e 's|/|::|g' \ + -e 's|.so$||' \ + -e 's|\(.*\)::.*$|\1|' | + while read module; do + output=$(perl -M$module -e1 2>&1) + if grep -q "perl: symbol lookup error:" <<< $output; then + sed -n 's|perl: symbol lookup error: \(.*\): undefined symbol: .*|\1|p' <<< $output >> $tmpdir/raw.txt + echo $module >> $tmpdir/perl-modules.txt + fi + done + +pacman -Qqo $(<$tmpdir/raw.txt) &> $tmpdir/pacman.txt + +echo "tempdir is \"$tmpdir\"" -- cgit v1.2.3-24-g4f1b