3
0
Fork 0
forked from mirrors/nixpkgs

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
This commit is contained in:
Domen Kožar 2014-04-16 18:08:00 +02:00
commit 3a9f28ee08
28 changed files with 666 additions and 34 deletions

View file

@ -64,6 +64,12 @@
url = https://fedoraproject.org/wiki/Licensing/BSD;
};
cc-by-30 = {
shortName = "CC BY 3.0";
fullName = "Creative Commons Attribution 3.0";
url = http://creativecommons.org/licenses/by/3.0;
};
cddl = {
shortName = "CDDL";
fullName = "Common Development Distribution License ";

View file

@ -227,6 +227,4 @@ in rec {
crossLists = f: foldl (fs: args: concatMap (f: map f args) fs) [f];
# List difference, xs - ys. Removes elements of ys from xs.
difference = xs: ys: filter (y: !(builtins.elem y ys)) xs;
}

View file

@ -135,6 +135,10 @@ in
if [ -x $out/bin/glib-compile-schemas -a -w $out/share/glib-2.0/schemas ]; then
$out/bin/glib-compile-schemas $out/share/glib-2.0/schemas
fi
if [ -x $out/bin/update-desktop-database -a -w $out/share/applications ]; then
$out/bin/update-desktop-database $out/share/applications
fi
'';
};

View file

@ -100,7 +100,11 @@
./services/desktops/accountservice.nix
./services/desktops/gnome3/at-spi2-core.nix
./services/desktops/gnome3/evolution-data-server.nix
./services/desktops/gnome3/gnome-keyring.nix
./services/desktops/gnome3/gnome-online-accounts.nix
./services/desktops/gnome3/gnome-user-share.nix
./services/desktops/gnome3/sushi.nix
./services/desktops/gnome3/tracker.nix
./services/desktops/telepathy.nix
./services/games/ghost-one.nix
./services/games/minecraft-server.nix

View file

@ -0,0 +1,40 @@
# GNOME Keyring daemon.
{ config, pkgs, ... }:
with pkgs.lib;
{
###### interface
options = {
services.gnome3.gnome-keyring = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Whether to enable GNOME Keyring daemon, a service designed to
take care of the user's security credentials,
such as user names and passwordsa search engine.
'';
};
};
};
###### implementation
config = mkIf config.services.gnome3.gnome-keyring.enable {
environment.systemPackages = [ pkgs.gnome3.gnome_keyring ];
services.dbus.packages = [ pkgs.gnome3.gnome_keyring ];
};
}

View file

@ -0,0 +1,39 @@
# GNOME Online Accounts daemon.
{ config, pkgs, ... }:
with pkgs.lib;
{
###### interface
options = {
services.gnome3.gnome-online-accounts = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Whether to enable GNOME Online Accounts daemon, a service that provides
a single sign-on framework for the GNOME desktop.
'';
};
};
};
###### implementation
config = mkIf config.services.gnome3.gnome-online-accounts.enable {
environment.systemPackages = [ pkgs.gnome3.gnome_online_accounts ];
services.dbus.packages = [ pkgs.gnome3.gnome_online_accounts ];
};
}

View file

@ -0,0 +1,42 @@
# GNOME User Share daemon.
{ config, pkgs, ... }:
with pkgs.lib;
{
###### interface
options = {
services.gnome3.gnome-user-share = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Whether to enable GNOME User Share, a service that exports the
contents of the Public folder in your home directory on the local network.
'';
};
};
};
###### implementation
config = mkIf config.services.gnome3.gnome-user-share.enable {
environment.systemPackages = [ pkgs.gnome3.gnome-user-share ];
services.xserver.displayManager.sessionCommands = with pkgs.gnome3; ''
# Don't let gnome-control-center depend upon gnome-user-share
export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}${gnome-user-share}/share/gsettings-schemas/${gnome-user-share.name}
'';
};
}

View file

@ -0,0 +1,39 @@
# Tracker daemon.
{ config, pkgs, ... }:
with pkgs.lib;
{
###### interface
options = {
services.gnome3.tracker = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Whether to enable Tracker services, a search engine,
search tool and metadata storage system.
'';
};
};
};
###### implementation
config = mkIf config.services.gnome3.tracker.enable {
environment.systemPackages = [ pkgs.gnome3.tracker ];
services.dbus.packages = [ pkgs.gnome3.tracker ];
};
}

