On Tue, Jun 9, 2015, at 08:02 AM, Vít Ondruch wrote:
Unfortunately, this is wrong assumption. It comes quite natural that if I want to use git command, I can do "dnf install /usr/bin/git" and I don't care which package ships this command. And this scenario is broken now, since this will not install "full" git I expect.
Yeah, I use file provides a lot too.
And as it turns out, it breaks also Ruby build [1], since it uses "BuildRequires: %{_bindir}/git", but the test suite later call "git submodule" command, which is not available anymore due to this split.
BuildRequires: %{libexecdir}/git-core/git-submodule is probably too gross =)
I am wondering if there is some way out, for example git packages could have virtual provides such as git(add), git(submodule), git(rm), git(commit) and my package could then depend on the specific virtual provides, but I am not sure it is worth of the effort.
My initial take here is that the simplest solution is updating the dependent packages in F23, i.e.:
diff --git a/ruby.spec b/ruby.spec index ffca221..d15292d 100644 --- a/ruby.spec +++ b/ruby.spec @@ -133,7 +133,7 @@ BuildRequires: tk-devel BuildRequires: procps BuildRequires: %{_bindir}/dtrace # RubyGems test suite optional dependencies. -BuildRequires: %{_bindir}/git +BuildRequires: git BuildRequires: %{_bindir}/cmake
# This package provides %%{_bindir}/ruby-mri therefore it is marked by this