shotwell problem

does somebody know what might be broken.
If i start shotwell i get this message.

shotwell: symbol lookup error: /usr/lib64/ undefined symbol: g_malloc0_n

Not sure if i killed something, but would like to get it going again.
Can not really figure it out, but i reinstalled shotwell. Did not solve the problem.

Anyhow, if someone knows what might be wrong, i appreciate for the tip.


Hello yester64,

First of all could you give us a bit more information?
Which version of openSUSE you have?
If you use KDE or GNOME?

How did you install shotwell?
This error message means that you miss the gee library.
If you look at the installation site of shotwell you’ll see this:

Best of luck!:wink:

I apologize. :slight_smile:

Well, its Gnome and i have Suse 11.2 running.
I installed it over suse’s software manager. The version is 0.5.

It ran before so its kind of strange.
But i did install also gcc i think, perhaps this broke the gee library. Not sure really.

I will try to do as you wrote.

btw. shotwell and f-spot are the only photo manager that let you browse to a whole collection instead of folders. Am i right? Because thats what i want. Shotwell works pretty good.

Thanks already. I will let you as soon as i have tried it.

i installed it, but it did not solve the problem.
I might have to reinstall shotwell from the ground. :frowning:

Hello yester64,

Some things are still not clear to me.

What do you mean by it? What did you install?

How do you mean it ran before?
In an older version of openSUSE?

I don’t know I don’t use photo-managers.

I tried it myself and encountered the same problem and found a solution.
So here’s a step for step guide on how to install shotwell under openSUSE 11.2:

  1. Install shotwell from the Software Search. I used this One-click install.
  2. Install most of the shotwell dependencies by running this command:
sudo zypper install dbus-1-devel gconf2-devel gtk-devel libgudev-1_0-devel libexif-devel libgphoto2-devel libsoup-devel libxml2-devel sqlite3-devel libunique-devel libwebkit-devel
  1. There’s one dependency missing and that is libgee. That’s because there’s no package for openSUSE 11.2 so you need to compile it yourself. Download gee from here. (direct link to 0.5 source)
  2. Extract the archief libgee-0.5.0.tar.bz2.
  3. Open a konsole and run this commands:
cd /<PATH>/<TO>/<Extracted>/<Archief>/libgee-0.5.0/
  1. Now it’s time to compile libgee by running these commands:
sudo make install
  1. The library is installed in /usr/local/lib/ but shotwell is looking in /usr/lib/ so we will make a symbolic link to the library with this command:
sudo ln -s /usr/local/lib/ /usr/lib/

  1. Now you can run shotwell.

There’s probably a better way to install the package directly in to /usr/lib but I don’t know how.

Best of luck!:wink:


I also installed Shotwell and when I run it as root it works. When I run it as me I get:

shotwell: symbol lookup error: shotwell: undefined symbol: g_malloc0_n

So some right or path thing I guess?

Hello Ricochet,

First of all there’s a lot of information missing in your post.
So could you tell us which version of openSUSE you have?
And which version of Shotwell you installed?
How did you install Shotwell?
Did you installed the dependencies and compiled libgee from source?

Make sure that the symbolic link is in /usr/lib.
If it is in /lib only root will be able to access it.

And could you post the output of these commands:

file /usr/lib/
file /lib/
file /usr/lib/

Best of luck!:wink:

Hmm, you are so right, I should know better.

I’m running 11.2 x64 with Gnome. I followed your instructions in this thread.

Following your commands:

file /usr/lib/
/usr/lib/ symbolic link to `/usr/local/lib/’

There is no

file /lib/
/lib/ cannot open `/lib/’ (No such file or directory)

There also isn’t a .so.2

So that’s probably the problem?

I installed Shotwell with the software one click thingy…
From there I followed your post.


Hello Ricochet,

First of all I noted that I’ve posted a command twice.
I actually meant this command:

file /usr/local/lib/

And I discovered that it doesn’t matter if the library is in /usr/lib or in /usr/local/lib.

This is a different message then the OP had.
Maybe it’s a different library which shotwell can’t find.
So could you run these commands and post the output:

cd /usr/bin
ldd -d -r ./shotwell

Best of luck!:wink:


The result:

