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