acaudwell / Gource

software version control visualization
https://gource.io
GNU General Public License v3.0
11.46k stars 723 forks source link

failed to load resource '/usr/local/share/gource/file.png' (homebrew) #43

Open letatas opened 8 years ago

letatas commented 8 years ago

Hello,

I'm fighting with some problem here, and I really don't know where it comes from.

I'm running OSX Yosemite v10.10.5 and the problem exists with at least three versions of gource, 0.43 via homebrew, 0.43_1 also via homebrew, and the 0.44 freshly built directly from github.

When I try to launch gource, I'm facing this error message: gource: failed to load resource '/usr/local/share/gource/file.png'

When I look at the dependencies, nothing seems wrong:

➜  Gource git:(master) otool -L /usr/local/bin/gource                       
/usr/local/bin/gource:
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1153.18.0)
    /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
    /Users/.../homebrew/lib/libfreetype.6.dylib (compatibility version 19.0.0, current version 19.0.0)
    /Users/.../homebrew/lib/libpcre.1.dylib (compatibility version 4.0.0, current version 4.5.0)
    /Users/.../homebrew/lib/libGLEW.1.12.0.dylib (compatibility version 1.12.0, current version 1.12.0)
    /Users/.../homebrew/lib/libSDL2_image-2.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
    /Users/.../homebrew/lib/libSDL2-2.0.0.dylib (compatibility version 3.0.0, current version 3.1.0)
    /Users/.../homebrew/lib/libpng16.16.dylib (compatibility version 35.0.0, current version 35.0.0)
    /Users/.../homebrew/opt/boost/lib/libboost_system.dylib (compatibility version 0.0.0, current version 0.0.0)
    /Users/.../homebrew/opt/boost/lib/libboost_filesystem.dylib (compatibility version 0.0.0, current version 0.0.0)
    /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)

Any idea?

Thanks in advance.

PS: Of course the file /usr/local/share/gource/file.png exists and is the good one.

acaudwell commented 8 years ago

Maybe try uninstalling and reinstalling libpng, sdl2, sdl2_image packages, then reinstall gource. Also check the file permissions on /usr/local/share/gource/ and file.png are readable by your user.

You could put some debug in src/core/texture.cpp TextureResource::load(bool reload) to see why it is failing. If IMG_Load() is failing to return a surface then it is maybe a problem with your sdl2_image (or file permissions, or something).

vi4m commented 8 years ago

The same issue here, tried recompile from sources, head, and dev, the same error

lsseckman commented 8 years ago

Hey, encountered same error, uninstalled libpng, sdl2, sdl2_image packages and refreshed the install of using homebrew, no luck.

[06:25 PM | grizzly] $ gource gource: failed to load resource '/opt/boxen/homebrew/Cellar/gource/0.43_3/share/gource/file.png'

zurbo commented 8 years ago

Same issue here, tried to uninstall sdl2, sdl2_image and libpng packages, no luck (too).

gardner commented 8 years ago

I installed via brew install gource and this is happening for me as well.

neolectron commented 8 years ago

bug still here

jpaulin commented 8 years ago

Does gource use any structures in libpng which were removed ie. during the shift to latest 1.6.x branch? Just wondering. Gource's file INSTALL suggests having a libpng12 and what I reckoned, from there onwards, PNG library project page says that there's been changes in ie. removing direct access to "internals" like some PNG's structs. Seems a bit similar as: http://stackoverflow.com/questions/21472958/sdl-image-img-load-fails-on-png

lesteenman commented 7 years ago

I'm experiencing this as well. Any updates on this, or anything we can give you to help you resolve this issue? I've had the same result with a version installed from apt-get (Ubuntu), as well as installing every dependency manually and then compiling Gource from source.

acaudwell commented 7 years ago

Gource uses SDL2_image library to load pngs. Presumably the SDL2_image IMG_Load() function in texture.cpp is failing to load the image. It could be a problem with that library or how Gource uses it (e.g. something wrong with configure.ac).

lesteenman commented 7 years ago

For what it's worth: The path is correct, the file is a working PNG, and 777 permissions do not solve it.

Edit: Would an strace log help?

Inspecting with GDB shows that it is the IMG_Load call that's the issue, returning '0'. Haven't found any further clues. Both SDL 1.2 and SDL 2 seem to cause the same issue.

lesteenman commented 7 years ago

I manually compiled and installed SDL2 from their website, and that has seemed to resolve it!

https://www.libsdl.org/projects/SDL_image/

letatas commented 7 years ago

Yeah !!! At last !

Thank you, it works here also !

Le 10 nov. 2016 à 13:38, Erik notifications@github.com a écrit :

I manually compiled and installed SDL2 from their website, and that has seemed to resolve it!

https://www.libsdl.org/projects/SDL_image/ https://www.libsdl.org/projects/SDL_image/ — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/acaudwell/Gource/issues/43#issuecomment-259679754, or mute the thread https://github.com/notifications/unsubscribe-auth/AAZNGXdWFB7YohJV9CnMQH5uaTxlpJXhks5q8xA8gaJpZM4GcHLl.

jehovahsays commented 7 years ago

On Windows go into gource folder and open the folder named data and look for a file named file.png. If it is not there replace it with the file.png from the gource repository.

snhrdt commented 7 years ago

This problems still occurs with gource 0.44 installed via homebrew. Is there any chance that this will get solved at any point?

acaudwell commented 7 years ago

lesteenman comment implies to me its a problem with the SDL2_image package in homebrew.

Wintermute79 commented 6 years ago

Same problem still here (on Windows 10)

Pontesegger commented 5 years ago

Had the same problem with a standard image. It worked when I converted my image to RGB - 8 bits/channel

bhaller commented 3 years ago

@Pontesegger's fix worked for me as well. It appears that whatever library gource is using to read PNG files on macOS doesn't like 8-bit grayscale PNGs. Converting them to 8bit RGB fixes the problem.

acaudwell commented 2 years ago

I just re-saved all the PNG images and re-commited them: https://github.com/acaudwell/Gource/commit/56b7b306ae4f0515a437af0a728d5d6739bc8c3e

I'm curious if this fixes the issue.

You could copy them into /usr/local/share/gource/ or install it with brew install gource --HEAD

Duke-M-commits commented 14 hours ago

I had the same problem on Windows 10 (gource: failed to load resource 'file.png'). In my case it wasn't 8-bit grayscale pngs. Gource didn't want to load 8-bit images at all (gravatar images as an example often get saved as 8-bit automatically). After resaving them as 32-bit pngs everything worked fine.