/usr/bin # ldd -d -r ./shotwell =>  (0x00007fff89b41000) => /usr/local/lib/ (0x00007f8a6d162000) => /usr/lib64/ (0x00007f8a6cec1000) => /usr/lib64/ (0x00007f8a6cc82000) => /usr/lib64/ (0x00007f8a6ca04000) => /usr/lib64/ (0x00007f8a6c7fb000) => /usr/lib64/ (0x00007f8a6c5be000) => /lib64/ (0x00007f8a6c369000) => /usr/lib64/ (0x00007f8a6c01c000) => /usr/lib64/ (0x00007f8a6be11000) => /usr/lib64/ (0x00007f8a6ac54000) => /usr/lib64/ (0x00007f8a6a653000) => /usr/lib64/ (0x00007f8a6a3ff000) => /usr/lib64/ (0x00007f8a6a153000) => /usr/lib64/ (0x00007f8a69f37000) => /usr/lib64/ (0x00007f8a69cb9000) => /usr/lib64/ (0x00007f8a69a6f000) => /usr/lib64/ (0x00007f8a697c7000) => /usr/lib64/ (0x00007f8a695c2000) => /usr/lib64/ (0x00007f8a693ba000) => /usr/lib64/ (0x00007f8a69198000) => /lib64/ (0x00007f8a68f7c000) => /usr/lib64/ (0x00007f8a68d37000) => /usr/lib64/ (0x00007f8a68b32000) => /usr/lib64/ (0x00007f8a6886b000) => /lib64/ (0x00007f8a68510000) => /usr/lib64/ (0x00007f8a6830c000) => /usr/lib64/ (0x00007f8a6809b000) => /lib64/ (0x00007f8a67e5b000) => /usr/lib64/ (0x00007f8a67c51000) => /lib64/ (0x00007f8a67a4d000) => /lib64/ (0x00007f8a67837000) => /usr/lib64/ (0x00007f8a674fb000) => /usr/lib64/ (0x00007f8a672ef000) => /usr/lib64/ (0x00007f8a670e7000) => /usr/lib64/ (0x00007f8a66ed7000) => /usr/lib64/ (0x00007f8a66ccf000) => /usr/lib64/ (0x00007f8a66a91000) => /usr/lib64/ (0x00007f8a667b1000) => /usr/lib64/ (0x00007f8a66591000) => /usr/lib64/ (0x00007f8a66385000) => /usr/lib64/ (0x00007f8a66161000) => /usr/lib64/ (0x00007f8a65f26000) => /usr/lib64/ (0x00007f8a65cfd000) => /usr/lib64/ (0x00007f8a65a77000) => /usr/lib64/ (0x00007f8a65842000) => /usr/lib64/ (0x00007f8a6561a000) => /usr/lib64/ (0x00007f8a65262000) => /usr/lib64/ (0x00007f8a64f07000) => /usr/lib64/ (0x00007f8a64ca2000) => /usr/lib64/ (0x00007f8a64994000) => /usr/lib64/ (0x00007f8a6478e000) => /usr/lib64/ (0x00007f8a644d8000) => /lib64/ (0x00007f8a64260000) => /usr/lib64/ (0x00007f8a6404e000) => /usr/lib64/ (0x00007f8a63e44000) => /usr/lib64/ (0x00007f8a63c41000) => /usr/lib64/ (0x00007f8a63a36000) => /usr/lib64/ (0x00007f8a6382d000) => /usr/lib64/ (0x00007f8a63622000) => /usr/lib64/ (0x00007f8a6341f000) => /usr/lib64/ (0x00007f8a6321c000) => /usr/lib64/ (0x00007f8a62fc2000) => /usr/lib64/ (0x00007f8a62dbe000) => /usr/lib64/ (0x00007f8a62bb5000) => /usr/lib64/ (0x00007f8a62998000) => /lib64/ (0x00007f8a62782000) => /lib64/ (0x00007f8a62564000) => /usr/lib64/ (0x00007f8a62357000) => /lib64/ (0x00007f8a6214a000)
	/lib64/ (0x00007f8a6d3ac000) => /lib64/ (0x00007f8a61f41000) => /lib64/ (0x00007f8a61d13000) => /lib64/ (0x00007f8a61aea000) => /lib64/ (0x00007f8a618d3000) => /usr/lib64/ (0x00007f8a6078d000) => /usr/lib64/ (0x00007f8a60584000) => /usr/lib64/ (0x00007f8a60367000) => /lib64/ (0x00007f8a60163000) => /usr/lib64/ (0x00007f8a5ff5f000) => /lib64/ (0x00007f8a5fd5a000)
