Fix publishing issues in multiple components, mostly whitespace issues
| | |
| | | +++ evas_generic_loaders-1.12.0/configure.ac 2015-03-24 18:16:40.754839975 +0300 |
| | | @@ -73,13 +73,23 @@ |
| | | [have_poppler="no"]) |
| | | |
| | | |
| | | if test "x${have_poppler}" = "xno" ; then |
| | | - PKG_CHECK_EXISTS([poppler >= 0.20], |
| | | + PKG_CHECK_EXISTS([poppler >= 0.20 poppler < 0.30 ], |
| | |
| | | + ], |
| | | + [have_poppler="no"]) |
| | | fi |
| | | |
| | | |
| | | if test "x${have_poppler}" = "xyes" ; then |
| | | --- evas_generic_loaders-1.12.0/config.h.in 2014-11-10 14:27:20.000000000 +0300 |
| | | +++ evas_generic_loaders-1.12.0/config.h.in 2015-03-24 18:14:12.461601941 +0300 |
| | | @@ -18,6 +18,9 @@ |
| | | /* Have poppler 0.20 */ |
| | | #undef HAVE_POPPLER_020 |
| | | |
| | | |
| | | +/* Have poppler 0.30 */ |
| | | +#undef HAVE_POPPLER_030 |
| | | + |
| | | /* Have shm_open() call */ |
| | | #undef HAVE_SHM_OPEN |
| | | |
| | | |
| | | --- evas_generic_loaders-1.12.0/src/bin/pdf/main.cpp.~1~ 2013-12-11 17:56:58.000000000 +0400 |
| | | +++ evas_generic_loaders-1.12.0/src/bin/pdf/main.cpp 2015-03-24 18:21:22.309224072 +0300 |
| | | @@ -62,10 +62,12 @@ |
| | | if (!eina_init()) |
| | | goto del_global_param; |
| | | |
| | | |
| | | +#ifndef HAVE_POPPLER_030 |
| | | if (globalParams->getAntialias()) |
| | | globalParams->setAntialias((char *)"yes"); |
| | | if (globalParams->getVectorAntialias()) |
| | | globalParams->setVectorAntialias((char *)"yes"); |
| | | +#endif |
| | | |
| | | |
| | | pdfdoc = new PDFDoc(new GooString(file), NULL); |
| | | if (!pdfdoc) |
| | | @@ -161,7 +163,7 @@ |
| | | if (!output_dev) |
| | | return; |
| | | |
| | | |
| | | -#ifdef HAVE_POPPLER_020 |
| | | +#if defined (HAVE_POPPLER_020) || defined (HAVE_POPPLER_030) |
| | | output_dev->startDoc(pdfdoc); |
| | |
| | | output_dev->startDoc(pdfdoc->getXRef()); |
| | | @@ -170,7 +172,7 @@ |
| | | if (dpi <= 0.0) dpi = DEF_DPI; |
| | | |
| | | |
| | | |
| | | |
| | | -#ifdef HAVE_POPPLER_020 |
| | | +#if defined (HAVE_POPPLER_020) || defined (HAVE_POPPLER_030) |
| | | page->displaySlice(output_dev, dpi, dpi, |
| | | page->displaySlice(output_dev, dpi, dpi, |
| | | 0, false, false, |
| | | 0, 0, width, height, |
| | |
| | | #include <time.h> |
| | | #include <string.h> |
| | | +#include <stdio.h> |
| | | |
| | | |
| | | static void |
| | | gconf_locale_cache_add (GConfLocaleCache* cache, |
| | | @@ -189,7 +190,66 @@ |
| | | * Big mess o' cut-and-pasted code |
| | | */ |
| | | |
| | | |
| | | -/* --------------------------------------------------------------- */ |
| | | +static GHashTable *alias_table = NULL; |
| | | + |
| | |
| | | + } |
| | | + return lang; |
| | | +} |
| | | |
| | | |
| | | /* Mask for components of locale spec. The ordering here is from |
| | | * least significant to most significant |
| | | @@ -360,6 +420,8 @@ |
| | | category_memory[0]= '\0'; |
| | | category_memory[0]= '\0'; |
| | | category_memory++; |
| | | |
| | | |
| | | + cp = unalias_lang (cp); /* add locale alias support */ |
| | | + |
| | | if (strcmp (cp, "C") == 0) |
| | | c_locale_defined= TRUE; |
| | | |
| | |
| | | gchar* file; |
| | | gchar* retval; |
| | | + gchar* gconf_backend_dir; |
| | | |
| | | |
| | | g_return_val_if_fail(address != NULL, NULL); |
| | | |
| | | |
| | | @@ -181,7 +182,12 @@ |
| | | |
| | | |
| | | file = g_strconcat("gconfbackend-", back, NULL); |
| | | |
| | | |
| | | - retval = g_module_build_path(GCONF_BACKEND_DIR, file); |
| | | + gconf_backend_dir = g_getenv ("GCONF_BACKEND_DIR"); |
| | | + if (gconf_backend_dir == NULL) |
| | |
| | | + gconf_backend_dir = GCONF_BACKEND_DIR; |
| | | + } |
| | | + retval = g_module_build_path(gconf_backend_dir, file); |
| | | |
| | | |
| | | g_free(back); |
| | | |
| | |
| | | char *ior; |
| | | GError *error = NULL; |
| | | + const char *dbus_address = NULL; |
| | | |
| | | |
| | | /* if the bus isn't running and we don't want to start gconfd then |
| | | * we don't want to autolaunch the bus either, so bail early. |
| | | */ |
| | |
| | | @@ -2440,6 +2441,31 @@ |
| | | return NULL; |
| | | } |
| | | |
| | | |
| | | + if ( dbus_address != NULL ) { |
| | | + if (strncmp(dbus_address, "unix:path=", sizeof ("unix:path="))) { |
| | | + const char *start_addr = dbus_address + sizeof ("unix:path=") - 1; |
| | |
| | | + } |
| | | + |
| | | g_type_init (); |
| | | |
| | | |
| | | connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error); |
| | |
| | | +++ GConf-2.32.4/gconf/default.path.in 2015-01-05 20:49:50.174890995 +0300 |
| | | @@ -21,7 +21,8 @@ |
| | | xml:readwrite:$(HOME)/.gconf |
| | | |
| | | |
| | | # Location for system-wide settings that are set by the defaults mechanism |
| | | -xml:readonly:@sysgconfdir@/gconf.xml.system |
| | | +# We dont use this default mechanism on opensolaris |
| | | +# xml:readonly:@sysgconfdir@/gconf.xml.system |
| | | |
| | | |
| | | # To read in any defaults settings that the Sys Admin may have created |
| | | # prior to a desktop system upgrade. The SysAdmin can stick default values |
| | |
| | | +++ GConf-2.28.0/doc/gconf/Makefile.in 2010-01-12 15:49:45.537400278 +0000 |
| | | @@ -239,7 +239,7 @@ |
| | | MKDB_OPTIONS = --sgml-mode --output-format=xml |
| | | |
| | | |
| | | # Extra options to supply to gtkdoc-fixref |
| | | -FIXXREF_OPTIONS = --extra-dir=../glib/html |
| | | +FIXXREF_OPTIONS = --extra-dir=../glib/html --module=$(DOC_MODULE) |
| | | |
| | | |
| | | # Used for dependencies |
| | | HFILE_GLOB = $(top_srcdir)/gconf/*.h |
| | |
| | | + |
| | | +<!-- webeyes was replaced by deskbar-applet, transparently upgrade the user --> |
| | | +<oaf_server iid="OAFIID:GNOME_WebEyes" |
| | | + type="factory" |
| | | + type="factory" |
| | | + location="OAFIID:Deskbar_Applet_Factory"> |
| | | + |
| | | + <oaf_attribute name="repo_ids" type="stringv"> |
| | |
| | | -server_DATA = $(server_in_files:.server.in=.server) |
| | | +server_DATA = $(server_in_files:.server.in=.server) \ |
| | | + GNOME_WebEyes.server |
| | | |
| | | |
| | | # ****************************************************************************** |
| | | # GConf Schemas |
| | |
| | | +++ deskbar-applet-2.23.2/deskbar/ui/AbstractCuemiacDeskbarIcon.py 2008-05-29 16:20:59.272081000 +0100 |
| | | @@ -31,7 +31,7 @@ |
| | | self._active_view = deskbar.BUTTON_UI_NAME |
| | | |
| | | |
| | | def create_window_ui(self): |
| | | - self._view = CuemiacWindowView(self._controller, self._core) |
| | | + self._view = CuemiacWindowView(self._controller, self._core, self.applet) |
| | | self._active_view = deskbar.WINDOW_UI_NAME |
| | | |
| | | |
| | | def _setup_core (self): |
| | | --- deskbar-applet-2.23.2.old/deskbar/ui/CuemiacAlignedView.py 2008-05-29 16:18:39.930265000 +0100 |
| | | +++ deskbar-applet-2.23.2/deskbar/ui/CuemiacAlignedView.py 2008-05-29 16:27:55.476993000 +0100 |
| | |
| | | self.applet.set_flags(gtk.CAN_FOCUS) |
| | | + self.set_screen(applet.get_screen()) |
| | | self.applet.connect("change-orient", self._on_change_orient) |
| | | |
| | | |
| | | self._screen_height = self.get_screen().get_height () |
| | | @@ -59,6 +60,9 @@ |
| | | |
| | | |
| | | def get_toplevel(self): |
| | | return self |
| | | + |
| | | + def get_topwindow(self): |
| | | + return self.applet.window |
| | | |
| | | |
| | | def receive_focus(self, time): |
| | | self.applet.set_state(gtk.STATE_SELECTED) |
| | | --- deskbar-applet-2.23.5.old/deskbar/ui/CuemiacWindowView.py 2008-05-29 16:18:39.930125000 +0100 |
| | |
| | | @@ -8,11 +8,13 @@ |
| | | This class is responsible for setting up the GUI. |
| | | """ |
| | | |
| | | |
| | | - def __init__(self, controller, model): |
| | | + def __init__(self, controller, model, applet): |
| | | AbstractCuemiacView.__init__(self, controller, model) |
| | |
| | | self.__small_window_height = None |
| | | + self.applet = applet |
| | | + self.set_screen(applet.get_screen()) |
| | | |
| | | |
| | | self.connect("configure-event", self.__save_window_size) |
| | | self.connect("delete-event", self._controller.on_quit) |
| | | @@ -50,6 +50,9 @@ |
| | | def get_toplevel(self): |
| | | return self |
| | | |
| | | |
| | | + def get_topwindow(self): |
| | | + return self.applet.window |
| | | + |
| | | + |
| | | def receive_focus(self, time): |
| | | self.move( self._model.get_window_x(), self._model.get_window_y() ) |
| | | self.entry.grab_focus() |
| | |
| | | import deskbar.interfaces.Controller |
| | | @@ -67,14 +68,14 @@ class CuemiacWindowController(deskbar.in |
| | | self._focus_out = False |
| | | |
| | | |
| | | def on_show_about(self, sender): |
| | | - show_about(self._view.get_toplevel()) |
| | | + show_about(self._view.get_topwindow()) |
| | | |
| | | |
| | | def on_show_preferences(self, sender): |
| | | prefs = DeskbarPreferences(self._model) |
| | | - prefs.show_run_hide(self._view.get_toplevel()) |
| | | + prefs.show_run_hide(self._view.get_topwindow()) |
| | | |
| | | |
| | | def on_show_help(self, sender): |
| | | - deskbar.core.Utils.launch_default_for_uri_and_scheme("ghelp:deskbar") |
| | | + gnome.ui.help_display_uri_on_screen("ghelp:deskbar", (self._view.get_topwindow()).get_screen()) |
| | | |
| | | |
| | | def on_query_entry_changed(self, entry): |
| | | self._view.set_clear() |
| | |
| | | @@ -2,7 +2,7 @@ |
| | | #ifndef __DESKBAR_EVOLUTION_H__ |
| | | #define __DESKBAR_EVOLUTION_H__ |
| | | |
| | | |
| | | -#include <glib/gtypes.h> |
| | | +#include <glib.h> |
| | | #include <gdk-pixbuf/gdk-pixbuf.h> |
| | | |
| | | |
| | | G_BEGIN_DECLS |
| | |
| | | + <int>28</int> |
| | | </value> |
| | | </entry> |
| | | |
| | | |
| | | @@ -109,13 +121,37 @@ |
| | | <entry><key>toplevels/top_panel/unhide_delay</key><schema_key>/schemas/apps/panel/toplevels/unhide_delay</schema_key></entry> |
| | | <entry><key>toplevels/top_panel/auto_hide_size</key><schema_key>/schemas/apps/panel/toplevels/auto_hide_size</schema_key></entry> |
| | |
| | | + <bool>true</bool> |
| | | + </value> |
| | | + </entry> |
| | | |
| | | |
| | | <!-- Bottom Panel --> |
| | | |
| | | |
| | | @@ -137,7 +173,7 @@ |
| | | <key>toplevels/bottom_panel/size</key> |
| | | <schema_key>/schemas/apps/panel/toplevels/size</schema_key> |
| | |
| | | + <bool>true</bool> |
| | | + </value> |
| | | + </entry> |
| | | |
| | | |
| | | <!-- Menu Bar --> |
| | | |
| | | |
| | | @@ -220,6 +280,60 @@ |
| | | <entry><key>objects/menu_bar/launcher_location</key><schema_key>/schemas/apps/panel/objects/launcher_location</schema_key></entry> |
| | | <entry><key>objects/menu_bar/action_type</key><schema_key>/schemas/apps/panel/objects/action_type</schema_key></entry> |
| | | |
| | | |
| | | + <!-- Home Launcher --> |
| | | + |
| | | + <entry> |
| | |
| | | + <entry><key>objects/home_launcher/action_type</key><schema_key>/schemas/apps/panel/objects/action_type</schema_key></entry> |
| | | + |
| | | <!-- Browser Launcher --> |
| | | |
| | | |
| | | <entry> |
| | | @@ -240,7 +354,7 @@ |
| | | <key>objects/browser_launcher/position</key> |
| | |
| | | + <string>firefox.desktop</string> |
| | | </value> |
| | | </entry> |
| | | |
| | | |
| | | @@ -294,7 +408,7 @@ |
| | | <key>objects/email_launcher/position</key> |
| | | <schema_key>/schemas/apps/panel/objects/position</schema_key> |
| | |
| | | @@ -328,59 +442,112 @@ |
| | | <entry><key>objects/email_launcher/menu_path</key><schema_key>/schemas/apps/panel/objects/menu_path</schema_key></entry> |
| | | <entry><key>objects/email_launcher/action_type</key><schema_key>/schemas/apps/panel/objects/action_type</schema_key></entry> |
| | | |
| | | |
| | | - <!-- Window Menu Applet --> |
| | | - |
| | | + <!-- Package Manager Launcher --> |
| | |
| | | + <string>gnome-terminal.desktop</string> |
| | | </value> |
| | | </entry> |
| | | |
| | | |
| | | - <entry><key>applets/window_menu/attached_toplevel_id</key><schema_key>/schemas/apps/panel/objects/attached_toplevel_id</schema_key> </entry> |
| | | - <entry><key>applets/window_menu/tooltip</key><schema_key>/schemas/apps/panel/objects/tooltip</schema_key></entry> |
| | | - <entry><key>applets/window_menu/use_custom_icon</key><schema_key>/schemas/apps/panel/objects/use_custom_icon</schema_key></entry> |
| | |
| | | + <entry><key>objects/terminal_launcher/use_menu_path</key><schema_key>/schemas/apps/panel/objects/use_menu_path</schema_key></entry> |
| | | + <entry><key>objects/terminal_launcher/menu_path</key><schema_key>/schemas/apps/panel/objects/menu_path</schema_key></entry> |
| | | + <entry><key>objects/terminal_launcher/action_type</key><schema_key>/schemas/apps/panel/objects/action_type</schema_key></entry> |
| | | |
| | | |
| | | <!-- Clock Applet --> |
| | | |
| | | |
| | | @@ -402,7 +569,7 @@ |
| | | <key>applets/clock/position</key> |
| | | <schema_key>/schemas/apps/panel/objects/position</schema_key> |
| | |
| | | @@ -436,6 +603,63 @@ |
| | | <entry><key>applets/clock/launcher_location</key><schema_key>/schemas/apps/panel/objects/launcher_location</schema_key></entry> |
| | | <entry><key>applets/clock/action_type</key><schema_key>/schemas/apps/panel/objects/action_type</schema_key></entry> |
| | | |
| | | |
| | | + <!-- Mixer Applet --> |
| | | + |
| | | + <entry> |
| | |
| | | + <entry><key>applets/mixer/boundary_box</key><schema_key>/schemas/apps/panel/objects/boundary_box</schema_key></entry> |
| | | + |
| | | <!-- Notification Area Applet --> |
| | | |
| | | |
| | | <entry> |
| | | @@ -456,7 +680,7 @@ |
| | | <key>applets/notification_area/position</key> |
| | |
| | | @@ -652,6 +876,60 @@ |
| | | <entry><key>applets/workspace_switcher/launcher_location</key><schema_key>/schemas/apps/panel/objects/launcher_location</schema_key></entry> |
| | | <entry><key>applets/workspace_switcher/action_type</key><schema_key>/schemas/apps/panel/objects/action_type</schema_key></entry> |
| | | |
| | | |
| | | + <!-- Trash Applet --> |
| | | + |
| | | + <entry> |
| | |
| | | + <entry><key>applets/trash/action_type</key><schema_key>/schemas/apps/panel/objects/action_type</schema_key></entry> |
| | | + |
| | | </entrylist> |
| | | |
| | | |
| | | </gconfentryfile> |
| | | --- gnome-panel-2.32.1/icons/Makefile.am.~1~ 2015-01-05 17:51:41.394166811 +0300 |
| | | +++ gnome-panel-2.32.1/icons/Makefile.am 2015-01-05 17:56:37.313147797 +0300 |
| | | @@ -3,7 +3,9 @@ |
| | | gegldir = $(datadir)/gnome-panel/pixmaps |
| | | gegl_DATA = \ |
| | | gnome-gegl2-2.png \ |
| | | gnome-gegl2-2.png \ |
| | | - gnome-gegl2.png |
| | | + gnome-gegl2.png \ |
| | | + top-panel-image.png \ |
| | | + bottom-panel-image.png |
| | | |
| | | |
| | | EXTRA_DIST = $(gegl_DATA) |
| | | |
| | |
| | | @@ -174,7 +174,7 @@ PANEL_INPROCESS_ALL= |
| | | PANEL_INPROCESS_APPLETS= |
| | | AC_ARG_WITH(in-process-applets, |
| | | AC_HELP_STRING([--with-in-process-applets=APPLETS], |
| | | AC_HELP_STRING([--with-in-process-applets=APPLETS], |
| | | - [comma-separated list of applets to compile in-process (possible values: none, clock, fish, notification-area, wncklet, all) @<:@default=none@:>@]), |
| | | + [comma-separated list of applets to compile in-process (possible values: none, clock, notification-area, wncklet, all) @<:@default=none@:>@]), |
| | | [for i in `echo $withval | tr , ' '`; do |
| | | if test $i = "none"; then |
| | | PANEL_INPROCESS_NONE=1 |
| | | [for i in `echo $withval | tr , ' '`; do |
| | | if test $i = "none"; then |
| | | PANEL_INPROCESS_NONE=1 |
| | | @@ -182,20 +182,18 @@ AC_ARG_WITH(in-process-applets, |
| | | PANEL_INPROCESS_ALL=1 |
| | | else if test $i = "clock"; then |
| | | PANEL_INPROCESS_APPLETS="$PANEL_INPROCESS_APPLETS $i" |
| | | PANEL_INPROCESS_ALL=1 |
| | | else if test $i = "clock"; then |
| | | PANEL_INPROCESS_APPLETS="$PANEL_INPROCESS_APPLETS $i" |
| | | - else if test $i = "fish"; then |
| | | - PANEL_INPROCESS_APPLETS="$PANEL_INPROCESS_APPLETS $i" |
| | | else if test $i = "notification-area"; then |
| | | PANEL_INPROCESS_APPLETS="$PANEL_INPROCESS_APPLETS $i" |
| | | else if test $i = "wncklet"; then |
| | | PANEL_INPROCESS_APPLETS="$PANEL_INPROCESS_APPLETS $i" |
| | | else |
| | | echo "applet $i not recognized, ignoring..." |
| | | else if test $i = "notification-area"; then |
| | | PANEL_INPROCESS_APPLETS="$PANEL_INPROCESS_APPLETS $i" |
| | | else if test $i = "wncklet"; then |
| | | PANEL_INPROCESS_APPLETS="$PANEL_INPROCESS_APPLETS $i" |
| | | else |
| | | echo "applet $i not recognized, ignoring..." |
| | | - fi; fi; fi; fi; fi; fi |
| | | + fi; fi; fi; fi; fi |
| | | done], |
| | | []) |
| | | |
| | | done], |
| | | []) |
| | | |
| | | if test -n "$PANEL_INPROCESS_ALL"; then |
| | | - PANEL_INPROCESS_APPLETS="clock fish notification-area wncklet" |
| | | + PANEL_INPROCESS_APPLETS="clock notification-area wncklet" |
| | | fi |
| | | if test -n "$PANEL_INPROCESS_NONE"; then |
| | | PANEL_INPROCESS_APPLETS="" |
| | | PANEL_INPROCESS_APPLETS="" |
| | | @@ -205,10 +203,6 @@ for i in $PANEL_INPROCESS_APPLETS; do |
| | | CLOCK_COMPILE_INPROCESS=1 |
| | | AC_DEFINE([CLOCK_INPROCESS], 1, |
| | | [Defined when compiling the clock applet in-process]) |
| | | CLOCK_COMPILE_INPROCESS=1 |
| | | AC_DEFINE([CLOCK_INPROCESS], 1, |
| | | [Defined when compiling the clock applet in-process]) |
| | | - else if test $i = "fish"; then |
| | | - FISH_COMPILE_INPROCESS=1 |
| | | - AC_DEFINE([FISH_INPROCESS], 1, |
| | | - [Defined when compiling the fish applet in-process]) |
| | | else if test $i = "notification-area"; then |
| | | NOTIFICATION_AREA_COMPILE_INPROCESS=1 |
| | | AC_DEFINE([NOTIFICATION_AREA_INPROCESS], 1, |
| | | else if test $i = "notification-area"; then |
| | | NOTIFICATION_AREA_COMPILE_INPROCESS=1 |
| | | AC_DEFINE([NOTIFICATION_AREA_INPROCESS], 1, |
| | | @@ -332,7 +326,6 @@ po/Makefile.in |
| | | applets/Makefile |
| | | applets/clock/Makefile |
| | |
| | | -help/fish/Makefile |
| | | man/Makefile |
| | | ]) |
| | | |
| | | |
| | | /jds/bin/diff -uprN gnome-panel-2.28.0.old/applets/Makefile.am gnome-panel-2.28.0/applets/Makefile.am |
| | | --- gnome-panel-2.32.1/applets/Makefile.am.~1~ 2015-01-05 18:00:34.916241811 +0300 |
| | | +++ gnome-panel-2.32.1/applets/Makefile.am 2015-01-05 18:01:30.085717076 +0300 |
| | | @@ -1,6 +1,5 @@ |
| | | SUBDIRS = \ |
| | | clock \ |
| | | clock \ |
| | | - fish \ |
| | | notification_area \ |
| | | wncklet |
| | | |
| | | notification_area \ |
| | | wncklet |
| | | |
| | | /jds/bin/diff -uprN gnome-panel-2.28.0.old/help/Makefile.am gnome-panel-2.28.0/help/Makefile.am |
| | | --- gnome-panel-2.28.0.old/help/Makefile.am 2009-07-01 14:06:23.000000000 +0100 |
| | | +++ gnome-panel-2.28.0/help/Makefile.am 2009-10-15 15:52:34.875929591 +0100 |
| | | @@ -1,3 +1,3 @@ |
| | | -SUBDIRS = clock fish |
| | | +SUBDIRS = clock |
| | | |
| | | |
| | | -include $(top_srcdir)/git.mk |
| | | diff -ruN gnome-panel-2.29.92.1.orig/configure.in gnome-panel-2.29.92.1/configure.in |
| | | --- gnome-panel-2.29.92.1.orig/configure.ac 2010-03-15 03:26:34.022622316 +0000 |
| | | +++ gnome-panel-2.29.92.1/configure.ac 2010-03-15 03:27:00.996859771 +0000 |
| | | @@ -213,7 +213,7 @@ |
| | | WNCKLET_COMPILE_INPROCESS=1 |
| | | AC_DEFINE([WNCKLET_INPROCESS], 1, |
| | | [Defined when compiling the wncklet applet in-process]) |
| | | WNCKLET_COMPILE_INPROCESS=1 |
| | | AC_DEFINE([WNCKLET_INPROCESS], 1, |
| | | [Defined when compiling the wncklet applet in-process]) |
| | | - fi; fi; fi; fi |
| | | + fi; fi; fi |
| | | done |
| | | if test "x$PANEL_INPROCESS_APPLETS" = "x"; then |
| | | PANEL_INPROCESS_APPLETS="(none)" |
| | | PANEL_INPROCESS_APPLETS="(none)" |
| | |
| | | +++ gnome-panel-2.27.91/gnome-panel/panel-default-setup.entries 2009-08-26 17:21:47.749945000 +0100 |
| | | @@ -5,8 +5,8 @@ |
| | | <!-- List of toplevels --> |
| | | |
| | | |
| | | <entry> |
| | | - <key>general/toplevel_id_list</key> |
| | | - <schema_key>/schemas/apps/panel/general/toplevel_id_list</schema_key> |
| | |
| | | <value> |
| | | @@ -19,8 +19,8 @@ |
| | | <!-- List of objects --> |
| | | |
| | | |
| | | <entry> |
| | | - <key>general/object_id_list</key> |
| | | - <schema_key>/schemas/apps/panel/general/object_id_list</schema_key> |
| | |
| | | <value> |
| | | @@ -33,8 +33,8 @@ |
| | | <!-- List of applets --> |
| | | |
| | | |
| | | <entry> |
| | | - <key>general/applet_id_list</key> |
| | | - <schema_key>/schemas/apps/panel/general/applet_id_list</schema_key> |
| | |
| | | --- gnome-panel-2.27.91.old/gnome-panel/panel-profile.c 2009-08-26 17:20:04.106305000 +0100 |
| | | +++ gnome-panel-2.27.91/gnome-panel/panel-profile.c 2009-08-26 17:23:09.254481000 +0100 |
| | | @@ -2518,7 +2518,12 @@ panel_profile_load (void) |
| | | |
| | | panel_compatibility_maybe_copy_old_config (client); |
| | | |
| | | |
| | | panel_compatibility_maybe_copy_old_config (client); |
| | | |
| | | + /* Commenting this out till we figure out a clean way to migrate |
| | | + objects of previous version of a release to the newer version |
| | | + along with the objects that we intend to add to the newer version |
| | | + |
| | | panel_compatibility_migrate_panel_id_list (client); |
| | | panel_compatibility_migrate_panel_id_list (client); |
| | | + */ |
| | | |
| | | panel_profile_load_list (client, |
| | | PANEL_CONFIG_DIR, |
| | | |
| | | panel_profile_load_list (client, |
| | | PANEL_CONFIG_DIR, |
| | | /jds/bin/diff -uprN gnome-panel-2.27.91.old/gnome-panel/panel-gconf.c gnome-panel-2.27.91/gnome-panel/panel-gconf.c |
| | | --- gnome-panel-2.27.91.old/gnome-panel/panel-gconf.c 2009-08-26 17:20:04.144039000 +0100 |
| | | +++ gnome-panel-2.27.91/gnome-panel/panel-gconf.c 2009-08-26 17:23:41.676124000 +0100 |
| | | @@ -108,13 +108,13 @@ panel_gconf_key_type_to_id_list (PanelGC |
| | | |
| | | switch (type) { |
| | | case PANEL_GCONF_TOPLEVELS: |
| | | |
| | | switch (type) { |
| | | case PANEL_GCONF_TOPLEVELS: |
| | | - retval = "toplevel_id_list"; |
| | | + retval = "toplevel_id_list_jds"; |
| | | break; |
| | | case PANEL_GCONF_APPLETS: |
| | | break; |
| | | case PANEL_GCONF_APPLETS: |
| | | - retval = "applet_id_list"; |
| | | + retval = "applet_id_list_jds"; |
| | | break; |
| | | case PANEL_GCONF_OBJECTS: |
| | | break; |
| | | case PANEL_GCONF_OBJECTS: |
| | | - retval = "object_id_list"; |
| | | + retval = "object_id_list_jds"; |
| | | break; |
| | | default: |
| | | retval = NULL; |
| | | break; |
| | | default: |
| | | retval = NULL; |
| | |
| | | @@ -51,6 +51,11 @@ struct _NaTrayPrivate |
| | | GtkWidget *box; |
| | | GtkWidget *frame; |
| | | |
| | | |
| | | + gulong query_tooltip_id; |
| | | + gboolean tooltip_enabled; |
| | | + |
| | | + GSList *icons; |
| | | + |
| | | guint idle_redraw_id; |
| | | |
| | | |
| | | GtkOrientation orientation; |
| | | @@ -146,12 +155,20 @@ tray_removed (NaTrayManager *manager, |
| | | TraysScreen *trays_screen) |
| | | { |
| | | NaTray *tray; |
| | | + NaTrayPrivate *priv; |
| | | |
| | | |
| | | tray = g_hash_table_lookup (trays_screen->icon_table, icon); |
| | | if (tray == NULL) |
| | | return; |
| | | |
| | | |
| | | + priv = tray->priv; |
| | | + |
| | | g_assert (tray->priv->trays_screen == trays_screen); |
| | |
| | | + if (g_slist_length (priv->icons) == 0) { |
| | | + priv->tooltip_enabled=TRUE; |
| | | + } |
| | | |
| | | |
| | | g_hash_table_remove (trays_screen->icon_table, icon); |
| | | /* this will also destroy the tip associated to this icon */ |
| | | @@ -727,3 +744,36 @@ na_tray_force_redraw (NaTray *tray) |
| | |
| | | + gint y, |
| | | + gboolean keyboard_mode, |
| | | + GtkTooltip *tooltip, |
| | | + gpointer user_data) |
| | | + gpointer user_data) |
| | | +{ |
| | | + NaTray *tray = (NaTray*)user_data; |
| | | + NaTrayPrivate *priv; |
| | |
| | | + |
| | | + gtk_tooltip_set_markup (tooltip, "Area where notification icons appear"); |
| | | + |
| | | + return ( priv->tooltip_enabled ); |
| | | + return ( priv->tooltip_enabled ); |
| | | +} |
| | | + |
| | | +void |
| | |
| | | @@ -243,6 +243,8 @@ on_applet_realized (GtkWidget *widget, |
| | | g_signal_connect (applet, "destroy", |
| | | G_CALLBACK (applet_destroy), data); |
| | | |
| | | |
| | | + na_tray_set_tooltip (GTK_WIDGET (applet), tray); |
| | | + |
| | | gtk_container_add (GTK_CONTAINER (applet), GTK_WIDGET (tray)); |
| | | gtk_widget_show (GTK_WIDGET (tray)); |
| | | |
| | | |
| | | diff -ruN gnome-panel-2.29.92.orig/applets/notification_area/na-tray.c gnome-panel-2.29.92/applets/notification_area/na-tray.c |
| | | --- gnome-panel-2.29.92.orig/applets/notification_area/na-tray.c 2010-03-11 22:19:45.828748555 +0000 |
| | | +++ gnome-panel-2.29.92/applets/notification_area/na-tray.c 2010-03-11 22:20:57.182639083 +0000 |
| | | @@ -244,6 +244,9 @@ |
| | | gtk_box_pack_start (GTK_BOX (priv->box), icon, FALSE, FALSE, 0); |
| | | gtk_box_reorder_child (GTK_BOX (priv->box), icon, position); |
| | | |
| | | |
| | | + priv->icons = g_slist_append (priv->icons, icon); |
| | | + priv->tooltip_enabled = FALSE; |
| | | + |
| | | gtk_widget_show (icon); |
| | | } |
| | | |
| | |
| | | --- gnome-panel-2.26.3.old/gnome-panel/panel-run-dialog.c 2009-04-19 18:45:09.000000000 +0100 |
| | | +++ gnome-panel-2.26.3/gnome-panel/panel-run-dialog.c 2009-07-01 18:48:11.982368000 +0100 |
| | | @@ -1426,6 +1426,12 @@ entry_event (GtkEditable *entry, |
| | | char *temp; |
| | | int pos, tmp; |
| | | |
| | | char *temp; |
| | | int pos, tmp; |
| | | |
| | | + /* commit the string when IM is enabled */ |
| | | + if (GTK_ENTRY (entry)->editable && event->type == GDK_KEY_PRESS && event->length > 0) { |
| | | + if (gtk_im_context_filter_keypress (GTK_ENTRY (entry)->im_context, event)) |
| | | + return TRUE; |
| | | + } |
| | | + |
| | | if (event->type != GDK_KEY_PRESS) |
| | | return FALSE; |
| | | if (event->type != GDK_KEY_PRESS) |
| | | return FALSE; |
| | | |
| | |
| | | --- gnome-panel-2.32.1/gnome-panel/Makefile.am.~1~ 2010-09-29 20:51:03.000000000 +0400 |
| | | +++ gnome-panel-2.32.1/gnome-panel/Makefile.am 2015-03-10 12:38:51.894270716 +0300 |
| | | @@ -15,6 +15,7 @@ |
| | | -DGNOMELOCALEDIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ |
| | | -DBUILDERDIR=\""$(uidir)"\" \ |
| | | -DICONDIR=\""$(datadir)/gnome-panel/pixmaps"\" \ |
| | | -DGNOMELOCALEDIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ |
| | | -DBUILDERDIR=\""$(uidir)"\" \ |
| | | -DICONDIR=\""$(datadir)/gnome-panel/pixmaps"\" \ |
| | | + -DGMENU_I_KNOW_THIS_IS_UNSTABLE \ |
| | | $(DISABLE_DEPRECATED_CFLAGS) |
| | | |
| | | $(DISABLE_DEPRECATED_CFLAGS) |
| | | |
| | | AM_CFLAGS = $(WARN_CFLAGS) |
| | | @@ -134,7 +135,8 @@ |
| | | $(top_builddir)/gnome-panel/libpanel-util/libpanel-util.la \ |
| | | $(PANEL_LIBS) \ |
| | | $(XRANDR_LIBS) \ |
| | | $(top_builddir)/gnome-panel/libpanel-util/libpanel-util.la \ |
| | | $(PANEL_LIBS) \ |
| | | $(XRANDR_LIBS) \ |
| | | - $(X_LIBS) |
| | | + $(X_LIBS) \ |
| | | + -lsecdb |
| | | |
| | | |
| | | gnome_panel_LDFLAGS = -export-dynamic |
| | | |
| | | |
| | | @@ -143,12 +145,15 @@ |
| | | panel-ditem-editor.c \ |
| | | panel-marshal.c \ |
| | | panel-util.c \ |
| | | panel-ditem-editor.c \ |
| | | panel-marshal.c \ |
| | | panel-util.c \ |
| | | + panel-lockdown.c \ |
| | | + panel-gconf.c \ |
| | | xstuff.c |
| | | |
| | | xstuff.c |
| | | |
| | | gnome_desktop_item_edit_LDADD = \ |
| | | $(top_builddir)/gnome-panel/libpanel-util/libpanel-util.la \ |
| | | $(PANEL_LIBS) \ |
| | | $(top_builddir)/gnome-panel/libpanel-util/libpanel-util.la \ |
| | | $(PANEL_LIBS) \ |
| | | - $(X_LIBS) |
| | | + $(X_LIBS) \ |
| | | + -lsecdb |
| | | |
| | | |
| | | panel_test_applets_SOURCES = \ |
| | | panel-modules.c \ |
| | | panel-modules.c \ |
| | | --- gnome-panel-2.30.2.orig/gnome-panel/gnome-desktop-item-edit.c 2010-12-27 13:01:19.485602424 +0100 |
| | | +++ gnome-panel-2.30.2/gnome-panel/gnome-desktop-item-edit.c 2010-12-27 12:47:44.055057740 +0100 |
| | | @@ -18,7 +18,6 @@ |
| | |
| | | gboolean panel_global_config_get_tooltips_enabled (void) { return FALSE; } |
| | | #include "panel-lockdown.h" |
| | | -gboolean panel_lockdown_get_disable_lock_screen (void) { return FALSE; } |
| | | |
| | | |
| | | static int dialogs = 0; |
| | | static gboolean create_new = FALSE; |
| | | @@ -103,6 +102,8 @@ |
| | | bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); |
| | | textdomain (GETTEXT_PACKAGE); |
| | | |
| | | bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); |
| | | textdomain (GETTEXT_PACKAGE); |
| | | |
| | | + panel_lockdown_init (); |
| | | + |
| | | if (!gtk_init_with_args (&argc, &argv, |
| | | _("- Edit .desktop files"), |
| | | options, |
| | | if (!gtk_init_with_args (&argc, &argv, |
| | | _("- Edit .desktop files"), |
| | | options, |
| | | @@ -220,5 +221,7 @@ |
| | | if (dialogs > 0) |
| | | gtk_main (); |
| | | |
| | | if (dialogs > 0) |
| | | gtk_main (); |
| | | |
| | | + panel_lockdown_finalize (); |
| | | + |
| | | return 0; |
| | |
| | | +++ gnome-panel-2.32.1/gnome-panel/menu.c 2015-01-05 18:26:37.571796313 +0300 |
| | | @@ -75,7 +75,8 @@ |
| | | static GSList *image_menu_items = NULL; |
| | | |
| | | |
| | | static GtkWidget *populate_menu_from_directory (GtkWidget *menu, |
| | | - GMenuTreeDirectory *directory); |
| | | + GMenuTreeDirectory *directory, |
| | | + gboolean *is_hidden); |
| | | |
| | | |
| | | static void panel_load_menu_image_deferred (GtkWidget *image_menu_item, |
| | | GtkIconSize icon_size, |
| | | GtkIconSize icon_size, |
| | | @@ -1276,7 +1277,8 @@ |
| | | } |
| | | |
| | | |
| | | static void |
| | | -submenu_to_display (GtkWidget *menu) |
| | | +submenu_to_display (GtkWidget *menu, |
| | | + gboolean *is_hidden) |
| | | { |
| | | GMenuTree *tree; |
| | | GMenuTreeDirectory *directory; |
| | | GMenuTree *tree; |
| | | GMenuTreeDirectory *directory; |
| | | @@ -1311,7 +1313,15 @@ |
| | | } |
| | | |
| | | if (directory) |
| | | } |
| | | |
| | | if (directory) |
| | | - populate_menu_from_directory (menu, directory); |
| | | + { /* It's possible that is_hidden is NULL if we end up here from the show |
| | | + signal, which could only happen for the top level menu. */ |
| | |
| | | + *is_hidden = local_is_hidden; |
| | | + } |
| | | + } |
| | | |
| | | append_callback = g_object_get_data (G_OBJECT (menu), |
| | | "panel-menu-append-callback"); |
| | | |
| | | append_callback = g_object_get_data (G_OBJECT (menu), |
| | | "panel-menu-append-callback"); |
| | | @@ -1325,10 +1335,11 @@ |
| | | submenu_to_display_in_idle (gpointer data) |
| | | { |
| | | GtkWidget *menu = GTK_WIDGET (data); |
| | | GtkWidget *menu = GTK_WIDGET (data); |
| | | + gboolean is_hidden = FALSE; |
| | | |
| | | g_object_set_data (G_OBJECT (menu), "panel-menu-idle-id", NULL); |
| | | |
| | | |
| | | g_object_set_data (G_OBJECT (menu), "panel-menu-idle-id", NULL); |
| | | |
| | | - submenu_to_display (menu); |
| | | + submenu_to_display (menu, &is_hidden); |
| | | |
| | | return FALSE; |
| | | |
| | | return FALSE; |
| | | } |
| | | @@ -1423,19 +1434,25 @@ |
| | | static void |
| | | create_submenu (GtkWidget *menu, |
| | | GMenuTreeDirectory *directory, |
| | | GMenuTreeDirectory *directory, |
| | | - GMenuTreeDirectory *alias_directory) |
| | | + GMenuTreeDirectory *alias_directory, |
| | | + gboolean *is_hidden) |
| | | { |
| | | GtkWidget *menuitem; |
| | | GtkWidget *submenu; |
| | | gboolean force_categories_icon; |
| | | |
| | | GtkWidget *menuitem; |
| | | GtkWidget *submenu; |
| | | gboolean force_categories_icon; |
| | | |
| | | + submenu = create_fake_menu (directory); |
| | | + if (panel_lockdown_get_restrict_application_launching ()) { |
| | | + submenu_to_display (submenu, is_hidden); |
| | |
| | | + *is_hidden = FALSE; |
| | | + } |
| | | + |
| | | if (alias_directory) |
| | | menuitem = create_submenu_entry (menu, alias_directory); |
| | | else |
| | | menuitem = create_submenu_entry (menu, directory); |
| | | |
| | | if (alias_directory) |
| | | menuitem = create_submenu_entry (menu, alias_directory); |
| | | else |
| | | menuitem = create_submenu_entry (menu, directory); |
| | | |
| | | - submenu = create_fake_menu (directory); |
| | | - |
| | | gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), submenu); |
| | | |
| | | /* Keep the infor that we force (or not) the icons to be visible */ |
| | | gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), submenu); |
| | | |
| | | /* Keep the infor that we force (or not) the icons to be visible */ |
| | | @@ -1444,15 +1461,21 @@ |
| | | g_object_set_data (G_OBJECT (submenu), |
| | | "panel-menu-force-icon-for-categories", |
| | | GINT_TO_POINTER (force_categories_icon)); |
| | | g_object_set_data (G_OBJECT (submenu), |
| | | "panel-menu-force-icon-for-categories", |
| | | GINT_TO_POINTER (force_categories_icon)); |
| | | + |
| | | + if (*is_hidden) { |
| | | + gtk_widget_hide (menuitem); |
| | | + } |
| | | } |
| | | |
| | | static void |
| | | |
| | | static void |
| | | create_header (GtkWidget *menu, |
| | | - GMenuTreeHeader *header) |
| | | + GMenuTreeHeader *header, |
| | | + gboolean *is_hidden) |
| | | { |
| | | GMenuTreeDirectory *directory; |
| | | GtkWidget *menuitem; |
| | | |
| | | GMenuTreeDirectory *directory; |
| | | GtkWidget *menuitem; |
| | | |
| | | + *is_hidden = FALSE; |
| | | directory = gmenu_tree_header_get_directory (header); |
| | | menuitem = create_submenu_entry (menu, directory); |
| | | gmenu_tree_item_unref (directory); |
| | | directory = gmenu_tree_header_get_directory (header); |
| | | menuitem = create_submenu_entry (menu, directory); |
| | | gmenu_tree_item_unref (directory); |
| | | @@ -1469,10 +1492,12 @@ |
| | | static void |
| | | create_menuitem (GtkWidget *menu, |
| | | GMenuTreeEntry *entry, |
| | | GMenuTreeEntry *entry, |
| | | - GMenuTreeDirectory *alias_directory) |
| | | + GMenuTreeDirectory *alias_directory, |
| | | + gboolean *is_hidden) |
| | | { |
| | | GtkWidget *menuitem; |
| | | |
| | | GtkWidget *menuitem; |
| | | |
| | | + *is_hidden = FALSE; |
| | | menuitem = panel_image_menu_item_new (); |
| | | |
| | | g_object_set_data_full (G_OBJECT (menuitem), |
| | | menuitem = panel_image_menu_item_new (); |
| | | |
| | | g_object_set_data_full (G_OBJECT (menuitem), |
| | | @@ -1553,12 +1578,18 @@ |
| | | g_signal_connect (menuitem, "activate", |
| | | G_CALLBACK (activate_app_def), entry); |
| | | |
| | | g_signal_connect (menuitem, "activate", |
| | | G_CALLBACK (activate_app_def), entry); |
| | | |
| | | - gtk_widget_show (menuitem); |
| | | + if (entry != NULL && !panel_lockdown_is_allowed_menu_entry (entry)) { |
| | | + gtk_widget_hide (menuitem); |
| | |
| | | + gtk_widget_show (menuitem); |
| | | + } |
| | | } |
| | | |
| | | |
| | | static void |
| | | create_menuitem_from_alias (GtkWidget *menu, |
| | | - GMenuTreeAlias *alias) |
| | | + GMenuTreeAlias *alias, |
| | | + gboolean *is_hidden) |
| | | { |
| | | GMenuTreeItem *aliased_item; |
| | | |
| | | GMenuTreeItem *aliased_item; |
| | | |
| | | @@ -1568,13 +1599,15 @@ |
| | | case GMENU_TREE_ITEM_DIRECTORY: |
| | | create_submenu (menu, |
| | | GMENU_TREE_DIRECTORY (aliased_item), |
| | | case GMENU_TREE_ITEM_DIRECTORY: |
| | | create_submenu (menu, |
| | | GMENU_TREE_DIRECTORY (aliased_item), |
| | | - gmenu_tree_alias_get_directory (alias)); |
| | | + gmenu_tree_alias_get_directory (alias), |
| | | + is_hidden); |
| | | break; |
| | | |
| | | case GMENU_TREE_ITEM_ENTRY: |
| | | create_menuitem (menu, |
| | | GMENU_TREE_ENTRY (aliased_item), |
| | | break; |
| | | |
| | | case GMENU_TREE_ITEM_ENTRY: |
| | | create_menuitem (menu, |
| | | GMENU_TREE_ENTRY (aliased_item), |
| | | - gmenu_tree_alias_get_directory (alias)); |
| | | + gmenu_tree_alias_get_directory (alias), |
| | | + is_hidden); |
| | | break; |
| | | |
| | | default: |
| | | break; |
| | | |
| | | default: |
| | | @@ -1681,13 +1714,15 @@ |
| | | |
| | | |
| | | static GtkWidget * |
| | | populate_menu_from_directory (GtkWidget *menu, |
| | | - GMenuTreeDirectory *directory) |
| | | + GMenuTreeDirectory *directory, |
| | | + gboolean *is_hidden) |
| | | { |
| | | GList *children; |
| | | GSList *l; |
| | | GSList *items; |
| | | gboolean add_separator; |
| | | |
| | | { |
| | | GList *children; |
| | | GSList *l; |
| | | GSList *items; |
| | | gboolean add_separator; |
| | | |
| | | + *is_hidden = TRUE; |
| | | children = gtk_container_get_children (GTK_CONTAINER (menu)); |
| | | add_separator = (children != NULL); |
| | | g_list_free (children); |
| | | children = gtk_container_get_children (GTK_CONTAINER (menu)); |
| | | add_separator = (children != NULL); |
| | | g_list_free (children); |
| | | @@ -1696,6 +1731,7 @@ |
| | | |
| | | for (l = items; l; l = l->next) { |
| | | GMenuTreeItem *item = l->data; |
| | | |
| | | for (l = items; l; l = l->next) { |
| | | GMenuTreeItem *item = l->data; |
| | | + gboolean is_item_hidden = TRUE; |
| | | |
| | | if (add_separator || |
| | | gmenu_tree_item_get_type (item) == GMENU_TREE_ITEM_SEPARATOR) { |
| | | |
| | | if (add_separator || |
| | | gmenu_tree_item_get_type (item) == GMENU_TREE_ITEM_SEPARATOR) { |
| | | @@ -1705,11 +1741,13 @@ |
| | | |
| | | switch (gmenu_tree_item_get_type (item)) { |
| | | case GMENU_TREE_ITEM_DIRECTORY: |
| | | |
| | | switch (gmenu_tree_item_get_type (item)) { |
| | | case GMENU_TREE_ITEM_DIRECTORY: |
| | | - create_submenu (menu, GMENU_TREE_DIRECTORY (item), NULL); |
| | | + create_submenu (menu, GMENU_TREE_DIRECTORY (item), NULL, |
| | | + &is_item_hidden); |
| | | break; |
| | | |
| | | case GMENU_TREE_ITEM_ENTRY: |
| | | break; |
| | | |
| | | case GMENU_TREE_ITEM_ENTRY: |
| | | - create_menuitem (menu, GMENU_TREE_ENTRY (item), NULL); |
| | | + create_menuitem (menu, GMENU_TREE_ENTRY (item), NULL, |
| | | + &is_item_hidden); |
| | | break; |
| | | |
| | | case GMENU_TREE_ITEM_SEPARATOR : |
| | | break; |
| | | |
| | | case GMENU_TREE_ITEM_SEPARATOR : |
| | | @@ -1717,11 +1755,13 @@ |
| | | break; |
| | | |
| | | case GMENU_TREE_ITEM_ALIAS: |
| | | break; |
| | | |
| | | case GMENU_TREE_ITEM_ALIAS: |
| | | - create_menuitem_from_alias (menu, GMENU_TREE_ALIAS (item)); |
| | | + create_menuitem_from_alias (menu, GMENU_TREE_ALIAS (item), |
| | | + &is_item_hidden); |
| | | break; |
| | | |
| | | case GMENU_TREE_ITEM_HEADER: |
| | | break; |
| | | |
| | | case GMENU_TREE_ITEM_HEADER: |
| | | - create_header (menu, GMENU_TREE_HEADER (item)); |
| | | + create_header (menu, GMENU_TREE_HEADER (item), |
| | | + &is_item_hidden); |
| | | break; |
| | | |
| | | default: |
| | | break; |
| | | |
| | | default: |
| | | @@ -1729,6 +1769,10 @@ |
| | | } |
| | | |
| | | gmenu_tree_item_unref (item); |
| | | } |
| | | |
| | | gmenu_tree_item_unref (item); |
| | | + |
| | | + if (!is_item_hidden) { |
| | | + *is_hidden = FALSE; |
| | | + } |
| | | } |
| | | |
| | | g_slist_free (items); |
| | | } |
| | | |
| | | g_slist_free (items); |
| | | --- gnome-panel-2.30.2.orig/gnome-panel/launcher.c 2010-06-22 19:27:02.000000000 +0200 |
| | | +++ gnome-panel-2.30.2/gnome-panel/launcher.c 2010-12-27 12:47:44.045078620 +0100 |
| | | @@ -105,6 +105,9 @@ |
| | | g_return_if_fail (launcher != NULL); |
| | | g_return_if_fail (launcher->key_file != NULL); |
| | | |
| | | g_return_if_fail (launcher != NULL); |
| | | g_return_if_fail (launcher->key_file != NULL); |
| | | |
| | | + if (panel_lockdown_is_forbidden_launcher (launcher)) |
| | | + return; |
| | | + |
| | | /* FIXME panel_ditem_launch() should be enough for this! */ |
| | | url = panel_key_file_get_string (launcher->key_file, "URL"); |
| | | |
| | | /* FIXME panel_ditem_launch() should be enough for this! */ |
| | | url = panel_key_file_get_string (launcher->key_file, "URL"); |
| | | |
| | | @@ -136,6 +139,9 @@ |
| | | g_return_if_fail (launcher != NULL); |
| | | g_return_if_fail (launcher->key_file != NULL); |
| | | |
| | | g_return_if_fail (launcher != NULL); |
| | | g_return_if_fail (launcher->key_file != NULL); |
| | | |
| | | + if (panel_lockdown_is_forbidden_launcher (launcher)) |
| | | + return; |
| | | + |
| | | if (panel_global_config_get_enable_animations ()) |
| | | xstuff_zoom_animate (widget, |
| | | button_widget_get_pixbuf (BUTTON_WIDGET (widget)), |
| | | if (panel_global_config_get_enable_animations ()) |
| | | xstuff_zoom_animate (widget, |
| | | button_widget_get_pixbuf (BUTTON_WIDGET (widget)), |
| | | @@ -253,6 +259,8 @@ |
| | | gtk_widget_destroy (dialog); |
| | | gtk_widget_destroy (dialog); |
| | | } |
| | | |
| | | |
| | | +static void panel_recheck_launcher (Launcher *launcher); |
| | | + |
| | | static void |
| | | free_launcher (gpointer data) |
| | | { |
| | | @@ -266,6 +274,8 @@ |
| | | g_free (launcher->location); |
| | | launcher->location = NULL; |
| | | |
| | | g_free (launcher->location); |
| | | launcher->location = NULL; |
| | | |
| | | + panel_lockdown_notify_remove (G_CALLBACK (panel_recheck_launcher), launcher); |
| | | + |
| | | g_free (launcher); |
| | | g_free (launcher); |
| | | } |
| | | |
| | | |
| | | @@ -410,6 +420,19 @@ |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | +static void |
| | | +panel_recheck_launcher (Launcher *launcher) |
| | | +{ |
| | | + if (!launcher || !launcher->button) |
| | | + return; |
| | | + |
| | | + |
| | | + if (panel_lockdown_is_forbidden_launcher (launcher)) { |
| | | + gtk_widget_hide (launcher->button); |
| | | + } else { |
| | |
| | | create_launcher (const char *location) |
| | | { |
| | | @@ -488,7 +511,11 @@ |
| | | FALSE, |
| | | PANEL_ORIENTATION_TOP); |
| | | |
| | | FALSE, |
| | | PANEL_ORIENTATION_TOP); |
| | | |
| | | - gtk_widget_show (launcher->button); |
| | | + if (panel_lockdown_is_forbidden_launcher (launcher)) { |
| | | + gtk_widget_hide (launcher->button); |
| | | + } else { |
| | | + gtk_widget_show (launcher->button); |
| | | + } |
| | | |
| | | /*gtk_drag_dest_set (GTK_WIDGET (launcher->button), |
| | | GTK_DEST_DEFAULT_ALL, |
| | | |
| | | /*gtk_drag_dest_set (GTK_WIDGET (launcher->button), |
| | | GTK_DEST_DEFAULT_ALL, |
| | | @@ -515,6 +542,8 @@ |
| | | G_CALLBACK (destroy_launcher), |
| | | launcher); |
| | | |
| | | G_CALLBACK (destroy_launcher), |
| | | launcher); |
| | | |
| | | + panel_lockdown_notify_add (G_CALLBACK (panel_recheck_launcher), launcher); |
| | | + |
| | | return launcher; |
| | | return launcher; |
| | | } |
| | | |
| | | |
| | | @@ -813,6 +842,12 @@ |
| | | /* setup button according to ditem */ |
| | | setup_button (launcher); |
| | | |
| | | /* setup button according to ditem */ |
| | | setup_button (launcher); |
| | | |
| | | + if (panel_lockdown_is_forbidden_launcher (launcher)) { |
| | | + gtk_widget_hide (launcher->button); |
| | | + } else { |
| | | + gtk_widget_show (launcher->button); |
| | | + } |
| | | + |
| | | return launcher; |
| | | return launcher; |
| | | } |
| | | |
| | | |
| | | @@ -901,6 +936,10 @@ |
| | | if (file != NULL) |
| | | panel_key_file_set_string (key_file, "Exec", file); |
| | | panel_key_file_set_string (key_file, "Type", "Application"); |
| | | if (file != NULL) |
| | | panel_key_file_set_string (key_file, "Exec", file); |
| | | panel_key_file_set_string (key_file, "Type", "Application"); |
| | | + |
| | | + if (panel_lockdown_is_forbidden_key_file (key_file)) |
| | | + return; /* Application being dragged is forbidden so just return */ |
| | | + |
| | | panel_ditem_editor_sync_display (PANEL_DITEM_EDITOR (dialog)); |
| | | |
| | | panel_ditem_register_save_uri_func (PANEL_DITEM_EDITOR (dialog), |
| | | panel_ditem_editor_sync_display (PANEL_DITEM_EDITOR (dialog)); |
| | | |
| | | panel_ditem_register_save_uri_func (PANEL_DITEM_EDITOR (dialog), |
| | | @@ -957,17 +996,18 @@ |
| | | location = panel_make_unique_desktop_uri (NULL, exec_or_uri); |
| | | |
| | | error = NULL; |
| | | location = panel_make_unique_desktop_uri (NULL, exec_or_uri); |
| | | |
| | | error = NULL; |
| | | - if (panel_key_file_to_file (key_file, location, &error)) { |
| | | - panel_launcher_create (toplevel, position, location); |
| | | - } else { |
| | |
| | | + g_error_free (error); |
| | | + } |
| | | + } |
| | | g_key_file_free (key_file); |
| | | g_key_file_free (key_file); |
| | | } |
| | | |
| | | |
| | | --- gnome-panel-2.30.2.orig/gnome-panel/panel-action-button.c 2010-06-22 19:27:02.000000000 +0200 |
| | | +++ gnome-panel-2.30.2/gnome-panel/panel-action-button.c 2010-12-27 12:47:44.039866740 +0100 |
| | | @@ -207,8 +207,11 @@ |
| | |
| | | + gtk_get_current_event_time ()); |
| | | + } |
| | | } |
| | | |
| | | |
| | | /* Search For Files |
| | | --- gnome-panel-2.30.2.orig/gnome-panel/panel-addto.c 2010-06-22 19:27:02.000000000 +0200 |
| | | +++ gnome-panel-2.30.2/gnome-panel/panel-addto.c 2010-12-27 12:47:44.038546226 +0100 |
| | | @@ -571,9 +571,10 @@ |
| | | dialog, NULL); |
| | | dialog, NULL); |
| | | } |
| | | |
| | | |
| | | -static void panel_addto_make_application_list (GSList **parent_list, |
| | | +static gint panel_addto_make_application_list (GSList **parent_list, |
| | | GMenuTreeDirectory *directory, |
| | | const char *filename); |
| | | GMenuTreeDirectory *directory, |
| | | const char *filename); |
| | | +static void panel_addto_dialog_free_item_info (PanelAddtoItemInfo *item_info); |
| | | |
| | | |
| | | static void |
| | | panel_addto_prepend_directory (GSList **parent_list, |
| | | @@ -581,6 +582,7 @@ |
| | | const char *filename) |
| | | const char *filename) |
| | | { |
| | | PanelAddtoAppList *data; |
| | | PanelAddtoAppList *data; |
| | | + gint entries_added = 0; |
| | | |
| | | data = g_new0 (PanelAddtoAppList, 1); |
| | | |
| | | |
| | | data = g_new0 (PanelAddtoAppList, 1); |
| | | |
| | | @@ -600,9 +602,16 @@ |
| | | * So the iid is built when we select the row. |
| | | */ |
| | | |
| | | * So the iid is built when we select the row. |
| | | */ |
| | | |
| | | - *parent_list = g_slist_prepend (*parent_list, data); |
| | | - |
| | | - |
| | | - panel_addto_make_application_list (&data->children, directory, filename); |
| | | + entries_added = panel_addto_make_application_list (&data->children, directory, filename); |
| | | + if (entries_added > 0) { |
| | |
| | | + g_free (data); |
| | | + } |
| | | } |
| | | |
| | | |
| | | static void |
| | | @@ -624,12 +633,13 @@ |
| | | *parent_list = g_slist_prepend (*parent_list, data); |
| | | *parent_list = g_slist_prepend (*parent_list, data); |
| | | } |
| | | |
| | | |
| | | -static void |
| | | +static gint |
| | | panel_addto_prepend_alias (GSList **parent_list, |
| | | GMenuTreeAlias *alias, |
| | | const char *filename) |
| | | GMenuTreeAlias *alias, |
| | | const char *filename) |
| | | { |
| | | GMenuTreeItem *aliased_item; |
| | | GMenuTreeItem *aliased_item; |
| | | + gint entry = 0; |
| | | |
| | | aliased_item = gmenu_tree_alias_get_item (alias); |
| | | |
| | | |
| | | aliased_item = gmenu_tree_alias_get_item (alias); |
| | | |
| | | @@ -641,9 +651,14 @@ |
| | | break; |
| | | |
| | | case GMENU_TREE_ITEM_ENTRY: |
| | | break; |
| | | |
| | | case GMENU_TREE_ITEM_ENTRY: |
| | | - panel_addto_prepend_entry (parent_list, |
| | | - GMENU_TREE_ENTRY (aliased_item), |
| | | - filename); |
| | |
| | | + filename); |
| | | + entry = 1; |
| | | + } |
| | | break; |
| | | |
| | | default: |
| | | break; |
| | | |
| | | default: |
| | | @@ -651,15 +666,17 @@ |
| | | } |
| | | |
| | | gmenu_tree_item_unref (aliased_item); |
| | | } |
| | | |
| | | gmenu_tree_item_unref (aliased_item); |
| | | + return entry; |
| | | } |
| | | |
| | | |
| | | -static void |
| | | +static gint |
| | | panel_addto_make_application_list (GSList **parent_list, |
| | | GMenuTreeDirectory *directory, |
| | | const char *filename) |
| | | GMenuTreeDirectory *directory, |
| | | const char *filename) |
| | | { |
| | | GSList *items; |
| | | GSList *l; |
| | | GSList *items; |
| | | GSList *l; |
| | | + gint number_entries = 0; |
| | | |
| | | items = gmenu_tree_directory_get_contents (directory); |
| | | |
| | | |
| | | items = gmenu_tree_directory_get_contents (directory); |
| | | |
| | | @@ -670,11 +687,15 @@ |
| | | break; |
| | | |
| | | case GMENU_TREE_ITEM_ENTRY: |
| | | break; |
| | | |
| | | case GMENU_TREE_ITEM_ENTRY: |
| | | - panel_addto_prepend_entry (parent_list, l->data, filename); |
| | | + if (panel_lockdown_is_allowed_menu_entry (l->data)) { |
| | | + panel_addto_prepend_entry (parent_list, l->data, filename); |
| | | + number_entries = number_entries + 1; |
| | | + } |
| | | break; |
| | | |
| | | case GMENU_TREE_ITEM_ALIAS: |
| | | break; |
| | | |
| | | case GMENU_TREE_ITEM_ALIAS: |
| | | - panel_addto_prepend_alias (parent_list, l->data, filename); |
| | | + number_entries = number_entries + |
| | | + panel_addto_prepend_alias (parent_list, l->data, filename); |
| | | break; |
| | | |
| | | default: |
| | | break; |
| | | |
| | | default: |
| | | @@ -687,6 +708,8 @@ |
| | | g_slist_free (items); |
| | | |
| | | *parent_list = g_slist_reverse (*parent_list); |
| | | g_slist_free (items); |
| | | |
| | | *parent_list = g_slist_reverse (*parent_list); |
| | | + |
| | | + return number_entries; |
| | | } |
| | | |
| | | |
| | | static void |
| | | --- gnome-panel-2.30.2.orig/gnome-panel/panel-lockdown.c 2010-02-09 13:32:08.000000000 +0100 |
| | | +++ gnome-panel-2.30.2/gnome-panel/panel-lockdown.c 2010-12-27 12:59:35.878172712 +0100 |
| | | @@ -28,13 +28,21 @@ |
| | | |
| | | |
| | | #include <string.h> |
| | | #include "panel-gconf.h" |
| | | +#include <libpanel-util/panel-keyfile.h> |
| | | |
| | | |
| | | -#define N_LISTENERS 6 |
| | | +#include <exec_attr.h> |
| | | +#include <user_attr.h> |
| | |
| | | +#include <pwd.h> |
| | | + |
| | | +#define N_LISTENERS 8 |
| | | |
| | | |
| | | #define PANEL_GLOBAL_LOCKDOWN_DIR "/apps/panel/global" |
| | | #define DESKTOP_GNOME_LOCKDOWN_DIR "/desktop/gnome/lockdown" |
| | | #define PANEL_GLOBAL_LOCKED_DOWN_KEY PANEL_GLOBAL_LOCKDOWN_DIR "/locked_down" |
| | |
| | | + guint restrict_application_launching : 1; |
| | | + |
| | | + GSList *allowed_applications; |
| | | |
| | | |
| | | GSList *disabled_applets; |
| | | |
| | | |
| | | @@ -56,6 +68,12 @@ |
| | | GSList *closures; |
| | | } PanelLockdown; |
| | | |
| | | |
| | | +static const gchar *command_line_execs[] = { |
| | | + "/usr/bin/gnome-terminal", |
| | | + "/usr/bin/xterm" |
| | |
| | | +#define NUMBER_COMMAND_LINE_EXECS 2 |
| | | + |
| | | static PanelLockdown panel_lockdown = { 0, }; |
| | | |
| | | |
| | | |
| | | |
| | | @@ -63,9 +81,17 @@ |
| | | panel_lockdown_invoke_closures (PanelLockdown *lockdown) |
| | | { |
| | | GSList *l; |
| | | + GSList *copy = NULL; |
| | | |
| | | |
| | | - for (l = lockdown->closures; l; l = l->next) |
| | | + copy = g_slist_copy (lockdown->closures); |
| | | + for (l = copy; l != NULL; l = l->next) { |
| | |
| | | + } |
| | | + g_slist_free (copy); |
| | | } |
| | | |
| | | |
| | | static void |
| | | @@ -166,6 +192,50 @@ |
| | | panel_lockdown_invoke_closures (lockdown); |
| | | } |
| | | |
| | | |
| | | +static void |
| | | +restrict_application_launching_notify (GConfClient *client, |
| | | + guint cnxn_id, |
| | |
| | | @@ -215,9 +285,43 @@ |
| | | return retval; |
| | | } |
| | | |
| | | |
| | | +static GSList * |
| | | +panel_lockdown_load_allowed_applications (PanelLockdown *lockdown, |
| | | + GConfClient *client, |
| | |
| | | void |
| | | panel_lockdown_init (void) |
| | | { |
| | | + if (panel_lockdown_is_user_authorized()) |
| | | + if (panel_lockdown_is_user_authorized()) |
| | | + { |
| | | + panel_lockdown.locked_down = FALSE; |
| | | + panel_lockdown.disable_command_line = FALSE; |
| | |
| | | + |
| | | GConfClient *client; |
| | | int i = 0; |
| | | |
| | | |
| | | @@ -273,6 +377,18 @@ |
| | | client, |
| | | i++); |
| | | |
| | | + panel_lockdown.restrict_application_launching = |
| | | |
| | | + panel_lockdown.restrict_application_launching = |
| | | + panel_lockdown_load_bool (&panel_lockdown, |
| | | + client, |
| | | + RESTRICT_APPLICATION_LAUNCHING_KEY, |
| | |
| | | + i++); |
| | | + |
| | | g_assert (i == N_LISTENERS); |
| | | |
| | | |
| | | panel_lockdown.initialized = TRUE; |
| | | @@ -294,6 +410,13 @@ |
| | | g_slist_free (panel_lockdown.disabled_applets); |
| | | panel_lockdown.disabled_applets = NULL; |
| | | |
| | | |
| | | + for (l = panel_lockdown.allowed_applications; l; l = l->next) { |
| | | + g_free (l->data); |
| | | + } |
| | |
| | | @@ -371,6 +494,36 @@ |
| | | return FALSE; |
| | | } |
| | | |
| | | |
| | | +gboolean |
| | | +panel_lockdown_get_restrict_application_launching (void) |
| | | +{ |
| | |
| | | panel_lockdown_notify_find (GSList *closures, |
| | | GCallback callback_func, |
| | | @@ -440,3 +593,243 @@ |
| | | |
| | | |
| | | g_closure_unref (closure); |
| | | } |
| | | + |
| | |
| | | + } |
| | | + rolename = strtok(NULL, ","); |
| | | + } |
| | | + |
| | | + |
| | | + free_userattr(userattr); |
| | | + cached_root = TRUE; |
| | | + } |
| | |
| | | @@ -25,8 +25,11 @@ |
| | | #ifndef __PANEL_LOCKDOWN_H__ |
| | | #define __PANEL_LOCKDOWN_H__ |
| | | |
| | | |
| | | +#include <libgnome/gnome-desktop-item.h> |
| | | #include <glib.h> |
| | | #include <glib-object.h> |
| | | +#include <gmenu-tree.h> |
| | | +#include "launcher.h" |
| | | |
| | | |
| | | G_BEGIN_DECLS |
| | | |
| | | |
| | | @@ -39,13 +42,64 @@ |
| | | gboolean panel_lockdown_get_disable_log_out (void); |
| | | gboolean panel_lockdown_get_disable_force_quit (void); |
| | | |
| | | |
| | | +gboolean panel_lockdown_get_restrict_application_launching (void); |
| | | +GSList *panel_lockdown_get_allowed_applications (void); |
| | | + |
| | | gboolean panel_lockdown_is_applet_disabled (const char *iid); |
| | | +gboolean panel_lockdown_is_allowed_application (const gchar *app); |
| | | |
| | | |
| | | void panel_lockdown_notify_add (GCallback callback_func, |
| | | gpointer user_data); |
| | | void panel_lockdown_notify_remove (GCallback callback_func, |
| | | gpointer user_data); |
| | | |
| | | |
| | | +gchar *panel_lockdown_get_stripped_exec (const gchar *full_exec); |
| | | +gchar *panel_lockdown_get_exec_from_ditem (GnomeDesktopItem *ditem); |
| | | +gboolean panel_lockdown_ditem_in_allowed_applications (GnomeDesktopItem *ditem); |
| | |
| | | +#define ROOT_ROLE "root" |
| | | + |
| | | G_END_DECLS |
| | | |
| | | |
| | | #endif /* __PANEL_LOCKDOWN_H__ */ |
| | | --- gnome-panel-2.30.2.orig/gnome-panel/panel-menu-bar.c 2010-06-22 19:27:02.000000000 +0200 |
| | | +++ gnome-panel-2.30.2/gnome-panel/panel-menu-bar.c 2010-12-27 12:47:44.040378527 +0100 |
| | | @@ -69,6 +69,8 @@ |
| | | PROP_ORIENTATION, |
| | | PROP_ORIENTATION, |
| | | }; |
| | | |
| | | |
| | | +static GObjectClass *parent_class = NULL; |
| | | + |
| | | static void panel_menu_bar_update_text_gravity (PanelMenuBar *menubar); |
| | | |
| | | |
| | | static gboolean |
| | | @@ -132,6 +134,32 @@ |
| | | } |
| | | |
| | | |
| | | static void |
| | | +panel_menu_bar_parent_set (GtkWidget *widget, |
| | | + GtkWidget *previous_parent); |
| | |
| | | +static void |
| | | panel_menu_bar_init (PanelMenuBar *menubar) |
| | | { |
| | | GtkWidget *image; |
| | | GtkWidget *image; |
| | | @@ -164,6 +192,8 @@ |
| | | menubar->priv->desktop_item); |
| | | |
| | | panel_menu_bar_setup_tooltip (menubar); |
| | | menubar->priv->desktop_item); |
| | | |
| | | panel_menu_bar_setup_tooltip (menubar); |
| | | + panel_lockdown_notify_add (G_CALLBACK (panel_menubar_recreate_menus), |
| | | + menubar); |
| | | |
| | | panel_menu_bar_update_text_gravity (menubar); |
| | | g_signal_connect (menubar, "screen-changed", |
| | | |
| | | panel_menu_bar_update_text_gravity (menubar); |
| | | g_signal_connect (menubar, "screen-changed", |
| | | @@ -172,6 +202,15 @@ |
| | | } |
| | | |
| | | |
| | | static void |
| | | +panel_menu_bar_finalize (GObject *object) |
| | | +{ |
| | |
| | | + |
| | | +static void |
| | | panel_menu_bar_get_property (GObject *object, |
| | | guint prop_id, |
| | | GValue *value, |
| | | guint prop_id, |
| | | GValue *value, |
| | | @@ -274,10 +313,13 @@ |
| | | |
| | | gobject_class->get_property = panel_menu_bar_get_property; |
| | | |
| | | gobject_class->get_property = panel_menu_bar_get_property; |
| | | gobject_class->set_property = panel_menu_bar_set_property; |
| | | + gobject_class->finalize = panel_menu_bar_finalize; |
| | | |
| | | widget_class->parent_set = panel_menu_bar_parent_set; |
| | | widget_class->size_allocate = panel_menu_bar_size_allocate; |
| | | |
| | | |
| | | widget_class->parent_set = panel_menu_bar_parent_set; |
| | | widget_class->size_allocate = panel_menu_bar_size_allocate; |
| | | |
| | | + parent_class = g_type_class_peek_parent (klass); |
| | | + |
| | | g_type_class_add_private (klass, sizeof (PanelMenuBarPrivate)); |
| | | |
| | | g_object_class_install_property ( |
| | | g_type_class_add_private (klass, sizeof (PanelMenuBarPrivate)); |
| | | |
| | | g_object_class_install_property ( |
| | | --- gnome-panel-2.30.2.orig/gnome-panel/panel-menu-items.c 2010-12-27 13:01:19.490005304 +0100 |
| | | +++ gnome-panel-2.30.2/gnome-panel/panel-menu-items.c 2010-12-27 12:47:44.059419355 +0100 |
| | | @@ -158,6 +158,21 @@ |
| | | char *icon; |
| | | char *name; |
| | | char *comment; |
| | | char *icon; |
| | | char *name; |
| | | char *comment; |
| | | + GnomeDesktopItem *ditem; |
| | | + |
| | | + |
| | | + /* If restricted application, then don't append */ |
| | | + if (g_path_is_absolute (path)) |
| | | + ditem = gnome_desktop_item_new_from_file (path, 0, NULL); |
| | |
| | | + if (ditem != NULL) { |
| | | + gnome_desktop_item_unref (ditem); |
| | | + } |
| | | |
| | | path_freeme = NULL; |
| | | |
| | | |
| | | path_freeme = NULL; |
| | | |
| | | @@ -1116,7 +1131,7 @@ |
| | | return places_menu; |
| | | return places_menu; |
| | | } |
| | | |
| | | |
| | | -static void |
| | | +void |
| | | panel_place_menu_item_recreate_menu (GtkWidget *widget) |
| | | { |
| | | PanelPlaceMenuItem *place_item; |
| | | PanelPlaceMenuItem *place_item; |
| | | @@ -1224,7 +1239,7 @@ |
| | | return desktop_menu; |
| | | return desktop_menu; |
| | | } |
| | | |
| | | |
| | | -static void |
| | | +void |
| | | panel_desktop_menu_item_recreate_menu (PanelDesktopMenuItem *desktop_item) |
| | | { |
| | | if (desktop_item->priv->menu) { |
| | | if (desktop_item->priv->menu) { |
| | | @@ -1592,8 +1607,11 @@ |
| | | tooltip = NULL; |
| | | } |
| | | |
| | | tooltip = NULL; |
| | | } |
| | | |
| | | - item = panel_menu_items_create_action_item_full (PANEL_ACTION_LOGOUT, |
| | | - label, tooltip); |
| | | + if (!panel_lockdown_get_disable_log_out ()) { |
| | |
| | | + label, tooltip); |
| | | + } |
| | | + |
| | | g_free (label); |
| | | g_free (tooltip); |
| | | |
| | | g_free (label); |
| | | g_free (tooltip); |
| | | |
| | | @@ -1619,5 +1637,21 @@ |
| | | panel_menu_item_activate_desktop_file (GtkWidget *menuitem, |
| | | const char *path) |
| | | const char *path) |
| | | { |
| | | + GnomeDesktopItem *ditem; |
| | | + |
| | | + |
| | | + if (g_path_is_absolute (path)) |
| | | + ditem = gnome_desktop_item_new_from_file (path, 0, NULL); |
| | | + else |
| | | + ditem = gnome_desktop_item_new_from_basename (path, 0, NULL); |
| | | + |
| | | + |
| | | + if (ditem != NULL && panel_lockdown_is_forbidden_ditem (ditem)) { |
| | | + gnome_desktop_item_unref (ditem); |
| | | + return; /* Don't launch as it's a forbidden desktop file */ |
| | | + } |
| | | + |
| | | + |
| | | + if (ditem != NULL) { |
| | | + gnome_desktop_item_unref (ditem); |
| | | + } |
| | | + |
| | | panel_launch_desktop_file (path, menuitem_to_screen (menuitem), NULL); |
| | | panel_launch_desktop_file (path, menuitem_to_screen (menuitem), NULL); |
| | | } |
| | | --- gnome-panel-2.30.2.orig/gnome-panel/panel-menu-items.h 2010-02-09 13:32:08.000000000 +0100 |
| | | +++ gnome-panel-2.30.2/gnome-panel/panel-menu-items.h 2010-12-27 12:47:44.039156167 +0100 |
| | | @@ -90,6 +90,8 @@ |
| | | void panel_menu_items_append_lock_logout (GtkWidget *menu); |
| | | void panel_menu_item_activate_desktop_file (GtkWidget *menuitem, |
| | | const char *path); |
| | | const char *path); |
| | | +void panel_place_menu_item_recreate_menu (GtkWidget *widget); |
| | | +void panel_desktop_menu_item_recreate_menu (PanelDesktopMenuItem *desktop_item); |
| | | |
| | | |
| | | G_END_DECLS |
| | | |
| | |
| | | --- gnome-panel-2.27.92.old/gnome-panel/menu.c 2009-09-14 13:54:27.541171000 +0100 |
| | | +++ gnome-panel-2.27.92/gnome-panel/menu.c 2009-09-14 13:55:13.776722000 +0100 |
| | | @@ -1821,6 +1821,53 @@ main_menu_append (GtkWidget *main_menu, |
| | | panel_menu_items_append_lock_logout (main_menu); |
| | | panel_menu_items_append_lock_logout (main_menu); |
| | | } |
| | | |
| | | |
| | | +void |
| | | +run_applications (GtkWidget *widget, gpointer user_data) |
| | | +{ |
| | |
| | | --- gnome-panel-2.27.92.old/gnome-panel/menu.h 2009-09-14 13:54:27.545416000 +0100 |
| | | +++ gnome-panel-2.27.92/gnome-panel/menu.h 2009-09-14 13:55:13.778639000 +0100 |
| | | @@ -69,6 +69,8 @@ GtkWidget *add_menu_separator (Gt |
| | | |
| | | |
| | | gboolean menu_dummy_button_press_event (GtkWidget *menuitem, |
| | | GdkEventButton *event); |
| | | GdkEventButton *event); |
| | | +void run_applications (GtkWidget *widget, gpointer user_data); |
| | | +void applications_menu_append (GtkWidget *main_menu); |
| | | |
| | | |
| | | |
| | | |
| | | G_END_DECLS |
| | | /jds/bin/diff -uprN gnome-panel-2.27.92.old/gnome-panel/panel-menu-items.c gnome-panel-2.27.92/gnome-panel/panel-menu-items.c |
| | | --- gnome-panel-2.27.92.old/gnome-panel/panel-menu-items.c 2009-09-14 13:54:27.547045000 +0100 |
| | | +++ gnome-panel-2.27.92/gnome-panel/panel-menu-items.c 2009-09-14 13:55:13.788961000 +0100 |
| | | @@ -1173,6 +1173,7 @@ panel_desktop_menu_item_append_menu (Gtk |
| | | add_menu_separator (menu); |
| | | |
| | | panel_menu_items_append_from_desktop (menu, "yelp.desktop", NULL, FALSE); |
| | | add_menu_separator (menu); |
| | | |
| | | panel_menu_items_append_from_desktop (menu, "yelp.desktop", NULL, FALSE); |
| | | + panel_menu_items_append_from_desktop (menu, "openindiana-about.desktop", NULL, FALSE); |
| | | panel_menu_items_append_from_desktop (menu, "gnome-about.desktop", NULL, FALSE); |
| | | |
| | | if (parent->priv->append_lock_logout) |
| | | panel_menu_items_append_from_desktop (menu, "gnome-about.desktop", NULL, FALSE); |
| | | |
| | | if (parent->priv->append_lock_logout) |
| | | /jds/bin/diff -uprN gnome-panel-2.27.92.old/gnome-panel/panel-menu-bar.c gnome-panel-2.27.92/gnome-panel/panel-menu-bar.c |
| | | --- gnome-panel-2.27.92.old/gnome-panel/panel-menu-bar.c 2009-09-22 14:37:48.346822883 +0100 |
| | | +++ gnome-panel-2.27.92/gnome-panel/panel-menu-bar.c 2009-09-22 14:51:43.685055758 +0100 |
| | | @@ -154,13 +154,33 @@ panel_menubar_recreate_menus (PanelMenuB |
| | | (PanelDesktopMenuItem *)menubar->priv->desktop_item); |
| | | |
| | | |
| | | panel_menu_bar_parent_set ((GtkWidget *)menubar, NULL); |
| | | + g_object_set_data (G_OBJECT (menubar->priv->applications_menu), |
| | | + "panel-menu-needs-appending", TRUE); |
| | | } |
| | | } |
| | | |
| | | |
| | | static void |
| | | +panel_menu_bar_handle_gmenu_change(GMenuTree *tree, |
| | | + GtkWidget *menu) |
| | |
| | | +static void |
| | | panel_menu_bar_init (PanelMenuBar *menubar) |
| | | { |
| | | GtkWidget *image; |
| | | GtkWidget *image; |
| | | + GMenuTree *tree; |
| | | |
| | | menubar->priv = PANEL_MENU_BAR_GET_PRIVATE (menubar); |
| | | |
| | | |
| | | menubar->priv = PANEL_MENU_BAR_GET_PRIVATE (menubar); |
| | | |
| | | @@ -168,6 +188,20 @@ panel_menu_bar_init (PanelMenuBar *menub |
| | | |
| | | menubar->priv->applications_menu = create_applications_menu ("applications.menu", NULL, TRUE); |
| | | |
| | | |
| | | menubar->priv->applications_menu = create_applications_menu ("applications.menu", NULL, TRUE); |
| | | |
| | | + tree = gmenu_tree_lookup ("applications.menu", GMENU_TREE_FLAGS_NONE); |
| | | + |
| | | + gmenu_tree_add_monitor (tree, |
| | |
| | | + g_signal_connect (menubar->priv->applications_menu, "show", |
| | | + G_CALLBACK(applications_menu_append), NULL); |
| | | + |
| | | menubar->priv->applications_item = panel_image_menu_item_new (); |
| | | gtk_menu_item_set_label (GTK_MENU_ITEM (menubar->priv->applications_item), |
| | | _("Applications")); |
| | | menubar->priv->applications_item = panel_image_menu_item_new (); |
| | | gtk_menu_item_set_label (GTK_MENU_ITEM (menubar->priv->applications_item), |
| | | _("Applications")); |
| | |
| | | /jds/bin/diff -uprN gnome-panel-2.26.3.old/gnome-panel/panel-menu-items.c gnome-panel-2.26.3/gnome-panel/panel-menu-items.c |
| | | --- gnome-panel-2.26.3.old/gnome-panel/panel-menu-items.c 2009-07-01 20:43:32.816700000 +0100 |
| | | +++ gnome-panel-2.26.3/gnome-panel/panel-menu-items.c 2009-07-01 20:45:37.780403000 +0100 |
| | | @@ -604,7 +604,8 @@ panel_menu_item_append_drive (GtkWidget |
| | | title); |
| | | g_object_unref (icon); |
| | | |
| | | @@ -604,7 +604,8 @@ panel_menu_item_append_drive (GtkWidget |
| | | title); |
| | | g_object_unref (icon); |
| | | |
| | | - tooltip = g_strdup_printf (_("Rescan %s"), title); |
| | | + /* SUN_BRANDING tooltip */ |
| | | + tooltip = g_strdup_printf (_("Open %s"), title); |
| | | panel_util_set_tooltip_text (item, tooltip); |
| | | g_free (tooltip); |
| | | |
| | | panel_util_set_tooltip_text (item, tooltip); |
| | | g_free (tooltip); |
| | | |
| | | @@ -704,7 +705,8 @@ panel_menu_item_append_volume (GtkWidget |
| | | title); |
| | | g_object_unref (icon); |
| | | |
| | | title); |
| | | g_object_unref (icon); |
| | | |
| | | - tooltip = g_strdup_printf (_("Mount %s"), title); |
| | | + /* SUN_BRANDING tooltip */ |
| | | + tooltip = g_strdup_printf (_("Open %s"), title); |
| | | panel_util_set_tooltip_text (item, tooltip); |
| | | g_free (tooltip); |
| | | |
| | | @@ -729,6 +731,7 @@ panel_menu_item_append_mount (GtkWidget |
| | | GIcon *icon; |
| | | char *display_name; |
| | | char *activation_uri; |
| | | panel_util_set_tooltip_text (item, tooltip); |
| | | g_free (tooltip); |
| | | |
| | | @@ -729,6 +731,7 @@ panel_menu_item_append_mount (GtkWidget |
| | | GIcon *icon; |
| | | char *display_name; |
| | | char *activation_uri; |
| | | + char *tooltip; |
| | | |
| | | icon = g_mount_get_icon (mount); |
| | | display_name = g_mount_get_name (mount); |
| | | @@ -737,12 +740,15 @@ panel_menu_item_append_mount (GtkWidget |
| | | activation_uri = g_file_get_uri (root); |
| | | g_object_unref (root); |
| | | |
| | | |
| | | icon = g_mount_get_icon (mount); |
| | | display_name = g_mount_get_name (mount); |
| | | @@ -737,12 +740,15 @@ panel_menu_item_append_mount (GtkWidget |
| | | activation_uri = g_file_get_uri (root); |
| | | g_object_unref (root); |
| | | |
| | | + /* SUN_BRANDING tooltip */ |
| | | + tooltip = g_strdup_printf (_("Open %s"), display_name); |
| | | panel_menu_items_append_place_item (NULL, icon, |
| | | display_name, |
| | | panel_menu_items_append_place_item (NULL, icon, |
| | | display_name, |
| | | - display_name, //FIXME tooltip |
| | | + tooltip, |
| | | menu, |
| | | G_CALLBACK (activate_uri), |
| | | activation_uri); |
| | | menu, |
| | | G_CALLBACK (activate_uri), |
| | | activation_uri); |
| | | + g_free (tooltip); |
| | | |
| | | g_object_unref (icon); |
| | | g_free (display_name); |
| | | |
| | | g_object_unref (icon); |
| | | g_free (display_name); |
| | | @@ -1566,9 +1572,10 @@ panel_menu_items_append_lock_logout (Gtk |
| | | g_get_user_name ()); |
| | | /* Translators: this string is used ONLY if you translated |
| | | * "1" (msgctxt: "panel:showusername") to "1" */ |
| | | g_get_user_name ()); |
| | | /* Translators: this string is used ONLY if you translated |
| | | * "1" (msgctxt: "panel:showusername") to "1" */ |
| | | - tooltip = g_strdup_printf (_("Log out %s of this session to " |
| | | - "log in as a different user"), |
| | | - user_name); |
| | |
| | | + tooltip = g_strdup_printf (_("Log out %s from this session and " |
| | | + "return to log in screen"), |
| | | + g_get_user_name ()); |
| | | } else { |
| | | label = NULL; |
| | | tooltip = NULL; |
| | | } else { |
| | | label = NULL; |
| | | tooltip = NULL; |
| | |
| | | --- gnome-panel-2.27.91.old/applets/clock/clock.c 2009-08-27 18:45:22.763599000 +0100 |
| | | +++ gnome-panel-2.27.91/applets/clock/clock.c 2009-08-27 18:57:31.552271000 +0100 |
| | | @@ -146,6 +146,8 @@ struct _ClockData { |
| | | GtkWidget *minutes_spin; |
| | | GtkWidget *seconds_spin; |
| | | GtkWidget *set_time_button; |
| | | GtkWidget *minutes_spin; |
| | | GtkWidget *seconds_spin; |
| | | GtkWidget *set_time_button; |
| | | + GtkWidget *show_weather_toggle; |
| | | + GtkWidget *show_temperature_toggle; |
| | | |
| | | GtkListStore *cities_store; |
| | | |
| | | GtkListStore *cities_store; |
| | | GtkWidget *cities_section; |
| | | @@ -234,6 +236,7 @@ static void applet_change_orient (PanelA |
| | | ClockData *cd); |
| | | |
| | | ClockData *cd); |
| | | |
| | | static void edit_hide (GtkWidget *unused, ClockData *cd); |
| | | +static void update_show_weather_toggles (ClockData *cd); |
| | | static gboolean edit_delete (GtkWidget *unused, GdkEvent *event, ClockData *cd); |
| | | static void save_cities_store (ClockData *cd); |
| | | |
| | | |
| | | @@ -1975,11 +1978,38 @@ update_panel_weather (ClockData *cd) |
| | | gtk_widget_hide (cd->panel_temperature_label); |
| | | |
| | | if ((cd->show_weather || cd->show_temperature) && |
| | | |
| | | if ((cd->show_weather || cd->show_temperature) && |
| | | - g_list_length (cd->locations) > 0) |
| | | - gtk_widget_show (cd->weather_obox); |
| | | - else |
| | |
| | | + ClockLocation *loc = NULL; |
| | | + GList *locations, *l; |
| | | + gboolean current_found = FALSE; |
| | | |
| | | |
| | | + /* need to process locations, if there is no current |
| | | + location then hide the weather/temperature on panel */ |
| | | + locations = cd->locations; |
| | |
| | | + } else { |
| | | + gtk_widget_hide (cd->weather_obox); |
| | | + } |
| | | + |
| | | + |
| | | + if (g_list_length (cd->locations) <= 0) { |
| | | + if (cd->panel_weather_icon) |
| | | + gtk_image_set_from_pixbuf (GTK_IMAGE (cd->panel_weather_icon), |
| | |
| | | + if (cd->panel_temperature_label) |
| | | + gtk_label_set_text (GTK_LABEL (cd->panel_temperature_label), ""); |
| | | + } |
| | | gtk_widget_queue_resize (cd->applet); |
| | | gtk_widget_queue_resize (cd->applet); |
| | | } |
| | | |
| | | |
| | | @@ -2074,19 +2104,7 @@ locations_changed (ClockData *cd) |
| | | ClockLocation *loc; |
| | | glong id; |
| | | |
| | | ClockLocation *loc; |
| | | glong id; |
| | | |
| | | - if (!cd->locations) { |
| | | - if (cd->weather_obox) |
| | | - gtk_widget_hide (cd->weather_obox); |
| | |
| | | - gtk_widget_show (cd->weather_obox); |
| | | - } |
| | | + update_panel_weather (cd); |
| | | |
| | | for (l = cd->locations; l; l = l->next) { |
| | | loc = l->data; |
| | | |
| | | for (l = cd->locations; l; l = l->next) { |
| | | loc = l->data; |
| | | @@ -3121,12 +3139,25 @@ edit_clear (ClockData *cd) |
| | | } |
| | | |
| | | |
| | | static void |
| | | +update_show_weather_toggles(ClockData *cd) |
| | | +{ |
| | |
| | | edit_hide (GtkWidget *unused, ClockData *cd) |
| | | { |
| | | GtkWidget *edit_window = _clock_get_widget (cd, "edit-location-window"); |
| | | |
| | | |
| | | gtk_widget_hide (edit_window); |
| | | edit_clear (cd); |
| | | + update_show_weather_toggles (cd); |
| | | } |
| | | |
| | | |
| | | static gboolean |
| | | @@ -3197,6 +3228,8 @@ run_prefs_locations_remove (GtkButton *b |
| | | GtkTreeSelection *sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (cd->prefs_locations)); |
| | | |
| | | |
| | | gtk_tree_selection_selected_foreach (sel, remove_tree_row, cd); |
| | | + update_panel_weather (cd); |
| | | + update_show_weather_toggles (cd); |
| | | } |
| | | |
| | | |
| | | static void |
| | | @@ -3413,17 +3446,22 @@ fill_prefs_window (ClockData *cd) |
| | | G_CALLBACK (set_show_seconds_cb), cd); |
| | | |
| | | /* Set the "Show weather" checkbox */ |
| | | |
| | | /* Set the "Show weather" checkbox */ |
| | | - widget = _clock_get_widget (cd, "weather_check"); |
| | | - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), cd->show_weather); |
| | | - g_signal_connect (widget, "toggled", |
| | |
| | | + cd->show_weather); |
| | | + g_signal_connect (cd->show_weather_toggle, "toggled", |
| | | G_CALLBACK (set_show_weather_cb), cd); |
| | | |
| | | /* Set the "Show temperature" checkbox */ |
| | | |
| | | /* Set the "Show temperature" checkbox */ |
| | | - widget = _clock_get_widget (cd, "temperature_check"); |
| | | - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), cd->show_temperature); |
| | | - g_signal_connect (widget, "toggled", |
| | |
| | | + GTK_TOGGLE_BUTTON (cd->show_temperature_toggle), cd->show_temperature); |
| | | + g_signal_connect (cd->show_temperature_toggle, "toggled", |
| | | G_CALLBACK (set_show_temperature_cb), cd); |
| | | |
| | | |
| | | + /* If no Locations then cannot show/hide weather/temperature */ |
| | | + update_show_weather_toggles (cd); |
| | | + |
| | | /* Fill the Cities list */ |
| | | widget = _clock_get_widget (cd, "cities_list"); |
| | | |
| | | /* Fill the Cities list */ |
| | | widget = _clock_get_widget (cd, "cities_list"); |
| | | |
| | | @@ -3490,8 +3528,10 @@ ensure_prefs_window_is_created (ClockDat |
| | | GtkTreeSelection *selection; |
| | | GWeatherLocation *world; |
| | | |
| | | |
| | | - if (cd->prefs_window) |
| | | + if (cd->prefs_window) { |
| | | + update_show_weather_toggles (cd); |
| | | return; |
| | | + } |
| | | |
| | | |
| | | cd->prefs_window = _clock_get_widget (cd, "prefs-window"); |
| | | |
| | |
| | | #include <math.h> |
| | | #include <locale.h> |
| | | +#include <stdlib.h> |
| | | |
| | | |
| | | #include <panel-applet.h> |
| | | #include <panel-applet-gconf.h> |
| | | @@ -1647,7 +1648,10 @@ |
| | | can_set = can_set_system_time (); |
| | | |
| | | if (cd->time_settings_button) |
| | | can_set = can_set_system_time (); |
| | | |
| | | if (cd->time_settings_button) |
| | | - gtk_widget_set_sensitive (cd->time_settings_button, can_set); |
| | | + if (can_set) |
| | | + gtk_widget_set_sensitive (cd->time_settings_button, can_set); |
| | | + else // hide widget rather than make it insensitive |
| | | + gtk_widget_hide (cd->time_settings_button); |
| | | |
| | | if (cd->set_time_button) { |
| | | gtk_widget_set_sensitive (cd->set_time_button, can_set != 0); |
| | | |
| | | if (cd->set_time_button) { |
| | | gtk_widget_set_sensitive (cd->set_time_button, can_set != 0); |
| | | @@ -1848,14 +1852,12 @@ |
| | | static void |
| | | run_time_settings (GtkWidget *unused, ClockData *cd) |
| | |
| | | + } |
| | | + refresh_clock_timeout (cd); |
| | | } |
| | | |
| | | |
| | | static void |
| | |
| | | --- gnome-panel-2.32.1/configure.ac.~2~ 2015-01-05 19:15:39.730833689 +0300 |
| | | +++ gnome-panel-2.32.1/configure.ac 2015-01-05 19:17:46.889390083 +0300 |
| | | @@ -279,7 +279,7 @@ |
| | | |
| | | |
| | | if test "x$HAVE_BONOBO" = "xyes"; then |
| | | PKG_CHECK_MODULES(PANEL_MODULE_BONOBO, ORBit-2.0 >= $ORBIT_REQUIRED libbonoboui-2.0 >= $LIBBONOBOUI_REQUIRED) |
| | | - PKG_CHECK_MODULES(LIBPANEL_APPLET_BONOBO, ORBit-2.0 >= $ORBIT_REQUIRED gtk+-2.0 >= $GTK_REQUIRED libbonoboui-2.0 >= $LIBBONOBOUI_REQUIRED gconf-2.0 >= $GCONF_REQUIRED) |
| | | + PKG_CHECK_MODULES(LIBPANEL_APPLET_BONOBO, ORBit-2.0 >= $ORBIT_REQUIRED gtk+-2.0 >= $GTK_REQUIRED libbonoboui-2.0 >= $LIBBONOBOUI_REQUIRED gconf-2.0 >= $GCONF_REQUIRED gnome-desktop-2.0 >= $LIBGNOME_DESKTOP_REQUIRED) |
| | | |
| | | |
| | | dnl IDL directories |
| | | ORBIT_IDL="`$PKG_CONFIG --variable=orbit_idl ORBit-2.0`" |
| | |
| | | --- gnome-panel-2.32.1/configure.ac.~1~ 2010-11-17 14:22:15.000000000 +0300 |
| | | +++ gnome-panel-2.32.1/configure.ac 2015-03-27 19:13:32.855312420 +0300 |
| | | @@ -76,7 +76,7 @@ |
| | | |
| | | |
| | | PKG_CHECK_MODULES(EGG_SMCLIENT, ice sm gtk+-2.0) |
| | | |
| | | |
| | | -PKG_CHECK_MODULES(PANEL, gdk-pixbuf-2.0 >= $GDK_PIXBUF_REQUIRED pango >= $PANGO_REQUIRED gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED gio-2.0 >= $GLIB_REQUIRED gio-unix-2.0 >= $GLIB_REQUIRED gnome-desktop-2.0 >= $LIBGNOME_DESKTOP_REQUIRED gconf-2.0 >= $GCONF_REQUIRED libgnome-menu >= $LIBGNOME_MENU_REQUIRED libcanberra-gtk dbus-glib-1 >= $DBUS_GLIB_REQUIRED) |
| | | +PKG_CHECK_MODULES(PANEL, gdk-pixbuf-2.0 >= $GDK_PIXBUF_REQUIRED pango >= $PANGO_REQUIRED gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED gio-2.0 >= $GLIB_REQUIRED gio-unix-2.0 >= $GLIB_REQUIRED gnome-desktop-2.0 >= $LIBGNOME_DESKTOP_REQUIRED gconf-2.0 >= $GCONF_REQUIRED libgnome-menu >= $LIBGNOME_MENU_REQUIRED libcanberra-gtk dbus-glib-1 >= $DBUS_GLIB_REQUIRED gmodule-2.0) |
| | | AC_SUBST(PANEL_CFLAGS) |
| | | AC_SUBST(PANEL_LIBS) |
| | | |
| | |
| | | --- gnome-panel-2.32.1/gnome-panel/libpanel-applet-private/panel-applet-frame-dbus.c.1 2015-12-02 10:24:02.082165842 +0300 |
| | | +++ gnome-panel-2.32.1/gnome-panel/libpanel-applet-private/panel-applet-frame-dbus.c 2015-12-02 10:24:21.328460414 +0300 |
| | | @@ -329,8 +329,7 @@ |
| | | PanelAppletFrameDBus *frame = PANEL_APPLET_FRAME_DBUS (object); |
| | | |
| | | if (frame->priv->bg_cancellable) |
| | | PanelAppletFrameDBus *frame = PANEL_APPLET_FRAME_DBUS (object); |
| | | |
| | | if (frame->priv->bg_cancellable) |
| | | - g_object_unref (frame->priv->bg_cancellable); |
| | | - frame->priv->bg_cancellable = NULL; |
| | | + g_cancellable_cancel (frame->priv->bg_cancellable); |
| | | |
| | | G_OBJECT_CLASS (panel_applet_frame_dbus_parent_class)->finalize (object); |
| | | |
| | | G_OBJECT_CLASS (panel_applet_frame_dbus_parent_class)->finalize (object); |
| | | } |
| | |
| | | |
| | | CONFIGURE_OPTIONS+= --sysconfdir=/etc |
| | | CONFIGURE_ENV+= PYTHON=$(PYTHON) |
| | | CONFIGURE_ENV+= PERL=$(PERL) |
| | | |
| | | # common targets |
| | | build: $(BUILD_32) |
| | |
| | | @@ -4,6 +4,12 @@ |
| | | #include <gedit/gedit-message-bus.h> |
| | | #include <gedit/gedit-message.h> |
| | | |
| | | |
| | | +#if PY_VERSION_HEX < 0x02050000 |
| | | +typedef int Py_ssize_t; |
| | | +#define PY_SSIZE_T_MAX INT_MAX |
| | |
| | | --- gedit-2.26.3.orig/gedit/gedit-view.c 2009-07-08 12:39:39.441938100 +0530 |
| | | +++ gedit-2.26.3/gedit/gedit-view.c 2009-07-08 12:46:28.261536300 +0530 |
| | | @@ -523,9 +523,8 @@ gedit_view_cut_clipboard (GeditView *vie |
| | | /* FIXME: what is default editability of a buffer? */ |
| | | gtk_text_buffer_cut_clipboard (buffer, |
| | | clipboard, |
| | | /* FIXME: what is default editability of a buffer? */ |
| | | gtk_text_buffer_cut_clipboard (buffer, |
| | | clipboard, |
| | | - !gedit_document_get_readonly ( |
| | | - GEDIT_DOCUMENT (buffer))); |
| | | - |
| | | - |
| | | + TRUE); /* Fix Bug 6601741 */ |
| | | + |
| | | gtk_text_view_scroll_to_mark (GTK_TEXT_VIEW (view), |
| | | gtk_text_buffer_get_insert (buffer), |
| | | GEDIT_VIEW_SCROLL_MARGIN, |
| | | + |
| | | gtk_text_view_scroll_to_mark (GTK_TEXT_VIEW (view), |
| | | gtk_text_buffer_get_insert (buffer), |
| | | GEDIT_VIEW_SCROLL_MARGIN, |
| | | @@ -575,8 +574,7 @@ gedit_view_paste_clipboard (GeditView *v |
| | | gtk_text_buffer_paste_clipboard (buffer, |
| | | clipboard, |
| | | NULL, |
| | | gtk_text_buffer_paste_clipboard (buffer, |
| | | clipboard, |
| | | NULL, |
| | | - !gedit_document_get_readonly ( |
| | | - GEDIT_DOCUMENT (buffer))); |
| | | + TRUE); /* Fix Bug 6601741 */ |
| | | |
| | | gtk_text_view_scroll_to_mark (GTK_TEXT_VIEW (view), |
| | | gtk_text_buffer_get_insert (buffer), |
| | | |
| | | gtk_text_view_scroll_to_mark (GTK_TEXT_VIEW (view), |
| | | gtk_text_buffer_get_insert (buffer), |
| | | @@ -608,9 +606,8 @@ gedit_view_delete_selection (GeditView * |
| | | /* FIXME: what is default editability of a buffer? */ |
| | | gtk_text_buffer_delete_selection (buffer, |
| | | TRUE, |
| | | /* FIXME: what is default editability of a buffer? */ |
| | | gtk_text_buffer_delete_selection (buffer, |
| | | TRUE, |
| | | - !gedit_document_get_readonly ( |
| | | - GEDIT_DOCUMENT (buffer))); |
| | | - |
| | | - |
| | | + TRUE); /* Fix Bug 6601741 */ |
| | | + |
| | | gtk_text_view_scroll_to_mark (GTK_TEXT_VIEW (view), |
| | | gtk_text_buffer_get_insert (buffer), |
| | | GEDIT_VIEW_SCROLL_MARGIN, |
| | | + |
| | | gtk_text_view_scroll_to_mark (GTK_TEXT_VIEW (view), |
| | | gtk_text_buffer_get_insert (buffer), |
| | | GEDIT_VIEW_SCROLL_MARGIN, |
| | |
| | | +++ gedit-2.30.2/configure.ac 2010-04-23 12:38:34.586073252 +0100 |
| | | @@ -1,6 +1,6 @@ |
| | | dnl Process this file with autoconf to produce a configure script. |
| | | |
| | | |
| | | -AC_PREREQ(2.63.2) |
| | | +#AC_PREREQ(2.63.2) |
| | | |
| | | |
| | | m4_define(gedit_major_version, 2) |
| | | m4_define(gedit_minor_version, 30) |
| | | diff -ruN gedit-2.30.2.orig/configure.ac gedit-2.30.2/configure.ac |
| | |
| | | @@ -24,6 +24,8 @@ |
| | | AM_MAINTAINER_MODE |
| | | m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) |
| | | |
| | | |
| | | +AC_PROG_LIBTOOL |
| | | + |
| | | # Checks for programs |
| | |
| | | +++ gedit-2.30.2/configure.ac 2010-04-22 15:41:53.799049461 +0100 |
| | | @@ -36,8 +36,8 @@ |
| | | AC_PROG_OBJC |
| | | |
| | | |
| | | # Initialize libtool |
| | | -LT_PREREQ([2.2.6]) |
| | | -LT_INIT(disable-static) |
| | | +#LT_PREREQ([2.2.6]) |
| | | +#LT_INIT(disable-static) |
| | | |
| | | |
| | | GEDIT_API_VERSION=2.20 |
| | | AC_SUBST(GEDIT_API_VERSION) |
| | | diff -ruN gedit-2.30.2.orig/Makefile.am gedit-2.30.2/Makefile.am |
| | |
| | | @@ -1,7 +1,7 @@ |
| | | ## Process this file with automake to produce Makefile.in |
| | | ACLOCAL_AMFLAGS = -I m4 |
| | | |
| | | |
| | | -SUBDIRS = gedit pixmaps po data plugin-loaders plugins docs tests win32 osx |
| | | +SUBDIRS = gedit pixmaps po data plugin-loaders plugins docs win32 osx |
| | | |
| | | |
| | | if !OS_OSX |
| | | SUBDIRS += help |
| | |
| | | +++ b/plugins/time/gedit-time-plugin.c Thu May 27 15:34:14 2010 +0800 |
| | | @@ -359,12 +359,6 @@ |
| | | { |
| | | const gchar * str; |
| | | |
| | | const gchar * str; |
| | | |
| | | - if (!gconf_client_key_is_writable (plugin->priv->gconf_client, |
| | | - PROMPT_TYPE_KEY, |
| | | - NULL)) |
| | | - { |
| | | - return; |
| | | - } |
| | | |
| | | switch (prompt_type) |
| | | { |
| | | |
| | | switch (prompt_type) |
| | | { |
| | | @@ -406,12 +400,6 @@ |
| | | { |
| | | g_return_if_fail (format != NULL); |
| | | |
| | | g_return_if_fail (format != NULL); |
| | | |
| | | - if (!gconf_client_key_is_writable (plugin->priv->gconf_client, |
| | | - SELECTED_FORMAT_KEY, |
| | | - NULL)) |
| | | - { |
| | | - return; |
| | | - } |
| | | |
| | | gconf_client_set_string (plugin->priv->gconf_client, |
| | | SELECTED_FORMAT_KEY, |
| | | |
| | | gconf_client_set_string (plugin->priv->gconf_client, |
| | | SELECTED_FORMAT_KEY, |
| | | @@ -438,10 +426,6 @@ |
| | | { |
| | | g_return_if_fail (format != NULL); |
| | | |
| | | g_return_if_fail (format != NULL); |
| | | |
| | | - if (!gconf_client_key_is_writable (plugin->priv->gconf_client, |
| | | - CUSTOM_FORMAT_KEY, |
| | | - NULL)) |
| | | - return; |
| | | |
| | | gconf_client_set_string (plugin->priv->gconf_client, |
| | | CUSTOM_FORMAT_KEY, |
| | | |
| | | gconf_client_set_string (plugin->priv->gconf_client, |
| | | CUSTOM_FORMAT_KEY, |
| | |
| | | +++ ../SUNWgnome-text-editor-2.30.4.link/gedit-2.30.4/configure.ac 2011-06-01 16:10:02.560925030 +0000 |
| | | @@ -322,6 +322,7 @@ |
| | | test "$os_win32" = "no"; then |
| | | PKG_CHECK_MODULES(EGG_SMCLIENT, [ |
| | | sm >= 1.0.0 |
| | | PKG_CHECK_MODULES(EGG_SMCLIENT, [ |
| | | sm >= 1.0.0 |
| | | + ice |
| | | ]) |
| | | ]) |
| | | else |
| | | EGG_SMCLIENT_CFLAGS= |
| | | EGG_SMCLIENT_CFLAGS= |
| | |
| | | --- gedit-2.30.4.original/gedit/bacon-message-connection.c 2010-09-27 21:23:51.000000000 +0200 |
| | | +++ gedit-2.30.4/gedit/bacon-message-connection.c 2012-05-09 06:40:48.923548188 +0200 |
| | | @@ -39,6 +39,7 @@ |
| | | gboolean is_server; |
| | | |
| | | /* The socket path itself */ |
| | | gboolean is_server; |
| | | |
| | | /* The socket path itself */ |
| | | + char *socketdir; |
| | | char *path; |
| | | |
| | | /* File descriptor of the socket */ |
| | | char *path; |
| | | |
| | | /* File descriptor of the socket */ |
| | | @@ -222,18 +223,39 @@ |
| | | } |
| | | |
| | | |
| | | static char * |
| | | -socket_filename (const char *prefix) |
| | | +socket_tempdir(const char *prefix) |
| | | { |
| | | - char *pattern, *newfile, *path, *filename; |
| | | + struct stat s; |
| | | const char *tmpdir; |
| | | const char *tmpdir; |
| | | + tmpdir = g_strdup_printf("%s/%s-%s", g_get_tmp_dir (), prefix, g_get_user_name ()); |
| | | + |
| | | + if (stat (tmpdir, &s) == -1) |
| | |
| | | + char *pattern, *newfile, *path, *filename; |
| | | + |
| | | + pattern = g_strdup_printf ("socket.*"); |
| | | |
| | | |
| | | - pattern = g_strdup_printf ("%s.%s.*", prefix, g_get_user_name ()); |
| | | - tmpdir = g_get_tmp_dir (); |
| | | filename = find_file_with_pattern (tmpdir, pattern); |
| | | if (filename == NULL) |
| | | { |
| | | filename = find_file_with_pattern (tmpdir, pattern); |
| | | if (filename == NULL) |
| | | { |
| | | - newfile = g_strdup_printf ("%s.%s.%u", prefix, |
| | | - g_get_user_name (), g_random_int ()); |
| | | + newfile = g_strdup_printf ("socket.%u", g_random_int ()); |
| | | path = g_build_filename (tmpdir, newfile, NULL); |
| | | g_free (newfile); |
| | | } else { |
| | | path = g_build_filename (tmpdir, newfile, NULL); |
| | | g_free (newfile); |
| | | } else { |
| | | @@ -293,7 +315,9 @@ |
| | | g_return_val_if_fail (prefix != NULL, NULL); |
| | | |
| | | conn = g_new0 (BaconMessageConnection, 1); |
| | | g_return_val_if_fail (prefix != NULL, NULL); |
| | | |
| | | conn = g_new0 (BaconMessageConnection, 1); |
| | | - conn->path = socket_filename (prefix); |
| | | + |
| | | + conn->socketdir = socket_tempdir(prefix); |
| | | + conn->path = socket_filename (conn->socketdir, prefix); |
| | | |
| | | if (test_is_socket (conn->path) == FALSE) |
| | | { |
| | | |
| | | if (test_is_socket (conn->path) == FALSE) |
| | | { |
| | | @@ -310,6 +334,7 @@ |
| | | if (try_client (conn) == FALSE) |
| | | { |
| | | unlink (conn->path); |
| | | if (try_client (conn) == FALSE) |
| | | { |
| | | unlink (conn->path); |
| | | + rmdir (conn->socketdir); |
| | | try_server (conn); |
| | | if (conn->fd == -1) |
| | | { |
| | | try_server (conn); |
| | | if (conn->fd == -1) |
| | | { |
| | | @@ -353,6 +378,7 @@ |
| | | |
| | | if (conn->is_server != FALSE) { |
| | | unlink (conn->path); |
| | | |
| | | if (conn->is_server != FALSE) { |
| | | unlink (conn->path); |
| | | + rmdir (conn->socketdir); |
| | | } |
| | | if (conn->fd != -1) { |
| | | close (conn->fd); |
| | | } |
| | | if (conn->fd != -1) { |
| | | close (conn->fd); |
| | |
| | | --- gedit-2.30.4/configure.ac.1 2015-03-27 17:50:14.967768934 +0300 |
| | | +++ gedit-2.30.4/configure.ac 2015-03-27 17:51:11.541911646 +0300 |
| | | @@ -277,6 +277,7 @@ |
| | | gtk+-2.0 >= 2.16.0 |
| | | gtksourceview-2.0 >= 2.9.7 |
| | | gconf-2.0 >= 1.1.11 |
| | | gtk+-2.0 >= 2.16.0 |
| | | gtksourceview-2.0 >= 2.9.7 |
| | | gconf-2.0 >= 1.1.11 |
| | | + gmodule-2.0 >= 0.28 |
| | | ]) |
| | | |
| | | |
| | | if test "$os_osx" = "no" && |
| | |
| | | --- gamin-0.1.10/configure.in.~1~ 2008-11-24 18:23:06.000000000 +0300 |
| | | +++ gamin-0.1.10/configure.in 2015-03-21 00:38:51.710928100 +0300 |
| | | @@ -42,6 +42,12 @@ |
| | | CFLAGS="" |
| | | CFLAGS="" |
| | | fi |
| | | |
| | | |
| | | +dnl If the user set no CFLAGS, then don't assume the autotools defaults of |
| | | +dnl "-g -O2". We set default CFLAGS later based on the --disable-debug flag. |
| | | +if test -z "$ENV_CFLAGS"; then |
| | |
| | | RELDATE=`date +'%a %b %e %Y'` |
| | | AC_SUBST(RELDATE) |
| | | @@ -279,6 +285,43 @@ |
| | | backends="${backends}, kqueue" |
| | | backends="${backends}, kqueue" |
| | | fi |
| | | |
| | | |
| | | +case "$os" in |
| | | + solaris*) |
| | | + AM_CONDITIONAL(ON_SOLARIS, true) |
| | |
| | | @@ -385,6 +428,14 @@ |
| | | AC_DEFINE(HAVE_CMSGCRED,1,[Have cmsgcred structure]) |
| | | fi |
| | | |
| | | |
| | | +dnl Check for getpeerucred support - Solaris |
| | | + |
| | | +AC_CHECK_HEADER(ucred.h, |
| | |
| | | + |
| | | + |
| | | #### Abstract sockets |
| | | |
| | | |
| | | AC_MSG_CHECKING(abstract socket namespace) |
| | | @@ -484,20 +535,20 @@ |
| | | if test "$PYTHON_VERSION" != "" |
| | | then |
| | | if test -r $with_python/include/python$PYTHON_VERSION/Python.h -a \ |
| | | if test -r $with_python/include/python$PYTHON_VERSION/Python.h -a \ |
| | | - -d $with_python/lib/python$PYTHON_VERSION/site-packages |
| | | + -d $with_python/lib/python$PYTHON_VERSION/vendor-packages |
| | | then |
| | | PYTHON_INCLUDES=$with_python/include/python$PYTHON_VERSION |
| | | then |
| | | PYTHON_INCLUDES=$with_python/include/python$PYTHON_VERSION |
| | | - PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages |
| | | + PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/vendor-packages |
| | | else |
| | | if test -r $prefix/include/python$PYTHON_VERSION/Python.h |
| | | then |
| | | PYTHON_INCLUDES=$prefix/include/python$PYTHON_VERSION |
| | | else |
| | | if test -r $prefix/include/python$PYTHON_VERSION/Python.h |
| | | then |
| | | PYTHON_INCLUDES=$prefix/include/python$PYTHON_VERSION |
| | | - PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages |
| | | + PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/vendor-packages |
| | | else |
| | | if test -r /usr/include/python$PYTHON_VERSION/Python.h |
| | | then |
| | | PYTHON_INCLUDES=/usr/include/python$PYTHON_VERSION |
| | | else |
| | | if test -r /usr/include/python$PYTHON_VERSION/Python.h |
| | | then |
| | | PYTHON_INCLUDES=/usr/include/python$PYTHON_VERSION |
| | | - PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages |
| | | + PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/vendor-packages |
| | | else |
| | | echo could not find python$PYTHON_VERSION/Python.h |
| | | fi |
| | | else |
| | | echo could not find python$PYTHON_VERSION/Python.h |
| | | fi |
| | | @@ -512,7 +563,7 @@ |
| | | then |
| | | pythondir='$(PYTHON_SITE_PACKAGES)' |
| | |
| | | @@ -529,6 +580,16 @@ |
| | | AC_SUBST(PYTHON_INCLUDES) |
| | | AC_SUBST(PYTHON_SITE_PACKAGES) |
| | | |
| | | |
| | | +dnl Check for -lsocket -lnsl |
| | | + |
| | | +AC_CHECK_FUNC(gethostent, , AC_CHECK_LIB(nsl, gethostent)) |
| | |
| | | + AC_DEFINE([HAVE_SYS_MNTTAB_H], [], [Define if <sys/mnttab.h> is there])) |
| | | + |
| | | dnl After all config-related tweaking of CFLAGS, set it to its "build" value |
| | | |
| | | |
| | | AC_MSG_CHECKING(for more compiler warnings) |
| | | diff --git a/libgamin/Makefile.am b/libgamin/Makefile.am |
| | | index 35aa740..4f725a2 100644 |
| | | --- a/libgamin/Makefile.am |
| | | +++ b/libgamin/Makefile.am |
| | | @@ -39,13 +39,24 @@ CLEANFILES=gam_error.c gam_event.c |
| | | |
| | | |
| | | libgamin_1_la_LIBADD = |
| | | |
| | | |
| | | +if ON_SOLARIS |
| | | +libgamin_1_la_LDFLAGS = -Wl,-M$(srcdir)/gamin_sym.version \ |
| | | + -version-info @GAMIN_VERSION_INFO@ @THREAD_LIBS@ |
| | |
| | | libgamin_1_la_LDFLAGS = -Wl,--version-script=$(srcdir)/gamin_sym.version \ |
| | | -version-info @GAMIN_VERSION_INFO@ @THREAD_LIBS@ |
| | | +endif |
| | | |
| | | |
| | | libfam_la_SOURCES = $(libgamin_1_la_SOURCES) |
| | | libfam_la_LIBADD = $(libgamin_1_la_LIBADD) |
| | | -libfam_la_LDFLAGS = -Wl,--version-script=$(srcdir)/gamin_sym.version \ |
| | |
| | | +libfam_la_LDFLAGS = -Wl,--version-script=$(srcdir)/gamin_sym.version \ |
| | | + -version-info @FAM_VERSION_INFO@ @THREAD_LIBS@ |
| | | +endif |
| | | |
| | | |
| | | # |
| | | # Compile a program locally to check |
| | | diff --git a/libgamin/gam_api.c b/libgamin/gam_api.c |
| | |
| | | @@ -660,6 +666,10 @@ gamin_check_cred(GAMDataPtr conn, int fd) |
| | | } cmsg; |
| | | #endif |
| | | |
| | | |
| | | +#if defined(HAVE_GETPEERUCRED) |
| | | + ucred_t *creds; |
| | | +#endif |
| | | + |
| | | s_uid = getuid(); |
| | | |
| | | |
| | | #if defined(LOCAL_CREDS) && defined(HAVE_CMSGCRED) |
| | | @@ -726,11 +736,25 @@ retry: |
| | | fd, cr_len, (int) sizeof(cr)); |
| | |
| | | --- a/server/Makefile.am |
| | | +++ b/server/Makefile.am |
| | | @@ -10,7 +10,7 @@ INCLUDES = \ |
| | | -DG_DISABLE_DEPRECATED |
| | | |
| | | -DG_DISABLE_DEPRECATED |
| | | |
| | | if GAMIN_DEBUG |
| | | -INCLUDES += -DGAM_DEBUG_ENABLED |
| | | +INCLUDES += -DGAM_DEBUG_ENABLED -g |
| | | endif |
| | | |
| | | |
| | | |
| | | |
| | | @@ -68,6 +68,18 @@ if ENABLE_KQUEUE |
| | | gam_server_SOURCES += gam_kqueue.c gam_kqueue.h |
| | | endif |
| | | |
| | | |
| | | +if ENABLE_FEN |
| | | +gam_server_SOURCES += gam_fen.c gam_fen.h \ |
| | | + fen-dump.c \ |
| | |
| | | + |
| | | if ENABLE_HURD_MACH_NOTIFY |
| | | gam_server_SOURCES += gam_hurd_mach_notify.c gam_hurd_mach_notify.h |
| | | |
| | | |
| | | diff --git a/server/fen-dump.c b/server/fen-dump.c |
| | | new file mode 100644 |
| | | index 0000000..98d20eb |
| | |
| | | @@ -0,0 +1,77 @@ |
| | | +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
| | | +/* vim:set expandtab ts=4 shiftwidth=4: */ |
| | | +/* |
| | | +/* |
| | | + * Copyright (c) 2008, 2010 Oracle and/or its affiliates, Inc. All rights |
| | | + * reserved. |
| | | + * |
| | |
| | | @@ -0,0 +1,29 @@ |
| | | +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
| | | +/* vim:set expandtab ts=4 shiftwidth=4: */ |
| | | +/* |
| | | +/* |
| | | + * Copyright (c) 2008, 2010 Oracle and/or its affiliates, Inc. All rights |
| | | + * reserved. |
| | | + * |
| | |
| | | @@ -0,0 +1,197 @@ |
| | | +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
| | | +/* vim:set expandtab ts=4 shiftwidth=4: */ |
| | | +/* |
| | | +/* |
| | | + * Copyright (c) 2008, 2010 Oracle and/or its affiliates, Inc. All rights |
| | | + * reserved. |
| | | + * |
| | |
| | | + |
| | | +/** |
| | | + * fen_add |
| | | + * |
| | | + * |
| | | + * Won't hold a ref, we have a timout callback to clean unused node_t. |
| | | + * If there is no value for a key, add it and return it; else return the old |
| | | + * one. |
| | |
| | | + } else { |
| | | + f->subs = g_list_prepend(f->subs, sub); |
| | | + } |
| | | + |
| | | + |
| | | + if (NODE_HAS_STATE(f, NODE_STATE_ASSOCIATED) || |
| | | + (node_lstat(f) == 0 && port_add(f) == 0)) { |
| | | +#ifndef GIO_COMPILATION |
| | |
| | | +fen_remove (const gchar *filename, gpointer sub, gboolean is_mondir) |
| | | +{ |
| | | + node_t* f; |
| | | + |
| | | + |
| | | + g_assert (filename); |
| | | + g_assert (sub); |
| | | + |
| | |
| | | + |
| | | +/** |
| | | + * fen_init: |
| | | + * |
| | | + * |
| | | + * FEN subsystem initializing. |
| | | + */ |
| | | +gboolean |
| | |
| | | @@ -0,0 +1,33 @@ |
| | | +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
| | | +/* vim:set expandtab ts=4 shiftwidth=4: */ |
| | | +/* |
| | | +/* |
| | | + * Copyright (c) 2008, 2010 Oracle and/or its affiliates, Inc. All rights |
| | | + * reserved. |
| | | + * |
| | |
| | | @@ -0,0 +1,557 @@ |
| | | +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
| | | +/* vim:set expandtab ts=4 shiftwidth=4: */ |
| | | +/* |
| | | +/* |
| | | + * Copyright (c) 2008, 2010 Oracle and/or its affiliates, Inc. All rights |
| | | + * reserved. |
| | | + * |
| | |
| | | +{ |
| | | + PSource *pn = (PSource *)source; |
| | | + uint_t nget; |
| | | + |
| | | + |
| | | + if (pn->pending) { |
| | | + pn->pending = FALSE; |
| | | + g_source_add_poll(source, PGPFD(source)); |
| | |
| | | +port_events_process_cb(gpointer user_data) |
| | | +{ |
| | | + node_event_t *ev; |
| | | + |
| | | + |
| | | + G_LOCK (fen_lock); |
| | | + |
| | | + /* Processing g_eventq */ |
| | |
| | | + } |
| | | + } |
| | | +#endif |
| | | + |
| | | + |
| | | +#if 0 |
| | | + node_add_event(ev->user_data, ev); |
| | | +#else |
| | |
| | | @@ -0,0 +1,43 @@ |
| | | +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
| | | +/* vim:set expandtab ts=4 shiftwidth=4: */ |
| | | +/* |
| | | +/* |
| | | + * Copyright (c) 2008, 2010 Oracle and/or its affiliates, Inc. All rights |
| | | + * reserved. |
| | | + * |
| | |
| | | @@ -0,0 +1,642 @@ |
| | | +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
| | | +/* vim:set expandtab ts=4 shiftwidth=4: */ |
| | | +/* |
| | | +/* |
| | | + * Copyright (c) 2008, 2010 Oracle and/or its affiliates, Inc. All rights |
| | | + * reserved. |
| | | + * |
| | |
| | | +{ |
| | | + if (val1->tv_sec < val2->tv_sec) |
| | | + return TRUE; |
| | | + |
| | | + |
| | | + if (val1->tv_sec > val2->tv_sec) |
| | | + return FALSE; |
| | | + |
| | | + |
| | | + /* val1->tv_sec == val2->tv_sec */ |
| | | + if (val1->tv_usec < val2->tv_usec) |
| | | + return TRUE; |
| | | + |
| | | + |
| | | + return FALSE; |
| | | +} |
| | | + |
| | |
| | | + gchar* lasts; |
| | | + node_t* parent; |
| | | + node_t* child; |
| | | + |
| | | + |
| | | + g_assert (filename && filename[0] == '/'); |
| | | + |
| | | + if (node == NULL) { |
| | | + node = ROOT; |
| | | + } |
| | | + |
| | | + |
| | | + FN_W ("%s %s\n", __func__, filename); |
| | | + |
| | | + parent = child = node; |
| | | + str = g_strdup (filename); |
| | | + |
| | | + |
| | | + for (token = strtok_r (str, G_DIR_SEPARATOR_S, &lasts); |
| | | + token != NULL && child != NULL; |
| | | + token = strtok_r (NULL, G_DIR_SEPARATOR_S, &lasts)) { |
| | |
| | | + break; |
| | | + } |
| | | + } |
| | | + |
| | | + |
| | | + g_free (str); |
| | | + return child; |
| | | +} |
| | |
| | | +{ |
| | | + GDir *dir; |
| | | + GError *err = NULL; |
| | | + |
| | | + |
| | | + FN_W ("%s %s [0x%p]\n", __func__, NODE_NAME(f), f); |
| | | + |
| | | + dir = g_dir_open (NODE_NAME(f), 0, &err); |
| | | + if (dir) { |
| | | + const char *basename; |
| | | + node_t *child = NULL; |
| | | + |
| | | + |
| | | + while ((basename = g_dir_read_name (dir))) { |
| | | + node_t* data; |
| | | + GList *idx; |
| | |
| | | + child = node_get_child (f, basename); |
| | | + if (child == NULL) { |
| | | + gchar *filename; |
| | | + |
| | | + |
| | | + child = node_new (f, basename); |
| | | + children_add (f, child); |
| | | + } |
| | |
| | | + * If all active children nodes are ported, then cancel monitor the parent |
| | | + * node. If we know how many children are created, then we can stop accordingly. |
| | | + * |
| | | + * Unsafe, need lock. |
| | | + * Unsafe, need lock. |
| | | + */ |
| | | +static void |
| | | +foreach_known_children_scan(gpointer key, gpointer value, gpointer user_data) |
| | | +{ |
| | | + node_t* f = (node_t*)value; |
| | | + |
| | | + |
| | | + FN_W ("%s 0x%p %s\n", __func__, f, NODE_NAME(f)); |
| | | + |
| | | + if (!NODE_HAS_STATE(f, NODE_STATE_ASSOCIATED)) { |
| | |
| | | + |
| | | + /* Send events to clients. */ |
| | | + node_emit_events (f, ev); |
| | | + |
| | | + |
| | | + } else { |
| | | + /* Send events to clients. */ |
| | | + node_emit_events (f, ev); |
| | |
| | | +node_emit_one_event(node_t *f, GList *subs, node_t *other, int event) |
| | | +{ |
| | | + GList* idx; |
| | | + |
| | | + |
| | | + FN_W ("%s %s %d\n", __func__, NODE_NAME(f), event); |
| | | + |
| | | +#ifdef GIO_COMPILATION |
| | |
| | | +node_event_new (int event, gpointer user_data) |
| | | +{ |
| | | + node_event_t *ev; |
| | | + |
| | | + |
| | | + if ((ev = g_new (node_event_t, 1)) != NULL) { |
| | | + g_assert (ev); |
| | | + ev->e = event; |
| | |
| | | @@ -0,0 +1,104 @@ |
| | | +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
| | | +/* vim:set expandtab ts=4 shiftwidth=4: */ |
| | | +/* |
| | | +/* |
| | | + * Copyright (c) 2008, 2010 Oracle and/or its affiliates, Inc. All rights |
| | | + * reserved. |
| | | + * |
| | |
| | | #include <sys/uio.h> |
| | | +#if defined(sun) |
| | | +#include <string.h> |
| | | +#endif |
| | | +#endif |
| | | +#if defined(HAVE_UCRED_H) |
| | | +#include <ucred.h> |
| | | +#endif defined(HAVE_UCRED_H) |
| | |
| | | @@ -101,6 +107,10 @@ gam_client_conn_check_cred(GIOChannel * source, int fd, |
| | | } cmsg; |
| | | #endif |
| | | |
| | | |
| | | +#if defined(HAVE_GETPEERUCRED) |
| | | + ucred_t *creds; |
| | | +#endif |
| | | + |
| | | s_uid = getuid(); |
| | | |
| | | |
| | | #if defined(LOCAL_CREDS) && defined(HAVE_CMSGCRED) |
| | | @@ -167,11 +177,25 @@ gam_client_conn_check_cred(GIOChannel * source, int fd, |
| | | fd, cr_len, (int) sizeof(cr)); |
| | |
| | | +#elif defined(HAVE_GETPEERUCRED) |
| | | + if ((creds = (ucred_t *)malloc(ucred_size()))==(ucred_t *)NULL){ |
| | | + GAM_DEBUG(DEBUG_INFO,"Malloc failed for ucreds"); |
| | | + goto failed; |
| | | + goto failed; |
| | | + } |
| | | + |
| | | + if (getpeerucred(fd, &creds)!=0){ |
| | |
| | | + c_pid = ucred_getpid(creds); |
| | | + ucred_free(creds); |
| | | #elif defined(HAVE_CMSGCRED) |
| | | c_pid = cmsg.cred.cmcred_pid; |
| | | c_uid = cmsg.cred.cmcred_euid; |
| | | c_gid = cmsg.cred.cmcred_groups[0]; |
| | | c_pid = cmsg.cred.cmcred_pid; |
| | | c_uid = cmsg.cred.cmcred_euid; |
| | | c_gid = cmsg.cred.cmcred_groups[0]; |
| | | -#else /* !SO_PEERCRED && !HAVE_CMSGCRED */ |
| | | +#else /* !SO_PEERCRED && !HAVE_CMSGCRED && !HAVE_GETPEERUCRED */ |
| | | GAM_DEBUG(DEBUG_INFO, |
| | |
| | | @@ -0,0 +1,140 @@ |
| | | +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
| | | +/* vim:set expandtab ts=4 shiftwidth=4: */ |
| | | +/* |
| | | +/* |
| | | + * Copyright (C) 2008 Sun Microsystems, Inc. All rights reserved. |
| | | + * Use is subject to license terms. |
| | | + * |
| | |
| | | + */ |
| | | +/* |
| | | + * Design: |
| | | + * A Solaris port has a resource limit of events (port_max_events) which |
| | | + * A Solaris port has a resource limit of events (port_max_events) which |
| | | + * limits the number of objects (fds) that can be actively associated objects |
| | | + * whith the port. The default is (65536), but can be changed. |
| | | + * |
| | |
| | | +{ |
| | | + if (!fen_init ()) |
| | | + return FALSE; |
| | | + |
| | | + |
| | | + gam_server_install_kernel_hooks (GAMIN_K_FEN, |
| | | + gam_fen_add_subscription, |
| | | + gam_fen_remove_subscription, |
| | |
| | | + GList *subs; |
| | | + GList *idx; |
| | | + gboolean success = TRUE; |
| | | + |
| | | + |
| | | + subs = gam_listener_get_subscriptions (listener); |
| | | + |
| | | + |
| | | + if (subs == NULL) |
| | | + return FALSE; |
| | | + |
| | |
| | | + if (!gam_fen_remove_subscription (sub)) |
| | | + success = FALSE; |
| | | + } |
| | | + |
| | | + |
| | | + if (subs) { |
| | | + g_list_free (subs); |
| | | + return TRUE; |
| | |
| | | @@ -0,0 +1,40 @@ |
| | | +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
| | | +/* vim:set expandtab ts=4 shiftwidth=4: */ |
| | | +/* |
| | | +/* |
| | | + * Copyright (C) 2008 Sun Microsystems, Inc. All rights reserved. |
| | | + * Use is subject to license terms. |
| | | + * |
| | |
| | | +#endif |
| | | #include "gam_error.h" |
| | | #include "gam_fs.h" |
| | | |
| | | |
| | | +#ifdef HAVE_SYS_MNTTAB_H |
| | | +#define MTAB MNTTAB |
| | | +#define MTABDEL "\t" |
| | |
| | | +#endif |
| | | + |
| | | #define DEFAULT_POLL_TIMEOUT 0 |
| | | |
| | | |
| | | typedef struct _gam_fs_properties { |
| | | @@ -119,7 +130,7 @@ gam_fs_scan_mtab (void) |
| | | gam_fs *fs = NULL; |
| | | int i; |
| | | |
| | | gam_fs *fs = NULL; |
| | | int i; |
| | | |
| | | - g_file_get_contents ("/etc/mtab", &contents, &len, NULL); |
| | | + g_file_get_contents (MTAB, &contents, &len, NULL); |
| | | if (contents == NULL) |
| | | return; |
| | | |
| | | if (contents == NULL) |
| | | return; |
| | | |
| | | @@ -133,7 +144,7 @@ gam_fs_scan_mtab (void) |
| | | if (line[0] == '\0') |
| | | continue; |
| | | |
| | | if (line[0] == '\0') |
| | | continue; |
| | | |
| | | - words = g_strsplit (line, " ", 0); |
| | | + words = g_strsplit (line, MTABDEL, 0); |
| | | |
| | | if (words == NULL) |
| | | continue; |
| | | |
| | | if (words == NULL) |
| | | continue; |
| | | @@ -176,19 +187,25 @@ gam_fs_init (void) |
| | | gam_fs_set ("ext2", GFS_MT_DEFAULT, 0); |
| | | gam_fs_set ("reiser4", GFS_MT_DEFAULT, 0); |
| | | gam_fs_set ("reiserfs", GFS_MT_DEFAULT, 0); |
| | | gam_fs_set ("ext2", GFS_MT_DEFAULT, 0); |
| | | gam_fs_set ("reiser4", GFS_MT_DEFAULT, 0); |
| | | gam_fs_set ("reiserfs", GFS_MT_DEFAULT, 0); |
| | | + gam_fs_set ("zfs", GFS_MT_DEFAULT, 0); |
| | | + gam_fs_set ("ufs", GFS_MT_DEFAULT, 0); |
| | | gam_fs_set ("novfs", GFS_MT_POLL, 30); |
| | | gam_fs_set ("novfs", GFS_MT_POLL, 30); |
| | | +#ifdef ENABLE_FEN |
| | | + gam_fs_set ("nfs", GFS_MT_DEFAULT, 0); |
| | | +#else |
| | | gam_fs_set ("nfs", GFS_MT_POLL, 5); |
| | | gam_fs_set ("nfs", GFS_MT_POLL, 5); |
| | | - if (stat("/etc/mtab", &mtab_sbuf) != 0) |
| | | +#endif |
| | | + if (stat(MTAB, &mtab_sbuf) != 0) |
| | | { |
| | | { |
| | | - GAM_DEBUG(DEBUG_INFO, "Could not stat /etc/mtab\n"); |
| | | + GAM_DEBUG(DEBUG_INFO, "Could not stat %s\n",MTAB); |
| | | } |
| | | gam_fs_scan_mtab (); |
| | | } else { |
| | | struct stat sbuf; |
| | | |
| | | } |
| | | gam_fs_scan_mtab (); |
| | | } else { |
| | | struct stat sbuf; |
| | | |
| | | - if (stat("/etc/mtab", &sbuf) != 0) |
| | | + if (stat(MTAB, &sbuf) != 0) |
| | | { |
| | | { |
| | | - GAM_DEBUG(DEBUG_INFO, "Could not stat /etc/mtab\n"); |
| | | + GAM_DEBUG(DEBUG_INFO, "Could not stat %s\n",MTAB); |
| | | } |
| | | |
| | | /* /etc/mtab has changed */ |
| | | } |
| | | |
| | | /* /etc/mtab has changed */ |
| | | diff --git a/server/gam_fs.h b/server/gam_fs.h |
| | | index bc2d538..94e70fd 100644 |
| | | --- a/server/gam_fs.h |
| | |
| | | !defined(ENABLE_KQUEUE) && \ |
| | | + !defined(ENABLE_FEN) && \ |
| | | !defined(ENABLE_HURD_MACH_NOTIFY) |
| | | GFS_MT_DEFAULT = GFS_MT_POLL, |
| | | GFS_MT_DEFAULT = GFS_MT_POLL, |
| | | #else |
| | | diff --git a/server/gam_server.c b/server/gam_server.c |
| | | index f92a691..e5da29f 100644 |
| | |
| | | +#endif |
| | | #include "gam_excludes.h" |
| | | #include "gam_fs.h" |
| | | #include "gam_conf.h" |
| | | #include "gam_conf.h" |
| | | @@ -162,6 +165,12 @@ gam_init_subscriptions(void) |
| | | return(TRUE); |
| | | } |
| | | #endif |
| | | return(TRUE); |
| | | } |
| | | #endif |
| | | +#ifdef ENABLE_FEN |
| | | + if (gam_fen_init()) { |
| | | + GAM_DEBUG(DEBUG_INFO, "Using fen as backend\n"); |
| | | + return(TRUE); |
| | | + } |
| | | +#endif |
| | | } |
| | | |
| | | if (gam_poll_basic_init()) { |
| | | } |
| | | |
| | | if (gam_poll_basic_init()) { |
| | | @@ -627,6 +636,10 @@ main(int argc, const char *argv[]) |
| | | signal(SIGQUIT, gam_exit); |
| | | signal(SIGTERM, gam_exit); |
| | |
| | | + signal(SIGUSR1, SIG_IGN); |
| | | + signal(SIGUSR2, SIG_IGN); |
| | | +#endif |
| | | |
| | | |
| | | if (!gam_init_subscriptions()) { |
| | | GAM_DEBUG(DEBUG_INFO, "Could not initialize the subscription system.\n"); |
| | | GAM_DEBUG(DEBUG_INFO, "Could not initialize the subscription system.\n"); |
| | | diff --git a/server/gam_server.h b/server/gam_server.h |
| | | index bc99e09..313dd84 100644 |
| | | --- a/server/gam_server.h |
| | | +++ b/server/gam_server.h |
| | | @@ -16,7 +16,8 @@ typedef enum { |
| | | GAMIN_K_INOTIFY = 2, |
| | | GAMIN_K_KQUEUE = 3, |
| | | GAMIN_K_MACH = 4, |
| | | GAMIN_K_INOTIFY = 2, |
| | | GAMIN_K_KQUEUE = 3, |
| | | GAMIN_K_MACH = 4, |
| | | - GAMIN_K_INOTIFY2 = 5 |
| | | + GAMIN_K_INOTIFY2 = 5, |
| | | + GAMIN_K_FEN = 6 |
| | | } GamKernelHandler; |
| | | |
| | | |
| | | typedef enum { |
| | | diff --git a/tests/testing.c b/tests/testing.c |
| | | index 9926c0a..4c08740 100644 |
| | |
| | | #include <stdlib.h> |
| | | #include <unistd.h> |
| | | @@ -31,6 +32,11 @@ static struct testState { |
| | | |
| | | |
| | | #define IS_BLANK(p) ((*(p) == ' ') || (*(p) == '\t') || \ |
| | | (*(p) == '\n') || (*(p) == '\r')) |
| | | +#ifdef ENABLE_FEN |
| | |
| | | +#else |
| | | +#define KILLCMD "killall" |
| | | +#endif |
| | | |
| | | |
| | | static int |
| | | scanCommand(char *line, char **command, char **arg, char **arg2) |
| | | @@ -268,7 +274,7 @@ processCommand(char *line, int no) |
| | |
| | | @@ -1,4 +1,4 @@ |
| | | -#!/usr/bin/env python |
| | | +#!/usr/bin/python2.7 |
| | | |
| | | |
| | | import _gamin |
| | | import os.path |
| | |
| | | +++ gamin-0.1.10/server/gam_node.h Mon Aug 26 15:25:54 2013 |
| | | @@ -58,7 +58,7 @@ |
| | | void gam_node_set_is_dir (GamNode *node, |
| | | gboolean is_dir); |
| | | |
| | | gboolean is_dir); |
| | | |
| | | -G_CONST_RETURN char *gam_node_get_path (GamNode *node); |
| | | +const char *gam_node_get_path (GamNode *node); |
| | | |
| | | |
| | | GList *gam_node_get_subscriptions (GamNode *node); |
| | | |
| | | |
| | | diff -ur gamin-0.1.10/server.orig/gam_subscription.c gamin-0.1.10/server/gam_subscription.c |
| | | --- gamin-0.1.10/server.orig/gam_subscription.c Mon Aug 26 15:25:22 2013 |
| | | +++ gamin-0.1.10/server/gam_subscription.c Mon Aug 26 15:25:54 2013 |
| | |
| | | --- gamin-0.1.10/server.orig/gam_subscription.h Mon Aug 26 15:25:22 2013 |
| | | +++ gamin-0.1.10/server/gam_subscription.h Mon Aug 26 15:25:54 2013 |
| | | @@ -21,7 +21,7 @@ |
| | | |
| | | |
| | | int gam_subscription_get_reqno (GamSubscription *sub); |
| | | |
| | | |
| | | -G_CONST_RETURN char *gam_subscription_get_path (GamSubscription *sub); |
| | | +const char *gam_subscription_get_path (GamSubscription *sub); |
| | | |
| | | |
| | | GamListener *gam_subscription_get_listener (GamSubscription *sub); |
| | | |
| | |
| | | if test -x "$with_python/bin/python" |
| | | then |
| | | @@ -559,11 +558,13 @@ |
| | | fi |
| | | fi |
| | | fi |
| | | fi |
| | | fi |
| | | - if test "$with_python" != "" |
| | | - then |
| | | - pythondir='$(PYTHON_SITE_PACKAGES)' |
| | | - else |
| | | - pythondir='$(libdir)/python$(PYTHON_VERSION)/vendor-packages' |
| | | + if test -z "$pythondir"; then |
| | | + if test -z "$pythondir"; then |
| | | + if test "$with_python" != "" |
| | | + then |
| | | + pythondir='$(PYTHON_SITE_PACKAGES)' |
| | |
| | | @@ -473,13 +473,18 @@ |
| | | } |
| | | } |
| | | |
| | | |
| | | + def newCommandObject = false; |
| | | if (!commandObject) { |
| | | commandObject = paramType.newInstance() |
| | |
| | | setAllowedFields(ALL_OTHER_FIELDS_ALLOWED_BY_DEFAULT); |
| | | + setIgnoreInvalidFields(true); |
| | | } |
| | | |
| | | |
| | | /** |
| | | --- grails-1.0.3/src/web/org/codehaus/groovy/grails/web/metaclass/DataBindingDynamicConstructor.java 2008-06-06 10:25:10.000000000 +0000 |
| | | +++ grails-1.0.3/src/web/org/codehaus/groovy/grails/web/metaclass/DataBindingDynamicConstructor.java 2014-02-12 16:22:04.259197011 +0000 |
| | | @@ -25,6 +25,7 @@ |
| | | import org.codehaus.groovy.grails.exceptions.GrailsDomainException; |
| | | import org.codehaus.groovy.grails.web.binding.DataBindingUtils; |
| | | import org.springframework.context.ApplicationContext; |
| | | +import org.springframework.beans.factory.config.AutowireCapableBeanFactory; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.util.Iterator; |
| | | import org.codehaus.groovy.grails.exceptions.GrailsDomainException;
|
| | | import org.codehaus.groovy.grails.web.binding.DataBindingUtils;
|
| | | import org.springframework.context.ApplicationContext;
|
| | | +import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
|
| | | |
| | | import javax.servlet.http.HttpServletRequest;
|
| | | import java.util.Iterator;
|
| | | @@ -63,18 +64,13 @@ |
| | | public Object invoke(Class clazz, Object[] args) { |
| | | Object map = args.length > 0 ? args[0] : null; |
| | | Object instance; |
| | | - if(applicationContext!=null && applicationContext.containsBean(clazz.getName())) { |
| | | - instance = applicationContext.getBean(clazz.getName()); |
| | | - } |
| | | - else { |
| | | |
| | | - try { |
| | | - instance = clazz.newInstance(); |
| | | - } catch (InstantiationException e1) { |
| | | - throw new GrailsDomainException("Error instantiated class [" + clazz + "]: " + e1.getMessage(),e1); |
| | | - } catch (IllegalAccessException e1) { |
| | | - throw new GrailsDomainException("Illegal access instantiated class [" + clazz + "]: " + e1.getMessage(),e1); |
| | | - } |
| | | + try { |
| | | + instance = clazz.newInstance(); |
| | | + } catch (InstantiationException e1) { |
| | | + throw new GrailsDomainException("Error instantiated class [" + clazz + "]: " + e1.getMessage(),e1); |
| | | + } catch (IllegalAccessException e1) { |
| | | + throw new GrailsDomainException("Illegal access instantiated class [" + clazz + "]: " + e1.getMessage(),e1); |
| | | } |
| | | |
| | | |
| | | public Object invoke(Class clazz, Object[] args) {
|
| | | Object map = args.length > 0 ? args[0] : null;
|
| | | Object instance;
|
| | | - if(applicationContext!=null && applicationContext.containsBean(clazz.getName())) {
|
| | | - instance = applicationContext.getBean(clazz.getName());
|
| | | - }
|
| | | - else {
|
| | | |
| | | - try {
|
| | | - instance = clazz.newInstance();
|
| | | - } catch (InstantiationException e1) {
|
| | | - throw new GrailsDomainException("Error instantiated class [" + clazz + "]: " + e1.getMessage(),e1);
|
| | | - } catch (IllegalAccessException e1) {
|
| | | - throw new GrailsDomainException("Illegal access instantiated class [" + clazz + "]: " + e1.getMessage(),e1);
|
| | | - }
|
| | | + try {
|
| | | + instance = clazz.newInstance();
|
| | | + } catch (InstantiationException e1) {
|
| | | + throw new GrailsDomainException("Error instantiated class [" + clazz + "]: " + e1.getMessage(),e1);
|
| | | + } catch (IllegalAccessException e1) {
|
| | | + throw new GrailsDomainException("Illegal access instantiated class [" + clazz + "]: " + e1.getMessage(),e1);
|
| | | }
|
| | | |
| | | |
| | | @@ -113,6 +109,11 @@ |
| | | } |
| | | } |
| | | |
| | | + if (applicationContext != null) { |
| | | }
|
| | | }
|
| | | |
| | | + if (applicationContext != null) {
|
| | | + applicationContext.getAutowireCapableBeanFactory().autowireBeanProperties( |
| | | + instance, AutowireCapableBeanFactory.AUTOWIRE_BY_NAME, false); |
| | | + } |
| | | + |
| | | return instance; |
| | | } |
| | | + instance, AutowireCapableBeanFactory.AUTOWIRE_BY_NAME, false);
|
| | | + }
|
| | | +
|
| | | return instance;
|
| | | }
|
| | | |
| | |
| | | --- grails-1.0.3/ant/build/javadoc.xml Fri Jul 8 09:07:59 2011 |
| | | *************** |
| | | *** 24,32 **** |
| | | <include name="org/codehaus/groovy/grails/**"/> |
| | | <include name="grails/**"/> |
| | | </packageset> |
| | | <include name="org/codehaus/groovy/grails/**"/> |
| | | <include name="grails/**"/> |
| | | </packageset> |
| | | ! <link href="http://java.sun.com/j2ee/1.4/docs/api"/> |
| | | ! <link href="http://java.sun.com/j2se/1.4.2/docs/api"/> |
| | | ! <link href="http://static.springframework.org/spring/docs/2.5.x/api"/> |
| | | <tag name="todo" description="To do:" /> |
| | | </javadoc> |
| | | </target> |
| | | <tag name="todo" description="To do:" /> |
| | | </javadoc> |
| | | </target> |
| | | --- 24,30 ---- |
| | | <include name="org/codehaus/groovy/grails/**"/> |
| | | <include name="grails/**"/> |
| | | </packageset> |
| | | <include name="org/codehaus/groovy/grails/**"/> |
| | | <include name="grails/**"/> |
| | | </packageset> |
| | | ! <arg value="-notimestamp" /> |
| | | <tag name="todo" description="To do:" /> |
| | | </javadoc> |
| | | </target> |
| | | <tag name="todo" description="To do:" /> |
| | | </javadoc> |
| | | </target> |
| | |
| | | @@ -124,7 +124,7 @@ |
| | | </tar> |
| | | </target> |
| | | |
| | | |
| | | - <target name="package" depends="clean,test,jar,javadoc" description="Create the release archives for Grails."> |
| | | + <target name="package" depends="clean,jar,javadoc" description="Create the release archives for Grails."> |
| | | <delete failonerror="true"> |
| | | <fileset dir="${grails.dist}"> |
| | | <delete failonerror="true"> |
| | | <fileset dir="${grails.dist}"> |
| | | <include name="*.zip"/> |
| | |
| | | --- rhythmbox-0.13.3/plugins/mpris/rb-mpris-plugin.c.orig 2013-12-19 14:31:57.196366478 +0400 |
| | | +++ rhythmbox-0.13.3/plugins/mpris/rb-mpris-plugin.c 2013-12-19 14:30:59.371273081 +0400 |
| | | @@ -412,7 +412,7 @@ |
| | | int scale, |
| | | gboolean zero_is_valid) |
| | | int scale, |
| | | gboolean zero_is_valid) |
| | | { |
| | | - ulong v; |
| | | + gulong v; |
| | | v = rhythmdb_entry_get_ulong (entry, prop); |
| | | if (zero_is_valid || v != 0) { |
| | | rb_debug ("adding %s = %lu", name, v); |
| | | v = rhythmdb_entry_get_ulong (entry, prop); |
| | | if (zero_is_valid || v != 0) { |
| | | rb_debug ("adding %s = %lu", name, v); |
| | |
| | | --- rhythmbox-0.11.2/plugins/audiocd/rb-audiocd-source.c.bak 2007-12-07 13:57:27.000000000 +0800 |
| | | +++ rhythmbox-0.11.2/plugins/audiocd/rb-audiocd-source.c 2007-06-17 11:20:32.000000000 +0800 |
| | | @@ -664,6 +664,10 @@ |
| | | } |
| | | |
| | | rb_debug ("cdda longname: %s", gst_element_factory_get_longname (gst_element_get_factory (priv->cdda))); |
| | | } |
| | | |
| | | rb_debug ("cdda longname: %s", gst_element_factory_get_longname (gst_element_get_factory (priv->cdda))); |
| | | + |
| | | +#ifdef __sun |
| | | + priv->device_path = g_strdup_printf ("/dev/rdsk/%s", priv->device_path + strlen ("/dev/dsk/")); |
| | | +#endif |
| | | g_object_set (G_OBJECT (priv->cdda), "device", priv->device_path, NULL); |
| | | priv->pipeline = gst_pipeline_new ("pipeline"); |
| | | priv->fakesink = gst_element_factory_make ("fakesink", "fakesink"); |
| | | g_object_set (G_OBJECT (priv->cdda), "device", priv->device_path, NULL); |
| | | priv->pipeline = gst_pipeline_new ("pipeline"); |
| | | priv->fakesink = gst_element_factory_make ("fakesink", "fakesink"); |
| | |
| | | return g_strdup_printf ("cdda://%s", device + strlen ("/dev/")); |
| | | +#endif |
| | | } |
| | | |
| | | |
| | | static GList * |
| | |
| | | +++ b/plugins/mtpdevice/rb-mtp-plugin.c |
| | | @@ -49,6 +49,7 @@ |
| | | #endif |
| | | |
| | | |
| | | #include "rb-source.h" |
| | | +#include "rb-display-page-group.h" |
| | | #include "rb-display-page-tree.h" |
| | | #include "rb-mtp-source.h" |
| | | #include "rb-plugin.h" |
| | | @@ -421,7 +422,7 @@ rb_mtp_plugin_maybe_add_source (RBMtpPlugin *plugin, const char *udi, LIBMTP_raw |
| | | rb_debug ("device matched, creating a source"); |
| | | source = RB_SOURCE (rb_mtp_source_new (plugin->shell, RB_PLUGIN (plugin), udi, &raw_devices[i])); |
| | | |
| | | rb_debug ("device matched, creating a source"); |
| | | source = RB_SOURCE (rb_mtp_source_new (plugin->shell, RB_PLUGIN (plugin), udi, &raw_devices[i])); |
| | | |
| | | - rb_shell_append_source (plugin->shell, source, RB_DISPLAY_PAGE_GROUP_DEVICES); |
| | | + rb_shell_append_display_page (plugin->shell, RB_DISPLAY_PAGE (source), RB_DISPLAY_PAGE_GROUP_DEVICES); |
| | | plugin->mtp_sources = g_list_prepend (plugin->mtp_sources, source); |
| | | g_signal_connect_object (source, |
| | | "deleted", G_CALLBACK (source_deleted_cb), |
| | | plugin->mtp_sources = g_list_prepend (plugin->mtp_sources, source); |
| | | g_signal_connect_object (source, |
| | | "deleted", G_CALLBACK (source_deleted_cb), |
| | | @@ -459,7 +460,7 @@ rb_mtp_plugin_device_removed (LibHalContext *context, const char *udi) |
| | | if (strcmp (udi, source_udi) == 0) { |
| | | rb_debug ("removing device %s, %p", udi, source); |
| | | plugin->mtp_sources = g_list_remove (plugin->mtp_sources, source); |
| | | if (strcmp (udi, source_udi) == 0) { |
| | | rb_debug ("removing device %s, %p", udi, source); |
| | | plugin->mtp_sources = g_list_remove (plugin->mtp_sources, source); |
| | | - rb_source_delete_thyself (source); |
| | | + rb_display_page_delete_thyself (RB_DISPLAY_PAGE (source)); |
| | | } |
| | | g_free (source_udi); |
| | | } |
| | | -- |
| | | } |
| | | g_free (source_udi); |
| | | } |
| | | -- |
| | | 1.7.2.3 |
| | | |
| | |
| | | --- a/prnt/hpijs/hpijsfax.cpp 2014-04-04 03:39:55.000000000 -0700 |
| | | +++ hplip-3.14.4/prnt/hpijs/hpijsfax.cpp 2014-04-11 09:25:59.404997356 -0700 |
| | | @@ -598,7 +598,7 @@ |
| | | ijs_server_done (ctx); |
| | | } |
| | | |
| | | ijs_server_done (ctx); |
| | | } |
| | | |
| | | - exit(status); |
| | | + return(status); |
| | | } |
| | | |
| | | |
| | | // GrayLevel = (5/16)R + (9/16)G + (2/16)B |
| | |
| | | @@ -37,6 +37,8 @@ |
| | | #include <time.h> |
| | | #include "utils.h" |
| | | |
| | | |
| | | +extern "C" int getdomainname(char*, int); |
| | | + |
| | | #define HP_FILE_VERSION_STR "03.09.08.0" |
| | | |
| | | |
| | | static HPCupsFilter filter; |
| | | @@ -597,7 +599,7 @@ |
| | | char hpPreProcessedRasterFile[MAX_FILE_PATH_LEN]; //temp file needed to store raster data with swaped pages. |
| | | |
| | | |
| | | |
| | | |
| | | - sprintf(hpPreProcessedRasterFile, "%s/hp_%s_cups_SwapedPagesXXXXXX",CUPS_TMP_DIR, m_JA.user_name); |
| | | + snprintf(hpPreProcessedRasterFile, sizeof(hpPreProcessedRasterFile), "%s/hp_%s_cups_SwapedPagesXXXXXX", CUPS_TMP_DIR, m_JA.user_name); |
| | | |
| | | |
| | | |
| | | |
| | | while (cupsRasterReadHeader2(cups_raster, &cups_header)) |
| | | --- a/prnt/hpcups/CommonDefinitions.h 2014-04-04 03:39:07.000000000 -0700 |
| | | +++ hplip-3.14.4/prnt/hpcups/CommonDefinitions.h 2014-04-11 12:03:54.025798599 -0700 |
| | |
| | | /* 0x6A */ ZJI_BITMAP_BPP, |
| | | -/* 0x6B */ ZJI_BITMAP_STRIDE, |
| | | +/* 0x6B */ ZJI_BITMAP_STRIDE |
| | | |
| | | |
| | | } ZJ_ITEM; |
| | | |
| | | |
| | | --- a/io/hpmud/hpmud.h 2014-04-04 03:42:17.000000000 -0700 |
| | | +++ hplip-3.14.4/io/hpmud/hpmud.h 2014-04-11 12:12:13.756537138 -0700 |
| | | @@ -46,7 +46,7 @@ |
| | |
| | | - HPMUD_R_INVALID_MDNS = 50, |
| | | + HPMUD_R_INVALID_MDNS = 50 |
| | | }; |
| | | |
| | | |
| | | enum HPMUD_IO_MODE |
| | | @@ -57,7 +57,7 @@ |
| | | HPMUD_DOT4_PHOENIX_MODE=4, /* (ie: clj2550, clj2840, lj3050, lj3055, clj4730mfp) */ |
| | |
| | | - HPMUD_MLC_MISER_MODE=7, /* old stuff */ |
| | | + HPMUD_MLC_MISER_MODE=7 /* old stuff */ |
| | | }; |
| | | |
| | | |
| | | enum HPMUD_BUS_ID |
| | | @@ -78,7 +78,7 @@ |
| | | HPMUD_SCANTYPE_SOAPHT = 5, /* HorseThief (ie: ljm1522) */ |
| | |
| | | - HPMUD_SCANTYPE_MARVELL2 = 8, /* (Tsunami lj 1212 and series) */ |
| | | + HPMUD_SCANTYPE_MARVELL2 = 8 /* (Tsunami lj 1212 and series) */ |
| | | }; |
| | | |
| | | |
| | | enum HPMUD_SCANSRC |
| | | @@ -86,7 +86,7 @@ |
| | | HPMUD_SCANSRC_NA = 0, |
| | |
| | | - HPMUD_SCANSRC_CAMERA = 0x4, |
| | | + HPMUD_SCANSRC_CAMERA = 0x4 |
| | | }; |
| | | |
| | | |
| | | enum HPMUD_STATUSTYPE |
| | | @@ -97,21 +97,21 @@ |
| | | HPMUD_STATUSTYPE_PML = 3, /* laserjet pml */ |
| | |
| | | - HPMUD_STATUSTYPE_PJLPML = 9, /* laserjet pjl and pml */ |
| | | + HPMUD_STATUSTYPE_PJLPML = 9 /* laserjet pjl and pml */ |
| | | }; |
| | | |
| | | |
| | | enum HPMUD_SUPPORT_TYPE |
| | | { |
| | | HPMUD_SUPPORT_TYPE_NONE = 0, /* not supported */ |
| | |
| | | - HPMUD_SUPPORT_TYPE_HPLIP = 2, /* supported by hpijs and "hp" backend */ |
| | | + HPMUD_SUPPORT_TYPE_HPLIP = 2 /* supported by hpijs and "hp" backend */ |
| | | }; |
| | | |
| | | |
| | | enum HPMUD_PLUGIN_TYPE |
| | | { |
| | | HPMUD_PLUGIN_TYPE_NONE = 0, |
| | |
| | | - HPMUD_PLUGIN_TYPE_OPTIONAL = 2, |
| | | + HPMUD_PLUGIN_TYPE_OPTIONAL = 2 |
| | | }; |
| | | |
| | | |
| | | |
| | | |
| | | --- a/common/utils.h 2014-04-04 03:42:15.000000000 -0700 |
| | | +++ hplip-3.14.4/common/utils.h 2014-04-11 12:49:00.832008556 -0700 |
| | | @@ -22,7 +22,8 @@ |
| | | #define SCAN_PLUGIN_SOAPHT "bb_soapht.so" |
| | | |
| | | |
| | | #define HPLIP_PLUGIN_STATE "/var/lib/hp/hplip.state" |
| | | -#define CUPS_TMP_DIR getenv("TMPDIR") ? : getenv("HOME") ?:"/tmp" |
| | | +//#define CUPS_TMP_DIR getenv("TMPDIR") ? : getenv("HOME") ?:"/tmp" |
| | | +#define CUPS_TMP_DIR "/tmp" |
| | | |
| | | |
| | | enum UTILS_CONF_RESULT |
| | | { |
| | | @@ -30,7 +31,7 @@ |
| | |
| | | - UTILS_CONF_DATFILE_ERROR, // = 4, |
| | | + UTILS_CONF_DATFILE_ERROR // = 4, |
| | | }; |
| | | |
| | | |
| | | |
| | | |
| | | @@ -38,14 +39,14 @@ |
| | | { |
| | | UTILS_PLUGIN_STATUS_OK = 0, |
| | |
| | | - UTILS_PLUGIN_STATUS_NOT_INSTALLED, // = 2, |
| | | + UTILS_PLUGIN_STATUS_NOT_INSTALLED // = 2, |
| | | }; |
| | | |
| | | |
| | | enum UTILS_PLUGIN_LIBRARY_TYPE |
| | | { |
| | | UTILS_PRINT_PLUGIN_LIBRARY = 0, // = 0, |
| | | UTILS_SCAN_PLUGIN_LIBRARY, // =1, |
| | | - UTILS_FAX_PLUGIN_LIBRARY, // =2, |
| | | + UTILS_FAX_PLUGIN_LIBRARY//, // =2, |
| | | // UTILS_GENERAL_PLUGIN_LIBRARY //=4, // Future use.. |
| | | // UTILS_GENERAL_PLUGIN_LIBRARY //=4, // Future use.. |
| | | }; |
| | | |
| | |
| | | +++ b/prnt/hpcups/ErnieFilter.cpp 2014-04-11 09:23:38.197875441 -0700 |
| | | @@ -50,7 +50,7 @@ |
| | | #include "ErnieFilter.h" |
| | | |
| | | |
| | | |
| | | |
| | | -#if defined(__APPLE__) || defined(__linux) || defined(__GLIBC__) || defined(__NetBSD__) |
| | | +#if defined(__APPLE__) || defined(__linux) || defined(__GLIBC__) || defined(__NetBSD__) || defined (__sun) || defined (__sun__) |
| | | #include <math.h> |
| | | #endif |
| | | |
| | |
| | | @@ -1,4 +1,4 @@ |
| | | -#!/usr/bin/env python |
| | | +#!/usr/bin/python2.7 |
| | | |
| | | |
| | | import os |
| | | import os.path |
| | |
| | | +++ hplip-3.15.4/installer/core_install.py 2015-04-28 08:39:29.723499471 +0300 |
| | | @@ -345,7 +345,7 @@ |
| | | 'scanimage': (False, ['scan'], SCANIMAGE_STR, self.check_scanimage, DEPENDENCY_RUN_TIME, '1.0','scanimage --version', EXTERNALDEP), |
| | | |
| | | |
| | | # Required fax packages |
| | | - 'dbus': (True, ['fax'], DBUS_STR, self.check_dbus, DEPENDENCY_RUN_AND_COMPILE_TIME, '-','dbus-daemon --version', EXTERNALDEP), |
| | | + 'dbus': (True, ['fax'], DBUS_STR, self.check_dbus, DEPENDENCY_RUN_AND_COMPILE_TIME, '-','/usr/lib/dbus-daemon --version', EXTERNALDEP), |
| | | |
| | | |
| | | # Required and optional qt4 GUI packages |
| | | 'policykit': (False, ['gui_qt4'], POLKIT_STR, self.check_policykit, DEPENDENCY_RUN_TIME,'-','pkexec --version', EXTERNALDEP), # optional for non-sudo behavior of plugins (only optional for Qt4 option) |
| | |
| | | --- a/base/utils.py 2014-06-02 23:33:10.000000000 -0700 |
| | | +++ hplip-3.14.6/base/utils.py 2014-07-01 13:44:00.526366599 -0700 |
| | | @@ -2214,7 +2214,7 @@ |
| | | |
| | | |
| | | try: |
| | | process = {} |
| | | - p1 = Popen(["ps", "-w", "-w", "aux"], stdout=PIPE) |
| | |
| | | + return LIBC.gnu_get_libc_version() |
| | | + except: |
| | | + return '-' |
| | | |
| | | |
| | | def get_python_xml_version(): |
| | | try: |
| | |
| | | -# published by the Free Software Foundation; either version 2 of the |
| | | -# License. |
| | | +# published by the Free Software Foundation; version 2 of the License. |
| | | # |
| | | # |
| | | # This program is distributed in the hope that it will be useful, but |
| | | # WITHOUT ANY WARRANTY; without even the implied warranty of |
| | | @@ -29,7 +28,8 @@ being transferred is XML. It is up to t |
| | | data and interpret the result. |
| | | ''' |
| | | |
| | | |
| | | -import sys, string, re, os, socket, pwd |
| | | +from M2Crypto import SSL, Err |
| | | +import sys, string, re, os, socket, getpass |
| | |
| | | @@ -59,6 +59,15 @@ def parse_url(url): |
| | | if m: |
| | | host = url[len(m.group(0)):] |
| | | |
| | | |
| | | + # IPv6 with/without port |
| | | + m = re.match("^\[?([0-9A-Fa-f:]*)\]?(:([0-9]*))?$", host) |
| | | + if m: |
| | |
| | | if len(s) != 1: |
| | | host = s[0] |
| | | @@ -66,8 +75,26 @@ def parse_url(url): |
| | | |
| | | |
| | | return host, port, ssl |
| | | |
| | | |
| | | +def get_default_ca_certs(): |
| | | + """ |
| | | + Try to find out system path with ca certificates. This path is cached and |
| | |
| | | response in XML. Uses Python's build-in httplib. x509 may be a |
| | | dictionary containing the location of the SSL certificate and key |
| | | @@ -97,9 +124,48 @@ def wbem_request(url, data, creds, heade |
| | | |
| | | |
| | | class HTTPSConnection(HTTPBaseConnection, httplib.HTTPSConnection): |
| | | def __init__(self, host, port=None, key_file=None, cert_file=None, |
| | | def __init__(self, host, port=None, key_file=None, cert_file=None, |
| | | - strict=None): |
| | | + strict=None, ca_certs=None, verify_callback=None): |
| | | httplib.HTTPSConnection.__init__(self, host, port, key_file, |
| | | httplib.HTTPSConnection.__init__(self, host, port, key_file, |
| | | cert_file, strict) |
| | | + self.ca_certs = ca_certs |
| | | + self.verify_callback = verify_callback |
| | |
| | | + except ( Err.SSLError, SSL.SSLError, SSL.SSLTimeoutError |
| | | + , SSL.Checker.WrongHost), arg: |
| | | + raise Error("SSL error: %s" % arg) |
| | | |
| | | |
| | | class FileHTTPConnection(HTTPBaseConnection, httplib.HTTPConnection): |
| | | def __init__(self, uds_path): |
| | | @@ -109,47 +175,36 @@ def wbem_request(url, data, creds, heade |
| | | self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) |
| | | self.sock.connect(self.uds_path) |
| | | |
| | | |
| | | - host, port, ssl = parse_url(url) |
| | | + host, port, use_ssl = parse_url(url) |
| | | |
| | | |
| | | key_file = None |
| | | cert_file = None |
| | | |
| | | |
| | | - if ssl: |
| | | - |
| | | - if x509 is not None: |
| | | + if use_ssl and x509 is not None: |
| | | cert_file = x509.get('cert_file') |
| | | key_file = x509.get('key_file') |
| | | |
| | | |
| | | - if verify_callback is not None: |
| | | - try: |
| | | - from OpenSSL import SSL |
| | |
| | | numTries = 0 |
| | | localAuthHeader = None |
| | | tryLimit = 5 |
| | | |
| | | |
| | | + if isinstance(data, unicode): |
| | | + data = data.encode('utf-8') |
| | | data = '<?xml version="1.0" encoding="utf-8" ?>\n' + data |
| | | |
| | | |
| | | + if not no_verification and ca_certs is None: |
| | | + ca_certs = get_default_ca_certs() |
| | | + elif no_verification: |
| | |
| | | h = HTTPConnection(host, port = port) |
| | | @@ -167,12 +222,12 @@ def wbem_request(url, data, creds, heade |
| | | raise Error('Invalid URL') |
| | | |
| | | |
| | | locallogin = None |
| | | - if host in ('localhost', '127.0.0.1'): |
| | | + if host in ('localhost', 'localhost6', '127.0.0.1', '::1'): |
| | |
| | | while numTries < tryLimit: |
| | | @@ -191,6 +246,8 @@ def wbem_request(url, data, creds, heade |
| | | h.putheader('PegasusAuthorization', 'Local "%s"' % locallogin) |
| | | |
| | | |
| | | for hdr in headers: |
| | | + if isinstance(hdr, unicode): |
| | | + hdr = hdr.encode('utf-8') |
| | | s = map(lambda x: string.strip(x), string.split(hdr, ":", 1)) |
| | | h.putheader(urllib.quote(s[0]), urllib.quote(s[1])) |
| | | |
| | | |
| | | |
| | | --- pywbem-0.7.0/cim_operations.py.orig 2008-12-12 09:40:22.000000000 -0800 |
| | | +++ pywbem-0.7.0/cim_operations.py 2014-01-17 06:11:05.000000000 -0800 |
| | |
| | | -# published by the Free Software Foundation; either version 2 of the |
| | | -# License. |
| | | +# published by the Free Software Foundation; version 2 of the License. |
| | | # |
| | | # |
| | | # This program is distributed in the hope that it will be useful, but |
| | | # WITHOUT ANY WARRANTY; without even the implied warranty of |
| | | @@ -28,7 +27,7 @@ import sys, string |
| | |
| | | the request before it is sent, and the reply before it is |
| | | unpacked. |
| | | |
| | | - verify_callback is used to verify the server certificate. |
| | | - verify_callback is used to verify the server certificate. |
| | | - It is passed to OpenSSL.SSL.set_verify, and is called during the SSL |
| | | - handshake. verify_callback should take five arguments: A Connection |
| | | - object, an X509 object, and three integer variables, which are in turn |
| | | - potential error number, error depth and return code. verify_callback |
| | | - handshake. verify_callback should take five arguments: A Connection |
| | | - object, an X509 object, and three integer variables, which are in turn |
| | | - potential error number, error depth and return code. verify_callback |
| | | - should return True if verification passes and False otherwise. |
| | | + verify_callback is used to verify the server certificate. It is passed to |
| | | + M2Crypto.SSL.Context.set_verify, and is called during the SSL handshake. |
| | |
| | | + verification passes and False otherwise. |
| | | |
| | | The value of the x509 argument is used only when the url contains |
| | | 'https'. x509 must be a dictionary containing the keys 'cert_file' |
| | | 'https'. x509 must be a dictionary containing the keys 'cert_file' |
| | | @@ -92,14 +91,27 @@ class WBEMConnection(object): |
| | | filename of an certificate and the value of 'key_file' must consist |
| | | of a filename containing the private key belonging to the public key |
| | | that is part of the certificate in cert_file. |
| | | filename of an certificate and the value of 'key_file' must consist |
| | | of a filename containing the private key belonging to the public key |
| | | that is part of the certificate in cert_file. |
| | | + |
| | | + ca_certs specifies where CA certificates for verification purposes are |
| | | + located. These are trusted certificates. Note that the certificates have to |
| | |
| | | + should be avoided. If True, peer's certificate is not verified and ca_certs |
| | | + argument is ignored. |
| | | """ |
| | | |
| | | |
| | | def __init__(self, url, creds = None, default_namespace = DEFAULT_NAMESPACE, |
| | | - x509 = None, verify_callback = None): |
| | | + x509 = None, verify_callback = None, ca_certs = None, |
| | |
| | | |
| | | for p in result: |
| | | if p[1] == 'reference': |
| | | |