2007-03-07 15:24:04 +03:00
#!/bin/sh -efu
2008-06-22 11:51:43 +04:00
#
# 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.
2007-03-07 15:24:04 +03:00
. @RPMCONFIGDIR@/functions
2008-06-16 12:16:01 +04:00
# reverse sort provides longest match
dirlist=$(set +f; grep -h ^/. @RPMCONFIGDIR@/*-files.req.list |sort -ur)
2007-03-07 15:24:04 +03:00
FilesReq()
{
2008-06-17 07:58:53 +04:00
local f="$1"; shift
echo "${dirlist:?}" |
while read -r d pkg; do
2008-06-16 12:16:01 +04:00
d=${d%/}
2007-03-07 15:24:04 +03:00
case "$f" in
"${RPM_BUILD_ROOT-}$d"/*)
2008-06-16 12:16:01 +04:00
echo "$d"
2008-06-17 07:58:53 +04:00
break ;;
"${RPM_BUILD_ROOT-}$d")
[ -z "${pkg-}" -o -z "${RPM_SUBPACKAGE_NAME-}" ] ||
[ "$pkg" = "$RPM_SUBPACKAGE_NAME" ] ||
Warning "$f: directory belongs to $pkg"
break ;;
2007-03-07 15:24:04 +03:00
esac
done
}
ArgvFileAction FilesReq "$@"