1 |
Alan McKinnon schrieb am 08.11.2008 16:00: |
2 |
> On Saturday 08 November 2008 16:08:22 Michael P. Soulier wrote: |
3 |
>> On Sat, Nov 8, 2008 at 6:15 AM, Daniel Pielmeier |
4 |
>> |
5 |
>> <daniel.pielmeier@××××××××××.com> wrote: |
6 |
>>> So there are two possibilities. First there is no need for a jpg useflag |
7 |
>>> as it will work out of the box. Second the jpg support or needed |
8 |
>>> libraries if they are indeed needed are detected automagically which is |
9 |
>>> bad and a bug should be filed. But from a quick glance into the relevant |
10 |
>>> files I did not recognize such things. |
11 |
>>> |
12 |
>>> So I guess rebuilding the affected packages and trying again is the best |
13 |
>>> option. |
14 |
>> I tried rebuilding gqview and feh with no success. feh complains about |
15 |
>> no imlib support for jpegs so I rebuild imlib, which didn't help. |
16 |
>> Before going to bed I started a full world rebuild. I'll reboot after |
17 |
>> that to ensure I pick up new shared libraries and we'll see what |
18 |
>> happens. This violates the principle of least surprise though. |
19 |
> |
20 |
> You are going about this the wrong way. Gentoo can't really make a package |
21 |
> more configurable than what it's author provides. feh has no option |
22 |
> to ./configure to explicitly enable jpeg support, thus there cannot be a USE |
23 |
> flag for it, as described earlier in the thread. If you need/want to know |
24 |
> what's going in with such things, emerge the package and look for the full |
25 |
> build log in /var/log/portage/. Examine it, it will tell you how the package |
26 |
> builds. |
27 |
> |
28 |
> imlib is the same, no explicit switch for jpeg, so you have to rely on the |
29 |
> autodetect voodoo^Wmagic. it sucks, it shouldn't be that way but gentoo |
30 |
> didn't make it that way. |
31 |
> |
32 |
> Why did you decide to rebuild world? That's a bit like a sledge hammer to kill |
33 |
> a flea.... |
34 |
> |
35 |
> You can't validly claim this violates least surprise. Even if your |
36 |
> expectations were correct and gentoo does violate them, it's not something |
37 |
> gentoo can fix, the problem is in the configure script. |
38 |
>> I am finding this about gentoo. On FreeBSD I could disable X11 |
39 |
>> support, but it's on by default. I agree with that. On gentoo I have |
40 |
>> to explicitely enable jpg support?? Why the hell would I not want it? |
41 |
>> I find that needlessly difficult. The default should be the common |
42 |
>> case, not the uncommon one. |
43 |
> |
44 |
> I'll bet your profile points to a server profile, not a desktop one. For the |
45 |
> server profile, the default is no X server and thus no jpeg. A quick search |
46 |
> shows me that all the desktop profiles enable jpeg by default - the expected |
47 |
> state for most users. You profile is dictated by what the /etc/make.profile |
48 |
> symlink points to. |
49 |
> |
50 |
> I think you need to re-read the gentoo handbook, the full thing from beginning |
51 |
> to end. As you have made several mistakes thus far that show me you don't |
52 |
> know where or how to select the thing you want. |
53 |
> |
54 |
|
55 |
Thank you Alan for your always helpful answers. While having nothing to |
56 |
do I investigated a bit more on this issue and have something to add here. |
57 |
|
58 |
First USE _jpeg_ should be enabled by default for desktop profiles. |
59 |
|
60 |
I can view jpegs without problems in gqview and gqview doesn't require |
61 |
anything jpeg related to view them. qgview only requires gtk+. |
62 |
|
63 |
I took a look at the shared libraries (1) linked against gqview and with |
64 |
the help of the reverse dependencies (2) of the packages owning that |
65 |
shared libraries I was able to validate that gqview only needs gtk+ |
66 |
because all libraries used by gqview need gtk+ in some way. So the gtk+ |
67 |
dependency pulls in everything needed for gqview. |
68 |
|
69 |
Now I took a look at the output of strace gqview (3). Here are the |
70 |
relevant lines: |
71 |
|
72 |
read(4, " 5 \"gtk20\" \"The JPEG image format"..., 1024) = 1024 |
73 |
stat64("/usr/lib/gtk-2.0/2.10.0/loaders/libpixbufloader-jpeg.so", |
74 |
{st_mode=S_IFREG|0755, st_size=17756, ...}) = 0 |
75 |
open("/usr/lib/gtk-2.0/2.10.0/loaders/libpixbufloader-jpeg.so", |
76 |
O_RDONLY) = 6 |
77 |
open("/usr/lib/libjpeg.so.62", O_RDONLY) = 6 |
78 |
|
79 |
Owners of the relevant libraries: |
80 |
/usr/lib/gtk-2.0/2.10.0/loaders/libpixbufloader-jpeg.so is owned by |
81 |
x11-libs/gtk+-2.12.11 |
82 |
/usr/lib/libjpeg.so.62 is owned by media-libs/jpeg-6b-r8 |
83 |
|
84 |
So gtk+ can open jpegs but why can't you on your system? |
85 |
|
86 |
USE flags for gtk+: |
87 |
x11-libs/gtk+-2.12.11 USE="X cups jpeg tiff -debug -doc -vim-syntax |
88 |
-xinerama" |
89 |
|
90 |
The answer is gqview does not need a jpeg use flag nor does probably |
91 |
feh, but gtk+ has to be built with jpeg support. |
92 |
|
93 |
So there is no need for rebuilding world, adding the jpeg flag to gtk |
94 |
should be enough. Or better if you use Gentoo on a desktop enable the |
95 |
desktop profile. Plus instead of blaming Gentoo, learn how it works and |
96 |
to use it properly. I know nothing about FreeBSD so I would not allow me |
97 |
any prejudices against it. *sigh* |
98 |
|
99 |
|
100 |
Just for your information I used the following commands for investigation |
101 |
|
102 |
1) Packages needed by qgview by finding the owners of the shared |
103 |
libraries needd by gqview: |
104 |
|
105 |
ldd /usr/bin/gqview | sed -n 's/\s*\(.*\)\s=>\s.*/\1/p' | xargs qfile |
106 |
--nocolor |
107 |
|
108 |
2) Reverse dependencies of said Packages: |
109 |
|
110 |
ldd /usr/bin/gqview | sed -n 's/\s*\(.*\)\s=>\s.*/\1/p' | xargs qfile |
111 |
--nocolor | sed -n 's/\(.*\)\s.*/\1/p' | xargs emerge -pv --depclean |
112 |
|
113 |
3) strace |
114 |
|
115 |
strace gqview some.jpg 2>&1 | tee strace |