diff options
Diffstat (limited to 'pkgs/desktops/gnome-3')
24 files changed, 704 insertions, 57 deletions
diff --git a/pkgs/desktops/gnome-3/apps/gnome-todo/default.nix b/pkgs/desktops/gnome-3/apps/gnome-todo/default.nix new file mode 100644 index 000000000000..8e506b52270a --- /dev/null +++ b/pkgs/desktops/gnome-3/apps/gnome-todo/default.nix @@ -0,0 +1,47 @@ +{ stdenv, fetchurl, meson, ninja, pkgconfig, wrapGAppsHook +, gettext, gnome3, glib, gtk, libpeas +, gnome-online-accounts, gsettings-desktop-schemas +, evolution-data-server, libxml2, libsoup, libical, rest, json-glib }: + +let + pname = "gnome-todo"; + version = "3.28.1"; +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz"; + sha256 = "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"; + }; + + nativeBuildInputs = [ + meson ninja pkgconfig gettext wrapGAppsHook + ]; + buildInputs = [ + glib gtk libpeas gnome-online-accounts + gsettings-desktop-schemas gnome3.defaultIconTheme + # Plug-ins + evolution-data-server libxml2 libsoup libical + rest json-glib + ]; + + postPatch = '' + chmod +x meson_post_install.py + patchShebangs meson_post_install.py + ''; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "gnome3.${pname}"; + }; + }; + + meta = with stdenv.lib; { + description = "Personal task manager for GNOME"; + homepage = https://wiki.gnome.org/Apps/Todo; + license = licenses.gpl3Plus; + maintainers = gnome3.maintainers; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/core/folks/default.nix b/pkgs/desktops/gnome-3/core/folks/default.nix index bea40431a24e..981b8504487b 100644 --- a/pkgs/desktops/gnome-3/core/folks/default.nix +++ b/pkgs/desktops/gnome-3/core/folks/default.nix @@ -20,7 +20,7 @@ in stdenv.mkDerivation rec { vala libsecret libxml2 libsoup nspr nss intltool db ]; nativeBuildInputs = [ pkgconfig ]; - configureFlags = "--disable-fatal-warnings"; + configureFlags = [ "--disable-fatal-warnings" ]; NIX_CFLAGS_COMPILE = ["-I${nss.dev}/include/nss" "-I${dbus-glib.dev}/include/dbus-1.0" "-I${dbus.dev}/include/dbus-1.0"]; diff --git a/pkgs/desktops/gnome-3/core/gcr/default.nix b/pkgs/desktops/gnome-3/core/gcr/default.nix index 61c17a210b43..a324fda0a7e1 100644 --- a/pkgs/desktops/gnome-3/core/gcr/default.nix +++ b/pkgs/desktops/gnome-3/core/gcr/default.nix @@ -1,6 +1,7 @@ { stdenv, fetchurl, pkgconfig, intltool, gnupg, p11-kit, glib , libgcrypt, libtasn1, dbus-glib, gtk, pango, gdk_pixbuf, atk -, gobjectIntrospection, makeWrapper, libxslt, vala, gnome3 }: +, gobjectIntrospection, makeWrapper, libxslt, vala, gnome3 +, python2 }: stdenv.mkDerivation rec { name = "gcr-${version}"; @@ -15,6 +16,10 @@ stdenv.mkDerivation rec { updateScript = gnome3.updateScript { packageName = "gcr"; attrPath = "gnome3.gcr"; }; }; + postPatch = '' + patchShebangs . + ''; + outputs = [ "out" "dev" ]; nativeBuildInputs = [ pkgconfig intltool gobjectIntrospection libxslt makeWrapper vala ]; @@ -27,7 +32,8 @@ stdenv.mkDerivation rec { propagatedBuildInputs = [ glib gtk p11-kit ]; - #doCheck = true; + checkInputs = [ python2 ]; + doCheck = false; # fails 21 out of 603 tests, needs dbus daemon #enableParallelBuilding = true; issues on hydra diff --git a/pkgs/desktops/gnome-3/core/gdm/default.nix b/pkgs/desktops/gnome-3/core/gdm/default.nix index 5ceba1a77194..6c810eb46342 100644 --- a/pkgs/desktops/gnome-3/core/gdm/default.nix +++ b/pkgs/desktops/gnome-3/core/gdm/default.nix @@ -5,11 +5,11 @@ stdenv.mkDerivation rec { name = "gdm-${version}"; - version = "3.28.2"; + version = "3.28.3"; src = fetchurl { url = "mirror://gnome/sources/gdm/${gnome3.versionBranch version}/${name}.tar.xz"; - sha256 = "0wdm1503x66n1crdlmzmincbd2hccpxsdgjsl5anx3yjpdzs0hb0"; + sha256 = "12d1cp2dyca8rwh9y9cg8xn6grdp8nmxkkqwg4xpkr8i8ml65n88"; }; # Only needed to make it build @@ -21,6 +21,7 @@ stdenv.mkDerivation rec { "--sysconfdir=/etc" "--localstatedir=/var" "--with-plymouth=yes" + "--enable-gdm-xsession" "--with-initial-vt=7" "--with-systemdsystemunitdir=$(out)/etc/systemd/system" ]; diff --git a/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix b/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix index 13f4b1ef6389..e909a356866c 100644 --- a/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix +++ b/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix @@ -1,27 +1,26 @@ { stdenv, fetchurl, pkgconfig, libxslt, which, libX11, gnome3, gtk3, glib -, intltool, gnome-doc-utils, xkeyboard_config, isocodes, itstool, wayland -, libseccomp, bubblewrap, gobjectIntrospection }: +, intltool, libxml2, xkeyboard_config, isocodes, itstool, wayland +, libseccomp, bubblewrap, gobjectIntrospection, gtk-doc, docbook_xsl }: stdenv.mkDerivation rec { name = "gnome-desktop-${version}"; version = "3.28.2"; + outputs = [ "out" "dev" "devdoc" ]; + src = fetchurl { url = "mirror://gnome/sources/gnome-desktop/${gnome3.versionBranch version}/${name}.tar.xz"; sha256 = "0c439hhpfd9axmv4af6fzhibksh69pnn2nnbghbbqqbwy6zqfl30"; }; - passthru = { - updateScript = gnome3.updateScript { packageName = "gnome-desktop"; attrPath = "gnome3.gnome-desktop"; }; - }; - - # this should probably be setuphook for glib + # TODO: remove with 3.30 NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0"; enableParallelBuilding = true; nativeBuildInputs = [ - pkgconfig which itstool intltool libxslt gnome-doc-utils gobjectIntrospection + pkgconfig which itstool intltool libxslt libxml2 gobjectIntrospection + gtk-doc docbook_xsl ]; buildInputs = [ libX11 bubblewrap xkeyboard_config isocodes wayland @@ -34,11 +33,22 @@ stdenv.mkDerivation rec { ./bubblewrap-paths.patch ]; + configureFlags = [ + "--enable-gtk-doc" + ]; + postPatch = '' substituteInPlace libgnome-desktop/gnome-desktop-thumbnail-script.c --subst-var-by \ BUBBLEWRAP_BIN "${bubblewrap}/bin/bwrap" ''; + passthru = { + updateScript = gnome3.updateScript { + packageName = "gnome-desktop"; + attrPath = "gnome3.gnome-desktop"; + }; + }; + meta = with stdenv.lib; { description = "Library with common API for various GNOME modules"; license = with licenses; [ gpl2 lgpl2 ]; diff --git a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix index 39108141c93c..acb32bc174ca 100644 --- a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix +++ b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix @@ -22,14 +22,11 @@ stdenv.mkDerivation rec { pango gcr gdk_pixbuf atk p11-kit ]; - # In 3.20.1, tests do not support Python 3 - checkInputs = [ dbus python2 ]; - propagatedBuildInputs = [ glib libtasn1 libxslt ]; nativeBuildInputs = [ pkgconfig intltool docbook_xsl docbook_xml_dtd_42 wrapGAppsHook - ] ++ stdenv.lib.optionals doCheck checkInputs; + ]; configureFlags = [ "--with-pkcs11-config=$$out/etc/pkcs11/" # installation directories @@ -41,6 +38,9 @@ stdenv.mkDerivation rec { ''; doCheck = true; + # In 3.20.1, tests do not support Python 3 + checkInputs = [ dbus python2 ]; + checkPhase = '' export HOME=$(mktemp -d) dbus-run-session \ diff --git a/pkgs/desktops/gnome-3/core/gnome-session/default.nix b/pkgs/desktops/gnome-3/core/gnome-session/default.nix index 7b407aad5068..1882f19bb223 100644 --- a/pkgs/desktops/gnome-3/core/gnome-session/default.nix +++ b/pkgs/desktops/gnome-3/core/gnome-session/default.nix @@ -1,4 +1,4 @@ -{ fetchurl, stdenv, meson, ninja, pkgconfig, gnome3, glib, gtk, gsettings-desktop-schemas +{ fetchurl, stdenv, substituteAll, meson, ninja, pkgconfig, gnome3, glib, gtk, gsettings-desktop-schemas , gnome-desktop, dbus, json-glib, libICE, xmlto, docbook_xsl, docbook_xml_dtd_412 , libxslt, gettext, makeWrapper, systemd, xorg, epoxy }: @@ -11,6 +11,15 @@ stdenv.mkDerivation rec { sha256 = "14nmbirgrp2nm16khbz109saqdlinlbrlhjnbjydpnrlimfgg4xq"; }; + patches = [ + (substituteAll { + src = ./fix-paths.patch; + # FIXME: glib binaries shouldn't be in .dev! + gsettings = "${glib.dev}/bin/gsettings"; + dbusLaunch = "${dbus.lib}/bin/dbus-launch"; + }) + ]; + mesonFlags = [ "-Dsystemd=true" ]; nativeBuildInputs = [ @@ -29,15 +38,13 @@ stdenv.mkDerivation rec { patchShebangs meson_post_install.py ''; - # FIXME: glib binaries shouldn't be in .dev! preFixup = '' for desktopFile in $(grep -rl "Exec=gnome-session" $out/share) do echo "Patching gnome-session path in: $desktopFile" - sed -i "s,^Exec=gnome-session,Exec=$out/bin/gnome-session," $desktopFile + sed -i "s,Exec=gnome-session,Exec=$out/bin/gnome-session," $desktopFile done wrapProgram "$out/bin/gnome-session" \ - --prefix PATH : "${glib.dev}/bin" \ --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ --suffix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" \ --suffix XDG_DATA_DIRS : "${gnome3.gnome-shell}/share"\ diff --git a/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch b/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch new file mode 100644 index 000000000000..3c56fd730e44 --- /dev/null +++ b/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch @@ -0,0 +1,22 @@ +--- a/gnome-session/gnome-session.in ++++ b/gnome-session/gnome-session.in +@@ -13,7 +13,7 @@ + fi + fi + +-SETTING=$(gsettings get org.gnome.system.locale region) ++SETTING=$(@gsettings@ get org.gnome.system.locale region) + REGION=${SETTING#\'} + REGION=${REGION%\'} + +--- a/gnome-session/main.c ++++ b/gnome-session/main.c +@@ -203,7 +203,7 @@ + } + new_argv[i + 2] = NULL; + +- if (!execvp ("dbus-launch", new_argv)) { ++ if (!execvp ("@dbusLaunch@", new_argv)) { + g_set_error (error, + G_SPAWN_ERROR, + G_SPAWN_ERROR_FAILED, diff --git a/pkgs/desktops/gnome-3/core/gnome-software/default.nix b/pkgs/desktops/gnome-3/core/gnome-software/default.nix index 81d401f8da2e..6172f2165439 100644 --- a/pkgs/desktops/gnome-3/core/gnome-software/default.nix +++ b/pkgs/desktops/gnome-3/core/gnome-software/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, substituteAll, pkgconfig, meson, ninja, gettext, gnome3, wrapGAppsHook, packagekit, ostree -, glib, appstream-glib, libsoup, polkit, isocodes, gspell, libxslt, gobjectIntrospection, flatpak +, glib, appstream-glib, libsoup, polkit, isocodes, gspell, libxslt, gobjectIntrospection, flatpak, fwupd , json-glib, libsecret, valgrind-light, docbook_xsl, docbook_xml_dtd_42, gtk-doc, desktop-file-utils }: stdenv.mkDerivation rec { @@ -27,12 +27,11 @@ stdenv.mkDerivation rec { gnome3.gtk glib packagekit appstream-glib libsoup gnome3.gsettings-desktop-schemas gnome3.gnome-desktop gspell json-glib libsecret ostree - polkit flatpak + polkit flatpak fwupd ]; mesonFlags = [ "-Denable-rpm=false" - "-Denable-fwupd=false" "-Denable-oauth=false" "-Denable-ubuntu-reviews=false" "-Denable-gudev=false" diff --git a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix index d224f0561703..a0318514c9b9 100644 --- a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix +++ b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix @@ -1,6 +1,6 @@ -{ stdenv, fetchurl, pkgconfig, libxml2, gnome3 -, gnome-doc-utils, intltool, which, libuuid, vala -, desktop-file-utils, itstool, wrapGAppsHook, appdata-tools }: +{ stdenv, fetchurl, pkgconfig, libxml2, gnome3, dconf, nautilus +, gtk, gsettings-desktop-schemas, vte, intltool, which, libuuid, vala +, desktop-file-utils, itstool, wrapGAppsHook }: stdenv.mkDerivation rec { name = "gnome-terminal-${version}"; @@ -11,15 +11,16 @@ stdenv.mkDerivation rec { sha256 = "0ybjansg6lr279191w8z8r45gy4rxwzw1ajm98cgkv0fk2jdr0x2"; }; - passthru = { - updateScript = gnome3.updateScript { packageName = "gnome-terminal"; attrPath = "gnome3.gnome-terminal"; }; - }; - - buildInputs = [ gnome3.gtk gnome3.gsettings-desktop-schemas gnome3.vte appdata-tools - gnome3.dconf itstool gnome3.nautilus ]; + buildInputs = [ + gtk gsettings-desktop-schemas vte libuuid dconf + # For extension + nautilus + ]; - nativeBuildInputs = [ pkgconfig intltool gnome-doc-utils which libuuid libxml2 - vala desktop-file-utils wrapGAppsHook ]; + nativeBuildInputs = [ + pkgconfig intltool itstool which libxml2 + vala desktop-file-utils wrapGAppsHook + ]; # Silly ./configure, it looks for dbus file from gnome-shell in the # installation tree of the package it is configuring. @@ -28,15 +29,22 @@ stdenv.mkDerivation rec { substituteInPlace src/Makefile.in --replace '$(dbusinterfacedir)/org.gnome.ShellSearchProvider2.xml' "${gnome3.gnome-shell}/share/dbus-1/interfaces/org.gnome.ShellSearchProvider2.xml" ''; - # FIXME: enable for gnome3 - configureFlags = [ "--disable-migration" ]; + configureFlags = [ "--disable-migration" ]; # TODO: remove this with 3.30 + + passthru = { + updateScript = gnome3.updateScript { + packageName = "gnome-terminal"; + attrPath = "gnome3.gnome-terminal"; + }; + }; enableParallelBuilding = true; meta = with stdenv.lib; { description = "The GNOME Terminal Emulator"; - homepage = https://wiki.gnome.org/Apps/Terminal/; + homepage = https://wiki.gnome.org/Apps/Terminal; platforms = platforms.linux; + license = licenses.gpl3Plus; maintainers = gnome3.maintainers; }; } diff --git a/pkgs/desktops/gnome-3/core/gucharmap/default.nix b/pkgs/desktops/gnome-3/core/gucharmap/default.nix index 861702a3986e..797eb00bd3ff 100644 --- a/pkgs/desktops/gnome-3/core/gucharmap/default.nix +++ b/pkgs/desktops/gnome-3/core/gucharmap/default.nix @@ -1,6 +1,7 @@ -{ stdenv, intltool, fetchFromGitLab, pkgconfig, gtk3, defaultIconTheme -, glib, desktop-file-utils, appdata-tools, gtk-doc, autoconf, automake, libtool -, wrapGAppsHook, gnome3, itstool, libxml2 +{ stdenv, intltool, fetchFromGitLab, fetchpatch, pkgconfig, gtk3, defaultIconTheme +, glib, desktop-file-utils, gtk-doc, autoconf, automake, libtool +, wrapGAppsHook, gnome3, itstool, libxml2, yelp-tools +, docbook_xsl, docbook_xml_dtd_412, gsettings-desktop-schemas , callPackage, unzip, gobjectIntrospection }: let @@ -9,6 +10,8 @@ in stdenv.mkDerivation rec { name = "gucharmap-${version}"; version = "11.0.1"; + outputs = [ "out" "lib" "dev" "devdoc" ]; + src = fetchFromGitLab { domain = "gitlab.gnome.org"; owner = "GNOME"; @@ -17,16 +20,26 @@ in stdenv.mkDerivation rec { sha256 = "13iw4fa6mv8vi8bkwk0bbhamnzbaih0c93p4rh07khq6mxa6hnpi"; }; + patches = [ + # Fix locale path to allow split outputs + # https://gitlab.gnome.org/GNOME/gucharmap/issues/10 + (fetchpatch { + url = https://gitlab.gnome.org/GNOME/gucharmap/commit/b2b03f16aa869ac0ec1a05c55c4d4e4c4b513576.patch; + sha256 = "1543mcyz96x23m9pzx04ny15m4a2pqmiksl1y5r51k3sw4fyisci"; + }) + ]; + nativeBuildInputs = [ - pkgconfig wrapGAppsHook unzip intltool itstool appdata-tools - autoconf automake libtool gtk-doc - gnome3.yelp-tools libxml2 desktop-file-utils gobjectIntrospection + pkgconfig wrapGAppsHook unzip intltool itstool + autoconf automake libtool gtk-doc docbook_xsl docbook_xml_dtd_412 + yelp-tools libxml2 desktop-file-utils gobjectIntrospection ]; - buildInputs = [ gtk3 glib gnome3.gsettings-desktop-schemas defaultIconTheme ]; + buildInputs = [ gtk3 glib gsettings-desktop-schemas defaultIconTheme ]; configureFlags = [ "--with-unicode-data=${unicode-data}" + "--enable-gtk-doc" ]; doCheck = true; diff --git a/pkgs/desktops/gnome-3/core/rest/default.nix b/pkgs/desktops/gnome-3/core/rest/default.nix index 9cd36cd77503..aeef5114435d 100644 --- a/pkgs/desktops/gnome-3/core/rest/default.nix +++ b/pkgs/desktops/gnome-3/core/rest/default.nix @@ -14,7 +14,7 @@ in stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig ]; buildInputs = [ glib libsoup gobjectIntrospection]; - configureFlags = "--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt"; + configureFlags = [ "--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt" ]; passthru = { updateScript = gnome3.updateScript { diff --git a/pkgs/desktops/gnome-3/core/vte/default.nix b/pkgs/desktops/gnome-3/core/vte/default.nix index 17385ab72029..47a2c2f19d3b 100644 --- a/pkgs/desktops/gnome-3/core/vte/default.nix +++ b/pkgs/desktops/gnome-3/core/vte/default.nix @@ -19,7 +19,12 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ gobjectIntrospection intltool pkgconfig vala gperf libxml2 ]; buildInputs = [ gnome3.glib gnome3.gtk3 ncurses ]; - propagatedBuildInputs = [ gnutls pcre2 ]; + propagatedBuildInputs = [ + # Required by vte-2.91.pc. + gnome3.gtk3 + gnutls + pcre2 + ]; preConfigure = "patchShebangs ."; diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix index 15707575e7f3..18db0e5ba812 100644 --- a/pkgs/desktops/gnome-3/default.nix +++ b/pkgs/desktops/gnome-3/default.nix @@ -30,11 +30,11 @@ lib.makeScope pkgs.newScope (self: with self; { nautilus-sendto dconf-editor vinagre gnome-weather gnome-logs gnome-maps gnome-characters gnome-calendar accerciser gnome-nettool gnome-getting-started-docs gnome-packagekit gnome-software - gnome-power-manager gnome-usage + gnome-power-manager gnome-todo gnome-usage ]; gamesPackages = with gnome3; [ swell-foop lightsoff iagno - tali quadrapassel gnome-sudoku aisleriot five-or-more + tali quadrapassel gnome-sudoku atomix aisleriot five-or-more four-in-a-row gnome-chess gnome-klotski gnome-mahjongg gnome-mines gnome-nibbles gnome-robots gnome-tetravex hitori gnome-taquin @@ -187,31 +187,31 @@ lib.makeScope pkgs.newScope (self: with self; { nautilus = callPackage ./core/nautilus { }; networkmanager-openvpn = pkgs.networkmanager-openvpn.override { - inherit gnome3; + withGnome = true; }; networkmanager-vpnc = pkgs.networkmanager-vpnc.override { - inherit gnome3; + withGnome = true; }; networkmanager-openconnect = pkgs.networkmanager-openconnect.override { - inherit gnome3; + withGnome = true; }; networkmanager-fortisslvpn = pkgs.networkmanager-fortisslvpn.override { - inherit gnome3; + withGnome = true; }; networkmanager-l2tp = pkgs.networkmanager-l2tp.override { - inherit gnome3; + withGnome = true; }; networkmanager-iodine = pkgs.networkmanager-iodine.override { - inherit gnome3; + withGnome = true; }; networkmanagerapplet = pkgs.networkmanagerapplet.override { - inherit gnome3 gsettings-desktop-schemas glib-networking; + withGnome = true; }; rest = callPackage ./core/rest { }; @@ -291,6 +291,8 @@ lib.makeScope pkgs.newScope (self: with self; { gnome-sound-recorder = callPackage ./apps/gnome-sound-recorder { }; + gnome-todo = callPackage ./apps/gnome-todo {}; + gnome-weather = callPackage ./apps/gnome-weather { }; nautilus-sendto = callPackage ./apps/nautilus-sendto { }; @@ -317,6 +319,8 @@ lib.makeScope pkgs.newScope (self: with self; { aisleriot = callPackage ./games/aisleriot { }; + atomix = callPackage ./games/atomix { }; + five-or-more = callPackage ./games/five-or-more { }; four-in-a-row = callPackage ./games/four-in-a-row { }; @@ -371,10 +375,18 @@ lib.makeScope pkgs.newScope (self: with self; { gexiv2 = callPackage ./misc/gexiv2 { }; + gnome-applets = callPackage ./misc/gnome-applets { }; + + gnome-flashback = callPackage ./misc/gnome-flashback { }; + + gnome-panel = callPackage ./misc/gnome-panel { }; + gnome-tweaks = callPackage ./misc/gnome-tweaks { }; gpaste = callPackage ./misc/gpaste { }; + metacity = callPackage ./misc/metacity { }; + pidgin-im-gnome-shell-extension = callPackage ./misc/pidgin { }; gtkhtml = callPackage ./misc/gtkhtml { }; diff --git a/pkgs/desktops/gnome-3/games/atomix/default.nix b/pkgs/desktops/gnome-3/games/atomix/default.nix new file mode 100644 index 000000000000..8ea4b82ca039 --- /dev/null +++ b/pkgs/desktops/gnome-3/games/atomix/default.nix @@ -0,0 +1,37 @@ +{ stdenv, fetchurl, meson, ninja, pkgconfig, wrapGAppsHook +, gettext, gnome3, glib, gtk3, libgnome-games-support, gdk_pixbuf }: + +let + pname = "atomix"; + version = "3.29.3"; +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "1k8bvwywpvw5f13pw40brk6c3rz2mdz9cd4zhcawg7qdm77dvcvb"; + }; + + nativeBuildInputs = [ meson ninja pkgconfig gettext wrapGAppsHook ]; + buildInputs = [ glib gtk3 gdk_pixbuf libgnome-games-support gnome3.defaultIconTheme ]; + + postPatch = '' + chmod +x meson_post_install.py + patchShebangs meson_post_install.py + ''; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "gnome3.${pname}"; + }; + }; + + meta = with stdenv.lib; { + description = "Puzzle game where you move atoms to build a molecule"; + homepage = https://wiki.gnome.org/Apps/Atomix; + license = licenses.gpl2Plus; + maintainers = gnome3.maintainers; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix b/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix new file mode 100644 index 000000000000..cbf8bc9707bf --- /dev/null +++ b/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix @@ -0,0 +1,110 @@ +{ stdenv +, fetchurl +, fetchpatch +, autoreconfHook +, 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.28.0"; +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "0wd6pirv57rcxm5d32r1s3ni7sp26gnqd4qhjciw0pn5ak627y5h"; + }; + + patches = [ + # https://github.com/NixOS/nixpkgs/issues/36468 + # https://gitlab.gnome.org/GNOME/gnome-applets/issues/3 + (fetchpatch { + url = https://gitlab.gnome.org/GNOME/gnome-applets/commit/1ee719581c33d7d640ae9f656e4e9b192bafef78.patch; + sha256 = "05wim7d2ii3pxph3n3am76cvnxmkfpggk0cpy8p5xgm3hcibwfrf"; + }) + (fetchpatch { + url = https://gitlab.gnome.org/GNOME/gnome-applets/commit/1fa778b01f0e6b70678b0e5755ca0ed7a093fa75.patch; + sha256 = "0kppqywn0ab18p64ixz0b58cn5bpqf0xy71bycldlc5ybpdx5mq0"; + }) + + # https://gitlab.gnome.org/GNOME/gnome-applets/issues/4 + (fetchpatch { + url = https://gitlab.gnome.org/GNOME/gnome-applets/commit/e14482a90e6113f211e9328d8c39a69bdf5111d8.patch; + sha256 = "10ac0kk38hxqh8yvdlriyyv809qrxbpy9ihp01gizhiw7qpz97ff"; + }) + ]; + + nativeBuildInputs = [ + autoreconfHook + 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/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix b/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix new file mode 100644 index 000000000000..f3f2cf992571 --- /dev/null +++ b/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix @@ -0,0 +1,92 @@ +{ stdenv +, autoreconfHook +, fetchurl +, fetchpatch +, gettext +, glib +, gnome-bluetooth +, gnome-desktop +, gnome-session +, gnome3 +, gsettings-desktop-schemas +, gtk +, ibus +, intltool +, libcanberra-gtk3 +, libpulseaudio +, libxkbfile +, libxml2 +, metacity +, pkgconfig +, polkit +, substituteAll +, upower +, xkeyboard_config }: + +let + pname = "gnome-flashback"; + version = "3.28.0"; +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "1ra8bfwgwqw47zx2h1q999g7l4dnqh7sv02if3zk8pkw3sm769hg"; + }; + + patches =[ + (substituteAll { + src = ./fix-paths.patch; + inherit metacity; + gnomeSession = gnome-session; + }) + + # https://github.com/NixOS/nixpkgs/issues/36468 + # https://gitlab.gnome.org/GNOME/gnome-flashback/issues/3 + (fetchpatch { + url = https://gitlab.gnome.org/GNOME/gnome-flashback/commit/eabd34f64adc43b8783920bd7a2177ce21f83fbc.patch; + sha256 = "116c5zy8cp7d06mrsn943q7vj166086jzrfzfqg7yli14pmf9w1a"; + }) + ]; + + nativeBuildInputs = [ + autoreconfHook + gettext + libxml2 + pkgconfig + ]; + + buildInputs = [ + glib + gnome-bluetooth + gnome-desktop + gsettings-desktop-schemas + gtk + ibus + libcanberra-gtk3 + libpulseaudio + libxkbfile + polkit + upower + xkeyboard_config + ]; + + doCheck = true; + + enableParallelBuilding = true; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "gnome3.${pname}"; + }; + }; + + 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; + }; +} diff --git a/pkgs/desktops/gnome-3/misc/gnome-flashback/fix-paths.patch b/pkgs/desktops/gnome-3/misc/gnome-flashback/fix-paths.patch new file mode 100644 index 000000000000..9d5add233d61 --- /dev/null +++ b/pkgs/desktops/gnome-3/misc/gnome-flashback/fix-paths.patch @@ -0,0 +1,30 @@ +--- a/data/Makefile.am ++++ b/data/Makefile.am +@@ -22,7 +22,7 @@ + echo 'if [ -z $$XDG_CURRENT_DESKTOP ]; then' && \ + echo ' export XDG_CURRENT_DESKTOP="GNOME-Flashback:GNOME"' && \ + echo 'fi' && echo '' && \ +- echo 'exec gnome-session --session=gnome-flashback-compiz "$$@"') > $@ ++ echo 'exec @gnomeSession@/bin/gnome-session --session=gnome-flashback-compiz "$$@"') > $@ + $(AM_V_at) chmod a+x $@ + + gnome-flashback-metacity: Makefile +@@ -30,7 +30,7 @@ + echo 'if [ -z $$XDG_CURRENT_DESKTOP ]; then' && \ + echo ' export XDG_CURRENT_DESKTOP="GNOME-Flashback:GNOME"' && \ + echo 'fi' && echo '' && \ +- echo 'exec gnome-session --session=gnome-flashback-metacity --disable-acceleration-check "$$@"') > $@ ++ echo 'exec @gnomeSession@/bin/gnome-session --session=gnome-flashback-metacity --disable-acceleration-check "$$@"') > $@ + $(AM_V_at) chmod a+x $@ + + CLEANFILES = \ +--- a/data/xsessions/gnome-flashback-metacity.desktop.in.in ++++ b/data/xsessions/gnome-flashback-metacity.desktop.in.in +@@ -2,6 +2,6 @@ + Name=GNOME Flashback (Metacity) + Comment=This session logs you into GNOME Flashback with Metacity + Exec=@libexecdir@/gnome-flashback-metacity +-TryExec=metacity ++TryExec=@metacity@/bin/metacity + Type=Application + DesktopNames=GNOME-Flashback;GNOME; diff --git a/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix b/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix new file mode 100644 index 000000000000..5c40b4c8f441 --- /dev/null +++ b/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix @@ -0,0 +1,92 @@ +{ stdenv +, fetchurl +, autoreconfHook +, fetchpatch +, dconf +, evolution-data-server +, gdm +, gettext +, glib +, gnome-desktop +, gnome-menus +, gnome3 +, gtk +, itstool +, libgweather +, libsoup +, libwnck3 +, libxml2 +, pkgconfig +, polkit +, systemd +, wrapGAppsHook }: + +let + pname = "gnome-panel"; + version = "3.28.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 = "1004cp9cxqpic9lsraqn5c1739acn4sn4ql3c1fja99hv22h1ziv"; + }; + + patches = [ + # https://github.com/NixOS/nixpkgs/issues/36468 + # https://gitlab.gnome.org/GNOME/gnome-panel/issues/6 + (fetchpatch { + url = https://gitlab.gnome.org/GNOME/gnome-panel/commit/be26e170a10c297949a6d9f3cbc70b6caaf04b56.patch; + sha256 = "10gxl9fwbv5j0s1lz7gkz6wqpda5wfzs49r5khbk1h05lv0hk4l4"; + }) + ]; + + nativeBuildInputs = [ + autoreconfHook + gettext + itstool + libxml2 + pkgconfig + wrapGAppsHook + ]; + + buildInputs = [ + dconf + evolution-data-server + gdm + glib + gnome-desktop + gnome-menus + gtk + 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/pkgs/desktops/gnome-3/misc/gpaste/default.nix b/pkgs/desktops/gnome-3/misc/gpaste/default.nix index a01820578733..add6addaec08 100644 --- a/pkgs/desktops/gnome-3/misc/gpaste/default.nix +++ b/pkgs/desktops/gnome-3/misc/gpaste/default.nix @@ -10,6 +10,22 @@ stdenv.mkDerivation rec { sha256 = "1zfx73qpw976hyzp5k569lywsq2b6dbnnzf2cvhjvn3mvkw8pin2"; }; + patches = [ + ./fix-paths.patch + ]; + + # TODO: switch to substituteAll with placeholder + # https://github.com/NixOS/nix/issues/1846 + # https://github.com/NixOS/nixpkgs/pull/37693 + postPatch = '' + substituteInPlace src/gnome-shell/extension.js \ + --subst-var-by typelibPath "$out/lib/girepository-1.0" + substituteInPlace src/gnome-shell/prefs.js \ + --subst-var-by typelibPath "$out/lib/girepository-1.0" + substituteInPlace src/libgpaste/settings/gpaste-settings.c \ + --subst-var-by gschemasCompiled "$out/share/gsettings-schemas/${name}/glib-2.0/schemas" + ''; + nativeBuildInputs = [ autoreconfHook pkgconfig vala wrapGAppsHook ]; buildInputs = [ glib gjs mutter gnome3.adwaita-icon-theme gtk3 gnome3.gnome-control-center dbus diff --git a/pkgs/desktops/gnome-3/misc/gpaste/fix-paths.patch b/pkgs/desktops/gnome-3/misc/gpaste/fix-paths.patch new file mode 100644 index 000000000000..ca6b9a5b22ed --- /dev/null +++ b/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/pkgs/desktops/gnome-3/misc/libgnome-games-support/default.nix b/pkgs/desktops/gnome-3/misc/libgnome-games-support/default.nix index 3b580abed12c..7e28c90813a0 100644 --- a/pkgs/desktops/gnome-3/misc/libgnome-games-support/default.nix +++ b/pkgs/desktops/gnome-3/misc/libgnome-games-support/default.nix @@ -13,7 +13,11 @@ in stdenv.mkDerivation rec { }; nativeBuildInputs = [ pkgconfig intltool ]; - buildInputs = [ glib gtk3 libgee libintl ]; + buildInputs = [ libintl ]; + propagatedBuildInputs = [ + # Required by libgnome-games-support-1.pc + glib gtk3 libgee + ]; passthru = { updateScript = gnome3.updateScript { diff --git a/pkgs/desktops/gnome-3/misc/metacity/default.nix b/pkgs/desktops/gnome-3/misc/metacity/default.nix new file mode 100644 index 000000000000..46ff2c118137 --- /dev/null +++ b/pkgs/desktops/gnome-3/misc/metacity/default.nix @@ -0,0 +1,70 @@ +{ stdenv +, fetchurl +, gettext +, glib +, gnome3 +, gsettings-desktop-schemas +, gtk +, libcanberra-gtk3 +, libgtop +, libstartup_notification +, libxml2 +, pkgconfig +, substituteAll +, wrapGAppsHook +, zenity }: + +let + pname = "metacity"; + version = "3.28.0"; +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "0kzap0lzlkcgkna3h426xgwrn2zpipy8cfsxpfynnaf74vyas3aw"; + }; + + patches = [ + (substituteAll { + src = ./fix-paths.patch; + inherit zenity; + }) + ]; + + nativeBuildInputs = [ + gettext + libxml2 + pkgconfig + wrapGAppsHook + ]; + + buildInputs = [ + glib + gsettings-desktop-schemas + gtk + 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/pkgs/desktops/gnome-3/misc/metacity/fix-paths.patch b/pkgs/desktops/gnome-3/misc/metacity/fix-paths.patch new file mode 100644 index 000000000000..ff3a244e67d9 --- /dev/null +++ b/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; |