Bug 551534 - qyoto doesn't pull mono in
Summary: qyoto doesn't pull mono in
Alias: None
Product: Fedora
Classification: Fedora
Component: kdebindings
Version: rawhide
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Than Ngo
QA Contact: Fedora Extras Quality Assurance
Depends On:
Blocks: 550601
TreeView+ depends on / blocked
Reported: 2009-12-31 05:55 UTC by Mamoru TASAKA
Modified: 2010-01-12 16:18 UTC (History)
8 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2010-01-12 13:54:20 UTC

Attachments (Terms of Use)
mock log when installing qyoto (258.92 KB, text/plain)
2009-12-31 05:55 UTC, Mamoru TASAKA
no flags Details

Description Mamoru TASAKA 2009-12-31 05:55:44 UTC
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):

How reproducible:

Steps to Reproduce:
1. mock -r foo --verbose --uniqueext bar --init
2. mock -r foo --verbose --uniqueext bar --install qyoto
Actual results:
See attached

Expected results:
See this:

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)
   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.

Comment 1 Kevin Kofler 2010-01-02 04:07:39 UTC
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.

Comment 2 Ben Boeckel 2010-01-10 02:32:37 UTC
I'm not a C# guru. Is all that's needed a Requires: on Mono or is something more specific necessary?

Comment 3 Kevin Kofler 2010-01-11 06:44:18 UTC
I think a Requires is sufficient for this one.

Comment 4 Mamoru TASAKA 2010-01-11 16:53:43 UTC
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

Comment 5 Kevin Kofler 2010-01-11 23:57:08 UTC
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?)

Comment 6 Than Ngo 2010-01-12 12:51:16 UTC
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

Comment 7 Than Ngo 2010-01-12 13:54:20 UTC
it's fixed in kdebindings-4.3.90-3.fc13

Note You need to log in before you can comment on or make changes to this bug.