Sophie

Sophie

distrib > Altlinux > 4.1 > i586 > by-pkgid > 04b7f1b4038b16bbd79f841c0df46b39 > files > 3

rpm-build-mozilla.org-1.1-alt0.M41.2.src.rpm

#!/bin/ash -efu

. shell-error

uidtbl='
{ec8030f7-c20a-464f-9b0e-13a3a9e97384} firefox
{3550f703-e582-4d05-9a08-453d09bdfdc6} thunderbird
{136c295a-4a5a-41cf-bf24-5cee526720d5} nvu
{86c18b42-e466-45a9-ae7a-9b95ba6f5640} mozilla
{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} seamonkey
{718e30fb-e89b-41dd-9da7-e25a45638b28} sunbird
{3db10fab-e461-4c80-8b97-957ad5f8ea47} netscape
{a463f10c-3994-11da-9945-000d60ca027b} flock
'

uid3tbl='
toolkit@mozilla.org firefox
'

uid2name() {
	local uid="`printf %s "$1" |tr '[A-Z]' '[a-z]'`"
	printf '%s\n' "$uidtbl$uid3tbl" |
		grep "^$uid " |
		cut -d\  -f2
}

name2uid() {
	local name="`printf %s "$1" |tr '[A-Z]' '[a-z]'`"
	printf '%s\n' "$uidtbl" |
		grep " $name\$" |
		cut -d\  -f1
}

round_min() {
	min_cmp='>='
	min_version=

	local n= p=
	for p in `printf '%s\n' "$1" | sed -e 's/^\([0-9\.]\+\).*/\1/' -e 's/[.[:space:]]\+/ /g'`; do
		if n="$(printf '%g' "$p" 2>/dev/null)"; then
			[ "$n" -ge 0 ] || n=0
			p="$n"
		fi
		min_version="$min_version.$p"
	done
	min_version="${min_version#\.}"
}

round_max() {
	max_cmp='<='
	max_version=

	local n= p= prev=
	for p in `printf '%s\n' "$1" |tr '.' ' '`; do
		if   printf '%s' "$p" |egrep -qs '^[0-9]+(\+|[A-Za-z]+)'; then
			max_cmp='<'
			n="${p%%'+'*}"
			n="${p%%[A-Za-z]*}"
			max_version="$max_version.$(($n+1))"
			break
		elif printf '%s' "$p" |egrep -qs '^[0-9]+\*'; then
			max_cmp='<'
			n="${p%%'*'*}"
			max_version="$max_version.$(($n+1))"
			break
		elif printf '%s' "$p" |egrep -qs '^(\+|\*|[A-Za-z]+)$'; then
			max_cmp='<'
			max_version="${max_version%\.*}.$(($prev+1))"
			break
		elif n="$(printf '%g' "$p" 2>/dev/null)"; then
			max_version="$max_version.$n"
			prev="$n"
		fi
	done
	max_version="${max_version#\.}"
}

show_requires() {
	local rc min_version min_cmp max_version max_cmp

	round_min "$min"
	round_max "$max"

	if [ "$min_version" != "$max_version" ]; then
		rc="$(rpmevrcmp "$max_version" "$min_version")"

		case "$rc" in
			1|[1-9]*)
				verbose "$p minVersion=[$min], maxVersion=[$max]: [$p $min_cmp $min_version], [$p $max_cmp $max_version]"
				printf '%s\n' "$p $min_cmp $min_version"
				printf '%s\n' "$p $max_cmp $max_version"
				;;
			0)
				verbose "$p minVersion=[$min], maxVersion=[$max]: [$p = $min_version]"
				printf '%s\n' "$p = $min_version"
				;;
			*)
				fatal "Error: $p: minVersion=$min_version > maxVersion=$max_version"
				;;
		esac
	else
		verbose "$p minVersion=[$min], maxVersion=[$max]: [$p = $min_version]"
		printf '%s\n' "$p = $min_version"
	fi
}