From e979d7ad2f6fb2e5e7235be3100eb369572fcba5 Mon Sep 17 00:00:00 2001 From: Vladimír Čunát Date: Thu, 21 Feb 2013 12:16:51 +0100 Subject: vlada/xfce MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Major Xfce refactoring, also adding versions 4.10.* Signed-off-by: Vladimír Čunát --- pkgs/desktops/xfce/applications/gigolo.nix | 25 ++++ pkgs/desktops/xfce/applications/mousepad.nix | 25 ++++ pkgs/desktops/xfce/applications/ristretto.nix | 28 ++++ pkgs/desktops/xfce/applications/terminal.nix | 23 ++++ pkgs/desktops/xfce/applications/xfce4-mixer.nix | 42 ++++++ pkgs/desktops/xfce/applications/xfce4-notifyd.nix | 28 ++++ .../xfce/applications/xfce4-taskmanager.nix | 21 +++ pkgs/desktops/xfce/art/xfce4-icon-theme.nix | 22 ++++ pkgs/desktops/xfce/core/exo.nix | 23 ++++ pkgs/desktops/xfce/core/garcon.nix | 21 +++ pkgs/desktops/xfce/core/gtk-xfce-engine.nix | 24 ++++ pkgs/desktops/xfce/core/libxfce4ui.nix | 34 +++++ pkgs/desktops/xfce/core/libxfce4util.nix | 21 +++ pkgs/desktops/xfce/core/libxfcegui4.nix | 35 +++++ pkgs/desktops/xfce/core/thunar-volman.nix | 30 +++++ pkgs/desktops/xfce/core/thunar.nix | 35 +++++ pkgs/desktops/xfce/core/tumbler.nix | 21 +++ pkgs/desktops/xfce/core/xfce-utils.nix | 20 +++ pkgs/desktops/xfce/core/xfce4-appfinder.nix | 27 ++++ pkgs/desktops/xfce/core/xfce4-panel-datadir.patch | 24 ++++ pkgs/desktops/xfce/core/xfce4-panel.nix | 35 +++++ pkgs/desktops/xfce/core/xfce4-power-manager.nix | 28 ++++ pkgs/desktops/xfce/core/xfce4-session.nix | 33 +++++ pkgs/desktops/xfce/core/xfce4-settings.nix | 31 +++++ pkgs/desktops/xfce/core/xfconf.nix | 23 ++++ pkgs/desktops/xfce/core/xfdesktop.nix | 30 +++++ pkgs/desktops/xfce/core/xfwm4.nix | 31 +++++ pkgs/desktops/xfce/default.nix | 71 ++++++++++ .../xfce/panel-plugins/xfce4-cpufreq-plugin.nix | 22 ++++ .../xfce/panel-plugins/xfce4-systemload-plugin.nix | 21 +++ pkgs/desktops/xfce/support/gvfs.nix | 22 ++++ pkgs/desktops/xfce/support/libgdu-only.patch | 144 +++++++++++++++++++++ pkgs/desktops/xfce/support/libgdu.nix | 34 +++++ 33 files changed, 1054 insertions(+) create mode 100644 pkgs/desktops/xfce/applications/gigolo.nix create mode 100644 pkgs/desktops/xfce/applications/mousepad.nix create mode 100644 pkgs/desktops/xfce/applications/ristretto.nix create mode 100644 pkgs/desktops/xfce/applications/terminal.nix create mode 100644 pkgs/desktops/xfce/applications/xfce4-mixer.nix create mode 100644 pkgs/desktops/xfce/applications/xfce4-notifyd.nix create mode 100644 pkgs/desktops/xfce/applications/xfce4-taskmanager.nix create mode 100644 pkgs/desktops/xfce/art/xfce4-icon-theme.nix create mode 100644 pkgs/desktops/xfce/core/exo.nix create mode 100644 pkgs/desktops/xfce/core/garcon.nix create mode 100644 pkgs/desktops/xfce/core/gtk-xfce-engine.nix create mode 100644 pkgs/desktops/xfce/core/libxfce4ui.nix create mode 100644 pkgs/desktops/xfce/core/libxfce4util.nix create mode 100644 pkgs/desktops/xfce/core/libxfcegui4.nix create mode 100644 pkgs/desktops/xfce/core/thunar-volman.nix create mode 100644 pkgs/desktops/xfce/core/thunar.nix create mode 100644 pkgs/desktops/xfce/core/tumbler.nix create mode 100644 pkgs/desktops/xfce/core/xfce-utils.nix create mode 100644 pkgs/desktops/xfce/core/xfce4-appfinder.nix create mode 100644 pkgs/desktops/xfce/core/xfce4-panel-datadir.patch create mode 100644 pkgs/desktops/xfce/core/xfce4-panel.nix create mode 100644 pkgs/desktops/xfce/core/xfce4-power-manager.nix create mode 100644 pkgs/desktops/xfce/core/xfce4-session.nix create mode 100644 pkgs/desktops/xfce/core/xfce4-settings.nix create mode 100644 pkgs/desktops/xfce/core/xfconf.nix create mode 100644 pkgs/desktops/xfce/core/xfdesktop.nix create mode 100644 pkgs/desktops/xfce/core/xfwm4.nix create mode 100644 pkgs/desktops/xfce/default.nix create mode 100644 pkgs/desktops/xfce/panel-plugins/xfce4-cpufreq-plugin.nix create mode 100644 pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin.nix create mode 100644 pkgs/desktops/xfce/support/gvfs.nix create mode 100644 pkgs/desktops/xfce/support/libgdu-only.patch create mode 100644 pkgs/desktops/xfce/support/libgdu.nix (limited to 'pkgs/desktops/xfce') diff --git a/pkgs/desktops/xfce/applications/gigolo.nix b/pkgs/desktops/xfce/applications/gigolo.nix new file mode 100644 index 00000000000..b54ea8cc623 --- /dev/null +++ b/pkgs/desktops/xfce/applications/gigolo.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchurl, python, gettext, intltool, pkgconfig, gtk, gvfs }: + +stdenv.mkDerivation rec { + p_name = "gigolo"; + ver_maj = "0.4"; + ver_min = "1"; + + src = fetchurl { + url = "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2"; + sha256 = "1y8p9bbv1a4qgbxl4vn6zbag3gb7gl8qj75cmhgrrw9zrvqbbww2"; + }; + name = "${p_name}-${ver_maj}.${ver_min}"; + + buildInputs = [ python gettext intltool gtk pkgconfig gvfs]; + + preConfigure = '' + sed -i "waf" -e "1 s^.*/env[ ]*python^#!${python}/bin/python^"; + ''; + + meta = { + homepage = "http://goodies.xfce.org/projects/applications/${p_name}"; + description = "A frontend to easily manage connections to remote filesystems"; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/desktops/xfce/applications/mousepad.nix b/pkgs/desktops/xfce/applications/mousepad.nix new file mode 100644 index 00000000000..9bc9634469c --- /dev/null +++ b/pkgs/desktops/xfce/applications/mousepad.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, libxfcegui4 +, gtk, gtksourceview, dbus, dbus_glib }: + +stdenv.mkDerivation rec { + p_name = "mousepad"; + ver_maj = "0.3"; + ver_min = "0"; + + src = fetchurl { + url = "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2"; + sha256 = "0v84zwhjv2xynvisn5vmp7dbxfj4l4258m82ks7hn3adk437bwhh"; + }; + name = "${p_name}-${ver_maj}.${ver_min}"; + + buildInputs = [ + pkgconfig intltool libxfce4util libxfcegui4 + gtk gtksourceview dbus dbus_glib + ]; + + meta = { + homepage = http://www.xfce.org/; + description = "A simple text editor for Xfce"; + license = "GPLv2+"; + }; +} diff --git a/pkgs/desktops/xfce/applications/ristretto.nix b/pkgs/desktops/xfce/applications/ristretto.nix new file mode 100644 index 00000000000..a42e882710a --- /dev/null +++ b/pkgs/desktops/xfce/applications/ristretto.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchurl, pkgconfig, intltool, libexif, gtk +, exo, dbus_glib, libxfce4util, libxfce4ui, xfconf }: + +stdenv.mkDerivation rec { + p_name = "ristretto"; + ver_maj = "0.6"; + ver_min = "3"; + + src = fetchurl { + url = "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2"; + sha256 = "0y9d8w1plwp4vmxs44y8k8x15i0k0xln89k6jndhv6lf57g1cs1b"; + }; + name = "${p_name}-${ver_maj}.${ver_min}"; + + buildInputs = + [ pkgconfig intltool libexif gtk dbus_glib exo libxfce4util + libxfce4ui xfconf + ]; + preFixup = "rm $out/share/icons/hicolor/icon-theme.cache"; + + meta = { + homepage = "http://goodies.xfce.org/projects/applications/${p_name}"; + description = "A fast and lightweight picture-viewer for the Xfce desktop environment"; + license = "GPLv2+"; + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.eelco ]; + }; +} diff --git a/pkgs/desktops/xfce/applications/terminal.nix b/pkgs/desktops/xfce/applications/terminal.nix new file mode 100644 index 00000000000..0a61e027356 --- /dev/null +++ b/pkgs/desktops/xfce/applications/terminal.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchurl, pkgconfig, intltool, ncurses, gtk, vte, dbus_glib +, exo, libxfce4util, libxfce4ui +}: + +stdenv.mkDerivation rec { + p_name = "xfce4-terminal"; + ver_maj = "0.6"; + ver_min = "1"; + + src = fetchurl { + url = "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2"; + sha256 = "1j6lpkq952mrl5p24y88f89wn9g0namvywhma639xxsswlkn8d31"; + }; + name = "${p_name}-${ver_maj}.${ver_min}"; + + buildInputs = [ pkgconfig intltool exo gtk vte libxfce4util ncurses dbus_glib libxfce4ui ]; + + meta = { + homepage = http://www.xfce.org/projects/terminal; + description = "A modern terminal emulator primarily for the Xfce desktop environment"; + license = "GPLv2+"; + }; +} diff --git a/pkgs/desktops/xfce/applications/xfce4-mixer.nix b/pkgs/desktops/xfce/applications/xfce4-mixer.nix new file mode 100644 index 00000000000..972442dc56b --- /dev/null +++ b/pkgs/desktops/xfce/applications/xfce4-mixer.nix @@ -0,0 +1,42 @@ +{ stdenv, fetchurl, pkgconfig, intltool, glib, gstreamer, gst_plugins_base, gtk +, libxfce4util, libxfce4ui, xfce4panel, xfconf, libunique?null }: + +let + # The usual Gstreamer plugins package has a zillion dependencies + # that we don't need for a simple mixer, so build a minimal package. + gst_plugins_minimal = gst_plugins_base.override { + minimalDeps = true; + }; + +in + +stdenv.mkDerivation rec { + p_name = "xfce4-mixer"; + ver_maj = "4.10"; + ver_min = "0"; + + src = fetchurl { + url = "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2"; + sha256 = "1pnsd00583l7p5d80rxbh58brzy3jnccwikbbbm730a33c08kid8"; + }; + name = "${p_name}-${ver_maj}.${ver_min}"; + + buildInputs = + [ pkgconfig intltool glib gstreamer gst_plugins_minimal gtk + libxfce4util libxfce4ui xfce4panel xfconf libunique + ]; + + postInstall = + '' + mkdir -p $out/nix-support + echo ${gst_plugins_minimal} > $out/nix-support/propagated-user-env-packages + ''; + + meta = { + homepage = http://www.xfce.org/projects/xfce4-mixer; # referenced but inactive + description = "A volume control application for the Xfce desktop environment"; + license = "GPLv2+"; + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.eelco ]; + }; +} diff --git a/pkgs/desktops/xfce/applications/xfce4-notifyd.nix b/pkgs/desktops/xfce/applications/xfce4-notifyd.nix new file mode 100644 index 00000000000..62c5bbe5220 --- /dev/null +++ b/pkgs/desktops/xfce/applications/xfce4-notifyd.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchurl, pkgconfig, intltool +, gtk , libxfce4util, libxfce4ui, xfconf }: + +stdenv.mkDerivation rec { + p_name = "xfce4-notifyd"; + ver_maj = "0.2"; + ver_min = "2"; + + src = fetchurl { + url = "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2"; + sha256 = "0s4ilc36sl5k5mg5727rmqims1l3dy5pwg6dk93wyjqnqbgnhvmn"; + }; + name = "${p_name}-${ver_maj}.${ver_min}"; + + buildInputs = [ pkgconfig intltool gtk libxfce4util libxfce4ui xfconf ]; + + preFixup = '' + rm $out/share/icons/hicolor/icon-theme.cache + # to be able to run the daemon we need it in PATH + cp -l $out/lib/xfce4/notifyd/xfce4-notifyd $out/bin + ''; + + meta = { + homepage = "http://goodies.xfce.org/projects/applications/${p_name}"; + description = "Notification daemon for Xfce"; + license = "GPLv2+"; + }; +} diff --git a/pkgs/desktops/xfce/applications/xfce4-taskmanager.nix b/pkgs/desktops/xfce/applications/xfce4-taskmanager.nix new file mode 100644 index 00000000000..baef6872848 --- /dev/null +++ b/pkgs/desktops/xfce/applications/xfce4-taskmanager.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, intltool, pkgconfig, gtk, libwnck }: + +stdenv.mkDerivation rec { + p_name = "xfce4-taskmanager"; + ver_maj = "1.0"; + ver_min = "0"; + + src = fetchurl { + url = "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2"; + sha256 = "1vm9gw7j4ngjlpdhnwdf7ifx6xrrn21011almx2vwidhk2f9zvy0"; + }; + name = "${p_name}-${ver_maj}.${ver_min}"; + + buildInputs = [ intltool pkgconfig gtk libwnck ]; + + meta = { + homepage = "http://goodies.xfce.org/projects/applications/${p_name}"; + description = "Easy to use task manager for Xfce"; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/desktops/xfce/art/xfce4-icon-theme.nix b/pkgs/desktops/xfce/art/xfce4-icon-theme.nix new file mode 100644 index 00000000000..1bd257991c9 --- /dev/null +++ b/pkgs/desktops/xfce/art/xfce4-icon-theme.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl, pkgconfig, intltool, gtk }: + +stdenv.mkDerivation rec { + p_name = "xfce4-icon-theme"; + ver_maj = "4.4"; + ver_min = "3"; + + src = fetchurl { + url = "mirror://xfce/src/art/${p_name}/${ver_maj}/${name}.tar.bz2"; + sha256 = "1yk6rx3zr9grm4jwpjvqdkl13pisy7qn1wm5cqzmd2kbsn96cy6l"; + }; + name = "${p_name}-${ver_maj}.${ver_min}"; + + buildInputs = [ pkgconfig intltool gtk ]; + + meta = { + homepage = http://www.xfce.org/; + description = "Icons for Xfce"; + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.eelco ]; + }; +} diff --git a/pkgs/desktops/xfce/core/exo.nix b/pkgs/desktops/xfce/core/exo.nix new file mode 100644 index 00000000000..3131ea679b0 --- /dev/null +++ b/pkgs/desktops/xfce/core/exo.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchurl, pkgconfig, intltool, URI, glib, gtk, libxfce4ui, libxfce4util }: + +stdenv.mkDerivation rec { + p_name = "exo"; + ver_maj = "0.10"; + ver_min = "2"; + + src = fetchurl { + url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2"; + sha256 = "1kknxiz703q4snmry65ajm26jwjslbgpzdal6bd090m3z25q51dk"; + }; + name = "${p_name}-${ver_maj}.${ver_min}"; + + buildInputs = [ pkgconfig intltool URI glib gtk libxfce4ui libxfce4util ]; + + preFixup = "rm $out/share/icons/hicolor/icon-theme.cache"; + + meta = { + homepage = "http://www.xfce.org/projects/${p_name}"; + description = "Application library for the Xfce desktop environment"; + license = "GPLv2+"; + }; +} diff --git a/pkgs/desktops/xfce/core/garcon.nix b/pkgs/desktops/xfce/core/garcon.nix new file mode 100644 index 00000000000..8e87212c7f7 --- /dev/null +++ b/pkgs/desktops/xfce/core/garcon.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, pkgconfig, intltool, glib, libxfce4util }: + +stdenv.mkDerivation rec { + p_name = "garcon"; + ver_maj = "0.2"; + ver_min = "0"; + + src = fetchurl { + url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2"; + sha256 = "0v7pkvxcayi86z4f173z5l7w270f3g369sa88z59w0y0p7ns7ph2"; + }; + name = "${p_name}-${ver_maj}.${ver_min}"; + + buildInputs = [ pkgconfig intltool glib libxfce4util ]; + + meta = { + homepage = http://www.xfce.org/; + description = "Xfce menu support library"; + license = "GPLv2+"; + }; +} diff --git a/pkgs/desktops/xfce/core/gtk-xfce-engine.nix b/pkgs/desktops/xfce/core/gtk-xfce-engine.nix new file mode 100644 index 00000000000..a97a11c6f12 --- /dev/null +++ b/pkgs/desktops/xfce/core/gtk-xfce-engine.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchurl, pkgconfig, intltool, gtk }: + +stdenv.mkDerivation rec { + p_name = "gtk-xfce-engine"; + ver_maj = "3.0"; + ver_min = "1"; + + src = fetchurl { + url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2"; + sha256 = "0vd0ly81540f9133abza56mlqqx1swp0j70ll8kf948sva0wy0zb"; + }; + name = "${p_name}-${ver_maj}.${ver_min}"; + + #TODO: gtk3 + buildInputs = [ pkgconfig intltool gtk ]; + + meta = { + homepage = http://www.xfce.org/; + description = "GTK+ theme engine for Xfce"; + license = "GPLv2+"; + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.eelco ]; + }; +} diff --git a/pkgs/desktops/xfce/core/libxfce4ui.nix b/pkgs/desktops/xfce/core/libxfce4ui.nix new file mode 100644 index 00000000000..4f0e7062e45 --- /dev/null +++ b/pkgs/desktops/xfce/core/libxfce4ui.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, xfconf +, libglade, libstartup_notification }: + +stdenv.mkDerivation rec { + p_name = "libxfce4ui"; + ver_maj = "4.10"; + ver_min = "0"; + + src = fetchurl { + url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2"; + sha256 = "1qm31s6568cz4c8rl9fsfq0xmf7pldxm0ki62gx1cpybihlgmfd2"; + }; + name = "${p_name}-${ver_maj}.${ver_min}"; + + #TODO: gladeui + # Install into our own prefix instead. + preConfigure = + '' + configureFlags="--with-libglade-module-path=$out/lib/libglade/2.0" + ''; + + buildInputs = + [ pkgconfig intltool gtk libxfce4util xfconf libglade + libstartup_notification + ]; + + enableParallelBuilding = true; + + meta = { + homepage = http://www.xfce.org/; + description = "Basic GUI library for Xfce"; + license = "LGPLv2+"; + }; +} diff --git a/pkgs/desktops/xfce/core/libxfce4util.nix b/pkgs/desktops/xfce/core/libxfce4util.nix new file mode 100644 index 00000000000..88874722b7d --- /dev/null +++ b/pkgs/desktops/xfce/core/libxfce4util.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, pkgconfig, glib, intltool }: + +stdenv.mkDerivation rec { + p_name = "libxfce4util"; + ver_maj = "4.10"; + ver_min = "0"; + + src = fetchurl { + url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2"; + sha256 = "13k0wwbbqvdmbj4xmk4nxdlgvrdgr5y6r3dk380mzfw053hzwy89"; + }; + name = "${p_name}-${ver_maj}.${ver_min}"; + + buildInputs = [ pkgconfig glib intltool ]; + + meta = { + homepage = http://www.xfce.org/; + description = "Basic utility non-GUI functions for Xfce"; + license = "bsd"; + }; +} diff --git a/pkgs/desktops/xfce/core/libxfcegui4.nix b/pkgs/desktops/xfce/core/libxfcegui4.nix new file mode 100644 index 00000000000..e30fcf22357 --- /dev/null +++ b/pkgs/desktops/xfce/core/libxfcegui4.nix @@ -0,0 +1,35 @@ +{ stdenv, fetchurl, pkgconfig, intltool, gtk +, libxfce4util, xfconf, libglade, libstartup_notification }: + +stdenv.mkDerivation rec { + p_name = "libxfcegui4"; + ver_maj = "4.10"; + ver_min = "0"; + + src = fetchurl { + url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2"; + sha256 = "0cs5im0ib0cmr1lhr5765yliqjfyxvk4kwy8h1l8bn3mj6bzk0ib"; + }; + name = "${p_name}-${ver_maj}.${ver_min}"; + + #TODO: gladeui + # By default, libxfcegui4 tries to install into libglade's prefix. + # Install into our own prefix instead. + preConfigure = + '' + configureFlags="--with-libglade-module-path=$out/lib/libglade/2.0" + ''; + #NOTE: missing keyboard library support is OK according to the mailing-list + + buildInputs = + [ pkgconfig intltool gtk libxfce4util xfconf libglade + libstartup_notification + ]; + preFixup = "rm $out/share/icons/hicolor/icon-theme.cache"; + + meta = { + homepage = http://www.xfce.org/; + description = "Basic GUI library for Xfce"; + license = "LGPLv2+"; + }; +} diff --git a/pkgs/desktops/xfce/core/thunar-volman.nix b/pkgs/desktops/xfce/core/thunar-volman.nix new file mode 100644 index 00000000000..94fc0e369e5 --- /dev/null +++ b/pkgs/desktops/xfce/core/thunar-volman.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchurl, pkgconfig, intltool, exo, gtk, libxfce4util, libxfce4ui +, xfconf, udev, libnotify }: + +stdenv.mkDerivation rec { + p_name = "thunar-volman"; + ver_maj = "0.8"; + ver_min = "0"; + + src = fetchurl { + url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2"; + sha256 = "1sxw09fwyn5sr6ipxk7r8gqjyf41c2v7vkgl0l6mhy5mcb48f27z"; + }; + name = "${p_name}-${ver_maj}.${ver_min}"; + + buildInputs = + [ pkgconfig intltool exo gtk udev libxfce4ui libxfce4util + xfconf libnotify + ]; + preFixup = "rm $out/share/icons/hicolor/icon-theme.cache"; + + enableParallelBuilding = true; + + meta = { + homepage = http://goodies.xfce.org/projects/thunar-plugins/thunar-volman; + description = "Thunar extension for automatic management of removable drives and media"; + license = "GPLv2+"; + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.eelco ]; + }; +} diff --git a/pkgs/desktops/xfce/core/thunar.nix b/pkgs/desktops/xfce/core/thunar.nix new file mode 100644 index 00000000000..848fca345c5 --- /dev/null +++ b/pkgs/desktops/xfce/core/thunar.nix @@ -0,0 +1,35 @@ +{ stdenv, fetchurl, pkgconfig, intltool +, gtk, dbus_glib, libstartup_notification, libnotify, libexif, pcre, udev +, exo, libxfce4util, xfconf, xfce4panel +}: + +stdenv.mkDerivation rec { + p_name = "thunar"; + ver_maj = "1.6"; + ver_min = "2"; + + src = fetchurl { + url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/Thunar-${ver_maj}.${ver_min}.tar.bz2"; + sha256 = "11dx38rvkfbp91pxrprymxhimsm90gvizp277x9s5rwnwcm1ggbx"; + }; + name = "${p_name}-${ver_maj}.${ver_min}"; + + buildInputs = [ + pkgconfig intltool + gtk dbus_glib libstartup_notification libnotify libexif pcre udev + exo libxfce4util xfconf xfce4panel + ]; + # TODO: optionality? + + enableParallelBuilding = true; + + preFixup = "rm $out/share/icons/hicolor/icon-theme.cache"; + + meta = { + homepage = http://thunar.xfce.org/; + description = "Xfce file manager"; + license = "GPLv2+"; + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.eelco ]; + }; +} diff --git a/pkgs/desktops/xfce/core/tumbler.nix b/pkgs/desktops/xfce/core/tumbler.nix new file mode 100644 index 00000000000..a1da730b35b --- /dev/null +++ b/pkgs/desktops/xfce/core/tumbler.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, pkgconfig, intltool, dbus_glib, gdk_pixbuf }: + +stdenv.mkDerivation rec { + p_name = "tumbler"; + ver_maj = "0.1"; + ver_min = "27"; + + src = fetchurl { + url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2"; + sha256 = "0s9qj99b81asmlqa823nzykq8g6p9azcp2niak67y9bp52wv6q2c"; + }; + name = "${p_name}-${ver_maj}.${ver_min}"; + + buildInputs = [ pkgconfig intltool dbus_glib gdk_pixbuf ]; + + meta = { + homepage = http://git.xfce.org/xfce/tumbler/; + description = "A D-Bus thumbnailer service"; + license = "GPLv2"; + }; +} diff --git a/pkgs/desktops/xfce/core/xfce-utils.nix b/pkgs/desktops/xfce/core/xfce-utils.nix new file mode 100644 index 00000000000..625780adb31 --- /dev/null +++ b/pkgs/desktops/xfce/core/xfce-utils.nix @@ -0,0 +1,20 @@ +{ v, h, stdenv, fetchXfce, pkgconfig, intltool, gtk, libxfce4util, libxfce4ui, dbus_glib }: + +stdenv.mkDerivation rec { + name = "xfce-utils-${v}"; + src = fetchXfce.core name h; + + configureFlags = "--with-xsession-prefix=$(out)/share/xsessions --with-vendor-info=NixOS.org"; + + buildInputs = [ pkgconfig intltool gtk libxfce4util libxfce4ui dbus_glib ]; + + preFixup = "rm $out/share/icons/hicolor/icon-theme.cache"; + + meta = { + homepage = http://www.xfce.org/projects/xfce-utils; + description = "Utilities and scripts for Xfce"; + license = "GPLv2+"; + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.eelco ]; + }; +} diff --git a/pkgs/desktops/xfce/core/xfce4-appfinder.nix b/pkgs/desktops/xfce/core/xfce4-appfinder.nix new file mode 100644 index 00000000000..b4c9c790ac1 --- /dev/null +++ b/pkgs/desktops/xfce/core/xfce4-appfinder.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchurl, pkgconfig, intltool, glib, gtk, libxfce4util +, libxfce4ui, garcon, xfconf }: + +stdenv.mkDerivation rec { + p_name = "xfce4-appfinder"; + ver_maj = "4.9"; # no 4.10 (stable) release yet + ver_min = "4"; + + src = fetchurl { + url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2"; + sha256 = "12lgrbd1n50w9n8xkpai98s2aw8vmjasrgypc57sp0x0qafsqaxq"; + }; + name = "${p_name}-${ver_maj}.${ver_min}"; + + buildInputs = + [ pkgconfig intltool glib gtk libxfce4util libxfce4ui garcon xfconf ]; + + enableParallelBuilding = true; + + meta = { + homepage = http://docs.xfce.org/xfce/xfce4-appfinder/; + description = "Xfce application finder, a tool to locate and launch programs on your system"; + license = "GPLv2+"; + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.eelco ]; + }; +} diff --git a/pkgs/desktops/xfce/core/xfce4-panel-datadir.patch b/pkgs/desktops/xfce/core/xfce4-panel-datadir.patch new file mode 100644 index 00000000000..ed9df9ef36f --- /dev/null +++ b/pkgs/desktops/xfce/core/xfce4-panel-datadir.patch @@ -0,0 +1,24 @@ +diff --git a/panel/panel-module-factory.c b/panel/panel-module-factory.c +index 529fe85..8c792b7 100644 +--- a/panel/panel-module-factory.c ++++ b/panel/panel-module-factory.c +@@ -39,6 +39,7 @@ + #include + #include + ++#define DATADIR "/run/current-system/sw/share/xfce4" + #define PANEL_PLUGINS_DATA_DIR (DATADIR G_DIR_SEPARATOR_S "panel" G_DIR_SEPARATOR_S "plugins") + #define PANEL_PLUGINS_DATA_DIR_OLD (DATADIR G_DIR_SEPARATOR_S "panel-plugins") + +diff --git a/panel/panel-module.c b/panel/panel-module.c +index ba39320..519440b 100644 +--- a/panel/panel-module.c ++++ b/panel/panel-module.c +@@ -35,6 +35,7 @@ + #include + #include + ++#define LIBDIR "/run/current-system/sw/lib/xfce4" + #define PANEL_PLUGINS_LIB_DIR (LIBDIR G_DIR_SEPARATOR_S "panel" G_DIR_SEPARATOR_S "plugins") + #define PANEL_PLUGINS_LIB_DIR_OLD (LIBDIR G_DIR_SEPARATOR_S "panel-plugins") + diff --git a/pkgs/desktops/xfce/core/xfce4-panel.nix b/pkgs/desktops/xfce/core/xfce4-panel.nix new file mode 100644 index 00000000000..a026c4664f1 --- /dev/null +++ b/pkgs/desktops/xfce/core/xfce4-panel.nix @@ -0,0 +1,35 @@ +{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, libxfce4ui +, libwnck, exo, garcon, xfconf, libstartup_notification }: + +stdenv.mkDerivation rec { + p_name = "xfce4-panel"; + ver_maj = "4.10"; + ver_min = "0"; + + src = fetchurl { + url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2"; + sha256 = "1f8903nx6ivzircl8d8s9zna4vjgfy0qhjk5d2x19g9bmycgj89k"; + }; + name = "${p_name}-${ver_maj}.${ver_min}"; + + patches = [ ./xfce4-panel-datadir.patch ]; + patchFlags = "-p1"; + + buildInputs = + [ pkgconfig intltool gtk libxfce4util exo libwnck + garcon xfconf libstartup_notification + ]; + propagatedBuildInputs = [ libxfce4ui ]; + + preFixup = "rm $out/share/icons/hicolor/icon-theme.cache"; + + enableParallelBuilding = true; + + meta = { + homepage = http://www.xfce.org/projects/xfce4-panel; + description = "Xfce panel"; + license = "GPLv2+"; + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.eelco ]; + }; +} diff --git a/pkgs/desktops/xfce/core/xfce4-power-manager.nix b/pkgs/desktops/xfce/core/xfce4-power-manager.nix new file mode 100644 index 00000000000..7a9b2596e75 --- /dev/null +++ b/pkgs/desktops/xfce/core/xfce4-power-manager.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchurl, pkgconfig, intltool, gtk, dbus_glib, xfconf +, libxfce4ui, libxfce4util, libnotify, xfce4panel }: + +stdenv.mkDerivation rec { + p_name = "xfce4-power-manager"; + ver_maj = "1.0"; + ver_min = "10"; + + src = fetchurl { + url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2"; + sha256 = "1w120k1sl4s459ijaxkqkba6g1p2sqrf9paljv05wj0wz12bpr40"; + }; + name = "${p_name}-${ver_maj}.${ver_min}"; + + buildInputs = + [ pkgconfig intltool gtk dbus_glib xfconf libxfce4ui libxfce4util + libnotify xfce4panel + ]; + preFixup = "rm $out/share/icons/hicolor/icon-theme.cache"; + + meta = { + homepage = http://goodies.xfce.org/projects/applications/xfce4-power-manager; + description = "A power manager for the Xfce Desktop Environment"; + license = "GPLv2+"; + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.eelco ]; + }; +} diff --git a/pkgs/desktops/xfce/core/xfce4-session.nix b/pkgs/desktops/xfce/core/xfce4-session.nix new file mode 100644 index 00000000000..a8e7e66c705 --- /dev/null +++ b/pkgs/desktops/xfce/core/xfce4-session.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, libxfce4ui, xfce4panel +, libwnck, dbus_glib, xfconf, libglade, xorg }: + +#TODO: gnome stuff: gconf (assistive?), keyring + +stdenv.mkDerivation rec { + p_name = "xfce4-session"; + ver_maj = "4.10"; + ver_min = "0"; + + src = fetchurl { + url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2"; + sha256 = "1kj65jkjhd0ysf0yxsf88wzpyv6n8i8qgd3gb502hf1x9jksk2mv"; + }; + name = "${p_name}-${ver_maj}.${ver_min}"; + + buildInputs = + [ pkgconfig intltool gtk libxfce4util libxfce4ui libwnck dbus_glib + xfconf xfce4panel libglade xorg.iceauth + ]; + + configureFlags = [ "--with-xsession-prefix=$$out" ]; + + preFixup = "rm $out/share/icons/hicolor/icon-theme.cache"; + + meta = { + homepage = http://www.xfce.org/projects/xfce4-session; + description = "Session manager for Xfce"; + license = "GPLv2+"; + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.eelco ]; + }; +} diff --git a/pkgs/desktops/xfce/core/xfce4-settings.nix b/pkgs/desktops/xfce/core/xfce4-settings.nix new file mode 100644 index 00000000000..4cbadaeb54a --- /dev/null +++ b/pkgs/desktops/xfce/core/xfce4-settings.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchurl, pkgconfig, intltool, exo, gtk, libxfce4util, libxfce4ui +, libglade, xfconf, xorg, libwnck, libnotify, libxklavier, garcon }: + +#TODO: optional packages +stdenv.mkDerivation rec { + p_name = "xfce4-settings"; + ver_maj = "4.10"; + ver_min = "0"; + + src = fetchurl { + url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2"; + sha256 = "0zppq747z9lrxyv5zrrvpalq7hb3gfhy9p7qbldisgv7m6dz0hq8"; + }; + name = "${p_name}-${ver_maj}.${ver_min}"; + + buildInputs = + [ pkgconfig intltool exo gtk libxfce4util libxfce4ui libglade + xfconf xorg.libXi xorg.libXcursor libwnck libnotify libxklavier garcon + #gtk libxfce4util libxfcegui4 libwnck dbus_glib + #xfconf libglade xorg.iceauth + ]; + configureFlags = "--enable-pluggable-dialogs --enable-sound-settings"; + + meta = { + homepage = http://www.xfce.org/projects/xfce4-settings; + description = "Settings manager for Xfce"; + license = "GPLv2+"; + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.eelco ]; + }; +} diff --git a/pkgs/desktops/xfce/core/xfconf.nix b/pkgs/desktops/xfce/core/xfconf.nix new file mode 100644 index 00000000000..e608d459106 --- /dev/null +++ b/pkgs/desktops/xfce/core/xfconf.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchurl, pkgconfig, intltool, glib, libxfce4util, dbus_glib }: + +stdenv.mkDerivation rec { + p_name = "xfconf"; + ver_maj = "4.10"; + ver_min = "0"; + + src = fetchurl { + url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2"; + sha256 = "0xh520z0qh0ib0ijgnyrgii9h5d4pc53n6mx1chhyzfc86j1jlhp"; + }; + name = "${p_name}-${ver_maj}.${ver_min}"; + + #TODO: no perl bingings yet (ExtUtils::Depends, ExtUtils::PkgConfig, Glib) + buildInputs = [ pkgconfig intltool glib libxfce4util ]; + propagatedBuildInputs = [ dbus_glib ]; + + meta = { + homepage = http://docs.xfce.org/xfce/xfconf/start; + description = "Simple client-server configuration storage and query system for Xfce"; + license = "GPLv2"; + }; +} diff --git a/pkgs/desktops/xfce/core/xfdesktop.nix b/pkgs/desktops/xfce/core/xfdesktop.nix new file mode 100644 index 00000000000..4f287af6437 --- /dev/null +++ b/pkgs/desktops/xfce/core/xfdesktop.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, libxfce4ui +, libwnck, xfconf, libglade, xfce4panel, thunar, exo, garcon, libnotify }: + +stdenv.mkDerivation rec { + p_name = "xfdesktop"; + ver_maj = "4.10"; + ver_min = "0"; + + src = fetchurl { + url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2"; + sha256 = "0yrddj1lgk3xn4w340y89z7x2isks72ia36pka08kk2x8gpfcyl9"; + }; + name = "${p_name}-${ver_maj}.${ver_min}"; + + buildInputs = + [ pkgconfig intltool gtk libxfce4util libxfce4ui libwnck xfconf + libglade xfce4panel thunar exo garcon libnotify + ]; + preFixup = "rm $out/share/icons/hicolor/icon-theme.cache"; + + enableParallelBuilding = true; + + meta = { + homepage = http://www.xfce.org/projects/xfdesktop; + description = "Xfce desktop manager"; + license = "GPLv2+"; + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.eelco ]; + }; +} diff --git a/pkgs/desktops/xfce/core/xfwm4.nix b/pkgs/desktops/xfce/core/xfwm4.nix new file mode 100644 index 00000000000..e2fea73eaeb --- /dev/null +++ b/pkgs/desktops/xfce/core/xfwm4.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchurl, pkgconfig, gtk, intltool, libglade, libxfce4util +, libxfce4ui, xfconf, libwnck, libstartup_notification, xorg }: + +stdenv.mkDerivation rec { + p_name = "xfwm4"; + ver_maj = "4.10"; + ver_min = "0"; + + src = fetchurl { + url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2"; + sha256 = "170zzs7adj47srsi2cl723w9pl8k8awd7w1bpzxby7hj92zmf8s9"; + }; + name = "${p_name}-${ver_maj}.${ver_min}"; + + #TODO: kde systray, docs + buildInputs = + [ pkgconfig intltool gtk libglade libxfce4util libxfce4ui xfconf + libwnck libstartup_notification + xorg.libXcomposite xorg.libXfixes xorg.libXdamage + ]; + + enableParallelBuilding = true; + + meta = { + homepage = http://www.xfce.org/projects/xfwm4; + description = "Window manager for Xfce"; + license = "GPLv2+"; + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.eelco ]; + }; +} diff --git a/pkgs/desktops/xfce/default.nix b/pkgs/desktops/xfce/default.nix new file mode 100644 index 00000000000..07a3ffc6baf --- /dev/null +++ b/pkgs/desktops/xfce/default.nix @@ -0,0 +1,71 @@ +{ pkgs, newScope }: let + +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 { }; +}; + +xfce_self = rec { # the lines are very long but it seems better than the even-odd line approach + + #### CORE from "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2" + + exo = callPackage ./core/exo.nix { }; + garcon = callPackage ./core/garcon.nix { }; + gtk_xfce_engine = callPackage ./core/gtk-xfce-engine.nix { }; # ToDo: when should be used? + libxfce4ui = callPackage ./core/libxfce4ui.nix { }; + libxfce4util = callPackage ./core/libxfce4util.nix { }; + libxfcegui4 = callPackage ./core/libxfcegui4.nix { }; + thunar = callPackage ./core/thunar.nix { }; + thunar_volman = callPackage ./core/thunar-volman.nix { }; # ToDo: probably inside Thunar now + tumbler = callPackage ./core/tumbler.nix { }; # ToDo: segfaults after some work + xfce4panel = callPackage ./core/xfce4-panel.nix { }; # ToDo: impure plugins from /run/current-system/sw/lib/xfce4 + xfce4session = callPackage ./core/xfce4-session.nix { }; + xfce4settings = callPackage ./core/xfce4-settings.nix { }; + xfce4_power_manager = callPackage ./core/xfce4-power-manager.nix { }; + xfceutils = null; # removed in 4.10 + xfconf = callPackage ./core/xfconf.nix { }; + xfdesktop = callPackage ./core/xfdesktop.nix { }; + xfwm4 = callPackage ./core/xfwm4.nix { }; + + xfce4_appfinder = callPackage ./core/xfce4-appfinder.nix { }; + + + #### APPLICATIONS from "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2" + + gigolo = callPackage ./applications/gigolo.nix { }; + mousepad = callPackage ./applications/mousepad.nix { }; + ristretto = callPackage ./applications/ristretto.nix { }; + terminal = xfce4terminal; # it has changed its name + xfce4mixer = callPackage ./applications/xfce4-mixer.nix { }; + xfce4notifyd = callPackage ./applications/xfce4-notifyd.nix { }; + xfce4taskmanager= callPackage ./applications/xfce4-taskmanager.nix { }; + xfce4terminal = callPackage ./applications/terminal.nix { }; + + + #### ART from "mirror://xfce/src/art/${p_name}/${ver_maj}/${name}.tar.bz2" + + xfce4icontheme = callPackage ./art/xfce4-icon-theme.nix { }; + + + #### PANEL PLUGINS from "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2" + + xfce4_systemload_plugin = callPackage ./panel-plugins/xfce4-systemload-plugin.nix { }; + xfce4_cpufreq_plugin = callPackage ./panel-plugins/xfce4-cpufreq-plugin.nix { }; + +}; # xfce_self + +in xfce_self + + + + diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-cpufreq-plugin.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-cpufreq-plugin.nix new file mode 100644 index 00000000000..18d043c51fd --- /dev/null +++ b/pkgs/desktops/xfce/panel-plugins/xfce4-cpufreq-plugin.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4panel, libxfce4ui, libxfcegui4, xfconf, gtk}: + +stdenv.mkDerivation rec { + p_name = "xfce4-cpufreq-plugin"; + ver_maj = "1.0"; + ver_min = "0"; + + src = fetchurl { + url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2"; + sha256 = "0q2lj8a25iq9w3dynh6qvsmh19y1v7i82g46yza6gvw7fjcrmcz1"; + }; + name = "${p_name}-${ver_maj}.${ver_min}"; + + buildInputs = [ pkgconfig intltool libxfce4util libxfce4ui xfce4panel libxfcegui4 xfconf gtk ]; + preFixup = "rm $out/share/icons/hicolor/icon-theme.cache"; + + meta = { + homepage = "http://goodies.xfce.org/projects/panel-plugins/${p_name}"; + description = "CPU Freq load plugin for Xfce panel"; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin.nix new file mode 100644 index 00000000000..dda5dc89def --- /dev/null +++ b/pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4panel, libxfce4ui, gtk}: + +stdenv.mkDerivation rec { + p_name = "xfce4-systemload-plugin"; + ver_maj = "1.1"; + ver_min = "1"; + + src = fetchurl { + url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2"; + sha256 = "1bnrr30h6kgb37ixcq7frx2gvj2p99bpa1jyzppwjxp5x7xkxh8s"; + }; + name = "${p_name}-${ver_maj}.${ver_min}"; + + buildInputs = [ pkgconfig intltool libxfce4util libxfce4ui xfce4panel gtk ]; + + meta = { + homepage = "http://goodies.xfce.org/projects/panel-plugins/${p_name}"; + description = "System load plugin for Xfce panel"; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/desktops/xfce/support/gvfs.nix b/pkgs/desktops/xfce/support/gvfs.nix new file mode 100644 index 00000000000..af70aea755a --- /dev/null +++ b/pkgs/desktops/xfce/support/gvfs.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl, pkgconfig, glib, dbus, intltool, udev, libgdu, fuse +, libxml2, libxslt, docbook_xsl, libgphoto2, libtool }: + +stdenv.mkDerivation rec { + name = "gvfs-1.14.2"; + + src = fetchurl { + url = "mirror://gnome/sources/gvfs/1.14/${name}.tar.xz"; + sha256 = "1g4ghyf45jg2ajdkv2d972hbckyjh3d9jdrppai85pl9pk2dmfy3"; + }; + + buildInputs = + [ pkgconfig glib dbus.libs intltool udev libgdu fuse libxml2 libxslt + docbook_xsl libgphoto2 libtool + ]; + + meta = { + description = "Virtual Filesystem support library (for Xfce)"; + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.eelco ]; + }; +} diff --git a/pkgs/desktops/xfce/support/libgdu-only.patch b/pkgs/desktops/xfce/support/libgdu-only.patch new file mode 100644 index 00000000000..c5873c71681 --- /dev/null +++ b/pkgs/desktops/xfce/support/libgdu-only.patch @@ -0,0 +1,144 @@ +diff -ru -x '*~' gnome-disk-utility-2.30.1-orig/configure.ac gnome-disk-utility-2.30.1/configure.ac +--- gnome-disk-utility-2.30.1-orig/configure.ac 2010-03-22 16:54:09.000000000 +0100 ++++ gnome-disk-utility-2.30.1/configure.ac 2011-09-06 02:52:09.000000000 +0200 +@@ -106,17 +106,6 @@ + # GNOME + # ***** + +-GNOME_COMMON_INIT +-GNOME_DOC_INIT +-GNOME_DEBUG_CHECK +-GNOME_COMPILE_WARNINGS([maximum]) +-GNOME_MAINTAINER_MODE_DEFINES +- +-AC_ARG_ENABLE(gtk-doc, AS_HELP_STRING([--enable-gtk-doc], +- [use gtk-doc to build documentation [default=yes]]),, +- enable_gtk_doc=yes) +-GTK_DOC_CHECK([1.3]) +- + # *************************** + # Check for required packages + # *************************** +@@ -130,7 +119,6 @@ + UNIQUE_REQUIRED=1.0 + LIBNOTIFY_REQUIRED=0.3.0 + NAUTILUS_REQUIRED=2.24.0 +-AVAHI_UI_REQUIRED=0.6.25 + + UDISKS_REQUIRED=1.0.0 + UDISKS_NEXT_ABI_INCOMPATIBLE_VERSION=1.1.0 +@@ -144,13 +132,7 @@ + PKG_CHECK_MODULES(GIO_UNIX2, [gio-unix-2.0 >= $GIO2_REQUIRED]) + PKG_CHECK_MODULES(GTHREAD2, [gthread-2.0 >= $GLIB2_REQUIRED]) + PKG_CHECK_MODULES(DBUS_GLIB, [dbus-glib-1 >= $DBUS_GLIB_REQUIRED]) +-PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= $GTK2_REQUIRED]) +-PKG_CHECK_MODULES(UNIQUE, [unique-1.0 >= $UNIQUE_REQUIRED]) +-PKG_CHECK_MODULES(LIBNOTIFY, [libnotify >= $LIBNOTIFY_REQUIRED]) + PKG_CHECK_MODULES(UDISKS, [udisks >= $UDISKS_REQUIRED udisks < $UDISKS_NEXT_ABI_INCOMPATIBLE_VERSION]) +-PKG_CHECK_MODULES(X11, [x11]) +-PKG_CHECK_MODULES(LIBATASMART, [libatasmart >= 0.14]) +-PKG_CHECK_MODULES(AVAHI_UI, [avahi-ui >= $AVAHI_UI_REQUIRED]) + + # ************* + # Remote Access +@@ -183,21 +165,10 @@ + AC_SUBST(GNOME_KEYRING_CFLAGS) + AM_CONDITIONAL(ENABLE_GNOME_KEYRING, [test "$have_gnome_keyring" = "yes"]) + +-# ************* +-# Documentation +-# ************* +- +-AC_PATH_PROG(SCROLLKEEPER_CONFIG, scrollkeeper-config,no) +-if test x$SCROLLKEEPER_CONFIG = xno; then +- AC_MSG_ERROR(Couldn't find scrollkeeper-config, please install the scrollkeeper package) +-fi +- + # ******************** + # Internationalization + # ******************** + +-IT_PROG_INTLTOOL([$INTLTOOL_REQUIRED]) +- + GETTEXT_PACKAGE=gnome-disk-utility + AC_SUBST([GETTEXT_PACKAGE]) + AM_GLIB_GNU_GETTEXT +diff -ru -x '*~' gnome-disk-utility-2.30.1-orig/doc/Makefile.am gnome-disk-utility-2.30.1/doc/Makefile.am +--- gnome-disk-utility-2.30.1-orig/doc/Makefile.am 2009-12-02 20:52:38.000000000 +0100 ++++ gnome-disk-utility-2.30.1/doc/Makefile.am 2011-09-06 02:17:15.000000000 +0200 +@@ -70,9 +70,7 @@ + Makefile.in \ + $(NULL) + +-include $(top_srcdir)/gtk-doc.make +- +-CLEANFILES += *~ \ ++CLEANFILES = *~ \ + gnome-disk-utility-scan* \ + gnome-disk-utility.args \ + gnome-disk-utility.hierarchy \ +@@ -91,4 +89,4 @@ + $(NULL) + + # Version information for marking the documentation +-EXTRA_DIST += version.xml.in ++EXTRA_DIST = version.xml.in +diff -ru -x '*~' gnome-disk-utility-2.30.1-orig/gtk-doc.make gnome-disk-utility-2.30.1/gtk-doc.make +--- gnome-disk-utility-2.30.1-orig/gtk-doc.make 2010-03-16 00:08:20.000000000 +0100 ++++ gnome-disk-utility-2.30.1/gtk-doc.make 2011-09-06 02:15:33.000000000 +0200 +@@ -4,15 +4,9 @@ + # Everything below here is generic # + #################################### + +-if GTK_DOC_USE_LIBTOOL +-GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +-GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +-GTKDOC_RUN = $(LIBTOOL) --mode=execute +-else + GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) + GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) + GTKDOC_RUN = +-endif + + # We set GPATH here; this gives us semantics for GNU make + # which are more like other make's VPATH, when it comes to +@@ -49,22 +43,7 @@ + + CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) + +-if ENABLE_GTK_DOC +-if GTK_DOC_BUILD_HTML +-HTML_BUILD_STAMP=html-build.stamp +-else +-HTML_BUILD_STAMP= +-endif +-if GTK_DOC_BUILD_PDF +-PDF_BUILD_STAMP=pdf-build.stamp +-else +-PDF_BUILD_STAMP= +-endif +- +-all-local: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) +-else + all-local: +-endif + + docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) + +diff -ru -x '*~' gnome-disk-utility-2.30.1-orig/help/Makefile.am gnome-disk-utility-2.30.1/help/Makefile.am +--- gnome-disk-utility-2.30.1-orig/help/Makefile.am 2009-09-23 20:35:01.000000000 +0200 ++++ gnome-disk-utility-2.30.1/help/Makefile.am 2011-09-06 02:18:13.000000000 +0200 +@@ -1,4 +1,3 @@ +-include $(top_srcdir)/gnome-doc-utils.make + dist-hook: doc-dist-hook + + DOC_MODULE = palimpsest +diff -ru -x '*~' gnome-disk-utility-2.30.1-orig/Makefile.am gnome-disk-utility-2.30.1/Makefile.am +--- gnome-disk-utility-2.30.1-orig/Makefile.am 2010-03-16 00:12:39.000000000 +0100 ++++ gnome-disk-utility-2.30.1/Makefile.am 2011-09-06 02:17:34.000000000 +0200 +@@ -1,4 +1,4 @@ +-SUBDIRS = src data doc help po ++SUBDIRS = src data + + EXTRA_DIST = \ + autogen.sh \ diff --git a/pkgs/desktops/xfce/support/libgdu.nix b/pkgs/desktops/xfce/support/libgdu.nix new file mode 100644 index 00000000000..32835f0434a --- /dev/null +++ b/pkgs/desktops/xfce/support/libgdu.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchurl, gnome, pkgconfig, glib, dbus_glib, intltool, udev, gtk +, libnotify, udisks, libatasmart, avahi +, autoconf, automake, libtool }: + +let version = "2.30.1"; in + +stdenv.mkDerivation rec { + name = "libgdu-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-disk-utility/2.30/gnome-disk-utility-${version}.tar.bz2"; + sha256 = "df9b336c780b5d77ceda54e96f7c37c67645f5e73d48754ba0a8efba7c1836d7"; + }; + + # Only build libgdu, not all that Gnome crap. + patches = [ ./libgdu-only.patch ]; + + buildInputs = + [ pkgconfig glib dbus_glib udisks + autoconf automake libtool + ]; + + preConfigure = + '' + substituteInPlace src/gdu/Makefile.am --replace /usr/share/dbus-1/interfaces ${udisks}/share/dbus-1/interfaces + autoreconf -f -i + ''; + + postConfigure = "cd src/gdu"; + + meta = { + description = "Xfce/Gvfs support library for mounting filesystems"; + }; +} -- cgit 1.4.1 From b26c770651742b8fe0eb588f384d5a5b7fe01892 Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Sat, 9 Mar 2013 12:20:19 +0400 Subject: Exporting XFCE gvfs: it is referenced in NixOS, it is unclear how to remove the dependency cleanly and it affects rebuild even with config that doesn't mention XFCE at all. --- pkgs/desktops/xfce/default.nix | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'pkgs/desktops/xfce') diff --git a/pkgs/desktops/xfce/default.nix b/pkgs/desktops/xfce/default.nix index 07a3ffc6baf..d57184a19eb 100644 --- a/pkgs/desktops/xfce/default.nix +++ b/pkgs/desktops/xfce/default.nix @@ -62,6 +62,10 @@ xfce_self = rec { # the lines are very long but it seems better than the even-od xfce4_systemload_plugin = callPackage ./panel-plugins/xfce4-systemload-plugin.nix { }; xfce4_cpufreq_plugin = callPackage ./panel-plugins/xfce4-cpufreq-plugin.nix { }; + #### SUPPORT + + gvfs = deps.gvfs; + }; # xfce_self in xfce_self -- cgit 1.4.1 From c3511c115dfc8fc2bae2c67152fe34134c1f23de Mon Sep 17 00:00:00 2001 From: Vladimír Čunát Date: Sat, 9 Mar 2013 10:51:34 +0100 Subject: xfce: fix NixOS support Sorry for this forgotten commit. --- pkgs/desktops/xfce/default.nix | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'pkgs/desktops/xfce') diff --git a/pkgs/desktops/xfce/default.nix b/pkgs/desktops/xfce/default.nix index d57184a19eb..03e0def7853 100644 --- a/pkgs/desktops/xfce/default.nix +++ b/pkgs/desktops/xfce/default.nix @@ -17,6 +17,11 @@ deps = rec { # xfce-global dependency overrides should be here xfce_self = rec { # the lines are very long but it seems better than the even-odd line approach + #### NixOS support + + inherit (deps) gvfs; + xinitrc = "${xfce4session}/etc/xdg/xfce4/xinitrc"; + #### CORE from "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2" exo = callPackage ./core/exo.nix { }; @@ -62,10 +67,6 @@ xfce_self = rec { # the lines are very long but it seems better than the even-od xfce4_systemload_plugin = callPackage ./panel-plugins/xfce4-systemload-plugin.nix { }; xfce4_cpufreq_plugin = callPackage ./panel-plugins/xfce4-cpufreq-plugin.nix { }; - #### SUPPORT - - gvfs = deps.gvfs; - }; # xfce_self in xfce_self -- cgit 1.4.1 From f0c683faec406c2d8da30bf2ef6ef33413c00f5b Mon Sep 17 00:00:00 2001 From: Vladimír Čunát Date: Mon, 4 Mar 2013 19:18:15 +0100 Subject: xfdesktop: minor update --- pkgs/desktops/xfce/core/xfdesktop.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'pkgs/desktops/xfce') diff --git a/pkgs/desktops/xfce/core/xfdesktop.nix b/pkgs/desktops/xfce/core/xfdesktop.nix index 4f287af6437..b106cccbf6d 100644 --- a/pkgs/desktops/xfce/core/xfdesktop.nix +++ b/pkgs/desktops/xfce/core/xfdesktop.nix @@ -4,11 +4,11 @@ stdenv.mkDerivation rec { p_name = "xfdesktop"; ver_maj = "4.10"; - ver_min = "0"; + ver_min = "1"; src = fetchurl { url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2"; - sha256 = "0yrddj1lgk3xn4w340y89z7x2isks72ia36pka08kk2x8gpfcyl9"; + sha256 = "1bfl2xzmci7vqwwz2k2gp7ykysjnq9dcwpnzkwbpv5hv3qwgx0r8"; }; name = "${p_name}-${ver_maj}.${ver_min}"; -- cgit 1.4.1