rpm-build/scripts/files.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

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