added pkg contens index support
This commit is contained in:
parent
b8fa98159d
commit
826df7fb62
@ -223,6 +223,8 @@
|
|||||||
@alt@ %{?_findprov_skiplist:export RPM_FINDPROV_SKIPLIST=\"%_findprov_skiplist\"}\
|
@alt@ %{?_findprov_skiplist:export RPM_FINDPROV_SKIPLIST=\"%_findprov_skiplist\"}\
|
||||||
@alt@ %{?_perl_lib_path:export RPM_PERL_LIB_PATH=\"%_perl_lib_path\"}\
|
@alt@ %{?_perl_lib_path:export RPM_PERL_LIB_PATH=\"%_perl_lib_path\"}\
|
||||||
@alt@ %{?_perl_req_method:export RPM_PERL_REQ_METHOD=\"%_perl_req_method\"}\
|
@alt@ %{?_perl_req_method:export RPM_PERL_REQ_METHOD=\"%_perl_req_method\"}\
|
||||||
|
@alt@ %{?_pkg_contents_index_all:export RPM_PKG_CONTENTS_INDEX_ALL=\"%_pkg_contents_index_all\"}\
|
||||||
|
@alt@ %{?_pkg_contents_index_bin:export RPM_PKG_CONTENTS_INDEX_BIN=\"%_pkg_contents_index_bin\"}\
|
||||||
@alt@ %{?__python:export RPM_PYTHON=\"%__python\"}\
|
@alt@ %{?__python:export RPM_PYTHON=\"%__python\"}\
|
||||||
@alt@ \
|
@alt@ \
|
||||||
@alt@ unset LANG LANGUAGE LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT LC_IDENTIFICATION LC_ALL ||:\
|
@alt@ unset LANG LANGUAGE LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT LC_IDENTIFICATION LC_ALL ||:\
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#!/bin/sh -e
|
#!/bin/sh -e
|
||||||
#
|
#
|
||||||
# find-package
|
# $Id$
|
||||||
# Copyright (C) 2002 Dmitry V. Levin <ldv@altlinux.org>
|
# Copyright (C) 2002-2003 Dmitry V. Levin <ldv@altlinux.org>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
@ -23,43 +23,74 @@
|
|||||||
|
|
||||||
FindPackage()
|
FindPackage()
|
||||||
{
|
{
|
||||||
local f="$1"
|
local f r rep package
|
||||||
|
f="$1"
|
||||||
shift
|
shift
|
||||||
local r rep package
|
|
||||||
|
|
||||||
for r in "$@"; do
|
for r in "$@"; do
|
||||||
[ -n "$r" ] || continue
|
[ -n "$r" ] || continue
|
||||||
if [ -z "${r##/*}" ]; then
|
if [ -z "${r##/*}" ]; then
|
||||||
if ! relative "$r" "$RPM_BUILD_ROOT" |grep -q "^../"; then
|
# Dependence name starts with `/'.
|
||||||
|
|
||||||
|
# Does it start with buildroot?
|
||||||
|
if [ -z "${r##$RPM_BUILD_ROOT*}" ]; then
|
||||||
echo "$f: invalid dependence: $r" >&2
|
echo "$f: invalid dependence: $r" >&2
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rep="$r"
|
rep="$r"
|
||||||
if [ -e "$RPM_BUILD_ROOT/$rep" ]; then
|
# Does it belong to buildroot?
|
||||||
|
if [ -e "$RPM_BUILD_ROOT$rep" ]; then
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Is it an alternative?
|
||||||
if readlink "$rep" |grep -qs '^/etc/alternatives/'; then
|
if readlink "$rep" |grep -qs '^/etc/alternatives/'; then
|
||||||
echo -E "$rep"
|
echo -E "$rep"
|
||||||
else
|
continue
|
||||||
if package="$(rpmquery --whatprovides --queryformat='%{NAME}\n' -- "$rep"|LC_COLLATE=C sort -u)"; then
|
fi
|
||||||
|
|
||||||
|
# Check for pkg contens complete index.
|
||||||
|
if [ -n "$RPM_PKG_CONTENTS_INDEX_ALL" ] && [ -s "$RPM_PKG_CONTENTS_INDEX_ALL" ]; then
|
||||||
|
package="$(awk -v "f=$rep" '{if ($1 == f) {print $2; exit}}' "$RPM_PKG_CONTENTS_INDEX_ALL")"
|
||||||
|
if [ -n "$package" ]; then
|
||||||
echo -E "$package"
|
echo -E "$package"
|
||||||
else
|
continue
|
||||||
echo -E "$rep"
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Check package database.
|
||||||
|
if package="$(rpmquery --whatprovides --queryformat='%{NAME}\n' -- "$rep" |LC_COLLATE=C sort -u)"; then
|
||||||
|
echo -E "$package"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Not found; output raw dependence.
|
||||||
|
echo -E "$rep"
|
||||||
else
|
else
|
||||||
|
# Check buildroot first.
|
||||||
local RPATH
|
local RPATH
|
||||||
RPATH="$(echo "$PATH" |sed -e "s|[^:]\+|$RPM_BUILD_ROOT&|g")"
|
RPATH="$(echo "$PATH" |sed -e "s|[^:]\+|$RPM_BUILD_ROOT&|g")"
|
||||||
if [ -n "$(PATH="$RPATH" /usr/bin/which -- "$r" 2>/dev/null)" ]; then
|
if [ -n "$(PATH="$RPATH" /usr/bin/which -- "$r" 2>/dev/null)" ]; then
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Check for pkg contens binary index.
|
||||||
|
if [ -n "$RPM_PKG_CONTENTS_INDEX_BIN" ] && [ -s "$RPM_PKG_CONTENTS_INDEX_BIN" ]; then
|
||||||
|
package="$(awk -v "f=$r" 'BEGIN {r="^/(s?bin|usr/(s?bin|X11R6/bin))/" f} {if (match($1,r)>0) {print $2; exit 0}}' "$RPM_PKG_CONTENTS_INDEX_BIN")"
|
||||||
|
if [ -n "$package" ]; then
|
||||||
|
echo -E "$package"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Lookup in host system.
|
||||||
if ! rep="$(/usr/bin/which -- "$r" 2>/dev/null)"; then
|
if ! rep="$(/usr/bin/which -- "$r" 2>/dev/null)"; then
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
if [ -e "$RPM_BUILD_ROOT/$rep" ]; then
|
|
||||||
continue
|
# Check package database.
|
||||||
fi
|
if package="$(rpmquery --whatprovides --queryformat='%{NAME}\n' -- "$rep" |LC_COLLATE=C sort -u)"; then
|
||||||
if package="$(rpmquery --whatprovides --queryformat='%{NAME}\n' -- "$rep"|LC_COLLATE=C sort -u)"; then
|
|
||||||
echo -E "$package"
|
echo -E "$package"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
Loading…
x
Reference in New Issue
Block a user