#!/usr/bin/bash

function clean_rpath() {
    rpath=$1
    rpath=$(echo "$rpath" | LANG=C sed -e "s!.*\($2\).*: \[\(.*\)\]!\2!p;d")
    rpath_orig="$rpath"
    lower=$(echo $2 | awk '{print tolower($0)}')

    # Remove all empty entries
    rpath=$(echo "$rpath" | sed -e 's/^:*//' -e 's/:*$//' -e 's/::*/:/g')

    echo "$rpath"
}

for i; do
    base=${i##$RPM_BUILD_ROOT}
    echo "Cleaning empty rpath entries in $base"
    for rpath in RPATH RUNPATH; do
        path=$(DEBUGINFOD_URLS="" readelf -W -d "$i" 2>/dev/null | LANG=C grep -E "\(($rpath)\).*:") || continue
        if [[ "$rpath" == "RPATH" ]]; then
            patchelf --force-rpath --set-rpath "$(clean_rpath "$path" $rpath)" "$i"
        else
            patchelf --set-rpath "$(clean_rpath "$path" $rpath)" "$i"
        fi
    done
done
