Merge pull request #2185 from lethalman/gnome3

tracker, licenses.cc-by-30, gnome-user-docs, upgrade sushi, gnome-keyring service, gnome-user-share, gnome-tweak-tool, gnome-shell-extensions, xdg-user-dirs

+666 -34
+6
lib/licenses.nix
··· 64 64 url = https://fedoraproject.org/wiki/Licensing/BSD; 65 65 }; 66 66 67 + cc-by-30 = { 68 + shortName = "CC BY 3.0"; 69 + fullName = "Creative Commons Attribution 3.0"; 70 + url = http://creativecommons.org/licenses/by/3.0; 71 + }; 72 + 67 73 cddl = { 68 74 shortName = "CDDL"; 69 75 fullName = "Common Development Distribution License ";
-2
lib/lists.nix
··· 227 227 228 228 crossLists = f: foldl (fs: args: concatMap (f: map f args) fs) [f]; 229 229 230 - # List difference, xs - ys. Removes elements of ys from xs. 231 - difference = xs: ys: filter (y: !(builtins.elem y ys)) xs; 232 230 }
+4
nixos/modules/config/system-path.nix
··· 135 135 if [ -x $out/bin/glib-compile-schemas -a -w $out/share/glib-2.0/schemas ]; then 136 136 $out/bin/glib-compile-schemas $out/share/glib-2.0/schemas 137 137 fi 138 + 139 + if [ -x $out/bin/update-desktop-database -a -w $out/share/applications ]; then 140 + $out/bin/update-desktop-database $out/share/applications 141 + fi 138 142 ''; 139 143 }; 140 144
+4
nixos/modules/module-list.nix
··· 100 100 ./services/desktops/accountservice.nix 101 101 ./services/desktops/gnome3/at-spi2-core.nix 102 102 ./services/desktops/gnome3/evolution-data-server.nix 103 + ./services/desktops/gnome3/gnome-keyring.nix 104 + ./services/desktops/gnome3/gnome-online-accounts.nix 105 + ./services/desktops/gnome3/gnome-user-share.nix 103 106 ./services/desktops/gnome3/sushi.nix 107 + ./services/desktops/gnome3/tracker.nix 104 108 ./services/desktops/telepathy.nix 105 109 ./services/games/ghost-one.nix 106 110 ./services/games/minecraft-server.nix
+40
nixos/modules/services/desktops/gnome3/gnome-keyring.nix
··· 1 + # GNOME Keyring daemon. 2 + 3 + { config, pkgs, ... }: 4 + 5 + with pkgs.lib; 6 + 7 + { 8 + 9 + ###### interface 10 + 11 + options = { 12 + 13 + services.gnome3.gnome-keyring = { 14 + 15 + enable = mkOption { 16 + type = types.bool; 17 + default = false; 18 + description = '' 19 + Whether to enable GNOME Keyring daemon, a service designed to 20 + take care of the user's security credentials, 21 + such as user names and passwordsa search engine. 22 + ''; 23 + }; 24 + 25 + }; 26 + 27 + }; 28 + 29 + 30 + ###### implementation 31 + 32 + config = mkIf config.services.gnome3.gnome-keyring.enable { 33 + 34 + environment.systemPackages = [ pkgs.gnome3.gnome_keyring ]; 35 + 36 + services.dbus.packages = [ pkgs.gnome3.gnome_keyring ]; 37 + 38 + }; 39 + 40 + }
+39
nixos/modules/services/desktops/gnome3/gnome-online-accounts.nix
··· 1 + # GNOME Online Accounts daemon. 2 + 3 + { config, pkgs, ... }: 4 + 5 + with pkgs.lib; 6 + 7 + { 8 + 9 + ###### interface 10 + 11 + options = { 12 + 13 + services.gnome3.gnome-online-accounts = { 14 + 15 + enable = mkOption { 16 + type = types.bool; 17 + default = false; 18 + description = '' 19 + Whether to enable GNOME Online Accounts daemon, a service that provides 20 + a single sign-on framework for the GNOME desktop. 21 + ''; 22 + }; 23 + 24 + }; 25 + 26 + }; 27 + 28 + 29 + ###### implementation 30 + 31 + config = mkIf config.services.gnome3.gnome-online-accounts.enable { 32 + 33 + environment.systemPackages = [ pkgs.gnome3.gnome_online_accounts ]; 34 + 35 + services.dbus.packages = [ pkgs.gnome3.gnome_online_accounts ]; 36 + 37 + }; 38 + 39 + }
+42
nixos/modules/services/desktops/gnome3/gnome-user-share.nix
··· 1 + # GNOME User Share daemon. 2 + 3 + { config, pkgs, ... }: 4 + 5 + with pkgs.lib; 6 + 7 + { 8 + 9 + ###### interface 10 + 11 + options = { 12 + 13 + services.gnome3.gnome-user-share = { 14 + 15 + enable = mkOption { 16 + type = types.bool; 17 + default = false; 18 + description = '' 19 + Whether to enable GNOME User Share, a service that exports the 20 + contents of the Public folder in your home directory on the local network. 21 + ''; 22 + }; 23 + 24 + }; 25 + 26 + }; 27 + 28 + 29 + ###### implementation 30 + 31 + config = mkIf config.services.gnome3.gnome-user-share.enable { 32 + 33 + environment.systemPackages = [ pkgs.gnome3.gnome-user-share ]; 34 + 35 + services.xserver.displayManager.sessionCommands = with pkgs.gnome3; '' 36 + # Don't let gnome-control-center depend upon gnome-user-share 37 + export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}${gnome-user-share}/share/gsettings-schemas/${gnome-user-share.name} 38 + ''; 39 + 40 + }; 41 + 42 + }
+39
nixos/modules/services/desktops/gnome3/tracker.nix
··· 1 + # Tracker daemon. 2 + 3 + { config, pkgs, ... }: 4 + 5 + with pkgs.lib; 6 + 7 + { 8 + 9 + ###### interface 10 + 11 + options = { 12 + 13 + services.gnome3.tracker = { 14 + 15 + enable = mkOption { 16 + type = types.bool; 17 + default = false; 18 + description = '' 19 + Whether to enable Tracker services, a search engine, 20 + search tool and metadata storage system. 21 + ''; 22 + }; 23 + 24 + }; 25 + 26 + }; 27 + 28 + 29 + ###### implementation 30 + 31 + config = mkIf config.services.gnome3.tracker.enable { 32 + 33 + environment.systemPackages = [ pkgs.gnome3.tracker ]; 34 + 35 + services.dbus.packages = [ pkgs.gnome3.tracker ]; 36 + 37 + }; 38 + 39 + }
+36 -4
nixos/modules/services/x11/desktop-managers/gnome3.nix
··· 5 5 let 6 6 cfg = config.services.xserver.desktopManager.gnome3; 7 7 gnome3 = pkgs.gnome3; 8 + 9 + # Remove packages of ys from xs, based on their names 10 + removePackagesByName = xs: ys: 11 + let 12 + pkgName = drv: (builtins.parseDrvName drv.name).name; 13 + ysNames = map pkgName ys; 14 + res = (filter (x: !(builtins.elem (pkgName x) ysNames)) xs); 15 + in 16 + filter (x: !(builtins.elem (pkgName x) ysNames)) xs; 17 + 8 18 in { 9 19 10 20 options = { ··· 32 42 services.accounts-daemon.enable = true; 33 43 services.gnome3.at-spi2-core.enable = true; 34 44 services.gnome3.evolution-data-server.enable = true; 35 - services.gnome3.sushi.enable = true; 36 - services.telepathy.enable = true; 45 + services.gnome3.gnome-keyring.enable = true; 46 + services.gnome3.gnome-online-accounts.enable = mkDefault true; 47 + services.gnome3.gnome-user-share.enable = mkDefault true; 48 + services.gnome3.sushi.enable = mkDefault true; 49 + services.gnome3.tracker.enable = mkDefault true; 50 + services.telepathy.enable = mkDefault true; 37 51 networking.networkmanager.enable = true; 38 52 services.upower.enable = config.powerManagement.enable; 39 53 ··· 50 64 51 65 export XDG_MENU_PREFIX=gnome 52 66 67 + # Don't let epiphany depend upon gnome-shell 68 + export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}${pkgs.gnome3.gnome_shell}/share/gsettings-schemas/${pkgs.gnome3.gnome_shell.name} 69 + 70 + # Update user dirs as described in http://freedesktop.org/wiki/Software/xdg-user-dirs/ 71 + ${pkgs.xdg-user-dirs}/bin/xdg-user-dirs-update 72 + 53 73 ${gnome3.gnome_session}/bin/gnome-session& 54 74 waitPID=$! 55 75 ''; ··· 58 78 environment.variables.GIO_EXTRA_MODULES = [ "${gnome3.dconf}/lib/gio/modules" 59 79 "${pkgs.glib_networking}/lib/gio/modules" ]; 60 80 environment.systemPackages = 61 - [ gnome3.dconf 81 + [ pkgs.desktop_file_utils 62 82 pkgs.glib_networking 83 + pkgs.gtk3 # for gtk-update-icon-cache 63 84 pkgs.ibus 85 + pkgs.shared_mime_info # for update-mime-database 86 + gnome3.dconf 64 87 gnome3.gnome-backgrounds 65 88 gnome3.gnome_control_center 66 89 gnome3.gnome_icon_theme 90 + gnome3.gnome-menus 67 91 gnome3.gnome_settings_daemon 68 92 gnome3.gnome_shell 69 93 gnome3.gnome_themes_standard 70 - ] ++ (lists.difference [ 94 + ] ++ (removePackagesByName [ 71 95 gnome3.baobab 96 + gnome3.empathy 72 97 gnome3.eog 73 98 gnome3.epiphany 74 99 gnome3.evince ··· 81 106 gnome3.gnome-contacts 82 107 gnome3.gnome-font-viewer 83 108 gnome3.gnome-screenshot 109 + gnome3.gnome-shell-extensions 84 110 gnome3.gnome-system-log 85 111 gnome3.gnome-system-monitor 86 112 gnome3.gnome_terminal 113 + gnome3.gnome-user-docs 87 114 88 115 gnome3.file-roller 116 + gnome3.gnome-tweak-tool 89 117 ] config.environment.gnome3.excludePackages); 118 + 119 + # Needed for themes and backgrounds 120 + environment.pathsToLink = [ "/share" ]; 121 + 90 122 }; 91 123 92 124
+1
pkgs/desktops/gnome-3/core/dconf/default.nix
··· 19 19 20 20 rm $out/lib/gio/modules/giomodule.cache 21 21 rm $out/share/icons/hicolor/icon-theme.cache 22 + rm $out/share/icons/HighContrast/icon-theme.cache 22 23 ''; 23 24 24 25 meta = with stdenv.lib; {
+5 -6
pkgs/desktops/gnome-3/core/empathy/default.nix
··· 37 37 "-I${dbus_libs}/include/dbus-1.0" 38 38 "-I${dbus_libs}/lib/dbus-1.0/include" ]; 39 39 40 - enableParallelBuilding = true; 41 - 42 40 preFixup = '' 43 - wrapProgram "$out/bin/empathy" \ 44 - --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ 45 - --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3}/share:${gnome3.gnome_themes_standard}/:${gnome3.gnome_themes_standard}/share:${hicolor_icon_theme}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" 46 - 41 + for f in $out/bin/* $out/libexec/*; do 42 + wrapProgram $f \ 43 + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ 44 + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3}/share:${gnome3.gnome_themes_standard}/:${gnome3.gnome_themes_standard}/share:${hicolor_icon_theme}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" 45 + done 47 46 rm $out/share/icons/hicolor/icon-theme.cache 48 47 ''; 49 48
+10 -4
pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
··· 2 2 , libcanberra, accountservice, libpwquality, pulseaudio, fontconfig 3 3 , gdk_pixbuf, hicolor_icon_theme, librsvg, libxkbfile, libnotify 4 4 , libxml2, polkit, libxslt, libgtop, libsoup, colord, colord-gtk 5 - , cracklib, python, krb5, networkmanagerapplet, libwacom, samba 6 - , shared_mime_info, tzdata, icu, libtool, docbook_xsl, docbook_xsl_ns }: 5 + , cracklib, python, krb5, networkmanagerapplet, networkmanager 6 + , libwacom, samba, shared_mime_info, tzdata, icu, libtool 7 + , docbook_xsl, docbook_xsl_ns, modemmanager }: 7 8 8 9 # http://ftp.gnome.org/pub/GNOME/teams/releng/3.10.2/gnome-suites-core-3.10.2.modules 9 - # TODO: bluetooth, networkmanager, wacom, smbclient, printers 10 + # TODO: bluetooth, wacom, smbclient, printers 10 11 11 12 stdenv.mkDerivation rec { 12 13 name = "gnome-control-center-3.10.2"; ··· 20 21 propagatedBuildInputs = [ gdk_pixbuf gnome3.gnome_icon_theme librsvg 21 22 hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ]; 22 23 24 + enableParallelBuilding = true; 25 + 23 26 buildInputs = with gnome3; 24 27 [ pkgconfig intltool ibus gtk glib upower libcanberra gsettings_desktop_schemas 25 28 libxml2 gnome_desktop gnome_settings_daemon polkit libxslt libgtop gnome-menus 26 29 gnome_online_accounts libsoup colord pulseaudio fontconfig colord-gtk libpwquality 27 30 accountservice krb5 networkmanagerapplet libwacom samba libnotify libxkbfile 28 - shared_mime_info icu libtool docbook_xsl docbook_xsl_ns makeWrapper ]; 31 + shared_mime_info icu libtool docbook_xsl docbook_xsl_ns 32 + networkmanager modemmanager makeWrapper ]; 29 33 30 34 preBuild = '' 31 35 substituteInPlace tz.h --replace "/usr/share/zoneinfo/zone.tab" "${tzdata}/share/zoneinfo/zone.tab" ··· 48 52 ''; 49 53 50 54 meta = with stdenv.lib; { 55 + description = "Single sign-on framework for GNOME"; 56 + maintainers = with maintainers; [ lethalman ]; 51 57 platforms = platforms.linux; 52 58 }; 53 59
+2
pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix
··· 12 12 13 13 NIX_CFLAGS_COMPILE = "-I${dbus_glib}/include/dbus-1.0 -I${dbus_libs}/include/dbus-1.0"; 14 14 15 + enableParallelBuilding = true; 16 + 15 17 buildInputs = [ pkgconfig glib libxslt gtk webkitgtk json_glib rest libsecret dbus_glib telepathy_glib intltool icu libsoup docbook_xsl_ns docbook_xsl]; 16 18 17 19 meta = with stdenv.lib; {
+26
pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
··· 1 + { stdenv, intltool, fetchurl, libgtop 2 + , pkgconfig, gtk3, glib, hicolor_icon_theme 3 + , bash, makeWrapper, itstool 4 + , gnome3, file }: 5 + 6 + stdenv.mkDerivation rec { 7 + name = "gnome-shell-extensions-3.10.1"; 8 + 9 + src = fetchurl { 10 + url = "mirror://gnome/sources/gnome-shell-extensions/3.10/${name}.tar.xz"; 11 + sha256 = "9baa9ddaf4e14cab6d4d7944d8dc009378b25f995acfd0fd72843f599cb5ae43"; 12 + }; 13 + 14 + doCheck = true; 15 + 16 + buildInputs = [ pkgconfig gtk3 glib libgtop intltool itstool 17 + makeWrapper file ]; 18 + 19 + meta = with stdenv.lib; { 20 + homepage = https://wiki.gnome.org/Projects/GnomeShell/Extensions; 21 + description = "Modify and extend GNOME Shell functionality and behavior"; 22 + maintainers = with maintainers; [ lethalman ]; 23 + license = licenses.gpl2; 24 + platforms = platforms.linux; 25 + }; 26 + }
+4 -1
pkgs/desktops/gnome-3/core/gnome-shell/default.nix
··· 1 1 { fetchurl, stdenv, pkgconfig, gnome3, json_glib, libcroco, intltool, libsecret 2 2 , python, libsoup, polkit, clutter, networkmanager, docbook_xsl, docbook_xsl_ns 3 - , libstartup_notification, telepathy_glib, telepathy_logger, libXtst, p11_kit 3 + , libstartup_notification, telepathy_glib, telepathy_logger, libXtst, p11_kit, unzip 4 4 , pulseaudio, libical, libtool, nss, gobjectIntrospection, gstreamer, makeWrapper 5 5 , accountservice, gdk_pixbuf, gdm, upower, ibus, networkmanagerapplet, librsvg }: 6 6 ··· 29 29 30 30 preFixup = with gnome3; '' 31 31 wrapProgram "$out/bin/gnome-shell" \ 32 + --prefix PATH : "${unzip}/bin" \ 32 33 --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ 33 34 --prefix LD_LIBRARY_PATH : "${accountservice}/lib:${ibus}/lib:${gdm}/lib" \ 34 35 --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ ··· 37 38 wrapProgram "$out/libexec/gnome-shell-calendar-server" \ 38 39 --prefix XDG_DATA_DIRS : "${evolution_data_server}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" 39 40 ''; 41 + 42 + patches = [ ./fix_background_corruption.patch ]; 40 43 41 44 meta = with stdenv.lib; { 42 45 platforms = platforms.linux;
+147
pkgs/desktops/gnome-3/core/gnome-shell/fix_background_corruption.patch
··· 1 + commit 831bd07b0d6b7055fea8317f2cdf8fd4a408c36d 2 + Author: Jasper St. Pierre <jstpierre@mecheye.net> 3 + Date: Thu Nov 7 17:14:47 2013 -0500 4 + 5 + layout: Fix several issues with the background management code 6 + 7 + If monitor-changed fires at startup, it will destroy all of the 8 + backgrounds, but since this._isStartup is true, won't recreate any 9 + of them. Additionally, since _bgManagers is indexed by monitor index, 10 + if the primary index is not 0, it could become a sparse array (e.g. 11 + [undefined, undefined, primaryBackground]), and our for loop will 12 + crash trying to access properties of undefined. 13 + 14 + Fix both of these issues by always creating background managers for 15 + every monitor, hiding them on startup but only showing them after 16 + the startup animation is complete. 17 + 18 + One thing we need to watch out for is that while LayoutManager is 19 + constructing, Main.uiGroup / Main.layoutManager will be undefined, 20 + so addBackgroundMenu will fail. Fix this by passing down the uiGroup 21 + to the background menu code. 22 + 23 + https://bugzilla.gnome.org/show_bug.cgi?id=709313 24 + 25 + diff --git a/js/ui/backgroundMenu.js b/js/ui/backgroundMenu.js 26 + index 06e698c..dcbbb39 100644 27 + --- a/js/ui/backgroundMenu.js 28 + +++ b/js/ui/backgroundMenu.js 29 + @@ -13,7 +13,7 @@ const BackgroundMenu = new Lang.Class({ 30 + Name: 'BackgroundMenu', 31 + Extends: PopupMenu.PopupMenu, 32 + 33 + - _init: function(source) { 34 + + _init: function(source, layoutManager) { 35 + this.parent(source, 0, St.Side.TOP); 36 + 37 + this.addSettingsAction(_("Settings"), 'gnome-control-center.desktop'); 38 + @@ -22,17 +22,17 @@ const BackgroundMenu = new Lang.Class({ 39 + 40 + this.actor.add_style_class_name('background-menu'); 41 + 42 + - Main.uiGroup.add_actor(this.actor); 43 + + layoutManager.uiGroup.add_actor(this.actor); 44 + this.actor.hide(); 45 + } 46 + }); 47 + 48 + -function addBackgroundMenu(actor) { 49 + +function addBackgroundMenu(actor, layoutManager) { 50 + let cursor = new St.Bin({ opacity: 0 }); 51 + - Main.uiGroup.add_actor(cursor); 52 + + layoutManager.uiGroup.add_actor(cursor); 53 + 54 + actor.reactive = true; 55 + - actor._backgroundMenu = new BackgroundMenu(cursor); 56 + + actor._backgroundMenu = new BackgroundMenu(cursor, layoutManager); 57 + actor._backgroundManager = new PopupMenu.PopupMenuManager({ actor: actor }); 58 + actor._backgroundManager.addMenu(actor._backgroundMenu); 59 + 60 + diff --git a/js/ui/layout.js b/js/ui/layout.js 61 + index 17073a6..80bae9d 100644 62 + --- a/js/ui/layout.js 63 + +++ b/js/ui/layout.js 64 + @@ -352,26 +352,26 @@ const LayoutManager = new Lang.Class({ 65 + this.emit('hot-corners-changed'); 66 + }, 67 + 68 + - _createBackground: function(monitorIndex) { 69 + + _addBackgroundMenu: function(bgManager) { 70 + + BackgroundMenu.addBackgroundMenu(bgManager.background.actor, this); 71 + + }, 72 + + 73 + + _createBackgroundManager: function(monitorIndex) { 74 + let bgManager = new Background.BackgroundManager({ container: this._backgroundGroup, 75 + layoutManager: this, 76 + monitorIndex: monitorIndex }); 77 + - BackgroundMenu.addBackgroundMenu(bgManager.background.actor); 78 + - 79 + - bgManager.connect('changed', Lang.bind(this, function() { 80 + - BackgroundMenu.addBackgroundMenu(bgManager.background.actor); 81 + - })); 82 + 83 + - this._bgManagers[monitorIndex] = bgManager; 84 + + bgManager.connect('changed', Lang.bind(this, this._addBackgroundMenu)); 85 + + this._addBackgroundMenu(bgManager); 86 + 87 + - return bgManager.background; 88 + + return bgManager; 89 + }, 90 + 91 + - _createSecondaryBackgrounds: function() { 92 + + _showSecondaryBackgrounds: function() { 93 + for (let i = 0; i < this.monitors.length; i++) { 94 + if (i != this.primaryIndex) { 95 + - let background = this._createBackground(i); 96 + - 97 + + let background = this._bgManagers[i].background; 98 + + background.actor.show(); 99 + background.actor.opacity = 0; 100 + Tweener.addTween(background.actor, 101 + { opacity: 255, 102 + @@ -381,10 +381,6 @@ const LayoutManager = new Lang.Class({ 103 + } 104 + }, 105 + 106 + - _createPrimaryBackground: function() { 107 + - this._createBackground(this.primaryIndex); 108 + - }, 109 + - 110 + _updateBackgrounds: function() { 111 + let i; 112 + for (i = 0; i < this._bgManagers.length; i++) 113 + @@ -395,11 +391,12 @@ const LayoutManager = new Lang.Class({ 114 + if (Main.sessionMode.isGreeter) 115 + return; 116 + 117 + - if (this._startingUp) 118 + - return; 119 + - 120 + for (let i = 0; i < this.monitors.length; i++) { 121 + - this._createBackground(i); 122 + + let bgManager = this._createBackgroundManager(i); 123 + + this._bgManagers.push(bgManager); 124 + + 125 + + if (i != this.primaryIndex && this._startingUp) 126 + + bgManager.background.actor.hide(); 127 + } 128 + }, 129 + 130 + @@ -595,7 +592,7 @@ const LayoutManager = new Lang.Class({ 131 + if (Main.sessionMode.isGreeter) { 132 + this.panelBox.translation_y = -this.panelBox.height; 133 + } else { 134 + - this._createPrimaryBackground(); 135 + + this._updateBackgrounds(); 136 + 137 + // We need to force an update of the regions now before we scale 138 + // the UI group to get the coorect allocation for the struts. 139 + @@ -673,7 +670,7 @@ const LayoutManager = new Lang.Class({ 140 + this.keyboardBox.show(); 141 + 142 + if (!Main.sessionMode.isGreeter) { 143 + - this._createSecondaryBackgrounds(); 144 + + this._showSecondaryBackgrounds(); 145 + global.window_group.remove_clip(); 146 + } 147 +
+20
pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix
··· 1 + { stdenv, fetchurl, pkgconfig, file, gnome3, itstool, libxml2, intltool }: 2 + 3 + stdenv.mkDerivation rec { 4 + name = "gnome-user-docs-3.10.3"; 5 + 6 + src = fetchurl { 7 + url = "mirror://gnome/sources/gnome-user-docs/3.10/${name}.tar.xz"; 8 + sha256 = "960b6373ea52e41e3deb3501930e024005b29d2cc958bfadc87450a291d2a905"; 9 + }; 10 + 11 + buildInputs = [ pkgconfig gnome3.yelp itstool libxml2 intltool ]; 12 + 13 + meta = with stdenv.lib; { 14 + homepage = https://help.gnome.org/users/gnome-help/3.10; 15 + description = "User and system administration help for the Gnome desktop"; 16 + maintainers = with maintainers; [ lethalman ]; 17 + license = licenses.cc-by-30; 18 + platforms = platforms.linux; 19 + }; 20 + }
+52
pkgs/desktops/gnome-3/core/gnome-user-share/default.nix
··· 1 + { stdenv, intltool, fetchurl, apacheHttpd_2_2, nautilus 2 + , pkgconfig, gtk3, glib, hicolor_icon_theme, libxml2, gnused 3 + , bash, makeWrapper, itstool, libnotify, libtool, mod_dnssd 4 + , gnome3, librsvg, gdk_pixbuf, file, libcanberra_gtk3 }: 5 + 6 + stdenv.mkDerivation rec { 7 + name = "gnome-user-share-3.10.2"; 8 + 9 + src = fetchurl { 10 + url = "mirror://gnome/sources/gnome-user-share/3.10/${name}.tar.xz"; 11 + sha256 = "1d1ea57a49224c36e7cba04f80265e835639377f474a7582c9e8ac946eda0f8f"; 12 + }; 13 + 14 + doCheck = true; 15 + 16 + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; 17 + 18 + preConfigure = '' 19 + sed -e 's,^LoadModule dnssd_module.\+,LoadModule dnssd_module ${mod_dnssd}/modules/mod_dnssd.so,' -i data/dav_user_2.2.conf 20 + ''; 21 + 22 + configureFlags = [ "--with-httpd=${apacheHttpd_2_2}/bin/httpd" 23 + "--with-modules-path=${apacheHttpd_2_2}/modules" 24 + "--disable-bluetooth" 25 + "--with-nautilusdir=$(out)/lib/nautilus/extensions-3.0" ]; 26 + 27 + buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2 libtool 28 + makeWrapper file gdk_pixbuf gnome3.gnome_icon_theme librsvg 29 + hicolor_icon_theme gnome3.gnome_icon_theme_symbolic 30 + nautilus libnotify libcanberra_gtk3 ]; 31 + 32 + postInstall = '' 33 + mkdir -p $out/share/gsettings-schemas/$name 34 + mv $out/share/glib-2.0 $out/share/gsettings-schemas/$name 35 + ${glib}/bin/glib-compile-schemas $out/share/gsettings-schemas/$name/glib-2.0/schemas 36 + ''; 37 + 38 + preFixup = '' 39 + wrapProgram "$out/libexec/gnome-user-share" \ 40 + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ 41 + --prefix XDG_DATA_DIRS : "$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" 42 + rm $out/share/icons/hicolor/icon-theme.cache 43 + ''; 44 + 45 + meta = with stdenv.lib; { 46 + homepage = https://help.gnome.org/users/gnome-user-share/3.8; 47 + description = "Service that exports the contents of the Public folder in your home directory on the local network"; 48 + maintainers = with maintainers; [ lethalman ]; 49 + license = licenses.gpl2; 50 + platforms = platforms.linux; 51 + }; 52 + }
+3 -3
pkgs/desktops/gnome-3/core/sushi/default.nix
··· 4 4 , gdk_pixbuf, librsvg, hicolor_icon_theme }: 5 5 6 6 stdenv.mkDerivation rec { 7 - name = "sushi-3.8.1"; 7 + name = "sushi-3.10.0"; 8 8 9 9 src = fetchurl { 10 - url = "mirror://gnome/sources/sushi/3.8/${name}.tar.xz"; 11 - sha256 = "c4f24d0961ce8fc5ef3a4fe9af178e368c7117459df2c0be12c8f953646c82dd"; 10 + url = "mirror://gnome/sources/sushi/3.10/${name}.tar.xz"; 11 + sha256 = "cffcf28b170f5825e84983a979972d4d901a453b61cbe3e560d362e8dd4b4bc8"; 12 12 }; 13 13 14 14 propagatedUserEnvPkgs = [ gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good ];
+49
pkgs/desktops/gnome-3/core/tracker/default.nix
··· 1 + { stdenv, intltool, fetchurl, libxml2, upower 2 + , pkgconfig, gtk3, glib, hicolor_icon_theme 3 + , bash, makeWrapper, itstool, vala, sqlite 4 + , gnome3, librsvg, gdk_pixbuf, file, libnotify 5 + , evolution_data_server, gst_all_1, poppler 6 + , icu, taglib, libjpeg, libtiff, giflib, libcue 7 + , libvorbis, flac, exempi, networkmanager 8 + , libpng, libexif, libgsf, libuuid, bzip2 }: 9 + 10 + stdenv.mkDerivation rec { 11 + name = "tracker-1.0.0"; 12 + 13 + src = fetchurl { 14 + url = "mirror://gnome/sources/tracker/1.0/${name}.tar.xz"; 15 + sha256 = "a1d033faf2c78f0e239f3c2c961b96623c9a7dabd938c08e3f5660bd70f54ba2"; 16 + }; 17 + 18 + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; 19 + 20 + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; 21 + 22 + enableParallelBuilding = true; 23 + 24 + buildInputs = [ vala pkgconfig gtk3 glib intltool itstool libxml2 25 + bzip2 gnome3.totem-pl-parser 26 + gnome3.gsettings_desktop_schemas makeWrapper file 27 + gdk_pixbuf gnome3.gnome_icon_theme librsvg sqlite 28 + upower libnotify evolution_data_server gnome3.libgee 29 + gst_all_1.gstreamer gst_all_1.gst-plugins-base flac 30 + poppler icu taglib libjpeg libtiff giflib libvorbis 31 + exempi networkmanager libpng libexif libgsf libuuid 32 + hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ]; 33 + 34 + preFixup = '' 35 + for f in $out/bin/* $out/libexec/*; do 36 + wrapProgram $f \ 37 + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ 38 + --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" 39 + done 40 + ''; 41 + 42 + meta = with stdenv.lib; { 43 + homepage = https://wiki.gnome.org/Projects/Tracker; 44 + description = "Desktop-neutral user information store, search tool and indexer"; 45 + maintainers = with maintainers; [ lethalman ]; 46 + license = licenses.gpl2; 47 + platforms = platforms.linux; 48 + }; 49 + }
+10
pkgs/desktops/gnome-3/default.nix
··· 74 74 75 75 gnome_shell = callPackage ./core/gnome-shell { }; 76 76 77 + gnome-shell-extensions = callPackage ./core/gnome-shell-extensions { }; 78 + 77 79 gnome-screenshot = callPackage ./core/gnome-screenshot { }; 78 80 79 81 gnome_settings_daemon = callPackage ./core/gnome-settings-daemon { }; ··· 86 88 87 89 gnome_themes_standard = callPackage ./core/gnome-themes-standard { }; 88 90 91 + gnome-user-docs = callPackage ./core/gnome-user-docs { }; 92 + 93 + gnome-user-share = callPackage ./core/gnome-user-share { }; 94 + 89 95 grilo = callPackage ./core/grilo { }; 90 96 91 97 gsettings_desktop_schemas = callPackage ./core/gsettings-desktop-schemas { }; ··· 121 127 totem = callPackage ./core/totem { }; 122 128 123 129 totem-pl-parser = callPackage ./core/totem-pl-parser { }; 130 + 131 + tracker = callPackage ./core/tracker { }; 124 132 125 133 vte = callPackage ./core/vte { }; 126 134 ··· 156 164 libgit2-glib = callPackage ./misc/libgit2-glib { }; 157 165 158 166 gexiv2 = callPackage ./misc/gexiv2 { }; 167 + 168 + gnome-tweak-tool = callPackage ./misc/gnome-tweak-tool { }; 159 169 }
+46
pkgs/desktops/gnome-3/misc/gnome-tweak-tool/default.nix
··· 1 + { stdenv, intltool, fetchurl, python, pygobject3, atk 2 + , pkgconfig, gtk3, glib, hicolor_icon_theme, libsoup 3 + , bash, makeWrapper, itstool, libxml2, python3Packages 4 + , gnome3, librsvg, gdk_pixbuf, file, libnotify }: 5 + 6 + stdenv.mkDerivation rec { 7 + name = "gnome-tweak-tool-3.10.1"; 8 + 9 + src = fetchurl { 10 + url = "mirror://gnome/sources/gnome-tweak-tool/3.10/${name}.tar.xz"; 11 + sha256 = "fb5af9022c0521a925ef9f295e4080212b1b45427cd5f5f3a901667590afa7ec"; 12 + }; 13 + 14 + doCheck = true; 15 + 16 + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; 17 + 18 + makeFlags = [ "DESTDIR=/" ]; 19 + 20 + buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2 21 + gnome3.gsettings_desktop_schemas makeWrapper file 22 + gdk_pixbuf gnome3.gnome_icon_theme librsvg 23 + hicolor_icon_theme gnome3.gnome_icon_theme_symbolic 24 + python pygobject3 libnotify gnome3.gnome_shell 25 + libsoup gnome3.gnome_settings_daemon gnome3.nautilus 26 + gnome3.gnome_desktop ]; 27 + 28 + preFixup = '' 29 + wrapProgram "$out/bin/gnome-tweak-tool" \ 30 + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ 31 + --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \ 32 + --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ 33 + --prefix LD_LIBRARY_PATH ":" "${libsoup}/lib:${gnome3.gnome_desktop}/lib:${libnotify}/lib:${gtk3}/lib:${atk}/lib" \ 34 + --prefix PYTHONPATH : "$PYTHONPATH:$(toPythonPath $out)" 35 + ''; 36 + 37 + patches = [ ./find_gsettings.patch ]; 38 + 39 + meta = with stdenv.lib; { 40 + homepage = https://wiki.gnome.org/action/show/Apps/GnomeTweakTool; 41 + description = "A tool to customize advanced GNOME 3 options"; 42 + maintainers = with maintainers; [ lethalman ]; 43 + license = licenses.gpl3; 44 + platforms = platforms.linux; 45 + }; 46 + }
+22
pkgs/desktops/gnome-3/misc/gnome-tweak-tool/find_gsettings.patch
··· 1 + diff --git a/gtweak/gsettings.py b/gtweak/gsettings.py 2 + index a00fe19..dce74b2 100644 3 + --- a/gtweak/gsettings.py 4 + +++ b/gtweak/gsettings.py 5 + @@ -33,10 +33,15 @@ class GSettingsMissingError(Exception): 6 + 7 + class _GSettingsSchema: 8 + def __init__(self, schema_name, schema_dir=None, schema_filename=None, **options): 9 + - if not schema_dir: 10 + - schema_dir = gtweak.GSETTINGS_SCHEMA_DIR 11 + if not schema_filename: 12 + schema_filename = schema_name + ".gschema.xml" 13 + + if not schema_dir: 14 + + schema_dir = gtweak.GSETTINGS_SCHEMA_DIR 15 + + for xdg_dir in GLib.get_system_data_dirs(): 16 + + dir = os.path.join(xdg_dir, "glib-2.0", "schemas") 17 + + if os.path.exists(os.path.join(dir, schema_filename)): 18 + + schema_dir = dir 19 + + break 20 + 21 + schema_path = os.path.join(schema_dir, schema_filename) 22 + if not os.path.exists(schema_path):
+5 -12
pkgs/development/libraries/libnotify/default.nix
··· 1 - { stdenv, fetchurl, pkgconfig, automake, autoconf, libtool, glib, gdk_pixbuf }: 1 + { stdenv, fetchurl, pkgconfig, automake, autoconf, libtool 2 + , glib, gdk_pixbuf, gobjectIntrospection, autoreconfHook }: 2 3 3 4 stdenv.mkDerivation rec { 4 5 ver_maj = "0.7"; ··· 9 10 url = "mirror://gnome/sources/libnotify/${ver_maj}/${name}.tar.xz"; 10 11 sha256 = "0dyq8zgjnnzcah31axnx6afb21kl7bks1gvrg4hjh3nk02j1rxhf"; 11 12 }; 12 - src_m4 = fetchurl { 13 - url = "mirror://gentoo/distfiles/introspection-20110205.m4.tar.bz2"; 14 - sha256 = "1cnqh7aaji648nfd5537v7xaak8hgww3bpifhwam7bl0sc3ad523"; 15 - }; 16 13 17 14 # see Gentoo ebuild - we don't need to depend on gtk+(2/3) 18 - preConfigure = '' 19 - cd m4 20 - tar xvf ${src_m4} 21 - cd .. 22 - 15 + preAutoreconf = '' 23 16 sed -i -e 's:noinst_PROG:check_PROG:' tests/Makefile.am || die 24 17 sed -i -e '/PKG_CHECK_MODULES(TESTS/d' configure.ac || die 25 - AT_M4DIR=. autoreconf 26 18 ''; 27 19 28 - buildInputs = [ pkgconfig automake autoconf glib gdk_pixbuf ]; 20 + buildInputs = [ pkgconfig automake autoconf autoreconfHook 21 + libtool glib gdk_pixbuf gobjectIntrospection ]; 29 22 30 23 meta = { 31 24 homepage = http://galago-project.org/; # very obsolete but found no better
+2 -2
pkgs/development/libraries/telepathy/glib/default.nix
··· 2 2 , gobjectIntrospection, valaSupport ? true, vala }: 3 3 4 4 stdenv.mkDerivation rec { 5 - name = "telepathy-glib-0.22.1"; 5 + name = "telepathy-glib-0.24.0"; 6 6 7 7 src = fetchurl { 8 8 url = "${meta.homepage}/releases/telepathy-glib/${name}.tar.gz"; 9 - sha256 = "0vf2drh7g55nxyd0mxyn9sf99m981dagnvv9yc3q9f4k8x092a78"; 9 + sha256 = "ae0002134991217f42e503c43dea7817853afc18863b913744d51ffa029818cf"; 10 10 }; 11 11 12 12 configureFlags = stdenv.lib.optional valaSupport "--enable-vala-bindings";
+28
pkgs/servers/http/apache-modules/mod_dnssd/default.nix
··· 1 + { stdenv, fetchurl, pkgconfig, apacheHttpd_2_2, apr, avahi }: 2 + 3 + stdenv.mkDerivation rec { 4 + name = "mod_dnssd-0.6"; 5 + 6 + src = fetchurl { 7 + url = "http://0pointer.de/lennart/projects/mod_dnssd/${name}.tar.gz"; 8 + sha256 = "2cd171d76eba398f03c1d5bcc468a1756f4801cd8ed5bd065086e4374997c5aa"; 9 + }; 10 + 11 + configureFlags = [ "--disable-lynx" ]; 12 + 13 + buildInputs = [ pkgconfig apacheHttpd_2_2 avahi apr ]; 14 + 15 + installPhase = '' 16 + mkdir -p $out/modules 17 + cp src/.libs/mod_dnssd.so $out/modules 18 + ''; 19 + 20 + meta = with stdenv.lib; { 21 + homepage = http://0pointer.de/lennart/projects/mod_dnssd; 22 + description = "Provide Zeroconf support via DNS-SD using Avahi"; 23 + license = licenses.asl20; 24 + platforms = platforms.linux; 25 + maintainers = with maintainers; [ lethalman ]; 26 + }; 27 + } 28 +
+20
pkgs/tools/X11/xdg-user-dirs/default.nix
··· 1 + { stdenv, fetchurl, libxslt, docbook_xsl }: 2 + 3 + stdenv.mkDerivation rec { 4 + name = "xdg-user-dirs-0.15"; 5 + 6 + src = fetchurl { 7 + url = "http://user-dirs.freedesktop.org/releases/${name}.tar.gz"; 8 + sha256 = "20b4a751f41d0554bce3e0ce5e8d934be98cc62d48f0b90a894c3e1916552786"; 9 + }; 10 + 11 + buildInputs = [ libxslt docbook_xsl ]; 12 + 13 + meta = with stdenv.lib; { 14 + homepage = http://freedesktop.org/wiki/Software/xdg-user-dirs; 15 + description = "A tool to help manage well known user directories like the desktop folder and the music folder"; 16 + license = licenses.gpl2; 17 + maintainers = with maintainers; [ lethalman ]; 18 + platforms = platforms.linux; 19 + }; 20 + }
+4
pkgs/top-level/all-packages.nix
··· 6455 6455 6456 6456 memcached = callPackage ../servers/memcached {}; 6457 6457 6458 + mod_dnssd = callPackage ../servers/http/apache-modules/mod_dnssd/default.nix { }; 6459 + 6458 6460 mod_evasive = callPackage ../servers/http/apache-modules/mod_evasive { }; 6459 6461 6460 6462 mod_python = callPackage ../servers/http/apache-modules/mod_python { }; ··· 9460 9462 compton = callPackage ../applications/window-managers/compton { }; 9461 9463 9462 9464 xdaliclock = callPackage ../tools/misc/xdaliclock {}; 9465 + 9466 + xdg-user-dirs = callPackage ../tools/X11/xdg-user-dirs { }; 9463 9467 9464 9468 xdg_utils = callPackage ../tools/X11/xdg-utils { }; 9465 9469