undefined symbol: g_realloc_n	(./shotwell)
undefined symbol: g_malloc0_n	(./shotwell)

Hello Ricochet,

As you can see in the second line of the commands output libgee isn’t the problem.
The problem lies in the last two lines:

The strange thing is that there’s an undefined symbol in the executable shotwell.

I’m not sure what’s causing it.
How did you install Shotwell?
The OP installed with the Software Search.
If you haven’t I recommend you do this, but first uninstall shotwell.

If you have installed Shotwell with the Software Search post the output of this commands if you could:

rpm -Vf /usr/bin/shotwell

Good luck!:wink:


I also installed via Software Search, One Click Install.

The output of your command is… nothing.

I just get a new command line :s

Just removed it and reinstalled again with Software Search. No difference.

Hello Ricochet,

That’s good because the command is looking for differences between the files on your system and in the package.
If there aren’t any differences it will return … nothing.

I’m afraid I don’t know what the problem is.

You could check if you’ve installed the 64-bit version of shotwell.
But since you’ve installed it with an One-click install it must be 64-bit.

Maybe the problem is still libgee because it is a 32-bit library.
The only problem is that I don’t know how to compile something 64-bit.
I thought that when you’ve got a 64-bit system things you compile would be compiled 64-bit.

Best of luck!:wink:

Thanks for your help so far!

I thought that since root can run the application it would be a rights or path thing.

Too bad.

Hello Ricochet,

I discovered that the package was updated three weeks ago.
I was still using the old one.
Now I’ve update to the latest one and discovered that it’s no longer needed to compile libgee yourself.

So I removed the manually compiled libgee and installed libgee from the repository.
Everything looks the same the only difference is that the command:

ldd -d -r /usr/bin/shotwell

Now returns the same as you, including the last two lines.

If you could remove your compiled version of libgee and make sure that you’ve got the package libgee installed.
Maybe when you run shotwell as root it will use the from the package.
But when you run it as your default user it uses the compiled one?

You can also try to make a test user and see if he encounters the same problem.

Good luck!:wink:


I removed the compiled version of libgee and reinstalled shotwell and libgee via the software search.

Now I get:

shotwell: symbol lookup error: /usr/lib64/ undefined symbol: g_malloc0_n

as user.

As root it won’t run either now :slight_smile: So perhaps root used the compiled one before.

Hello Ricochet,

I think you’re right if the user and root get the same error.
I said that the compiled version could be removed because I thought I had removed it.
But I hadn’t so when I ran shotwell as root or as a normal user it would use the compiled one.

When I removed the compiled version I got the same error as you.
And here’s how I solved it:

  1. First of all remove the package “libgee”. Now we have no libgee installed on our system. To test this run shotwell and you’ll get the error message.
  2. Recompile libgee following steps 3-6(7 isn’t needed).
  3. Now you can start shotwell.

If you get an error please post the error and the output of this command:

ldd -d -r /usr/bin/shotwell

Good luck!:wink:

Hi, thanks for all your help so far.

I did as you said and this is the output of the command:

# ldd -d -r /usr/bin/shotwell =>  (0x00007fff19dff000) => not found => /usr/lib64/ (0x00007fa07c177000) => /usr/lib64/ (0x00007fa07bf38000) => /usr/lib64/ (0x00007fa07bcba000) => /usr/lib64/ (0x00007fa07bab1000) => /usr/lib64/ (0x00007fa07b874000) => /lib64/ (0x00007fa07b61f000) => /usr/lib64/ (0x00007fa07b2d2000) => /usr/lib64/ (0x00007fa07b0c7000) => /usr/lib64/ (0x00007fa079f0a000) => /usr/lib64/ (0x00007fa079909000) => /usr/lib64/ (0x00007fa0796b5000) => /usr/lib64/ (0x00007fa079409000) => /usr/lib64/ (0x00007fa0791ed000) => /usr/lib64/ (0x00007fa078f6f000) => /usr/lib64/ (0x00007fa078d25000) => /usr/lib64/ (0x00007fa078a7d000) => /usr/lib64/ (0x00007fa078878000) => /usr/lib64/ (0x00007fa078670000) => /usr/lib64/ (0x00007fa07844e000) => /lib64/ (0x00007fa078232000) => /usr/lib64/ (0x00007fa077fed000) => /usr/lib64/ (0x00007fa077de8000) => /usr/lib64/ (0x00007fa077b21000) => /lib64/ (0x00007fa0777c6000) => /usr/lib64/ (0x00007fa0775c2000) => /usr/lib64/ (0x00007fa077351000) => /lib64/ (0x00007fa077111000) => /usr/lib64/ (0x00007fa076f07000) => /lib64/ (0x00007fa076d03000) => /lib64/ (0x00007fa076aed000) => /usr/lib64/ (0x00007fa0767b1000) => /usr/lib64/ (0x00007fa0765a5000) => /usr/lib64/ (0x00007fa07639d000) => /usr/lib64/ (0x00007fa07618d000) => /usr/lib64/ (0x00007fa075f85000) => /usr/lib64/ (0x00007fa075d47000) => /usr/lib64/ (0x00007fa075a67000) => /usr/lib64/ (0x00007fa075847000) => /usr/lib64/ (0x00007fa07563b000) => /usr/lib64/ (0x00007fa075417000) => /usr/lib64/ (0x00007fa0751dc000) => /usr/lib64/ (0x00007fa074fb3000) => /usr/lib64/ (0x00007fa074d2d000) => /usr/lib64/ (0x00007fa074af8000) => /usr/lib64/ (0x00007fa0748d0000) => /usr/lib64/ (0x00007fa074518000) => /usr/lib64/ (0x00007fa0741bd000) => /usr/lib64/ (0x00007fa073f58000) => /usr/lib64/ (0x00007fa073c4a000) => /usr/lib64/ (0x00007fa073a44000) => /usr/lib64/ (0x00007fa07378e000) => /lib64/ (0x00007fa073516000) => /usr/lib64/ (0x00007fa073304000) => /usr/lib64/ (0x00007fa0730fa000) => /usr/lib64/ (0x00007fa072ef7000) => /usr/lib64/ (0x00007fa072cec000) => /usr/lib64/ (0x00007fa072ae3000) => /usr/lib64/ (0x00007fa0728d8000) => /usr/lib64/ (0x00007fa0726d5000) => /usr/lib64/ (0x00007fa0724d2000) => /usr/lib64/ (0x00007fa072278000) => /usr/lib64/ (0x00007fa072074000) => /usr/lib64/ (0x00007fa071e6b000) => /usr/lib64/ (0x00007fa071c4e000) => /lib64/ (0x00007fa071a38000) => /lib64/ (0x00007fa07181a000) => /usr/lib64/ (0x00007fa07160d000) => /lib64/ (0x00007fa071400000)
	/lib64/ (0x00007fa07c418000) => /lib64/ (0x00007fa0711f7000) => /lib64/ (0x00007fa070fc9000) => /lib64/ (0x00007fa070da0000) => /lib64/ (0x00007fa070b89000) => /usr/lib64/ (0x00007fa06fa43000) => /usr/lib64/ (0x00007fa06f83a000) => /usr/lib64/ (0x00007fa06f61d000) => /lib64/ (0x00007fa06f419000) => /usr/lib64/ (0x00007fa06f215000) => /lib64/ (0x00007fa06f010000)
