diff options
Diffstat (limited to 'nixpkgs/pkgs/desktops/gnome-3/misc')
20 files changed, 1172 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/geary/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/geary/default.nix new file mode 100644 index 000000000000..c522fbec57b0 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/misc/geary/default.nix @@ -0,0 +1,83 @@ +{ stdenv, fetchurl, fetchpatch, pkgconfig, gtk3, vala, enchant2, wrapGAppsHook, meson, ninja +, desktop-file-utils, gnome-online-accounts, gsettings-desktop-schemas, adwaita-icon-theme +, libnotify, libcanberra-gtk3, libsecret, gmime, isocodes, libxml2, gettext +, sqlite, gcr, json-glib, itstool, libgee, gnome3, webkitgtk, python3 +, xvfb_run, dbus, shared-mime-info, libunwind, glib-networking }: + +stdenv.mkDerivation rec { + pname = "geary"; + version = "0.13.1"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "0h9pf2mdskq7mylib1m9hw86nwfmdzyngjl7ywangqipm1k5svjx"; + }; + + patches = [ + # gobject-introspection is not needed + # https://gitlab.gnome.org/GNOME/geary/merge_requests/138 + (fetchpatch { + url = https://gitlab.gnome.org/GNOME/geary/commit/d2f1b1076aa942d140e83fdf03b66621c11229f5.patch; + sha256 = "1dsj4ybnibpi572w9hafm0w90jbjv7wzdl6j8d4c2qg5h7knlvfk"; + }) + # Fixes tests on Aarch64 + # https://gitlab.gnome.org/GNOME/geary/issues/259 + (fetchpatch { + url = https://gitlab.gnome.org/GNOME/geary/commit/9c3fdbfb5c792daeb9c3924f798fa83a15096d8a.patch; + sha256 = "1ihjxnaj0g6gx264kd8cbhs88yp37vwmmcd3lvmz44agf7qcv2ri"; + }) + ]; + + nativeBuildInputs = [ + desktop-file-utils gettext itstool libxml2 meson ninja + pkgconfig vala wrapGAppsHook python3 + ]; + + buildInputs = [ + adwaita-icon-theme enchant2 gcr gmime gnome-online-accounts + gsettings-desktop-schemas gtk3 isocodes json-glib libcanberra-gtk3 + libgee libnotify libsecret sqlite webkitgtk glib-networking + libunwind + ]; + + checkInputs = [ xvfb_run dbus ]; + + mesonFlags = [ + "-Dcontractor=true" # install the contractor file (Pantheon specific) + ]; + + postPatch = '' + chmod +x build-aux/post_install.py + patchShebangs build-aux/post_install.py + ''; + + preFixup = '' + # Add geary to path for geary-attach + gappsWrapperArgs+=(--prefix PATH : "$out/bin") + ''; + + doCheck = true; + + checkPhase = '' + NO_AT_BRIDGE=1 \ + XDG_DATA_DIRS=:$XDG_DATA_DIRS:${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${shared-mime-info}/share \ + xvfb-run -s '-screen 0 800x600x24' dbus-run-session \ + --config-file=${dbus.daemon}/share/dbus-1/session.conf \ + meson test -v --no-stdsplit + ''; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "gnome3.${pname}"; + }; + }; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Geary; + description = "Mail client for GNOME 3"; + maintainers = gnome3.maintainers; + license = licenses.lgpl21Plus; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gitg/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/gitg/default.nix new file mode 100644 index 000000000000..9f24d04337c2 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/misc/gitg/default.nix @@ -0,0 +1,66 @@ +{ stdenv, fetchurl, fetchpatch, vala, intltool, pkgconfig, gtk3, glib +, json-glib, wrapGAppsHook, libpeas, bash, gobject-introspection +, libsoup, gtksourceview, gsettings-desktop-schemas, adwaita-icon-theme +, gnome3, gtkspell3, shared-mime-info, libgee, libgit2-glib, libsecret +, meson, ninja, python3 + }: + +let + pname = "gitg"; + version = "3.30.1"; +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "1fz8q1aiql6k740savdjh0vzbyhcflgf94cfdhvzcrrvm929n2ss"; + }; + + patches = [ + (fetchpatch { + url = https://gitlab.gnome.org/GNOME/gitg/commit/42bceea265f53fe7fd4a41037b936deed975fc6c.patch; + sha256 = "1xq245rsi1bi66lswk33pdiazfaagxf77836ds5q73900rx4r7fw"; + }) + ]; + + postPatch = '' + chmod +x meson_post_install.py + patchShebangs meson_post_install.py + sed -i '/gtk-update-icon-cache/s/^/#/' meson_post_install.py + + substituteInPlace tests/libgitg/test-commit.vala --replace "/bin/bash" "${bash}/bin/bash" + ''; + + doCheck = true; + + enableParallelBuilding = true; + + buildInputs = [ + gtk3 glib json-glib libgee libpeas libsoup + libgit2-glib gtkspell3 gtksourceview gsettings-desktop-schemas + libsecret gobject-introspection adwaita-icon-theme + ]; + + nativeBuildInputs = [ meson ninja python3 vala wrapGAppsHook intltool pkgconfig ]; + + preFixup = '' + gappsWrapperArgs+=( + # Thumbnailers + --prefix XDG_DATA_DIRS : "${shared-mime-info}/share" + ) + ''; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + }; + }; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Gitg; + description = "GNOME GUI client to view git repositories"; + maintainers = with maintainers; [ domenkozar ]; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix new file mode 100644 index 000000000000..de0d70ae42f4 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix @@ -0,0 +1,88 @@ +{ stdenv +, fetchurl +, intltool +, itstool +, libxml2 +, libxslt +, pkgconfig +, gnome-panel +, gtk3 +, glib +, libwnck3 +, libgtop +, libnotify +, upower +, dbus-glib +, wirelesstools +, linuxPackages +, adwaita-icon-theme +, libgweather +, gucharmap +, gnome-settings-daemon +, tracker +, polkit +, gnome3 +}: + +let + pname = "gnome-applets"; + version = "3.30.0"; +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "1cvl32486kqw301wy40l1a1sdhanra7bx4smq0a3lmnl3x01zg43"; + }; + + nativeBuildInputs = [ + intltool + itstool + pkgconfig + libxml2 + libxslt + ]; + + buildInputs = [ + gnome-panel + gtk3 + glib + libxml2 + libwnck3 + libgtop + libnotify + upower + dbus-glib + adwaita-icon-theme + libgweather + gucharmap + gnome-settings-daemon + tracker + polkit + wirelesstools + linuxPackages.cpupower + ]; + + enableParallelBuilding = true; + + doCheck = true; + + configureFlags = [ + "--with-libpanel-applet-dir=$(out)/share/gnome-panel/applets" + ]; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "gnome3.${pname}"; + }; + }; + + meta = with stdenv.lib; { + description = "Applets for use with the GNOME panel"; + homepage = https://wiki.gnome.org/Projects/GnomeApplets; + license = licenses.gpl2Plus; + maintainers = gnome3.maintainers; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix new file mode 100644 index 000000000000..c80c8b977cf5 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchurl, pkgconfig, gnome3 +, gtk3, glib, gobject-introspection, libarchive +}: + +stdenv.mkDerivation rec { + name = "gnome-autoar-${version}"; + version = "0.2.3"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-autoar/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "02i4zgqqqj56h7bcys6dz7n78m4nj2x4dv1ggjmnrk98n06xpsax"; + }; + + passthru = { + updateScript = gnome3.updateScript { packageName = "gnome-autoar"; attrPath = "gnome3.gnome-autoar"; }; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ gtk3 glib ]; + propagatedBuildInputs = [ libarchive gobject-introspection ]; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + license = licenses.lgpl21; + description = "Library to integrate compressed files management with GNOME"; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix new file mode 100644 index 000000000000..f9387c11b819 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix @@ -0,0 +1,170 @@ +{ stdenv +, autoreconfHook +, fetchurl +, fetchpatch +, gettext +, glib +, gnome-bluetooth +, gnome-desktop +, gnome-panel +, gnome-session +, gnome3 +, gsettings-desktop-schemas +, gtk3 +, ibus +, intltool +, libcanberra-gtk3 +, libpulseaudio +, libxkbfile +, libxml2 +, pkgconfig +, polkit +, substituteAll +, upower +, wrapGAppsHook +, writeTextFile +, writeShellScriptBin +, xkeyboard_config +}: + +let + pname = "gnome-flashback"; + version = "3.30.0"; + requiredComponents = wmName: "RequiredComponents=${wmName};gnome-flashback-init;gnome-flashback;gnome-panel;org.gnome.SettingsDaemon.A11ySettings;org.gnome.SettingsDaemon.Clipboard;org.gnome.SettingsDaemon.Color;org.gnome.SettingsDaemon.Datetime;org.gnome.SettingsDaemon.Housekeeping;org.gnome.SettingsDaemon.Keyboard;org.gnome.SettingsDaemon.MediaKeys;org.gnome.SettingsDaemon.Mouse;org.gnome.SettingsDaemon.Power;org.gnome.SettingsDaemon.PrintNotifications;org.gnome.SettingsDaemon.Rfkill;org.gnome.SettingsDaemon.ScreensaverProxy;org.gnome.SettingsDaemon.Sharing;org.gnome.SettingsDaemon.Smartcard;org.gnome.SettingsDaemon.Sound;org.gnome.SettingsDaemon.Wacom;org.gnome.SettingsDaemon.XSettings;"; + gnome-flashback = stdenv.mkDerivation rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "18rwql2pi78155l9zp1i50xfi5z8xz2l08m9d81x6qqbfr1nyy57"; + }; + + patches =[ + # overrides do not respect gsettingsschemasdir + # https://gitlab.gnome.org/GNOME/gnome-flashback/issues/9 + (fetchpatch { + url = https://gitlab.gnome.org/GNOME/gnome-flashback/commit/a55530f58ccd600414a5420b287868ab7d219705.patch; + sha256 = "1la94lhhb9zlw7bnbpl6hl26zv3kxbsvgx996mhph720wxg426mh"; + }) + ]; + + # make .desktop Execs absolute + postPatch = '' + patch -p0 <<END_PATCH + +++ data/applications/gnome-flashback-init.desktop.in + @@ -4 +4 @@ + -Exec=gnome-flashback --initialize + +Exec=$out/bin/gnome-flashback --initialize + +++ data/applications/gnome-flashback.desktop.in + @@ -4 +4 @@ + -Exec=gnome-flashback + +Exec=$out/bin/gnome-flashback + END_PATCH + ''; + + postInstall = '' + # Check that our expected RequiredComponents match the stock session files, but then don't install them. + # They can be installed using mkSessionForWm. + grep '${requiredComponents "metacity"}' $out/share/gnome-session/sessions/gnome-flashback-metacity.session || (echo "RequiredComponents have changed, please update gnome-flashback/default.nix."; false) + + rm -r $out/share/gnome-session + rm -r $out/share/xsessions + rm -r $out/libexec + ''; + + nativeBuildInputs = [ + autoreconfHook + gettext + libxml2 + pkgconfig + wrapGAppsHook + ]; + + buildInputs = [ + glib + gnome-bluetooth + gnome-desktop + gsettings-desktop-schemas + gtk3 + ibus + libcanberra-gtk3 + libpulseaudio + libxkbfile + polkit + upower + xkeyboard_config + ]; + + doCheck = true; + + enableParallelBuilding = true; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "gnome3.${pname}"; + }; + + mkSessionForWm = { wmName, wmLabel, wmCommand }: + let + wmApplication = writeTextFile { + name = "gnome-flashback-${wmName}-wm"; + destination = "/share/applications/${wmName}.desktop"; + text = '' + [Desktop Entry] + Type=Application + Encoding=UTF-8 + Name=${wmLabel} + Exec=${wmCommand} + NoDisplay=true + X-GNOME-WMName=${wmLabel} + X-GNOME-Autostart-Phase=WindowManager + X-GNOME-Provides=windowmanager + X-GNOME-Autostart-Notify=false + ''; + }; + + gnomeSession = writeTextFile { + name = "gnome-flashback-${wmName}-gnome-session"; + destination = "/share/gnome-session/sessions/gnome-flashback-${wmName}.session"; + text = '' + [GNOME Session] + Name=GNOME Flashback (${wmLabel}) + ${requiredComponents wmName} + ''; + }; + + executable = writeShellScriptBin "gnome-flashback-${wmName}" '' + if [ -z $XDG_CURRENT_DESKTOP ]; then + export XDG_CURRENT_DESKTOP="GNOME-Flashback:GNOME" + fi + + export XDG_DATA_DIRS=${wmApplication}/share:${gnomeSession}/share:${gnome-flashback}/share:${gnome-panel}/share:$XDG_DATA_DIRS + + exec ${gnome-session}/bin/gnome-session --session=gnome-flashback-${wmName} "$@" + ''; + + in writeTextFile { + name = "gnome-flashback-${wmName}-xsession"; + destination = "/share/xsessions/gnome-flashback-${wmName}.desktop"; + text = '' + [Desktop Entry] + Name=GNOME Flashback (${wmLabel}) + Comment=This session logs you into GNOME Flashback with ${wmLabel} + Exec=${executable}/bin/gnome-flashback-${wmName} + TryExec=${wmCommand} + Type=Application + DesktopNames=GNOME-Flashback;GNOME; + ''; + }; + }; + + meta = with stdenv.lib; { + description = "GNOME 2.x-like session for GNOME 3"; + homepage = https://wiki.gnome.org/Projects/GnomeFlashback; + license = licenses.gpl2; + maintainers = gnome3.maintainers; + platforms = platforms.linux; + }; + }; + in gnome-flashback diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-packagekit/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-packagekit/default.nix new file mode 100644 index 000000000000..3cdab30ce8d1 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-packagekit/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchurl, pkgconfig, meson, ninja, gettext, gnome3, packagekit, polkit +, gtk3, systemd, wrapGAppsHook, desktop-file-utils }: + +stdenv.mkDerivation rec { + name = "gnome-packagekit-${version}"; + version = "3.30.0"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-packagekit/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "1i1hf6833psnq174xm0gjlz5rbrkl8i512y47w7nk8mrrrc31b35"; + }; + + nativeBuildInputs = [ pkgconfig meson ninja gettext wrapGAppsHook desktop-file-utils ]; + buildInputs = [ gtk3 packagekit systemd polkit ]; + + postPatch = '' + patchShebangs meson_post_install.sh + ''; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "gnome-packagekit"; + attrPath = "gnome3.gnome-packagekit"; + }; + }; + + meta = with stdenv.lib; { + homepage = https://www.freedesktop.org/software/PackageKit/; + platforms = platforms.linux; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + description = "Tools for installing software on the GNOME desktop using PackageKit"; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix new file mode 100644 index 000000000000..db00758fb55f --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix @@ -0,0 +1,110 @@ +{ stdenv +, fetchurl +, autoreconfHook +, fetchpatch +, dconf +, evolution-data-server +, gdm +, gettext +, glib +, gnome-desktop +, gnome-flashback +, gnome-menus +, gnome3 +, gtk3 +, itstool +, libgweather +, libsoup +, libwnck3 +, libxml2 +, pkgconfig +, polkit +, systemd +, wrapGAppsHook }: + +let + pname = "gnome-panel"; + version = "3.30.0"; +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + + outputs = [ "out" "dev" "man" ]; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "12q0l7wy6hzl46i7xpvv82ka3bn14z0jg6fhv5xhnk7j9mkbmgqw"; + }; + + patches = [ + # https://github.com/NixOS/nixpkgs/issues/36468 + # https://gitlab.gnome.org/GNOME/gnome-panel/issues/8 + (fetchpatch { + url = https://gitlab.gnome.org/GNOME/gnome-panel/commit/77be9c3507bd1b5d70d97649b85ec9f47f6c359c.patch; + sha256 = "00b1ihnc6hp2g6x1v1njbc6mhsk44izl2wigviibmka2znfk03nv"; + }) + ]; + + # make .desktop Exec absolute + postPatch = '' + patch -p0 <<END_PATCH + +++ gnome-panel/gnome-panel.desktop.in + @@ -7 +7 @@ + -Exec=gnome-panel + +Exec=$out/bin/gnome-panel + END_PATCH + ''; + + preFixup = '' + gappsWrapperArgs+=( + --prefix XDG_DATA_DIRS : "${gnome-menus}/share:${gnome-flashback}/share" + --prefix XDG_CONFIG_DIRS : "${gnome-menus}/etc/xdg:${gnome-flashback}/etc/xdg" + ) + ''; + + nativeBuildInputs = [ + autoreconfHook + gettext + itstool + libxml2 + pkgconfig + wrapGAppsHook + ]; + + buildInputs = [ + dconf + evolution-data-server + gdm + glib + gnome-desktop + gnome-menus + gtk3 + libgweather + libsoup + libwnck3 + polkit + systemd + ]; + + configureFlags = [ + "--enable-eds" + ]; + + enableParallelBuilding = true; + + doCheck = true; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "gnome3.${pname}"; + }; + }; + + meta = with stdenv.lib; { + description = "Component of Gnome Flashback that provides panels and default applets for the desktop"; + homepage = https://wiki.gnome.org/Projects/GnomePanel; + license = licenses.gpl2Plus; + maintainers = gnome3.maintainers; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-screensaver/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-screensaver/default.nix new file mode 100644 index 000000000000..5afc92aa482b --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-screensaver/default.nix @@ -0,0 +1,96 @@ +{ stdenv +, fetchgit +, fetchurl +, autoreconfHook +, dbus-glib +, glib +, gnome-common +, gnome-desktop +, gnome3 +, gtk3 +, gsettings-desktop-schemas +, pkgconfig +, intltool +, pam +, systemd +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "gnome-screensaver"; + version = "3.6.1"; + + # the original package is deprecated and the Ubuntu version has a number of useful patches + src = fetchgit { + url = "https://git.launchpad.net/ubuntu/+source/gnome-screensaver"; + rev = "4f7b666131dec060a5aac9117f395ac522a627b4"; + sha256 = "15xqgcpm825cy3rm8pj00qlblq66svmh06lcw8qi74a3g0xcir87"; + }; + + # from debian/patches/series + patches = map (patch: "debian/patches/${patch}") [ + "00git_logind_check.patch" + "01_no_autostart.patch" + "03_fix_ltsp-fading.patch" + "05_dbus_service.patch" + "10_legacy_scrsvr_inhibit.patch" + "13_nvidia_gamma_fade_fallback.patch" + "14_no_fade_on_user_switch.patch" + "15_dont_crash_on_no_fade.patch" + "16_dont_crash_in_kvm.patch" + "17_remove_top_panel.patch" + "18_unity_dialog_layout.patch" + "24_use_user_settings.patch" + "25_fix_lock_command.patch" + "27_lightdm_switch_user.patch" + "28_blocking_return.patch" + "29_handle_expired_creds.patch" + # these two patches are ubuntu-specific + # "30_ubuntu-lock-on-suspend_gsetting.patch" + # "31_lock_screen_on_suspend.patch" + "32_input_sources_switcher.patch" + "move-not-nuke.patch" + "allow-replacement" + "libsystemd.patch" + "0001-gs-lock-plug-Disconnect-signal-handler-from-right-ob.patch" + "33_budgie_support.patch" + ] ++ [ ./fix-dbus-service-dir.patch ]; + + nativeBuildInputs = [ + autoreconfHook + intltool + wrapGAppsHook + gnome-common + pkgconfig + ]; + + buildInputs = [ + glib + gtk3 + gnome-desktop + dbus-glib + pam + systemd + ]; + + configureFlags = [ "--enable-locking" "--with-systemd=yes" ]; + + enableParallelBuilding = true; + + doCheck = true; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "gnome3.${pname}"; + }; + }; + + meta = with stdenv.lib; { + description = "Component of Gnome Flashback that provides screen locking"; + homepage = https://wiki.gnome.org/Projects/GnomeScreensaver; + license = licenses.gpl2Plus; + maintainers = gnome3.maintainers; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-screensaver/fix-dbus-service-dir.patch b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-screensaver/fix-dbus-service-dir.patch new file mode 100644 index 000000000000..81e037ee690d --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-screensaver/fix-dbus-service-dir.patch @@ -0,0 +1,11 @@ +--- a/configure.ac 2019-01-20 20:28:01.309231507 +0100 ++++ b/configure.ac 2019-01-20 20:31:54.927978927 +0100 +@@ -137,7 +137,7 @@ + + # Find out where the session service file goes + # The sad sed hack is recomended by section 27.10 of the automake manual. +-DBUS_SESSION_SERVICE_DIR=`pkg-config --variable session_bus_services_dir dbus-1 | sed -e 's,/usr/share,${datarootdir},g'` ++DBUS_SESSION_SERVICE_DIR=`pkg-config --variable session_bus_services_dir dbus-1 --define-variable 'datadir=${datadir}'` + AC_SUBST(DBUS_SESSION_SERVICE_DIR) + + dnl --------------------------------------------------------------------------- \ No newline at end of file diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-tweaks/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-tweaks/default.nix new file mode 100644 index 000000000000..47de1de59cac --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-tweaks/default.nix @@ -0,0 +1,54 @@ +{ stdenv, meson, ninja, gettext, fetchurl +, pkgconfig, gtk3, glib, libsoup +, itstool, libxml2, python3Packages +, gnome3, gdk_pixbuf, libnotify, gobject-introspection, wrapGAppsHook }: + +let + pname = "gnome-tweaks"; + version = "3.30.2"; +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "0j63siy1i5pl2g6di1r9vjn54m9ahh42wj20j6689pza2lamay1z"; + }; + + nativeBuildInputs = [ + meson ninja pkgconfig gettext itstool libxml2 wrapGAppsHook python3Packages.python + ]; + buildInputs = [ + gtk3 glib gnome3.gsettings-desktop-schemas + gdk_pixbuf gnome3.adwaita-icon-theme + libnotify gnome3.gnome-shell python3Packages.pygobject3 + libsoup gnome3.gnome-settings-daemon gnome3.nautilus + gnome3.mutter gnome3.gnome-desktop gobject-introspection + gnome3.nautilus + # Makes it possible to select user themes through the `user-theme` extension + gnome3.gnome-shell-extensions + ]; + + postPatch = '' + patchShebangs meson-postinstall.py + ''; + + preFixup = '' + gappsWrapperArgs+=( + --prefix PYTHONPATH : "$out/${python3Packages.python.sitePackages}:$PYTHONPATH") + ''; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "gnome3.${pname}"; + }; + }; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/action/show/Apps/GnomeTweakTool; + description = "A tool to customize advanced GNOME 3 options"; + maintainers = gnome3.maintainers; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-video-effects/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-video-effects/default.nix new file mode 100644 index 000000000000..b65e9c1021e7 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-video-effects/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchurl, pkgconfig, intltool, gnome3 }: +let + pname = "gnome-video-effects"; + version = "0.4.3"; +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"; + }; + + nativeBuildInputs = [ pkgconfig intltool ]; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "gnome3.${pname}"; + }; + }; + + meta = with stdenv.lib; { + description = "A collection of GStreamer effects to be used in different GNOME Modules"; + homepage = https://wiki.gnome.org/Projects/GnomeVideoEffects; + platforms = platforms.linux; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gpaste/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/gpaste/default.nix new file mode 100644 index 000000000000..fd71f1f2a23c --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/misc/gpaste/default.nix @@ -0,0 +1,51 @@ +{ stdenv, fetchurl, autoreconfHook, pkgconfig, vala, glib, gjs, mutter +, pango, gtk3, gnome3, dbus, clutter, appstream-glib, wrapGAppsHook, systemd, gobject-introspection }: + +stdenv.mkDerivation rec { + version = "3.30.2"; + name = "gpaste-${version}"; + + src = fetchurl { + url = "https://github.com/Keruspe/GPaste/archive/v${version}.tar.gz"; + sha256 = "0vlbvv6rjxq7h9cl3ilndjk7d51ac1x7agj8k6a7bwjx8h1fr62x"; + }; + + patches = [ + ./fix-paths.patch + ]; + + # TODO: switch to substituteAll with placeholder + # https://github.com/NixOS/nix/issues/1846 + postPatch = '' + substituteInPlace src/gnome-shell/extension.js \ + --subst-var-by typelibPath "${placeholder "out"}/lib/girepository-1.0" + substituteInPlace src/gnome-shell/prefs.js \ + --subst-var-by typelibPath "${placeholder "out"}/lib/girepository-1.0" + substituteInPlace src/libgpaste/settings/gpaste-settings.c \ + --subst-var-by gschemasCompiled "${placeholder "out"}/share/gsettings-schemas/${name}/glib-2.0/schemas" + ''; + + nativeBuildInputs = [ + autoreconfHook pkgconfig vala appstream-glib wrapGAppsHook + ]; + buildInputs = [ + glib gjs mutter gtk3 dbus + clutter pango gobject-introspection + ]; + + configureFlags = [ + "--with-controlcenterdir=${placeholder "out"}/share/gnome-control-center/keybindings" + "--with-dbusservicesdir=${placeholder "out"}/share/dbus-1/services" + "--with-systemduserunitdir=${placeholder "out"}/etc/systemd/user" + ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = https://github.com/Keruspe/GPaste; + description = "Clipboard management system with GNOME3 integration"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gpaste/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome-3/misc/gpaste/fix-paths.patch new file mode 100644 index 000000000000..ca6b9a5b22ed --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/misc/gpaste/fix-paths.patch @@ -0,0 +1,55 @@ +--- a/src/gnome-shell/extension.js ++++ b/src/gnome-shell/extension.js +@@ -7,6 +7,8 @@ + + const Config = imports.misc.config; + ++imports.gi.GIRepository.Repository.prepend_search_path('@typelibPath@'); ++ + imports.gi.versions.Clutter = Config.LIBMUTTER_API_VERSION; + imports.gi.versions.GLib = '2.0'; + imports.gi.versions.GPaste = '1.0'; +--- a/src/gnome-shell/prefs.js ++++ b/src/gnome-shell/prefs.js +@@ -7,6 +7,8 @@ + + const Gettext = imports.gettext; + ++imports.gi.GIRepository.Repository.prepend_search_path('@typelibPath@'); ++ + const GPaste = imports.gi.GPaste; + + const ExtensionUtils = imports.misc.extensionUtils; +--- a/src/libgpaste/settings/gpaste-settings.c ++++ b/src/libgpaste/settings/gpaste-settings.c +@@ -22,6 +22,8 @@ + + typedef struct + { ++ GSettingsSchemaSource *schema_source; ++ GSettingsSchema *schema; + GSettings *settings; + GSettings *shell_settings; + +@@ -919,6 +921,8 @@ + { + g_signal_handler_disconnect (settings, priv->c_signals[C_CHANGED]); + g_clear_object (&priv->settings); ++ g_settings_schema_unref (priv->schema); ++ g_settings_schema_source_unref (priv->schema_source); + } + + if (shell_settings) +@@ -1000,7 +1004,11 @@ + g_paste_settings_init (GPasteSettings *self) + { + GPasteSettingsPrivate *priv = g_paste_settings_get_instance_private (self); +- GSettings *settings = priv->settings = g_settings_new (G_PASTE_SETTINGS_NAME); ++ ++ // library used by introspection requires schemas but we cannot set XDG_DATA_DIRS for the library ++ GSettingsSchemaSource *schema_source = priv->schema_source = g_settings_schema_source_new_from_directory ("@gschemasCompiled@", NULL, FALSE, NULL); ++ priv->schema = g_settings_schema_source_lookup (schema_source, G_PASTE_SETTINGS_NAME, FALSE); ++ GSettings *settings = priv->settings = g_settings_new_full (priv->schema, NULL, NULL); + + priv->history_name = NULL; + priv->launch_ui = NULL; diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gtkhtml/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/gtkhtml/default.nix new file mode 100644 index 000000000000..67f2552b4348 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/misc/gtkhtml/default.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchurl, pkgconfig, gtk3, intltool +, gnome3, enchant, isocodes }: + +stdenv.mkDerivation rec { + name = "gtkhtml-${version}"; + version = "4.10.0"; + + src = fetchurl { + url = "mirror://gnome/sources/gtkhtml/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "ca3b6424fb2c7ac5d9cb8fdafb69318fa2e825c9cf6ed17d1e38d9b29e5606c3"; + }; + + passthru = { + updateScript = gnome3.updateScript { packageName = "gtkhtml"; attrPath = "gnome3.gtkhtml"; }; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ gtk3 intltool gnome3.adwaita-icon-theme + gnome3.gsettings-desktop-schemas ]; + + propagatedBuildInputs = [ enchant isocodes ]; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/libgnome-games-support/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/libgnome-games-support/default.nix new file mode 100644 index 000000000000..3776a9adbf2c --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/misc/libgnome-games-support/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchurl, pkgconfig, glib, gtk3, libgee, intltool, gnome3 +, libintl }: + +let + pname = "libgnome-games-support"; + version = "1.4.3"; +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "0g6a1vvhrbs0pfnzjfg3lgqvppwkydn6j3dn713zhrjhma9pljkh"; + }; + + nativeBuildInputs = [ pkgconfig intltool ]; + buildInputs = [ libintl ]; + propagatedBuildInputs = [ + # Required by libgnome-games-support-1.pc + glib gtk3 libgee + ]; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "gnome3.${pname}"; + }; + }; + + meta = with stdenv.lib; { + description = "Small library intended for internal use by GNOME Games, but it may be used by others"; + homepage = https://wiki.gnome.org/Apps/Games; + license = licenses.lgpl3; + maintainers = gnome3.maintainers; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/metacity/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/metacity/default.nix new file mode 100644 index 000000000000..c42356aa16aa --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/misc/metacity/default.nix @@ -0,0 +1,70 @@ +{ stdenv +, fetchurl +, gettext +, glib +, gnome3 +, gsettings-desktop-schemas +, gtk3 +, libcanberra-gtk3 +, libgtop +, libstartup_notification +, libxml2 +, pkgconfig +, substituteAll +, wrapGAppsHook +, zenity }: + +let + pname = "metacity"; + version = "3.30.1"; +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "12kr472gblx7jxh9rvnamy09bkg29ms2pgc0c3373piqmavi24qg"; + }; + + patches = [ + (substituteAll { + src = ./fix-paths.patch; + inherit zenity; + }) + ]; + + nativeBuildInputs = [ + gettext + libxml2 + pkgconfig + wrapGAppsHook + ]; + + buildInputs = [ + glib + gsettings-desktop-schemas + gtk3 + libcanberra-gtk3 + libgtop + libstartup_notification + zenity + ]; + + enableParallelBuilding = true; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "gnome3.${pname}"; + }; + }; + + doCheck = true; + + meta = with stdenv.lib; { + description = "Window manager used in Gnome Flashback"; + homepage = https://wiki.gnome.org/Projects/Metacity; + license = licenses.gpl2; + maintainers = gnome3.maintainers; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/metacity/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome-3/misc/metacity/fix-paths.patch new file mode 100644 index 000000000000..ff3a244e67d9 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/misc/metacity/fix-paths.patch @@ -0,0 +1,11 @@ +--- a/src/core/util.c ++++ b/src/core/util.c +@@ -424,7 +424,7 @@ + g_slist_length (columns)*2 + + g_slist_length (entries))); + +- argvl[i++] = "zenity"; ++ argvl[i++] = "@zenity@/bin/zenity"; + argvl[i++] = type; + argvl[i++] = "--display"; + argvl[i++] = display; diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/nautilus-python/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/nautilus-python/default.nix new file mode 100644 index 000000000000..4aec5ba4d848 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/misc/nautilus-python/default.nix @@ -0,0 +1,62 @@ +{ stdenv +, fetchurl +, pkgconfig +, which +, gtk-doc +, docbook_xsl +, docbook_xml_dtd_412 +, python3 +, ncurses +, nautilus +, gtk3 +, gnome3 +}: + +stdenv.mkDerivation rec { + pname = "nautilus-python"; + version = "1.2.2"; + + outputs = [ "out" "dev" "doc" ]; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "04pib6fan6cq8x0fhf5gll2f5d2dh5pxrhj79qhi5l1yc7ys7kch"; + }; + + nativeBuildInputs = [ + pkgconfig + which + gtk-doc + docbook_xsl + docbook_xml_dtd_412 + ]; + + buildInputs = [ + python3 + ncurses # required by python3 + python3.pkgs.pygobject3 + nautilus + gtk3 # required by libnautilus-extension + ]; + + makeFlags = [ + "PYTHON_LIB_LOC=${python3}/lib" + ]; + + PKG_CONFIG_LIBNAUTILUS_EXTENSION_EXTENSIONDIR = "${placeholder "out"}/lib/nautilus/extensions-3.0"; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "gnome3.${pname}"; + }; + }; + + meta = with stdenv.lib; { + description = "Python bindings for the Nautilus Extension API"; + homepage = https://wiki.gnome.org/Projects/NautilusPython; + license = licenses.gpl2Plus; + maintainers = gnome3.maintainers; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/pidgin/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/pidgin/default.nix new file mode 100644 index 000000000000..c11fdfa6099e --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/misc/pidgin/default.nix @@ -0,0 +1,42 @@ +{ stdenv, fetchFromGitHub, glib }: + +stdenv.mkDerivation rec { + version = "1.0.1"; + basename = "pidgin-im-gnome-shell-extension"; + name = "${basename}-${version}"; + + src = fetchFromGitHub { + owner = "muffinmad"; + repo = "${basename}"; + rev = "v${version}"; + sha256 = "1567s2sfqig4jw0nrn134f5vkx0yq31q044grv3xk4vpl1f3z2lr"; + }; + + buildInputs = [ glib ]; + + configurePhase = ""; + buildPhase = ""; + installPhase = '' + share_dir="$prefix/share" + extensions_dir="$share_dir/gnome-shell/extensions/pidgin@muffinmad" + mkdir -p "$extensions_dir" + mv *.js metadata.json dbus.xml gnome-shell-extension-pidgin.pot "$extensions_dir" + + schemas_dir="$share_dir/gsettings-schemas/${name}/glib-2.0/schemas" + mkdir -p "$schemas_dir" + mv schemas/* "$schemas_dir" # fix Emacs syntax highlighting: */ + glib-compile-schemas "$schemas_dir" + + locale_dir="$share_dir/locale" + mkdir -p "$locale_dir" + mv locale/* $locale_dir # fix Emacs syntax highlighting: */ + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/muffinmad/pidgin-im-gnome-shell-extension; + description = "Make Pidgin IM conversations appear in the Gnome Shell message tray"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/pomodoro/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/pomodoro/default.nix new file mode 100644 index 000000000000..c77d5d89fe33 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/misc/pomodoro/default.nix @@ -0,0 +1,49 @@ +{ stdenv, fetchFromGitHub, fetchpatch, autoconf-archive, appstream-glib, intltool, pkgconfig, libtool, wrapGAppsHook, + dbus-glib, libcanberra, gst_all_1, vala, gnome3, gtk3, libxml2, autoreconfHook, + glib, gobject-introspection, libpeas +}: + +stdenv.mkDerivation rec { + version = "0.13.4"; + name = "gnome-shell-pomodoro-${version}"; + + src = fetchFromGitHub { + owner = "codito"; + repo = "gnome-pomodoro"; + rev = "${version}"; + sha256 = "0fiql99nhj168wbfhvzrhfcm4c4569gikd2zaf10vzszdqjahrl1"; + }; + + patches = [ + # build with Vala ≥ 0.42 + (fetchpatch { + url = https://github.com/codito/gnome-pomodoro/commit/36778823ca5bd94b2aa948e5d8718f84d99d9af0.patch; + sha256 = "0a9x0p5wny3an9xawam9nhpffw5m4kgwj5jvv0g6c2lwlfzrx2rh"; + }) + ]; + + nativeBuildInputs = [ + autoreconfHook vala autoconf-archive libtool intltool appstream-glib + wrapGAppsHook pkgconfig libxml2 + ]; + + buildInputs = [ + glib gobject-introspection libpeas + dbus-glib libcanberra gst_all_1.gstreamer + gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good + gnome3.gsettings-desktop-schemas + gnome3.gnome-shell gtk3 gnome3.adwaita-icon-theme + ]; + + meta = with stdenv.lib; { + homepage = http://gnomepomodoro.org/; + description = "A time management utility for GNOME based on the pomodoro technique"; + longDescription = '' + This GNOME utility helps to manage time according to Pomodoro Technique. + It intends to improve productivity and focus by taking short breaks. + ''; + maintainers = with maintainers; [ jgeerds ]; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} |