6bfa4a28aa
In an environment created by `hsh --initroot-only`: $ for i in /usr/lib/rpm/*; do rpm -qf --qf='%{name}: '"$i"'\n' "$i"; done | grep '^rpm:' rpm: /usr/lib/rpm/0ldconfig.filetrigger rpm: /usr/lib/rpm/GROUPS rpm: /usr/lib/rpm/find-package rpm: /usr/lib/rpm/functions rpm: /usr/lib/rpm/macros.d rpm: /usr/lib/rpm/pdeath_execute rpm: /usr/lib/rpm/platform rpm: /usr/lib/rpm/posttrans-filetriggers rpm: /usr/lib/rpm/postupdate rpm: /usr/lib/rpm/rpmd rpm: /usr/lib/rpm/rpmdb_loadcvt rpm: /usr/lib/rpm/rpme rpm: /usr/lib/rpm/rpmi rpm: /usr/lib/rpm/rpmk rpm: /usr/lib/rpm/rpmpopt-4.13.0.1 rpm: /usr/lib/rpm/rpmq rpm: /usr/lib/rpm/rpmu rpm: /usr/lib/rpm/rpmv The `scripts/functions` file is provided from the rpm project in real installations. Let's ensure scripts in this package use the functions file from this package.
30 lines
844 B
Bash
Executable File
30 lines
844 B
Bash
Executable File
#!/bin/sh -efu
|
|
|
|
. @RPMCONFIGDIR@/rpmb-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 "$@"
|