[gnome-shell-extensions/f16] - Update to 3.2.3 - Remove workaround to fix alternative-status-menu extension crash when login - Re

Mohamed ElMorabity melmorabity at fedoraproject.org
Sun Dec 18 16:22:08 UTC 2011


commit 7b133157f0734dd7be5a6d6f280ba0e206b83698
Author: Mohamed El Morabity <melmorabity at fedoraproject.org>
Date:   Sun Dec 18 17:20:52 2011 +0100

    - Update to 3.2.3
    - Remove workaround to fix alternative-status-menu extension crash when login
    - Re-enable all references to localedir in metadata.json files (reverted from
      commit c4b4092)
    - Re-enable GSettings settings removed since 3.2.3 release

 .gitignore                                         |    1 +
 ...ons-3.2.1-fix_alternative_status_menu_3.2.patch |   29 --
 ...-shell-extensions-3.2.3-disable_GSettings.patch |  511 ++++++++++++++++++++
 ...shell-extensions-3.2.3-reenable_localedir.patch |  240 +++++++++
 gnome-shell-extensions.spec                        |   38 +-
 sources                                            |    2 +-
 6 files changed, 778 insertions(+), 43 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index ae2bc38..b645357 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@
 /gnome-shell-extensions-e102c0c6.tar.xz
 /gnome-shell-extensions-3.2.0.tar.xz
 /gnome-shell-extensions-3.2.1.tar.xz