View file

@ -5,6 +5,16 @@ with lib;
let
cfg = config.services.xserver.desktopManager.gnome3;
gnome3 = pkgs.gnome3;
# Remove packages of ys from xs, based on their names
removePackagesByName = xs: ys:
let
pkgName = drv: (builtins.parseDrvName drv.name).name;
ysNames = map pkgName ys;
res = (filter (x: !(builtins.elem (pkgName x) ysNames)) xs);
in
filter (x: !(builtins.elem (pkgName x) ysNames)) xs;
in {
options = {
@ -32,8 +42,12 @@ in {
services.accounts-daemon.enable = true;
services.gnome3.at-spi2-core.enable = true;
services.gnome3.evolution-data-server.enable = true;
services.gnome3.sushi.enable = true;
services.telepathy.enable = true;
services.gnome3.gnome-keyring.enable = true;
services.gnome3.gnome-online-accounts.enable = mkDefault true;
services.gnome3.gnome-user-share.enable = mkDefault true;
services.gnome3.sushi.enable = mkDefault true;
services.gnome3.tracker.enable = mkDefault true;
services.telepathy.enable = mkDefault true;
networking.networkmanager.enable = true;
services.upower.enable = config.powerManagement.enable;
@ -50,6 +64,12 @@ in {
export XDG_MENU_PREFIX=gnome
# Don't let epiphany depend upon gnome-shell
export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}${pkgs.gnome3.gnome_shell}/share/gsettings-schemas/${pkgs.gnome3.gnome_shell.name}
# Update user dirs as described in http://freedesktop.org/wiki/Software/xdg-user-dirs/
${pkgs.xdg-user-dirs}/bin/xdg-user-dirs-update
${gnome3.gnome_session}/bin/gnome-session&
waitPID=$!
'';
@ -58,17 +78,22 @@ in {
environment.variables.GIO_EXTRA_MODULES = [ "${gnome3.dconf}/lib/gio/modules"
"${pkgs.glib_networking}/lib/gio/modules" ];
environment.systemPackages =
[ gnome3.dconf
[ pkgs.desktop_file_utils
pkgs.glib_networking
pkgs.gtk3 # for gtk-update-icon-cache
pkgs.ibus
pkgs.shared_mime_info # for update-mime-database
gnome3.dconf
gnome3.gnome-backgrounds
gnome3.gnome_control_center
gnome3.gnome_icon_theme
gnome3.gnome-menus
gnome3.gnome_settings_daemon
gnome3.gnome_shell
gnome3.gnome_themes_standard
] ++ (lists.difference [
] ++ (removePackagesByName [
gnome3.baobab
gnome3.empathy
gnome3.eog
gnome3.epiphany
gnome3.evince
@ -81,12 +106,19 @@ in {
gnome3.gnome-contacts
gnome3.gnome-font-viewer
gnome3.gnome-screenshot
gnome3.gnome-shell-extensions
gnome3.gnome-system-log
gnome3.gnome-system-monitor
gnome3.gnome_terminal
gnome3.gnome-user-docs
gnome3.file-roller
gnome3.gnome-tweak-tool
] config.environment.gnome3.excludePackages);
# Needed for themes and backgrounds
environment.pathsToLink = [ "/share" ];
};

View file

@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
rm $out/lib/gio/modules/giomodule.cache
rm $out/share/icons/hicolor/icon-theme.cache
rm $out/share/icons/HighContrast/icon-theme.cache
'';
meta = with stdenv.lib; {

View file

@ -37,13 +37,12 @@ stdenv.mkDerivation rec {
"-I${dbus_libs}/include/dbus-1.0"
"-I${dbus_libs}/lib/dbus-1.0/include" ];
enableParallelBuilding = true;
preFixup = ''
wrapProgram "$out/bin/empathy" \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
--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"
for f in $out/bin/* $out/libexec/*; do
wrapProgram $f \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
--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"
done
rm $out/share/icons/hicolor/icon-theme.cache
'';

View file

@ -2,11 +2,12 @@
, libcanberra, accountservice, libpwquality, pulseaudio, fontconfig
, gdk_pixbuf, hicolor_icon_theme, librsvg, libxkbfile, libnotify
, libxml2, polkit, libxslt, libgtop, libsoup, colord, colord-gtk
, cracklib, python, krb5, networkmanagerapplet, libwacom, samba
, shared_mime_info, tzdata, icu, libtool, docbook_xsl, docbook_xsl_ns }:
, cracklib, python, krb5, networkmanagerapplet, networkmanager
, libwacom, samba, shared_mime_info, tzdata, icu, libtool
, docbook_xsl, docbook_xsl_ns, modemmanager }:
# http://ftp.gnome.org/pub/GNOME/teams/releng/3.10.2/gnome-suites-core-3.10.2.modules
# TODO: bluetooth, networkmanager, wacom, smbclient, printers
# TODO: bluetooth, wacom, smbclient, printers
stdenv.mkDerivation rec {
name = "gnome-control-center-3.10.2";
@ -20,12 +21,15 @@ stdenv.mkDerivation rec {
propagatedBuildInputs = [ gdk_pixbuf gnome3.gnome_icon_theme librsvg
hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
enableParallelBuilding = true;
buildInputs = with gnome3;
[ pkgconfig intltool ibus gtk glib upower libcanberra gsettings_desktop_schemas
libxml2 gnome_desktop gnome_settings_daemon polkit libxslt libgtop gnome-menus
gnome_online_accounts libsoup colord pulseaudio fontconfig colord-gtk libpwquality
accountservice krb5 networkmanagerapplet libwacom samba libnotify libxkbfile
shared_mime_info icu libtool docbook_xsl docbook_xsl_ns makeWrapper ];
shared_mime_info icu libtool docbook_xsl docbook_xsl_ns
networkmanager modemmanager makeWrapper ];
preBuild = ''
substituteInPlace tz.h --replace "/usr/share/zoneinfo/zone.tab" "${tzdata}/share/zoneinfo/zone.tab"
@ -48,6 +52,8 @@ stdenv.mkDerivation rec {
'';
meta = with stdenv.lib; {
description = "Single sign-on framework for GNOME";
maintainers = with maintainers; [ lethalman ];
platforms = platforms.linux;
};

View file

@ -12,6 +12,8 @@ stdenv.mkDerivation rec {
NIX_CFLAGS_COMPILE = "-I${dbus_glib}/include/dbus-1.0 -I${dbus_libs}/include/dbus-1.0";
enableParallelBuilding = true;
buildInputs = [ pkgconfig glib libxslt gtk webkitgtk json_glib rest libsecret dbus_glib telepathy_glib intltool icu libsoup docbook_xsl_ns docbook_xsl];
meta = with stdenv.lib; {

View file

@ -0,0 +1,26 @@
{ stdenv, intltool, fetchurl, libgtop
, pkgconfig, gtk3, glib, hicolor_icon_theme
, bash, makeWrapper, itstool
, gnome3, file }:
stdenv.mkDerivation rec {
name = "gnome-shell-extensions-3.10.1";
src = fetchurl {
url = "mirror://gnome/sources/gnome-shell-extensions/3.10/${name}.tar.xz";
sha256 = "9baa9ddaf4e14cab6d4d7944d8dc009378b25f995acfd0fd72843f599cb5ae43";
};
doCheck = true;
buildInputs = [ pkgconfig gtk3 glib libgtop intltool itstool
makeWrapper file ];
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Projects/GnomeShell/Extensions;
description = "Modify and extend GNOME Shell functionality and behavior";
maintainers = with maintainers; [ lethalman ];
license = licenses.gpl2;
platforms = platforms.linux;
};
}

View file

@ -1,6 +1,6 @@
{ fetchurl, stdenv, pkgconfig, gnome3, json_glib, libcroco, intltool, libsecret
, python, libsoup, polkit, clutter, networkmanager, docbook_xsl, docbook_xsl_ns
, libstartup_notification, telepathy_glib, telepathy_logger, libXtst, p11_kit
, libstartup_notification, telepathy_glib, telepathy_logger, libXtst, p11_kit, unzip
, pulseaudio, libical, libtool, nss, gobjectIntrospection, gstreamer, makeWrapper
, accountservice, gdk_pixbuf, gdm, upower, ibus, networkmanagerapplet, librsvg }:
@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
preFixup = with gnome3; ''
wrapProgram "$out/bin/gnome-shell" \
--prefix PATH : "${unzip}/bin" \
--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
--prefix LD_LIBRARY_PATH : "${accountservice}/lib:${ibus}/lib:${gdm}/lib" \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
@ -38,6 +39,8 @@ stdenv.mkDerivation rec {
--prefix XDG_DATA_DIRS : "${evolution_data_server}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
'';
patches = [ ./fix_background_corruption.patch ];
meta = with stdenv.lib; {
platforms = platforms.linux;
};

View file

@ -0,0 +1,147 @@
commit 831bd07b0d6b7055fea8317f2cdf8fd4a408c36d
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date: Thu Nov 7 17:14:47 2013 -0500
layout: Fix several issues with the background management code
If monitor-changed fires at startup, it will destroy all of the
backgrounds, but since this._isStartup is true, won't recreate any
of them. Additionally, since _bgManagers is indexed by monitor index,
if the primary index is not 0, it could become a sparse array (e.g.
[undefined, undefined, primaryBackground]), and our for loop will
crash trying to access properties of undefined.
Fix both of these issues by always creating background managers for
every monitor, hiding them on startup but only showing them after
the startup animation is complete.
One thing we need to watch out for is that while LayoutManager is
constructing, Main.uiGroup / Main.layoutManager will be undefined,
so addBackgroundMenu will fail. Fix this by passing down the uiGroup
to the background menu code.
https://bugzilla.gnome.org/show_bug.cgi?id=709313
diff --git a/js/ui/backgroundMenu.js b/js/ui/backgroundMenu.js
index 06e698c..dcbbb39 100644
--- a/js/ui/backgroundMenu.js
+++ b/js/ui/backgroundMenu.js
@@ -13,7 +13,7 @@ const BackgroundMenu = new Lang.Class({
Name: 'BackgroundMenu',
Extends: PopupMenu.PopupMenu,
- _init: function(source) {
+ _init: function(source, layoutManager) {
this.parent(source, 0, St.Side.TOP);
this.addSettingsAction(_("Settings"), 'gnome-control-center.desktop');
@@ -22,17 +22,17 @@ const BackgroundMenu = new Lang.Class({
this.actor.add_style_class_name('background-menu');
- Main.uiGroup.add_actor(this.actor);
+ layoutManager.uiGroup.add_actor(this.actor);
this.actor.hide();
}
});
-function addBackgroundMenu(actor) {
+function addBackgroundMenu(actor, layoutManager) {
let cursor = new St.Bin({ opacity: 0 });
- Main.uiGroup.add_actor(cursor);
+ layoutManager.uiGroup.add_actor(cursor);
actor.reactive = true;
- actor._backgroundMenu = new BackgroundMenu(cursor);
+ actor._backgroundMenu = new BackgroundMenu(cursor, layoutManager);
actor._backgroundManager = new PopupMenu.PopupMenuManager({ actor: actor });
actor._backgroundManager.addMenu(actor._backgroundMenu);
diff --git a/js/ui/layout.js b/js/ui/layout.js
index 17073a6..80bae9d 100644
--- a/js/ui/layout.js
+++ b/js/ui/layout.js
@@ -352,26 +352,26 @@ const LayoutManager = new Lang.Class({
this.emit('hot-corners-changed');
},
- _createBackground: function(monitorIndex) {
+ _addBackgroundMenu: function(bgManager) {
+ BackgroundMenu.addBackgroundMenu(bgManager.background.actor, this);
+ },
+
+ _createBackgroundManager: function(monitorIndex) {
let bgManager = new Background.BackgroundManager({ container: this._backgroundGroup,
layoutManager: this,
monitorIndex: monitorIndex });
- BackgroundMenu.addBackgroundMenu(bgManager.background.actor);
-
- bgManager.connect('changed', Lang.bind(this, function() {
- BackgroundMenu.addBackgroundMenu(bgManager.background.actor);
- }));
- this._bgManagers[monitorIndex] = bgManager;
+ bgManager.connect('changed', Lang.bind(this, this._addBackgroundMenu));
+ this._addBackgroundMenu(bgManager);
- return bgManager.background;
+ return bgManager;
},
- _createSecondaryBackgrounds: function() {
+ _showSecondaryBackgrounds: function() {
for (let i = 0; i < this.monitors.length; i++) {
if (i != this.primaryIndex) {
- let background = this._createBackground(i);
-
+ let background = this._bgManagers[i].background;
+ background.actor.show();
background.actor.opacity = 0;
Tweener.addTween(background.actor,
{ opacity: 255,
@@ -381,10 +381,6 @@ const LayoutManager = new Lang.Class({
}
},
- _createPrimaryBackground: function() {
- this._createBackground(this.primaryIndex);
- },
-
_updateBackgrounds: function() {
let i;
for (i = 0; i < this._bgManagers.length; i++)
@@ -395,11 +391,12 @@ const LayoutManager = new Lang.Class({
if (Main.sessionMode.isGreeter)
return;
- if (this._startingUp)
- return;
-
for (let i = 0; i < this.monitors.length; i++) {
- this._createBackground(i);
+ let bgManager = this._createBackgroundManager(i);
+ this._bgManagers.push(bgManager);
+
+ if (i != this.primaryIndex && this._startingUp)
+ bgManager.background.actor.hide();
}
},
@@ -595,7 +592,7 @@ const LayoutManager = new Lang.Class({
if (Main.sessionMode.isGreeter) {
this.panelBox.translation_y = -this.panelBox.height;
} else {
- this._createPrimaryBackground();
+ this._updateBackgrounds();
// We need to force an update of the regions now before we scale
// the UI group to get the coorect allocation for the struts.
@@ -673,7 +670,7 @@ const LayoutManager = new Lang.Class({
this.keyboardBox.show();
if (!Main.sessionMode.isGreeter) {
- this._createSecondaryBackgrounds();
+ this._showSecondaryBackgrounds();
global.window_group.remove_clip();
}

View file

@ -0,0 +1,20 @@
{ stdenv, fetchurl, pkgconfig, file, gnome3, itstool, libxml2, intltool }:
stdenv.mkDerivation rec {
name = "gnome-user-docs-3.10.3";
src = fetchurl {
url = "mirror://gnome/sources/gnome-user-docs/3.10/${name}.tar.xz";
sha256 = "960b6373ea52e41e3deb3501930e024005b29d2cc958bfadc87450a291d2a905";
};
buildInputs = [ pkgconfig gnome3.yelp itstool libxml2 intltool ];
meta = with stdenv.lib; {
homepage = https://help.gnome.org/users/gnome-help/3.10;
description = "User and system administration help for the Gnome desktop";
maintainers = with maintainers; [ lethalman ];
license = licenses.cc-by-30;
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,52 @@
{ stdenv, intltool, fetchurl, apacheHttpd_2_2, nautilus
, pkgconfig, gtk3, glib, hicolor_icon_theme, libxml2, gnused
, bash, makeWrapper, itstool, libnotify, libtool, mod_dnssd
, gnome3, librsvg, gdk_pixbuf, file, libcanberra_gtk3 }:
stdenv.mkDerivation rec {
name = "gnome-user-share-3.10.2";
src = fetchurl {
url = "mirror://gnome/sources/gnome-user-share/3.10/${name}.tar.xz";
sha256 = "1d1ea57a49224c36e7cba04f80265e835639377f474a7582c9e8ac946eda0f8f";
};
doCheck = true;
NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
preConfigure = ''
sed -e 's,^LoadModule dnssd_module.\+,LoadModule dnssd_module ${mod_dnssd}/modules/mod_dnssd.so,' -i data/dav_user_2.2.conf
'';
configureFlags = [ "--with-httpd=${apacheHttpd_2_2}/bin/httpd"
"--with-modules-path=${apacheHttpd_2_2}/modules"
"--disable-bluetooth"
"--with-nautilusdir=$(out)/lib/nautilus/extensions-3.0" ];
buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2 libtool
makeWrapper file gdk_pixbuf gnome3.gnome_icon_theme librsvg
hicolor_icon_theme gnome3.gnome_icon_theme_symbolic
nautilus libnotify libcanberra_gtk3 ];
postInstall = ''
mkdir -p $out/share/gsettings-schemas/$name
mv $out/share/glib-2.0 $out/share/gsettings-schemas/$name
${glib}/bin/glib-compile-schemas $out/share/gsettings-schemas/$name/glib-2.0/schemas
'';
preFixup = ''
wrapProgram "$out/libexec/gnome-user-share" \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
--prefix XDG_DATA_DIRS : "$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
rm $out/share/icons/hicolor/icon-theme.cache
'';
meta = with stdenv.lib; {
homepage = https://help.gnome.org/users/gnome-user-share/3.8;
description = "Service that exports the contents of the Public folder in your home directory on the local network";
maintainers = with maintainers; [ lethalman ];
license = licenses.gpl2;
platforms = platforms.linux;
};
}

View file

@ -4,11 +4,11 @@
, gdk_pixbuf, librsvg, hicolor_icon_theme }:
stdenv.mkDerivation rec {
name = "sushi-3.8.1";
name = "sushi-3.10.0";
src = fetchurl {
url = "mirror://gnome/sources/sushi/3.8/${name}.tar.xz";
sha256 = "c4f24d0961ce8fc5ef3a4fe9af178e368c7117459df2c0be12c8f953646c82dd";
url = "mirror://gnome/sources/sushi/3.10/${name}.tar.xz";
sha256 = "cffcf28b170f5825e84983a979972d4d901a453b61cbe3e560d362e8dd4b4bc8";
};
propagatedUserEnvPkgs = [ gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good ];

View file

@ -0,0 +1,49 @@
{ stdenv, intltool, fetchurl, libxml2, upower
, pkgconfig, gtk3, glib, hicolor_icon_theme
, bash, makeWrapper, itstool, vala, sqlite
, gnome3, librsvg, gdk_pixbuf, file, libnotify
, evolution_data_server, gst_all_1, poppler
, icu, taglib, libjpeg, libtiff, giflib, libcue
, libvorbis, flac, exempi, networkmanager
, libpng, libexif, libgsf, libuuid, bzip2 }:
stdenv.mkDerivation rec {
name = "tracker-1.0.0";
src = fetchurl {
url = "mirror://gnome/sources/tracker/1.0/${name}.tar.xz";
sha256 = "a1d033faf2c78f0e239f3c2c961b96623c9a7dabd938c08e3f5660bd70f54ba2";
};
propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
enableParallelBuilding = true;
buildInputs = [ vala pkgconfig gtk3 glib intltool itstool libxml2
bzip2 gnome3.totem-pl-parser
gnome3.gsettings_desktop_schemas makeWrapper file
gdk_pixbuf gnome3.gnome_icon_theme librsvg sqlite
upower libnotify evolution_data_server gnome3.libgee
gst_all_1.gstreamer gst_all_1.gst-plugins-base flac
poppler icu taglib libjpeg libtiff giflib libvorbis
exempi networkmanager libpng libexif libgsf libuuid
hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
preFixup = ''
for f in $out/bin/* $out/libexec/*; do
wrapProgram $f \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
--prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
done
'';
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Projects/Tracker;
description = "Desktop-neutral user information store, search tool and indexer";
maintainers = with maintainers; [ lethalman ];
license = licenses.gpl2;
platforms = platforms.linux;
};
}

View file

@ -74,6 +74,8 @@ rec {
gnome_shell = callPackage ./core/gnome-shell { };
gnome-shell-extensions = callPackage ./core/gnome-shell-extensions { };
gnome-screenshot = callPackage ./core/gnome-screenshot { };
gnome_settings_daemon = callPackage ./core/gnome-settings-daemon { };
@ -86,6 +88,10 @@ rec {
gnome_themes_standard = callPackage ./core/gnome-themes-standard { };
gnome-user-docs = callPackage ./core/gnome-user-docs { };
gnome-user-share = callPackage ./core/gnome-user-share { };
grilo = callPackage ./core/grilo { };
gsettings_desktop_schemas = callPackage ./core/gsettings-desktop-schemas { };
@ -122,6 +128,8 @@ rec {
totem-pl-parser = callPackage ./core/totem-pl-parser { };
tracker = callPackage ./core/tracker { };
vte = callPackage ./core/vte { };
vino = callPackage ./core/vino { };
@ -156,4 +164,6 @@ rec {
libgit2-glib = callPackage ./misc/libgit2-glib { };
gexiv2 = callPackage ./misc/gexiv2 { };
gnome-tweak-tool = callPackage ./misc/gnome-tweak-tool { };
}

View file

@ -0,0 +1,46 @@
{ stdenv, intltool, fetchurl, python, pygobject3, atk
, pkgconfig, gtk3, glib, hicolor_icon_theme, libsoup
, bash, makeWrapper, itstool, libxml2, python3Packages
, gnome3, librsvg, gdk_pixbuf, file, libnotify }:
stdenv.mkDerivation rec {
name = "gnome-tweak-tool-3.10.1";
src = fetchurl {
url = "mirror://gnome/sources/gnome-tweak-tool/3.10/${name}.tar.xz";
sha256 = "fb5af9022c0521a925ef9f295e4080212b1b45427cd5f5f3a901667590afa7ec";
};
doCheck = true;
propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
makeFlags = [ "DESTDIR=/" ];
buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2
gnome3.gsettings_desktop_schemas makeWrapper file
gdk_pixbuf gnome3.gnome_icon_theme librsvg
hicolor_icon_theme gnome3.gnome_icon_theme_symbolic
python pygobject3 libnotify gnome3.gnome_shell
libsoup gnome3.gnome_settings_daemon gnome3.nautilus
gnome3.gnome_desktop ];
preFixup = ''
wrapProgram "$out/bin/gnome-tweak-tool" \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
--prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \
--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
--prefix LD_LIBRARY_PATH ":" "${libsoup}/lib:${gnome3.gnome_desktop}/lib:${libnotify}/lib:${gtk3}/lib:${atk}/lib" \
--prefix PYTHONPATH : "$PYTHONPATH:$(toPythonPath $out)"
'';
patches = [ ./find_gsettings.patch ];
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/action/show/Apps/GnomeTweakTool;
description = "A tool to customize advanced GNOME 3 options";
maintainers = with maintainers; [ lethalman ];
license = licenses.gpl3;
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,22 @@
diff --git a/gtweak/gsettings.py b/gtweak/gsettings.py
index a00fe19..dce74b2 100644
--- a/gtweak/gsettings.py
+++ b/gtweak/gsettings.py
@@ -33,10 +33,15 @@ class GSettingsMissingError(Exception):
class _GSettingsSchema:
def __init__(self, schema_name, schema_dir=None, schema_filename=None, **options):
- if not schema_dir:
- schema_dir = gtweak.GSETTINGS_SCHEMA_DIR
if not schema_filename:
schema_filename = schema_name + ".gschema.xml"
+ if not schema_dir:
+ schema_dir = gtweak.GSETTINGS_SCHEMA_DIR
+ for xdg_dir in GLib.get_system_data_dirs():
+ dir = os.path.join(xdg_dir, "glib-2.0", "schemas")
+ if os.path.exists(os.path.join(dir, schema_filename)):
+ schema_dir = dir
+ break
schema_path = os.path.join(schema_dir, schema_filename)
if not os.path.exists(schema_path):

View file

@ -1,4 +1,5 @@
{ stdenv, fetchurl, pkgconfig, automake, autoconf, libtool, glib, gdk_pixbuf }:
{ stdenv, fetchurl, pkgconfig, automake, autoconf, libtool
, glib, gdk_pixbuf, gobjectIntrospection, autoreconfHook }:
stdenv.mkDerivation rec {
ver_maj = "0.7";
@ -9,23 +10,15 @@ stdenv.mkDerivation rec {
url = "mirror://gnome/sources/libnotify/${ver_maj}/${name}.tar.xz";
sha256 = "0dyq8zgjnnzcah31axnx6afb21kl7bks1gvrg4hjh3nk02j1rxhf";
};
src_m4 = fetchurl {
url = "mirror://gentoo/distfiles/introspection-20110205.m4.tar.bz2";
sha256 = "1cnqh7aaji648nfd5537v7xaak8hgww3bpifhwam7bl0sc3ad523";
};
# see Gentoo ebuild - we don't need to depend on gtk+(2/3)
preConfigure = ''
cd m4
tar xvf ${src_m4}
cd ..
preAutoreconf = ''
sed -i -e 's:noinst_PROG:check_PROG:' tests/Makefile.am || die
sed -i -e '/PKG_CHECK_MODULES(TESTS/d' configure.ac || die
AT_M4DIR=. autoreconf
'';
buildInputs = [ pkgconfig automake autoconf glib gdk_pixbuf ];
buildInputs = [ pkgconfig automake autoconf autoreconfHook
libtool glib gdk_pixbuf gobjectIntrospection ];
meta = {
homepage = http://galago-project.org/; # very obsolete but found no better

View file

@ -2,11 +2,11 @@
, gobjectIntrospection, valaSupport ? true, vala }:
stdenv.mkDerivation rec {
name = "telepathy-glib-0.22.1";
name = "telepathy-glib-0.24.0";
src = fetchurl {
url = "${meta.homepage}/releases/telepathy-glib/${name}.tar.gz";
sha256 = "0vf2drh7g55nxyd0mxyn9sf99m981dagnvv9yc3q9f4k8x092a78";
sha256 = "ae0002134991217f42e503c43dea7817853afc18863b913744d51ffa029818cf";
};
configureFlags = stdenv.lib.optional valaSupport "--enable-vala-bindings";

View file

@ -0,0 +1,28 @@
{ stdenv, fetchurl, pkgconfig, apacheHttpd_2_2, apr, avahi }:
stdenv.mkDerivation rec {
name = "mod_dnssd-0.6";
src = fetchurl {
url = "http://0pointer.de/lennart/projects/mod_dnssd/${name}.tar.gz";
sha256 = "2cd171d76eba398f03c1d5bcc468a1756f4801cd8ed5bd065086e4374997c5aa";
};
configureFlags = [ "--disable-lynx" ];
buildInputs = [ pkgconfig apacheHttpd_2_2 avahi apr ];
installPhase = ''
mkdir -p $out/modules
cp src/.libs/mod_dnssd.so $out/modules
'';
meta = with stdenv.lib; {
homepage = http://0pointer.de/lennart/projects/mod_dnssd;
description = "Provide Zeroconf support via DNS-SD using Avahi";
license = licenses.asl20;
platforms = platforms.linux;
maintainers = with maintainers; [ lethalman ];
};
}

View file

@ -0,0 +1,20 @@
{ stdenv, fetchurl, libxslt, docbook_xsl }:
stdenv.mkDerivation rec {
name = "xdg-user-dirs-0.15";
src = fetchurl {
url = "http://user-dirs.freedesktop.org/releases/${name}.tar.gz";
sha256 = "20b4a751f41d0554bce3e0ce5e8d934be98cc62d48f0b90a894c3e1916552786";
};
buildInputs = [ libxslt docbook_xsl ];
meta = with stdenv.lib; {
homepage = http://freedesktop.org/wiki/Software/xdg-user-dirs;
description = "A tool to help manage well known user directories like the desktop folder and the music folder";
license = licenses.gpl2;
maintainers = with maintainers; [ lethalman ];
platforms = platforms.linux;
};
}

View file

@ -6455,6 +6455,8 @@ let
memcached = callPackage ../servers/memcached {};
mod_dnssd = callPackage ../servers/http/apache-modules/mod_dnssd/default.nix { };
mod_evasive = callPackage ../servers/http/apache-modules/mod_evasive { };
mod_python = callPackage ../servers/http/apache-modules/mod_python { };
@ -9461,6 +9463,8 @@ let
xdaliclock = callPackage ../tools/misc/xdaliclock {};
xdg-user-dirs = callPackage ../tools/X11/xdg-user-dirs { };
xdg_utils = callPackage ../tools/X11/xdg-utils { };
xdotool = callPackage ../tools/X11/xdotool { };