rpm-build/scripts/symlinks.req.in
Arseny Maslennikov 6bfa4a28aa /usr/lib/rpm/functions: split away to rpmb-functions
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.
2024-03-03 23:38:10 +03:00

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 "$@"