diff options
Diffstat (limited to 'nixpkgs/pkgs/desktops/gnome/apps')
28 files changed, 2195 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/desktops/gnome/apps/accerciser/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/accerciser/default.nix new file mode 100644 index 000000000000..9c099f65295b --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/apps/accerciser/default.nix @@ -0,0 +1,74 @@ +{ lib +, fetchurl +, pkg-config +, gnome +, gtk3 +, wrapGAppsHook +, gobject-introspection +, itstool +, libxml2 +, python3 +, at-spi2-core +, dbus +, gettext +, libwnck +, adwaita-icon-theme +}: + +python3.pkgs.buildPythonApplication rec { + pname = "accerciser"; + version = "3.38.0"; + + format = "other"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "0fd9vv2abd2if2qj4nlfy7mpd7rc4sx18zhmxd5ijlnfhkpggbp5"; + }; + + nativeBuildInputs = [ + gettext + gobject-introspection # For setup hook + itstool + libxml2 + pkg-config + dbus + wrapGAppsHook + ]; + + buildInputs = [ + adwaita-icon-theme + at-spi2-core + gtk3 + libwnck + ]; + + propagatedBuildInputs = with python3.pkgs; [ + ipython + pyatspi + pycairo + pygobject3 + setuptools + xlib + ]; + + # Strict deps breaks accerciser + # and https://github.com/NixOS/nixpkgs/issues/56943 + strictDeps = false; + + passthru = { + updateScript = gnome.updateScript { + packageName = "accerciser"; + attrPath = "gnome.accerciser"; + versionPolicy = "odd-unstable"; + }; + }; + + meta = with lib; { + homepage = "https://wiki.gnome.org/Apps/Accerciser"; + description = "Interactive Python accessibility explorer"; + maintainers = teams.gnome.members; + license = licenses.bsd3; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome/apps/cheese/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/cheese/default.nix new file mode 100644 index 000000000000..a6d70d162c08 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/apps/cheese/default.nix @@ -0,0 +1,114 @@ +{ lib +, stdenv +, gettext +, fetchurl +, wrapGAppsHook +, gnome-video-effects +, libcanberra-gtk3 +, pkg-config +, gtk3 +, glib +, clutter-gtk +, clutter-gst +, gst_all_1 +, itstool +, vala +, docbook_xml_dtd_43 +, docbook-xsl-nons +, appstream-glib +, libxslt +, gtk-doc +, adwaita-icon-theme +, librsvg +, totem +, gdk-pixbuf +, gnome +, gnome-desktop +, libxml2 +, meson +, ninja +, dbus +, python3 +, pipewire +}: + +stdenv.mkDerivation rec { + pname = "cheese"; + version = "41.1"; + + outputs = [ "out" "man" "devdoc" ]; + + src = fetchurl { + url = "mirror://gnome/sources/cheese/${lib.versions.major version}/${pname}-${version}.tar.xz"; + sha256 = "UilgyihzD/ZkOQcLBEGMngpLtVVg11v+CLIY2ixn5Uc="; + }; + + nativeBuildInputs = [ + appstream-glib + docbook_xml_dtd_43 + docbook-xsl-nons + gettext + gtk-doc + itstool + libxml2 + libxslt # for xsltproc + meson + ninja + pkg-config + python3 + vala + wrapGAppsHook + glib # for glib-compile-schemas + ]; + + buildInputs = [ + adwaita-icon-theme + clutter-gst + clutter-gtk + dbus + gdk-pixbuf + glib + gnome-desktop + gnome-video-effects + gst_all_1.gst-plugins-bad + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good + gst_all_1.gstreamer + gtk3 + libcanberra-gtk3 + librsvg + pipewire # PipeWire provides a gstreamer plugin for using PipeWire for video + ]; + + postPatch = '' + chmod +x meson_post_install.py + patchShebangs meson_post_install.py + ''; + + preFixup = '' + gappsWrapperArgs+=( + # Effects + --prefix XDG_DATA_DIRS : "${gnome-video-effects}/share" + # vp8enc preset + --prefix GST_PRESET_PATH : "${gst_all_1.gst-plugins-good}/share/gstreamer-1.0/presets" + # Thumbnailers + --prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share" + --prefix XDG_DATA_DIRS : "${totem}/share" + ) + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = "cheese"; + attrPath = "gnome.cheese"; + }; + }; + + meta = with lib; { + homepage = "https://wiki.gnome.org/Apps/Cheese"; + description = "Take photos and videos with your webcam, with fun graphical effects"; + maintainers = teams.gnome.members; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome/apps/file-roller/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/file-roller/default.nix new file mode 100644 index 000000000000..c4c489dae08e --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/apps/file-roller/default.nix @@ -0,0 +1,105 @@ +{ lib +, stdenv +, fetchurl +, fetchpatch +, desktop-file-utils +, gettext +, glibcLocales +, itstool +, libxml2 +, meson +, ninja +, pkg-config +, python3 +, wrapGAppsHook +, cpio +, file +, glib +, gnome +, gtk3 +, json-glib +, libarchive +, libnotify +, nautilus +, pantheon +, unzip +, withPantheon ? false +}: + +stdenv.mkDerivation rec { + pname = "file-roller"; + version = "3.40.0"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "039w1dcpa5ypmv6sm634alk9vbcdkyvy595vkh5gn032jsiqca2a"; + }; + + patches = lib.optionals withPantheon [ + # Make this respect dark mode settings from Pantheon + # https://github.com/elementary/fileroller/ + (fetchpatch { + url = "https://raw.githubusercontent.com/elementary/fileroller/f183eac36c68c9c9441e72294d4e305cf5fe36ed/fr-application-prefers-color-scheme.patch"; + sha256 = "sha256-d/sqf4Oen9UrzYqru7Ck15o/6g6WfxRDH/iAGFXgYAA="; + }) + ]; + + LANG = "en_US.UTF-8"; # postinstall.py + + nativeBuildInputs = [ + desktop-file-utils + gettext + glibcLocales + itstool + libxml2 + meson + ninja + pkg-config + python3 + wrapGAppsHook + ]; + + buildInputs = [ + cpio + file + glib + gnome.adwaita-icon-theme + gtk3 + json-glib + libarchive + libnotify + nautilus + ] ++ lib.optionals withPantheon [ + pantheon.granite + ]; + + PKG_CONFIG_LIBNAUTILUS_EXTENSION_EXTENSIONDIR = "${placeholder "out"}/lib/nautilus/extensions-3.0"; + + postPatch = '' + chmod +x postinstall.py # patchShebangs requires executable file + patchShebangs postinstall.py + patchShebangs data/set-mime-type-entry.py + ''; + + preFixup = '' + # Workaround because of https://gitlab.gnome.org/GNOME/file-roller/issues/40 + gappsWrapperArgs+=( + --prefix PATH : ${lib.makeBinPath [ unzip ]} + ) + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = "file-roller"; + attrPath = "gnome.file-roller"; + }; + }; + + meta = with lib; { + homepage = "https://wiki.gnome.org/Apps/FileRoller"; + description = "Archive manager for the GNOME desktop environment"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = teams.gnome.members ++ teams.pantheon.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gedit/correct-gir-lib-path.patch b/nixpkgs/pkgs/desktops/gnome/apps/gedit/correct-gir-lib-path.patch new file mode 100644 index 000000000000..b3689e420669 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/apps/gedit/correct-gir-lib-path.patch @@ -0,0 +1,13 @@ +diff --git a/gedit/meson.build b/gedit/meson.build +index a8683e61a..fc48669f7 100644 +--- a/gedit/meson.build ++++ b/gedit/meson.build +@@ -191,7 +191,7 @@ libgedit_shared_lib = shared_library( + c_args: libgedit_c_args, + link_args: libgedit_link_args, + install: true, +- install_dir: get_option('libdir') / 'gedit', ++ install_dir: get_option('prefix') / get_option('libdir') / 'gedit', + ) + + # GObject Introspection diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gedit/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gedit/default.nix new file mode 100644 index 000000000000..b8783e4db462 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/apps/gedit/default.nix @@ -0,0 +1,88 @@ +{ stdenv +, lib +, meson +, fetchurl +, python3 +, pkg-config +, gtk3 +, glib +, adwaita-icon-theme +, libpeas +, libxml2 +, gtksourceview4 +, gsettings-desktop-schemas +, wrapGAppsHook +, ninja +, libsoup +, gnome +, gspell +, perl +, itstool +, desktop-file-utils +, vala +}: + +stdenv.mkDerivation rec { + pname = "gedit"; + version = "41.0"; + + src = fetchurl { + url = "mirror://gnome/sources/gedit/${lib.versions.major version}/${pname}-${version}.tar.xz"; + sha256 = "epsYsViAjRiSmJFl83BsTxooKXkHmrdFinnTwkrU3rU="; + }; + + patches = [ + # We patch gobject-introspection and meson to store absolute paths to libraries in typelibs + # but that requires the install_dir is an absolute path. + ./correct-gir-lib-path.patch + ]; + + nativeBuildInputs = [ + desktop-file-utils + itstool + libxml2 + meson + ninja + perl + pkg-config + python3 + vala + wrapGAppsHook + ]; + + buildInputs = [ + adwaita-icon-theme + glib + gsettings-desktop-schemas + gspell + gtk3 + gtksourceview4 + libpeas + libsoup + ]; + + postPatch = '' + chmod +x build-aux/meson/post_install.py + chmod +x plugins/externaltools/scripts/gedit-tool-merge.pl + patchShebangs build-aux/meson/post_install.py + patchShebangs plugins/externaltools/scripts/gedit-tool-merge.pl + ''; + + # Reliably fails to generate gedit-file-browser-enum-types.h in time + enableParallelBuilding = false; + + passthru = { + updateScript = gnome.updateScript { + packageName = "gedit"; + attrPath = "gnome.gedit"; + }; + }; + + meta = with lib; { + homepage = "https://wiki.gnome.org/Apps/Gedit"; + description = "Official text editor of the GNOME desktop environment"; + maintainers = teams.gnome.members; + license = licenses.gpl2Plus; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome/apps/ghex/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/ghex/default.nix new file mode 100644 index 000000000000..d12c8f61017c --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/apps/ghex/default.nix @@ -0,0 +1,72 @@ +{ stdenv +, lib +, fetchurl +, pkg-config +, meson +, ninja +, python3 +, gnome +, desktop-file-utils +, appstream-glib +, gettext +, itstool +, libxml2 +, gtk3 +, glib +, atk +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "ghex"; + version = "3.41.1"; + + outputs = [ "out" "dev" ]; + + src = fetchurl { + url = "mirror://gnome/sources/ghex/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "i3nPAJ6uXEfK0KtT4hmcOm+y86thh381m+1SR3DuYfc="; + }; + + nativeBuildInputs = [ + desktop-file-utils + gettext + itstool + meson + ninja + pkg-config + python3 + wrapGAppsHook + ]; + + buildInputs = [ + gtk3 + atk + glib + ]; + + checkInputs = [ + appstream-glib + desktop-file-utils + ]; + + postPatch = '' + chmod +x meson_post_install.py + patchShebangs meson_post_install.py + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = "ghex"; + attrPath = "gnome.${pname}"; + }; + }; + + meta = with lib; { + homepage = "https://wiki.gnome.org/Apps/Ghex"; + description = "Hex editor for GNOME desktop environment"; + platforms = platforms.unix; + license = licenses.gpl2Plus; + maintainers = teams.gnome.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-books/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-books/default.nix new file mode 100644 index 000000000000..0e8b322cf5ed --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-books/default.nix @@ -0,0 +1,86 @@ +{ lib, stdenv +, meson +, ninja +, gettext +, fetchurl +, evince +, gjs +, pkg-config +, gtk3 +, glib +, tracker +, tracker-miners +, libxslt +, webkitgtk +, gnome-desktop +, libgepub +, gnome +, gdk-pixbuf +, gsettings-desktop-schemas +, adwaita-icon-theme +, docbook-xsl-nons +, docbook_xml_dtd_42 +, desktop-file-utils +, python3 +, gobject-introspection +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "gnome-books"; + version = "40.0"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; + sha256 = "0c41l8m2di8h39bmk2fnhpwglwp6qhljmwqqbihzp4ay9976zrc5"; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + gettext + libxslt + desktop-file-utils + docbook-xsl-nons + docbook_xml_dtd_42 + wrapGAppsHook + python3 + ]; + + buildInputs = [ + gtk3 + glib + gsettings-desktop-schemas + gdk-pixbuf + adwaita-icon-theme + evince + webkitgtk + gjs + gobject-introspection + tracker + tracker-miners + gnome-desktop + libgepub + ]; + + postPatch = '' + chmod +x meson_post_install.py # patchShebangs requires executable file + patchShebangs meson_post_install.py + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = "gnome-books"; + attrPath = "gnome.gnome-books"; + }; + }; + + meta = with lib; { + homepage = "https://wiki.gnome.org/Apps/Books"; + description = "An e-book manager application for GNOME"; + maintainers = teams.gnome.members; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-boxes/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-boxes/default.nix new file mode 100644 index 000000000000..29b08aa3c1ed --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-boxes/default.nix @@ -0,0 +1,147 @@ +{ lib, stdenv +, fetchurl +, meson +, ninja +, wrapGAppsHook +, pkg-config +, gettext +, itstool +, libvirt-glib +, glib +, gobject-introspection +, libxml2 +, gtk3 +, gtksourceview4 +, gtk-vnc +, freerdp +, libvirt +, spice-gtk +, python3 +, appstream-glib +, spice-protocol +, libhandy +, libsoup +, libosinfo +, systemd +, tracker +, tracker-miners +, vala +, libcap +, yajl +, gmp +, gdbm +, cyrus_sasl +, gnome +, librsvg +, desktop-file-utils +, mtools +, cdrkit +, libcdio +, libusb1 +, libarchive +, acl +, libgudev +, libsecret +, libcap_ng +, numactl +, libapparmor +, json-glib +, webkitgtk +, vte +, glib-networking +, qemu-utils +, qemu +}: + +stdenv.mkDerivation rec { + pname = "gnome-boxes"; + version = "41.3"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; + sha256 = "m4QGgNHnOG/d/WoVrU3Q8s2ljv6BjPVHg3tGrovw4Yk="; + }; + + doCheck = true; + + nativeBuildInputs = [ + appstream-glib # for appstream-util + desktop-file-utils + gettext + gobject-introspection + itstool + meson + ninja + pkg-config + python3 + vala + wrapGAppsHook + ]; + + # Required for USB redirection PolicyKit rules file + propagatedUserEnvPkgs = [ + spice-gtk + ]; + + buildInputs = [ + acl + cyrus_sasl + freerdp + gdbm + glib + glib-networking + gmp + gnome.adwaita-icon-theme + gtk-vnc + gtk3 + gtksourceview4 + json-glib + libapparmor + libarchive + libcap + libcap_ng + libgudev + libhandy + libosinfo + librsvg + libsecret + libsoup + libusb1 + libvirt + libvirt-glib + libxml2 + numactl + spice-gtk + spice-protocol + systemd + tracker + tracker-miners + vte + webkitgtk + yajl + ]; + + preFixup = '' + gappsWrapperArgs+=(--prefix PATH : "${lib.makeBinPath [ mtools cdrkit libcdio qemu-utils qemu ]}") + ''; + + postPatch = '' + chmod +x build-aux/post_install.py # patchShebangs requires executable file + patchShebangs build-aux/post_install.py + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + attrPath = "gnome.${pname}"; + }; + }; + + meta = with lib; { + description = "Simple GNOME 3 application to access remote or virtual systems"; + homepage = "https://wiki.gnome.org/Apps/Boxes"; + license = licenses.lgpl2Plus; + platforms = platforms.linux; + maintainers = teams.gnome.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-calendar/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-calendar/default.nix new file mode 100644 index 000000000000..db353165c28d --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-calendar/default.nix @@ -0,0 +1,84 @@ +{ lib, stdenv +, fetchurl +, meson +, ninja +, pkg-config +, wrapGAppsHook +, libdazzle +, libgweather +, geoclue2 +, geocode-glib +, python3 +, gettext +, libxml2 +, gnome +, gtk3 +, evolution-data-server +, libsoup +, glib +, gnome-online-accounts +, gsettings-desktop-schemas +, libhandy +, adwaita-icon-theme +}: + +stdenv.mkDerivation rec { + pname = "gnome-calendar"; + version = "41.2"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; + sha256 = "lWsvGQMiZRxn/mZyI4lviqWs8ztwraWjsFpTYb2mYRo="; + }; + + patches = [ + # https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/84 + # A refactor has caused the PR patch to drift enough to need rebasing + ./gtk_image_reset_crash.patch + ]; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + attrPath = "gnome.${pname}"; + }; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + gettext + libxml2 + wrapGAppsHook + python3 + ]; + + buildInputs = [ + gtk3 + evolution-data-server + libsoup + glib + gnome-online-accounts + libdazzle + libgweather + geoclue2 + geocode-glib + gsettings-desktop-schemas + adwaita-icon-theme + libhandy + ]; + + postPatch = '' + chmod +x build-aux/meson/meson_post_install.py # patchShebangs requires executable file + patchShebangs build-aux/meson/meson_post_install.py + ''; + + meta = with lib; { + homepage = "https://wiki.gnome.org/Apps/Calendar"; + description = "Simple and beautiful calendar application for GNOME"; + maintainers = teams.gnome.members; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-calendar/gtk_image_reset_crash.patch b/nixpkgs/pkgs/desktops/gnome/apps/gnome-calendar/gtk_image_reset_crash.patch new file mode 100644 index 000000000000..5065295b57b7 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-calendar/gtk_image_reset_crash.patch @@ -0,0 +1,17 @@ +diff --git a/src/gui/views/gcal-year-view.c b/src/gui/views/gcal-year-view.c +index ac32a8f9..532425c1 100644 +--- a/src/gui/views/gcal-year-view.c ++++ b/src/gui/views/gcal-year-view.c +@@ -2158,7 +2158,11 @@ update_weather (GcalYearView *self) + if (!updated) + { + gtk_label_set_text (self->temp_label, ""); +- gtk_image_clear (self->weather_icon); ++ /* FIXME: This should never be NULL, but it somehow is. ++ * https://gitlab.gnome.org/GNOME/gnome-calendar/issues/299 ++ */ ++ if (self->weather_icon != NULL) ++ gtk_image_clear (self->weather_icon); + } + } + diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-characters/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-characters/default.nix new file mode 100644 index 000000000000..960a3320472d --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-characters/default.nix @@ -0,0 +1,88 @@ +{ lib +, stdenv +, fetchurl +, meson +, ninja +, pkg-config +, gettext +, gnome +, glib +, gtk3 +, pango +, wrapGAppsHook +, python3 +, gobject-introspection +, gjs +, libunistring +, libhandy +, gsettings-desktop-schemas +, adwaita-icon-theme +, gnome-desktop +}: + +stdenv.mkDerivation rec { + pname = "gnome-characters"; + version = "41.0"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-characters/${lib.versions.major version}/${pname}-${version}.tar.xz"; + sha256 = "0yw6mimfwn0fij8zncjb4rg8bnazd1z47rmzq85lk6807nlyqag1"; + }; + + nativeBuildInputs = [ + gettext + gobject-introspection + meson + ninja + pkg-config + python3 + wrapGAppsHook + ]; + + + buildInputs = [ + adwaita-icon-theme + gjs + glib + gnome-desktop # for typelib + gsettings-desktop-schemas + gtk3 + libunistring + libhandy + pango + ]; + + postPatch = '' + chmod +x meson_post_install.py # patchShebangs requires executable file + patchShebangs meson_post_install.py + ''; + + dontWrapGApps = true; + + # Fixes https://github.com/NixOS/nixpkgs/issues/31168 + postFixup = '' + for file in $out/share/org.gnome.Characters/org.gnome.Characters \ + $out/share/org.gnome.Characters/org.gnome.Characters.BackgroundService + do + sed -e $"2iimports.package._findEffectiveEntryPointName = () => \'$(basename $file)\' " \ + -i $file + + wrapGApp "$file" + done + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + attrPath = "gnome.${pname}"; + }; + }; + + meta = with lib; { + homepage = "https://wiki.gnome.org/Apps/Characters"; + description = "Simple utility application to find and insert unusual characters"; + maintainers = teams.gnome.members; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-clocks/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-clocks/default.nix new file mode 100644 index 000000000000..2e8ec02bd845 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-clocks/default.nix @@ -0,0 +1,87 @@ +{ lib, stdenv +, fetchurl +, meson +, ninja +, gettext +, pkg-config +, wrapGAppsHook +, itstool +, desktop-file-utils +, vala +, gobject-introspection +, libxml2 +, gtk3 +, glib +, gsound +, sound-theme-freedesktop +, gsettings-desktop-schemas +, adwaita-icon-theme +, gnome-desktop +, geocode-glib +, gnome +, gdk-pixbuf +, geoclue2 +, libgweather +, libhandy +}: + +stdenv.mkDerivation rec { + pname = "gnome-clocks"; + version = "41.0"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-clocks/${lib.versions.major version}/${pname}-${version}.tar.xz"; + sha256 = "34yLBKuS+mGPXe5RGFce+fyeilt5XqAKNcbcZ3ywLaw="; + }; + + nativeBuildInputs = [ + vala + meson + ninja + pkg-config + gettext + itstool + wrapGAppsHook + desktop-file-utils + libxml2 + gobject-introspection # for finding vapi files + ]; + + buildInputs = [ + gtk3 + glib + gsettings-desktop-schemas + gdk-pixbuf + adwaita-icon-theme + gnome-desktop + geocode-glib + geoclue2 + libgweather + gsound + libhandy + ]; + + preFixup = '' + gappsWrapperArgs+=( + # Fallback sound theme + --prefix XDG_DATA_DIRS : "${sound-theme-freedesktop}/share" + ) + ''; + + doCheck = true; + + passthru = { + updateScript = gnome.updateScript { + packageName = "gnome-clocks"; + attrPath = "gnome.gnome-clocks"; + }; + }; + + meta = with lib; { + homepage = "https://wiki.gnome.org/Apps/Clocks"; + description = "Clock application designed for GNOME 3"; + maintainers = teams.gnome.members; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-connections/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-connections/default.nix new file mode 100644 index 000000000000..83e88059f806 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-connections/default.nix @@ -0,0 +1,73 @@ +{ lib +, stdenv +, fetchurl +, meson +, ninja +, pkg-config +, vala +, gettext +, itstool +, python3 +, appstream-glib +, desktop-file-utils +, wrapGAppsHook +, glib +, gtk3 +, libhandy +, libxml2 +, gtk-vnc +, gtk-frdp +, gnome +}: + +stdenv.mkDerivation rec { + pname = "gnome-connections"; + version = "41.2"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; + hash = "sha256-WrmUKPPOn4qDdDK2e3XbxSi5U6QpOotWVE34g0b+VxM="; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + vala + gettext + itstool + python3 + appstream-glib + desktop-file-utils + glib # glib-compile-resources + wrapGAppsHook + ]; + + buildInputs = [ + glib + gtk-vnc + gtk3 + libhandy + libxml2 + gtk-frdp + ]; + + postPatch = '' + chmod +x build-aux/meson/postinstall.py + patchShebangs build-aux/meson/postinstall.py + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + }; + }; + + meta = with lib; { + homepage = "https://gitlab.gnome.org/GNOME/connections"; + description = "A remote desktop client for the GNOME desktop environment"; + maintainers = teams.gnome.members; + license = licenses.gpl3Plus; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-documents/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-documents/default.nix new file mode 100644 index 000000000000..3f7ac34696bf --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-documents/default.nix @@ -0,0 +1,127 @@ +{ lib, stdenv +, meson +, ninja +, gettext +, fetchurl +, fetchpatch +, evince +, gjs +, pkg-config +, gtk3 +, glib +, tracker +, tracker-miners +, itstool +, libxslt +, webkitgtk +, libgdata +, gnome-desktop +, libzapojit +, libgepub +, gnome +, gdk-pixbuf +, libsoup +, docbook_xsl +, docbook_xml_dtd_42 +, gobject-introspection +, inkscape +, poppler_utils +, desktop-file-utils +, wrapGAppsHook +, python3 +, appstream-glib +, gsettings-desktop-schemas +}: + +stdenv.mkDerivation rec { + pname = "gnome-documents"; + version = "3.34.0"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-documents/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "1qph567mapg3s1a26k7b8y57g9bklhj2mh8xm758z9zkms20xafq"; + }; + + patches = [ + # Fix inkscape 1.0 usage + (fetchpatch { + url = "https://gitlab.gnome.org/GNOME/gnome-documents/commit/0f55a18c40a61e6ae4ec4652604775f139892350.diff"; + sha256 = "1yrisq69dl1dn7639drlbza20a5ic6xg04ksr9iq4sxdx3xj3d8s"; + }) + ]; + + nativeBuildInputs = [ + meson + ninja + pkg-config + gettext + itstool + libxslt + desktop-file-utils + docbook_xsl + docbook_xml_dtd_42 + wrapGAppsHook + python3 + appstream-glib + + # building getting started + inkscape + poppler_utils + ]; + + buildInputs = [ + gtk3 + glib + gsettings-desktop-schemas + gdk-pixbuf + gnome.adwaita-icon-theme + evince + libsoup + webkitgtk + gjs + gobject-introspection + tracker + tracker-miners + libgdata + gnome-desktop + libzapojit + libgepub + ]; + + doCheck = true; + + mesonFlags = [ + "-Dgetting_started=true" + ]; + + postPatch = '' + chmod +x meson_post_install.py # patchShebangs requires executable file + patchShebangs meson_post_install.py + ''; + + preFixup = '' + substituteInPlace $out/bin/gnome-documents --replace gapplication "${glib.bin}/bin/gapplication" + ''; + + preConfigure = + # To silence inkscape warnings regarding profile directory + '' + export INKSCAPE_PROFILE_DIR="$(mktemp -d)" + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + attrPath = "gnome.${pname}"; + }; + }; + + meta = with lib; { + broken = true; # Tracker 3 not supported and it cannot start Tracker 2. + homepage = "https://wiki.gnome.org/Apps/Documents"; + description = "Document manager application designed to work with GNOME 3"; + maintainers = teams.gnome.members; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-logs/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-logs/default.nix new file mode 100644 index 000000000000..da06eb4404c1 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-logs/default.nix @@ -0,0 +1,86 @@ +{ lib, stdenv +, fetchurl +, fetchpatch +, meson +, ninja +, pkg-config +, gnome +, glib +, gtk3 +, wrapGAppsHook +, gettext +, itstool +, libxml2 +, libxslt +, docbook_xsl +, docbook_xml_dtd_43 +, systemd +, python3 +, gsettings-desktop-schemas +}: + +stdenv.mkDerivation rec { + pname = "gnome-logs"; + version = "3.36.0"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-logs/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "0w1nfdxbv3f0wnhmdy21ydvr4swfc108hypda561p7l9lrhnnxj4"; + }; + + patches = [ + # https://gitlab.gnome.org/GNOME/gnome-logs/-/issues/52 + (fetchpatch { + url = "https://gitlab.gnome.org/GNOME/gnome-logs/-/commit/b42defceefc775220b525f665a3b662ab9593b81.patch"; + sha256 = "1s0zscmhwy7r0xff17wh8ik8x9xw1vrkipw5vl5i770bxnljps8n"; + }) + ]; + + nativeBuildInputs = [ + python3 + meson + ninja + pkg-config + wrapGAppsHook + gettext + itstool + libxml2 + libxslt + docbook_xsl + docbook_xml_dtd_43 + ]; + + buildInputs = [ + glib + gtk3 + systemd + gsettings-desktop-schemas + gnome.adwaita-icon-theme + ]; + + mesonFlags = [ + "-Dman=true" + ]; + + postPatch = '' + chmod +x meson_post_install.py + patchShebangs meson_post_install.py + ''; + + doCheck = true; + + passthru = { + updateScript = gnome.updateScript { + packageName = "gnome-logs"; + attrPath = "gnome.gnome-logs"; + }; + }; + + meta = with lib; { + homepage = "https://wiki.gnome.org/Apps/Logs"; + description = "A log viewer for the systemd journal"; + maintainers = teams.gnome.members; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-maps/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-maps/default.nix new file mode 100644 index 000000000000..5d90cefdff39 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-maps/default.nix @@ -0,0 +1,104 @@ +{ lib, stdenv +, fetchurl +, meson +, ninja +, gettext +, python3 +, pkg-config +, gnome +, gtk3 +, gobject-introspection +, gdk-pixbuf +, librest +, librsvg +, libgweather +, geoclue2 +, wrapGAppsHook +, folks +, libchamplain +, libsoup +, gsettings-desktop-schemas +, webkitgtk +, gjs +, libgee +, libhandy +, geocode-glib +, evolution-data-server +, gnome-online-accounts +}: + +stdenv.mkDerivation rec { + pname = "gnome-maps"; + version = "41.4"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; + sha256 = "sha256-40CxP0b+C31bD48BQTKR3c2HDHSlw4+iTKwfWF5wOT4="; + }; + + doCheck = true; + + nativeBuildInputs = [ + gettext + meson + ninja + pkg-config + python3 + wrapGAppsHook + ]; + + buildInputs = [ + evolution-data-server + folks + gdk-pixbuf + geoclue2 + geocode-glib + gjs + gnome-online-accounts + gnome.adwaita-icon-theme + gobject-introspection + gsettings-desktop-schemas + gtk3 + libchamplain + libgee + libgweather + libhandy + librest + librsvg + libsoup + webkitgtk + ]; + + postPatch = '' + chmod +x meson_post_install.py # patchShebangs requires executable file + patchShebangs meson_post_install.py + + # The .service file isn't wrapped with the correct environment + # so misses GIR files when started. By re-pointing from the gjs + # entry point to the wrapped binary we get back to a wrapped + # binary. + substituteInPlace "data/org.gnome.Maps.service.in" \ + --replace "Exec=@pkgdatadir@/org.gnome.Maps" \ + "Exec=$out/bin/gnome-maps" + ''; + + preCheck = '' + # “time.js” included by “timeTest” and “translationsTest” depends on “org.gnome.desktop.interface” schema. + export XDG_DATA_DIRS="${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:$XDG_DATA_DIRS" + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + attrPath = "gnome.${pname}"; + }; + }; + + meta = with lib; { + homepage = "https://wiki.gnome.org/Apps/Maps"; + description = "A map application for GNOME 3"; + maintainers = teams.gnome.members; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-music/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-music/default.nix new file mode 100644 index 000000000000..96ec321fa4a9 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-music/default.nix @@ -0,0 +1,121 @@ +{ lib +, meson +, ninja +, gettext +, fetchurl +, gdk-pixbuf +, tracker +, libxml2 +, python3 +, libnotify +, wrapGAppsHook +, libmediaart +, gobject-introspection +, gnome-online-accounts +, grilo +, grilo-plugins +, pkg-config +, gtk3 +, pango +, glib +, desktop-file-utils +, appstream-glib +, itstool +, gnome +, gst_all_1 +, libdazzle +, libsoup +, libhandy +, gsettings-desktop-schemas +}: + +python3.pkgs.buildPythonApplication rec { + pname = "gnome-music"; + version = "41.0"; + + format = "other"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; + sha256 = "1llz2aqa3n3ivwl7i09pgylsbgrfzb872vcj1k7pvivxm1kkbcb9"; + }; + + nativeBuildInputs = [ + meson + ninja + gettext + itstool + pkg-config + libxml2 + wrapGAppsHook + desktop-file-utils + appstream-glib + gobject-introspection + ]; + + buildInputs = [ + gtk3 + pango + glib + libmediaart + gnome-online-accounts + gobject-introspection + gdk-pixbuf + gnome.adwaita-icon-theme + python3 + grilo + grilo-plugins + libnotify + libdazzle + libsoup + libhandy + gsettings-desktop-schemas + tracker + ] ++ (with gst_all_1; [ + gstreamer + gst-plugins-base + gst-plugins-good + gst-plugins-bad + gst-plugins-ugly + ]); + + pythonPath = with python3.pkgs; [ + pycairo + dbus-python + pygobject3 + ]; + + postPatch = '' + for f in meson_post_conf.py meson_post_install.py; do + chmod +x $f + patchShebangs $f + done + ''; + + # Prevent double wrapping, let the Python wrapper use the args in preFixup. + dontWrapGApps = true; + + preFixup = '' + makeWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + doCheck = false; + + # handle setup hooks better + strictDeps = false; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + attrPath = "gnome.${pname}"; + }; + }; + + meta = with lib; { + homepage = "https://wiki.gnome.org/Apps/Music"; + description = "Music player and management application for the GNOME desktop environment"; + maintainers = teams.gnome.members; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-nettool/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-nettool/default.nix new file mode 100644 index 000000000000..ca75b7aae07f --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-nettool/default.nix @@ -0,0 +1,36 @@ +{ lib, stdenv, fetchurl, pkg-config, gnome, gtk3, wrapGAppsHook +, libgtop, intltool, itstool, libxml2, nmap, inetutils }: + +stdenv.mkDerivation rec { + pname = "gnome-nettool"; + version = "3.8.1"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "1c9cvzvyqgfwa5zzyvp7118pkclji62fkbb33g4y9sp5kw6m397h"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + gtk3 wrapGAppsHook libgtop intltool itstool libxml2 + gnome.adwaita-icon-theme + ]; + + propagatedUserEnvPkgs = [ nmap inetutils ]; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + attrPath = "gnome.${pname}"; + versionPolicy = "none"; + }; + }; + + meta = with lib; { + homepage = "https://gitlab.gnome.org/GNOME/gnome-nettool"; + description = "A collection of networking tools"; + maintainers = teams.gnome.members; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-notes/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-notes/default.nix new file mode 100644 index 000000000000..6af206069e29 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-notes/default.nix @@ -0,0 +1,87 @@ +{ lib, stdenv +, meson +, ninja +, gettext +, fetchurl +, pkg-config +, wrapGAppsHook +, itstool +, desktop-file-utils +, python3 +, glib +, gtk3 +, evolution-data-server +, gnome-online-accounts +, json-glib +, libuuid +, curl +, libhandy +, webkitgtk +, gnome +, libxml2 +, gsettings-desktop-schemas +, tracker +}: + +stdenv.mkDerivation rec { + pname = "gnome-notes"; + version = "40.1"; + + src = fetchurl { + url = "mirror://gnome/sources/bijiben/${lib.versions.major version}/bijiben-${version}.tar.xz"; + sha256 = "1gvvb2klkzbmyzwkjgmscdiqcl8lyz9b0rxb4igjz079csq6z805"; + }; + + doCheck = true; + + postPatch = '' + chmod +x build-aux/meson_post_install.py + patchShebangs build-aux/meson_post_install.py + ''; + + nativeBuildInputs = [ + meson + ninja + pkg-config + gettext + itstool + libxml2 + desktop-file-utils + python3 + wrapGAppsHook + ]; + + buildInputs = [ + glib + gtk3 + json-glib + libuuid + curl + libhandy + webkitgtk + tracker + gnome-online-accounts + gsettings-desktop-schemas + evolution-data-server + gnome.adwaita-icon-theme + ]; + + mesonFlags = [ + "-Dupdate_mimedb=false" + ]; + + passthru = { + updateScript = gnome.updateScript { + packageName = "bijiben"; + attrPath = "gnome.gnome-notes"; + }; + }; + + meta = with lib; { + description = "Note editor designed to remain simple to use"; + homepage = "https://wiki.gnome.org/Apps/Notes"; + license = licenses.gpl3; + maintainers = teams.gnome.members; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-power-manager/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-power-manager/default.nix new file mode 100644 index 000000000000..a883067e7804 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-power-manager/default.nix @@ -0,0 +1,60 @@ +{ lib, stdenv +, gettext +, fetchurl +, pkg-config +, gtk3 +, glib +, meson +, ninja +, upower +, python3 +, desktop-file-utils +, wrapGAppsHook +, gnome }: + +let + pname = "gnome-power-manager"; + version = "3.32.0"; +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "0drfn3wcc8l4n07qwv6p0rw2dwcd00hwzda282q62l6sasks2b2g"; + }; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + attrPath = "gnome.${pname}"; + }; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + wrapGAppsHook + gettext + + # needed by meson_post_install.sh + python3 + glib.dev + desktop-file-utils + ]; + + buildInputs = [ + gtk3 + glib + upower + gnome.adwaita-icon-theme + ]; + + meta = with lib; { + homepage = "https://gitlab.gnome.org/GNOME/gnome-power-manager"; + description = "View battery and power statistics provided by UPower"; + maintainers = teams.gnome.members; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-sound-recorder/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-sound-recorder/default.nix new file mode 100644 index 000000000000..29f7aa6e9ee4 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-sound-recorder/default.nix @@ -0,0 +1,72 @@ +{ lib, stdenv +, fetchurl +, pkg-config +, gettext +, gobject-introspection +, wrapGAppsHook +, gjs +, glib +, gtk3 +, gdk-pixbuf +, gst_all_1 +, gnome +, meson +, ninja +, python3 +, desktop-file-utils +, libhandy +}: + +stdenv.mkDerivation rec { + pname = "gnome-sound-recorder"; + version = "40.0"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; + sha256 = "00b55vsfzx877b7mj744abzjws7zclz71wbvh0axsrbl9l84ranl"; + }; + + nativeBuildInputs = [ + pkg-config + gettext + meson + ninja + gobject-introspection + wrapGAppsHook + python3 + desktop-file-utils + ]; + + buildInputs = [ + gjs + glib + gtk3 + gdk-pixbuf + libhandy + ] ++ (with gst_all_1; [ + gstreamer + gst-plugins-base + gst-plugins-good + gst-plugins-bad # for gstreamer-player-1.0 + ]); + + postPatch = '' + chmod +x build-aux/meson_post_install.py + patchShebangs build-aux/meson_post_install.py + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + attrPath = "gnome.${pname}"; + }; + }; + + meta = with lib; { + description = "A simple and modern sound recorder"; + homepage = "https://wiki.gnome.org/Apps/SoundRecorder"; + license = licenses.gpl2Plus; + maintainers = teams.gnome.members; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix new file mode 100644 index 000000000000..22f9ac176aad --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix @@ -0,0 +1,77 @@ +{ lib +, stdenv +, meson +, fetchurl +, python3 +, pkg-config +, gtk4 +, glib +, gtksourceview5 +, gsettings-desktop-schemas +, wrapGAppsHook4 +, ninja +, gnome +, enchant +, icu +, itstool +, libadwaita +, libxml2 +, pcre +, appstream-glib +, desktop-file-utils +}: + +stdenv.mkDerivation rec { + pname = "gnome-text-editor"; + version = "41.1"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-text-editor/${lib.versions.major version}/${pname}-${version}.tar.xz"; + sha256 = "sha256-YZ7FINbgkF1DEWcCTkPc4Nv2o0Xy1IaTUB1w3HYm+GE="; + }; + + nativeBuildInputs = [ + appstream-glib + desktop-file-utils + itstool + libxml2 # for xmllint + meson + ninja + pkg-config + python3 + wrapGAppsHook4 + ]; + + buildInputs = [ + enchant + icu + glib + gsettings-desktop-schemas + gtk4 + gtksourceview5 + libadwaita + pcre + ]; + + postPatch = '' + chmod +x build-aux/meson/postinstall.py + patchShebangs build-aux/meson/postinstall.py + substituteInPlace build-aux/meson/postinstall.py \ + --replace "gtk-update-icon-cache" "gtk4-update-icon-cache" + ''; + + + passthru = { + updateScript = gnome.updateScript { + packageName = "gnome-text-editor"; + }; + }; + + meta = with lib; { + homepage = "https://gitlab.gnome.org/GNOME/gnome-text-editor"; + description = "A Text Editor for GNOME"; + maintainers = teams.gnome.members; + license = licenses.gpl3Plus; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-todo/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-todo/default.nix new file mode 100644 index 000000000000..cdcf0d69a33b --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-todo/default.nix @@ -0,0 +1,96 @@ +{ lib +, stdenv +, fetchFromGitLab +, fetchpatch +, meson +, ninja +, pkg-config +, python3 +, wrapGAppsHook +, gettext +, gnome +, glib +, gtk4 +, wayland +, libadwaita +, libpeas +, gnome-online-accounts +, gsettings-desktop-schemas +, libportal-gtk4 +, evolution-data-server +, libical +, librest +, json-glib +, itstool +, unstableGitUpdater +}: + +stdenv.mkDerivation rec { + pname = "gnome-todo"; + version = "unstable-2022-03-11"; + + src = fetchFromGitLab { + domain = "gitlab.gnome.org"; + owner = "GNOME"; + repo = "gnome-todo"; + rev = "07791399742366b4e3a6897430054d91df4594b4"; + sha256 = "821KgxkkW4T6bdGuttAz9ao/WStM1QEfn4hY/b0d0jI="; + }; + + patches = [ + # fix build race bug https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=257667 + (fetchpatch { + url = "https://cgit.freebsd.org/ports/plain/deskutils/gnome-todo/files/patch-src_meson.build?id=a4faaf6cf7835014b5f69a337b544ea4ee7f9655"; + sha256 = "sha256:0ihixyq72yhx6njij7bldsqb80x3y217yh6livknlf5r1wr3hakn"; + extraPrefix = ""; + name = "gnome-todo_meson-build.patch"; + }) + ]; + + nativeBuildInputs = [ + meson + ninja + pkg-config + gettext + python3 + wrapGAppsHook + itstool + ]; + + buildInputs = [ + glib + gtk4 + wayland # required by gtk header + libadwaita + libpeas + gnome-online-accounts + gsettings-desktop-schemas + gnome.adwaita-icon-theme + + # Plug-ins + libportal-gtk4 # background + evolution-data-server # eds + libical + librest # todoist + json-glib # todoist + ]; + + postPatch = '' + chmod +x build-aux/meson/meson_post_install.py + patchShebangs build-aux/meson/meson_post_install.py + ''; + + passthru = { + updateScript = unstableGitUpdater { + url = "https://gitlab.gnome.org/GNOME/gnome-todo.git"; + }; + }; + + meta = with lib; { + description = "Personal task manager for GNOME"; + homepage = "https://wiki.gnome.org/Apps/Todo"; + license = licenses.gpl3Plus; + maintainers = teams.gnome.members; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-weather/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-weather/default.nix new file mode 100644 index 000000000000..aa192a6a3b65 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-weather/default.nix @@ -0,0 +1,76 @@ +{ lib +, stdenv +, fetchurl +, pkg-config +, gnome +, gtk3 +, libhandy +, wrapGAppsHook +, gjs +, gobject-introspection +, libgweather +, meson +, ninja +, geoclue2 +, gnome-desktop +, python3 +, gsettings-desktop-schemas +}: + +stdenv.mkDerivation rec { + pname = "gnome-weather"; + version = "41.0"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-weather/${lib.versions.major version}/${pname}-${version}.tar.xz"; + sha256 = "1vidwq768xnrnr24jcfbpwjczz7vm5zmaiv41nb75q4p8avlwqg5"; + }; + + nativeBuildInputs = [ + pkg-config + meson + ninja + wrapGAppsHook + python3 + ]; + + buildInputs = [ + gtk3 + libhandy + gjs + gobject-introspection + gnome-desktop + libgweather + gnome.adwaita-icon-theme + geoclue2 + gsettings-desktop-schemas + ]; + + postPatch = '' + # The .service file is not wrapped with the correct environment + # so misses GIR files when started. By re-pointing from the gjs + # entry point to the wrapped binary we get back to a wrapped + # binary. + substituteInPlace "data/org.gnome.Weather.service.in" \ + --replace "Exec=@DATA_DIR@/@APP_ID@" \ + "Exec=$out/bin/gnome-weather" + + chmod +x meson_post_install.py + patchShebangs meson_post_install.py + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = "gnome-weather"; + attrPath = "gnome.gnome-weather"; + }; + }; + + meta = with lib; { + homepage = "https://wiki.gnome.org/Apps/Weather"; + description = "Access current weather conditions and forecasts"; + maintainers = teams.gnome.members; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome/apps/polari/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/polari/default.nix new file mode 100644 index 000000000000..f207307588a1 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/apps/polari/default.nix @@ -0,0 +1,52 @@ +{ lib, stdenv, itstool, fetchurl, gdk-pixbuf, adwaita-icon-theme +, telepathy-glib, gjs, meson, ninja, gettext, telepathy-idle, libxml2, desktop-file-utils +, pkg-config, gtk4, gtk3, glib, libsecret, libsoup, webkitgtk, gobject-introspection, appstream-glib +, gnome, wrapGAppsHook4, telepathy-logger, gspell, gsettings-desktop-schemas }: + +stdenv.mkDerivation rec { + pname = "polari"; + version = "41.0"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; + sha256 = "o7BfgWYDcMZ8lCtvRLKYx7eIFv6zjJJuwiEr3iLqQOs="; + }; + + patches = [ + # Upstream runs the thumbnailer by passing it to gjs. + # If we wrap it in a shell script, gjs can no longer run it. + # Let’s change the code to run the script directly by making it executable and having gjs in shebang. + ./make-thumbnailer-wrappable.patch + ]; + + propagatedUserEnvPkgs = [ telepathy-idle telepathy-logger ]; + + nativeBuildInputs = [ + meson ninja pkg-config itstool gettext wrapGAppsHook4 libxml2 + desktop-file-utils gobject-introspection appstream-glib + ]; + + buildInputs = [ + gtk4 gtk3 glib adwaita-icon-theme gsettings-desktop-schemas + telepathy-glib telepathy-logger gjs gspell gdk-pixbuf libsecret libsoup webkitgtk + ]; + + postFixup = '' + wrapGApp "$out/share/polari/thumbnailer.js" + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + attrPath = "gnome.${pname}"; + }; + }; + + meta = with lib; { + homepage = "https://wiki.gnome.org/Apps/Polari"; + description = "IRC chat client designed to integrate with the GNOME desktop"; + maintainers = teams.gnome.members; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome/apps/polari/make-thumbnailer-wrappable.patch b/nixpkgs/pkgs/desktops/gnome/apps/polari/make-thumbnailer-wrappable.patch new file mode 100644 index 000000000000..269b455f9787 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/apps/polari/make-thumbnailer-wrappable.patch @@ -0,0 +1,24 @@ +diff --git a/src/thumbnailer.js b/src/thumbnailer.js +old mode 100644 +new mode 100755 +index ed6350ea..83d832cb +--- a/src/thumbnailer.js ++++ b/src/thumbnailer.js +@@ -1,3 +1,4 @@ ++#!/usr/bin/env gjs --module + import Cairo from 'cairo'; + import Gdk from 'gi://Gdk?version=3.0'; + import Gio from 'gi://Gio'; +diff --git a/src/urlPreview.js b/src/urlPreview.js +index 5f7931e4..d2282900 100644 +--- a/src/urlPreview.js ++++ b/src/urlPreview.js +@@ -69,7 +69,7 @@ class Thumbnailer { + async _generateThumbnail(data) { + let { filename, uri } = data; + this._subProc = Gio.Subprocess.new( +- ['gjs', '--module', `${pkg.pkgdatadir}/thumbnailer.js`, uri, filename], ++ [`${pkg.pkgdatadir}/thumbnailer.js`, uri, filename], + Gio.SubprocessFlags.NONE); + try { + await this._subProc.wait_async(null); diff --git a/nixpkgs/pkgs/desktops/gnome/apps/seahorse/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/seahorse/default.nix new file mode 100644 index 000000000000..8265636344fc --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/apps/seahorse/default.nix @@ -0,0 +1,95 @@ +{ lib, stdenv +, fetchurl +, vala +, meson +, ninja +, libpwquality +, pkg-config +, gtk3 +, glib +, glib-networking +, wrapGAppsHook +, itstool +, gnupg +, libsoup +, gnome +, gpgme +, python3 +, openldap +, gcr +, libsecret +, avahi +, p11-kit +, openssh +, gsettings-desktop-schemas +, libhandy +}: + +stdenv.mkDerivation rec { + pname = "seahorse"; + version = "41.0"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; + hash = "sha256-5u7AnoEESClfVH8YwdV3K2XD7cHZ5aJZXxC13eaJKfU="; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + vala + itstool + wrapGAppsHook + python3 + ]; + + buildInputs = [ + gtk3 + glib + glib-networking + gcr + gsettings-desktop-schemas + gnupg + gnome.adwaita-icon-theme + gpgme + libsecret + avahi + libsoup + p11-kit + openssh + openldap + libpwquality + libhandy + ]; + + doCheck = true; + + postPatch = '' + patchShebangs build-aux/ + ''; + + preCheck = '' + # Add “org.gnome.crypto.pgp” GSettings schema to path + # to make it available for “gpgme-backend” test. + # It is used by Seahorse’s internal “common” library. + addToSearchPath XDG_DATA_DIRS "${glib.getSchemaDataDirPath gcr}" + # The same test also requires home directory so that it can store settings. + export HOME=$TMPDIR + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + attrPath = "gnome.${pname}"; + }; + }; + + meta = with lib; { + homepage = "https://wiki.gnome.org/Apps/Seahorse"; + description = "Application for managing encryption keys and passwords in the GnomeKeyring"; + maintainers = teams.gnome.members; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome/apps/vinagre/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/vinagre/default.nix new file mode 100644 index 000000000000..31e198783e04 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/apps/vinagre/default.nix @@ -0,0 +1,34 @@ +{ lib, stdenv, fetchurl, pkg-config, gtk3, gnome, vte, libxml2, gtk-vnc, intltool +, libsecret, itstool, wrapGAppsHook, librsvg }: + +stdenv.mkDerivation rec { + pname = "vinagre"; + version = "3.22.0"; + + src = fetchurl { + url = "mirror://gnome/sources/vinagre/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "cd1cdbacca25c8d1debf847455155ee798c3e67a20903df8b228d4ece5505e82"; + }; + + nativeBuildInputs = [ pkg-config intltool itstool wrapGAppsHook ]; + buildInputs = [ + gtk3 vte libxml2 gtk-vnc libsecret gnome.adwaita-icon-theme librsvg + ]; + + NIX_CFLAGS_COMPILE = "-Wno-format-nonliteral"; + + passthru = { + updateScript = gnome.updateScript { + packageName = "vinagre"; + attrPath = "gnome.vinagre"; + }; + }; + + meta = with lib; { + description = "Remote desktop viewer for GNOME"; + homepage = "https://wiki.gnome.org/Apps/Vinagre"; + license = licenses.gpl2Plus; + maintainers = teams.gnome.members; + platforms = platforms.linux; + }; +} |