Alan McKinnon schrieb am 08.11.2008 16:00:
> On Saturday 08 November 2008 16:08:22 Michael P. Soulier wrote:
>> On Sat, Nov 8, 2008 at 6:15 AM, Daniel Pielmeier
>>
>> <[EMAIL PROTECTED]> wrote:
>>> So there are two possibilities. First there is no need for a jpg useflag
>>> as it will work out of the box. Second the jpg support or needed
>>> libraries if they are indeed needed are detected automagically which is
>>> bad and a bug should be filed. But from a quick glance into the relevant
>>> files I did not recognize such things.
>>>
>>> So I guess rebuilding the affected packages and trying again is the best
>>> option.
>> I tried rebuilding gqview and feh with no success. feh complains about
>> no imlib support for jpegs so I rebuild imlib, which didn't help.
>> Before going to bed I started a full world rebuild. I'll reboot after
>> that to ensure I pick up new shared libraries and we'll see what
>> happens. This violates the principle of least surprise though.
> 
> You are going about this the wrong way. Gentoo can't really make a package 
> more configurable than what it's author provides. feh has no option 
> to ./configure to explicitly enable jpeg support, thus there cannot be a USE 
> flag for it, as described earlier in the thread. If you need/want to know 
> what's going in with such things, emerge the package and look for the full 
> build log in /var/log/portage/. Examine it, it will tell you how the package 
> builds.
> 
> imlib is the same, no explicit switch for jpeg, so you have to rely on the 
> autodetect voodoo^Wmagic. it sucks, it shouldn't be that way but gentoo 
> didn't make it that way.
> 
> Why did you decide to rebuild world? That's a bit like a sledge hammer to 
> kill 
> a flea....
> 
> You can't validly claim this violates least surprise. Even if your 
> expectations were correct and gentoo does violate them, it's not something 
> gentoo can fix, the problem is in the configure script.
>> I am finding this about gentoo. On FreeBSD I could disable X11
>> support, but it's on by default. I agree with that. On gentoo I have
>> to explicitely enable jpg support?? Why the hell would I not want it?
>> I find that needlessly difficult. The default should be the common
>> case, not the uncommon one.
> 
> I'll bet your profile points to a server profile, not a desktop one. For the 
> server profile, the default is no X server and thus no jpeg. A quick search 
> shows me that all the desktop profiles enable jpeg by default - the expected 
> state for most users. You profile is dictated by what the /etc/make.profile 
> symlink points to.
> 
> I think you need to re-read the gentoo handbook, the full thing from 
> beginning 
> to end. As you have made several mistakes thus far that show me you don't 
> know where or how to select the thing you want.
> 

Thank you Alan for your always helpful answers. While having nothing to
do I investigated a bit more on this issue and have something to add here.

First USE _jpeg_ should be enabled by default for desktop profiles.

I can view jpegs without problems in gqview and gqview doesn't require
anything jpeg related to view them. qgview only requires gtk+.

I took a look at the shared libraries (1) linked against gqview and with
the help of the reverse dependencies (2) of the packages owning that
shared libraries I was able to validate that gqview only needs gtk+
because all libraries used by gqview need gtk+ in some way. So the gtk+
dependency pulls in everything needed for gqview.

Now I took a look at the output of strace gqview (3). Here are the
relevant lines:

read(4, " 5 \"gtk20\" \"The JPEG image format"..., 1024) = 1024
stat64("/usr/lib/gtk-2.0/2.10.0/loaders/libpixbufloader-jpeg.so",
{st_mode=S_IFREG|0755, st_size=17756, ...}) = 0
open("/usr/lib/gtk-2.0/2.10.0/loaders/libpixbufloader-jpeg.so",
O_RDONLY) = 6
open("/usr/lib/libjpeg.so.62", O_RDONLY) = 6

Owners of the relevant libraries:
/usr/lib/gtk-2.0/2.10.0/loaders/libpixbufloader-jpeg.so is owned by
x11-libs/gtk+-2.12.11
/usr/lib/libjpeg.so.62 is owned by media-libs/jpeg-6b-r8

So gtk+ can open jpegs but why can't you on your system?

USE flags for gtk+:
x11-libs/gtk+-2.12.11  USE="X cups jpeg tiff -debug -doc -vim-syntax
-xinerama"

The answer is gqview does not need a jpeg use flag nor does probably
feh, but gtk+ has to be built with jpeg support.

So there is no need for rebuilding world, adding the jpeg flag to gtk
should be enough. Or better if you use Gentoo on a desktop enable the
desktop profile. Plus instead of blaming Gentoo, learn how it works and
to use it properly. I know nothing about FreeBSD so I would not allow me
any prejudices against it. *sigh*


Just for your information I used the following commands for investigation

1) Packages needed by qgview by finding the owners of the shared
libraries needd by gqview:

ldd /usr/bin/gqview | sed -n 's/\s*\(.*\)\s=>\s.*/\1/p' | xargs qfile
--nocolor

2) Reverse dependencies of said Packages:

ldd /usr/bin/gqview | sed -n 's/\s*\(.*\)\s=>\s.*/\1/p' | xargs qfile
--nocolor | sed -n 's/\(.*\)\s.*/\1/p' | xargs emerge -pv --depclean

3) strace

strace gqview some.jpg  2>&1 | tee strace


Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to