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