--- a/base-specs/gnome-desktop.spec Tue Sep 07 17:55:43 2010 +0200
+++ b/base-specs/gnome-desktop.spec Fri Sep 17 11:16:53 2010 +0200
@@ -30,8 +30,12 @@
%if %build_l10n
Source8: l10n-configure.sh
%endif
+%if %option_with_openindiana_branding
+Patch1: gnome-desktop-01-jds-about-branding-openindiana.diff
+%else
# date:2004-03-22 type:branding owner:gman
Patch1: gnome-desktop-01-jds-about-branding.diff
+%endif
# date:2008-10-03 type:bug owner:dkenny bugster:6754036
Patch2: gnome-desktop-02-xrandr-probing.diff
# date:2006-06-30 type:feature owner:stephen
@@ -136,7 +140,11 @@
--sysconfdir=%{_sysconfdir} \
--localstatedir=/var/lib \
--mandir=%{_mandir} \
+%if %option_with_openindiana_branding
+ --with-gnome-distributor="The OpenIndiana Project" \
+%else
--with-gnome-distributor="Oracle Corporation" \
+%endif
--with-gnome-distributor-version="$release_version" \
--disable-scrollkeeper
make -j $CPUS
--- a/base-specs/gnome-panel.spec Tue Sep 07 17:55:43 2010 +0200
+++ b/base-specs/gnome-panel.spec Fri Sep 17 11:16:53 2010 +0200
@@ -28,7 +28,11 @@
Source4: %{name}-po-sun-%{po_sun_version}.tar.bz2
Source5: l10n-configure.sh
Source6: top-panel-image.png
+%if %option_with_openindiana_branding
+Source7: bottom-panel-image-openindiana.png
+%else
Source7: bottom-panel-image.png
+%endif
%if %build_l10n
Source8: l10n-configure.sh
%endif
@@ -40,6 +44,10 @@
# date:2007-10-24 type:branding owner:gman
Patch1: gnome-panel-01-default-setup-indiana.diff
%endif
+%if %option_with_openindiana_branding
+# date:2007-10-24 type:branding owner:gman
+Patch1: gnome-panel-01-default-setup-indiana.diff
+%endif
# date:2004-09-30 type:branding owner:mattman
Patch2: gnome-panel-02-fish-applet.diff
# date:2004-10-18 type:feature bugster:4984097 owner:mattman
@@ -54,6 +62,9 @@
# date:2006-05-03 type:branding owner:gman
Patch8: gnome-panel-08-launch-menu-indiana.diff
%endif
+%if %option_with_openindiana_branding
+Patch8: gnome-panel-08-launch-menu-openindiana.diff
+%endif
%if %option_with_sun_branding
# date:2006-05-03 type:branding owner:gman
Patch8: gnome-panel-08-launch-menu.diff
@@ -137,6 +148,9 @@
%if %option_with_indiana_branding
%patch1 -p1
%endif
+%if %option_with_openindiana_branding
+%patch1 -p1
+%endif
%patch2 -p1
%patch3 -p1
%patch5 -p1
@@ -145,6 +159,9 @@
%if %option_with_indiana_branding
%patch8 -p1
%endif
+%if %option_with_openindiana_branding
+%patch8 -p1
+%endif
%if %option_with_sun_branding
%patch8 -p1
%patch9 -p1
@@ -159,7 +176,7 @@
cp %SOURCE3 icons
cp %SOURCE6 icons
-cp %SOURCE7 icons
+cp %SOURCE7 icons/bottom-panel-image.png
%if %option_with_sun_branding
cp %SOURCE1 icons/gnome-main-menu.png
%endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gnome-desktop-01-jds-about-branding-openindiana.diff Fri Sep 17 11:16:53 2010 +0200
@@ -0,0 +1,351 @@
+diff -uprN gnome-desktop-2.30.2.orig/configure.in gnome-desktop-2.30.2/configure.in
+--- gnome-desktop-2.30.2.orig/configure.in 2010-06-22 03:41:19.000000000 +0200
++++ gnome-desktop-2.30.2/configure.in 2010-09-03 22:08:57.000000000 +0200
+@@ -50,12 +50,17 @@ GNOME_MICRO=gnome_micro
+ GNOME_DISTRIBUTOR="GNOME.Org"
+ GNOME_DATE=`date +"%Y-%m-%d"`
+
+-AC_ARG_WITH(gnome_distributor, [ --with-gnome-distributor=DISTRIBUTOR Specify name of GNOME distributor])
+-
++AC_ARG_WITH(gnome_distributor_version, [ --with-gnome-distributor-version=DISTRIBUTOR Specify version of GNOME distributor
++])
++
+ if test "x$with_gnome_distributor" != x ; then
+ GNOME_DISTRIBUTOR=$with_gnome_distributor
+ fi
+
++if test "x$with_gnome_distributor_version" != x ; then
++ GNOME_DISTRIBUTOR_VERSION=$with_gnome_distributor_version
++fi
++
+ AC_ARG_ENABLE([date-in-gnome-version],
+ [AS_HELP_STRING([--disable-date-in-gnome-version],[do not put the build date in gnome-version.xml])],
+ [],[enable_date_in_gnome_version=yes])
+@@ -72,6 +77,7 @@ AC_SUBST(GNOME_PLATFORM)
+ AC_SUBST(GNOME_MINOR)
+ AC_SUBST(GNOME_MICRO)
+ AC_SUBST(GNOME_DISTRIBUTOR)
++AC_SUBST(GNOME_DISTRIBUTOR_VERSION)
+ AC_SUBST(GNOME_DATE)
+ AC_SUBST(GNOME_DATE_COMMENT_START)
+ AC_SUBST(GNOME_DATE_COMMENT_END)
+diff -uprN gnome-desktop-2.30.2.orig/gnome-about/contributors.list gnome-desktop-2.30.2/gnome-about/contributors.list
+--- gnome-desktop-2.30.2.orig/gnome-about/contributors.list 2010-02-09 13:25:23.000000000 +0100
++++ gnome-desktop-2.30.2/gnome-about/contributors.list 2010-09-03 22:08:57.000000000 +0200
+@@ -555,3 +555,96 @@ Simon Zheng
+ Sascha Ziemann
+ Michael Zucchi
+ Jason van Zyl
++Alfred Peng
++Alvaro Lopez Ortega
++Amith Yamasani
++Anand Subramanian
++Antonio Xu
++Archana Shah
++Ashish Mukharji
++Balamurali Viswanathan
++Biswa Lal
++Bolian Yin
++Brian Lu
++Brian Nitz
++Calvin Liu
++Carl Gadener
++Chandrashekhar BK
++Curtis Sasaki
++Dan Baigent
++Darren Kenny
++Dave Lin
++Deirdre Williams
++Derek Rafter
++Dermot McCluskey
++Dinoop Thomas
++Dirk Grobler
++Ervin Yan
++Evan Yan
++Gary Little
++Geoff Baysinger
++Ghee Teo
++Ginn Chen
++Girish Kulkarni
++Halton Huo
++Hema Seetharamaiah
++Henry Jia
++Ii Gyoung Park
++Jack Jia
++Jedy Wang
++Jeff McMeekin
++Jerry Tan
++Jessie Li
++Jijun Yu
++John Fischer
++John Rice
++Joshua Xia
++Kalpesh Shah
++Kaveri Murthy
++Kyle Yuan
++Lalith Kumar
++Laszlo Kovacs
++Laszlo Peter
++Leena Gunda
++Leo Binchy
++Leon Sha
++Leon Zhang
++Louie Zhao
++Louise Siu
++Luke Shi
++Mark Duggan
++Mark Yang
++Martin Damboldt
++Michael Krivoruchko
++Michael Twomey
++Michal Pryc
++Mike Lei
++Muktha Narayan
++Nancy Lee
++Narayana Pattipati
++Neo Liu
++Niall Power
++Olaf Felka
++Oliver Braun
++Partha Pratim
++Patrick Gu
++Pete Zha
++Rick Ju
++Robert Kinsella
++Robert O'Dea
++Robin Lu
++Simford Dong
++Sowmya Adiga
++Srirama Sharma
++Suresh Chandrasekharan
++Susan Jefferies
++Takao Fujiwara
++Terry Ponce
++Thorsten Laux
++Vijay Anand
++Vijaykumar Patwari
++Vinay M R
++Vishnu Kumar
++Yan Dong Yao
++Yogeesh MB
++Young J. Song
+diff -uprN gnome-desktop-2.30.2.orig/gnome-about/gnome-about.desktop.in.in gnome-desktop-2.30.2/gnome-about/gnome-about.desktop.in.in
+--- gnome-desktop-2.30.2.orig/gnome-about/gnome-about.desktop.in.in 2010-03-27 12:34:40.000000000 +0100
++++ gnome-desktop-2.30.2/gnome-about/gnome-about.desktop.in.in 2010-09-03 22:08:57.000000000 +0200
+@@ -1,6 +1,7 @@
+ [Desktop Entry]
+ _Name=About GNOME
+-_Comment=Learn more about GNOME
++# SUN_BRANDING
++_Comment=GNOME version, licence and useful links
+ Exec=gnome-about
+ Icon=gnome-logo-icon-transparent
+ Terminal=false
+diff -uprN gnome-desktop-2.30.2.orig/gnome-about/gnome-about.in gnome-desktop-2.30.2/gnome-about/gnome-about.in
+--- gnome-desktop-2.30.2.orig/gnome-about/gnome-about.in 2010-02-09 13:25:23.000000000 +0100
++++ gnome-desktop-2.30.2/gnome-about/gnome-about.in 2010-09-03 22:12:39.000000000 +0200
+@@ -33,11 +33,12 @@ pygtk.require ('2.0')
+ import gobject
+ from gobject.option import OptionParser, make_option
+ import gtk
++import gnome
+
+ import cairo
+ from math import pi
+
+-import os, sys, random, time, gettext, locale
++import os, sys, random, time, gettext, locale, string
+
+ import xml.dom.minidom
+
+@@ -57,11 +58,14 @@ LOGO_FILE = "gnome-64.png"
+ gettext.install (GETTEXT_PACKAGE, LOCALEDIR, unicode = True)
+
+ header_links = [
+- (_("About GNOME"), "http://www.gnome.org/about/"),
+- (_("News"), "http://news.gnome.org/"),
+- (_("GNOME Library"), "http://library.gnome.org/"),
+- (_("Friends of GNOME"), "http://www.gnome.org/friends/"),
+- (_("Contact"), "http://www.gnome.org/contact/"),
++ # SUN_BRANDING #
++ (_("About OpenIndiana"), "http://www.openindiana.org/", True),
++ # SUN_BRANDING #
++ (_("About GNOME"), "http://www.gnome.org/about/", True),
++ # SUN_BRANDING #
++ (_("GNOME Library"), "http://library.gnome.org/", True),
++ # SUN_BRANDING #
++ (_("Contact"), "http://www.openindiana.org/contact/", True),
+ ]
+
+ translated_contributors = [
+@@ -81,6 +85,12 @@ def locate_file (file):
+ return filename
+ return False
+
++def locate_program (program):
++ for dir in string.split(os.environ['PATH'], os.pathsep):
++ if os.access(os.path.join(dir, program), os.X_OK):
++ return os.path.join(dir, program)
++ return None
++
+ def cleanup_date (date):
+ '''Parse a date as found in gnome-version.xml and nicely format it'''
+ try:
+@@ -535,14 +545,16 @@ class HyperLink (WindowedLabel):
+ url = ""
+ menu = None
+ selection = None
++ is_link = False
+
+- def __init__ (self, label, url):
++ def __init__ (self, label, url, is_link):
+ '''Initialize object'''
+ super (HyperLink, self).__init__ ()
+ markup = "<b><u>%s</u></b>" % label
+ self.set_markup (markup)
+ self.set_selectable (True)
+ self.url = url
++ self.is_link = is_link
+ self.create_menu ()
+ link_color = self.style_get_property ("link-color")
+ if not link_color:
+@@ -551,10 +563,16 @@ class HyperLink (WindowedLabel):
+
+ def open_url (self, *args):
+ '''Use GNOME API to open the url'''
+- try:
+- gtk.show_uri (self.get_screen(), self.url, 0)
+- except Exception, e:
+- print '''Warning: could not open "%s": %s''' % (self.url, e)
++ if self.is_link != False:
++ try:
++ gnome.url_show (self.url)
++ except Exception, e:
++ print '''Warning: could not open "%s": %s''' % (self.url, e)
++ else:
++ try:
++ os.system (self.url)
++ except Exception, e:
++ print '''Warning: could not launch "%s": %s''' % (self.url, e)
+
+ def copy_url (self, *args):
+ '''Copy URL to Clipboard'''
+@@ -722,22 +740,33 @@ class GnomeAboutHeader (gtk.Layout):
+
+ def make_link_widget (link):
+ '''Helper function which makes an HyperLink and shows it'''
+- label = HyperLink (link[0], link[1])
+- label.show_all ()
+- return label
++ '''if link[2] is False, then a program, so check if on path'''
++ if link[2] == True:
++ label = HyperLink (link[0], link[1], link[2])
++ label.show_all ()
++ return label
++ else:
++ path = locate_program(link[1])
++ if path:
++ label = HyperLink (link[0], link[1], link[2])
++ label.show_all ()
++ return label
++ else:
++ return None
+
+ widgets = map (make_link_widget, self.links)
+ put_widgets = 0
+ for widget in widgets:
+- if put_widgets > 0:
+- if dot:
+- image = gtk.Image ()
+- image.set_from_pixmap (dot, None)
+- self.put (image, current_x + 5, base_y + 6)
+- current_x += 16
+- self.put (widget, current_x, base_y)
+- current_x += widget.size_request ()[0]
+- put_widgets += 1
++ if widget:
++ if put_widgets > 0:
++ if dot:
++ image = gtk.Image ()
++ image.set_from_pixmap (dot, None)
++ self.put (image, current_x + 5, base_y + 6)
++ current_x += 16
++ self.put (widget, current_x, base_y)
++ current_x += widget.size_request ()[0]
++ put_widgets += 1
+
+ self.width = current_x + 10
+ self.height = current_y
+@@ -874,7 +903,7 @@ class GnomeAbout (gtk.Dialog):
+ main_box.pack_start (welcome_label)
+
+ descriptions_label = VertAnimatedLabel (self.description_messages,
+- 300, 120,
++ 402, 184,
+ DESCRIPTION_DELAY, "%s")
+ welcome_label.connect ("button-press-event",
+ descriptions_label.on_button_press)
+@@ -948,6 +977,7 @@ contributors list) correctly positionned
+ "minor" : "",
+ "micro" : "",
+ "distributor" : "",
++ "distributor-version" : "",
+ "date" : ""
+ }
+
+@@ -958,15 +988,19 @@ contributors list) correctly positionned
+ self.load_description_messages (node)
+
+ '''Format version'''
+- if not len (infos["platform"]):
+- version = ""
+- elif not len (infos["minor"]):
+- version = infos["platform"]
+- elif not len (infos["micro"]):
+- version = "%s.%s" % (infos["platform"], infos["minor"])
++ if infos["distributor-version"]:
++ '''Use Distributor's version over gnome version'''
++ version = infos["distributor-version"]
+ else:
+- version = "%s.%s.%s" % (infos["platform"], infos["minor"],
+- infos["micro"])
++ if not len (infos["platform"]):
++ version = ""
++ elif not len (infos["minor"]):
++ version = infos["platform"]
++ elif not len (infos["micro"]):
++ version = "%s.%s" % (infos["platform"], infos["minor"])
++ else:
++ version = "%s.%s.%s" % (infos["platform"], infos["minor"],
++ infos["micro"])
+
+ date = cleanup_date (infos["date"])
+
+diff -uprN gnome-desktop-2.30.2.orig/Makefile.am gnome-desktop-2.30.2/Makefile.am
+--- gnome-desktop-2.30.2.orig/Makefile.am 2010-02-09 13:25:23.000000000 +0100
++++ gnome-desktop-2.30.2/Makefile.am 2010-09-03 22:08:57.000000000 +0200
+@@ -9,17 +9,21 @@ SUBDIRS = \
+ docs \
+ man
+
++XML_IN_FILES=gnome-version.xml.in
++XML_FILES=$(XML_IN_FILES:.xml.in=.xml)
++versiondir=$(datadir)/gnome-about
++version_DATA=$(XML_FILES)
++
+ EXTRA_DIST = \
+ MAINTAINERS \
+ ChangeLog.pre-git \
+- gnome-version.xml.in.in \
++ $(XML_IN_FILES) \
++ $(XML_FILES) \
+ gnome-version.xml \
+ COPYING-DOCS \
+ HACKING \
+ gnome-doc-utils.make
+
+-versiondir=$(datadir)/gnome-about
+-version_DATA=gnome-version.xml
+ @INTLTOOL_XML_RULE@
+
+ DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --disable-scrollkeeper
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gnome-panel-08-launch-menu-openindiana.diff Fri Sep 17 11:16:53 2010 +0200
@@ -0,0 +1,138 @@
+/jds/bin/diff -uprN gnome-panel-2.27.92.old/gnome-panel/menu.c gnome-panel-2.27.92/gnome-panel/menu.c
+--- 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);
+ }
+
++void
++run_applications (GtkWidget *widget, gpointer user_data)
++{
++ if (!panel_lockdown_get_restrict_application_launching() &&
++ !panel_lockdown_get_disable_command_line()) {
++ panel_run_dialog_present (gtk_widget_get_screen (widget),
++ gtk_get_current_event_time ());
++ }
++}
++
++void
++applications_menu_append (GtkWidget *main_menu)
++{
++ GtkWidget *item;
++ GtkWidget *accel_label;
++ GtkWidget *image;
++
++ if (panel_lockdown_get_disable_command_line())
++ return;
++
++ if (!g_object_get_data (G_OBJECT (main_menu),
++ "panel-menu-needs-appending"))
++ return;
++
++ g_object_set_data (G_OBJECT (main_menu),
++ "panel-menu-needs-appending", NULL);
++
++ add_menu_separator (main_menu);
++
++ item = gtk_image_menu_item_new ();
++
++ accel_label = gtk_accel_label_new (_("Run Application..."));
++ gtk_misc_set_alignment (GTK_MISC (accel_label), 0.0, 0.5);
++
++ gtk_container_add (GTK_CONTAINER (item), accel_label);
++ gtk_accel_label_set_accel_widget (GTK_ACCEL_LABEL (accel_label),
++ GTK_WIDGET (item));
++ gtk_widget_show (accel_label);
++
++ image = gtk_image_new_from_icon_name (PANEL_ICON_RUN, panel_menu_icon_get_size ());
++ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image);
++
++ g_signal_connect (item, "activate", G_CALLBACK (run_applications), NULL);
++ gtk_menu_shell_append (GTK_MENU_SHELL (main_menu), item);
++ gtk_widget_show (item);
++}
++
+ GtkWidget *
+ create_main_menu (PanelWidget *panel)
+ {
+/jds/bin/diff -uprN gnome-panel-2.27.92.old/gnome-panel/menu.h gnome-panel-2.27.92/gnome-panel/menu.h
+--- 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);
++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);
++ 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)
+/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)
++{
++ g_object_set_data (G_OBJECT (menu),
++ "panel-menu-needs-appending", TRUE);
++}
++
++static void
++panel_menu_bar_remove_gmenu_monitor(GtkWidget *menu,
++ GMenuTree *tree)
++{
++ gmenu_tree_remove_monitor (tree,
++ (GMenuTreeChangedFunc) panel_menu_bar_handle_gmenu_change,
++ menu);
++}
++
++static void
+ panel_menu_bar_init (PanelMenuBar *menubar)
+ {
+ GtkWidget *image;
++ GMenuTree *tree;
+
+ 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);
+
++ tree = gmenu_tree_lookup ("applications.menu", GMENU_TREE_FLAGS_NONE);
++
++ gmenu_tree_add_monitor (tree,
++ (GMenuTreeChangedFunc) panel_menu_bar_handle_gmenu_change,
++ menubar->priv->applications_menu);
++ g_signal_connect(menubar->priv->applications_menu, "destroy",
++ G_CALLBACK (panel_menu_bar_remove_gmenu_monitor), tree);
++ gmenu_tree_unref (tree);
++
++ g_object_set_data (G_OBJECT (menubar->priv->applications_menu),
++ "panel-menu-needs-appending", TRUE);
++ 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"));