#! /bin/sh

for package in $(find "$@" -type f -name '*.rpm'); do
    set -- $(rpm -qp --qf '%{NAME} %{ARCH} %{SOURCERPM}' $package 2> /dev/null)
    [ $? -eq 0 ] || continue
    declare name=$1 arch=$2 sourcerpm=$3

    # don't create links for source rpms: we don't need them.
    [ -z "$sourcerpm" ] && continue

    rpm -qp --provides $package \
    | while read provides eq version_release; do
	[ ${name%-*} = "${provides%-*}" -a -n "$version_release" ] || continue

	version=${version_release%-*}
	echo "$provides-$version.$arch.rpm ${package##*/} $package"
    done
done \
| ${0%/*}/rpm-version-cmp \
| tac \
| awk '{print $3,$1}' \
| uniq -f1 \
| while read package link; do
    echo ln -s ${package##*/} ${package%/*}/$link
    ln -sf ${package##*/} ${package%/*}/$link
done
