1 |
Markos Chandras <hwoarang@g.o> posted |
2 |
200904231600.12638.hwoarang@g.o, excerpted below, on Thu, 23 Apr |
3 |
2009 16:00:07 +0100: |
4 |
|
5 |
> I asked about this on #gentoo-amd64, but I ll be quite busy and I might |
6 |
> miss the answer. |
7 |
|
8 |
Looks like you got a workaround for the ebuild from another subthread, |
9 |
tested and unmasked it, but that appears to be what it was, a |
10 |
workaround. Nobody explored the why. |
11 |
|
12 |
Well, I'm not an expert by any means and the following guess is just what |
13 |
it says on the label, a guess, without properly delving into the qmake |
14 |
internals, but maybe this will provide a place to start exploring, for |
15 |
you or anyone else interested. |
16 |
|
17 |
> So |
18 |
> |
19 |
> I have a problem with qt-creator installation on amd64 |
20 |
> |
21 |
> Take a look on this code |
22 |
> |
23 |
> linux-*-64 { |
24 |
> IDE_LIBRARY_BASENAME = lib64 |
25 |
> } else { |
26 |
> IDE_LIBRARY_BASENAME = lib |
27 |
> } |
28 |
> |
29 |
> According to this, when the system is amd64, libraries should be |
30 |
> installed under lib64/ directory, else they will be installed on lib/ |
31 |
> directory. |
32 |
|
33 |
Makes sense, but what is it testing there? |
34 |
|
35 |
The first thing that reminded me of was the CHOST/CBUILD/CTARGET set of |
36 |
vars from the GNU make build system, with CHOST set in the (cascaded) |
37 |
profile make.defaults (profiles/arch/amd64/make.defaults for 2008.0/amd64 |
38 |
profile users). |
39 |
|
40 |
But, CHOST isn't it as the order is wrong. My CHOST is |
41 |
x86_64-pc-linux-gnu according to emerge --info (and following the |
42 |
cascading profiles, from the file mentioned above), and that's not going |
43 |
to match linux-*-64 at all. Since CHOST is standardized, that can't be |
44 |
what they're testing against. |
45 |
|
46 |
Well, I'm not familiar with qmake (which I got from the tarball README, |
47 |
tho the ebuild would have had it too), and I'm not going to try to |
48 |
explain how it gets from here to there as I don't know, but the best |
49 |
match for the above pattern I could come up with is the following: |
50 |
|
51 |
1) equery belongs qmake says it's part of the qt-core-4.5.0 package, here |
52 |
(and also part of qt-3.3.8b-r1, but that's beside the point). |
53 |
|
54 |
2) Looking at equery files qt-core, the following jumps out due to the |
55 |
pattern, which matches the one above: |
56 |
|
57 |
/usr/share/qt4/mkspecs/linux-*-64 , with * being the three: ecc, c++, |
58 |
icc . |
59 |
|
60 |
So, a reasonable theory might be that it's matching the mkspecs, |
61 |
expecting a pattern similar to linux-*-64 for our case. How it comes up |
62 |
with that is as they say, "an exercise for further research", reading up |
63 |
on qmake, it's MAKE vars (or whatever qmake calls them), etc. |
64 |
|
65 |
3) However, I found the following symlink, also from the qt-core package, |
66 |
also of interest: |
67 |
|
68 |
/usr/share/qt4/mkspecs/default -> linux-g++-64 |
69 |
|
70 |
4) So a further supposition, given the failure of the test above, may be |
71 |
that it's ultimately using mkspecs/default instead of linux-g++-64 |
72 |
specifically. If the test was on the symlink itself (not dereferenced) |
73 |
and not on what it pointed to, that would necessarily cause it to fail |
74 |
the match. |
75 |
|
76 |
So without knowing much at all about how qmake functions and where it |
77 |
gets its config such as the bit it's testing above, that's my working |
78 |
theory and why I'd /guess/ it's failing the match. Qt based package |
79 |
maintainers and devs would of course be expected to know (or at least |
80 |
know where to look up when necessary) rather more about qmake internals, |
81 |
and be able to take it from there, proving or disproving my admittedly |
82 |
rather badly informed /guess/. |
83 |
|
84 |
> The thing is that on my amd64 system, they install on lib/ directory. Do |
85 |
> you have any ideas why it fails to pick the right directory? |
86 |
> |
87 |
> My features are |
88 |
> |
89 |
> Eternity ~ # portageq envvar FEATURES buildpkg ccache distlocks |
90 |
> fixpackages metadata-transfer parallel-fetch preserve-libs protect-owned |
91 |
> sandbox sfperms strict unmerge-orphans userfetch |
92 |
> |
93 |
> |
94 |
> I tried to add multilib on FEATURES but it didnt solve this issue |
95 |
|
96 |
As others have said, on Gentoo, multilib isn't something you should be |
97 |
messing with directly. It's part of your profile. To change it, you |
98 |
change your profile (and deal with all that entails). Trying to do |
99 |
otherwise, if it does anything at all, "may have unintended consequences" |
100 |
as they say. =:^) |
101 |
|
102 |
-- |
103 |
Duncan - List replies preferred. No HTML msgs. |
104 |
"Every nonfree program has a lord, a master -- |
105 |
and if you use the program, he is your master." Richard Stallman |