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.
50 lines
1.5 KiB
Bash
Executable File
50 lines
1.5 KiB
Bash
Executable File
#!/bin/sh -efu
|
|
#
|
|
# Make dependencies on directories under which files are packaged.
|
|
#
|
|
# @RPMCONFIGDIR@/*-files.req.list file format:
|
|
# 1) Meaningful lines start with slash '/'.
|
|
# 2a) Each line must contain either one field: '<dir>';
|
|
# 2b) or two fields: '<dir> <pkg>'.
|
|
# In <dir>, trailing slash is ok.
|
|
#
|
|
# Whenever file path matches <dir> (that is, a file or directory
|
|
# is packaged under <dir>), this program prints explicit dependency
|
|
# on <dir>. If file path matches a few directories, the longest-matching
|
|
# <dir> is printed. Optional <pkg> name indicates that <dir> itself
|
|
# should be exclusively owned by <pkg>.
|
|
#
|
|
# Copyright (C) 2003 Dmitry V. Levin <ldv@altlinux.org>
|
|
# Copyright (C) 2008 Alexey Tourbin <at@altlinux.org>
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 2 of the License, or
|
|
# (at your option) any later version.
|
|
|
|
. @RPMCONFIGDIR@/rpmb-functions
|
|
|
|
# reverse sort provides longest match
|
|
dirlist=$(set +f; grep -h ^/. @RPMCONFIGDIR@/*-files.req.list |sort -ur)
|
|
|
|
FilesReq()
|
|
{
|
|
local f="$1"; shift
|
|
echo "${dirlist:?}" |
|
|
while read -r d pkg; do
|
|
d=${d%/}
|
|
case "$f" in
|
|
"${RPM_BUILD_ROOT-}$d"/*)
|
|
echo "$d"
|
|
break ;;
|
|
"${RPM_BUILD_ROOT-}$d")
|
|
[ -z "${pkg-}" -o -z "${RPM_SUBPACKAGE_NAME-}" ] ||
|
|
[ "$pkg" = "$RPM_SUBPACKAGE_NAME" ] ||
|
|
Warning "$f: directory belongs to $pkg"
|
|
break ;;
|
|
esac
|
|
done
|
|
}
|
|
|
|
ArgvFileAction FilesReq "$@"
|