+/gnome-shell-extensions-3.2.3.tar.xz
diff --git a/gnome-shell-extensions-3.2.3-disable_GSettings.patch b/gnome-shell-extensions-3.2.3-disable_GSettings.patch
new file mode 100644
index 0000000..6fb864e
--- /dev/null
+++ b/gnome-shell-extensions-3.2.3-disable_GSettings.patch
@@ -0,0 +1,511 @@
+From 374abed8a13f81d514bcccc2ed4b4f18e7d8d058 Mon Sep 17 00:00:00 2001
+From: Giovanni Campagna <gcampagna at src.gnome.org>
+Date: Fri, 16 Dec 2011 21:03:08 +0000
+Subject: all: remove all GSettings usage
+
+Since GSettings is not supported in extensions in 3.2, all settings
+have been replaced by constants in JS files (except for user-theme,
+whose only purpose is to actually bridge GSettings to the shell).
+Customizations are still supported in master, and distributions
+packaging these extensions for system-wide install may consider
+reverting this bug.
+---
+diff --git a/extensions/alternate-tab/Makefile.am b/extensions/alternate-tab/Makefile.am
+index bade7cd..b8fde76 100644
+--- a/extensions/alternate-tab/Makefile.am
++++ b/extensions/alternate-tab/Makefile.am
+@@ -1,14 +1,3 @@
+ EXTENSION_ID = alternate-tab
+ 
+ include ../../extension.mk
+-
+-gschemas_in = $(gschemabase).alternate-tab.gschema.xml.in
+-
+- at INTLTOOL_XML_NOMERGE_RULE@
+-
+-gsettings_SCHEMAS = $(gschemas_in:.xml.in=.xml)
+-
+- at GSETTINGS_RULES@
+-
+-CLEANFILES += $(gschemas_in:.xml.in=.valid) $(gsettings_SCHEMAS)
+-EXTRA_DIST += $(gschemas_in)
+diff --git a/extensions/alternate-tab/extension.js b/extensions/alternate-tab/extension.js
+index a53b396..ce65bf5 100644
+--- a/extensions/alternate-tab/extension.js
++++ b/extensions/alternate-tab/extension.js
+@@ -26,9 +26,9 @@ const N_ = function(e) { return e };
+ 
+ const POPUP_DELAY_TIMEOUT = 150; // milliseconds
+ 
+-const SETTINGS_SCHEMA = 'org.gnome.shell.extensions.alternate-tab';
+-const SETTINGS_BEHAVIOUR_KEY = 'behaviour';
+-const SETTINGS_FIRST_TIME_KEY = 'first-time';
++// Settings: choose one of MODES, the description is in MESSAGE
++// (master branch has a nice dialog, but we cannot in gnome 3.2)
++const BEHAVIOUR = 'all_thumbnails';
+ 
+ const MODES = {
+     all_thumbnails: function(shellwm, binding, mask, window, backwards) {
+@@ -267,6 +267,8 @@ WindowSwitcher.prototype = {
+     }
+ };
+ 
++/* This object is never instantiated in the current branch, but
++   I don't trust git merge enough to remove it */
+ function AltTabSettingsDialog() {
+     this._init();
+ }
+@@ -598,16 +600,9 @@ function init(metadata) {
+ }
+ 
+ function doAltTab(shellwm, binding, mask, window, backwards) {
+-    let settings = new Gio.Settings({ schema: SETTINGS_SCHEMA });
+-
+-
+-    if(settings.get_boolean(SETTINGS_FIRST_TIME_KEY)) {
+-        new AltTabSettingsDialog().open();
+-    } else {
+-        let behaviour = settings.get_string(SETTINGS_BEHAVIOUR_KEY);
+-        if(behaviour in MODES) {
+-            MODES[behaviour](shellwm, binding, mask, window, backwards);
+-        }
++    let behaviour = BEHAVIOUR;
++    if(behaviour in MODES) {
++        MODES[behaviour](shellwm, binding, mask, window, backwards);
+     }
+ }
+ 
+diff --git a/extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in b/extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in
+deleted file mode 100644
+index 66861ad..0000000
+--- a/extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in
++++ b/dev/null
+@@ -1,18 +0,0 @@
+-<schemalist gettext-domain="gnome-shell-extensions">
+-  <enum id="org.gnome.shell.extensions.alternate-tab.BehaviourMode">
+-    <value value="1" nick="all_thumbnails"/>
+-    <value value="2" nick="workspace_icons"/>
+-  </enum>
+-  <schema id="org.gnome.shell.extensions.alternate-tab" path="/org/gnome/shell/extensions/alternate-tab/">
+-    <key name="behaviour" enum="org.gnome.shell.extensions.alternate-tab.BehaviourMode">
+-      <default>'all_thumbnails'</default>
+-      <_summary>The alt tab behaviour.</_summary>
+-      <_description>Sets the Alt-Tab behaviour. Possible values are: native, all_thumbnails and workspace_icons.</_description>
+-    </key>
+-    <key type="b" name="first-time">
+-      <default>true</default>
+-      <_summary>Indicates if Alternate Tab is newly installed</_summary>
+-      <_description>Ask the user for a default behaviour if true.</_description>
+-    </key>
+-  </schema>
+-</schemalist>
+diff --git a/extensions/auto-move-windows/Makefile.am b/extensions/auto-move-windows/Makefile.am
+index be6e7bc..a0bca70 100644
+--- a/extensions/auto-move-windows/Makefile.am
++++ b/extensions/auto-move-windows/Makefile.am
+@@ -1,14 +1,3 @@
+ EXTENSION_ID = auto-move-windows
+ 
+ include ../../extension.mk
+-
+-gschemas_in = $(gschemabase).auto-move-windows.gschema.xml.in
+-
+- at INTLTOOL_XML_NOMERGE_RULE@
+-
+-gsettings_SCHEMAS = $(gschemas_in:.xml.in=.xml)
+-
+- at GSETTINGS_RULES@
+-
+-CLEANFILES += $(gschemas_in:.xml.in=.valid) $(gsettings_SCHEMAS)
+-EXTRA_DIST += $(gschemas_in)
+diff --git a/extensions/auto-move-windows/extension.js b/extensions/auto-move-windows/extension.js
+index fe5d7f9..b08b0e3 100644
+--- a/extensions/auto-move-windows/extension.js
++++ b/extensions/auto-move-windows/extension.js
+@@ -11,8 +11,9 @@ const St = imports.gi.St;
+ 
+ const Main = imports.ui.main;
+ 
+-const SETTINGS_SCHEMA = 'org.gnome.shell.extensions.auto-move-windows';
+-const SETTINGS_KEY = 'application-list';
++// list of applications and workspace pairs
++// format: "desktop-file-id.desktop:<num>"
++const APPLICATIONS = [ ];
+ 
+ function WindowMover() {
+     this._init();
+@@ -20,7 +21,6 @@ function WindowMover() {
+ 
+ WindowMover.prototype = {
+     _init: function() {
+-        this._settings = new Gio.Settings({ schema: SETTINGS_SCHEMA });
+         this._windowTracker = Shell.WindowTracker.get_default();
+ 
+         let display = global.screen.get_display();
+@@ -46,7 +46,7 @@ WindowMover.prototype = {
+         if (!this._windowTracker.is_window_interesting(window))
+             return;
+ 
+-        let spaces = this._settings.get_strv(SETTINGS_KEY);
++        let spaces = APPLICATIONS;
+ 
+         let app = this._windowTracker.get_window_app(window);
+         if (!app) {
+@@ -159,4 +159,4 @@ function enable() {
+ function disable() {
+     Main._checkWorkspaces = prevCheckWorkspaces;
+     winMover.destroy();
+-}
+\ No newline at end of file
++}
+diff --git a/extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in b/extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in
+deleted file mode 100644
+index 59753dc..0000000
+--- a/extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in
++++ b/dev/null
+@@ -1,10 +0,0 @@
+-<schemalist gettext-domain="gnome-shell-extensions">
+-  <schema id="org.gnome.shell.extensions.auto-move-windows" path="/org/gnome/shell/extensions/auto-move-windows/">
+-    <key name="application-list" type="as">
+-      <!-- FIXME: should be a(su), when JS supports more of GVariant -->
+-      <default>[ ]</default>
+-      <_summary>Application and workspace list</_summary>
+-      <_description>A list of strings, each containing an application id (desktop file name), followed by a colon and the workspace number</_description>
+-    </key>
+-  </schema>
+-</schemalist>
+diff --git a/extensions/dock/Makefile.am b/extensions/dock/Makefile.am
+index 827f81c..2531858 100644
+--- a/extensions/dock/Makefile.am
++++ b/extensions/dock/Makefile.am
+@@ -1,14 +1,3 @@
+ EXTENSION_ID = dock
+ 
+ include ../../extension.mk
+-
+-gschemas_in = $(gschemabase).dock.gschema.xml.in
+-
+- at INTLTOOL_XML_NOMERGE_RULE@
+-
+-gsettings_SCHEMAS = $(gschemas_in:.xml.in=.xml)
+-
+- at GSETTINGS_RULES@
+-
+-CLEANFILES += $(gschemas_in:.xml.in=.valid) $(gsettings_SCHEMAS)
+-EXTRA_DIST += $(gschemas_in)
+diff --git a/extensions/dock/extension.js b/extensions/dock/extension.js
+index cc53827..d851bb8 100644
+--- a/extensions/dock/extension.js
++++ b/extensions/dock/extension.js
+@@ -25,15 +25,6 @@ const AltTab = imports.ui.altTab;
+ const Gettext = imports.gettext.domain('gnome-shell-extensions');
+ const _ = Gettext.gettext;
+ 
+-// Settings
+-const DOCK_SETTINGS_SCHEMA = 'org.gnome.shell.extensions.dock';
+-const DOCK_POSITION_KEY = 'position';
+-const DOCK_SIZE_KEY = 'size';
+-const DOCK_HIDE_KEY = 'autohide';
+-const DOCK_EFFECTHIDE_KEY = 'hide-effect';
+-const DOCK_AUTOHIDE_ANIMATION_TIME_KEY = 'hide-effect-duration';
+-
+-
+ //hide
+ //const autohide_animation_time = 0.3;
+ 
+@@ -49,6 +40,15 @@ const AutoHideEffect = {
+     MOVE: 2
+ };
+ 
++// Settings
++const DOCK_POSITION = PositionMode.RIGHT;
++const DOCK_SIZE = 48;
++const DOCK_AUTOHIDE = true;
++const DOCK_EFFECTHIDE = AutoHideEffect.MOVE;
++const DOCK_AUTOHIDE_ANIMATION_TIME = 0.3;
++// Do not change anything below this line (it is intentionally duplicate to keep in
++// sync with master branch)
++
+ let position = PositionMode.RIGHT;
+ let dockicon_size = 48;
+ let hideable = true;
+@@ -340,15 +340,11 @@ Dock.prototype = {
+         this._favorites = [];
+ 
+         // Load Settings
+-        this._settings = new Gio.Settings({ schema: DOCK_SETTINGS_SCHEMA });
+-        position = this._settings.get_enum(DOCK_POSITION_KEY);
+-        dockicon_size = this._settings.get_int(DOCK_SIZE_KEY);
+-        hideDock = hideable = this._settings.get_boolean(DOCK_HIDE_KEY);
+-        hideEffect = this._settings.get_enum(DOCK_EFFECTHIDE_KEY);
+-        autohide_animation_time = this._settings.get_double(DOCK_AUTOHIDE_ANIMATION_TIME_KEY);
+-        //global.log("POSITION: " + position);
+-        //global.log("dockicon_size: " + dockicon_size);
+-
++        position = DOCK_POSITION;
++        dockicon_size = DOCK_SIZE;
++        hideDock = hideable = DOCK_AUTOHIDE;
++        hideEffect = DOCK_EFFECTHIDE;
++        autohide_animation_time = DOCK_AUTOHIDE_ANIMATION_TIME;
+ 
+         this._spacing = 4;
+         this._item_size = dockicon_size;
+@@ -382,72 +378,6 @@ Dock.prototype = {
+         }));
+         Main.layoutManager.addChrome(this.actor);
+ 
+-        //hidden
+-        this._settings.connect('changed::'+DOCK_POSITION_KEY, Lang.bind(this, function (){
+-                if (!this._settings)
+-                    return;
+-
+-                let primary = Main.layoutManager.primaryMonitor;
+-                position = this._settings.get_enum(DOCK_POSITION_KEY);
+-                this.actor.y=primary.y;
+-                this._redisplay();
+-        }));
+-
+-        this._settings.connect('changed::'+DOCK_SIZE_KEY, Lang.bind(this, function (){
+-                if (!this._settings)
+-                    return;
+-
+-                dockicon_size = this._settings.get_int(DOCK_SIZE_KEY);
+-                this._redisplay();
+-        }));
+-
+-        this._settings.connect('changed::'+DOCK_HIDE_KEY, Lang.bind(this, function (){
+-                if (!this._settings)
+-                    return;
+-
+-                hideable = this._settings.get_boolean(DOCK_HIDE_KEY);
+-                if (hideable){
+-                        hideDock=false;
+-                        this._hideDock();
+-                } else {
+-                        hideDock=true;
+-                        this._showDock();
+-                }
+-        }));
+-
+-        this._settings.connect('changed::'+DOCK_EFFECTHIDE_KEY, Lang.bind(this, function () {
+-                if (!this._settings)
+-                    return;
+-
+-                hideEffect = this._settings.get_enum(DOCK_EFFECTHIDE_KEY);
+-
+-                switch (hideEffect) {
+-                        case AutoHideEffect.RESCALE:
+-                           this._item_size=dockicon_size;
+-                           break;
+-                        case AutoHideEffect.RESIZE:
+-                           this.actor.set_scale (1,1);
+-                           break;
+-                        case AutoHideEffect.MOVE:
+-                           ;
+-                }
+-                this.actor.disconnect(this._leave_event);
+-                this.actor.disconnect(this._enter_event);
+-
+-                this._selectFunctionsHide ();
+-
+-                this._leave_event = this.actor.connect('leave-event', Lang.bind(this, this._hideDock));
+-                this._enter_event = this.actor.connect('enter-event', Lang.bind(this, this._showDock));
+-                this._redisplay();
+-        }));
+-
+-        this._settings.connect('changed::'+DOCK_AUTOHIDE_ANIMATION_TIME_KEY, Lang.bind(this,function (){
+-                if (!this._settings)
+-                    return;
+-
+-                autohide_animation_time = this._settings.get_double(DOCK_AUTOHIDE_ANIMATION_TIME_KEY);
+-        }));
+-
+         this._leave_event = this.actor.connect('leave-event', Lang.bind(this, this._hideDock));
+         this._enter_event = this.actor.connect('enter-event', Lang.bind(this, this._showDock));
+ 
+@@ -483,14 +413,13 @@ Dock.prototype = {
+         this.actor.destroy();
+ 
+         // Break reference cycles
+-        this._settings = null;
+         this._appSystem = null;
+         this._tracker = null;
+     },
+ 
+     // fuctions hide
+     _restoreHideDock: function(){
+-        hideable = this._settings.get_boolean(DOCK_HIDE_KEY);
++        hideable = DOCK_AUTOHIDE;
+     },
+ 
+     _disableHideDock: function (){
+diff --git a/extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in b/extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in
+deleted file mode 100644
+index 351c9a7..0000000
+--- a/extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in
++++ b/dev/null
+@@ -1,38 +0,0 @@
+-<schemalist gettext-domain="gnome-shell-extensions">
+-  <enum id='org.gnome.shell.extensions.dock.PositionMode'>
+-    <value nick='left' value='0'/>
+-    <value nick='right' value='1'/>
+-  </enum>
+-  <enum id='org.gnome.shell.extensions.dock.AutoHideEffect'>
+-    <value nick='resize' value='0'/>
+-    <value nick='rescale' value='1'/>
+-    <value nick='move' value='2'/>
+-  </enum>
+-
+-  <schema id="org.gnome.shell.extensions.dock" path="/org/gnome/shell/extensions/dock/">
+-    <key name="position" enum="org.gnome.shell.extensions.dock.PositionMode">
+-      <default>'right'</default>
+-      <_summary>Position of the dock</_summary>
+-      <_description>Sets the position of the dock in the screen. Allowed values are 'right' or 'left'</_description>
+-    </key>
+-    <key name="size" type="i">
+-      <default>48</default>
+-      <_summary>Icon size</_summary>
+-      <_description>Sets icon size of the dock.</_description>
+-    </key>
+-    <key name="autohide" type="b">
+-      <default>true</default>
+-      <_summary>Enable/disable autohide</_summary>
+-    </key>
+-    <key name="hide-effect" enum="org.gnome.shell.extensions.dock.AutoHideEffect">
+-      <default>'resize'</default>
+-      <_summary>Autohide effect</_summary>
+-      <_description>Sets the effect of the hide dock. Allowed values are 'resize' or 'rescale'</_description>
+-    </key>
+-    <key name="hide-effect-duration" type="d">
+-      <default>0.3</default>
+-      <_summary>Autohide duration</_summary>
+-      <_description>Sets the time duration of the autohide effect.</_description>
+-    </key>
+-  </schema>
+-</schemalist>
+diff --git a/extensions/native-window-placement/Makefile.am b/extensions/native-window-placement/Makefile.am
+index 0d6c4bc..c53a614 100644
+--- a/extensions/native-window-placement/Makefile.am
++++ b/extensions/native-window-placement/Makefile.am
+@@ -1,14 +1,3 @@
+ EXTENSION_ID = native-window-placement
+ 
+ include ../../extension.mk
+-
+-gschemas_in = $(gschemabase).native-window-placement.gschema.xml.in
+-
+- at INTLTOOL_XML_NOMERGE_RULE@
+-
+-gsettings_SCHEMAS = $(gschemas_in:.xml.in=.xml)
+-
+- at GSETTINGS_RULES@
+-
+-CLEANFILES += $(gschemas_in:.xml.in=.valid) $(gsettings_SCHEMAS)
+-EXTRA_DIST += $(gschemas_in)
+diff --git a/extensions/native-window-placement/extension.js b/extensions/native-window-placement/extension.js
+index 67bc34f..7031ce9 100644
+--- a/extensions/native-window-placement/extension.js
++++ b/extensions/native-window-placement/extension.js
+@@ -25,6 +25,12 @@ const WindowPlacementStrategy = {
+     GRID: 1,
+ };
+ 
++/* Begin user settings */
++const PLACEMENT_STRATEGY = WindowPlacementStrategy.NATURAL;
++const USE_MORE_SCREEN = true;
++const WINDOW_CAPTIONS_ON_TOP = true;
++/* End user settings - do not change anything below this line */
++
+ // testing settings for natural window placement strategy:
+ const WINDOW_PLACEMENT_NATURAL_FILLGAPS = true;                     // enlarge windows at the end to fill gaps         // not implemented yet
+ const WINDOW_PLACEMENT_NATURAL_GRID_FALLBACK = true;                // fallback to grid mode if all windows have the same size and positions.     // not implemented yet
+@@ -117,19 +123,8 @@ function resetState() {
+ function enable() {
+     resetState();
+ 
+-    let settings = new Gio.Settings({ schema: 'org.gnome.shell.extensions.native-window-placement' });
+-    let placementStrategy = settings.get_enum('strategy');
+-    let signalId = settings.connect('changed::strategy', function() {
+-        placementStrategy = settings.get_enum('strategy');
+-        // we don't update immediately, we wait for a relayout
+-        // (and hope for the best)
+-    });
+-    connectedSignals.push({ obj: settings, id: signalId });
+-    let useMoreScreen = settings.get_boolean('use-more-screen');
+-    signalId = settings.connect('changed::use-more-screen', function() {
+-        useMoreScreen = settings.get_boolean('use-more-screen');
+-    });
+-    connectedSignals.push({ obj: settings, id: signalId });
++    let placementStrategy = PLACEMENT_STRATEGY;
++    let useMoreScreen = USE_MORE_SCREEN;
+ 
+     /**
+      * _calculateWindowTransformationsNatural:
+@@ -415,7 +410,7 @@ function enable() {
+     }
+ 
+     /// position window titles on top of windows in overlay ////
+-    if (settings.get_boolean('window-captions-on-top'))  {
++    if (WINDOW_CAPTIONS_ON_TOP)  {
+         winInjections['_init'] = Workspace.WindowOverlay.prototype._init;
+ 	Workspace.WindowOverlay.prototype._init = function(windowClone, parentActor) {
+             let metaWindow = windowClone.metaWindow;
+@@ -529,4 +524,4 @@ function disable() {
+ 
+ function init() {
+     /* do nothing */
+-}
+\ No newline at end of file
++}
+diff --git a/extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in b/extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in
+deleted file mode 100644
+index 873bfd7..0000000
+--- a/extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in
++++ b/dev/null
+@@ -1,26 +0,0 @@
+-<schemalist gettext-domain="gnome-shell-extensions">
+-  <enum id="org.gnome.shell.extensions.native-window-placement.strategy">
+-    <value nick="natural" value="0" />
+-    <value nick="grid" value="1" />
+-  </enum>
+-  <schema id="org.gnome.shell.extensions.native-window-placement" path="/org/gnome/shell/extensions/native-window-placement/">
+-    <key name="strategy" enum="org.gnome.shell.extensions.native-window-placement.strategy">
+-      <default>'natural'</default>
+-      <_summary>Window placement strategy</_summary>
+-      <_description>The algorithm used to layout thumbnails in the overview. 'grid' to use the default grid based algorithm,
+-      'natural' to use another one that reflects more the position and size of the actual window</_description>
+-    </key>
+-    <key name="use-more-screen" type="b">
+-      <default>true</default>
+-      <_summary>Use more screen for windows</_summary>
+-      <_description>Try to use more screen for placing window thumbnails by adapting to screen aspect ratio, and consolidating
+-      them further to reduce the bounding box. This setting applies only with the natural placement strategy.</_description>
+-    </key>
+-    <key name="window-captions-on-top" type="b">
+-      <default>true</default>
+-      <_summary>Place window captions on top</_summary>
+-      <_description>If true, place window captions on top the respective thumbnail, overriding shell default of placing it at
+-      the bottom. Changing this setting requires restarting the shell to have any effect.</_description>
+-    </key>
+-  </schema>
+-</schemalist>
+diff --git a/po/POTFILES.in b/po/POTFILES.in
+index d1be54b..b82572e 100644
+--- a/po/POTFILES.in
++++ b/po/POTFILES.in
+@@ -1,13 +1,9 @@
+ extensions/alternative-status-menu/extension.js
+ extensions/alternate-tab/extension.js
+-extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in
+ extensions/auto-move-windows/extension.js
+-extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in
+ extensions/dock/extension.js
+-extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in
+ extensions/example/extension.js
+ extensions/gajim/extension.js
+-extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in
+ extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in
+ extensions/windowsNavigator/extension.js
+ extensions/xrandr-indicator/extension.js
+--
+cgit v0.9.0.2
diff --git a/gnome-shell-extensions-3.2.3-reenable_localedir.patch b/gnome-shell-extensions-3.2.3-reenable_localedir.patch
new file mode 100644
index 0000000..1debeed
--- /dev/null
+++ b/gnome-shell-extensions-3.2.3-reenable_localedir.patch
@@ -0,0 +1,240 @@
+diff -up gnome-shell-extensions-3.2.3/extension.mk.orig gnome-shell-extensions-3.2.3/extension.mk
+--- gnome-shell-extensions-3.2.3/extension.mk.orig	2011-12-16 22:11:51.000000000 +0100
++++ gnome-shell-extensions-3.2.3/extension.mk	2011-12-18 15:47:07.431906266 +0100
+@@ -6,7 +6,8 @@ nodist_extension_DATA = metadata.json $(
+ EXTRA_DIST = metadata.json.in
+ 
+ metadata.json: metadata.json.in $(top_builddir)/config.status
+-	$(AM_V_GEN) sed -e "s|[@]uuid@|$(uuid)|" \
++	$(AM_V_GEN) sed -e "s|[@]LOCALEDIR@|$(datadir)/locale|"\
++            -e "s|[@]uuid@|$(uuid)|" \
+ 	    -e "s|[@]shell_current@|$(PACKAGE_VERSION)|" \
+ 	    -e "s|[@]url@|$(extensionurl)|" $< > $@
+ 
+diff -up gnome-shell-extensions-3.2.3/extensions/alternate-tab/extension.js.orig gnome-shell-extensions-3.2.3/extensions/alternate-tab/extension.js
+--- gnome-shell-extensions-3.2.3/extensions/alternate-tab/extension.js.orig	2011-12-16 22:11:51.000000000 +0100
++++ gnome-shell-extensions-3.2.3/extensions/alternate-tab/extension.js	2011-12-18 15:45:16.329584747 +0100
+@@ -596,7 +596,7 @@ WindowList.prototype = {
+ };
+ 
+ function init(metadata) {
+-    imports.gettext.bindtextdomain('gnome-shell-extensions', GLib.build_filenamev([metadata.path, 'locale']));
++    imports.gettext.bindtextdomain('gnome-shell-extensions', metadata.localedir);
+ }
+ 
+ function doAltTab(shellwm, binding, mask, window, backwards) {
+diff -up gnome-shell-extensions-3.2.3/extensions/alternate-tab/metadata.json.in.orig gnome-shell-extensions-3.2.3/extensions/alternate-tab/metadata.json.in
+--- gnome-shell-extensions-3.2.3/extensions/alternate-tab/metadata.json.in.orig	2011-12-18 15:35:45.331644964 +0100
++++ gnome-shell-extensions-3.2.3/extensions/alternate-tab/metadata.json.in	2011-12-18 15:35:45.335644795 +0100
+@@ -4,5 +4,6 @@
+ "description": "A replacement for Alt-Tab, allows to cycle between windows and does not group by application",
+ "original-authors": [  "jw at bargsten.org", "thomas.bouffon at gmail.com" ],
+ "shell-version": [ "@shell_current@", "3.2" ],
++"localedir": "@LOCALEDIR@",
+ "url": "@url@"
+ }
+diff -up gnome-shell-extensions-3.2.3/extensions/alternative-status-menu/extension.js.orig gnome-shell-extensions-3.2.3/extensions/alternative-status-menu/extension.js
+--- gnome-shell-extensions-3.2.3/extensions/alternative-status-menu/extension.js.orig	2011-12-16 22:11:51.000000000 +0100
++++ gnome-shell-extensions-3.2.3/extensions/alternative-status-menu/extension.js	2011-12-18 15:45:16.353583736 +0100
+@@ -100,7 +100,7 @@ function createSubMenu() {
+ 
+ // Put your extension initialization code here
+ function init(metadata) {
+-    imports.gettext.bindtextdomain('gnome-shell-extensions', GLib.build_filenamev([metadata.path, 'locale']));
++    imports.gettext.bindtextdomain('gnome-shell-extensions', metadata.localedir);
+ }
+ 
+ function predestroy(statusMenu) {
+diff -up gnome-shell-extensions-3.2.3/extensions/alternative-status-menu/metadata.json.in.orig gnome-shell-extensions-3.2.3/extensions/alternative-status-menu/metadata.json.in
+--- gnome-shell-extensions-3.2.3/extensions/alternative-status-menu/metadata.json.in.orig	2011-12-18 15:35:45.345644374 +0100
++++ gnome-shell-extensions-3.2.3/extensions/alternative-status-menu/metadata.json.in	2011-12-18 15:35:45.347644290 +0100
+@@ -3,5 +3,6 @@
+  "name": "Alternative Status Menu",
+  "description": "Replaces GNOME Shell Status Menu with one showing Suspend/Hibernate and Power Off as separate items",
+  "shell-version": [ "@shell_current@", "3.2" ],
++"localedir": "@LOCALEDIR@",
+  "url": "@url@"
+ }
+diff -up gnome-shell-extensions-3.2.3/extensions/apps-menu/metadata.json.in.orig gnome-shell-extensions-3.2.3/extensions/apps-menu/metadata.json.in
+--- gnome-shell-extensions-3.2.3/extensions/apps-menu/metadata.json.in.orig	2011-12-18 15:35:45.352644080 +0100
++++ gnome-shell-extensions-3.2.3/extensions/apps-menu/metadata.json.in	2011-12-18 15:35:45.355643953 +0100
+@@ -3,5 +3,6 @@
+ "name": "Applications Menu",
+ "description": "Add a gnome 2.x style menu for applications",
+ "shell-version": [ "@shell_current@", "3.2" ],
++"localedir": "@LOCALEDIR@",
+ "url": "@url@"
+ }
+diff -up gnome-shell-extensions-3.2.3/extensions/auto-move-windows/metadata.json.in.orig gnome-shell-extensions-3.2.3/extensions/auto-move-windows/metadata.json.in
+--- gnome-shell-extensions-3.2.3/extensions/auto-move-windows/metadata.json.in.orig	2011-12-18 15:35:45.360643742 +0100
++++ gnome-shell-extensions-3.2.3/extensions/auto-move-windows/metadata.json.in	2011-12-18 15:35:45.362643658 +0100
+@@ -3,6 +3,7 @@
+  "name": "Auto Move Windows",
+  "description": "Move applications to specific workspaces when they create windows",
+  "shell-version": [ "@shell_current@", "3.2" ],
++"localedir": "@LOCALEDIR@",
+  "original-authors": [ "alessandro.crismani at gmail.com", "thomas.bouffon at gmail.com" ],
+  "url": "@url@"
+ }
+diff -up gnome-shell-extensions-3.2.3/extensions/dock/extension.js.orig gnome-shell-extensions-3.2.3/extensions/dock/extension.js
+--- gnome-shell-extensions-3.2.3/extensions/dock/extension.js.orig	2011-12-16 22:11:51.000000000 +0100
++++ gnome-shell-extensions-3.2.3/extensions/dock/extension.js	2011-12-18 15:55:56.170641318 +0100
+@@ -864,7 +864,7 @@ DockIconMenu.prototype = {
+ }
+ 
+ function init(extensionMeta) {
+-    imports.gettext.bindtextdomain('gnome-shell-extensions', GLib.build_filenamev([extensionMeta.path, 'locale']));
++    imports.gettext.bindtextdomain('gnome-shell-extensions', extensionMeta.localedir);
+ }
+ 
+ let dock;
+diff -up gnome-shell-extensions-3.2.3/extensions/dock/metadata.json.in.orig gnome-shell-extensions-3.2.3/extensions/dock/metadata.json.in
+--- gnome-shell-extensions-3.2.3/extensions/dock/metadata.json.in.orig	2011-12-18 15:35:45.367643448 +0100
++++ gnome-shell-extensions-3.2.3/extensions/dock/metadata.json.in	2011-12-18 15:35:45.369643364 +0100
+@@ -4,5 +4,6 @@
+ "description": "A dock for the GNOME Shell -- displays favorite and running applications",
+ "original-author": "tclaesson at gmail.com",
+ "shell-version": [ "@shell_current@", "3.2" ],
++"localedir": "@LOCALEDIR@",
+ "url": "@url@"
+ }
+diff -up gnome-shell-extensions-3.2.3/extensions/drive-menu/extension.js.orig gnome-shell-extensions-3.2.3/extensions/drive-menu/extension.js
+--- gnome-shell-extensions-3.2.3/extensions/drive-menu/extension.js.orig	2011-12-16 22:11:51.000000000 +0100
++++ gnome-shell-extensions-3.2.3/extensions/drive-menu/extension.js	2011-12-18 15:45:16.381582556 +0100
+@@ -92,7 +92,7 @@ DriveMenu.prototype = {
+ 
+ // Put your extension initialization code here
+ function init(metadata) {
+-    imports.gettext.bindtextdomain('gnome-shell-extensions', GLib.build_filenamev([metadata.path, 'locale']));
++    imports.gettext.bindtextdomain('gnome-shell-extensions', metadata.localedir);
+ }
+ 
+ let _indicator;
+diff -up gnome-shell-extensions-3.2.3/extensions/drive-menu/metadata.json.in.orig gnome-shell-extensions-3.2.3/extensions/drive-menu/metadata.json.in
+--- gnome-shell-extensions-3.2.3/extensions/drive-menu/metadata.json.in.orig	2011-12-18 15:35:45.374643153 +0100
++++ gnome-shell-extensions-3.2.3/extensions/drive-menu/metadata.json.in	2011-12-18 15:35:45.376643067 +0100
+@@ -3,5 +3,6 @@
+  "name": "Removable Drive Menu",
+  "description": "A status menu for accessing and unmounting removable devices",
+  "shell-version": [ "@shell_current@", "3.2" ],
++"localedir": "@LOCALEDIR@",
+  "url": "@url@"
+ }
+diff -up gnome-shell-extensions-3.2.3/extensions/example/extension.js.orig gnome-shell-extensions-3.2.3/extensions/example/extension.js
+--- gnome-shell-extensions-3.2.3/extensions/example/extension.js.orig	2011-12-16 22:11:51.000000000 +0100
++++ gnome-shell-extensions-3.2.3/extensions/example/extension.js	2011-12-18 15:45:16.393582052 +0100
+@@ -20,7 +20,7 @@ function _showHello() {
+ function init(metadata) {
+     log ('Example extension initalized');
+ 
+-    imports.gettext.bindtextdomain('gnome-shell-extensions', GLib.build_filenamev([metadata.path, 'locale']));
++    imports.gettext.bindtextdomain('gnome-shell-extensions', metadata.localedir);
+ }
+ 
+ let signalId;
+diff -up gnome-shell-extensions-3.2.3/extensions/example/metadata.json.in.orig gnome-shell-extensions-3.2.3/extensions/example/metadata.json.in
+--- gnome-shell-extensions-3.2.3/extensions/example/metadata.json.in.orig	2011-12-18 15:35:45.381642858 +0100
++++ gnome-shell-extensions-3.2.3/extensions/example/metadata.json.in	2011-12-18 15:35:45.383642774 +0100
+@@ -3,5 +3,6 @@
+  "name": "Hello, World!",
+  "description": "An example extension to show how it works. Shows Hello, world when clicking on the top panel.",
+  "shell-version": [ "@shell_current@", "3.2" ],
++"localedir": "@LOCALEDIR@",
+  "url": "@url@"
+ }
+diff -up gnome-shell-extensions-3.2.3/extensions/gajim/metadata.json.in.orig gnome-shell-extensions-3.2.3/extensions/gajim/metadata.json.in
+--- gnome-shell-extensions-3.2.3/extensions/gajim/metadata.json.in.orig	2011-12-18 15:35:45.388642564 +0100
++++ gnome-shell-extensions-3.2.3/extensions/gajim/metadata.json.in	2011-12-18 15:35:45.390642480 +0100
+@@ -3,5 +3,6 @@
+  "name": "Gajim IM integration",
+  "description": "Display Gajim incoming chats as notifications in the Shell message tray.",
+  "shell-version": [ "@shell_current@", "3.2" ],
++"localedir": "@LOCALEDIR@",
+  "url": "http://base-art.net"
+ }
+diff -up gnome-shell-extensions-3.2.3/extensions/native-window-placement/metadata.json.in.orig gnome-shell-extensions-3.2.3/extensions/native-window-placement/metadata.json.in
+--- gnome-shell-extensions-3.2.3/extensions/native-window-placement/metadata.json.in.orig	2011-12-18 15:35:45.395642267 +0100
++++ gnome-shell-extensions-3.2.3/extensions/native-window-placement/metadata.json.in	2011-12-18 15:35:45.397642184 +0100
+@@ -3,6 +3,7 @@
+  "name": "Native Window Placement",
+  "description": "Arrange windows in overview in a more native way",
+  "shell-version": [ "@shell_current@", "3.2" ],
++"localedir": "@LOCALEDIR@",
+  "url": "@url@",
+  "original-authors": [ "wepmaschda at gmx.de" ]
+ }
+diff -up gnome-shell-extensions-3.2.3/extensions/places-menu/extension.js.orig gnome-shell-extensions-3.2.3/extensions/places-menu/extension.js
+--- gnome-shell-extensions-3.2.3/extensions/places-menu/extension.js.orig	2011-12-16 22:11:51.000000000 +0100
++++ gnome-shell-extensions-3.2.3/extensions/places-menu/extension.js	2011-12-18 15:45:16.363583313 +0100
+@@ -114,7 +114,7 @@ PlacesMenu.prototype = {
+ 
+ 
+ function init(metadata) {
+-    imports.gettext.bindtextdomain('gnome-shell-extensions', GLib.build_filenamev([metadata.path, 'locale']));
++    imports.gettext.bindtextdomain('gnome-shell-extensions', metadata.localedir);
+ }
+ 
+ let _indicator;
+diff -up gnome-shell-extensions-3.2.3/extensions/places-menu/metadata.json.in.orig gnome-shell-extensions-3.2.3/extensions/places-menu/metadata.json.in
+--- gnome-shell-extensions-3.2.3/extensions/places-menu/metadata.json.in.orig	2011-12-18 15:35:45.402641974 +0100
++++ gnome-shell-extensions-3.2.3/extensions/places-menu/metadata.json.in	2011-12-18 15:35:45.404641890 +0100
+@@ -3,5 +3,6 @@
+ "name": "Places Status Indicator",
+ "description": "Add a systems status menu for quickly navigating places in the system",
+ "shell-version": [ "@shell_current@", "3.2" ],
++"localedir": "@LOCALEDIR@",
+ "url": "@url@"
+ }
+diff -up gnome-shell-extensions-3.2.3/extensions/systemMonitor/metadata.json.in.orig gnome-shell-extensions-3.2.3/extensions/systemMonitor/metadata.json.in
+--- gnome-shell-extensions-3.2.3/extensions/systemMonitor/metadata.json.in.orig	2011-12-18 15:35:45.409641680 +0100
++++ gnome-shell-extensions-3.2.3/extensions/systemMonitor/metadata.json.in	2011-12-18 15:35:45.412641553 +0100
+@@ -1,5 +1,6 @@
+ {
+     "shell-version": ["@shell_current@", "3.2" ],
++"localedir": "@LOCALEDIR@",
+     "uuid": "@uuid@",
+     "original-author": "zaspire at rambler.ru",
+     "name": "SystemMonitor",
+diff -up gnome-shell-extensions-3.2.3/extensions/windowsNavigator/metadata.json.in.orig gnome-shell-extensions-3.2.3/extensions/windowsNavigator/metadata.json.in
+--- gnome-shell-extensions-3.2.3/extensions/windowsNavigator/metadata.json.in.orig	2011-12-18 15:35:45.418641300 +0100
++++ gnome-shell-extensions-3.2.3/extensions/windowsNavigator/metadata.json.in	2011-12-18 15:35:45.420641216 +0100
+@@ -1,5 +1,6 @@
+ {
+     "shell-version": ["@shell_current@", "3.2" ],
++"localedir": "@LOCALEDIR@",
+     "uuid": "@uuid@",
+     "original-author": "zaspire at rambler.ru",
+     "name": "windowNavigator",
+diff -up gnome-shell-extensions-3.2.3/extensions/workspace-indicator/metadata.json.in.orig gnome-shell-extensions-3.2.3/extensions/workspace-indicator/metadata.json.in
+--- gnome-shell-extensions-3.2.3/extensions/workspace-indicator/metadata.json.in.orig	2011-12-18 15:35:45.427640922 +0100
++++ gnome-shell-extensions-3.2.3/extensions/workspace-indicator/metadata.json.in	2011-12-18 15:35:45.429640838 +0100
+@@ -3,6 +3,7 @@
+     "name": "Workspace Indicator",
+     "description": "Put an indicator on the panel signaling in which workspace you are, and give you the possibility of switching to another one",
+     "shell-version": [ "@shell_current@", "3.2" ],
++"localedir": "@LOCALEDIR@",
+     "original-authors": [ "erick.red at gmail.com" ],
+     "url": "@url@"
+ }
+diff -up gnome-shell-extensions-3.2.3/extensions/xrandr-indicator/extension.js.orig gnome-shell-extensions-3.2.3/extensions/xrandr-indicator/extension.js
+--- gnome-shell-extensions-3.2.3/extensions/xrandr-indicator/extension.js.orig	2011-12-16 22:11:51.000000000 +0100
++++ gnome-shell-extensions-3.2.3/extensions/xrandr-indicator/extension.js	2011-12-18 15:45:16.338584366 +0100
+@@ -137,7 +137,7 @@ Indicator.prototype = {
+ 
+ 
+ function init(metadata) {
+-    imports.gettext.bindtextdomain('gnome-shell-extensions', GLib.build_filenamev([metadata.path, 'locale']));
++    imports.gettext.bindtextdomain('gnome-shell-extensions', metadata.localedir);
+ }
+ 
+ let _indicator;
+diff -up gnome-shell-extensions-3.2.3/extensions/xrandr-indicator/metadata.json.in.orig gnome-shell-extensions-3.2.3/extensions/xrandr-indicator/metadata.json.in
+--- gnome-shell-extensions-3.2.3/extensions/xrandr-indicator/metadata.json.in.orig	2011-12-18 15:35:45.435640583 +0100
++++ gnome-shell-extensions-3.2.3/extensions/xrandr-indicator/metadata.json.in	2011-12-18 15:35:45.437640499 +0100
+@@ -3,5 +3,6 @@
+ "name": "Monitor Status Indicator",
+ "description": "Add a systems status menu for rotating monitors (overrides what is currently provided by gnome-settings-daemon)",
+ "shell-version": [ "@shell_current@", "3.2" ],
++"localedir": "@LOCALEDIR@",
+ "url": "@url@"
+ }
diff --git a/gnome-shell-extensions.spec b/gnome-shell-extensions.spec
index d67be50..7d5d5b3 100644
--- a/gnome-shell-extensions.spec
+++ b/gnome-shell-extensions.spec
@@ -2,29 +2,32 @@
 %global major_version 3.2
 
 Name:           gnome-shell-extensions
-Version:        %{major_version}.1
+Version:        %{major_version}.3
 Release:        1%{?dist}
 Summary:        Modify and extend GNOME Shell functionality and behavior
 
 Group:          User Interface/Desktops
 License:        GPLv2+
 URL:            http://live.gnome.org/GnomeShell/Extensions
-# Using git archive since upstream hasn't released 3.2.1 yet
+# Using git archive since upstream won't publish anymore updated archives
 # $ git clone git://git.gnome.org/gnome-shell-extensions/
 # $ cd gnome-shell-extensions/
 # $ git archive --format=tar --prefix=%{name}-%{version}/ %{version} | xz > ../%{name}-%{version}.tar.xz
 Source0:        %{name}-%{version}.tar.xz
-# Make alternative-status-menu extension with GNOME Shell 3.2.x (patch taken
-# from upstream's VCS); it includes also a workaround to avoid GNOME Shell crash
-# when enabled at login, due to a race condition, by waiting 10 seconds after
-# login before really enabling the extension
-Patch0:         %{name}-3.2.1-fix_alternative_status_menu_3.2.patch
+# Re-enable all references to localedir in metadata.json files, to make
+# extensions handle again localization files in %{_datadir}/locale/ (reverted
+# from commit c4b4092)
+Patch0:         %{name}-3.2.3-reenable_localedir.patch
+# The 3.2.3 version disables all GSettings settings in favor of JS constants
+# (except for the user-theme extension). The following patch will be *reverted*
+# to re-enable GSettings settings (taken from commit 374abed)
+Patch1:         %{name}-3.2.3-disable_GSettings.patch
 BuildRequires:  glib2-devel
 BuildRequires:  gnome-common
 BuildRequires:  intltool
 BuildRequires:  pkgconfig(gnome-desktop-3.0)
 BuildRequires:  pkgconfig(libgtop-2.0)
-Requires:       gnome-shell >= %{major_version}.1
+Requires:       gnome-shell >= %{major_version}
 BuildArch:      noarch
 
 %description
@@ -53,7 +56,7 @@ Enabled extensions:
 Summary:        Files common to GNOME Shell Extensions
 Group:          User Interface/Desktops
 License:        GPLv2+
-Requires:       gnome-shell >= 3.2.0
+Requires:       gnome-shell >= %{major_version}
 Provides:       %{name}-common = %{version}-%{release}
 Obsoletes:      %{name}-common < %{version}-%{release}
 
@@ -184,7 +187,7 @@ Summary:        Monitor your system status
 Group:          User Interface/Desktops
 License:        GPLv2+
 Requires:       %{pkg_prefix}-common = %{version}-%{release}
-# should be pulled in by control-center, but in case someone tries for
+# Should be pulled in by control-center, but in case someone tries for
 # a minimalist gnome-shell installation
 Requires:       libgtop2
 
@@ -244,12 +247,14 @@ This extension adds a systems status menu for rotating monitors
 
 %prep
 %setup -q
-%patch0 -p1 -b .fix_alternative_status_menu_3.2
+%patch0 -p1 -b .reenable_localedir
+# Patch reverted to *re-enable* GSettings settings
+%patch1 -p1 -R -b .enable_GSettings
 
 
 %build
-# since we build from a git checkout
-[ -x autogen.sh ] && NOCONFIGURE=1 ./autogen.sh 
+# Since we build from a Git checkout
+[ -x autogen.sh ] && NOCONFIGURE=1 ./autogen.sh --disable-schemas-compile
 
 %configure  --enable-extensions="alternate-tab alternative-status-menu apps-menu auto-move-windows dock drive-menu native-window-placement places-menu systemMonitor user-theme windowsNavigator workspace-indicator xrandr-indicator"
 make %{?_smp_mflags}
@@ -380,6 +385,13 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || :
 
 
 %changelog
+* Sun Dec 18 2011 Mohamed El Morabity <melmorabity at fedoraproject.org> - 3.2.3-1
+- Update to 3.2.3
+- Remove workaround to fix alternative-status-menu extension crash when login
+- Re-enable all references to localedir in metadata.json files (reverted from
+  commit c4b4092)
+- Re-enable GSettings settings removed since 3.2.3 release
+
 * Wed Nov 30 2011 Mohamed El Morabity <melmorabity at fedoraproject.org> - 3.2.1-1
 - Update to 3.2.1
 - Fix alternative-status-menu extension crash when login
diff --git a/sources b/sources
index d2fad9b..f87c68d 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-6cc87b75ddb901d861de65c96723cb54  gnome-shell-extensions-3.2.1.tar.xz
+6cf098459a8894c21d7946c0a49859bc  gnome-shell-extensions-3.2.3.tar.xz


More information about the scm-commits mailing list