diff --git a/alexandria-0.6.3-crash_tooltips.patch b/alexandria-0.6.3-crash_tooltips.patch
deleted file mode 100644
index 26ab1bf..0000000
--- a/alexandria-0.6.3-crash_tooltips.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- alexandria-0.6.3/lib/alexandria/ui/iconview_tooltips.rb.debug 2008-02-21 10:11:37.000000000 +0900
-+++ alexandria-0.6.3/lib/alexandria/ui/iconview_tooltips.rb 2008-03-23 16:53:56.000000000 +0900
-@@ -98,7 +98,8 @@
- end
-
- def on_motion(view, event)
-- tree_path = view.get_path(event.x, event.y)
-+ tree_path = nil
-+ #tree_path = view.get_path(event.x, event.y)
- # TODO translate path a few times, for sorting & filtering...
- # hmmm, actually seems to work. Report a bug if you can spot a failure
- if tree_path
diff --git a/alexandria-0.6.3-library-utf8-string.patch b/alexandria-0.6.3-library-utf8-string.patch
deleted file mode 100644
index 5fc92a9..0000000
--- a/alexandria-0.6.3-library-utf8-string.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-Index: lib/alexandria/ui/sidepane.rb
-===================================================================
---- lib/alexandria/ui/sidepane.rb (revision 1012)
-+++ lib/alexandria/ui/sidepane.rb (revision 1021)
-@@ -19,18 +19,42 @@
- x and x.name != @parent.selected_library.name
- end
-
-- def contains_illegal_character new_text
-- /([^\w\s'"()&?!:;.\-])/.match(new_text)
-+ # if new_text is invalid utf-8, returns true
-+ # if new_text contains disallowed char (/ or initial .), returns a MatchData object
-+ # otherwise returns nil
-+ def contains_illegal_character(new_text)
-+ begin
-+ new_text.unpack("U*") # attempt to unpack as UTF-8 characters
-+ match = /(^\.|\/)/.match(new_text)
-+ # forbid / character (since Library names become dir names)
-+ # also no initial . since that hides the Library (hidden file)
-+ # forbidding an initial dot also disallows "." and ".."
-+ # which are of course pre-existing directories.
-+ return match
-+ rescue Exception => ex
-+ log.warn { "New library name not valid UTF-8: #{ex.message}" }
-+ return true
-+ end
-+ # /([^\w\s'"()&?!:;.\-])/.match(new_text) # anglocentric!
- end
-
- def on_edited_library cell, path_string, new_text
-- log.debug { "edited" }
-+ log.debug { "edited library name #{new_text}" }
-+ ## new_text = new_text.reverse # for testing;
-+ # a great way to generate broken UTF-8
- if cell.text != new_text
- if match = contains_illegal_character(new_text)
-- log.debug { "Illegal character" }
-- ErrorDialog.new(@main_app, _("Invalid library name '%s'") % new_text,
-- _("The name provided contains the " + "illegal character '%s'.") %
-- match[1].gsub(/&/, "&"))
-+ if match.instance_of? MatchData
-+ chars = match[1].gsub(/&/, "&")
-+ ErrorDialog.new(@main_app, _("Invalid library name '%s'") % new_text,
-+ _("The name provided contains the " +
-+ "disallowed character %s ") % chars)
-+ else
-+ ErrorDialog.new(@main_app, _("Invalid library name"),
-+ _("The name provided contains " +
-+ "invalid characters."))
-+ end
-+
- elsif new_text.strip.empty?
- log.debug { "Empty text" }
- ErrorDialog.new(@main_app, _("The library name " +
diff --git a/alexandria-0.6.4-bookentry-after-sorting.patch b/alexandria-0.6.4-bookentry-after-sorting.patch
deleted file mode 100644
index 798ce80..0000000
--- a/alexandria-0.6.4-bookentry-after-sorting.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Index: lib/alexandria/ui/ui_manager.rb
-===================================================================
---- lib/alexandria/ui/ui_manager.rb (revision 1064)
-+++ lib/alexandria/ui/ui_manager.rb (revision 1065)
-@@ -918,10 +918,13 @@
- selection = page == 0 ? @iconview : @listview.selection
-
- selection.selected_each do |the_view, path|
-- unless the_view.model
-+ # don't use the_view which is passed in by this block
-+ # as it doesn't consider the filtering for some reason
-+ # see bug #24568
-+ unless view.model
- next
- end
-- path = the_view.model.convert_path_to_child_path(path)
-+ path = view.model.convert_path_to_child_path(path)
- if path
- path = @filtered_model.convert_path_to_child_path(path)
- # FIX this sometimes returns a nil path for iconview...
diff --git a/alexandria-0.6.4.1-right-click-left-pane-morefix.patch b/alexandria-0.6.4.1-right-click-left-pane-morefix.patch
new file mode 100644
index 0000000..f4459dd
--- /dev/null
+++ b/alexandria-0.6.4.1-right-click-left-pane-morefix.patch
@@ -0,0 +1,12 @@
+Index: lib/alexandria/ui/ui_manager.rb
+===================================================================
+--- lib/alexandria/ui/ui_manager.rb (revision 1070)
++++ lib/alexandria/ui/ui_manager.rb (working copy)
+@@ -335,6 +335,7 @@
+
+
+ if library_already_selected
++ sensitize_library selected_library
+ Gtk.idle_add do
+ menu.popup(nil, nil, event.button, event.time)
+ false
diff --git a/alexandria-0.6.4.1-right-click-left-pane.patch b/alexandria-0.6.4.1-right-click-left-pane.patch
new file mode 100644
index 0000000..0187a1c
--- /dev/null
+++ b/alexandria-0.6.4.1-right-click-left-pane.patch
@@ -0,0 +1,74 @@
+Index: lib/alexandria/ui/callbacks.rb
+===================================================================
+--- lib/alexandria/ui/callbacks.rb (revision 1067)
++++ lib/alexandria/ui/callbacks.rb (revision 1070)
+@@ -19,6 +19,9 @@
+ module Alexandria
+ module UI
+ module Callbacks
++
++ include Logging
++
+ def on_new widget, event
+ name = Library.generate_new_name(@libraries.all_libraries)
+ library = Library.load(name)
+@@ -208,6 +211,11 @@
+ def on_delete widget, event
+ library = selected_library
+ books = @library_listview.focus? ? nil : selected_books
++ last_library = (@libraries.all_regular_libraries.length == 1)
++ if last_library
++ log.warn { "Attempted to delete last library, fix GUI" }
++ return
++ end
+ if library.empty? or ReallyDeleteDialog.new(@main_app,
+ library,
+ books).ok?
+Index: lib/alexandria/ui/ui_manager.rb
+===================================================================
+--- lib/alexandria/ui/ui_manager.rb (revision 1067)
++++ lib/alexandria/ui/ui_manager.rb (revision 1070)
+@@ -306,6 +306,7 @@
+
+ if event_is_right_click event
+ log.debug { "library right click!" }
++ library_already_selected = true
+ if path = widget.get_path_at_pos(event.x, event.y)
+ obj, path = widget.is_a?(Gtk::TreeView) \
+ ? [widget.selection, path.first] : [widget, path]
+@@ -313,6 +314,7 @@
+
+ unless obj.path_is_selected?(path)
+ log.debug { "Select #{path}" }
++ library_already_selected = false
+ widget.unselect_all
+ obj.select_path(path)
+ end
+@@ -321,10 +323,24 @@
+ end
+
+ menu = determine_library_popup widget, event
+- Gtk.idle_add do
+- menu.popup(nil, nil, event.button, event.time)
+- false
++
++ # Fixes part of bug #25021.
++ #
++ # If the library was not selected when it was right-clicked
++ # we should select the library first (we call on_focus
++ # manually, since the above call to obj.select_path(path) doesn't
++ # seem to suffice).
++ #
++ # Then we wait a while and only *then* pop up the menu.
++
++
++ if library_already_selected
++ Gtk.idle_add do
++ menu.popup(nil, nil, event.button, event.time)
++ false
++ end
+ end
++
+ end
+ end
+
diff --git a/alexandria-0.6.4.1-use-2args-bindtextdomain.patch b/alexandria-0.6.4.1-use-2args-bindtextdomain.patch
new file mode 100644
index 0000000..8b875e6
--- /dev/null
+++ b/alexandria-0.6.4.1-use-2args-bindtextdomain.patch
@@ -0,0 +1,472 @@
+Index: lib/alexandria/models/library.rb
+===================================================================
+--- lib/alexandria/models/library.rb (revision 1066)
++++ lib/alexandria/models/library.rb (revision 1067)
+@@ -41,7 +41,7 @@
+
+ include GetText
+ extend GetText
+- bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ BOOK_ADDED, BOOK_UPDATED, BOOK_REMOVED = (0..3).to_a
+ include Observable
+Index: lib/alexandria/book_providers/renaud.rb
+===================================================================
+--- lib/alexandria/book_providers/renaud.rb (revision 1066)
++++ lib/alexandria/book_providers/renaud.rb (revision 1067)
+@@ -24,7 +24,7 @@
+ class BookProviders
+ class RENAUDProvider < GenericProvider
+ include GetText
+- #GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ #GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+ BASE_URI = "http://www.renaud-bray.com/"
+ ACCENTUATED_CHARS = "áàâäçéèêëíìîïóòôöúùûü"
+
+Index: lib/alexandria/book_providers/amazon_aws.rb
+===================================================================
+--- lib/alexandria/book_providers/amazon_aws.rb (revision 1066)
++++ lib/alexandria/book_providers/amazon_aws.rb (revision 1067)
+@@ -25,7 +25,7 @@
+ class AmazonProvider < GenericProvider
+ include Logging
+ include GetText
+- GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ #CACHE_DIR = File.join(Alexandria::Library::DIR, '.amazon_cache')
+
+Index: lib/alexandria/book_providers/mcu.rb
+===================================================================
+--- lib/alexandria/book_providers/mcu.rb (revision 1066)
++++ lib/alexandria/book_providers/mcu.rb (revision 1067)
+@@ -27,7 +27,7 @@
+ class MCUProvider < GenericProvider
+ include Logging
+ include GetText
+- GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ LANGUAGES = {
+ 'es' => '1'
+Index: lib/alexandria/book_providers/proxis.rb
+===================================================================
+--- lib/alexandria/book_providers/proxis.rb (revision 1066)
++++ lib/alexandria/book_providers/proxis.rb (revision 1067)
+@@ -23,7 +23,7 @@
+ class ProxisProvider < GenericProvider
+ include GetText
+ include Logging
+- GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ LANGUAGES = {
+ 'nl' => '1',
+Index: lib/alexandria/book_providers/z3950.rb
+===================================================================
+--- lib/alexandria/book_providers/z3950.rb (revision 1066)
++++ lib/alexandria/book_providers/z3950.rb (revision 1067)
+@@ -26,7 +26,7 @@
+ class Z3950Provider < AbstractProvider
+ include Logging
+ include GetText
+- GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ def initialize(name="Z3950", fullname="Z39.50")
+ super
+@@ -174,7 +174,7 @@
+ unabstract
+
+ include GetText
+- GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ def initialize
+ super("LOC", _("Library of Congress (Usa)"))
+@@ -207,7 +207,7 @@
+ unabstract
+
+ include GetText
+- GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ def initialize
+ super("BL", _("British Library"))
+@@ -296,7 +296,7 @@
+ unabstract
+
+ include GetText
+- GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ def initialize
+ super("SBN", "Servizio Bibliotecario Nazionale (Italy)")
+Index: lib/alexandria/book_providers.rb
+===================================================================
+--- lib/alexandria/book_providers.rb (revision 1066)
++++ lib/alexandria/book_providers.rb (revision 1067)
+@@ -25,7 +25,7 @@
+ include Singleton
+ include Observable
+ include GetText
+- GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ SEARCH_BY_ISBN, SEARCH_BY_TITLE, SEARCH_BY_AUTHORS,
+ SEARCH_BY_KEYWORD = (0..3).to_a
+Index: lib/alexandria/import_library.rb
+===================================================================
+--- lib/alexandria/import_library.rb (revision 1066)
++++ lib/alexandria/import_library.rb (revision 1067)
+@@ -22,7 +22,7 @@
+
+ include GetText
+ extend GetText
+- bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ def self.all
+ [
+Index: lib/alexandria/export_library.rb
+===================================================================
+--- lib/alexandria/export_library.rb (revision 1066)
++++ lib/alexandria/export_library.rb (revision 1067)
+@@ -102,7 +102,7 @@
+ include GetText
+ include Logging
+ extend GetText
+- bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ def self.all
+ [
+Index: lib/alexandria/smart_library.rb
+===================================================================
+--- lib/alexandria/smart_library.rb (revision 1066)
++++ lib/alexandria/smart_library.rb (revision 1067)
+@@ -23,7 +23,7 @@
+ include Logging
+ include GetText
+ extend GetText
+- bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ ALL_RULES, ANY_RULE = 1, 2
+ attr_reader :name
+@@ -290,7 +290,7 @@
+ class Rule
+ include GetText
+ extend GetText
+- bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ attr_accessor :operand, :operation, :value
+
+@@ -343,7 +343,7 @@
+ module Operands
+ include GetText
+ extend GetText
+- bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ LEFT = [
+ LeftOperand.new(:title, _("Title"), String),
+@@ -375,7 +375,7 @@
+ include Logging
+ include GetText
+ extend GetText
+- bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ IS_TRUE = Operator.new(
+ :is_true,
+Index: lib/alexandria/about.rb
+===================================================================
+--- lib/alexandria/about.rb (revision 1066)
++++ lib/alexandria/about.rb (revision 1067)
+@@ -20,7 +20,7 @@
+ TITLE = 'Alexandria'
+ TEXTDOMAIN = 'alexandria'
+ extend GetText
+- bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+ DESCRIPTION = _('A program to help you manage your book collection.')
+ COPYRIGHT = "Copyright (C) 2004,2005,2006 Laurent Sansonetti\n" +
+ "Copyright (C) 2007,2008,2009 Alexandria Contributors"
+Index: lib/alexandria/ui/dialogs/misc_dialogs.rb
+===================================================================
+--- lib/alexandria/ui/dialogs/misc_dialogs.rb (revision 1066)
++++ lib/alexandria/ui/dialogs/misc_dialogs.rb (revision 1067)
+@@ -19,7 +19,7 @@
+ module UI
+ class ConflictWhileCopyingDialog < AlertDialog
+ include GetText
+- GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ def initialize(parent, library, book)
+ super(parent,
+@@ -42,7 +42,7 @@
+
+ class ReallyDeleteDialog < AlertDialog
+ include GetText
+- GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ def initialize(parent, library, books=nil)
+ # Deleting a library.
+Index: lib/alexandria/ui/dialogs/book_properties_dialog_base.rb
+===================================================================
+--- lib/alexandria/ui/dialogs/book_properties_dialog_base.rb (revision 1066)
++++ lib/alexandria/ui/dialogs/book_properties_dialog_base.rb (revision 1067)
+@@ -20,7 +20,7 @@
+ class BookPropertiesDialogBase < GladeBase
+ include GetText
+ extend GetText
+- GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ COVER_MAXWIDTH = 140 # pixels
+
+Index: lib/alexandria/ui/dialogs/new_book_dialog_manual.rb
+===================================================================
+--- lib/alexandria/ui/dialogs/new_book_dialog_manual.rb (revision 1066)
++++ lib/alexandria/ui/dialogs/new_book_dialog_manual.rb (revision 1067)
+@@ -20,7 +20,7 @@
+ class NewBookDialogManual < BookPropertiesDialogBase
+ include GetText
+ extend GetText
+- GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ TMP_COVER_FILE = File.join(Dir.tmpdir, "tmp_cover")
+ def initialize(parent, library, &on_add_cb)
+Index: lib/alexandria/ui/dialogs/smart_library_properties_dialog_base.rb
+===================================================================
+--- lib/alexandria/ui/dialogs/smart_library_properties_dialog_base.rb (revision 1066)
++++ lib/alexandria/ui/dialogs/smart_library_properties_dialog_base.rb (revision 1067)
+@@ -20,7 +20,7 @@
+ class SmartLibraryPropertiesDialogBase < Gtk::Dialog
+ include Logging
+ include GetText
+- GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ attr_reader :predicate_operator_rule
+
+Index: lib/alexandria/ui/dialogs/export_dialog.rb
+===================================================================
+--- lib/alexandria/ui/dialogs/export_dialog.rb (revision 1066)
++++ lib/alexandria/ui/dialogs/export_dialog.rb (revision 1067)
+@@ -19,7 +19,7 @@
+ module UI
+ class ConfirmEraseDialog < AlertDialog
+ include GetText
+- GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ def initialize(parent, filename)
+ super(parent, _("File already exists"),
+@@ -42,7 +42,7 @@
+ class ExportDialog < Gtk::FileChooserDialog
+ include GetText
+ extend GetText
+- GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ FORMATS = Alexandria::ExportFormat.all
+ THEMES = Alexandria::WebTheme.all
+Index: lib/alexandria/ui/dialogs/preferences_dialog.rb
+===================================================================
+--- lib/alexandria/ui/dialogs/preferences_dialog.rb (revision 1066)
++++ lib/alexandria/ui/dialogs/preferences_dialog.rb (revision 1067)
+@@ -95,7 +95,7 @@
+
+ class ProviderPreferencesDialog < ProviderPreferencesBaseDialog
+ include GetText
+- GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ def initialize(parent, provider)
+ super(_("Preferences for %s") % provider.fullname,
+@@ -120,7 +120,7 @@
+
+ class NewProviderDialog < ProviderPreferencesBaseDialog
+ include GetText
+- GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ def initialize(parent)
+ super(_("New Provider"),
+@@ -209,7 +209,7 @@
+ class PreferencesDialog < GladeBase
+ include Alexandria::Logging
+ include GetText
+- GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ def initialize(parent, &changed_block)
+ super('preferences_dialog.glade')
+Index: lib/alexandria/ui/dialogs/new_book_dialog.rb
+===================================================================
+--- lib/alexandria/ui/dialogs/new_book_dialog.rb (revision 1066)
++++ lib/alexandria/ui/dialogs/new_book_dialog.rb (revision 1067)
+@@ -26,7 +26,7 @@
+ module UI
+ class KeepBadISBNDialog < AlertDialog
+ include GetText
+- GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ def initialize(parent, book)
+ super(parent, _("Invalid ISBN '%s'") % book.isbn,
+@@ -51,7 +51,7 @@
+ include Logging
+ include GetText
+ extend GetText
+- GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ def initialize(parent, selected_library=nil, &block)
+ super('new_book_dialog.glade')
+Index: lib/alexandria/ui/dialogs/new_smart_library_dialog.rb
+===================================================================
+--- lib/alexandria/ui/dialogs/new_smart_library_dialog.rb (revision 1066)
++++ lib/alexandria/ui/dialogs/new_smart_library_dialog.rb (revision 1067)
+@@ -19,7 +19,7 @@
+ module UI
+ class NewSmartLibraryDialog < SmartLibraryPropertiesDialogBase
+ include GetText
+- GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ def initialize(parent, &block)
+ super(parent)
+Index: lib/alexandria/ui/dialogs/book_properties_dialog.rb
+===================================================================
+--- lib/alexandria/ui/dialogs/book_properties_dialog.rb (revision 1066)
++++ lib/alexandria/ui/dialogs/book_properties_dialog.rb (revision 1067)
+@@ -21,7 +21,7 @@
+ include Logging
+ include GetText
+ extend GetText
+- GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ def initialize(parent, library, book)
+ super(parent, library.cover(book))
+Index: lib/alexandria/ui/dialogs/smart_library_properties_dialog.rb
+===================================================================
+--- lib/alexandria/ui/dialogs/smart_library_properties_dialog.rb (revision 1066)
++++ lib/alexandria/ui/dialogs/smart_library_properties_dialog.rb (revision 1067)
+@@ -19,7 +19,7 @@
+ module UI
+ class SmartLibraryPropertiesDialog < SmartLibraryPropertiesDialogBase
+ include GetText
+- GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ def initialize(parent, smart_library, &block)
+ super(parent)
+Index: lib/alexandria/ui/dialogs/acquire_dialog.rb
+===================================================================
+--- lib/alexandria/ui/dialogs/acquire_dialog.rb (revision 1066)
++++ lib/alexandria/ui/dialogs/acquire_dialog.rb (revision 1067)
+@@ -213,7 +213,7 @@
+ include GetText
+ include Logging
+ extend GetText
+- GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ def initialize(parent, selected_library=nil, &block)
+ super('acquire_dialog.glade')
+Index: lib/alexandria/ui/dialogs/about_dialog.rb
+===================================================================
+--- lib/alexandria/ui/dialogs/about_dialog.rb (revision 1066)
++++ lib/alexandria/ui/dialogs/about_dialog.rb (revision 1067)
+@@ -19,7 +19,7 @@
+ module UI
+ class AboutDialog < Gtk::AboutDialog
+ include GetText
+- GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ GPL = < "UTF-8")
+
+ def initialize(parent, message)
+ super(parent, _("Error while importing"),
+@@ -53,7 +53,7 @@
+ include GetText
+ include Logging
+
+- GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ FILTERS = Alexandria::ImportFilter.all
+
+Index: lib/alexandria/ui/main_app.rb
+===================================================================
+--- lib/alexandria/ui/main_app.rb (revision 1066)
++++ lib/alexandria/ui/main_app.rb (revision 1067)
+@@ -43,7 +43,7 @@
+ module UI
+ include Logging
+ include GetText
+- GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ class MainApp
+ include Logging
+Index: lib/alexandria/ui/listview.rb
+===================================================================
+--- lib/alexandria/ui/listview.rb (revision 1066)
++++ lib/alexandria/ui/listview.rb (revision 1067)
+@@ -20,7 +20,7 @@
+ module UI
+ include Logging
+ include GetText
+- GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+ class ListViewManager
+ include Logging
+ include GetText
+Index: lib/alexandria/ui/ui_manager.rb
+===================================================================
+--- lib/alexandria/ui/ui_manager.rb (revision 1066)
++++ lib/alexandria/ui/ui_manager.rb (revision 1067)
+@@ -24,7 +24,7 @@
+ :iconview_model, :filtered_model, :on_books_selection_changed
+ include Logging
+ include GetText
+- GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ module Columns
+ COVER_LIST, COVER_ICON, TITLE, TITLE_REDUCED, AUTHORS,
+Index: lib/alexandria/ui/libraries_combo.rb
+===================================================================
+--- lib/alexandria/ui/libraries_combo.rb (revision 1066)
++++ lib/alexandria/ui/libraries_combo.rb (revision 1067)
+@@ -19,7 +19,7 @@
+ class Gtk::ComboBox
+ include GetText
+ extend GetText
+- GetText.bindtextdomain(Alexandria::TEXTDOMAIN, nil, nil, "UTF-8")
++ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8")
+
+ def populate_with_libraries(libraries, selected_library)
+ libraries_names = libraries.map { |x| x.name }
diff --git a/alexandria.spec b/alexandria.spec
index 86cd2d1..8d7d9f8 100644
--- a/alexandria.spec
+++ b/alexandria.spec
@@ -5,7 +5,7 @@
%define majorver 0.6.4.1
%undefine minorver
-%define fedorarel 2
+%define fedorarel 3
%define rel %{?minorver:0.}%{fedorarel}%{?minorver:.%minorver}
@@ -19,8 +19,15 @@ Group: Applications/Productivity
License: GPLv2+
URL: http://alexandria.rubyforge.org/
Source0: http://rubyforge.org/frs/download.php/%{repoid}/%{name}-%{version}%{?minorver}.tar.gz
-# Ref: upstream bug 24568
-#Patch0: alexandria-0.6.4-bookentry-after-sorting.patch
+# Use 2 arguments format for bindtextdomain() instead of
+# deprecated 4 arguments format
+# ref: alexandria-Bugs-24882 alexandria-Bugs-24882
+Patch0: alexandria-0.6.4.1-use-2args-bindtextdomain.patch
+# Workaround for issue with right click on left pane
+# ref: alexandria-Bugs-25021
+Patch1: alexandria-0.6.4.1-right-click-left-pane.patch
+# And try more fix
+Patch2: alexandria-0.6.4.1-right-click-left-pane-morefix.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
@@ -70,15 +77,13 @@ Alexandria is a GNOME application to help you manage your book collection.
%prep
%setup -q -n %{name}-%{majorver}%{?minorver}
-#%%patch0 -p0 -b .up24568
+%patch0 -p0 -b .up24882
+%patch1 -p0 -b .up25021
+%patch2 -p0 -b .moretry
%build
rake build
-# ruby(gettext) >= 2.0.0 no longer accepts 4 arguments for
-# bindtextdomain()
-find . -name \*.rb | xargs \
- %{__sed} -i.bind -e '/bindtextdomain/s|(\([^,][^,]*\), nil, nil, \([^,][^,]*\))|(\1, :charset => \2)|'
%install
%{__rm} -rf $RPM_BUILD_ROOT
@@ -196,8 +201,13 @@ exit 0
%{_datadir}/icons/hicolor/*/apps/%{name}.*
%changelog
+* Mon Apr 6 2009 Mamoru Tasaka - 0.6.4.1-3
+- Workaround for strange behavior with right click on left pane
+ (alexandria-Bugs-25021)
+
* Thu Mar 26 2009 Mamoru Tasaka - 0.6.4.1-2
- Fix arguments of bindtextdomain() for ruby(gettext) 2.0.0
+ (alexandria-Bugs-24882)
* Mon Mar 16 2009 Mamoru Tasaka - 0.6.4.1-1
- 0.6.4.1 (fixing upstream bug 24568)