#!/bin/bash provided=$(mktemp) find /var/lib/pacman/sync/ -name '*.db' \ -not -exec tar -Oxzf {} --wildcards '*/desc' \; \ -not -exec tar -OxJf {} --wildcards '*/desc' \; \ -not -exec tar -Oxjf {} --wildcards '*/desc' \; \ -not -exec tar -Oxf {} --wildcards '*/desc' \; \ 2>/dev/null \ | sed -n ' /^%\(NAME\|VERSION\)%$/ { N s/\n/ / p } /^%PROVIDES%$/,/^$/ { /^[^%]/ p } ' \ | sed -n ' s/^\(\S\+\)=\(\S\+\)-\(64\|32\)$/\2 \1/ T no_provides p d :no_provides /^%NAME%/ { N s/^%NAME% \(\S\+\)\n%VERSION% \(\S\+\)-\S\+$/\2 \1/ T p } ' \ | sort -k2,2 -k1Vr,1 \ | uniq -f1 \ >"${provided}" printf '%s\n' "${provided}"