ld: library not found for -lfreeimage

Support Ticket

+status
 

I did a fresh install, cloned from master 1.7.1 at github, onto OS X 10.6.7 (Snow Leopard).  Then I made two configuration changes: the *title and  *all+*read setting to Administrator and Anyone Signed in [I'm signed in as an administrator]), I can't upload images.  Specifically, when I try to upload a new logo I get the following in my server terminal:

ld: library not found for -lfreeimage
collect2: ld returned 1 exit status
Load config ...
  SQL (0.4ms)   SET client_min_messages TO 'panic'
  SQL (0.3ms)   SET standard_conforming_strings = on
  SQL (0.2ms)   SET client_min_messages TO 'notice'
Cache hit: localhost:3000/development/Card/cache_id ({})
Cache hit: localhost:3000/development/Cardtype/cache_id ({})
Cache hit: localhost:3000/development/Role/cache_id ({})
Cache hit: localhost:3000/development/System/cache_id ({})
Cache hit: localhost:3000/development/User/cache_id ({})
Cache hit: localhost:3000/development/Wagn::Pattern/cache_id ({})
----------- Wagn Rolling -----------




Processing CardImagesController#create (for 127.0.0.1 at 2012-01-02 12:07:47) [POST]
  Parameters: {"card_image"=>{"uploaded_data"=>#, "attachment_uuid"=>"713282950193303976469575706992", "type"=>"CardImage"}}
Cache hit: localhost:3000/development/Card/cache_id ({})
Cache hit: localhost:3000/development/Cardtype/cache_id ({})
Cache hit: localhost:3000/development/Role/cache_id ({})
Cache hit: localhost:3000/development/System/cache_id ({})
Cache hit: localhost:3000/development/User/cache_id ({})
Cache hit: localhost:3000/development/Wagn::Pattern/cache_id ({})
Cache read: localhost:3000/development/User/132539507202ai/3
WAGN: per request setup
WARNING: Can't mass-assign these protected attributes: attachment_uuid, type
DEPRECATION WARNING: Kernel#returning has been deprecated in favor of Object#tap. (called from sanitize_filename at /apps/rails_active/KairosKM/wagn/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu.rb:409)
DEPRECATION WARNING: Kernel#returning has been deprecated in favor of Object#tap. (called from build_object at /apps/rails_active/KairosKM/wagn/vendor/plugins/make_resourceful/lib/resourceful/default/accessors.rb:128)
  SQL (0.4ms)   BEGIN
  SQL (1.9ms)   INSERT INTO "card_images" ("size", "created_at", "content_type", "revision_id", "thumbnail", "updated_at", "card_id", "filename", "height", "parent_id", "db_file_id", "width") VALUES(40926, '2012-01-02 12:07:47.796769', 'image/jpeg', NULL, NULL, '2012-01-02 12:07:47.796769', NULL, 'logo.jpg', NULL, NULL, NULL, NULL) RETURNING "id"
  SQL (1.3ms)   COMMIT
Completed in 595ms (View: 1, DB: 0) | 200 OK [http://localhost/card_images]
Load config ...
  SQL (3.4ms)   SET client_min_messages TO 'panic'
  SQL (0.3ms)   SET standard_conforming_strings = on
  SQL (0.6ms)   SET client_min_messages TO 'notice'
Cache hit: localhost:3000/development/Card/cache_id ({})
Cache hit: localhost:3000/development/Cardtype/cache_id ({})
Cache hit: localhost:3000/development/Role/cache_id ({})
Cache hit: localhost:3000/development/System/cache_id ({})
Cache hit: localhost:3000/development/User/cache_id ({})
Cache hit: localhost:3000/development/Wagn::Pattern/cache_id ({})
----------- Wagn Rolling -----------




Processing CardImagesController#0000 (for 127.0.0.1 at 2012-01-02 12:07:49) [GET]
  Parameters: {"id"=>"0012/logo_medium.jpg"}
Cache hit: localhost:3000/development/Card/cache_id ({})
Cache hit: localhost:3000/development/Cardtype/cache_id ({})
Cache hit: localhost:3000/development/Role/cache_id ({})
Cache hit: localhost:3000/development/System/cache_id ({})
Cache hit: localhost:3000/development/User/cache_id ({})
Cache hit: localhost:3000/development/Wagn::Pattern/cache_id ({})
Cache read: localhost:3000/development/User/132539507202ai/3
WAGN: per request setup

ActionController::UnknownAction (No action responded to 0000. Actions: after, auto_link, before, build_object, captcha_required?, card_path, card_title_span, card_url, collection_url_prefix, concat, connect_icon, connected_icon, connector_function, create, current_cycle, current_model, current_model_name, current_object, current_objects, cycle, destroy, discard_locations_for, edit, edit_object_path, edit_object_url, ensure_parent_exists, exception_status, excerpt, flexlink, highlight, index, instance_variable_name, link_to_connector_update, link_to_page, load_location, load_object, load_objects, load_parent_object, location_history, markdown, name_in_context, namespaces, nested_object_path, nested_object_url, new, new_object_path, new_object_url, object_parameters, object_path, object_url, objects_path, objects_url, page_icon, parent?, parent_class_name, parent_model, parent_name, parent_names, parent_object, parent_path, parent_url, pieces_icon, plural?, plural_action?, pluralize, polymorphic_parent?, polymorphic_parent_name, previous_location, render_404, render_500, render_exception, render_fast_404, renderer, renderer=, requesting_ajax?, requesting_javascript?, require_captcha, rescue_action, reset_cycle, response_for, sanitize, sanitize_css, save_failed!, save_location, save_succeeded!, save_succeeded?, scope, set_default_flash, set_default_redirect, show, simple_format, singular?, singular_action?, strip_links, strip_tags, textilize, textilize_without_paragraph, truncate, update, url_for_card, url_for_page, url_helper_prefix, verify_captcha, and word_wrap):
  /Users/name/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
  /Users/name/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
  /Users/name/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
  /Users/name/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/webrick/server.rb:162:in `start'
  /Users/name/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
  /Users/name/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/webrick/server.rb:95:in `start'
  /Users/name/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/webrick/server.rb:92:in `each'
  /Users/name/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/webrick/server.rb:92:in `start'
  /Users/name/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/webrick/server.rb:23:in `start'
  /Users/name/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/webrick/server.rb:82:in `start'

Rendering template within layouts/application
Rendering /application/404 (404)
Cache read: localhost:3000/development/Card/132539309115py/*placeholder
Cache read: localhost:3000/development/Wagn::Pattern/132539309117at/SETNAMES-*placeholder---true
Cache read: localhost:3000/development/Card/132539309115py/*star
Cache read: localhost:3000/development/Card/132539309115py/*star+*content
Cache read: localhost:3000/development/Card/132539309115py/*star+*default
Cache read: localhost:3000/development/Card/132539309115py/basic+*type
Cache read: localhost:3000/development/Card/132539309115py/*all
Cache read: localhost:3000/development/Card/132539309115py/*all+*content
Cache read: localhost:3000/development/Card/132539309115py/*all+*default
Cache read: localhost:3000/development/User/132539507202ai/wagbot
Cache read: localhost:3000/development/Wagn::Pattern/132539309117at/SETNAMES-*placeholder-Basic--true
Cache read: localhost:3000/development/Card/132539309115py/*star+*layout
Cache read: localhost:3000/development/Card/132539309115py/*all+*layout
Cache read: localhost:3000/development/Card/132539309115py/*all+*layout-content
  Revision Load (1.5ms)   SELECT * FROM "revisions" WHERE ("revisions"."id" = 3171) 
Cache write: localhost:3000/development/Card/132539309115py/*all+*layout-content
Cache read: localhost:3000/development/Card/132539309115py/default_layout
  Card Load (6.4ms)   SELECT * FROM "cards" WHERE ("cards"."key" = 'default_layout') LIMIT 1
Cache write: localhost:3000/development/Card/132539309115py/default_layout
Cache read: localhost:3000/development/Card/132539309115py/default_layout-content
Cache read: localhost:3000/development/Card/132539309115py/*head
Cache read: localhost:3000/development/System/132539507203pm/always
Cache read: localhost:3000/development/Wagn::Pattern/132539309117at/METHODKEYS-*head-Basic--
Cache read: localhost:3000/development/Card/132539309115py/*title
Cache read: localhost:3000/development/Card/132539309115py/*title-content
Cache read: localhost:3000/development/Card/132539309115py/*favicon
Cache read: localhost:3000/development/Card/132539309115py/*logo
  Card Load (3.0ms)   SELECT * FROM "cards" WHERE ("cards"."key" = '*logo') LIMIT 1
Cache write: localhost:3000/development/Card/132539309115py/*logo
Cache read: localhost:3000/development/Card/132539309115py/*logo-content
Cache read: localhost:3000/development/Card/132539309115py/*css
Cache read: localhost:3000/development/Card/132539309115py/*navbox
Cache read: localhost:3000/development/Wagn::Pattern/132539309117at/METHODKEYS-*navbox-Basic--
Cache read: localhost:3000/development/Card/132539309115py/*account_link
Cache read: localhost:3000/development/Wagn::Pattern/132539309117at/METHODKEYS-*account links-Basic--
Cache read: localhost:3000/development/Card/132539309115py/user_name
Cache read: localhost:3000/development/Card/132539309115py/*sidebar
Cache read: localhost:3000/development/Wagn::Pattern/132539309117at/METHODKEYS-*sidebar-Basic--
Cache read: localhost:3000/development/Wagn::Pattern/132539309117at/SETNAMES-*sidebar-Basic--
Cache read: localhost:3000/development/Card/132539309115py/*sidebar+*self
Cache read: localhost:3000/development/Card/132539309115py/*sidebar+*self+*content
Cache read: localhost:3000/development/Card/132539309115py/*sidebar+*self+*default
Cache read: localhost:3000/development/Card/132539309115py/*sidebar-content
Cache read: localhost:3000/development/Card/132539309115py/menu
Cache read: localhost:3000/development/Wagn::Pattern/132539309117at/METHODKEYS-Menu-Basic--
Cache read: localhost:3000/development/Cardtype/132539309116fj/card_keys
Cache read: localhost:3000/development/Cardtype/132539309116fj/card_names
Rendered card/_header (8.9ms)
Cache read: localhost:3000/development/Wagn::Pattern/132539309117at/SETNAMES-Menu-Basic--
Cache read: localhost:3000/development/Card/132539309115py/menu+*self
Cache read: localhost:3000/development/Card/132539309115py/menu-content
Cache read: localhost:3000/development/Card/132539309115py/*all+*table_of_content
Cache read: localhost:3000/development/Card/132539309115py/*all+*table_of_content-content
Cache read: localhost:3000/development/Card/132539309115py/*all+*comment
Cache read: localhost:3000/development/Card/132539309115py/*all+*comment-content
Cache read: localhost:3000/development/Card/132539309115py/basic+*watcher
Cache read: localhost:3000/development/Card/132539309115py/menu+*watcher
Cache read: localhost:3000/development/User/132539507202ai/1
Cache read: localhost:3000/development/Card/132539309115py/wagn_bot
Rendered card/_footer (7.7ms)
Rendered views/_open (33.1ms)
Cache read: localhost:3000/development/Card/132539309115py/administrator_link
Cache read: localhost:3000/development/Wagn::Pattern/132539309117at/METHODKEYS-Administrator links-Basic--
Rendered card/_header (7.3ms)
Cache read: localhost:3000/development/Wagn::Pattern/132539309117at/SETNAMES-Administrator links-Basic--
Cache read: localhost:3000/development/Card/132539309115py/administrator_link+*self
Cache read: localhost:3000/development/Card/132539309115py/administrator_link+*self+*content
Cache read: localhost:3000/development/Card/132539309115py/administrator_link+*self+*default
Cache read: localhost:3000/development/Card/132539309115py/administrator_link-content
Cache read: localhost:3000/development/Card/132539309115py/config
  Card Load (1.1ms)   SELECT * FROM "cards" WHERE ("cards"."key" = 'config') LIMIT 1
Cache write: localhost:3000/development/Card/132539309115py/config
Cache read: localhost:3000/development/Card/132539309115py/*account
Cache read: localhost:3000/development/Card/132539309115py/role
Cache read: localhost:3000/development/Card/132539309115py/administrator_link+*self+*table_of_content
Cache read: localhost:3000/development/Card/132539309115py/administrator_link+*self+*comment
Cache read: localhost:3000/development/Card/132539309115py/administrator_link+*watcher
Rendered card/_footer (3.8ms)
Rendered views/_open (49.4ms)
Cache read: localhost:3000/development/Card/132539309115py/*version
Cache read: localhost:3000/development/Wagn::Pattern/132539309117at/METHODKEYS-*version-Basic--
Cache read: localhost:3000/development/Card/132539309115py/*alert
Cache read: localhost:3000/development/Wagn::Pattern/132539309117at/METHODKEYS-*alerts-Basic--
Cache read: localhost:3000/development/Card/132539309115py/*foot
Cache read: localhost:3000/development/Wagn::Pattern/132539309117at/METHODKEYS-*foot-Basic--
Cache read: localhost:3000/development/Card/132539309115py/*google_analytic_key
Cache read: localhost:3000/development/Wagn::Pattern/132539309117at/METHODKEYS-*logo-Image--
Cache read: localhost:3000/development/Wagn::Pattern/132539309117at/SETNAMES-*logo-Image--
Cache read: localhost:3000/development/Card/132539309115py/*logo+*self
Cache read: localhost:3000/development/Card/132539309115py/image+*type

If I try to save the non-image I get two pop-ups the first of which states:

RJS error:

TypeError: getSlotElement(slot, "current_revision_id") is undefined

followed by...

Wagn.messenger().log("u003Cbu003EConflictu003C/bu003E *logo was not saved");

  slot = getSlotFromContext('main_b03baf0_b052a83');
notice = getNextElement(slot,'notice');
Element.update(notice,"Not Saved Another user has been editing this file. Please examine the changes, make all necessary adjustments, and save again." );
new Insertion.After(notice, ' <div class="revision-navigation"> <span><a href="#" onclick="new Ajax.Updater(getSlotSpan(this), \'/card/changes/79?context=main_b03baf0_b052a83&amp;mode=true&amp;rev=9\', {asynchronous:true, evalScripts:true}); return false;">Older</a> <small>(9)</small></span><span>Newer <small>(0)</small></span><span><a href="#" onclick="new Ajax.Updater(getSlotSpan(this), \'/card/changes/79?context=main_b03baf0_b052a83&amp;mode=false&amp;rev=10\', {asynchronous:true, evalScripts:true}); return false;">Hide changes</a></span><span></span> </div> <div class="revision-header"> <span class="revision-title">Current Revision</span> posted by <a href="/wagn/User_Name">User Name</a> on January 2, 2012 12:16:33 <p class="revision-diff-header"> <small> Showing changes from revision #9: <ins class="diffins">Added</ins> | <del class="diffmod">Removed</del> </small> </p> </div> <div class="revision"> <img src="http://s3.amazonaws.com/en.dwagn.org/card_images/32/red_wagon_wheel_medium.jpg"><img src="/card_images/0000/0012/logo_medium.jpg"> </div> <div class="revision-navigation card-footer"> <span><a href="#" onclick="new Ajax.Updater(getSlotSpan(this), \'/card/changes/79?context=main_b03baf0_b052a83&amp;mode=true&amp;rev=9\',

Any advice would be appreciated.

 

Oof.  OK, every part of this issue has been completely refactored in wagn 1.8 -- the javascript is now completely unobtrusive, we're using an entirely different libraries for uploading and manipulating images, and the conflict management has all been moved into the model.  So this issue would be likely to go away soon on its own.   But in the meantime...

 

I haven't seen this particular combination of errors before, but my best guess is that the original error (which is an ImageScience error) is breaking things and somehow confusing wagn along the way.  Things have changed so much that it's probably not worth debugging wagn's mishandling of the ImageScience error -- we should just try to fix the image science installation.  I suspect the other errors will then go away.

 

The Wagn 1.8 upgrade will actually require ImageMagick, which will work with the old library as well.  The good news is that at least in 1.8 bundle install will fail if the image dependencies aren't met.

 

When I google the original error:

ld: library not found for -lfreeimage
collect2: ld returned 1 exit status

I get this page, which is from another project that uses Image Science.  It explains that the problem is libfreeimage, which is discussed a bit on the Image Issues card, although not from a mac perspective.

 

So you could either try to fix the image science installation or go into the Gemfile and switch to ImageMagick and get that installed.

 

Understandably, the image manipulation installations are one of the hairiest parts of a wagn install.  I'm glad things will be moving in the right direction with 1.8, but I hope we find ways to simplify further.

 

- ethan