From b7703655749df57dd5cbc84b89cc3be4bc7358bc Mon Sep 17 00:00:00 2001 From: Vladimír Čunát Date: Wed, 29 May 2013 23:24:20 +0200 Subject: ReRevert Merge x-updates into master This reverts commit ec3965d8d0b5594a9db11e6c9cd1c28d36e91cde. Conflicts (taken x-updates): pkgs/development/libraries/libgcrypt/default.nix pkgs/development/libraries/libgpg-error/default.nix pkgs/development/libraries/poppler/default.nix --- .../gnome-2/bindings/python-rsvg/default.nix | 16 +- pkgs/desktops/gnome-2/default.nix | 2 - pkgs/desktops/gnome-2/platform/ORBit2/default.nix | 4 + .../gnome-2/platform/gnome-vfs/default.nix | 2 + .../desktops/gnome-2/platform/gtkglext/default.nix | 5 +- .../desktops/gnome-2/platform/intltool/default.nix | 13 - .../gnome-2/platform/libbonobo/default.nix | 4 +- .../desktops/gnome-2/platform/libgnome/default.nix | 4 +- .../gnome-2/platform/libgnome/new-glib.patch | 65 +++ pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix | 17 + .../desktops/gnome-3/core/at-spi2-core/default.nix | 23 + pkgs/desktops/gnome-3/core/evince/default.nix | 62 +++ pkgs/desktops/gnome-3/core/gconf/default.nix | 29 ++ pkgs/desktops/gnome-3/core/gcr/default.nix | 18 + .../gnome-3/core/gnome-icon-theme/default.nix | 12 + .../gnome-3/core/gnome-keyring/default.nix | 26 ++ .../gnome-3/core/gnome-terminal/default.nix | 20 + .../core/gsettings-desktop-schemas/default.nix | 30 ++ pkgs/desktops/gnome-3/core/gvfs/default.nix | 21 + pkgs/desktops/gnome-3/core/libcroco/default.nix | 11 + .../gnome-3/core/libgnome-keyring/default.nix | 17 + pkgs/desktops/gnome-3/core/libgweather/default.nix | 14 + pkgs/desktops/gnome-3/core/vte/default.nix | 46 ++ pkgs/desktops/gnome-3/core/zenity/default.nix | 20 + pkgs/desktops/gnome-3/default.nix | 55 +++ .../gnome-3/desktop/gnome-desktop/default.nix | 18 + .../gnome-3/desktop/gnome-dictionary/default.nix | 15 + pkgs/desktops/gnome-3/desktop/rarian/default.nix | 11 + .../gnome-3/desktop/scrollkeeper/default.nix | 18 + pkgs/desktops/xfce/4_08.nix | 37 ++ pkgs/desktops/xfce/4_10.nix | 35 ++ pkgs/desktops/xfce/common.nix | 72 ++++ pkgs/desktops/xfce/core/xfce4-dev-tools.nix | 24 ++ .../desktops/xfce/core/xfce4-session-systemd.patch | 470 +++++++++++++++++++++ pkgs/desktops/xfce/default.nix | 2 +- 35 files changed, 1211 insertions(+), 27 deletions(-) delete mode 100644 pkgs/desktops/gnome-2/platform/intltool/default.nix create mode 100644 pkgs/desktops/gnome-2/platform/libgnome/new-glib.patch create mode 100644 pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix create mode 100644 pkgs/desktops/gnome-3/core/at-spi2-core/default.nix create mode 100644 pkgs/desktops/gnome-3/core/evince/default.nix create mode 100644 pkgs/desktops/gnome-3/core/gconf/default.nix create mode 100644 pkgs/desktops/gnome-3/core/gcr/default.nix create mode 100644 pkgs/desktops/gnome-3/core/gnome-icon-theme/default.nix create mode 100644 pkgs/desktops/gnome-3/core/gnome-keyring/default.nix create mode 100644 pkgs/desktops/gnome-3/core/gnome-terminal/default.nix create mode 100644 pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix create mode 100644 pkgs/desktops/gnome-3/core/gvfs/default.nix create mode 100644 pkgs/desktops/gnome-3/core/libcroco/default.nix create mode 100644 pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix create mode 100644 pkgs/desktops/gnome-3/core/libgweather/default.nix create mode 100644 pkgs/desktops/gnome-3/core/vte/default.nix create mode 100644 pkgs/desktops/gnome-3/core/zenity/default.nix create mode 100644 pkgs/desktops/gnome-3/default.nix create mode 100644 pkgs/desktops/gnome-3/desktop/gnome-desktop/default.nix create mode 100644 pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix create mode 100644 pkgs/desktops/gnome-3/desktop/rarian/default.nix create mode 100644 pkgs/desktops/gnome-3/desktop/scrollkeeper/default.nix create mode 100644 pkgs/desktops/xfce/4_08.nix create mode 100644 pkgs/desktops/xfce/4_10.nix create mode 100644 pkgs/desktops/xfce/common.nix create mode 100644 pkgs/desktops/xfce/core/xfce4-dev-tools.nix create mode 100644 pkgs/desktops/xfce/core/xfce4-session-systemd.patch (limited to 'pkgs/desktops') diff --git a/pkgs/desktops/gnome-2/bindings/python-rsvg/default.nix b/pkgs/desktops/gnome-2/bindings/python-rsvg/default.nix index c09ed74a97c0..1e2faf3af84f 100644 --- a/pkgs/desktops/gnome-2/bindings/python-rsvg/default.nix +++ b/pkgs/desktops/gnome-2/bindings/python-rsvg/default.nix @@ -1,24 +1,26 @@ -{ stdenv, fetchurl, gnome, librsvg, pkgconfig, pygtk, python }: +{ stdenv, fetchurl, gnome, librsvg, pkgconfig, pygtk, python, gtk }: stdenv.mkDerivation rec { - version = "2.32"; + ver_maj = "2.32"; + ver_min = "0"; + version = "${ver_maj}.${ver_min}"; name = "python-rsvg-${version}"; src = fetchurl { - url = "mirror://gnome/sources/gnome-python-desktop/${version}/gnome-python-desktop-${version}.0.tar.gz"; - sha256 = "1xhh3h1qdnimydvv55pmqwyzjchhjwfvp951sjlq0180kskqrlj5"; + url = "mirror://gnome/sources/gnome-python-desktop/${ver_maj}/gnome-python-desktop-${version}.tar.bz2"; + sha256 = "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"; }; configurePhase = '' - sed -e "s@{PYTHONDIR}/gtk-2.0@{PYTHONDIR}/@" -i rsvg/wscript - python waf configure --enable-modules=rsvg --prefix=$out + sed -e "s@{PYTHONDIR}/gtk-2.0@{PYTHONDIR}/@" -i rsvg/wscript + python waf configure --enable-modules=rsvg --prefix=$out ''; buildPhase = "python waf build"; installPhase = "python waf install"; - buildInputs = [ gnome.gnome_python librsvg pkgconfig pygtk python ]; + buildInputs = [ gtk gnome.gnome_python librsvg pkgconfig pygtk python ]; meta = with stdenv.lib; { homepage = "http://www.pygtk.org"; diff --git a/pkgs/desktops/gnome-2/default.nix b/pkgs/desktops/gnome-2/default.nix index 38ae4c015342..3d76ba72daeb 100644 --- a/pkgs/desktops/gnome-2/default.nix +++ b/pkgs/desktops/gnome-2/default.nix @@ -29,8 +29,6 @@ libgtkhtml = callPackage ./platform/libgtkhtml { }; - intltool = callPackage ./platform/intltool { }; - GConf = callPackage ./platform/GConf { }; gconfmm = callPackage ./platform/gconfmm { }; diff --git a/pkgs/desktops/gnome-2/platform/ORBit2/default.nix b/pkgs/desktops/gnome-2/platform/ORBit2/default.nix index ec6931724bc2..22c22c6bcf50 100644 --- a/pkgs/desktops/gnome-2/platform/ORBit2/default.nix +++ b/pkgs/desktops/gnome-2/platform/ORBit2/default.nix @@ -9,6 +9,10 @@ stdenv.mkDerivation rec { sha256 = "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"; }; + preBuild = '' + sed 's/-DG_DISABLE_DEPRECATED//' -i linc2/src/Makefile + ''; + nativeBuildInputs = [ pkgconfig ]; propagatedBuildInputs = [ glib libIDL ]; } diff --git a/pkgs/desktops/gnome-2/platform/gnome-vfs/default.nix b/pkgs/desktops/gnome-2/platform/gnome-vfs/default.nix index 0215b341f934..55daa496afc7 100644 --- a/pkgs/desktops/gnome-2/platform/gnome-vfs/default.nix +++ b/pkgs/desktops/gnome-2/platform/gnome-vfs/default.nix @@ -16,4 +16,6 @@ stdenv.mkDerivation rec { ]; propagatedBuildInputs = [ GConf glib ]; + + postPatch = "find . -name Makefile.in | xargs sed 's/-DG_DISABLE_DEPRECATED//g' -i "; } diff --git a/pkgs/desktops/gnome-2/platform/gtkglext/default.nix b/pkgs/desktops/gnome-2/platform/gtkglext/default.nix index 4eab4b8213c6..903387f50b14 100644 --- a/pkgs/desktops/gnome-2/platform/gtkglext/default.nix +++ b/pkgs/desktops/gnome-2/platform/gtkglext/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, gtk, mesa, pango }: +{ stdenv, fetchurl, pkgconfig, glib, gtk, mesa, pango, pangox_compat, xlibs }: stdenv.mkDerivation rec { name = "gtkglext-1.2.0"; @@ -8,7 +8,8 @@ stdenv.mkDerivation rec { sha256 = "0lbz96jwz57hnn52b8rfj54inwpwcc9fkdq6ya043cgnfih77g8n"; }; - buildInputs = [ pkgconfig gtk mesa pango ]; + buildInputs = with xlibs; + [ pkgconfig glib gtk mesa pango pangox_compat libX11 libXmu ]; # The library uses `GTK_WIDGET_REALIZED', `GTK_WIDGET_TOPLEVEL', and # `GTK_WIDGET_NO_WINDOW', all of which appear to be deprecated nowadays. diff --git a/pkgs/desktops/gnome-2/platform/intltool/default.nix b/pkgs/desktops/gnome-2/platform/intltool/default.nix deleted file mode 100644 index 51eaa4a2cf48..000000000000 --- a/pkgs/desktops/gnome-2/platform/intltool/default.nix +++ /dev/null @@ -1,13 +0,0 @@ -{stdenv, fetchurl, pkgconfig, perl, perlXMLParser, gettext}: - -stdenv.mkDerivation rec { - name = "intltool-0.40.6"; - - src = fetchurl { - url = mirror://gnome/sources/intltool/0.40/intltool-0.40.6.tar.bz2; - sha256 = "0r1vkvy5xzqk01yl6a0xlrry39bra24alkrx6279b77hc62my7jd"; - }; - - buildInputs = [ pkgconfig ]; - propagatedBuildInputs = [ perl perlXMLParser gettext ]; -} diff --git a/pkgs/desktops/gnome-2/platform/libbonobo/default.nix b/pkgs/desktops/gnome-2/platform/libbonobo/default.nix index 79c41f924d3f..2303fb15a6f1 100644 --- a/pkgs/desktops/gnome-2/platform/libbonobo/default.nix +++ b/pkgs/desktops/gnome-2/platform/libbonobo/default.nix @@ -10,7 +10,9 @@ stdenv.mkDerivation rec { sha256 = "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"; }; - preConfigure = "export USER=`whoami`"; + preConfigure = # still using stuff deprecated in new glib versions + "sed 's/-DG_DISABLE_DEPRECATED//g' -i configure activation-server/Makefile.in"; + nativeBuildInputs = [ flex bison pkgconfig intltool procps ]; buildInputs = [ libxml2 ]; propagatedBuildInputs = [ popt glib ORBit2 ]; diff --git a/pkgs/desktops/gnome-2/platform/libgnome/default.nix b/pkgs/desktops/gnome-2/platform/libgnome/default.nix index 37dbfd129611..5ab6d5e813d6 100644 --- a/pkgs/desktops/gnome-2/platform/libgnome/default.nix +++ b/pkgs/desktops/gnome-2/platform/libgnome/default.nix @@ -9,7 +9,9 @@ stdenv.mkDerivation rec { major = "2"; minor = "32"; patchlevel = "1"; sha256 = "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"; }; - + + patches = [ ./new-glib.patch ]; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ popt zlib intltool GConf gnome_vfs libcanberra libtool ]; propagatedBuildInputs = [ glib libbonobo ]; diff --git a/pkgs/desktops/gnome-2/platform/libgnome/new-glib.patch b/pkgs/desktops/gnome-2/platform/libgnome/new-glib.patch new file mode 100644 index 000000000000..ceabfbdd158e --- /dev/null +++ b/pkgs/desktops/gnome-2/platform/libgnome/new-glib.patch @@ -0,0 +1,65 @@ +Porting libgnome to newer glib: + * remove g_thread_init and g_thread_supported, which are longer needed + https://developer.gnome.org/glib/2.36/glib-Deprecated-Thread-APIs.html#g-thread-init + * replace GStaticRecMutex by GRecMutex + https://developer.gnome.org/glib/2.36/glib-Deprecated-Thread-APIs.html#GStaticRecMutex + +diff --git a/libgnome/gnome-i18n.c b/libgnome/gnome-i18n.c +index 531c56c..f13d61e 100644 +--- a/libgnome/gnome-i18n.c ++++ b/libgnome/gnome-i18n.c +@@ -55,12 +55,14 @@ + const GList * + gnome_i18n_get_language_list (const gchar *ignored) + { +- static GStaticRecMutex lang_list_lock = G_STATIC_REC_MUTEX_INIT; ++ static GRecMutex lang_list_lock; ++ g_rec_mutex_init (&lang_list_lock); ++ + static GList *list = NULL; + const char * const* langs; + int i; + +- g_static_rec_mutex_lock (&lang_list_lock); ++ g_rec_mutex_lock (&lang_list_lock); + + if (list == NULL) { + langs = g_get_language_names (); +@@ -71,7 +73,7 @@ gnome_i18n_get_language_list (const gchar *ignored) + list = g_list_reverse (list); + } + +- g_static_rec_mutex_unlock (&lang_list_lock); ++ g_rec_mutex_unlock (&lang_list_lock); + + return list; + } +diff --git a/libgnome/gnome-init.c b/libgnome/gnome-init.c +index fe3efd4..c6619af 100644 +--- a/libgnome/gnome-init.c ++++ b/libgnome/gnome-init.c +@@ -115,9 +115,6 @@ gnome_bonobo_module_info_get (void) + static void + bonobo_activation_pre_args_parse (GnomeProgram *program, GnomeModuleInfo *mod_info) + { +- if (!g_thread_supported ()) +- g_thread_init (NULL); +- + if (!bonobo_activation_is_initialized ()) + bonobo_activation_preinit (program, mod_info); + } +diff --git a/libgnome/gnome-program.c b/libgnome/gnome-program.c +index 739765e..cd14999 100644 +--- a/libgnome/gnome-program.c ++++ b/libgnome/gnome-program.c +@@ -1878,10 +1878,6 @@ gnome_program_init (const char *app_id, const char *app_version, + GnomeProgram *program; + va_list args; + +- /* g_thread_init() has to be the first GLib function called ever */ +- if (!g_threads_got_initialized) +- g_thread_init (NULL); +- + g_type_init (); + + va_start(args, first_property_name); diff --git a/pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix b/pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix new file mode 100644 index 000000000000..948774572670 --- /dev/null +++ b/pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix @@ -0,0 +1,17 @@ +{ stdenv, fetchurl, python, pkgconfig, popt, atk, libX11, libICE, xlibs, libXi +, intltool, dbus_glib, at_spi2_core, libSM }: + +stdenv.mkDerivation rec { + versionMajor = "2.8"; + versionMinor = "0"; + moduleName = "at-spi2-atk"; + name = "${moduleName}-${versionMajor}.${versionMinor}"; + + src = fetchurl { + url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz"; + sha256 = "085sqww174vl3i9ccb477v706rkjs2d107rl96ma1kbl2jyar226"; + }; + + buildInputs = [ python pkgconfig popt atk libX11 libICE xlibs.libXtst libXi + intltool dbus_glib at_spi2_core libSM ]; +} diff --git a/pkgs/desktops/gnome-3/core/at-spi2-core/default.nix b/pkgs/desktops/gnome-3/core/at-spi2-core/default.nix new file mode 100644 index 000000000000..2d433486677a --- /dev/null +++ b/pkgs/desktops/gnome-3/core/at-spi2-core/default.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchurl, python, pkgconfig, popt, intltool, dbus_glib +, libX11, xextproto, libSM, libICE, libXtst, libXi }: + +stdenv.mkDerivation rec { + + versionMajor = "2.8"; + versionMinor = "0"; + moduleName = "at-spi2-core"; + name = "${moduleName}-${versionMajor}.${versionMinor}"; + + src = fetchurl { + url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz"; + sha256 = "0n64h6j10sn90ds9y70d9wlvvsbwnrym9fm0cyjxb0zmqw7s6q8q"; + }; + + buildInputs = [ + python pkgconfig popt intltool dbus_glib + libX11 xextproto libSM libICE libXtst libXi + ]; + + # ToDo: on non-NixOS we create a symlink from there? + configureFlags = "--with-dbus-daemondir=/run/current-system/sw/bin/"; +} diff --git a/pkgs/desktops/gnome-3/core/evince/default.nix b/pkgs/desktops/gnome-3/core/evince/default.nix new file mode 100644 index 000000000000..de49bffc419e --- /dev/null +++ b/pkgs/desktops/gnome-3/core/evince/default.nix @@ -0,0 +1,62 @@ +{ fetchurl, stdenv, pkgconfig, intltool, perl, perlXMLParser, libxml2 +, glib, gtk3, pango, atk, gdk_pixbuf, shared_mime_info +, itstool, gnome_icon_theme, libgnome_keyring, gsettings_desktop_schemas +, poppler, ghostscriptX, djvulibre, libspectre +, makeWrapper #, python /*just for tests*/ +, recentListSize ? null # 5 is not enough, allow passing a different number +}: + +stdenv.mkDerivation rec { + name = "evince-3.6.1"; + + src = fetchurl { + url = "http://ftp.gnome.org/pub/GNOME/sources/evince/3.6/${name}.tar.xz"; + sha256 = "1da1pij030dh8mb0pr0jnyszgsbjnh8lc17rj5ii52j3kmbv51qv"; + }; + + buildInputs = [ + pkgconfig intltool perl perlXMLParser libxml2 + glib gtk3 pango atk gdk_pixbuf + itstool gnome_icon_theme libgnome_keyring gsettings_desktop_schemas + poppler ghostscriptX djvulibre libspectre + makeWrapper + ]; + + configureFlags = [ + "--disable-nautilus" # Do not use nautilus + "--disable-dbus" # strange compilation error + ]; + + preConfigure = with stdenv.lib; + optionalString doCheck '' + for file in test/*.py; do + echo "patching $file" + sed '1s,/usr,${python},' -i "$file" + done + '' + optionalString (recentListSize != null) '' + sed -i 's/\(gtk_recent_chooser_set_limit .*\)5)/\1${builtins.toString recentListSize})/' shell/ev-open-recent-action.c + sed -i 's/\(if (++n_items == \)5\(.*\)/\1${builtins.toString recentListSize}\2/' shell/ev-window.c + ''; + + postInstall = '' + # Tell Glib/GIO about the MIME info directory, which is used + # by `g_file_info_get_content_type ()'. + wrapProgram "$out/bin/evince" \ + --prefix XDG_DATA_DIRS : "${shared_mime_info}/share:$out/share" + '' + gsettings_desktop_schemas.doCompileSchemas; + doCheck = false; # would need pythonPackages.dogTail, which is missing + + meta = { + homepage = http://www.gnome.org/projects/evince/; + description = "GNOME's document viewer"; + + longDescription = '' + Evince is a document viewer for multiple document formats. It + currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal + of Evince is to replace the multiple document viewers that exist + on the GNOME Desktop with a single simple application. + ''; + + license = "GPLv2+"; + }; +} diff --git a/pkgs/desktops/gnome-3/core/gconf/default.nix b/pkgs/desktops/gnome-3/core/gconf/default.nix new file mode 100644 index 000000000000..9ca9c227d586 --- /dev/null +++ b/pkgs/desktops/gnome-3/core/gconf/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchurl, pkgconfig, dbus_glib, gtk, glib, libxml2 +, intltool, polkit, orbit }: + +stdenv.mkDerivation rec { + + versionMajor = "3.2"; + versionMinor = "5"; + moduleName = "GConf"; + + origName = "${moduleName}-${versionMajor}.${versionMinor}"; + + name = "gconf-${versionMajor}.${versionMinor}"; + + src = fetchurl { + url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${origName}.tar.xz"; + sha256 = "1ijqks0jxc4dyfxg4vnbqds4aj6miyahlsmlqlkf2bi1798akpjd"; + }; + + buildInputs = [ libxml2 polkit gtk orbit ]; + propagatedBuildInputs = [ glib dbus_glib ]; + nativeBuildInputs = [ pkgconfig intltool ]; + + # ToDo: ldap reported as not found but afterwards reported as supported + + meta = { + homepage = http://projects.gnome.org/gconf/; + description = "A system for storing application preferences"; + }; +} diff --git a/pkgs/desktops/gnome-3/core/gcr/default.nix b/pkgs/desktops/gnome-3/core/gcr/default.nix new file mode 100644 index 000000000000..cf9774c5511c --- /dev/null +++ b/pkgs/desktops/gnome-3/core/gcr/default.nix @@ -0,0 +1,18 @@ +{ stdenv, fetchurl, pkgconfig, intltool, gnupg, p11_kit, glib +, libgcrypt, libtasn1, dbus_glib, gtk, pango, gdk_pixbuf, atk }: + +stdenv.mkDerivation rec { + name = "gcr-3.6.2"; + + src = fetchurl { + url = "mirror://gnome/sources/gcr/3.6/${name}.tar.xz"; + sha256 = "16xyqxv2hxl3a4m8ahilqcf1ps58w1ijh8dav1l5nqz36ljdn2gp"; + }; + + buildInputs = [ + pkgconfig intltool gnupg p11_kit glib + libgcrypt libtasn1 dbus_glib gtk pango gdk_pixbuf atk + ]; + + #doCheck = true; +} diff --git a/pkgs/desktops/gnome-3/core/gnome-icon-theme/default.nix b/pkgs/desktops/gnome-3/core/gnome-icon-theme/default.nix new file mode 100644 index 000000000000..303bcd2208ce --- /dev/null +++ b/pkgs/desktops/gnome-3/core/gnome-icon-theme/default.nix @@ -0,0 +1,12 @@ +{ stdenv, fetchurl, pkgconfig, intltool, iconnamingutils, gtk }: + +stdenv.mkDerivation rec { + name = "gnome-icon-theme-3.6.2"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-icon-theme/3.6/${name}.tar.xz"; + sha256 = "0i8hkx2c1g5ckrvbkvs9n47i8fby8p9xs6p5l0mxdx9aq4smak9i"; + }; + + nativeBuildInputs = [ pkgconfig intltool iconnamingutils gtk ]; +} diff --git a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix new file mode 100644 index 000000000000..5983b74c0f45 --- /dev/null +++ b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix @@ -0,0 +1,26 @@ +{stdenv, fetchurl, pkgconfig, dbus, libgcrypt, libtasn1, pam, python, glib +, gtk3, intltool, gconf, libgnome_keyring, pango, gcr, gdk_pixbuf, atk, p11_kit }: + +stdenv.mkDerivation rec { + name = "gnome-keyring-3.6.2"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-keyring/3.6/${name}.tar.xz"; + sha256 = "1mhc2c0qswfjqi2spdvh19b7npfkjf1k40q6v7fja4qpc26maq5f"; + }; + + buildInputs = [ + dbus libgcrypt pam python gtk3 gconf libgnome_keyring + pango gcr gdk_pixbuf atk p11_kit + ]; + + propagatedBuildInputs = [ glib libtasn1 ]; + + nativeBuildInputs = [ pkgconfig intltool ]; + + configureFlags = [ + "--with-ca-certificates=/etc/ssl/certs/ca-bundle.crt" # NixOS hardcoded path + "--with-pkcs11-config=$$out/etc/pkcs11/" # installation directories + "--with-pkcs11-modules=$$out/lib/pkcs11/" + ]; +} diff --git a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix new file mode 100644 index 000000000000..41fdcc8086b1 --- /dev/null +++ b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchurl, pkgconfig, cairo, libxml2, libxslt, gnome3, pango +, gnome_doc_utils, intltool, libX11, which, gconf }: + +stdenv.mkDerivation rec { + + versionMajor = "3.4"; + versionMinor = "1.1"; + + name = "gnome-terminal-${versionMajor}.${versionMinor}"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-terminal/${versionMajor}/${name}.tar.xz"; + sha256 = "1p9zqjmkxryf2kyghhhwwpsh4kd8y1jzzwc9zxghmpxszi9a5m0l"; + }; + + configureFlags = "--disable-scrollkeeper"; + buildInputs = [ gnome3.gtk gnome3.gsettings_desktop_schemas gnome3.vte gconf ]; + + nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which ]; +} diff --git a/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix b/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix new file mode 100644 index 000000000000..9c13539a1cc6 --- /dev/null +++ b/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchurl, pkgconfig, intltool, glib + # just for passthru +, gtk3, gsettings_desktop_schemas }: + +stdenv.mkDerivation rec { + + versionMajor = "3.6"; + versionMinor = "1"; + moduleName = "gsettings-desktop-schemas"; + + name = "${moduleName}-${versionMajor}.${versionMinor}"; + + src = fetchurl { + url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz"; + sha256 = "1rk71q2rky9nzy0zb5jsvxa62vhg7dk65kdgdifq8s761797ga6r"; + }; + + buildInputs = [ glib ]; + + nativeBuildInputs = [ pkgconfig intltool ]; + + passthru = { + doCompileSchemas = '' + for pkg in "${gsettings_desktop_schemas}" "${gtk3}"; do + cp -s $pkg/share/glib-2.0/schemas/*.gschema.xml $out/share/glib-2.0/schemas/ + done + ${glib}/bin/glib-compile-schemas $out/share/glib-2.0/schemas/ + ''; + }; +} diff --git a/pkgs/desktops/gnome-3/core/gvfs/default.nix b/pkgs/desktops/gnome-3/core/gvfs/default.nix new file mode 100644 index 000000000000..1eea518c4b7f --- /dev/null +++ b/pkgs/desktops/gnome-3/core/gvfs/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, pkgconfig, dbus_libs, samba, libarchive, fuse, libgphoto2 +, libcdio, libxml2, libtool, glib, intltool, gconf, libgnome_keyring, libsoup +, udev, avahi, libxslt, docbook_xsl }: + +stdenv.mkDerivation rec { + name = "gvfs-1.14.2"; + + src = fetchurl { + url = "mirror://gnome/sources/gvfs/1.14/${name}.tar.xz"; + sha256 = "1g4ghyf45jg2ajdkv2d972hbckyjh3d9jdrppai85pl9pk2dmfy3"; + }; + + buildInputs = + [ glib dbus_libs udev samba libarchive fuse libgphoto2 libcdio libxml2 gconf + libgnome_keyring libsoup avahi libtool libxslt docbook_xsl + ]; + + nativeBuildInputs = [ pkgconfig intltool ]; + + enableParallelBuilding = true; +} diff --git a/pkgs/desktops/gnome-3/core/libcroco/default.nix b/pkgs/desktops/gnome-3/core/libcroco/default.nix new file mode 100644 index 000000000000..70c1db8c0275 --- /dev/null +++ b/pkgs/desktops/gnome-3/core/libcroco/default.nix @@ -0,0 +1,11 @@ +{stdenv, fetchurl, pkgconfig, libxml2, glib}: + +stdenv.mkDerivation rec { + name = "libcroco-0.6.6"; # 3.6.2 release + + src = fetchurl { + url = "mirror://gnome/sources/libcroco/0.6/${name}.tar.xz"; + sha256 = "1nbb12420v1zacn6jwa1x4ixikkcqw66sg4j5dgs45nhygiarv3j"; + }; + buildInputs = [ pkgconfig libxml2 glib ]; +} diff --git a/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix b/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix new file mode 100644 index 000000000000..a5d196ae1e32 --- /dev/null +++ b/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix @@ -0,0 +1,17 @@ +{ stdenv, fetchurl, glib, dbus_libs, libgcrypt, pkgconfig, intltool }: + +stdenv.mkDerivation rec { + name = "libgnome-keyring-3.6.0"; + + src = fetchurl { + url = "mirror://gnome/sources/libgnome-keyring/3.6/${name}.tar.xz"; + sha256 = "0c4qrjpmv1hqga3xv6wsq2z10x2n78qgw7q3k3s01y1pggxkgjkd"; + }; + + propagatedBuildInputs = [ glib dbus_libs libgcrypt ]; + nativeBuildInputs = [ pkgconfig intltool ]; + + meta = { + inherit (glib.meta) platforms maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/core/libgweather/default.nix b/pkgs/desktops/gnome-3/core/libgweather/default.nix new file mode 100644 index 000000000000..78ae94c1a33a --- /dev/null +++ b/pkgs/desktops/gnome-3/core/libgweather/default.nix @@ -0,0 +1,14 @@ +{ stdenv, fetchurl, pkgconfig, libxml2, gtk, intltool, libsoup, gconf +, pango, gdk_pixbuf, atk }: + +stdenv.mkDerivation rec { + name = "libgweather-3.6.2"; + + src = fetchurl { + url = "mirror://gnome/sources/libgweather/3.6/${name}.tar.xz"; + sha256 = "1c50m0zrnfh4g58rzf33dfw8ggslj38c61p8a75905bmj3rfyahg"; + }; + configureFlags = if stdenv ? glibc then "--with-zoneinfo-dir=${stdenv.glibc}/share/zoneinfo" else ""; + propagatedBuildInputs = [ libxml2 gtk libsoup gconf pango gdk_pixbuf atk ]; + nativeBuildInputs = [ pkgconfig intltool ]; +} diff --git a/pkgs/desktops/gnome-3/core/vte/default.nix b/pkgs/desktops/gnome-3/core/vte/default.nix new file mode 100644 index 000000000000..ffc3aab87064 --- /dev/null +++ b/pkgs/desktops/gnome-3/core/vte/default.nix @@ -0,0 +1,46 @@ +{ stdenv, fetchurl, intltool, pkgconfig, gnome3, ncurses +, pythonSupport ? false, python, pygtk}: + +stdenv.mkDerivation rec { + + versionMajor = "0.32"; + versionMinor = "2"; + moduleName = "vte"; + + name = "${moduleName}-${versionMajor}.${versionMinor}"; + + src = fetchurl { + url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz"; + sha256 = "0sj837b9ib36gx00hzdinv23f7w91fd5mcw1p6wdi053yxqw17nn"; + }; + + buildInputs = [ intltool pkgconfig gnome3.glib gnome3.gtk ncurses ] ++ + stdenv.lib.optionals pythonSupport [python pygtk]; + + configureFlags = '' + ${if pythonSupport then "--enable-python" else "--disable-python"} + ''; + + postInstall = stdenv.lib.optionalString pythonSupport '' + cd $(toPythonPath $out)/gtk-2.0 + for n in *; do + ln -s "gtk-2.0/$n" "../$n" + done + ''; + + meta = { + homepage = http://www.gnome.org/; + description = "A library implementing a terminal emulator widget for GTK+"; + longDescription = '' + VTE is a library (libvte) implementing a terminal emulator widget for + GTK+, and a minimal sample application (vte) using that. Vte is + mainly used in gnome-terminal, but can also be used to embed a + console/terminal in games, editors, IDEs, etc. VTE supports Unicode and + character set conversion, as well as emulating any terminal known to + the system's terminfo database. + ''; + license = "LGPLv2"; + maintainers = with stdenv.lib.maintainers; [ astsmtl antono ]; + platforms = with stdenv.lib.platforms; linux; + }; +} diff --git a/pkgs/desktops/gnome-3/core/zenity/default.nix b/pkgs/desktops/gnome-3/core/zenity/default.nix new file mode 100644 index 000000000000..18b91d4f61e8 --- /dev/null +++ b/pkgs/desktops/gnome-3/core/zenity/default.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchurl, pkgconfig, cairo, libxml2, libxslt, gnome3, pango +, gnome_doc_utils, intltool, libX11, which }: + +stdenv.mkDerivation rec { + + versionMajor = "3.4"; + versionMinor = "0"; + + name = "zenity-${versionMajor}.${versionMinor}"; + + src = fetchurl { + url = "mirror://gnome/sources/zenity/${versionMajor}/zenity-${versionMajor}.${versionMinor}.tar.xz"; + sha256 = "1bqbfcvd3kj2xk15fvbcdaqvyg9qvymlhn8cwvg5m6v4gicniw2w"; + }; + + configureFlags = "--disable-scrollkeeper"; + buildInputs = [ gnome3.gtk libxml2 libxslt libX11 ]; + + nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which ]; +} diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix new file mode 100644 index 000000000000..5d517da82b39 --- /dev/null +++ b/pkgs/desktops/gnome-3/default.nix @@ -0,0 +1,55 @@ +{ callPackage, lib, self, stdenv, gettext, overrides ? {}, pkgs }: + +rec { + inherit (pkgs) fetchurl_gnome glib gtk3 atk pango; + gtk = gtk3; + orbit = pkgs.gnome2.ORBit2; + + inherit (lib) lowPrio hiPrio appendToName makeOverridable; + + __overrides = overrides; + +#### Core (http://ftp.acc.umu.se/pub/GNOME/core/) + + at_spi2_atk = lib.lowPrio (callPackage ./core/at-spi2-atk { }); + + at_spi2_core = callPackage ./core/at-spi2-core { }; + + evince = callPackage ./core/evince { }; # ToDo: dbus would prevent compilation, enable tests + + gconf = callPackage ./core/gconf { }; + + gcr = callPackage ./core/gcr { }; # ToDo: tests fail + + gnome_icon_theme = callPackage ./core/gnome-icon-theme { }; + + gnome_keyring = callPackage ./core/gnome-keyring { }; + libgnome_keyring = callPackage ./core/libgnome-keyring { }; + + gnome_terminal = callPackage ./core/gnome-terminal { }; + + gsettings_desktop_schemas = lib.lowPrio (callPackage ./core/gsettings-desktop-schemas { }); + + gvfs = callPackage ./core/gvfs { }; + + libcroco = callPackage ./core/libcroco {}; + + libgweather = callPackage ./core/libgweather { }; + + vte = callPackage ./core/vte { }; + + zenity = callPackage ./core/zenity { }; + +#### Apps (http://ftp.acc.umu.se/pub/GNOME/apps/) + + gnome_dictionary = callPackage ./desktop/gnome-dictionary { }; + + gnome_desktop = callPackage ./desktop/gnome-desktop { }; + + # Removed from recent GNOME releases, but still required + scrollkeeper = callPackage ./desktop/scrollkeeper { }; + + # scrollkeeper replacement + rarian = callPackage ./desktop/rarian { }; + +} diff --git a/pkgs/desktops/gnome-3/desktop/gnome-desktop/default.nix b/pkgs/desktops/gnome-3/desktop/gnome-desktop/default.nix new file mode 100644 index 000000000000..4d22f6ad7466 --- /dev/null +++ b/pkgs/desktops/gnome-3/desktop/gnome-desktop/default.nix @@ -0,0 +1,18 @@ +{ stdenv, fetchurl, pkgconfig, python, libxml2Python, libxslt, which, libX11, gnome3 +, intltool, gnome_doc_utils}: + +stdenv.mkDerivation rec { + + majorVersion = "3.5"; + minorVersion = "3"; + name = "gnome-desktop-${majorVersion}.${minorVersion}"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-desktop/${majorVersion}/${name}.tar.xz"; + sha256 = "1nrqcp1p5cxhfjjy5hjpvkqmzsgl2353a08fg0b11c932v95bsba"; + }; + + configureFlags = "--disable-scrollkeeper"; + buildInputs = [ pkgconfig python libxml2Python libxslt which libX11 + gnome3.gtk gnome3.glib intltool gnome_doc_utils ]; +} diff --git a/pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix b/pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix new file mode 100644 index 000000000000..7a1ab5b1505a --- /dev/null +++ b/pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix @@ -0,0 +1,15 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gnome_doc_utils, intltool, which +, libxml2, libxslt }: + +stdenv.mkDerivation rec { + version = "3.5.2"; + name = "gnome-dictionary-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-dictionary/3.5/${name}.tar.xz"; + sha256 = "1cq32csxn27vir5nlixx337ym2nal9ykq3s1j7yynh2adh4m0jil"; + }; + + buildInputs = [ gnome3.gtk ]; + nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which libxml2 libxslt gnome3.scrollkeeper ]; +} diff --git a/pkgs/desktops/gnome-3/desktop/rarian/default.nix b/pkgs/desktops/gnome-3/desktop/rarian/default.nix new file mode 100644 index 000000000000..77a2b710f447 --- /dev/null +++ b/pkgs/desktops/gnome-3/desktop/rarian/default.nix @@ -0,0 +1,11 @@ +{stdenv, fetchurl, pkgconfig, perl, perlXMLParser, libxml2, libxslt, docbook_xml_dtd_42}: + +stdenv.mkDerivation rec { + name = "rarian-0.8.1"; + src = fetchurl { + url = "mirror://gnome/sources/rarian/0.8/${name}.tar.bz2"; + sha256 = "aafe886d46e467eb3414e91fa9e42955bd4b618c3e19c42c773026b205a84577"; + }; + buildInputs = [pkgconfig perl perlXMLParser libxml2 libxslt]; + configureFlags = "--with-xml-catalog=${docbook_xml_dtd_42}/xml/dtd/docbook/docbook.cat"; +} diff --git a/pkgs/desktops/gnome-3/desktop/scrollkeeper/default.nix b/pkgs/desktops/gnome-3/desktop/scrollkeeper/default.nix new file mode 100644 index 000000000000..97dcbf4e0041 --- /dev/null +++ b/pkgs/desktops/gnome-3/desktop/scrollkeeper/default.nix @@ -0,0 +1,18 @@ +{stdenv, fetchurl, pkgconfig, perl, perlXMLParser, libxml2, libxslt, docbook_xml_dtd_42, automake}: + +stdenv.mkDerivation { + name = "scrollkeeper-0.3.14"; + src = fetchurl { + url = mirror://gnome/sources/scrollkeeper/0.3/scrollkeeper-0.3.14.tar.bz2; + sha256 = "08n1xgj1f53zahwm0wpn3jid3rfbhi3iwby0ilaaldnid5qriqgc"; + }; + + # The fuloong2f is not supported by scrollkeeper-0.3.14 config.guess + preConfigure = " + substituteInPlace extract/dtds/Makefile.am --replace /usr/bin/xmlcatalog xmlcatalog + cp ${automake}/share/automake*/config.{sub,guess} . + "; + + buildInputs = [pkgconfig perl perlXMLParser libxml2 libxslt]; + configureFlags = "--with-xml-catalog=${docbook_xml_dtd_42}/xml/dtd/docbook/docbook.cat"; +} diff --git a/pkgs/desktops/xfce/4_08.nix b/pkgs/desktops/xfce/4_08.nix new file mode 100644 index 000000000000..d29e3ac51ef0 --- /dev/null +++ b/pkgs/desktops/xfce/4_08.nix @@ -0,0 +1,37 @@ +{ pkgs, newScope }: let + +common = (import ./common.nix) { inherit pkgs newScope xfce_self; }; +callPackage = common.callPackage; + +xfce_self = common.xfce_common // rec { # the lines are very long but it seems better than the even-odd line approach + + #### CORE + + exo = callPackage ./core/exo.nix { v= "0.6.2"; h= "0f8zh5y057l7xffskjvky6k88hrnz6jyk35mvlfpmx26anlgd77l"; }; + libxfce4ui = callPackage ./core/libxfce4ui.nix { v= "4.8.1"; h= "0mlrcr8rqmv047xrb2dbh7f4knsppb1anx2b05s015h6v8lyvjrr"; }; + libxfce4util = callPackage ./core/libxfce4util.nix { v= "4.8.2"; h= "05n8586h2fwkibfld5fm4ygx1w66jnbqqb3li0ardjvm2n24k885"; }; + libxfcegui4 = callPackage ./core/libxfcegui4.nix { v= "4.8.1"; h= "0hr4h6a9p6w3qw1976p8v9c9pwhd9zhrjlbaph0p7nyz7j1836ih"; }; + thunar = callPackage ./core/thunar.nix { v= "1.2.3"; h= "19mczys6xr683r68g3s2njrrmnk1p73zypvwrhajw859c6nsjsp6"; }; + xfce4panel = callPackage ./core/xfce4-panel.nix { v= "4.8.6"; h= "00zdkg1jg4n2n109nxan8ji2m06r9mc4lnlrvb55xvj229m2dwb6"; }; + xfce4session = callPackage ./core/xfce4-session.nix { v= "4.8.2"; h= "1l608kik98jxbjl73waf8515hzji06lr80qmky2qlnp0b6js5g1i"; }; + xfce4settings = callPackage ./core/xfce4-settings.nix { v= "4.8.3"; h= "0bmw0s6jp2ws4n0f3387zwsyv46b0w89m6r70yb7wrqy9r3wqy6q"; }; + xfceutils = callPackage ./core/xfce-utils.nix { v= "4.8.3"; h= "09mr0amp2f632q9i3vykaa0x5nrfihfm9v5nxsx9vch8wvbp0l03"; }; + xfconf = callPackage ./core/xfconf.nix { v= "4.8.1"; h= "1jwkb73xcgqfly449jwbn2afiyx50p150z60x19bicps75sp6q4q"; }; + xfdesktop = callPackage ./core/xfdesktop.nix { v= "4.8.3"; h= "097lc9djmay0jyyl42jmvcfda75ndp265nzn0aa3hv795bsn1175"; }; + xfwm4 = callPackage ./core/xfwm4.nix { v= "4.8.3"; h= "0zi2g1d2jdgw5armlk9xjh4ykmydy266gdba86nmhy951gm8n3hb"; }; + + xfce4_appfinder = callPackage ./core/xfce4-appfinder.nix { v= "4.8.0"; h= "0zy7i9x4qjchmyb8nfpb7m2ply5n2aq35p9wrhb8lpz4am1ihx7x"; }; + + #### APPLICATIONS + + terminal = null; # newer versions don't build with 4.8 + + # versions > 0.3* don't build with xfce-4.8.* + ristretto = callPackage ./applications/ristretto.nix { v= "0.3.7"; h= "19mzy159j4qhd7pd1b83gimxfdg3mwdab9lq9kk505d21r7iqc9b"; }; + + xfce4mixer = callPackage ./applications/xfce4-mixer.nix { v= "4.8.0"; h= "1aqgjxvck6hx26sk3n4n5avhv02vs523mfclcvjb3xnks3yli7wz"; }; + +}; # xfce_self + +in xfce_self + diff --git a/pkgs/desktops/xfce/4_10.nix b/pkgs/desktops/xfce/4_10.nix new file mode 100644 index 000000000000..3f846198e3f5 --- /dev/null +++ b/pkgs/desktops/xfce/4_10.nix @@ -0,0 +1,35 @@ +{ pkgs, newScope }: let + +common = (import ./common.nix) { inherit pkgs newScope xfce_self; }; +callPackage = common.callPackage; + +xfce_self = common.xfce_common // rec { # the lines are very long but it seems better than the even-odd line approach + + #### CORE + + exo = callPackage ./core/exo.nix { v= "0.10.2"; h= "1kknxiz703q4snmry65ajm26jwjslbgpzdal6bd090m3z25q51dk"; }; + libxfce4ui = callPackage ./core/libxfce4ui.nix { v= "4.10.0"; h= "1qm31s6568cz4c8rl9fsfq0xmf7pldxm0ki62gx1cpybihlgmfd2"; }; + libxfce4util = callPackage ./core/libxfce4util.nix { v= "4.10.0"; h= "13k0wwbbqvdmbj4xmk4nxdlgvrdgr5y6r3dk380mzfw053hzwy89"; }; + libxfcegui4 = callPackage ./core/libxfcegui4.nix { v= "4.10.0"; h= "0cs5im0ib0cmr1lhr5765yliqjfyxvk4kwy8h1l8bn3mj6bzk0ib"; }; + thunar = callPackage ./core/thunar.nix { v= "1.6.2"; h= "11dx38rvkfbp91pxrprymxhimsm90gvizp277x9s5rwnwcm1ggbx"; }; + xfce4panel = callPackage ./core/xfce4-panel.nix { v= "4.10.0"; h= "1f8903nx6ivzircl8d8s9zna4vjgfy0qhjk5d2x19g9bmycgj89k"; }; + xfce4session = callPackage ./core/xfce4-session.nix { v= "4.10.0"; h= "1kj65jkjhd0ysf0yxsf88wzpyv6n8i8qgd3gb502hf1x9jksk2mv"; }; + xfce4settings = callPackage ./core/xfce4-settings.nix { v= "4.10.0"; h= "0zppq747z9lrxyv5zrrvpalq7hb3gfhy9p7qbldisgv7m6dz0hq8"; }; + xfceutils = null; # removed in 4.10 + xfconf = callPackage ./core/xfconf.nix { v= "4.10.0"; h= "0xh520z0qh0ib0ijgnyrgii9h5d4pc53n6mx1chhyzfc86j1jlhp"; }; + xfdesktop = callPackage ./core/xfdesktop.nix { v= "4.10.0"; h= "0yrddj1lgk3xn4w340y89z7x2isks72ia36pka08kk2x8gpfcyl9"; }; + xfwm4 = callPackage ./core/xfwm4.nix { v= "4.10.0"; h= "170zzs7adj47srsi2cl723w9pl8k8awd7w1bpzxby7hj92zmf8s9"; }; + + xfce4_appfinder = callPackage ./core/xfce4-appfinder.nix { v= "4.9.4"; h= "12lgrbd1n50w9n8xkpai98s2aw8vmjasrgypc57sp0x0qafsqaxq"; }; + + #### APPLICATIONS + + ristretto = callPackage ./applications/ristretto.nix { v= "0.6.3"; h= "0y9d8w1plwp4vmxs44y8k8x15i0k0xln89k6jndhv6lf57g1cs1b"; }; + terminal = xfce4terminal; # it has changed its name + xfce4mixer = callPackage ./applications/xfce4-mixer.nix { v= "4.10.0"; h= "1pnsd00583l7p5d80rxbh58brzy3jnccwikbbbm730a33c08kid8"; }; + xfce4terminal = callPackage ./applications/terminal.nix { v= "0.6.1"; h= "1j6lpkq952mrl5p24y88f89wn9g0namvywhma639xxsswlkn8d31"; }; + +}; + +in xfce_self + diff --git a/pkgs/desktops/xfce/common.nix b/pkgs/desktops/xfce/common.nix new file mode 100644 index 000000000000..8be4ac09e145 --- /dev/null +++ b/pkgs/desktops/xfce/common.nix @@ -0,0 +1,72 @@ +{ pkgs, newScope, xfce_self }: rec { + + callPackage = newScope (deps // xfce_self); + + deps = rec { # xfce-global dependency overrides should be here + inherit (pkgs.gnome) libglade libwnck vte gtksourceview; + inherit (pkgs.perlPackages) URI; + + # The useful bits from ‘gnome-disk-utility’. + libgdu = callPackage ./support/libgdu.nix { }; + + # Gvfs is required by Thunar for the trash feature and for volume + # mounting. Should use the one from Gnome, but I don't want to mess + # with the Gnome packages (or pull in a zillion Gnome dependencies). + gvfs = callPackage ./support/gvfs.nix { }; + + # intelligent fetcher for Xfce + fetchXfce = rec { + generic = prepend : name : hash : + let lib = pkgs.lib; + p = builtins.parseDrvName name; + versions = lib.splitString "." p.version; + ver_maj = lib.concatStrings (lib.intersperse "." (lib.take 2 versions)); + name_low = lib.toLower p.name; + in pkgs.fetchurl { + url = "mirror://xfce/src/${prepend}/${name_low}/${ver_maj}/${name}.tar.bz2"; + sha256 = hash; + }; + core = generic "xfce"; + app = generic "apps"; + art = generic "art"; + }; + }; + + xfce_common = rec { + + inherit (deps) gvfs; # used by NixOS + + #### CORE + + garcon = callPackage ./core/garcon.nix { v= "0.2.0"; h= "0v7pkvxcayi86z4f173z5l7w270f3g369sa88z59w0y0p7ns7ph2"; }; + + # not used anymore TODO: really? Update to 2.99.2? + gtk_xfce_engine = callPackage ./core/gtk-xfce-engine.nix { }; + + # ToDo: segfaults after some work + tumbler = callPackage ./core/tumbler.nix { v= "0.1.27"; h= "0s9qj99b81asmlqa823nzykq8g6p9azcp2niak67y9bp52wv6q2c"; }; + + xfce4_power_manager = callPackage ./core/xfce4-power-manager.nix { v= "1.0.10"; h= "1w120k1sl4s459ijaxkqkba6g1p2sqrf9paljv05wj0wz12bpr40"; }; + + + #### APPLICATIONS + #TODO: correct links; more stuff + + xfce4notifyd = callPackage ./applications/xfce4-notifyd.nix { v= "0.2.2"; h= "0s4ilc36sl5k5mg5727rmqims1l3dy5pwg6dk93wyjqnqbgnhvmn"; }; + gigolo = callPackage ./applications/gigolo.nix { v= "0.4.1"; h= "1y8p9bbv1a4qgbxl4vn6zbag3gb7gl8qj75cmhgrrw9zrvqbbww2"; }; + xfce4taskmanager = callPackage ./applications/xfce4-taskmanager.nix { v= "1.0.0"; h= "1vm9gw7j4ngjlpdhnwdf7ifx6xrrn21011almx2vwidhk2f9zvy0"; }; + mousepad = callPackage ./applications/mousepad.nix { v= "0.3.0"; h= "0v84zwhjv2xynvisn5vmp7dbxfj4l4258m82ks7hn3adk437bwhh"; }; + thunar_volman = callPackage ./core/thunar-volman.nix { }; + + #### ART + + xfce4icontheme = callPackage ./art/xfce4-icon-theme.nix { v= "4.4.3"; h= "1yk6rx3zr9grm4jwpjvqdkl13pisy7qn1wm5cqzmd2kbsn96cy6l"; }; + + #### PANEL PLUGINS + + xfce4_systemload_plugin = callPackage ./panel-plugins/xfce4-systemload-plugin.nix { }; + xfce4_cpufreq_plugin = callPackage ./panel-plugins/xfce4-cpufreq-plugin.nix { }; + + }; +} + diff --git a/pkgs/desktops/xfce/core/xfce4-dev-tools.nix b/pkgs/desktops/xfce/core/xfce4-dev-tools.nix new file mode 100644 index 000000000000..e56eb3f0a713 --- /dev/null +++ b/pkgs/desktops/xfce/core/xfce4-dev-tools.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchurl, pkgconfig, glib, autoconf, automake, libtool, intltool }: + +stdenv.mkDerivation rec { + p_name = "xfce4-dev-tools"; + ver_maj = "4.10"; + ver_min = "0"; + + src = fetchurl { + url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2"; + sha256 = "1y1byfjciqhxqfxbjfp22bn5lxk3a01ng7zfjha8h5mzzfxlk5pp"; + }; + name = "${p_name}-${ver_maj}.${ver_min}"; + + buildInputs = [ pkgconfig glib ]; + + # not needed to build it but to use it + propagatedBuildInputs = [ autoconf automake libtool intltool ]; + + meta = { + homepage = http://foo-projects.org/~benny/projects/xfce4-dev-tools/; + description = "Tools and M4 macros for Xfce4 developers"; + license = "GPLv2+"; + }; +} diff --git a/pkgs/desktops/xfce/core/xfce4-session-systemd.patch b/pkgs/desktops/xfce/core/xfce4-session-systemd.patch new file mode 100644 index 000000000000..7780491a8eda --- /dev/null +++ b/pkgs/desktops/xfce/core/xfce4-session-systemd.patch @@ -0,0 +1,470 @@ +From ae28aef315a7a6b90f1649ce6d1f30b842791cbf Mon Sep 17 00:00:00 2001 +From: Nick Schermer +Date: Sun, 04 Nov 2012 20:23:36 +0000 +Subject: Add shutdown/reboot functionality for systemd (bug #8729). + +Based on patch by Christian Hesse and Evangelos Foutras. +--- +diff --git a/configure.in.in b/configure.in.in +index 9aa4f8f..134d0f7 100644 +--- a/configure.in ++++ b/configure.in +@@ -96,6 +96,10 @@ XDT_CHECK_PACKAGE([DBUS], [dbus-1], [1.1.0]) + XDT_CHECK_PACKAGE([DBUS_GLIB], [dbus-glib-1], [0.84]) + XDT_CHECK_PACKAGE([XFCONF], [libxfconf-0], [4.9.0]) + ++dnl Check for polkit / systemd integration ++XDT_CHECK_OPTIONAL_PACKAGE([SYSTEMD], [polkit-gobject-1], [0.100], ++ [systemd], [Systemd support (through polit)]) ++ + dnl Check for debugging support + XDT_FEATURE_DEBUG([xfsm_debug_default]) + +diff --git a/xfce4-session/Makefile.am b/xfce4-session/Makefile.am +index c015154..f748b2b 100644 +--- a/xfce4-session/Makefile.am ++++ b/xfce4-session/Makefile.am +@@ -38,8 +38,6 @@ xfce4_session_SOURCES = \ + xfsm-compat-gnome.h \ + xfsm-compat-kde.c \ + xfsm-compat-kde.h \ +- xfsm-consolekit.c \ +- xfsm-consolekit.h \ + xfsm-dns.c \ + xfsm-dns.h \ + xfsm-error.c \ +@@ -65,6 +63,16 @@ xfce4_session_SOURCES = \ + xfsm-upower.c \ + xfsm-upower.h + ++if HAVE_SYSTEMD ++xfce4_session_SOURCES += \ ++ xfsm-systemd.c \ ++ xfsm-systemd.h ++else ++xfce4_session_SOURCES += \ ++ xfsm-consolekit.c \ ++ xfsm-consolekit.h ++endif ++ + xfce4_session_CFLAGS = \ + $(LIBSM_CFLAGS) \ + $(LIBX11_CFLAGS) \ +@@ -72,6 +80,7 @@ xfce4_session_CFLAGS = \ + $(DBUS_CFLAGS) \ + $(DBUS_GLIB_CFLAGS) \ + $(LIBWNCK_CFLAGS) \ ++ $(SYSTEMD_CFLAGS) \ + $(XFCONF_CFLAGS) \ + $(GMODULE_CFLAGS) \ + $(PLATFORM_CFLAGS) +@@ -91,6 +100,7 @@ xfce4_session_LDADD = \ + $(DBUS_LIBS) \ + $(DBUS_GLIB_LIBS) \ + $(LIBWNCK_LIBS) \ ++ $(SYSTEMD_LIBS) \ + $(XFCONF_LIBS) \ + -lm + +diff --git a/xfce4-session/xfsm-shutdown.c b/xfce4-session/xfsm-shutdown.c +index d8757a8..4c483a7 100644 +--- a/xfce4-session/xfsm-shutdown.c ++++ b/xfce4-session/xfsm-shutdown.c +@@ -66,10 +66,13 @@ + #include + #include + #include +-#include + #include + +- ++#ifdef HAVE_SYSTEMD ++#include ++#else ++#include ++#endif + + static void xfsm_shutdown_finalize (GObject *object); + static void xfsm_shutdown_sudo_free (XfsmShutdown *shutdown); +@@ -93,7 +96,11 @@ struct _XfsmShutdown + { + GObject __parent__; + ++#ifdef HAVE_SYSTEMD ++ XfsmSystemd *systemd; ++#else + XfsmConsolekit *consolekit; ++#endif + XfsmUPower *upower; + + /* kiosk settings */ +@@ -131,7 +138,11 @@ xfsm_shutdown_init (XfsmShutdown *shutdown) + { + XfceKiosk *kiosk; + ++#ifdef HAVE_SYSTEMD ++ shutdown->systemd = xfsm_systemd_get (); ++#else + shutdown->consolekit = xfsm_consolekit_get (); ++#endif + shutdown->upower = xfsm_upower_get (); + shutdown->helper_state = SUDO_NOT_INITIAZED; + shutdown->helper_require_password = FALSE; +@@ -150,7 +161,11 @@ xfsm_shutdown_finalize (GObject *object) + { + XfsmShutdown *shutdown = XFSM_SHUTDOWN (object); + ++#ifdef HAVE_SYSTEMD ++ g_object_unref (G_OBJECT (shutdown->systemd)); ++#else + g_object_unref (G_OBJECT (shutdown->consolekit)); ++#endif + g_object_unref (G_OBJECT (shutdown->upower)); + + /* close down helper */ +@@ -641,7 +656,11 @@ xfsm_shutdown_try_restart (XfsmShutdown *shutdown, + if (shutdown->helper_state == SUDO_AVAILABLE) + return xfsm_shutdown_sudo_try_action (shutdown, XFSM_SHUTDOWN_RESTART, error); + else ++#ifdef HAVE_SYSTEMD ++ return xfsm_systemd_try_restart (shutdown->systemd, error); ++#else + return xfsm_consolekit_try_restart (shutdown->consolekit, error); ++#endif + } + + +@@ -658,7 +677,11 @@ xfsm_shutdown_try_shutdown (XfsmShutdown *shutdown, + if (shutdown->helper_state == SUDO_AVAILABLE) + return xfsm_shutdown_sudo_try_action (shutdown, XFSM_SHUTDOWN_SHUTDOWN, error); + else ++#ifdef HAVE_SYSTEMD ++ return xfsm_systemd_try_shutdown (shutdown->systemd, error); ++#else + return xfsm_consolekit_try_shutdown (shutdown->consolekit, error); ++#endif + } + + +@@ -698,7 +721,11 @@ xfsm_shutdown_can_restart (XfsmShutdown *shutdown, + return TRUE; + } + ++#ifdef HAVE_SYSTEMD ++ if (xfsm_systemd_can_restart (shutdown->systemd, can_restart, error)) ++#else + if (xfsm_consolekit_can_restart (shutdown->consolekit, can_restart, error)) ++#endif + return TRUE; + + if (xfsm_shutdown_sudo_init (shutdown, error)) +@@ -725,7 +752,11 @@ xfsm_shutdown_can_shutdown (XfsmShutdown *shutdown, + return TRUE; + } + ++#ifdef HAVE_SYSTEMD ++ if (xfsm_systemd_can_shutdown (shutdown->systemd, can_shutdown, error)) ++#else + if (xfsm_consolekit_can_shutdown (shutdown->consolekit, can_shutdown, error)) ++#endif + return TRUE; + + if (xfsm_shutdown_sudo_init (shutdown, error)) +diff --git a/xfce4-session/xfsm-systemd.c b/xfce4-session/xfsm-systemd.c +new file mode 100644 +index 0000000..7bdd39d +--- /dev/null ++++ b/xfce4-session/xfsm-systemd.c +@@ -0,0 +1,229 @@ ++/*- ++ * Copyright (C) 2012 Christian Hesse ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2, or (at your option) ++ * any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, ++ * MA 02110-1301 USA. ++ */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++ ++#include ++ ++ ++ ++#define SYSTEMD_DBUS_NAME "org.freedesktop.login1" ++#define SYSTEMD_DBUS_PATH "/org/freedesktop/login1" ++#define SYSTEMD_DBUS_INTERFACE "org.freedesktop.login1.Manager" ++#define SYSTEMD_REBOOT_ACTION "Reboot" ++#define SYSTEMD_POWEROFF_ACTION "PowerOff" ++#define SYSTEMD_REBOOT_TEST "org.freedesktop.login1.reboot" ++#define SYSTEMD_POWEROFF_TEST "org.freedesktop.login1.power-off" ++ ++ ++ ++static void xfsm_systemd_finalize (GObject *object); ++ ++ ++ ++struct _XfsmSystemdClass ++{ ++ GObjectClass __parent__; ++}; ++ ++struct _XfsmSystemd ++{ ++ GObject __parent__; ++ ++ PolkitAuthority *authority; ++ PolkitSubject *subject; ++}; ++ ++ ++ ++G_DEFINE_TYPE (XfsmSystemd, xfsm_systemd, G_TYPE_OBJECT) ++ ++ ++ ++static void ++xfsm_systemd_class_init (XfsmSystemdClass *klass) ++{ ++ GObjectClass *gobject_class; ++ ++ gobject_class = G_OBJECT_CLASS (klass); ++ gobject_class->finalize = xfsm_systemd_finalize; ++} ++ ++ ++ ++static void ++xfsm_systemd_init (XfsmSystemd *systemd) ++{ ++ systemd->authority = polkit_authority_get_sync (NULL, NULL); ++ systemd->subject = polkit_unix_process_new (getpid()); ++} ++ ++ ++ ++static void ++xfsm_systemd_finalize (GObject *object) ++{ ++ XfsmSystemd *systemd = XFSM_SYSTEMD (object); ++ ++ g_object_unref (G_OBJECT (systemd->authority)); ++ g_object_unref (G_OBJECT (systemd->subject)); ++ ++ (*G_OBJECT_CLASS (xfsm_systemd_parent_class)->finalize) (object); ++} ++ ++ ++static gboolean ++xfsm_systemd_can_method (XfsmSystemd *systemd, ++ gboolean *can_method, ++ const gchar *method, ++ GError **error) ++{ ++ PolkitAuthorizationResult *res; ++ GError *local_error = NULL; ++ ++ *can_method = FALSE; ++ ++ res = polkit_authority_check_authorization_sync (systemd->authority, ++ systemd->subject, ++ method, ++ NULL, ++ POLKIT_CHECK_AUTHORIZATION_FLAGS_NONE, ++ NULL, ++ &local_error); ++ ++ if (res == NULL) ++ { ++ g_propagate_error (error, local_error); ++ return FALSE; ++ } ++ ++ *can_method = polkit_authorization_result_get_is_authorized (res) ++ || polkit_authorization_result_get_is_challenge (res); ++ ++ g_object_unref (G_OBJECT (res)); ++ ++ return TRUE; ++} ++ ++ ++ ++static gboolean ++xfsm_systemd_try_method (XfsmSystemd *systemd, ++ const gchar *method, ++ GError **error) ++{ ++ GDBusConnection *bus; ++ GError *local_error = NULL; ++ ++ bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, error); ++ if (G_UNLIKELY (bus == NULL)) ++ return FALSE; ++ ++ g_dbus_connection_call_sync (bus, ++ SYSTEMD_DBUS_NAME, ++ SYSTEMD_DBUS_PATH, ++ SYSTEMD_DBUS_INTERFACE, ++ method, ++ g_variant_new ("(b)", TRUE), ++ NULL, 0, G_MAXINT, NULL, ++ &local_error); ++ ++ g_object_unref (G_OBJECT (bus)); ++ ++ if (local_error != NULL) ++ { ++ g_propagate_error (error, local_error); ++ return FALSE; ++ } ++ ++ return TRUE; ++} ++ ++ ++ ++XfsmSystemd * ++xfsm_systemd_get (void) ++{ ++ static XfsmSystemd *object = NULL; ++ ++ if (G_LIKELY (object != NULL)) ++ { ++ g_object_ref (G_OBJECT (object)); ++ } ++ else ++ { ++ object = g_object_new (XFSM_TYPE_SYSTEMD, NULL); ++ g_object_add_weak_pointer (G_OBJECT (object), (gpointer) &object); ++ } ++ ++ return object; ++} ++ ++ ++ ++gboolean ++xfsm_systemd_try_restart (XfsmSystemd *systemd, ++ GError **error) ++{ ++ return xfsm_systemd_try_method (systemd, ++ SYSTEMD_REBOOT_ACTION, ++ error); ++} ++ ++ ++ ++gboolean ++xfsm_systemd_try_shutdown (XfsmSystemd *systemd, ++ GError **error) ++{ ++ return xfsm_systemd_try_method (systemd, ++ SYSTEMD_POWEROFF_ACTION, ++ error); ++} ++ ++ ++ ++gboolean ++xfsm_systemd_can_restart (XfsmSystemd *systemd, ++ gboolean *can_restart, ++ GError **error) ++{ ++ return xfsm_systemd_can_method (systemd, ++ can_restart, ++ SYSTEMD_REBOOT_TEST, ++ error); ++} ++ ++ ++ ++gboolean ++xfsm_systemd_can_shutdown (XfsmSystemd *systemd, ++ gboolean *can_shutdown, ++ GError **error) ++{ ++ return xfsm_systemd_can_method (systemd, ++ can_shutdown, ++ SYSTEMD_POWEROFF_TEST, ++ error); ++} +diff --git a/xfce4-session/xfsm-systemd.h b/xfce4-session/xfsm-systemd.h +new file mode 100644 +index 0000000..8223622 +--- /dev/null ++++ b/xfce4-session/xfsm-systemd.h +@@ -0,0 +1,55 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- ++ * ++ * Copyright (C) 2012 Christian Hesse ++ * ++ * Licensed under the GNU General Public License Version 2 ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ */ ++ ++#ifndef __XFSM_SYSTEMD_H__ ++#define __XFSM_SYSTEMD_H__ ++ ++typedef struct _XfsmSystemdClass XfsmSystemdClass; ++typedef struct _XfsmSystemd XfsmSystemd; ++ ++#define XFSM_TYPE_SYSTEMD (xfsm_systemd_get_type ()) ++#define XFSM_SYSTEMD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFSM_TYPE_SYSTEMD, XfsmSystemd)) ++#define XFSM_SYSTEMD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFSM_TYPE_SYSTEMD, XfsmSystemdClass)) ++#define XFSM_IS_SYSTEMD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFSM_TYPE_SYSTEMD)) ++#define XFSM_IS_SYSTEMD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFSM_TYPE_SYSTEMD)) ++#define XFSM_SYSTEMD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFSM_TYPE_SYSTEMD, XfsmSystemdClass)) ++ ++GType xfsm_systemd_get_type (void) G_GNUC_CONST; ++ ++XfsmSystemd *xfsm_systemd_get (void); ++ ++gboolean xfsm_systemd_try_restart (XfsmSystemd *systemd, ++ GError **error); ++ ++gboolean xfsm_systemd_try_shutdown (XfsmSystemd *systemd, ++ GError **error); ++ ++gboolean xfsm_systemd_can_restart (XfsmSystemd *systemd, ++ gboolean *can_restart, ++ GError **error); ++ ++gboolean xfsm_systemd_can_shutdown (XfsmSystemd *systemd, ++ gboolean *can_shutdown, ++ GError **error); ++ ++G_END_DECLS ++ ++#endif /* __XFSM_SYSTEMD_H__ */ +-- +cgit v0.9.1 diff --git a/pkgs/desktops/xfce/default.nix b/pkgs/desktops/xfce/default.nix index b63a101b84f8..e5daaca9d528 100644 --- a/pkgs/desktops/xfce/default.nix +++ b/pkgs/desktops/xfce/default.nix @@ -35,7 +35,7 @@ xfce_self = rec { # the lines are very long but it seems better than the even-od xfwm4 = callPackage ./core/xfwm4.nix { }; xfce4_appfinder = callPackage ./core/xfce4-appfinder.nix { }; - + xfce4_dev_tools = callPackage ./core/xfce4-dev-tools.nix { }; # only if autotools are needed #### APPLICATIONS from "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2" -- cgit 1.4.1