Add version with patches for gnome3 compatibility (bug #391989) from the gnome overla...
authorAlexandre Rostovtsev <tetromino@gentoo.org>
Sat, 26 Nov 2011 18:11:31 +0000 (18:11 +0000)
committerAlexandre Rostovtsev <tetromino@gentoo.org>
Sat, 26 Nov 2011 18:11:31 +0000 (18:11 +0000)
Package-Manager: portage-2.2.0_alpha77/cvs/Linux x86_64

x11-misc/alacarte/ChangeLog
x11-misc/alacarte/Manifest
x11-misc/alacarte/alacarte-0.13.2-r50.ebuild [new file with mode: 0644]
x11-misc/alacarte/files/alacarte-0.13.2-selection_browse.patch [new file with mode: 0644]
x11-misc/alacarte/files/alacarte-0.13.2-settings_menu.patch [new file with mode: 0644]

index c7d9044aa7bb488deef7813040561068906c2b40..78b04e691100a24d6ebc71ed11c334a9b92ff254 100644 (file)
@@ -1,6 +1,15 @@
 # ChangeLog for x11-misc/alacarte
 # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-misc/alacarte/ChangeLog,v 1.109 2011/10/19 22:50:54 tetromino Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-misc/alacarte/ChangeLog,v 1.110 2011/11/26 18:11:31 tetromino Exp $
+
+*alacarte-0.13.2-r50 (26 Nov 2011)
+
+  26 Nov 2011; Alexandre Rostovtsev <tetromino@gentoo.org>
+  +alacarte-0.13.2-r50.ebuild, +files/alacarte-0.13.2-selection_browse.patch,
+  +files/alacarte-0.13.2-settings_menu.patch:
+  Add version with patches for gnome3 compatibility (bug #391989) from the
+  gnome overlay; it's -r50 to provide some room in case the gnome2 version of
+  alacarte will need to be revbumped in the future.
 
   19 Oct 2011; Alexandre Rostovtsev <tetromino@gentoo.org>
   alacarte-0.12.4.ebuild, alacarte-0.13.2.ebuild:
index ec0dce11dab885e3f7729daad694c06bb006a215..312d2d8964933384a7d1957cbf10f0e24d34c768 100644 (file)
@@ -2,16 +2,19 @@
 Hash: SHA256
 
 AUX alacarte-0.11.5-python-2.6.patch 448 RMD160 db11ef6e261fa0b72af5eeb02a810834288898fb SHA1 e7c0dfed53e4ef4ce06342dea5c8b675b516a703 SHA256 ea7a0b5962de081766809268ce226bd6b606e15d76110b32157af6f3a0c1affa
+AUX alacarte-0.13.2-selection_browse.patch 1066 RMD160 7bd0a5ffc720932d2547b54fd5ba49948b122a08 SHA1 8a208340c60c5ae2cd4679f1182a1f84b015a298 SHA256 f575383f14baa5a4bef875c214ace7eb01aacbc21bea6d7a189ecc273d61cc77
+AUX alacarte-0.13.2-settings_menu.patch 4766 RMD160 c55d170ded2b88182b6efc60606dcec1cf6c007d SHA1 78e69196da2e7b37c9a4d0d9c940187ce27d7ffd SHA256 64610f00ed9f0f78c28d6cadbb00e59ca5dc18e1675a8011141199bcecf33deb
 DIST alacarte-0.12.4.tar.bz2 189318 RMD160 e0bbef89f1603c2de2ed60d6de087c3407f06040 SHA1 a44b3c3bba625c570d3ef7f451f912e537fccedb SHA256 f5bccd47d96b22ee73cf537d86bb90cb7b7e0f70ac68253fe512540e5bf64823
 DIST alacarte-0.13.2.tar.bz2 193746 RMD160 97924d34e9d460267b6118a01488b635551a8aaa SHA1 6eb6a0f308be0da84ead38fbfae0b247743f6038 SHA256 9fa36e5181b1eea947b184cb0f79d796b25cc5a5f122819a1ac2ff01bc7ee4ed
 EBUILD alacarte-0.12.4.ebuild 1132 RMD160 dca823ad2dd758e19747350e0a28e5b1ed104c5e SHA1 0813d54e1da85e340d56dc4bcd75e9dff845d631 SHA256 e7643fb28eef99819d7463498d7828199a10f61a32e9a89106154563e3ce6c17
+EBUILD alacarte-0.13.2-r50.ebuild 1939 RMD160 031d6c7e6abf19241d57379578ce0f7225205ea7 SHA1 6925954a0a23c89f2a398d390f74e414bbeb55b2 SHA256 ac7911f1af68202dd67280a8b1c31572804e330cce9fc924cceb4f9b8020d345
 EBUILD alacarte-0.13.2.ebuild 1552 RMD160 e3877a17ae5e351f2015057aaeba40094ca0dc7e SHA1 e8c41171fa688062afff0d00c1f8c09113773670 SHA256 5ac1737ddb3065444a8c07b40487de65ff68ce44059799f839d72a90dcf3c8dc
-MISC ChangeLog 13664 RMD160 813af6daf54c820108eff1866a9932409ed74a88 SHA1 b832b3a96fd58547a8cf28ba1737c65cf38a0c8c SHA256 20533f6fe6029f603d7a8182afa0cdf5863e9469b967fc4924866091f7bfe19b
+MISC ChangeLog 14089 RMD160 2593d48bd11c118b610a0c65f32dd996cb1dbc19 SHA1 1abb77f20cf63a6d71065013d461f83a5f0b93d4 SHA256 96a2116d299305ed69bf3e156fe19085ec812f1566671ac3539d9f0d1f020036
 MISC metadata.xml 158 RMD160 c0e2bae8e91bb6be8922bac5e4f597302e06587e SHA1 38f78e9790bcd4382b4a49aa226aa6dda1d3a3d7 SHA256 3a7dbca0fdc557de69783e0663e2d76ddab129ea8a19b2d0ef6d3e5d1b947ce1
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.18 (GNU/Linux)
 
-iF4EAREIAAYFAk6fVFQACgkQdjK8w9WeBnC4pQD8CJbQuSEnEADyA9SuZ3zcX8/L
-FKC/IyitZbSkorCpnxwA/0asJfOkywTXa5cmFKIj2+l474euiC2qXSRVBbRQNop4
-=bo7O
+iF4EAREIAAYFAk7RK9gACgkQdjK8w9WeBnCIoAD/Wc0LrJe3uUsju2Q3ej64rEB+
+xjDCF+Ox9TfhSzMtApwA+gPTDoA5aCa9XokacVVHxInr7UI+omVCtDzdLvmcoN71
+=6DqI
 -----END PGP SIGNATURE-----
diff --git a/x11-misc/alacarte/alacarte-0.13.2-r50.ebuild b/x11-misc/alacarte/alacarte-0.13.2-r50.ebuild
new file mode 100644 (file)
index 0000000..133a152
--- /dev/null
@@ -0,0 +1,87 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-misc/alacarte/alacarte-0.13.2-r50.ebuild,v 1.1 2011/11/26 18:11:31 tetromino Exp $
+
+EAPI="3"
+GCONF_DEBUG="no"
+PYTHON_DEPEND="2:2.4"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.*"
+
+inherit eutils gnome2 python
+
+DESCRIPTION="Simple GNOME menu editor"
+HOMEPAGE="http://live.gnome.org/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
+IUSE=""
+
+# gnome-menus-2.91.6 is the earliest version that dropped settings.menu
+# slot 0 of gnome-menus is required due to an API break in slot 3
+common_depends="
+       >=dev-python/pygobject-2.15.1:2
+       >=dev-python/pygtk-2.13:2
+       >=gnome-base/gnome-menus-2.91.6:0[python]"
+
+RDEPEND="${common_depends}
+       >=gnome-base/gnome-panel-2.16"
+
+DEPEND="${common_depends}
+       sys-devel/gettext
+       >=dev-util/intltool-0.40.0
+       >=dev-util/pkgconfig-0.19"
+
+pkg_setup() {
+       DOCS="AUTHORS ChangeLog NEWS README"
+       python_pkg_setup
+}
+
+src_prepare() {
+       # https://bugzilla.gnome.org/show_bug.cgi?id=647382 and 655113
+       epatch "${FILESDIR}/${PN}-0.13.2-settings_menu.patch"
+
+       # https://bugzilla.gnome.org/show_bug.cgi?id=652454
+       epatch "${FILESDIR}/${PN}-0.13.2-selection_browse.patch"
+
+       gnome2_src_prepare
+
+       # disable pyc compiling
+       mv py-compile py-compile.orig
+       ln -s $(type -P true) py-compile
+
+       python_copy_sources
+}
+
+src_configure() {
+       configure() {
+               G2CONF="${G2CONF} PYTHON=$(PYTHON -a)"
+               gnome2_src_configure
+       }
+       python_execute_function -s configure
+}
+
+src_compile() {
+       python_execute_function -s gnome2_src_compile
+}
+
+src_test() {
+       python_execute_function -s -d
+}
+
+src_install() {
+       python_execute_function -s gnome2_src_install
+       python_clean_installation_image
+       python_convert_shebangs -r 2 "${ED}"
+}
+
+pkg_postinst() {
+       gnome2_pkg_postinst
+       python_mod_optimize Alacarte
+}
+
+pkg_postrm() {
+       gnome2_pkg_postrm
+       python_mod_cleanup Alacarte
+}
diff --git a/x11-misc/alacarte/files/alacarte-0.13.2-selection_browse.patch b/x11-misc/alacarte/files/alacarte-0.13.2-selection_browse.patch
new file mode 100644 (file)
index 0000000..4567d8a
--- /dev/null
@@ -0,0 +1,29 @@
+From c3271e552b5071d5663a57a6f8d185258a47a704 Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gmail.com>
+Date: Sat, 6 Aug 2011 19:16:54 -0400
+Subject: [PATCH] Use gtk.SELECTION_BROWSE mode for menu_tree (bgo 652454)
+
+Use gtk.SELECTION_BROWSE selection mode for menu_tree to ensure that
+one row is always selected and valid iters are returned from the
+selection's get_selected().
+
+Addresses https://bugzilla.gnome.org/show_bug.cgi?id=652454
+---
+ Alacarte/MainWindow.py |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/Alacarte/MainWindow.py b/Alacarte/MainWindow.py
+index 260efe5..c2b4780 100644
+--- a/Alacarte/MainWindow.py
++++ b/Alacarte/MainWindow.py
+@@ -174,6 +174,7 @@ class MainWindow:
+               menus.append_column(column)
+               menus.enable_model_drag_source(gtk.gdk.BUTTON1_MASK, self.dnd_menus, gtk.gdk.ACTION_COPY)
+               menus.enable_model_drag_dest(self.dnd_both, gtk.gdk.ACTION_PRIVATE)
++              menus.get_selection().set_mode(gtk.SELECTION_BROWSE)
+ 
+       def setupItemTree(self):
+               items = self.tree.get_object('item_tree')
+-- 
+1.7.6
+
diff --git a/x11-misc/alacarte/files/alacarte-0.13.2-settings_menu.patch b/x11-misc/alacarte/files/alacarte-0.13.2-settings_menu.patch
new file mode 100644 (file)
index 0000000..c83b09a
--- /dev/null
@@ -0,0 +1,118 @@
+Index: alacarte-0.13.2/Alacarte/MainWindow.py
+===================================================================
+--- alacarte-0.13.2.orig/Alacarte/MainWindow.py        2011-04-16 19:05:15.086723615 +0200
++++ alacarte-0.13.2/Alacarte/MainWindow.py     2011-04-16 19:05:19.482745099 +0200
+@@ -72,7 +72,6 @@ class MainWindow:
+       def run(self):
+               self.loadMenus()
+               self.editor.applications.tree.add_monitor(self.menuChanged, None)
+-              self.editor.settings.tree.add_monitor(self.menuChanged, None)
+               self.tree.get_object('mainwindow').show_all()
+               gtk.main()
+ 
+Index: alacarte-0.13.2/Alacarte/MenuEditor.py
+===================================================================
+--- alacarte-0.13.2.orig/Alacarte/MenuEditor.py        2011-04-16 19:05:39.102841022 +0200
++++ alacarte-0.13.2/Alacarte/MenuEditor.py     2011-04-16 19:07:26.783367453 +0200
+@@ -48,22 +48,10 @@ class MenuEditor:
+                       self.applications.dom = xml.dom.minidom.parse(self.applications.path)
+               self.__remove_whilespace_nodes(self.applications.dom)
+ 
+-              self.settings = Menu()   
+-              self.settings.tree = gmenu.lookup_tree('settings.menu', gmenu.FLAGS_SHOW_EMPTY|gmenu.FLAGS_INCLUDE_EXCLUDED|gmenu.FLAGS_INCLUDE_NODISPLAY|gmenu.FLAGS_SHOW_ALL_SEPARATORS)
+-              self.settings.visible_tree = gmenu.lookup_tree('settings.menu')          
+-              self.settings.tree.sort_key = gmenu.SORT_DISPLAY_NAME
+-              self.settings.visible_tree.sort_key = gmenu.SORT_DISPLAY_NAME
+-              self.settings.path = os.path.join(util.getUserMenuPath(), self.settings.tree.get_menu_file())    
+-              if not os.path.isfile(self.settings.path):       
+-                      self.settings.dom = xml.dom.minidom.parseString(util.getUserMenuXml(self.settings.tree))         
+-              else:    
+-                      self.settings.dom = xml.dom.minidom.parse(self.settings.path)    
+-              self.__remove_whilespace_nodes(self.settings.dom)
+-
+               self.save(True)
+ 
+       def save(self, from_loading=False):
+-              for menu in ('applications', 'settings'):
++              for menu in ('applications',):
+                       fd = open(getattr(self, menu).path, 'w')
+                       fd.write(re.sub("\n[\s]*([^\n<]*)\n[\s]*</", "\\1</", getattr(self, menu).dom.toprettyxml().replace('<?xml version="1.0" ?>\n', '')))
+                       fd.close()
+@@ -85,7 +73,7 @@ class MenuEditor:
+                               os.unlink(file_path)
+ 
+       def revert(self):
+-              for name in ('applications', 'settings'):
++              for name in ('applications',):
+                       menu = getattr(self, name)
+                       self.revertTree(menu.tree.root)
+                       path = os.path.join(util.getUserMenuPath(), menu.tree.get_menu_file())
+@@ -126,7 +114,7 @@ class MenuEditor:
+                       os.unlink(file_path)
+                       redo.append(redo_path)
+               #reload DOM to make changes stick
+-              for name in ('applications', 'settings'):
++              for name in ('applications',):
+                       menu = getattr(self, name)
+                       if not os.path.isfile(menu.path):
+                               menu.dom = xml.dom.minidom.parseString(util.getUserMenuXml(menu.tree))
+@@ -150,7 +138,7 @@ class MenuEditor:
+                       os.unlink(file_path)
+                       undo.append(undo_path)
+               #reload DOM to make changes stick
+-              for name in ('applications', 'settings'):
++              for name in ('applications',):
+                       menu = getattr(self, name)
+                       if not os.path.isfile(menu.path):
+                               menu.dom = xml.dom.minidom.parseString(util.getUserMenuXml(menu.tree))
+@@ -162,7 +150,6 @@ class MenuEditor:
+       def getMenus(self, parent=None):
+               if parent == None:
+                       yield self.applications.tree.root
+-                      yield self.settings.tree.root
+               else:
+                       for menu in parent.get_contents():
+                               if menu.get_type() == gmenu.TYPE_DIRECTORY:
+@@ -429,31 +416,13 @@ class MenuEditor:
+                       self.__undo[-1].append(undo_path)
+ 
+       def __getMenu(self, item):
+-              root = item.get_parent()
+-              if not root:
+-                      #already at the top
+-                      root = item
+-              else:
+-                      while True:
+-                              if root.get_parent():
+-                                      root = root.get_parent()
+-                              else:
+-                                      break
+-              if root.menu_id == self.applications.tree.root.menu_id:
+-                      return self.applications
+-              return self.settings
++              return self.applications
+ 
+       def __findMenu(self, menu_id, parent=None):
+               if parent == None:
+-                      menu = self.__findMenu(menu_id, self.applications.tree.root)
+-                      if menu != None:
+-                              return menu
+-                      else:
+-                              return self.__findMenu(menu_id, self.settings.tree.root)
++                      return self.__findMenu(menu_id, self.applications.tree.root)
+               if menu_id == self.applications.tree.root.menu_id:
+                       return self.applications.tree.root
+-              if menu_id == self.settings.tree.root.menu_id:
+-                      return self.settings.tree.root
+               for item in parent.get_contents():
+                       if item.get_type() == gmenu.TYPE_DIRECTORY:
+                               if item.menu_id == menu_id:
+@@ -468,8 +437,6 @@ class MenuEditor:
+               menu = self.__getMenu(item)
+               if menu == self.applications:
+                       root = self.applications.visible_tree.root
+-              elif menu == self.settings:
+-                      root = self.settings.visible_tree.root
+               if item.get_type() == gmenu.TYPE_DIRECTORY:
+                       if self.__findMenu(item.menu_id, root) == None:
+                               return False