#!/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: '
';
# 2b) or two fields: ' '.
# In , trailing slash is ok.
#
# Whenever file path matches (that is, a file or directory
# is packaged under ), this program prints explicit dependency
# on . If file path matches a few directories, the longest-matching
# is printed. Optional name indicates that itself
# should be exclusively owned by .
#
# Copyright (C) 2003 Dmitry V. Levin
# Copyright (C) 2008 Alexey Tourbin
#
# 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@/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 "$@"