Created attachment 381055 [details] mock log when installing qyoto Description of problem: Installing qyoto does not install mono-core (or so) package, however qyoto has .dll files, which actually depends on mono related package Version-Release number of selected component (if applicable): qyoto-4.3.85-4.fc13.i686 How reproducible: 100% Steps to Reproduce: 1. mock -r foo --verbose --uniqueext bar --init 2. mock -r foo --verbose --uniqueext bar --install qyoto 3. Actual results: See attached Expected results: See this: http://koji.fedoraproject.org/koji/taskinfo?taskID=1896503 Additional info: Current rpm (in F-11+) has /usr/lib/rpm/mono-find-requires, however rpmbuild uses internal dependency generater by default, and build/rpmfc.c (in rawhide rpm-4.8.0-0.beta1.4, for example) reads: ----------------------------------------------------- 863 if (fc->fcolor->vals[fc->ix] & RPMFC_MONO) { 864 xx = rpmfcHelper(fc, 'P', "mono"); 865 if (is_executable) 866 xx = rpmfcHelper(fc, 'R', "mono"); 867 } else ----------------------------------------------------- i.e. like detecting dependency on normal shared library, detecting dependency on mono .dll files is skipped if .dll file does not have executable permission. Adding "find %{buildroot} -name \*.dll -not -type l | xargs chmod ugo+x" for example yields the mockbuild result I posted above.
Ben (MathStuf), could you please look into this if you have time? You were the one who worked on enabling the C# stuff in kdebindings.
I'm not a C# guru. Is all that's needed a Requires: on Mono or is something more specific necessary?
I think a Requires is sufficient for this one.
As I said in my original comment 0, I think changing all .dll files to have executable permission is more preferable because now /usr/lib/rpm/mono-find-requires (in rpmbuild rpm) detects mono related dependency automatically when mono-devel is installed (because /usr/lib/rpm/mono-find-requires needs /usr/bin/monodis, which is in mono-devel rpm), however this automatic dependency detection won't work if .dll file does not have executable permission. This is similar to that dependency detection on the mormal ELF binaries won't work if such ELF binaries don't have executable permission.
Yeah, that should be done indeed, but that won't fix the problem for F11 and F12, will it? (We need to manually run mono-find-requires there, don't we?)
the internal dependency generater in f10/f11 also checks the executable permission, it will work if we change the permission on dll files. I agree with Mamoru Tasaka for changing all .dll files to have executable permission
it's fixed in kdebindings-4.3.90-3.fc13