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&mode=true&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&mode=false&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&mode=true&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