diff options
-rw-r--r-- | .SRCINFO | 29 | ||||
-rw-r--r-- | PKGBUILD | 34 | ||||
-rw-r--r-- | fix-crash.patch | 167 | ||||
-rw-r--r-- | fix-desktop-path.patch | 12 | ||||
-rw-r--r-- | mate-menu.install | 11 | ||||
-rw-r--r-- | optional-lsb_release.patch | 21 |
6 files changed, 274 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..bf163c50e81f --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,29 @@ +pkgbase = mate-menu + pkgdesc = Advanced menu for MATE Panel, a fork of MintMenu + pkgver = 5.6.5a + pkgrel = 1 + url = https://bitbucket.org/ubuntu-mate/mate-menu + install = mate-menu.install + arch = any + license = GPL + makedepends = git + makedepends = python2-distutils-extra + makedepends = python2-setuptools + depends = mate-panel + depends = python2-configobj + depends = python2-gobject + depends = python2-pyinotify + depends = python2-xdg + depends = python2-xlib + depends = xdg-utils + source = mate-menu-5.6.5a::git+https://bitbucket.org/ubuntu-mate/mate-menu.git#tag=5.6.5a + source = fix-crash.patch + source = fix-desktop-path.patch + source = optional-lsb_release.patch + md5sums = SKIP + md5sums = 6b6623895d02b739d0d6fb4413f0b6ba + md5sums = 3aeb919106f0f6476b234e4ce6990a06 + md5sums = 92c321a71c6f5ae61695d61eb5f89b50 + +pkgname = mate-menu + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..c86f93db76a3 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,34 @@ +# $Id$ +# Maintainer: Balló György <ballogyor+arch at gmail dot com> + +pkgname=mate-menu +pkgver=5.6.5a +pkgrel=1 +pkgdesc="Advanced menu for MATE Panel, a fork of MintMenu" +arch=('any') +url="https://bitbucket.org/ubuntu-mate/mate-menu" +license=('GPL') +depends=('mate-panel' 'python2-configobj' 'python2-gobject' 'python2-pyinotify' 'python2-xdg' 'python2-xlib' 'xdg-utils') +makedepends=('git' 'python2-distutils-extra' 'python2-setuptools') +install=$pkgname.install +source=("$pkgname-$pkgver::git+https://bitbucket.org/ubuntu-mate/$pkgname.git#tag=$pkgver" + fix-crash.patch + fix-desktop-path.patch + optional-lsb_release.patch) +md5sums=('SKIP' + '6b6623895d02b739d0d6fb4413f0b6ba' + '3aeb919106f0f6476b234e4ce6990a06' + '92c321a71c6f5ae61695d61eb5f89b50') + +prepare() { + cd $pkgname-$pkgver + patch -Np1 -i ../fix-crash.patch + patch -Np1 -i ../fix-desktop-path.patch + patch -Np1 -i ../optional-lsb_release.patch + sed -i 's@^#!.*python$@#!/usr/bin/python2@' lib/*.py +} + +package() { + cd $pkgname-$pkgver + python2 setup.py install --root="$pkgdir" --optimize=1 +} diff --git a/fix-crash.patch b/fix-crash.patch new file mode 100644 index 000000000000..6179ac54d5d9 --- /dev/null +++ b/fix-crash.patch @@ -0,0 +1,167 @@ +diff -Naur mate-menu.orig/lib/mate-menu.py mate-menu/lib/mate-menu.py +--- mate-menu.orig/lib/mate-menu.py 2015-11-07 02:12:28.507610662 +0100 ++++ mate-menu/lib/mate-menu.py 2015-11-07 02:11:46.179765723 +0100 +@@ -747,6 +747,7 @@ + x = c_int() + y = c_int() + # Get the dimensions/position of the widgetToAlignWith ++ gdk.gdk_window_get_origin.argtypes = [c_void_p, c_void_p, c_void_p] + gdk.gdk_window_get_origin(hash(self.applet.window), byref(x), byref(y)) + entryX = x.value + entryY = y.value +diff -Naur mate-menu.orig/mate_menu/easybuttons.py mate-menu/mate_menu/easybuttons.py +--- mate-menu.orig/mate_menu/easybuttons.py 2015-11-07 02:12:28.370940187 +0100 ++++ mate-menu/mate_menu/easybuttons.py 2015-11-07 02:11:46.183099149 +0100 +@@ -297,12 +297,14 @@ + + array = TargetEntry * 2 + targets = array(( "text/plain", 0, 100 ), ( "text/uri-list", 0, 101 )) ++ gtk.gtk_drag_source_set.argtypes = [c_void_p, c_ushort, c_void_p, c_int, c_ushort] + gtk.gtk_drag_source_set(hash(self), Gdk.ModifierType.BUTTON1_MASK, targets, 2, Gdk.DragAction.COPY) + + icon = self.getIcon( Gtk.IconSize.DND ) + if icon: + iconName, s = icon.get_icon_name() + c = c_char_p(iconName.decode('utf-8', 'ignore').encode('ascii', 'ignore')) ++ gtk.gtk_drag_source_set_icon_name.argtypes = [c_void_p, c_char_p] + gtk.gtk_drag_source_set_icon_name( hash(self), c) + + self.connectSelf( "focus-in-event", self.onFocusIn ) +@@ -414,6 +416,7 @@ + if icon: + iconName, size = icon.get_icon_name() + c = c_char_p(iconName.encode('ascii', 'ignore')) ++ gtk.gtk_drag_source_set_icon_name.argtypes = [c_void_p, c_char_p] + gtk.gtk_drag_source_set_icon_name( hash(self), c) + + def startupFileChanged( self, *args ): +diff -Naur mate-menu.orig/mate_menu/keybinding.py mate-menu/mate_menu/keybinding.py +--- mate-menu.orig/mate_menu/keybinding.py 2015-11-07 02:12:28.370940187 +0100 ++++ mate-menu/mate_menu/keybinding.py 2015-11-07 02:11:46.179765723 +0100 +@@ -57,6 +57,7 @@ + threading.Thread.__init__ (self) + self.setDaemon (True) + ++ gdk.gdk_keymap_get_default.restype = c_void_p + self.keymap = capi.get_widget (gdk.gdk_keymap_get_default()) + self.display = Display() + self.screen = self.display.screen() +@@ -92,6 +93,7 @@ + count = c_int() + array = (KeymapKey * 10)() + keys = cast(array, POINTER(KeymapKey)) ++ gdk.gdk_keymap_get_entries_for_keyval.argtypes = [c_void_p, c_uint, c_void_p, c_void_p] + gdk.gdk_keymap_get_entries_for_keyval(hash(self.keymap), keyval, byref(keys), byref(count)) + return keys[0].keycode + +@@ -135,6 +137,7 @@ + if window is None: + self.window = self.screen.root + else: ++ gdk.gdk_x11_drawable_get_xid.argtypes = [c_void_p] + self.window = self.display.create_resource_object("window", gdk.gdk_x11_drawable_get_xid(hash(window))) + self.grab(self.keytext) + +diff -Naur mate-menu.orig/mate_menu/plugins/applications.py mate-menu/mate_menu/plugins/applications.py +--- mate-menu.orig/mate_menu/plugins/applications.py 2015-11-07 02:12:28.374273614 +0100 ++++ mate-menu/mate_menu/plugins/applications.py 2015-11-07 02:11:53.753309742 +0100 +@@ -279,6 +279,7 @@ + + self.favoritesBox.connect( "drag-data-received", self.ReceiveCallback ) + ++ gtk.gtk_drag_dest_set.argtypes = [c_void_p, c_ushort, c_void_p, c_int, c_ushort] + gtk.gtk_drag_dest_set ( hash(self.favoritesBox), Gtk.DestDefaults.MOTION | Gtk.DestDefaults.HIGHLIGHT | Gtk.DestDefaults.DROP, self.toButton, 2, Gdk.DragAction.COPY ) + self.showFavoritesButton.connect( "drag-data-received", self.ReceiveCallback ) + gtk.gtk_drag_dest_set ( hash(self.showFavoritesButton), Gtk.DestDefaults.MOTION | Gtk.DestDefaults.HIGHLIGHT | Gtk.DestDefaults.DROP, self.toButton, 2, Gdk.DragAction.COPY ) +@@ -583,6 +584,7 @@ + # of the existing text, that's the most likely candidate anyhow + self.searchEntry.grab_focus() + if self.rememberFilter or not clear: ++ gtk.gtk_editable_set_position.argtypes = [c_void_p, c_int] + gtk.gtk_editable_set_position(hash(self.searchEntry), -1) + else: + self.searchEntry.set_text("") +@@ -738,6 +740,7 @@ + def keyPress( self, widget, event ): + if event.string.strip() != "" or event.keyval == Gdk.KEY_BackSpace: + self.searchEntry.grab_focus() ++ gtk.gtk_editable_set_position.argtypes = [c_void_p, c_int] + gtk.gtk_editable_set_position(hash(self.searchEntry), -1) + self.searchEntry.event( event ) + return True +@@ -802,6 +805,7 @@ + + mTree.show_all() + self.mateMenuWin.stopHiding() ++ gtk.gtk_menu_popup.argtypes = [c_void_p, c_void_p, c_void_p, c_void_p, c_void_p, c_uint, c_uint] + gtk.gtk_menu_popup(hash(mTree), None, None, None, None, ev.button, ev.time) + else: + mTree = Gtk.Menu() +@@ -821,6 +825,7 @@ + insertSpaceMenuItem.connect( "activate", self.onFavoritesInsertSpace, widget, insertBefore ) + insertSeparatorMenuItem.connect( "activate", self.onFavoritesInsertSeparator, widget, insertBefore ) + self.mateMenuWin.stopHiding() ++ gtk.gtk_menu_popup.argtypes = [c_void_p, c_void_p, c_void_p, c_void_p, c_void_p, c_uint, c_uint] + gtk.gtk_menu_popup(hash(mTree), None, None, None, None, ev.button, ev.time) + + def menuPopup( self, widget, event ): +@@ -879,6 +884,7 @@ + startupMenuItem.connect( "toggled", self.onAddToStartup, widget ) + + self.mateMenuWin.stopHiding() ++ gtk.gtk_menu_popup.argtypes = [c_void_p, c_void_p, c_void_p, c_void_p, c_void_p, c_uint, c_uint] + gtk.gtk_menu_popup(hash(mTree), None, None, None, None, event.button, event.time) + + +@@ -919,6 +925,7 @@ + menu.show_all() + + self.mateMenuWin.stopHiding() ++ gtk.gtk_menu_popup.argtypes = [c_void_p, c_void_p, c_void_p, c_void_p, c_void_p, c_uint, c_uint] + gtk.gtk_menu_popup(hash(menu), None, None, None, None, event.button, event.time) + + #menu.attach_to_widget(self.searchButton, None) +@@ -1207,8 +1214,10 @@ + self.favorites.append( favButton ) + self.favoritesPositionOnGrid( favButton ) + favButton.connect( "drag-data-received", self.onFavButtonDragReorder ) ++ gtk.gtk_drag_dest_set.argtypes = [c_void_p, c_ushort, c_void_p, c_int, c_ushort] + gtk.gtk_drag_dest_set( hash(favButton), Gtk.DestDefaults.MOTION | Gtk.DestDefaults.HIGHLIGHT | Gtk.DestDefaults.DROP, self.fromFav, 2, Gdk.DragAction.COPY ) + favButton.connect( "drag-data-get", self.onFavButtonDragReorderGet ) ++ gtk.gtk_drag_source_set.argtypes = [c_void_p, c_ushort, c_void_p, c_int, c_ushort] + gtk.gtk_drag_source_set( hash(favButton), Gdk.ModifierType.BUTTON1_MASK, self.toFav, 3, Gdk.DragAction.COPY ) + position += 1 + +@@ -1287,8 +1296,10 @@ + self.favoritesPositionOnGrid( favButton ) + + favButton.connect( "drag-data-received", self.onFavButtonDragReorder ) ++ gtk.gtk_drag_dest_set.argtypes = [c_void_p, c_ushort, c_void_p, c_int, c_ushort] + gtk.gtk_drag_dest_set( hash(favButton), Gtk.DestDefaults.MOTION | Gtk.DestDefaults.HIGHLIGHT | Gtk.DestDefaults.DROP, self.toFav, 3, Gdk.DragAction.COPY ) + favButton.connect( "drag-data-get", self.onFavButtonDragReorderGet ) ++ gtk.gtk_drag_source_set.argtypes = [c_void_p, c_ushort, c_void_p, c_int, c_ushort] + gtk.gtk_drag_source_set ( hash(favButton), Gdk.ModifierType.BUTTON1_MASK, self.toFav, 3, Gdk.DragAction.COPY ) + + if position >= 0: +diff -Naur mate-menu.orig/mate_menu/plugins/places.py mate-menu/mate_menu/plugins/places.py +--- mate-menu.orig/mate_menu/plugins/places.py 2015-11-07 02:12:28.374273614 +0100 ++++ mate-menu/mate_menu/plugins/places.py 2015-11-07 02:11:55.766699096 +0100 +@@ -274,6 +274,7 @@ + trashMenu.show_all() + emptyTrashMenuItem.connect ( "activate", self.emptyTrash, widget ) + self.mateMenuWin.stopHiding() ++ gtk.gtk_menu_popup.argtypes = [c_void_p, c_void_p, c_void_p, c_void_p, c_void_p, c_uint, c_uint] + gtk.gtk_menu_popup(hash(trashMenu), None, None, None, None, 3, 0) + + def emptyTrash( self, menu, widget): +diff -Naur mate-menu.orig/mate_menu/pointerMonitor.py mate-menu/mate_menu/pointerMonitor.py +--- mate-menu.orig/mate_menu/pointerMonitor.py 2015-11-07 02:12:28.374273614 +0100 ++++ mate-menu/mate_menu/pointerMonitor.py 2015-11-07 02:11:46.183099149 +0100 +@@ -46,6 +46,7 @@ + + # Receives GDK windows + def addWindowToMonitor(self, window): ++ gdk.gdk_x11_drawable_get_xid.argtypes = [c_void_p] + xWindow = self.display.create_resource_object("window", gdk.gdk_x11_drawable_get_xid(hash(window))) + self.windows.append(xWindow) + diff --git a/fix-desktop-path.patch b/fix-desktop-path.patch new file mode 100644 index 000000000000..3ae1d74ba79d --- /dev/null +++ b/fix-desktop-path.patch @@ -0,0 +1,12 @@ +diff -Naur mate-menu-5.6.5a.orig/mate_menu/plugins/places.py mate-menu-5.6.5a/mate_menu/plugins/places.py +--- mate-menu-5.6.5a.orig/mate_menu/plugins/places.py 2015-11-07 08:22:02.506887000 +0100 ++++ mate-menu-5.6.5a/mate_menu/plugins/places.py 2015-11-07 08:38:02.673847204 +0100 +@@ -190,7 +190,7 @@ + try: + from configobj import ConfigObj + config = ConfigObj(home + "/.config/user-dirs.dirs") +- tmpdesktopDir = config['XDG_DESKTOP_DIR'] ++ tmpdesktopDir = config['XDG_DESKTOP_DIR'].replace("$HOME", home) + if os.path.exists(tmpdesktopDir): + desktopDir = tmpdesktopDir + except Exception, detail: diff --git a/mate-menu.install b/mate-menu.install new file mode 100644 index 000000000000..326aa98a2f02 --- /dev/null +++ b/mate-menu.install @@ -0,0 +1,11 @@ +post_install() { + glib-compile-schemas usr/share/glib-2.0/schemas +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/optional-lsb_release.patch b/optional-lsb_release.patch new file mode 100644 index 000000000000..d8841c56ddef --- /dev/null +++ b/optional-lsb_release.patch @@ -0,0 +1,21 @@ +diff -Naur mate-menu.orig/lib/mate-menu.py mate-menu/lib/mate-menu.py +--- mate-menu.orig/lib/mate-menu.py 2015-11-07 05:57:34.444720000 +0100 ++++ mate-menu/lib/mate-menu.py 2015-11-07 06:04:03.221247132 +0100 +@@ -563,11 +563,12 @@ + def createPanelButton( self ): + self.button_icon = Gtk.Image.new_from_file( self.buttonIcon ) + self.systemlabel = Gtk.Label(label= self.buttonText ) +- process = subprocess.Popen(['lsb_release', '-d'], stdout=subprocess.PIPE) +- out, err = process.communicate() +- tooltip = out.replace('Description:', '').strip() +- self.systemlabel.set_tooltip_text(tooltip) +- self.button_icon.set_tooltip_text(tooltip) ++ if os.path.exists("/usr/bin/lsb_release"): ++ process = subprocess.Popen(['lsb_release', '-d'], stdout=subprocess.PIPE) ++ out, err = process.communicate() ++ tooltip = out.replace('Description:', '').strip() ++ self.systemlabel.set_tooltip_text(tooltip) ++ self.button_icon.set_tooltip_text(tooltip) + if self.applet.get_orient() == MatePanelApplet.AppletOrient.UP or self.applet.get_orient() == MatePanelApplet.AppletOrient.DOWN: + self.button_box = Gtk.HBox() + self.button_box.pack_start( self.button_icon, False, False, 0 ) |