diff --git a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix index fdbf8c5277f2..99b66fc1fe72 100644 --- a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix +++ b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix @@ -1,7 +1,7 @@ -{ fetchurl, stdenv, pkgconfig, gnome3, intltool, glib, libnotify, lcms2, libXtst -, libxkbfile, libpulseaudio, libcanberra-gtk3, upower, colord, libgweather, polkit -, geoclue2, librsvg, xf86_input_wacom, udev, libgudev, libwacom, libxslt, libtool, networkmanager -, docbook_xsl, docbook_xsl_ns, wrapGAppsHook, ibus, xkeyboard_config, tzdata }: +{ fetchurl, substituteAll, stdenv, meson, ninja, pkgconfig, gnome3, perl, gettext, glib, libnotify, lcms2, libXtst +, libxkbfile, libpulseaudio, alsaLib, libcanberra-gtk3, upower, colord, libgweather, polkit +, geoclue2, librsvg, xf86_input_wacom, udev, libgudev, libwacom, libxslt, libxml2, networkmanager +, docbook_xsl, wrapGAppsHook, ibus, xkeyboard_config, tzdata, nss }: stdenv.mkDerivation rec { name = "gnome-settings-daemon-${version}"; @@ -12,27 +12,46 @@ stdenv.mkDerivation rec { sha256 = "1p3ccf4a4qbz73hqyx9i55hkp6l7c7la5kazqawcndl7bksywgny"; }; - passthru = { - updateScript = gnome3.updateScript { packageName = "gnome-settings-daemon"; attrPath = "gnome3.gnome-settings-daemon"; }; - }; + patches = [ + (substituteAll { + src = ./fix-paths.patch; + inherit tzdata; + }) + ]; # fatal error: gio/gunixfdlist.h: No such file or directory NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0"; - buildInputs = with gnome3; - [ intltool pkgconfig ibus gtk glib gsettings-desktop-schemas networkmanager - libnotify gnome-desktop lcms2 libXtst libxkbfile libpulseaudio - libcanberra-gtk3 upower colord libgweather xkeyboard_config - polkit geocode-glib geoclue2 librsvg xf86_input_wacom udev libgudev libwacom libxslt - libtool docbook_xsl docbook_xsl_ns wrapGAppsHook gnome-themes-standard ]; + nativeBuildInputs = [ meson ninja pkgconfig perl gettext libxml2 libxslt docbook_xsl wrapGAppsHook ]; + + buildInputs = with gnome3; [ + ibus gtk glib gsettings-desktop-schemas networkmanager + libnotify gnome-desktop lcms2 libXtst libxkbfile libpulseaudio alsaLib + libcanberra-gtk3 upower colord libgweather xkeyboard_config nss + polkit geocode-glib geoclue2 librsvg xf86_input_wacom udev libgudev libwacom + ]; + + mesonFlags = [ + "-Dudev_dir=${placeholder "out"}/lib/udev" + ]; postPatch = '' - substituteInPlace plugins/datetime/tz.h --replace /usr/share/zoneinfo/zone.tab ${tzdata}/share/zoneinfo/zone.tab + for f in gnome-settings-daemon/codegen.py plugins/power/gsd-power-constants-update.pl meson_post_install.py; do + chmod +x $f + patchShebangs $f + done ''; - meta = with stdenv.lib; { - platforms = platforms.linux; - maintainers = gnome3.maintainers; + passthru = { + updateScript = gnome3.updateScript { + packageName = "gnome-settings-daemon"; + attrPath = "gnome3.gnome-settings-daemon"; + }; }; + meta = with stdenv.lib; { + license = licenses.gpl2Plus; + maintainers = gnome3.maintainers; + platforms = platforms.linux; + }; } diff --git a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/fix-paths.patch b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/fix-paths.patch new file mode 100644 index 000000000000..2229302cab7c --- /dev/null +++ b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/fix-paths.patch @@ -0,0 +1,15 @@ +--- a/plugins/datetime/tz.h ++++ b/plugins/datetime/tz.h +@@ -27,11 +27,7 @@ + + #include + +-#ifndef __sun +-# define TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab" +-#else +-# define TZ_DATA_FILE "/usr/share/lib/zoneinfo/tab/zone_sun.tab" +-#endif ++#define TZ_DATA_FILE "@tzdata@/share/zoneinfo/zone.tab" + + typedef struct _TzDB TzDB; + typedef struct _TzLocation TzLocation;