joelburget / slimlock

SLiM + slock = slimlock
GNU General Public License v2.0
40 stars 17 forks source link

(solved) gentoo: "slimlock: could not load panel image", but image is existing #7

Closed donSchoe closed 12 years ago

donSchoe commented 12 years ago

solved: if you come across this issue and you are using gentoo, make sure you emerged imlib2 with useflag "png" enabled. that's it, pretty much. thanks @bryanbickford for pointing that out.


hi joel :)

i just downloaded the latest source 0.10.2, compiling and installing was working just without any problems. (using gentoo @ armv7l dynabook)

but starting the programm fails with the following message: Slimlock: could not load panel image for theme 'slim-gentoo-simple'

i was looking at the source in panel.cpp and found the piece of code at line 107+ it seems it could not read the panel image indeed. now i added a line to the panel.cpp to print out the panelpng.c_str() variable to find out the full path and to verify the image is missing. well, the path was /usr/share/slim/themes/slim-gentoo-simple/panel.png - the path is correct and the image is existing. but it still tells me it can not be loaded.

btw, the same applies to background image: image is existing, but still can not be loaded.

slim is working without problems and displays correctly. slimlock - no idea what's wrong there....

cheers donc_oe

joelburget commented 12 years ago

Sounds like it could be a permissions issue. If you installed with make install then slimlock should run as root and will be able to access the file. If not, it will run as you and might not be able to open that image.

If you find out that's not the problem there's another test that would be good to run. The library that opens the image is "imlib2". Try compiling the first example ("A Simple Example") on the imlib2 page http://docs.enlightenment.org/api/imlib2/html/ to see if it is able to open the image file.

Let me know what you find out, Joel

donSchoe commented 12 years ago

i did make install as root, this shouldn't be any problem.

i can't compile the simple imlib2-example, maybe my imlib2 is not working correctly? it says: imlib2_convert.c:5:3: error Imlib_Image undeclared ...

joelburget commented 12 years ago

Oh, sorry about that, looks like the example is missing some includes. Try adding this to the top of the file:

#include <Imlib2.h>
#include <string.h>
donSchoe commented 12 years ago

hi, thanks for your support, my c-knowledge is not the best :P the code is working now. and loading images is not:

image = imlib_load_image(argv[1]); // this seems to fail if (image) // == false

not sure why. but at this point it seems to be no problem with slimlock at all. if you have any idea what could be wrong with my setup, any hints are welcome :)

cheers don

edit: sry wrong button

sudoprime commented 12 years ago

Hi guys, I was having actually the same exact issue as donShoe, I am also on a gentoo box. It turns out that all you need to do is add png to your use flags and then re-emerge imlib2. Hopefully this will help someone out there!

donSchoe commented 12 years ago

@bryanbickford thanks, reemerging with useflag "png" solved the problem.

edit: closed, as this issue is imlib2-related and slimlock is working fine.

joelburget commented 12 years ago

@bryanbickford is there a way to make that work automatically? I don't know anything about Gentoo, btw.

donSchoe commented 12 years ago

use flags are making gentoo pretty powerful concerning the fine-tuning of installed software. there is no automated way, afaik. you might want to add a line to your readme, like:

Requirements and Building Gentoo users: make sure the use flags "png" and "jpg" are enabled for imlib2.

thanks for bringing up slimlock btw, it's exactly what i was looking for all the time :)

sudoprime commented 12 years ago

@joelburget if someone create's an ebuild for slimlock and pushes it upstream to gentoo's portage, then it would be included in gentoo's package manager and anyone could just type "emerge slimlock" and it would compile from source, linking all the dependencies.

The beauty of doing an ebuild is that you can add a required use flag dependency for imlib2, then if you go to install it, it will prompt you to add the png dependency for imlib2, and it will re-install imlib2 with png support.

I am still fairly new to gentoo so i don't know all the ins and outs of ebuilds, but i am 100% sure that you can make one just like i described.

There are a few ebuild's for slimlock already out there i believe, it should be a matter of adding one or two lines to the .ebuild file.

If I get a little bit of time coming up I will look into it.

joelburget commented 12 years ago

There's this if you haven't seen it https://bugs.gentoo.org/show_bug.cgi?id=366405

sudoprime commented 12 years ago

perfect, just have them add "media-libs/imlib2[png]" to the dependancies section of the ebuild. right now they are missing the [png] section.

joelburget commented 12 years ago

@bryanbickford do you happen to have an account on gentoo.org? If you don't mind could you upload a new ebuild? I don't want to mess it up.

donSchoe commented 12 years ago

i created an ebuild for slimlock-0.11 adding the use flags to the dependencies. https://bugs.gentoo.org/show_bug.cgi?id=366405#c15

i added "png" and "jpeg" as panel.cpp seems to use jpgs as a fallback if no png can be found.

joelburget commented 12 years ago

@donSchoe thanks :)

donSchoe commented 12 years ago

@joelburget hey, the ebuild got accepted and slimlock is now available in portage for gentoo. http://packages.gentoo.org/package/x11-misc/slimlock :)

joelburget commented 12 years ago

That's awesome! Glad to see it will be easy for Gentoo users to install.