undefined symbol: gee_set_get_read_only_view	(/usr/bin/shotwell)
undefined symbol: gee_collection_remove	(/usr/bin/shotwell)
undefined symbol: gee_abstract_map_get_type	(/usr/bin/shotwell)
undefined symbol: gee_abstract_list_insert	(/usr/bin/shotwell)
undefined symbol: gee_abstract_collection_remove_all	(/usr/bin/shotwell)
undefined symbol: gee_list_get	(/usr/bin/shotwell)
undefined symbol: gee_collection_add	(/usr/bin/shotwell)
undefined symbol: gee_abstract_map_set	(/usr/bin/shotwell)
undefined symbol: gee_set_get_type	(/usr/bin/shotwell)
undefined symbol: gee_functions_get_hash_func_for	(/usr/bin/shotwell)
undefined symbol: gee_map_get_type	(/usr/bin/shotwell)
undefined symbol: gee_collection_get_size	(/usr/bin/shotwell)
undefined symbol: gee_abstract_collection_remove	(/usr/bin/shotwell)
undefined symbol: gee_map_get_values	(/usr/bin/shotwell)
undefined symbol: gee_abstract_map_map_iterator	(/usr/bin/shotwell)
undefined symbol: gee_abstract_collection_add	(/usr/bin/shotwell)
undefined symbol: gee_map_iterator_next	(/usr/bin/shotwell)
undefined symbol: gee_sorted_set_get_type	(/usr/bin/shotwell)
undefined symbol: gee_iterable_iterator	(/usr/bin/shotwell)
undefined symbol: gee_abstract_list_set	(/usr/bin/shotwell)
undefined symbol: gee_abstract_list_get	(/usr/bin/shotwell)
undefined symbol: gee_abstract_collection_add_all	(/usr/bin/shotwell)
undefined symbol: gee_abstract_list_get_type	(/usr/bin/shotwell)
undefined symbol: gee_array_list_get_type	(/usr/bin/shotwell)
undefined symbol: gee_iterable_get_element_type	(/usr/bin/shotwell)
undefined symbol: gee_iterator_next	(/usr/bin/shotwell)
undefined symbol: gee_collection_get_type	(/usr/bin/shotwell)
undefined symbol: gee_collection_contains	(/usr/bin/shotwell)
undefined symbol: gee_iterator_get	(/usr/bin/shotwell)
undefined symbol: gee_array_list_new	(/usr/bin/shotwell)
undefined symbol: gee_map_contains	(/usr/bin/shotwell)
undefined symbol: gee_iterable_get_type	(/usr/bin/shotwell)
undefined symbol: gee_map_iterator_get_key	(/usr/bin/shotwell)
undefined symbol: gee_hash_map_new	(/usr/bin/shotwell)
undefined symbol: gee_abstract_collection_get_type	(/usr/bin/shotwell)
undefined symbol: gee_abstract_collection_iterator	(/usr/bin/shotwell)
undefined symbol: gee_list_get_type	(/usr/bin/shotwell)
undefined symbol: gee_abstract_collection_contains	(/usr/bin/shotwell)
undefined symbol: gee_abstract_map_get	(/usr/bin/shotwell)
undefined symbol: gee_abstract_map_clear	(/usr/bin/shotwell)
undefined symbol: g_realloc_n	(/usr/bin/shotwell)
undefined symbol: g_malloc0_n	(/usr/bin/shotwell)
undefined symbol: gee_abstract_list_index_of	(/usr/bin/shotwell)
undefined symbol: gee_abstract_collection_clear	(/usr/bin/shotwell)
undefined symbol: gee_abstract_list_remove_at	(/usr/bin/shotwell)
undefined symbol: gee_map_get_keys	(/usr/bin/shotwell)
undefined symbol: gee_functions_get_equal_func_for	(/usr/bin/shotwell)
undefined symbol: gee_hash_map_get_type	(/usr/bin/shotwell)
undefined symbol: gee_map_get_size	(/usr/bin/shotwell)
undefined symbol: gee_abstract_map_has_key	(/usr/bin/shotwell)
undefined symbol: gee_hash_set_new	(/usr/bin/shotwell)
undefined symbol: gee_tree_set_new	(/usr/bin/shotwell)
undefined symbol: gee_map_iterator_get_value	(/usr/bin/shotwell)
undefined symbol: gee_map_remove	(/usr/bin/shotwell)
undefined symbol: gee_abstract_map_unset	(/usr/bin/shotwell)

I’m willing to give up now :’(

Hello Ricochet,

Could you give it just one more shot?

The problem now is that shotwell can’t find libgee at all!

Could you run this command to make sure that the compiling went well:

file /usr/local/lib/ 

If it returns an error could you post the error message?
If it doesn’t post an error then I suggest you do step 7 and try it again.
Somehow it autodetected the compiled library for me, maybe it doesn’t on your system?

Best of luck!:wink:

Sure, I’ll try again. I was just feeling guilty of still steeling your time :slight_smile:

It will have to wait until tomorrow. My gf stole my laptop and that is my trail and error machine :wink:

Thanks for feeding me with more info!