interdep.c: fix the optimization ("due to repentancy") of a non-identical dep
compare_deps() was simply called with a wrong argument (an illegal value
for this parameter); so it returned a meaningful result only if
the compared deps were identical. (Always, since the inception in f5ed7f870a
.)
Example where the dep was not optimized out:
Name: test-epoch-repentancy
Version: 1
Release: alt1
Summary: test-epoch-repentancy
License: public domain
Group: Other
Requires: %name-sub = %EVR
Requires: foo = 1-alt1
BuildArch: noarch
%description
%summary
%package sub
Summary: sub
Group: Other
Requires: foo = 0:1-alt1
%description sub
%summary
%files
%files sub
%changelog
* Wed Feb 27 2019 Ivan Zakharyaschev <imz@altlinux.org> 1-alt1
- initial build for ALT Linux Sisyphus.
(cherry picked from commit 492396b532660f4debc46e96eb306f07a3261d66)
# Conflicts:
# build/interdep.c
This commit is contained in:
parent
3cec7c6d8c
commit
4bf78baf6c
@ -739,7 +739,7 @@ void pruneRDeps1(struct Req *r, Spec spec, Package pkg1, Package pkg2)
|
||||
continue;
|
||||
if (cycle && (reqFv[i] & RPMSENSE_SENSEMASK) == RPMSENSE_EQUAL)
|
||||
continue;
|
||||
dep_compare_t cmp = compare_deps(RPMTAG_REQUIRENAME,
|
||||
dep_compare_t cmp = compare_deps(RPMTAG_REQUIREFLAGS,
|
||||
provVv[j], provFv[j], reqVv[i], reqFv[i]);
|
||||
if (!(cmp == DEP_ST || cmp == DEP_EQ))
|
||||
continue;
|
||||
|
Loading…
Reference in New Issue
Block a user