30 lines
839 B
Bash
Executable File
30 lines
839 B
Bash
Executable File
#!/bin/sh -efu
|
|
|
|
. @RPMCONFIGDIR@/functions
|
|
. @RPMCONFIGDIR@/find-package
|
|
|
|
SymlinkReq()
|
|
{
|
|
local f="$1" to; shift
|
|
[ -L "$f" ] || return 0
|
|
to=$(readlink -v "$f")
|
|
[ -n "$to" ] || Fatal "$f: cannot happen"
|
|
if [ -z "${to##/*}" ]; then
|
|
# Link target is absolute path.
|
|
# Just let FindPackage do the rest of the work.
|
|
FindPackage "$f" "$to"
|
|
else
|
|
# Link target is relative. Do one single step of symlink resolution,
|
|
# that is, catenate symlink parent directory and its target.
|
|
# E.g. $RPM_BUILD_ROOT/usr/share/foo/rt.jar -> ../java/rt.jar
|
|
# goes $RPM_BUILD_ROOT/usr/share/foo/../java/rt.jar
|
|
to=$(dirname "$f")/$to
|
|
# As we strip $RPM_BUILD_ROOT, we get possibly non-canonical
|
|
# required path, which is yet okay for FindPackage.
|
|
to=${to#${RPM_BUILD_ROOT-}}
|
|
FindPackage "$f" "$to"
|
|
fi
|
|
}
|
|
|
|
ArgvFileAction SymlinkReq "$@"
|