diff options
Diffstat (limited to 'pkgs/by-name')
72 files changed, 4662 insertions, 38 deletions
diff --git a/pkgs/by-name/_2/_2ship2harkinian/package.nix b/pkgs/by-name/_2/_2ship2harkinian/package.nix index 0be042d174f23..c0c9ee4a7fa82 100644 --- a/pkgs/by-name/_2/_2ship2harkinian/package.nix +++ b/pkgs/by-name/_2/_2ship2harkinian/package.nix @@ -15,7 +15,7 @@ libpulseaudio, libpng, imagemagick, - gnome, + zenity, makeWrapper, imgui, stormlib, @@ -122,7 +122,7 @@ stdenv.mkDerivation (finalAttrs: { SDL2 libpulseaudio libpng - gnome.zenity + zenity imgui' stormlib' libzip @@ -183,7 +183,7 @@ stdenv.mkDerivation (finalAttrs: { ''; fixupPhase = '' - wrapProgram $out/2s2h/2s2h.elf --prefix PATH ":" ${lib.makeBinPath [ gnome.zenity ]} + wrapProgram $out/2s2h/2s2h.elf --prefix PATH ":" ${lib.makeBinPath [ zenity ]} ''; desktopItems = [ diff --git a/pkgs/by-name/ac/accerciser/package.nix b/pkgs/by-name/ac/accerciser/package.nix new file mode 100644 index 0000000000000..7493c6a0bfa4d --- /dev/null +++ b/pkgs/by-name/ac/accerciser/package.nix @@ -0,0 +1,77 @@ +{ lib +, fetchurl +, pkg-config +, gnome +, gtk3 +, wrapGAppsHook3 +, gobject-introspection +, itstool +, libxml2 +, python3 +, at-spi2-core +, dbus +, gettext +, libwnck +, adwaita-icon-theme +, librsvg +}: + +python3.pkgs.buildPythonApplication rec { + pname = "accerciser"; + version = "3.42.0"; + + format = "other"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "d2m9T09j3ImhQ+hs3ET+rr1/jJab6lwfWoaskxGQL0g="; + }; + + nativeBuildInputs = [ + gettext + gobject-introspection # For setup hook + itstool + libxml2 + pkg-config + dbus + wrapGAppsHook3 + ]; + + buildInputs = [ + adwaita-icon-theme + at-spi2-core + gtk3 + libwnck + librsvg + ]; + + propagatedBuildInputs = with python3.pkgs; [ + ipython + pyatspi + pycairo + pygobject3 + setuptools + ]; + + dontWrapGApps = true; + + preFixup = '' + makeWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = "accerciser"; + versionPolicy = "odd-unstable"; + }; + }; + + meta = with lib; { + homepage = "https://gitlab.gnome.org/GNOME/accerciser"; + description = "Interactive Python accessibility explorer"; + mainProgram = "accerciser"; + maintainers = teams.gnome.members; + license = licenses.bsd3; + platforms = platforms.linux; + }; +} diff --git a/pkgs/by-name/ad/adwaita-icon-theme/package.nix b/pkgs/by-name/ad/adwaita-icon-theme/package.nix new file mode 100644 index 0000000000000..ac39b2f703596 --- /dev/null +++ b/pkgs/by-name/ad/adwaita-icon-theme/package.nix @@ -0,0 +1,54 @@ +{ lib +, stdenv +, fetchurl +, meson +, ninja +, pkg-config +, gnome +, gtk3 +, gdk-pixbuf +, librsvg +, hicolor-icon-theme +}: + +stdenv.mkDerivation rec { + pname = "adwaita-icon-theme"; + version = "46.0"; + + src = fetchurl { + url = "mirror://gnome/sources/adwaita-icon-theme/${lib.versions.major version}/${pname}-${version}.tar.xz"; + hash = "sha256-S8tTm9ddZNo4XW+gjLqp3erOtqyOgrhbpsQRF79bpk4="; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + gtk3 + ]; + + buildInputs = [ + gdk-pixbuf + librsvg + ]; + + propagatedBuildInputs = [ + # For convenience, we can specify adwaita-icon-theme only in packages + hicolor-icon-theme + ]; + + dontDropIconThemeCache = true; + + passthru = { + updateScript = gnome.updateScript { + packageName = "adwaita-icon-theme"; + }; + }; + + meta = with lib; { + homepage = "https://gitlab.gnome.org/GNOME/adwaita-icon-theme"; + platforms = with platforms; linux ++ darwin; + maintainers = teams.gnome.members; + license = licenses.cc-by-sa-30; + }; +} diff --git a/pkgs/by-name/ba/baobab/package.nix b/pkgs/by-name/ba/baobab/package.nix new file mode 100644 index 0000000000000..3978661baabb8 --- /dev/null +++ b/pkgs/by-name/ba/baobab/package.nix @@ -0,0 +1,63 @@ +{ stdenv +, lib +, gettext +, fetchurl +, vala +, desktop-file-utils +, meson +, ninja +, pkg-config +, gtk4 +, libadwaita +, glib +, libxml2 +, wrapGAppsHook4 +, itstool +, gnome +}: + +stdenv.mkDerivation rec { + pname = "baobab"; + version = "46.0"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; + hash = "sha256-zk3vXILQVnGlAJ9768+FrJhnXZ2BYNKK2RgbJppy43w="; + }; + + nativeBuildInputs = [ + desktop-file-utils + gettext + glib + itstool + libxml2 + meson + ninja + pkg-config + vala + wrapGAppsHook4 + ]; + + buildInputs = [ + gtk4 + libadwaita + glib + ]; + + doCheck = true; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + }; + }; + + meta = with lib; { + description = "Graphical application to analyse disk usage in any GNOME environment"; + mainProgram = "baobab"; + homepage = "https://apps.gnome.org/Baobab/"; + license = licenses.gpl2Plus; + maintainers = teams.gnome.members; + platforms = platforms.unix; + }; +} diff --git a/pkgs/by-name/bi/bitwarden-desktop/package.nix b/pkgs/by-name/bi/bitwarden-desktop/package.nix index ca6c93cac7b57..60e212bf475a1 100644 --- a/pkgs/by-name/bi/bitwarden-desktop/package.nix +++ b/pkgs/by-name/bi/bitwarden-desktop/package.nix @@ -6,7 +6,7 @@ , electron_29 , fetchFromGitHub , glib -, gnome +, gnome-keyring , gtk3 , jq , libsecret @@ -127,7 +127,7 @@ in buildNpmPackage rec { nativeCheckInputs = [ dbus - (gnome.gnome-keyring.override { useWrappedDaemon = false; }) + (gnome-keyring.override { useWrappedDaemon = false; }) ]; checkFlags = [ diff --git a/pkgs/by-name/ch/cheese/package.nix b/pkgs/by-name/ch/cheese/package.nix new file mode 100644 index 0000000000000..9ac53092c1144 --- /dev/null +++ b/pkgs/by-name/ch/cheese/package.nix @@ -0,0 +1,107 @@ +{ lib +, stdenv +, gettext +, fetchurl +, wrapGAppsHook3 +, 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 +, pipewire +}: + +stdenv.mkDerivation rec { + pname = "cheese"; + version = "44.1"; + + outputs = [ "out" "man" "devdoc" ]; + + src = fetchurl { + url = "mirror://gnome/sources/cheese/${lib.versions.major version}/${pname}-${version}.tar.xz"; + sha256 = "XyGFxMmeVN3yuLr2DIKBmVDlSVLhMuhjmHXz7cv49o4="; + }; + + nativeBuildInputs = [ + appstream-glib + docbook_xml_dtd_43 + docbook-xsl-nons + gettext + gtk-doc + itstool + libxml2 + libxslt # for xsltproc + meson + ninja + pkg-config + vala + wrapGAppsHook3 + 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 + ]; + + 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"; + }; + }; + + meta = with lib; { + homepage = "https://gitlab.gnome.org/GNOME/cheese"; + description = "Take photos and videos with your webcam, with fun graphical effects"; + mainProgram = "cheese"; + maintainers = [ ]; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/pkgs/by-name/co/coyim/package.nix b/pkgs/by-name/co/coyim/package.nix index 2906d324c2ae6..9e8991b5fbe0e 100644 --- a/pkgs/by-name/co/coyim/package.nix +++ b/pkgs/by-name/co/coyim/package.nix @@ -6,7 +6,7 @@ , cairo , gdk-pixbuf , glib -, gnome +, adwaita-icon-theme , wrapGAppsHook3 , gtk3 }: @@ -26,7 +26,7 @@ buildGoModule { nativeBuildInputs = [ pkg-config wrapGAppsHook3 ]; - buildInputs = [ glib cairo gdk-pixbuf gtk3 gnome.adwaita-icon-theme ]; + buildInputs = [ glib cairo gdk-pixbuf gtk3 adwaita-icon-theme ]; meta = { description = "Safe and secure chat client"; diff --git a/pkgs/by-name/dc/dconf-editor/package.nix b/pkgs/by-name/dc/dconf-editor/package.nix new file mode 100644 index 0000000000000..44fca17bec32c --- /dev/null +++ b/pkgs/by-name/dc/dconf-editor/package.nix @@ -0,0 +1,79 @@ +{ lib +, stdenv +, fetchurl +, fetchpatch +, desktop-file-utils +, meson +, ninja +, vala +, libxslt +, pkg-config +, glib +, gtk3 +, libhandy +, gnome +, dconf +, libxml2 +, gettext +, docbook-xsl-nons +, wrapGAppsHook3 +, gobject-introspection +}: + +stdenv.mkDerivation rec { + pname = "dconf-editor"; + version = "45.0.1"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; + sha256 = "sha256-EYApdnju2uYhfMUUomOMGH0vHR7ycgy5B5t0DEKZQd0="; + }; + + patches = [ + # Fix crash with GSETTINGS_SCHEMA_DIR env var. + (fetchpatch { + url = "https://gitlab.gnome.org/GNOME/dconf-editor/-/commit/baf183737d459dcde065c9f8f6fe5be7ed874de6.patch"; + hash = "sha256-Vp0qjJChDr6IarUD+tZPLJhdI8v8r6EzWNfqFSnGvqQ="; + }) + + # Look for compiled schemas in NIX_GSETTINGS_OVERRIDES_DIR + # environment variable, to match what we patched GLib to do. + ./schema-override-variable.patch + ]; + + nativeBuildInputs = [ + desktop-file-utils + meson + ninja + vala + libxslt + pkg-config + wrapGAppsHook3 + gettext + docbook-xsl-nons + libxml2 + gobject-introspection + ]; + + buildInputs = [ + glib + gtk3 + libhandy + dconf + ]; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + }; + }; + + meta = with lib; { + description = "GSettings editor for GNOME"; + mainProgram = "dconf-editor"; + homepage = "https://apps.gnome.org/DconfEditor/"; + license = licenses.gpl3Plus; + maintainers = teams.gnome.members; + platforms = platforms.unix; + }; +} diff --git a/pkgs/by-name/dc/dconf-editor/schema-override-variable.patch b/pkgs/by-name/dc/dconf-editor/schema-override-variable.patch new file mode 100644 index 0000000000000..06896d1aa4ee8 --- /dev/null +++ b/pkgs/by-name/dc/dconf-editor/schema-override-variable.patch @@ -0,0 +1,14 @@ +diff --git a/editor/source-manager.vala b/editor/source-manager.vala +index 27b2b17a..87f7ba86 100644 +--- a/editor/source-manager.vala ++++ b/editor/source-manager.vala +@@ -121,6 +121,9 @@ private class SourceManager : Object + source = try_prepend_dir (source, Path.build_filename (system_data_dirs [i], "glib-2.0", "schemas")); + string user_data_dir = GLib.Environment.get_user_data_dir (); + source = try_prepend_dir (source, Path.build_filename (user_data_dir, "glib-2.0", "schemas")); ++ string? nix_var_schema_dir = GLib.Environment.get_variable ("NIX_GSETTINGS_OVERRIDES_DIR"); ++ if (nix_var_schema_dir != null) ++ source = try_prepend_dir (source, (!) nix_var_schema_dir); + string? var_schema_dir = GLib.Environment.get_variable ("GSETTINGS_SCHEMA_DIR"); + if (var_schema_dir != null) { + string[] extra_schema_dirs = ((!) var_schema_dir).split (Path.SEARCHPATH_SEPARATOR_S); diff --git a/pkgs/by-name/de/devhelp/package.nix b/pkgs/by-name/de/devhelp/package.nix new file mode 100644 index 0000000000000..97795c1d9f7a0 --- /dev/null +++ b/pkgs/by-name/de/devhelp/package.nix @@ -0,0 +1,87 @@ +{ stdenv +, lib +, fetchurl +, meson +, ninja +, pkg-config +, gnome +, adwaita-icon-theme +, gtk3 +, wrapGAppsHook3 +, glib +, gobject-introspection +, gi-docgen +, webkitgtk_4_1 +, gettext +, itstool +, gsettings-desktop-schemas +, shared-mime-info +}: + +stdenv.mkDerivation rec { + pname = "devhelp"; + version = "43.0"; + + outputs = [ "out" "devdoc" ]; + + src = fetchurl { + url = "mirror://gnome/sources/devhelp/${lib.versions.major version}/${pname}-${version}.tar.xz"; + sha256 = "Y87u/QU5LgIESIHvHs1yQpNVPaVzW378CCstE/6F3QQ="; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + gettext + itstool + wrapGAppsHook3 + gobject-introspection + gi-docgen + # post install script + glib + gtk3 + ]; + + buildInputs = [ + glib + gtk3 + webkitgtk_4_1 + adwaita-icon-theme + gsettings-desktop-schemas + ]; + + mesonFlags = [ + "-Dgtk_doc=true" + ]; + + doCheck = true; + + preFixup = '' + gappsWrapperArgs+=( + # Fix pages being blank + # https://gitlab.gnome.org/GNOME/devhelp/issues/14 + --prefix XDG_DATA_DIRS : "${shared-mime-info}/share" + ) + ''; + + postFixup = '' + # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back. + moveToOutput share/doc/devhelp-3 "$devdoc" + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = "devhelp"; + }; + }; + + meta = with lib; { + description = "API documentation browser for GNOME"; + mainProgram = "devhelp"; + homepage = "https://apps.gnome.org/Devhelp/"; + license = licenses.gpl3Plus; + maintainers = teams.gnome.members; + platforms = platforms.linux; + }; +} diff --git a/pkgs/by-name/eo/eog/fix-gir-lib-path.patch b/pkgs/by-name/eo/eog/fix-gir-lib-path.patch new file mode 100644 index 0000000000000..eb087b58a3176 --- /dev/null +++ b/pkgs/by-name/eo/eog/fix-gir-lib-path.patch @@ -0,0 +1,13 @@ +diff --git a/src/meson.build b/src/meson.build +index cc9d3856..f909836d 100644 +--- a/src/meson.build ++++ b/src/meson.build +@@ -165,7 +165,7 @@ libeog = shared_library( + link_args: ldflags, + link_depends: symbol_map, + install: true, +- install_dir: eog_pkglibdir, ++ install_dir: eog_prefix / eog_pkglibdir, + ) + + libeog_dep = declare_dependency( diff --git a/pkgs/by-name/eo/eog/package.nix b/pkgs/by-name/eo/eog/package.nix new file mode 100644 index 0000000000000..ec1e7f61ee512 --- /dev/null +++ b/pkgs/by-name/eo/eog/package.nix @@ -0,0 +1,126 @@ +{ lib +, stdenv +, fetchurl +, meson +, ninja +, gettext +, itstool +, pkg-config +, libxml2 +, libjpeg +, libpeas +, libportal-gtk3 +, gnome +, gtk3 +, libhandy +, glib +, gsettings-desktop-schemas +, gnome-desktop +, lcms2 +, gdk-pixbuf +, exempi +, shared-mime-info +, wrapGAppsHook3 +, libjxl +, librsvg +, webp-pixbuf-loader +, libheif +, libexif +, gobject-introspection +, gi-docgen +}: + +stdenv.mkDerivation rec { + pname = "eog"; + version = "45.3"; + + outputs = [ "out" "dev" "devdoc" ]; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; + sha256 = "sha256-hlD2YtSSHYOnkE9rucokW69zX3F7R/rFs38NkOXokag="; + }; + + patches = [ + # Fix path to libeog.so in the gir file. + # We patch gobject-introspection to hardcode absolute paths but + # our Meson patch will only pass the info when install_dir is absolute as well. + ./fix-gir-lib-path.patch + ]; + + nativeBuildInputs = [ + meson + ninja + pkg-config + gettext + itstool + wrapGAppsHook3 + libxml2 # for xmllint for xml-stripblanks + gobject-introspection + gi-docgen + ]; + + buildInputs = [ + libjpeg + libportal-gtk3 + gtk3 + libhandy + gdk-pixbuf + glib + libpeas + librsvg + lcms2 + gnome-desktop + libexif + exempi + gsettings-desktop-schemas + shared-mime-info + ]; + + mesonFlags = [ + "-Dgtk_doc=true" + ]; + + postInstall = '' + # Pull in WebP and JXL support for gnome-backgrounds. + # In postInstall to run before gappsWrapperArgsHook. + export GDK_PIXBUF_MODULE_FILE="${gnome._gdkPixbufCacheBuilder_DO_NOT_USE { + extraLoaders = [ + libjxl + librsvg + webp-pixbuf-loader + libheif.out + ]; + }}" + ''; + + preFixup = '' + gappsWrapperArgs+=( + # Thumbnailers + --prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share" + --prefix XDG_DATA_DIRS : "${libjxl}/share" + --prefix XDG_DATA_DIRS : "${librsvg}/share" + --prefix XDG_DATA_DIRS : "${shared-mime-info}/share" + ) + ''; + + postFixup = '' + # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back. + moveToOutput "share/doc" "$devdoc" + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + }; + }; + + meta = with lib; { + description = "GNOME image viewer"; + homepage = "https://gitlab.gnome.org/GNOME/eog"; + license = licenses.gpl2Plus; + maintainers = teams.gnome.members; + platforms = platforms.unix; + mainProgram = "eog"; + }; +} diff --git a/pkgs/by-name/ep/epiphany/package.nix b/pkgs/by-name/ep/epiphany/package.nix new file mode 100644 index 0000000000000..c4edd298aff75 --- /dev/null +++ b/pkgs/by-name/ep/epiphany/package.nix @@ -0,0 +1,109 @@ +{ lib +, stdenv +, meson +, ninja +, gettext +, fetchurl +, pkg-config +, gtk4 +, glib +, icu +, wrapGAppsHook4 +, gnome +, libportal-gtk4 +, libxml2 +, itstool +, webkitgtk_6_0 +, libsoup_3 +, glib-networking +, libsecret +, gnome-desktop +, libarchive +, p11-kit +, sqlite +, gcr_4 +, isocodes +, desktop-file-utils +, nettle +, gdk-pixbuf +, gst_all_1 +, json-glib +, libadwaita +, buildPackages +, withPantheon ? false +, pantheon +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "epiphany"; + version = "46.1"; + + src = fetchurl { + url = "mirror://gnome/sources/epiphany/${lib.versions.major finalAttrs.version}/epiphany-${finalAttrs.version}.tar.xz"; + hash = "sha256-Jg+BRp7WR0bCsRQ/Lzi+3NloR3hlZ7CX2fcv072dsUI="; + }; + + nativeBuildInputs = [ + desktop-file-utils + gettext + itstool + meson + ninja + pkg-config + wrapGAppsHook4 + buildPackages.glib + buildPackages.gtk4 + ]; + + buildInputs = [ + gcr_4 + gdk-pixbuf + glib + glib-networking + gnome-desktop + gst_all_1.gst-libav + gst_all_1.gst-plugins-bad + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good + gst_all_1.gst-plugins-ugly + gst_all_1.gstreamer + gtk4 + icu + isocodes + json-glib + libadwaita + libportal-gtk4 + libarchive + libsecret + libsoup_3 + libxml2 + nettle + p11-kit + sqlite + webkitgtk_6_0 + ] ++ lib.optionals withPantheon [ + pantheon.granite7 + ]; + + # Tests need an X display + mesonFlags = [ + "-Dunit_tests=disabled" + ] ++ lib.optionals withPantheon [ + "-Dgranite=enabled" + ]; + + passthru = { + updateScript = gnome.updateScript { + packageName = "epiphany"; + }; + }; + + meta = with lib; { + homepage = "https://apps.gnome.org/Epiphany/"; + description = "WebKit based web browser for GNOME"; + mainProgram = "epiphany"; + maintainers = teams.gnome.members ++ teams.pantheon.members; + license = licenses.gpl3Plus; + platforms = platforms.linux; + }; +}) diff --git a/pkgs/by-name/ev/evince/package.nix b/pkgs/by-name/ev/evince/package.nix new file mode 100644 index 0000000000000..a9192f33d000a --- /dev/null +++ b/pkgs/by-name/ev/evince/package.nix @@ -0,0 +1,144 @@ +{ lib +, stdenv +, fetchurl +, meson +, ninja +, pkg-config +, gettext +, libxml2 +, appstream +, desktop-file-utils +, glib +, gtk3 +, pango +, atk +, gdk-pixbuf +, shared-mime-info +, itstool +, gnome +, poppler +, ghostscriptX +, djvulibre +, libspectre +, libarchive +, libhandy +, libsecret +, wrapGAppsHook3 +, librsvg +, gobject-introspection +, yelp-tools +, gspell +, gsettings-desktop-schemas +, gnome-desktop +, dbus +, texlive +, gst_all_1 +, gi-docgen +, supportMultimedia ? true # PDF multimedia +, libgxps +, supportXPS ? true # Open XML Paper Specification via libgxps +, withLibsecret ? true +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "evince"; + version = "46.3"; + + outputs = [ "out" "dev" "devdoc" ]; + + src = fetchurl { + url = "mirror://gnome/sources/evince/${lib.versions.major finalAttrs.version}/evince-${finalAttrs.version}.tar.xz"; + hash = "sha256-vA0dQbnX/8di6Z0qv6+sv3RRgvCzHYbbXuyMZ/XzAGs="; + }; + + depsBuildBuild = [ + pkg-config + ]; + + nativeBuildInputs = [ + appstream + desktop-file-utils + gettext + gobject-introspection + gi-docgen + itstool + meson + ninja + pkg-config + wrapGAppsHook3 + yelp-tools + ]; + + buildInputs = [ + atk + dbus # only needed to find the service directory + djvulibre + gdk-pixbuf + ghostscriptX + glib + gnome-desktop + gsettings-desktop-schemas + gspell + gtk3 + libarchive + libhandy + librsvg + libspectre + libxml2 + pango + poppler + texlive.bin.core # kpathsea for DVI support + ] ++ lib.optionals withLibsecret [ + libsecret + ] ++ lib.optionals supportXPS [ + libgxps + ] ++ lib.optionals supportMultimedia (with gst_all_1; [ + gstreamer + gst-plugins-base + gst-plugins-good + gst-plugins-bad + gst-plugins-ugly + gst-libav + ]); + + mesonFlags = [ + "-Dnautilus=false" + "-Dps=enabled" + ] ++ lib.optionals (!withLibsecret) [ + "-Dkeyring=disabled" + ] ++ lib.optionals (!supportMultimedia) [ + "-Dmultimedia=disabled" + ]; + + preFixup = '' + gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "${shared-mime-info}/share") + ''; + + postFixup = '' + # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back. + moveToOutput "share/doc" "$devdoc" + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = "evince"; + }; + }; + + meta = with lib; { + homepage = "https://apps.gnome.org/Evince/"; + description = "GNOME's document viewer"; + + longDescription = '' + Evince is a document viewer for multiple document formats. It + currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal + of Evince is to replace the multiple document viewers that exist + on the GNOME Desktop with a single simple application. + ''; + + license = licenses.gpl2Plus; + platforms = platforms.unix; + mainProgram = "evince"; + maintainers = teams.gnome.members ++ teams.pantheon.members; + }; +}) diff --git a/pkgs/by-name/ev/evolution-data-server/drop-tentative-settings-constructor.patch b/pkgs/by-name/ev/evolution-data-server/drop-tentative-settings-constructor.patch new file mode 100644 index 0000000000000..a86d1966eb6bc --- /dev/null +++ b/pkgs/by-name/ev/evolution-data-server/drop-tentative-settings-constructor.patch @@ -0,0 +1,40 @@ +diff --git a/src/calendar/libecal/e-reminder-watcher.c b/src/calendar/libecal/e-reminder-watcher.c +index f1614f2..c01e8b2 100644 +--- a/src/calendar/libecal/e-reminder-watcher.c ++++ b/src/calendar/libecal/e-reminder-watcher.c +@@ -2609,26 +2609,6 @@ e_reminder_watcher_load_clock_format (EReminderWatcher *watcher) + g_free (clock_format); + } + +-static GSettings* +-e_reminder_watcher_load_settings_tentative (const gchar *schema_id) +-{ +- GSettings *settings; +- GSettingsSchemaSource *schema_source; +- GSettingsSchema *schema; +- +- schema_source = g_settings_schema_source_get_default (); +- schema = g_settings_schema_source_lookup (schema_source, schema_id, TRUE); +- +- if (schema == NULL) { +- return NULL; +- } +- +- settings = g_settings_new (schema_id); +- /* only unref after g_settings_new() to avoid needless realloc */ +- g_settings_schema_unref (schema); +- return settings; +-} +- + static void + e_reminder_watcher_init (EReminderWatcher *watcher) + { +@@ -2647,7 +2627,7 @@ e_reminder_watcher_init (EReminderWatcher *watcher) + watcher->priv = e_reminder_watcher_get_instance_private (watcher); + watcher->priv->cancellable = g_cancellable_new (); + watcher->priv->settings = g_settings_new ("org.gnome.evolution-data-server.calendar"); +- watcher->priv->desktop_settings = e_reminder_watcher_load_settings_tentative ("org.gnome.desktop.interface"); ++ watcher->priv->desktop_settings = g_settings_new ("org.gnome.desktop.interface"); + if (watcher->priv->desktop_settings) { + g_signal_connect_object ( + watcher->priv->desktop_settings, diff --git a/pkgs/by-name/ev/evolution-data-server/fix-paths.patch b/pkgs/by-name/ev/evolution-data-server/fix-paths.patch new file mode 100644 index 0000000000000..334235516591f --- /dev/null +++ b/pkgs/by-name/ev/evolution-data-server/fix-paths.patch @@ -0,0 +1,11 @@ +--- a/src/calendar/libecal/e-cal-system-timezone.c ++++ b/src/calendar/libecal/e-cal-system-timezone.c +@@ -26,7 +26,7 @@ + #ifdef HAVE_SOLARIS + #define SYSTEM_ZONEINFODIR "/usr/share/lib/zoneinfo/tab" + #else +-#define SYSTEM_ZONEINFODIR "/usr/share/zoneinfo" ++#define SYSTEM_ZONEINFODIR "@tzdata@/share/zoneinfo" + #endif + + #define ETC_TIMEZONE "/etc/timezone" diff --git a/pkgs/by-name/ev/evolution-data-server/hardcode-gsettings.patch b/pkgs/by-name/ev/evolution-data-server/hardcode-gsettings.patch new file mode 100644 index 0000000000000..140e124fe4bbb --- /dev/null +++ b/pkgs/by-name/ev/evolution-data-server/hardcode-gsettings.patch @@ -0,0 +1,652 @@ +diff --git a/src/addressbook/libebook/e-book-client.c b/src/addressbook/libebook/e-book-client.c +index 5e65ec8..8ca28c6 100644 +--- a/src/addressbook/libebook/e-book-client.c ++++ b/src/addressbook/libebook/e-book-client.c +@@ -1924,7 +1924,18 @@ e_book_client_get_self (ESourceRegistry *registry, + + *out_client = book_client; + +- settings = g_settings_new (SELF_UID_PATH_ID); ++ { ++ g_autoptr(GSettingsSchemaSource) schema_source; ++ g_autoptr(GSettingsSchema) schema; ++ schema_source = g_settings_schema_source_new_from_directory("@EDS@", ++ g_settings_schema_source_get_default(), ++ TRUE, ++ NULL); ++ schema = g_settings_schema_source_lookup(schema_source, ++ SELF_UID_PATH_ID, ++ FALSE); ++ settings = g_settings_new_full(schema, NULL, NULL); ++ } + uid = g_settings_get_string (settings, SELF_UID_KEY); + g_object_unref (settings); + +@@ -1992,7 +2003,18 @@ e_book_client_set_self (EBookClient *client, + g_return_val_if_fail ( + e_contact_get_const (contact, E_CONTACT_UID) != NULL, FALSE); + +- settings = g_settings_new (SELF_UID_PATH_ID); ++ { ++ g_autoptr(GSettingsSchemaSource) schema_source; ++ g_autoptr(GSettingsSchema) schema; ++ schema_source = g_settings_schema_source_new_from_directory("@EDS@", ++ g_settings_schema_source_get_default(), ++ TRUE, ++ NULL); ++ schema = g_settings_schema_source_lookup(schema_source, ++ SELF_UID_PATH_ID, ++ FALSE); ++ settings = g_settings_new_full(schema, NULL, NULL); ++ } + g_settings_set_string ( + settings, SELF_UID_KEY, + e_contact_get_const (contact, E_CONTACT_UID)); +@@ -2028,8 +2050,18 @@ e_book_client_is_self (EContact *contact) + * unfortunately the API doesn't allow that. + */ + g_mutex_lock (&mutex); +- if (!settings) +- settings = g_settings_new (SELF_UID_PATH_ID); ++ if (!settings) { ++ g_autoptr(GSettingsSchemaSource) schema_source; ++ g_autoptr(GSettingsSchema) schema; ++ schema_source = g_settings_schema_source_new_from_directory("@EDS@", ++ g_settings_schema_source_get_default(), ++ TRUE, ++ NULL); ++ schema = g_settings_schema_source_lookup(schema_source, ++ SELF_UID_PATH_ID, ++ FALSE); ++ settings = g_settings_new_full(schema, NULL, NULL); ++ } + uid = g_settings_get_string (settings, SELF_UID_KEY); + g_mutex_unlock (&mutex); + +diff --git a/src/addressbook/libebook/e-book.c b/src/addressbook/libebook/e-book.c +index e85a56b..59d3fe2 100644 +--- a/src/addressbook/libebook/e-book.c ++++ b/src/addressbook/libebook/e-book.c +@@ -2587,7 +2587,18 @@ e_book_get_self (ESourceRegistry *registry, + return FALSE; + } + +- settings = g_settings_new (SELF_UID_PATH_ID); ++ { ++ g_autoptr(GSettingsSchemaSource) schema_source; ++ g_autoptr(GSettingsSchema) schema; ++ schema_source = g_settings_schema_source_new_from_directory("@EDS@", ++ g_settings_schema_source_get_default(), ++ TRUE, ++ NULL); ++ schema = g_settings_schema_source_lookup(schema_source, ++ SELF_UID_PATH_ID, ++ FALSE); ++ settings = g_settings_new_full(schema, NULL, NULL); ++ } + uid = g_settings_get_string (settings, SELF_UID_KEY); + g_object_unref (settings); + +@@ -2642,7 +2653,18 @@ e_book_set_self (EBook *book, + g_return_val_if_fail (E_IS_BOOK (book), FALSE); + g_return_val_if_fail (E_IS_CONTACT (contact), FALSE); + +- settings = g_settings_new (SELF_UID_PATH_ID); ++ { ++ g_autoptr(GSettingsSchemaSource) schema_source; ++ g_autoptr(GSettingsSchema) schema; ++ schema_source = g_settings_schema_source_new_from_directory("@EDS@", ++ g_settings_schema_source_get_default(), ++ TRUE, ++ NULL); ++ schema = g_settings_schema_source_lookup(schema_source, ++ SELF_UID_PATH_ID, ++ FALSE); ++ settings = g_settings_new_full(schema, NULL, NULL); ++ } + g_settings_set_string ( + settings, SELF_UID_KEY, + e_contact_get_const (contact, E_CONTACT_UID)); +@@ -2670,7 +2692,18 @@ e_book_is_self (EContact *contact) + + g_return_val_if_fail (E_IS_CONTACT (contact), FALSE); + +- settings = g_settings_new (SELF_UID_PATH_ID); ++ { ++ g_autoptr(GSettingsSchemaSource) schema_source; ++ g_autoptr(GSettingsSchema) schema; ++ schema_source = g_settings_schema_source_new_from_directory("@EDS@", ++ g_settings_schema_source_get_default(), ++ TRUE, ++ NULL); ++ schema = g_settings_schema_source_lookup(schema_source, ++ SELF_UID_PATH_ID, ++ FALSE); ++ settings = g_settings_new_full(schema, NULL, NULL); ++ } + uid = g_settings_get_string (settings, SELF_UID_KEY); + g_object_unref (settings); + +diff --git a/src/addressbook/libedata-book/e-book-meta-backend.c b/src/addressbook/libedata-book/e-book-meta-backend.c +index 5b4debf..77c8d9c 100644 +--- a/src/addressbook/libedata-book/e-book-meta-backend.c ++++ b/src/addressbook/libedata-book/e-book-meta-backend.c +@@ -144,7 +144,18 @@ ebmb_is_power_saver_enabled (void) + GSettings *settings; + gboolean enabled = FALSE; + +- settings = g_settings_new ("org.gnome.evolution-data-server"); ++ { ++ g_autoptr(GSettingsSchemaSource) schema_source; ++ g_autoptr(GSettingsSchema) schema; ++ schema_source = g_settings_schema_source_new_from_directory("@EDS@", ++ g_settings_schema_source_get_default(), ++ TRUE, ++ NULL); ++ schema = g_settings_schema_source_lookup(schema_source, ++ "org.gnome.evolution-data-server", ++ FALSE); ++ settings = g_settings_new_full(schema, NULL, NULL); ++ } + + if (g_settings_get_boolean (settings, "limit-operations-in-power-saver-mode")) { + GPowerProfileMonitor *power_monitor; +diff --git a/src/calendar/backends/contacts/e-cal-backend-contacts.c b/src/calendar/backends/contacts/e-cal-backend-contacts.c +index 43bd383..4dce824 100644 +--- a/src/calendar/backends/contacts/e-cal-backend-contacts.c ++++ b/src/calendar/backends/contacts/e-cal-backend-contacts.c +@@ -1369,7 +1369,18 @@ e_cal_backend_contacts_init (ECalBackendContacts *cbc) + (GDestroyNotify) g_free, + (GDestroyNotify) contact_record_free); + +- cbc->priv->settings = g_settings_new ("org.gnome.evolution-data-server.calendar"); ++ { ++ g_autoptr(GSettingsSchemaSource) schema_source; ++ g_autoptr(GSettingsSchema) schema; ++ schema_source = g_settings_schema_source_new_from_directory("@EDS@", ++ g_settings_schema_source_get_default(), ++ TRUE, ++ NULL); ++ schema = g_settings_schema_source_lookup(schema_source, ++ "org.gnome.evolution-data-server.calendar", ++ FALSE); ++ cbc->priv->settings = g_settings_new_full(schema, NULL, NULL); ++ } + cbc->priv->notifyid = 0; + cbc->priv->update_alarms_id = 0; + cbc->priv->alarm_enabled = FALSE; +diff --git a/src/calendar/backends/file/e-cal-backend-file.c b/src/calendar/backends/file/e-cal-backend-file.c +index 2525856..7ecc1a8 100644 +--- a/src/calendar/backends/file/e-cal-backend-file.c ++++ b/src/calendar/backends/file/e-cal-backend-file.c +@@ -3682,7 +3682,20 @@ e_cal_backend_file_receive_objects (ECalBackendSync *backend, + if (is_declined) { + GSettings *settings; + +- settings = g_settings_new ("org.gnome.evolution-data-server.calendar"); ++ { ++ g_autoptr(GSettingsSchemaSource) schema_source; ++ g_autoptr(GSettingsSchema) schema; ++ schema_source = g_settings_schema_source_new_from_directory("@EDS@", ++ g_settings_schema_source_get_default(), ++ TRUE, ++ NULL); ++ schema = g_settings_schema_source_lookup(schema_source, ++ "org.gnome.evolution-data-server.calendar", ++ FALSE); ++ settings = g_settings_new_full(schema, ++ NULL, ++ NULL); ++ } + can_delete = g_settings_get_boolean (settings, "delete-meeting-on-decline"); + g_clear_object (&settings); + } +diff --git a/src/calendar/libecal/e-reminder-watcher.c b/src/calendar/libecal/e-reminder-watcher.c +index 44ba49c..dfac2a2 100644 +--- a/src/calendar/libecal/e-reminder-watcher.c ++++ b/src/calendar/libecal/e-reminder-watcher.c +@@ -2826,8 +2826,33 @@ e_reminder_watcher_init (EReminderWatcher *watcher) + + watcher->priv = e_reminder_watcher_get_instance_private (watcher); + watcher->priv->cancellable = g_cancellable_new (); +- watcher->priv->settings = g_settings_new ("org.gnome.evolution-data-server.calendar"); +- watcher->priv->desktop_settings = g_settings_new ("org.gnome.desktop.interface"); ++ { ++ g_autoptr(GSettingsSchemaSource) schema_source; ++ g_autoptr(GSettingsSchema) schema; ++ schema_source = g_settings_schema_source_new_from_directory("@EDS@", ++ g_settings_schema_source_get_default(), ++ TRUE, ++ NULL); ++ schema = g_settings_schema_source_lookup(schema_source, ++ "org.gnome.evolution-data-server.calendar", ++ FALSE); ++ watcher->priv->settings = g_settings_new_full(schema, NULL, ++ NULL); ++ } ++ { ++ g_autoptr(GSettingsSchemaSource) schema_source; ++ g_autoptr(GSettingsSchema) schema; ++ schema_source = g_settings_schema_source_new_from_directory("@GDS@", ++ g_settings_schema_source_get_default(), ++ TRUE, ++ NULL); ++ schema = g_settings_schema_source_lookup(schema_source, ++ "org.gnome.desktop.interface", ++ FALSE); ++ watcher->priv->desktop_settings = g_settings_new_full(schema, ++ NULL, ++ NULL); ++ } + if (watcher->priv->desktop_settings) { + g_signal_connect_object ( + watcher->priv->desktop_settings, +diff --git a/src/calendar/libedata-cal/e-cal-meta-backend.c b/src/calendar/libedata-cal/e-cal-meta-backend.c +index e0e9169..a44f52c 100644 +--- a/src/calendar/libedata-cal/e-cal-meta-backend.c ++++ b/src/calendar/libedata-cal/e-cal-meta-backend.c +@@ -156,7 +156,18 @@ ecmb_is_power_saver_enabled (void) + GSettings *settings; + gboolean enabled = FALSE; + +- settings = g_settings_new ("org.gnome.evolution-data-server"); ++ { ++ g_autoptr(GSettingsSchemaSource) schema_source; ++ g_autoptr(GSettingsSchema) schema; ++ schema_source = g_settings_schema_source_new_from_directory("@EDS@", ++ g_settings_schema_source_get_default(), ++ TRUE, ++ NULL); ++ schema = g_settings_schema_source_lookup(schema_source, ++ "org.gnome.evolution-data-server", ++ FALSE); ++ settings = g_settings_new_full(schema, NULL, NULL); ++ } + + if (g_settings_get_boolean (settings, "limit-operations-in-power-saver-mode")) { + GPowerProfileMonitor *power_monitor; +@@ -2627,7 +2638,20 @@ ecmb_receive_object_sync (ECalMetaBackend *meta_backend, + if (is_declined) { + GSettings *settings; + +- settings = g_settings_new ("org.gnome.evolution-data-server.calendar"); ++ { ++ g_autoptr(GSettingsSchemaSource) schema_source; ++ g_autoptr(GSettingsSchema) schema; ++ schema_source = g_settings_schema_source_new_from_directory("@EDS@", ++ g_settings_schema_source_get_default(), ++ TRUE, ++ NULL); ++ schema = g_settings_schema_source_lookup(schema_source, ++ "org.gnome.evolution-data-server.calendar", ++ FALSE); ++ settings = g_settings_new_full(schema, ++ NULL, ++ NULL); ++ } + is_declined = g_settings_get_boolean (settings, "delete-meeting-on-decline"); + g_clear_object (&settings); + } +diff --git a/src/camel/camel-cipher-context.c b/src/camel/camel-cipher-context.c +index d5a0823..2ae03f8 100644 +--- a/src/camel/camel-cipher-context.c ++++ b/src/camel/camel-cipher-context.c +@@ -1631,7 +1631,18 @@ camel_cipher_can_load_photos (void) + GSettings *settings; + gboolean load_photos; + +- settings = g_settings_new ("org.gnome.evolution-data-server"); ++ { ++ g_autoptr(GSettingsSchemaSource) schema_source; ++ g_autoptr(GSettingsSchema) schema; ++ schema_source = g_settings_schema_source_new_from_directory("@EDS@", ++ g_settings_schema_source_get_default(), ++ TRUE, ++ NULL); ++ schema = g_settings_schema_source_lookup(schema_source, ++ "org.gnome.evolution-data-server", ++ FALSE); ++ settings = g_settings_new_full(schema, NULL, NULL); ++ } + load_photos = g_settings_get_boolean (settings, "camel-cipher-load-photos"); + g_clear_object (&settings); + +diff --git a/src/camel/camel-gpg-context.c b/src/camel/camel-gpg-context.c +index cceba4a..d3c4da6 100644 +--- a/src/camel/camel-gpg-context.c ++++ b/src/camel/camel-gpg-context.c +@@ -747,7 +747,18 @@ gpg_ctx_get_executable_name (void) + GSettings *settings; + gchar *path; + +- settings = g_settings_new ("org.gnome.evolution-data-server"); ++ { ++ g_autoptr(GSettingsSchemaSource) schema_source; ++ g_autoptr(GSettingsSchema) schema; ++ schema_source = g_settings_schema_source_new_from_directory("@EDS@", ++ g_settings_schema_source_get_default(), ++ TRUE, ++ NULL); ++ schema = g_settings_schema_source_lookup(schema_source, ++ "org.gnome.evolution-data-server", ++ FALSE); ++ settings = g_settings_new_full(schema, NULL, NULL); ++ } + path = g_settings_get_string (settings, "camel-gpg-binary"); + g_clear_object (&settings); + +diff --git a/src/camel/camel-utils.c b/src/camel/camel-utils.c +index e61160c..b6553a4 100644 +--- a/src/camel/camel-utils.c ++++ b/src/camel/camel-utils.c +@@ -362,7 +362,19 @@ void + _camel_utils_initialize (void) + { + G_LOCK (mi_user_headers); +- mi_user_headers_settings = g_settings_new ("org.gnome.evolution-data-server"); ++ { ++ g_autoptr(GSettingsSchemaSource) schema_source; ++ g_autoptr(GSettingsSchema) schema; ++ schema_source = g_settings_schema_source_new_from_directory("@EDS@", ++ g_settings_schema_source_get_default(), ++ TRUE, ++ NULL); ++ schema = g_settings_schema_source_lookup(schema_source, ++ "org.gnome.evolution-data-server", ++ FALSE); ++ mi_user_headers_settings = g_settings_new_full(schema, NULL, ++ NULL); ++ } + g_signal_connect (mi_user_headers_settings, "changed::camel-message-info-user-headers", + G_CALLBACK (mi_user_headers_settings_changed_cb), NULL); + G_UNLOCK (mi_user_headers); +diff --git a/src/camel/providers/imapx/camel-imapx-server.c b/src/camel/providers/imapx/camel-imapx-server.c +index 56429a9..a9cc62c 100644 +--- a/src/camel/providers/imapx/camel-imapx-server.c ++++ b/src/camel/providers/imapx/camel-imapx-server.c +@@ -5682,7 +5682,18 @@ camel_imapx_server_do_old_flags_update (CamelFolder *folder) + if (do_old_flags_update) { + GSettings *eds_settings; + +- eds_settings = g_settings_new ("org.gnome.evolution-data-server"); ++ { ++ g_autoptr(GSettingsSchemaSource) schema_source; ++ g_autoptr(GSettingsSchema) schema; ++ schema_source = g_settings_schema_source_new_from_directory("@EDS@", ++ g_settings_schema_source_get_default(), ++ TRUE, ++ NULL); ++ schema = g_settings_schema_source_lookup(schema_source, ++ "org.gnome.evolution-data-server", ++ FALSE); ++ eds_settings = g_settings_new_full(schema, NULL, NULL); ++ } + + if (g_settings_get_boolean (eds_settings, "limit-operations-in-power-saver-mode")) { + GPowerProfileMonitor *power_monitor; +diff --git a/src/camel/providers/smtp/camel-smtp-transport.c b/src/camel/providers/smtp/camel-smtp-transport.c +index 6556f1e..90f0a5e 100644 +--- a/src/camel/providers/smtp/camel-smtp-transport.c ++++ b/src/camel/providers/smtp/camel-smtp-transport.c +@@ -1471,7 +1471,18 @@ smtp_helo (CamelSmtpTransport *transport, + transport->authtypes = NULL; + } + +- settings = g_settings_new ("org.gnome.evolution-data-server"); ++ { ++ g_autoptr(GSettingsSchemaSource) schema_source; ++ g_autoptr(GSettingsSchema) schema; ++ schema_source = g_settings_schema_source_new_from_directory("@EDS@", ++ g_settings_schema_source_get_default(), ++ TRUE, ++ NULL); ++ schema = g_settings_schema_source_lookup(schema_source, ++ "org.gnome.evolution-data-server", ++ FALSE); ++ settings = g_settings_new_full(schema, NULL, NULL); ++ } + name = g_settings_get_string (settings, "camel-smtp-helo-argument"); + g_clear_object (&settings); + +diff --git a/src/libedataserver/e-network-monitor.c b/src/libedataserver/e-network-monitor.c +index 188f276..939f89b 100644 +--- a/src/libedataserver/e-network-monitor.c ++++ b/src/libedataserver/e-network-monitor.c +@@ -256,7 +256,18 @@ e_network_monitor_constructed (GObject *object) + /* Chain up to parent's method. */ + G_OBJECT_CLASS (e_network_monitor_parent_class)->constructed (object); + +- settings = g_settings_new ("org.gnome.evolution-data-server"); ++ { ++ g_autoptr(GSettingsSchemaSource) schema_source; ++ g_autoptr(GSettingsSchema) schema; ++ schema_source = g_settings_schema_source_new_from_directory("@EDS@", ++ g_settings_schema_source_get_default(), ++ TRUE, ++ NULL); ++ schema = g_settings_schema_source_lookup(schema_source, ++ "org.gnome.evolution-data-server", ++ FALSE); ++ settings = g_settings_new_full(schema, NULL, NULL); ++ } + g_settings_bind ( + settings, "network-monitor-gio-name", + object, "gio-name", +diff --git a/src/libedataserver/e-oauth2-service-google.c b/src/libedataserver/e-oauth2-service-google.c +index 1453410..a3f06b0 100644 +--- a/src/libedataserver/e-oauth2-service-google.c ++++ b/src/libedataserver/e-oauth2-service-google.c +@@ -72,7 +72,18 @@ eos_google_read_settings (EOAuth2Service *service, + if (!value) { + GSettings *settings; + +- settings = g_settings_new ("org.gnome.evolution-data-server"); ++ { ++ g_autoptr(GSettingsSchemaSource) schema_source; ++ g_autoptr(GSettingsSchema) schema; ++ schema_source = g_settings_schema_source_new_from_directory("@EDS@", ++ g_settings_schema_source_get_default(), ++ TRUE, ++ NULL); ++ schema = g_settings_schema_source_lookup(schema_source, ++ "org.gnome.evolution-data-server", ++ FALSE); ++ settings = g_settings_new_full(schema, NULL, NULL); ++ } + value = g_settings_get_string (settings, key_name); + g_object_unref (settings); + +diff --git a/src/libedataserver/e-oauth2-service-outlook.c b/src/libedataserver/e-oauth2-service-outlook.c +index 734f194..5b05077 100644 +--- a/src/libedataserver/e-oauth2-service-outlook.c ++++ b/src/libedataserver/e-oauth2-service-outlook.c +@@ -75,7 +75,18 @@ eos_outlook_read_settings (EOAuth2Service *service, + if (!value) { + GSettings *settings; + +- settings = g_settings_new ("org.gnome.evolution-data-server"); ++ { ++ g_autoptr(GSettingsSchemaSource) schema_source; ++ g_autoptr(GSettingsSchema) schema; ++ schema_source = g_settings_schema_source_new_from_directory("@EDS@", ++ g_settings_schema_source_get_default(), ++ TRUE, ++ NULL); ++ schema = g_settings_schema_source_lookup(schema_source, ++ "org.gnome.evolution-data-server", ++ FALSE); ++ settings = g_settings_new_full(schema, NULL, NULL); ++ } + value = g_settings_get_string (settings, key_name); + g_object_unref (settings); + +diff --git a/src/libedataserver/e-oauth2-service-yahoo.c b/src/libedataserver/e-oauth2-service-yahoo.c +index c8bbd3a..e71e36a 100644 +--- a/src/libedataserver/e-oauth2-service-yahoo.c ++++ b/src/libedataserver/e-oauth2-service-yahoo.c +@@ -67,7 +67,18 @@ eos_yahoo_read_settings (EOAuth2Service *service, + if (!value) { + GSettings *settings; + +- settings = g_settings_new ("org.gnome.evolution-data-server"); ++ { ++ g_autoptr(GSettingsSchemaSource) schema_source; ++ g_autoptr(GSettingsSchema) schema; ++ schema_source = g_settings_schema_source_new_from_directory("@EDS@", ++ g_settings_schema_source_get_default(), ++ TRUE, ++ NULL); ++ schema = g_settings_schema_source_lookup(schema_source, ++ "org.gnome.evolution-data-server", ++ FALSE); ++ settings = g_settings_new_full(schema, NULL, NULL); ++ } + value = g_settings_get_string (settings, key_name); + g_object_unref (settings); + +diff --git a/src/libedataserver/e-oauth2-service.c b/src/libedataserver/e-oauth2-service.c +index af59b0b..0c7e75e 100644 +--- a/src/libedataserver/e-oauth2-service.c ++++ b/src/libedataserver/e-oauth2-service.c +@@ -94,7 +94,18 @@ eos_default_guess_can_process (EOAuth2Service *service, + name_len = strlen (name); + hostname_len = strlen (hostname); + +- settings = g_settings_new ("org.gnome.evolution-data-server"); ++ { ++ g_autoptr(GSettingsSchemaSource) schema_source; ++ g_autoptr(GSettingsSchema) schema; ++ schema_source = g_settings_schema_source_new_from_directory("@EDS@", ++ g_settings_schema_source_get_default(), ++ TRUE, ++ NULL); ++ schema = g_settings_schema_source_lookup(schema_source, ++ "org.gnome.evolution-data-server", ++ FALSE); ++ settings = g_settings_new_full(schema, NULL, NULL); ++ } + values = g_settings_get_strv (settings, "oauth2-services-hint"); + g_object_unref (settings); + +diff --git a/src/libedataserver/e-source-registry.c b/src/libedataserver/e-source-registry.c +index 1539f8b..77cf123 100644 +--- a/src/libedataserver/e-source-registry.c ++++ b/src/libedataserver/e-source-registry.c +@@ -1754,7 +1754,19 @@ e_source_registry_init (ESourceRegistry *registry) + + g_mutex_init (®istry->priv->sources_lock); + +- registry->priv->settings = g_settings_new (GSETTINGS_SCHEMA); ++ { ++ g_autoptr(GSettingsSchemaSource) schema_source; ++ g_autoptr(GSettingsSchema) schema; ++ schema_source = g_settings_schema_source_new_from_directory("@EDS@", ++ g_settings_schema_source_get_default(), ++ TRUE, ++ NULL); ++ schema = g_settings_schema_source_lookup(schema_source, ++ GSETTINGS_SCHEMA, ++ FALSE); ++ registry->priv->settings = g_settings_new_full(schema, NULL, ++ NULL); ++ } + + g_signal_connect ( + registry->priv->settings, "changed", +diff --git a/src/libedataserverui/e-reminders-widget.c b/src/libedataserverui/e-reminders-widget.c +index 14b6481..7149b74 100644 +--- a/src/libedataserverui/e-reminders-widget.c ++++ b/src/libedataserverui/e-reminders-widget.c +@@ -1986,7 +1986,19 @@ static void + e_reminders_widget_init (ERemindersWidget *reminders) + { + reminders->priv = e_reminders_widget_get_instance_private (reminders); +- reminders->priv->settings = g_settings_new ("org.gnome.evolution-data-server.calendar"); ++ { ++ g_autoptr(GSettingsSchemaSource) schema_source; ++ g_autoptr(GSettingsSchema) schema; ++ schema_source = g_settings_schema_source_new_from_directory("@EDS@", ++ g_settings_schema_source_get_default(), ++ TRUE, ++ NULL); ++ schema = g_settings_schema_source_lookup(schema_source, ++ "org.gnome.evolution-data-server.calendar", ++ FALSE); ++ reminders->priv->settings = g_settings_new_full(schema, NULL, ++ NULL); ++ } + reminders->priv->cancellable = g_cancellable_new (); + reminders->priv->is_empty = TRUE; + reminders->priv->is_mapped = FALSE; +diff --git a/src/services/evolution-source-registry/evolution-source-registry-autoconfig.c b/src/services/evolution-source-registry/evolution-source-registry-autoconfig.c +index 6f03053..b5db6b2 100644 +--- a/src/services/evolution-source-registry/evolution-source-registry-autoconfig.c ++++ b/src/services/evolution-source-registry/evolution-source-registry-autoconfig.c +@@ -706,7 +706,18 @@ evolution_source_registry_merge_autoconfig_sources (ESourceRegistryServer *serve + gchar *autoconfig_directory; + gint ii; + +- settings = g_settings_new ("org.gnome.evolution-data-server"); ++ { ++ g_autoptr(GSettingsSchemaSource) schema_source; ++ g_autoptr(GSettingsSchema) schema; ++ schema_source = g_settings_schema_source_new_from_directory("@EDS@", ++ g_settings_schema_source_get_default(), ++ TRUE, ++ NULL); ++ schema = g_settings_schema_source_lookup(schema_source, ++ "org.gnome.evolution-data-server", ++ FALSE); ++ settings = g_settings_new_full(schema, NULL, NULL); ++ } + + autoconfig_sources = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, e_autoconfig_free_merge_source_data); + +diff --git a/src/services/evolution-source-registry/evolution-source-registry-migrate-proxies.c b/src/services/evolution-source-registry/evolution-source-registry-migrate-proxies.c +index d531cb9..c96f1d5 100644 +--- a/src/services/evolution-source-registry/evolution-source-registry-migrate-proxies.c ++++ b/src/services/evolution-source-registry/evolution-source-registry-migrate-proxies.c +@@ -61,7 +61,18 @@ evolution_source_registry_migrate_proxies (ESourceRegistryServer *server) + extension_name = E_SOURCE_EXTENSION_PROXY; + extension = e_source_get_extension (source, extension_name); + +- settings = g_settings_new (NETWORK_CONFIG_SCHEMA_ID); ++ { ++ g_autoptr(GSettingsSchemaSource) schema_source; ++ g_autoptr(GSettingsSchema) schema; ++ schema_source = g_settings_schema_source_new_from_directory("@EDS@", ++ g_settings_schema_source_get_default(), ++ TRUE, ++ NULL); ++ schema = g_settings_schema_source_lookup(schema_source, ++ NETWORK_CONFIG_SCHEMA_ID, ++ FALSE); ++ settings = g_settings_new_full(schema, NULL, NULL); ++ } + + switch (g_settings_get_int (settings, "proxy-type")) { + case 1: +diff --git a/src/services/evolution-source-registry/evolution-source-registry.c b/src/services/evolution-source-registry/evolution-source-registry.c +index 1c0a113..6b41423 100644 +--- a/src/services/evolution-source-registry/evolution-source-registry.c ++++ b/src/services/evolution-source-registry/evolution-source-registry.c +@@ -181,7 +181,18 @@ main (gint argc, + + reload: + +- settings = g_settings_new ("org.gnome.evolution-data-server"); ++ { ++ g_autoptr(GSettingsSchemaSource) schema_source; ++ g_autoptr(GSettingsSchema) schema; ++ schema_source = g_settings_schema_source_new_from_directory("@EDS@", ++ g_settings_schema_source_get_default(), ++ TRUE, ++ NULL); ++ schema = g_settings_schema_source_lookup(schema_source, ++ "org.gnome.evolution-data-server", ++ FALSE); ++ settings = g_settings_new_full(schema, NULL, NULL); ++ } + + if (!opt_disable_migration && !g_settings_get_boolean (settings, "migrated")) { + g_settings_set_boolean (settings, "migrated", TRUE); diff --git a/pkgs/by-name/ev/evolution-data-server/package.nix b/pkgs/by-name/ev/evolution-data-server/package.nix new file mode 100644 index 0000000000000..d774ea2f26853 --- /dev/null +++ b/pkgs/by-name/ev/evolution-data-server/package.nix @@ -0,0 +1,189 @@ +{ stdenv +, lib +, fetchurl +, substituteAll +, pkg-config +, gnome +, _experimental-update-script-combinators +, python3 +, gobject-introspection +, gettext +, libsoup_3 +, libxml2 +, libsecret +, icu +, sqlite +, tzdata +, libcanberra-gtk3 +, p11-kit +, db +, nspr +, nss +, libical +, gperf +, wrapGAppsHook3 +, glib-networking +, gsettings-desktop-schemas +, pcre +, vala +, cmake +, ninja +, libkrb5 +, openldap +, enableOAuth2 ? stdenv.isLinux +, webkitgtk_4_1 +, webkitgtk_6_0 +, json-glib +, glib +, gtk3 +, gtk4 +, withGtk3 ? true +, withGtk4 ? false +, libphonenumber +, gnome-online-accounts +, libgweather +, boost +, protobuf +, libiconv +, makeHardcodeGsettingsPatch +}: + +stdenv.mkDerivation rec { + pname = "evolution-data-server"; + version = "3.52.2"; + + outputs = [ "out" "dev" ]; + + src = fetchurl { + url = "mirror://gnome/sources/evolution-data-server/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + hash = "sha256-oAakTtyzjSb/scYuHV0KMdHy5ZB1Vl4mx5ou4BxFp+U="; + }; + + patches = [ + (substituteAll { + src = ./fix-paths.patch; + inherit tzdata; + }) + + # Avoid using wrapper function, which the hardcode gsettings + # patch generator cannot handle. + ./drop-tentative-settings-constructor.patch + ]; + + prePatch = '' + substitute ${./hardcode-gsettings.patch} hardcode-gsettings.patch \ + --subst-var-by EDS ${glib.makeSchemaPath "$out" "${pname}-${version}"} \ + --subst-var-by GDS ${glib.getSchemaPath gsettings-desktop-schemas} + patches="$patches $PWD/hardcode-gsettings.patch" + ''; + + nativeBuildInputs = [ + cmake + ninja + pkg-config + gettext + python3 + gperf + wrapGAppsHook3 + gobject-introspection + vala + ]; + + buildInputs = [ + glib + libsecret + libsoup_3 + gnome-online-accounts + p11-kit + libgweather + icu + sqlite + libkrb5 + openldap + glib-networking + libcanberra-gtk3 + pcre + libphonenumber + boost + protobuf + ] ++ lib.optionals stdenv.isDarwin [ + libiconv + ] ++ lib.optionals withGtk3 [ + gtk3 + ] ++ lib.optionals (withGtk3 && enableOAuth2) [ + webkitgtk_4_1 + ] ++ lib.optionals withGtk4 [ + gtk4 + ] ++ lib.optionals (withGtk4 && enableOAuth2) [ + webkitgtk_6_0 + ]; + + propagatedBuildInputs = [ + db + nss + nspr + libical + libsoup_3 + libxml2 + json-glib + ]; + + cmakeFlags = [ + "-DENABLE_UOA=OFF" + "-DENABLE_VALA_BINDINGS=ON" + "-DENABLE_INTROSPECTION=ON" + "-DINCLUDE_INSTALL_DIR=${placeholder "dev"}/include" + "-DWITH_PHONENUMBER=ON" + "-DENABLE_GTK=${lib.boolToString withGtk3}" + "-DENABLE_EXAMPLES=${lib.boolToString withGtk3}" + "-DENABLE_CANBERRA=${lib.boolToString withGtk3}" + "-DENABLE_GTK4=${lib.boolToString withGtk4}" + "-DENABLE_OAUTH2_WEBKITGTK=${lib.boolToString (withGtk3 && enableOAuth2)}" + "-DENABLE_OAUTH2_WEBKITGTK4=${lib.boolToString (withGtk4 && enableOAuth2)}" + ]; + + postPatch = lib.optionalString stdenv.isDarwin '' + substituteInPlace cmake/modules/SetupBuildFlags.cmake \ + --replace "-Wl,--no-undefined" "" + substituteInPlace src/services/evolution-alarm-notify/e-alarm-notify.c \ + --replace "G_OS_WIN32" "__APPLE__" + ''; + + postInstall = lib.optionalString stdenv.isDarwin '' + ln -s $out/lib/${pname}/*.dylib $out/lib/ + ''; + + passthru = { + hardcodeGsettingsPatch = makeHardcodeGsettingsPatch { + schemaIdToVariableMapping = { + "org.gnome.Evolution.DefaultSources" = "EDS"; + "org.gnome.evolution.shell.network-config" = "EDS"; + "org.gnome.evolution-data-server.addressbook" = "EDS"; + "org.gnome.evolution-data-server.calendar" = "EDS"; + "org.gnome.evolution-data-server" = "EDS"; + "org.gnome.desktop.interface" = "GDS"; + }; + inherit src patches; + }; + updateScript = + let + updateSource = gnome.updateScript { + packageName = "evolution-data-server"; + versionPolicy = "odd-unstable"; + }; + updatePatch = _experimental-update-script-combinators.copyAttrOutputToFile "evolution-data-server.hardcodeGsettingsPatch" ./hardcode-gsettings.patch; + in + _experimental-update-script-combinators.sequence [ + updateSource + updatePatch + ]; + }; + + meta = with lib; { + description = "Unified backend for programs that work with contacts, tasks, and calendar information"; + homepage = "https://gitlab.gnome.org/GNOME/evolution-data-server"; + license = licenses.lgpl2Plus; + maintainers = teams.gnome.members; + platforms = platforms.unix; + }; +} diff --git a/pkgs/by-name/fi/file-roller/package.nix b/pkgs/by-name/fi/file-roller/package.nix new file mode 100644 index 0000000000000..497bfe4920c91 --- /dev/null +++ b/pkgs/by-name/fi/file-roller/package.nix @@ -0,0 +1,78 @@ +{ lib +, stdenv +, fetchurl +, desktop-file-utils +, gettext +, glibcLocales +, itstool +, libxml2 +, meson +, ninja +, pkg-config +, python3 +, wrapGAppsHook4 +, cpio +, glib +, gnome +, gtk4 +, libadwaita +, libhandy +, json-glib +, libarchive +, libportal-gtk4 +, nautilus +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "file-roller"; + version = "44.3"; + + src = fetchurl { + url = "mirror://gnome/sources/file-roller/${lib.versions.major finalAttrs.version}/file-roller-${finalAttrs.version}.tar.xz"; + hash = "sha256-BMinRiX+yEJn/exAMGr7QQS9My2FBh4NNtSrBTOt+ko="; + }; + + nativeBuildInputs = [ + desktop-file-utils + gettext + glibcLocales + itstool + libxml2 + meson + ninja + pkg-config + python3 + wrapGAppsHook4 + ]; + + buildInputs = [ + cpio + glib + gtk4 + libadwaita + libhandy + json-glib + libarchive + libportal-gtk4 + nautilus + ]; + + postPatch = '' + patchShebangs data/set-mime-type-entry.py + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = "file-roller"; + }; + }; + + meta = with lib; { + homepage = "https://gitlab.gnome.org/GNOME/file-roller"; + description = "Archive manager for the GNOME desktop environment"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = teams.gnome.members ++ teams.pantheon.members; + mainProgram = "file-roller"; + }; +}) diff --git a/pkgs/by-name/fo/font-manager/package.nix b/pkgs/by-name/fo/font-manager/package.nix index 0cfc68aa4fd2b..83fba770c113e 100644 --- a/pkgs/by-name/fo/font-manager/package.nix +++ b/pkgs/by-name/fo/font-manager/package.nix @@ -14,7 +14,7 @@ , vala , gsettings-desktop-schemas , gtk3 -, gnome +, adwaita-icon-theme , desktop-file-utils , nix-update-script , wrapGAppsHook3 @@ -55,7 +55,7 @@ stdenv.mkDerivation rec { sqlite gsettings-desktop-schemas # for font settings gtk3 - gnome.adwaita-icon-theme + adwaita-icon-theme ] ++ lib.optionals withWebkit [ glib-networking # for SSL so that Google Fonts can load libsoup diff --git a/pkgs/by-name/ge/geary/package.nix b/pkgs/by-name/ge/geary/package.nix new file mode 100644 index 0000000000000..565ed9ae2d239 --- /dev/null +++ b/pkgs/by-name/ge/geary/package.nix @@ -0,0 +1,156 @@ +{ lib +, stdenv +, fetchurl +, pkg-config +, gtk3 +, vala +, enchant2 +, wrapGAppsHook3 +, meson +, ninja +, desktop-file-utils +, gnome-online-accounts +, gsettings-desktop-schemas +, adwaita-icon-theme +, libpeas +, libsecret +, gmime3 +, isocodes +, icu +, libxml2 +, gettext +, sqlite +, gcr +, json-glib +, itstool +, libgee +, gnome +, webkitgtk_4_1 +, python3 +, gnutls +, cacert +, xvfb-run +, glibcLocales +, dbus +, shared-mime-info +, libunwind +, folks +, glib-networking +, gobject-introspection +, gspell +, appstream-glib +, libstemmer +, libytnef +, libhandy +, gsound +}: + +stdenv.mkDerivation rec { + pname = "geary"; + version = "46.0"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; + sha256 = "r60VEwKBfd8Ji15BbnrH8tXupWejuAu5C9PGKv0TuaE="; + }; + + nativeBuildInputs = [ + appstream-glib + desktop-file-utils + gettext + gobject-introspection + itstool + libxml2 + meson + ninja + pkg-config + python3 + vala + wrapGAppsHook3 + ]; + + buildInputs = [ + adwaita-icon-theme + enchant2 + folks + gcr + glib-networking + gmime3 + gnome-online-accounts + gsettings-desktop-schemas + gsound + gspell + gtk3 + isocodes + icu + json-glib + libgee + libhandy + libpeas + libsecret + libunwind + libstemmer + libytnef + sqlite + webkitgtk_4_1 + ]; + + nativeCheckInputs = [ + dbus + gnutls # for certtool + cacert # trust store for glib-networking + xvfb-run + glibcLocales # required by Geary.ImapDb.DatabaseTest/utf8_case_insensitive_collation + ]; + + mesonFlags = [ + "-Dprofile=release" + "-Dcontractor=enabled" # install the contractor file (Pantheon specific) + ]; + + # NOTE: Remove `build-auxyaml_to_json.py` when no longer needed, see: + # https://gitlab.gnome.org/GNOME/geary/commit/f7f72143e0f00ca5e0e6a798691805c53976ae31#0cc1139e3347f573ae1feee5b73dbc8a8a21fcfa + postPatch = '' + chmod +x build-aux/git_version.py + + patchShebangs build-aux/git_version.py + + chmod +x desktop/geary-attach + ''; + + # Some tests time out. + doCheck = false; + + checkPhase = '' + runHook preCheck + + NO_AT_BRIDGE=1 \ + GIO_EXTRA_MODULES=$GIO_EXTRA_MODULES:${glib-networking}/lib/gio/modules \ + HOME=$TMPDIR \ + XDG_DATA_DIRS=$XDG_DATA_DIRS:${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${shared-mime-info}/share:${folks}/share/gsettings-schemas/${folks.name} \ + xvfb-run -s '-screen 0 800x600x24' dbus-run-session \ + --config-file=${dbus}/share/dbus-1/session.conf \ + meson test -v --no-stdsplit + + runHook postCheck + ''; + + preFixup = '' + # Add geary to path for geary-attach + gappsWrapperArgs+=(--prefix PATH : "$out/bin") + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + }; + }; + + meta = with lib; { + homepage = "https://gitlab.gnome.org/GNOME/geary"; + description = "Mail client for GNOME 3"; + maintainers = teams.gnome.members; + license = licenses.lgpl21Plus; + platforms = platforms.linux; + }; +} diff --git a/pkgs/by-name/gh/ghex/package.nix b/pkgs/by-name/gh/ghex/package.nix new file mode 100644 index 0000000000000..0f3aefaa56bed --- /dev/null +++ b/pkgs/by-name/gh/ghex/package.nix @@ -0,0 +1,86 @@ +{ stdenv +, lib +, fetchurl +, pkg-config +, gi-docgen +, meson +, ninja +, gnome +, desktop-file-utils +, appstream-glib +, gettext +, itstool +, libxml2 +, gtk4 +, libadwaita +, glib +, atk +, gobject-introspection +, vala +, wrapGAppsHook4 +}: + +stdenv.mkDerivation rec { + pname = "ghex"; + version = "46.0"; + + outputs = [ "out" "dev" "devdoc" ]; + + src = fetchurl { + url = "mirror://gnome/sources/ghex/${lib.versions.major version}/${pname}-${version}.tar.xz"; + hash = "sha256-ocRvMCDLNYuDIwJds6U5yX2ZSkxG9wH0jtxjV/f7y9E="; + }; + + nativeBuildInputs = [ + desktop-file-utils + gettext + itstool + meson + ninja + pkg-config + gi-docgen + gobject-introspection + vala + wrapGAppsHook4 + ]; + + buildInputs = [ + gtk4 + libadwaita + atk + glib + ]; + + nativeCheckInputs = [ + appstream-glib + desktop-file-utils + ]; + + mesonFlags = [ + "-Dgtk_doc=true" + "-Dvapi=true" + ] ++ lib.optionals stdenv.isDarwin [ + # mremap does not exist on darwin + "-Dmmap-buffer-backend=false" + ]; + + postFixup = '' + # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back. + moveToOutput "share/doc" "$devdoc" + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = "ghex"; + }; + }; + + meta = with lib; { + homepage = "https://gitlab.gnome.org/GNOME/ghex"; + description = "Hex editor for GNOME desktop environment"; + mainProgram = "ghex"; + platforms = platforms.linux; + license = licenses.gpl2Plus; + maintainers = teams.gnome.members; + }; +} diff --git a/pkgs/by-name/gi/gitg/package.nix b/pkgs/by-name/gi/gitg/package.nix new file mode 100644 index 0000000000000..923f1ccc28bfd --- /dev/null +++ b/pkgs/by-name/gi/gitg/package.nix @@ -0,0 +1,99 @@ +{ lib +, stdenv +, fetchurl +, vala +, pkg-config +, gtk3 +, glib +, gpgme +, json-glib +, wrapGAppsHook3 +, libpeas +, bash +, gobject-introspection +, gtksourceview4 +, gsettings-desktop-schemas +, gnome +, gspell +, gvfs +, shared-mime-info +, libgee +, libgit2-glib +, libhandy +, libsecret +, libxml2 +, meson +, ninja +, python3 +, libdazzle +}: + +stdenv.mkDerivation rec { + pname = "gitg"; + version = "44"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + hash = "sha256-NCoxaE2rlnHNNBvT485mWtzuBGDCoIHdxJPNvAMTJTA="; + }; + + nativeBuildInputs = [ + gobject-introspection + meson + ninja + pkg-config + python3 + vala + wrapGAppsHook3 + ]; + + buildInputs = [ + glib + gpgme + gsettings-desktop-schemas + gtk3 + gtksourceview4 + gspell + gvfs + json-glib + libdazzle + libgee + libgit2-glib + libhandy + libpeas + libsecret + libxml2 + ]; + + doCheck = true; + + postPatch = '' + patchShebangs meson_post_install.py + + substituteInPlace tests/libgitg/test-commit.vala --replace-fail "/bin/bash" "${bash}/bin/bash" + ''; + + preFixup = '' + gappsWrapperArgs+=( + # Thumbnailers + --prefix XDG_DATA_DIRS : "${shared-mime-info}/share" + ) + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + }; + }; + + strictDeps = true; + + meta = with lib; { + homepage = "https://gitlab.gnome.org/GNOME/gitg"; + description = "GNOME GUI client to view git repositories"; + mainProgram = "gitg"; + maintainers = with maintainers; [ domenkozar Luflosi ]; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/pkgs/by-name/gi/github-desktop/package.nix b/pkgs/by-name/gi/github-desktop/package.nix index ae882fdfddaff..606a7770dc2f3 100644 --- a/pkgs/by-name/gi/github-desktop/package.nix +++ b/pkgs/by-name/gi/github-desktop/package.nix @@ -4,7 +4,7 @@ , autoPatchelfHook , wrapGAppsHook3 , makeWrapper -, gnome +, gnome-keyring , libsecret , git , curl @@ -48,7 +48,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { ]; buildInputs = [ - gnome.gnome-keyring + gnome-keyring xorg.libXdamage xorg.libX11 libsecret diff --git a/pkgs/by-name/gn/gnome-autoar/package.nix b/pkgs/by-name/gn/gnome-autoar/package.nix new file mode 100644 index 0000000000000..dfbcc24898b5a --- /dev/null +++ b/pkgs/by-name/gn/gnome-autoar/package.nix @@ -0,0 +1,59 @@ +{ stdenv +, lib +, fetchurl +, meson +, ninja +, pkg-config +, gnome +, gtk3 +, glib +, gobject-introspection +, libarchive +, vala +}: + +stdenv.mkDerivation rec { + pname = "gnome-autoar"; + version = "0.4.4"; + + outputs = [ "out" "dev" ]; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-autoar/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "wK++MzvPPLFEGh9XTMjsexuBl3eRRdTt7uKJb9rPw8I="; + }; + + nativeBuildInputs = [ + gobject-introspection + meson + ninja + pkg-config + vala + ]; + + buildInputs = [ + gtk3 + ]; + + propagatedBuildInputs = [ + libarchive + glib + ]; + + mesonFlags = [ + "-Dvapi=true" + ]; + + passthru = { + updateScript = gnome.updateScript { + packageName = "gnome-autoar"; + }; + }; + + meta = with lib; { + platforms = platforms.linux; + maintainers = teams.gnome.members; + license = licenses.lgpl21Plus; + description = "Library to integrate compressed files management with GNOME"; + }; +} diff --git a/pkgs/by-name/gn/gnome-calculator/package.nix b/pkgs/by-name/gn/gnome-calculator/package.nix new file mode 100644 index 0000000000000..577a8245426a6 --- /dev/null +++ b/pkgs/by-name/gn/gnome-calculator/package.nix @@ -0,0 +1,80 @@ +{ stdenv +, lib +, appstream +, meson +, ninja +, vala +, gettext +, itstool +, fetchurl +, pkg-config +, libxml2 +, gtk4 +, glib +, gtksourceview5 +, wrapGAppsHook4 +, gnome +, mpfr +, gmp +, libsoup_3 +, libmpc +, libadwaita +, gsettings-desktop-schemas +, libgee +}: + +stdenv.mkDerivation rec { + pname = "gnome-calculator"; + version = "46.1"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-calculator/${lib.versions.major version}/${pname}-${version}.tar.xz"; + hash = "sha256-LTZ1CnOJAIYSLPPwyD5oUXiRWFYVFlMG+hWWqRhmgkc="; + }; + + nativeBuildInputs = [ + appstream + meson + ninja + pkg-config + vala + gettext + itstool + wrapGAppsHook4 + ]; + + buildInputs = [ + gtk4 + glib + libxml2 + gtksourceview5 + mpfr + gmp + libgee + gsettings-desktop-schemas + libsoup_3 + libmpc + libadwaita + ]; + + doCheck = true; + + preCheck = '' + # Currency conversion test tries to store currency data in $HOME/.cache. + export HOME=$TMPDIR + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = "gnome-calculator"; + }; + }; + + meta = with lib; { + homepage = "https://apps.gnome.org/Calculator/"; + description = "Application that solves mathematical equations and is suitable as a default application in a Desktop environment"; + maintainers = teams.gnome.members; + license = licenses.gpl3Plus; + platforms = platforms.unix; + }; +} diff --git a/pkgs/by-name/gn/gnome-calendar/package.nix b/pkgs/by-name/gn/gnome-calendar/package.nix new file mode 100644 index 0000000000000..a751ee3822718 --- /dev/null +++ b/pkgs/by-name/gn/gnome-calendar/package.nix @@ -0,0 +1,66 @@ +{ stdenv +, lib +, fetchurl +, meson +, ninja +, pkg-config +, wrapGAppsHook4 +, libgweather +, geoclue2 +, gettext +, libxml2 +, gnome +, gtk4 +, evolution-data-server-gtk4 +, libical +, libsoup_3 +, glib +, gsettings-desktop-schemas +, libadwaita +}: + +stdenv.mkDerivation rec { + pname = "gnome-calendar"; + version = "46.1"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; + hash = "sha256-mGH/e4q9W3sgaQulXrdULH7FNLVmJp4ptbHoWMFhCJc="; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + gettext + libxml2 + wrapGAppsHook4 + ]; + + buildInputs = [ + gtk4 + evolution-data-server-gtk4 + libical + libsoup_3 + glib + libgweather + geoclue2 + gsettings-desktop-schemas + libadwaita + ]; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + }; + }; + + meta = with lib; { + homepage = "https://apps.gnome.org/Calendar/"; + description = "Simple and beautiful calendar application for GNOME"; + mainProgram = "gnome-calendar"; + maintainers = teams.gnome.members; + license = licenses.gpl3Plus; + platforms = platforms.unix; + }; +} diff --git a/pkgs/by-name/gn/gnome-common/package.nix b/pkgs/by-name/gn/gnome-common/package.nix new file mode 100644 index 0000000000000..0f9a1269b6ba9 --- /dev/null +++ b/pkgs/by-name/gn/gnome-common/package.nix @@ -0,0 +1,21 @@ +{ lib, stdenv, fetchurl, which, gnome, autoconf, automake }: + +stdenv.mkDerivation rec { + pname = "gnome-common"; + version = "3.18.0"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-common/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "22569e370ae755e04527b76328befc4c73b62bfd4a572499fde116b8318af8cf"; + }; + + passthru = { + updateScript = gnome.updateScript { packageName = "gnome-common"; }; + }; + + propagatedBuildInputs = [ which autoconf automake ]; # autogen.sh which is using gnome-common tends to require which + + meta = with lib; { + maintainers = teams.gnome.members; + }; +} diff --git a/pkgs/by-name/gn/gnome-dictionary/package.nix b/pkgs/by-name/gn/gnome-dictionary/package.nix new file mode 100644 index 0000000000000..9db61b591eb74 --- /dev/null +++ b/pkgs/by-name/gn/gnome-dictionary/package.nix @@ -0,0 +1,86 @@ +{ stdenv +, lib +, fetchurl +, fetchpatch +, meson +, ninja +, pkg-config +, desktop-file-utils +, appstream-glib +, libxslt +, libxml2 +, gettext +, itstool +, wrapGAppsHook3 +, docbook_xsl +, docbook_xml_dtd_43 +, gnome +, adwaita-icon-theme +, gtk3 +, glib +, gsettings-desktop-schemas +}: + +stdenv.mkDerivation rec { + pname = "gnome-dictionary"; + version = "40.0"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-dictionary/${lib.versions.major version}/${pname}-${version}.tar.xz"; + sha256 = "1d8dhcfys788vv27v34i3s3x3jdvdi2kqn2a5p8c937a9hm0qr9f"; + }; + + patches = [ + # Fix test dependencies with meson 0.57, can be removed on next bump + # We need to explicitly depend on the generated files. + (fetchpatch { + url = "https://gitlab.gnome.org/Archive/gnome-dictionary/-/commit/87c026cfe4acbcfc62d15950f88a71d8d9678c7e.patch"; + sha256 = "tKesWeOK3OqOxrXm4dZvCZHHdTD7AQbYDjtYDCsLd3A="; + }) + # Fix build with meson 0.61, can be removed on next bump + # data/appdata/meson.build:3:5: ERROR: Function does not take positional arguments. + (fetchpatch { + url = "https://gitlab.gnome.org/Archive/gnome-dictionary/-/commit/cf3f8a67cd6f3059c555ed9cf0f5fba10abb7f68.patch"; + sha256 = "cIRM6ACqsnEo2JWYvr6EBye5o0BudugZMShCe1U5hz8="; + }) + ]; + + nativeBuildInputs = [ + meson + ninja + pkg-config + wrapGAppsHook3 + libxml2 + gettext + itstool + desktop-file-utils + appstream-glib + libxslt + docbook_xsl + docbook_xml_dtd_43 + ]; + + buildInputs = [ + gtk3 + glib + gsettings-desktop-schemas + adwaita-icon-theme + ]; + + doCheck = true; + + passthru = { + updateScript = gnome.updateScript { + packageName = "gnome-dictionary"; + }; + }; + + meta = with lib; { + homepage = "https://gitlab.gnome.org/Archive/gnome-dictionary"; + description = "Dictionary is the GNOME application to look up definitions"; + mainProgram = "gnome-dictionary"; + maintainers = [ ]; + license = licenses.gpl2; + platforms = platforms.unix; + }; +} diff --git a/pkgs/by-name/gn/gnome-disk-utility/package.nix b/pkgs/by-name/gn/gnome-disk-utility/package.nix new file mode 100644 index 0000000000000..4ca25e2cf822f --- /dev/null +++ b/pkgs/by-name/gn/gnome-disk-utility/package.nix @@ -0,0 +1,81 @@ +{ lib +, stdenv +, gettext +, fetchurl +, pkg-config +, udisks2 +, libhandy +, libsecret +, libdvdread +, meson +, ninja +, gtk3 +, glib +, wrapGAppsHook3 +, libnotify +, itstool +, gnome +, adwaita-icon-theme +, libxml2 +, gsettings-desktop-schemas +, libcanberra-gtk3 +, libxslt +, docbook-xsl-nons +, desktop-file-utils +, libpwquality +, systemd +}: + +stdenv.mkDerivation rec { + pname = "gnome-disk-utility"; + version = "46.0"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-disk-utility/${lib.versions.major version}/${pname}-${version}.tar.xz"; + hash = "sha256-RkZJFIxtZ3HxrC6/5DpOUZIFsRwtkUoJ8qABgh0GlX0="; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + gettext + itstool + libxslt + docbook-xsl-nons + desktop-file-utils + wrapGAppsHook3 + libxml2 + ]; + + buildInputs = [ + gtk3 + glib + libhandy + libsecret + libpwquality + libnotify + libdvdread + libcanberra-gtk3 + udisks2 + adwaita-icon-theme + systemd + gnome.gnome-settings-daemon + gsettings-desktop-schemas + ]; + + passthru = { + updateScript = gnome.updateScript { + packageName = "gnome-disk-utility"; + }; + }; + + meta = with lib; { + homepage = "https://apps.gnome.org/DiskUtility/"; + description = "Udisks graphical front-end"; + maintainers = teams.gnome.members; + license = licenses.gpl2Plus; + platforms = platforms.linux; + mainProgram = "gnome-disks"; + }; +} diff --git a/pkgs/by-name/gn/gnome-font-viewer/package.nix b/pkgs/by-name/gn/gnome-font-viewer/package.nix new file mode 100644 index 0000000000000..ddb98b787099c --- /dev/null +++ b/pkgs/by-name/gn/gnome-font-viewer/package.nix @@ -0,0 +1,65 @@ +{ lib +, stdenv +, meson +, ninja +, gettext +, fetchurl +, pkg-config +, gtk4 +, glib +, libxml2 +, gnome-desktop +, libadwaita +, fribidi +, wrapGAppsHook4 +, gnome +, harfbuzz +}: + +stdenv.mkDerivation rec { + pname = "gnome-font-viewer"; + version = "46.0"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-font-viewer/${lib.versions.major version}/${pname}-${version}.tar.xz"; + hash = "sha256-WS9AHkhdAswETUh7tcjgTJYdpoViFnaKWfH/mL0tU3w="; + }; + + doCheck = true; + + nativeBuildInputs = [ + meson + ninja + pkg-config + gettext + wrapGAppsHook4 + libxml2 + glib + ]; + + buildInputs = [ + gtk4 + glib + gnome-desktop + harfbuzz + libadwaita + fribidi + ]; + + # Do not run meson-postinstall.sh + preConfigure = "sed -i '2,$ d' meson-postinstall.sh"; + + passthru = { + updateScript = gnome.updateScript { + packageName = "gnome-font-viewer"; + }; + }; + + meta = with lib; { + description = "Program that can preview fonts and create thumbnails for fonts"; + homepage = "https://gitlab.gnome.org/GNOME/gnome-font-viewer"; + maintainers = teams.gnome.members; + license = licenses.gpl2Plus; + platforms = platforms.unix; + }; +} diff --git a/pkgs/by-name/gn/gnome-keyring/package.nix b/pkgs/by-name/gn/gnome-keyring/package.nix new file mode 100644 index 0000000000000..01be1e7aa9000 --- /dev/null +++ b/pkgs/by-name/gn/gnome-keyring/package.nix @@ -0,0 +1,108 @@ +{ lib +, stdenv +, fetchurl +, pkg-config +, dbus +, libgcrypt +, pam +, python3 +, glib +, libxslt +, gettext +, gcr +, libcap_ng +, libselinux +, p11-kit +, openssh +, wrapGAppsHook3 +, docbook-xsl-nons +, docbook_xml_dtd_43 +, gnome +, useWrappedDaemon ? true +}: + +stdenv.mkDerivation rec { + pname = "gnome-keyring"; + version = "46.1"; + + outputs = [ "out" "dev" ]; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-keyring/${lib.versions.major version}/${pname}-${version}.tar.xz"; + hash = "sha256-sdOukTL/L4s/JaGQeQiSlo49Cs+VKkh+QPZEqFUM4/Y="; + }; + + nativeBuildInputs = [ + pkg-config + gettext + libxslt + docbook-xsl-nons + docbook_xml_dtd_43 + wrapGAppsHook3 + ]; + + buildInputs = [ + glib + libgcrypt + pam + openssh + libcap_ng + libselinux + gcr + p11-kit + ]; + + nativeCheckInputs = [ dbus python3 ]; + + configureFlags = [ + "--with-pkcs11-config=${placeholder "out"}/etc/pkcs11/" # installation directories + "--with-pkcs11-modules=${placeholder "out"}/lib/pkcs11/" + # gnome-keyring doesn't build with ssh-agent by default anymore, we need to + # switch to using gcr https://github.com/NixOS/nixpkgs/issues/140824 + "--enable-ssh-agent" + # cross compilation requires these paths to be explicitly declared: + "LIBGCRYPT_CONFIG=${lib.getExe' (lib.getDev libgcrypt) "libgcrypt-config"}" + "SSH_ADD=${lib.getExe' openssh "ssh-add"}" + "SSH_AGENT=${lib.getExe' openssh "ssh-agent"}" + ]; + + # Tends to fail non-deterministically. + # - https://github.com/NixOS/nixpkgs/issues/55293 + # - https://github.com/NixOS/nixpkgs/issues/51121 + doCheck = false; + + postPatch = '' + patchShebangs build + ''; + + checkPhase = '' + export HOME=$(mktemp -d) + dbus-run-session \ + --config-file=${dbus}/share/dbus-1/session.conf \ + make check + ''; + + # Use wrapped gnome-keyring-daemon with cap_ipc_lock=ep + postFixup = lib.optionalString useWrappedDaemon '' + files=($out/etc/xdg/autostart/* $out/share/dbus-1/services/*) + + for file in ''${files[*]}; do + substituteInPlace $file \ + --replace "$out/bin/gnome-keyring-daemon" "/run/wrappers/bin/gnome-keyring-daemon" + done + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = "gnome-keyring"; + }; + }; + + meta = with lib; { + description = "Collection of components in GNOME that store secrets, passwords, keys, certificates and make them available to applications"; + homepage = "https://gitlab.gnome.org/GNOME/gnome-keyring"; + license = licenses.gpl2; + maintainers = teams.gnome.members; + platforms = platforms.linux; + }; +} diff --git a/pkgs/by-name/gn/gnome-packagekit/package.nix b/pkgs/by-name/gn/gnome-packagekit/package.nix new file mode 100644 index 0000000000000..699e24fba18e3 --- /dev/null +++ b/pkgs/by-name/gn/gnome-packagekit/package.nix @@ -0,0 +1,59 @@ +{ lib +, stdenv +, fetchurl +, pkg-config +, meson +, ninja +, gettext +, gnome +, packagekit +, polkit +, gtk3 +, systemd +, wrapGAppsHook3 +, desktop-file-utils +}: + +stdenv.mkDerivation rec { + pname = "gnome-packagekit"; + version = "43.0"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-packagekit/${lib.versions.major version}/gnome-packagekit-${version}.tar.xz"; + sha256 = "zaRVplKpI7LqL3Axa9D92Clve2Lu8/r9nOUMjmbF8ZU="; + }; + + nativeBuildInputs = [ + pkg-config + meson + ninja + gettext + wrapGAppsHook3 + desktop-file-utils + ]; + + buildInputs = [ + gtk3 + packagekit + systemd + polkit + ]; + + postPatch = '' + patchShebangs meson_post_install.sh + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = "gnome-packagekit"; + }; + }; + + meta = with lib; { + homepage = "https://www.freedesktop.org/software/PackageKit/"; + platforms = platforms.linux; + maintainers = teams.gnome.members; + license = licenses.gpl2; + description = "Tools for installing software on the GNOME desktop using PackageKit"; + }; +} diff --git a/pkgs/by-name/gn/gnome-pomodoro/fix-schema-path.patch b/pkgs/by-name/gn/gnome-pomodoro/fix-schema-path.patch new file mode 100644 index 0000000000000..0750d01f86757 --- /dev/null +++ b/pkgs/by-name/gn/gnome-pomodoro/fix-schema-path.patch @@ -0,0 +1,40 @@ +diff --git a/data/meson.build b/data/meson.build +index 5e4ce69..982b3c9 100644 +--- a/data/meson.build ++++ b/data/meson.build +@@ -31,7 +31,7 @@ i18n.merge_file( + + install_data( + 'org.gnome.pomodoro.gschema.xml', +- install_dir: get_option('datadir') / 'glib-2.0' / 'schemas', ++ install_dir: gschema_dir, + ) + + subdir('icons') +diff --git a/meson-post-install.sh b/meson-post-install.sh +index bf4013a..c87fba4 100644 +--- a/meson-post-install.sh ++++ b/meson-post-install.sh +@@ -7,7 +7,7 @@ datadir="${prefix}/$1" + # want/need us to do the below + if [ -z "${DESTDIR}" ]; then + echo "Compiling GSchema..." +- glib-compile-schemas "${datadir}/glib-2.0/schemas" ++ glib-compile-schemas "${datadir}/gsettings-schemas/@pname@-@version@/glib-2.0/schemas" + + echo "Updating icon cache..." + gtk-update-icon-cache -f -t "${datadir}/icons/hicolor" +diff --git a/meson.build b/meson.build +index 09857a1..a07d27c 100644 +--- a/meson.build ++++ b/meson.build +@@ -40,7 +40,8 @@ add_project_arguments( + ) + + # We are going to use these variables later on for the plugins +-gschema_dir = get_option('prefix') / get_option('datadir') / 'glib-2.0' / 'schemas' ++nix_package_name = '@pname@' + '-' + '@version@' ++gschema_dir = get_option('prefix') / get_option('datadir') / 'gsettings-schemas' / nix_package_name / 'glib-2.0' / 'schemas' + plugin_libdir = get_option('prefix') / get_option('libdir') / meson.project_name() / 'plugins' + extension_dir = get_option('prefix') / get_option('datadir') / 'gnome-shell' / 'extensions' / 'pomodoro@arun.codito.in' + diff --git a/pkgs/by-name/gn/gnome-pomodoro/package.nix b/pkgs/by-name/gn/gnome-pomodoro/package.nix new file mode 100644 index 0000000000000..4261ebaec1efd --- /dev/null +++ b/pkgs/by-name/gn/gnome-pomodoro/package.nix @@ -0,0 +1,83 @@ +{ lib +, stdenv +, fetchFromGitHub +, substituteAll +, meson +, ninja +, pkg-config +, wrapGAppsHook3 +, desktop-file-utils +, libcanberra +, gst_all_1 +, vala +, gtk3 +, gom +, sqlite +, libxml2 +, glib +, gobject-introspection +, json-glib +, libpeas +, gsettings-desktop-schemas +, gettext +}: + +stdenv.mkDerivation rec { + pname = "gnome-pomodoro"; + version = "0.24.1"; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = version; + hash = "sha256-Ml3znMz1Q9593rMgfAST8k9QglxMG9ocFD7W8kaFWCw="; + }; + + patches = [ + # Our glib setup hooks moves GSettings schemas to a subdirectory to prevent conflicts. + # We need to patch the build script so that the extension can find them. + (substituteAll { + src = ./fix-schema-path.patch; + inherit pname version; + }) + ]; + + nativeBuildInputs = [ + meson + ninja + gettext + gobject-introspection + libxml2 + pkg-config + vala + wrapGAppsHook3 + desktop-file-utils + ]; + + buildInputs = [ + glib + gom + gsettings-desktop-schemas + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good + gst_all_1.gstreamer + gtk3 + json-glib + libcanberra + libpeas + sqlite + ]; + + meta = with lib; { + homepage = "https://gnomepomodoro.org/"; + description = "Time management utility for GNOME based on the pomodoro technique"; + mainProgram = "gnome-pomodoro"; + 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; [ ]; + license = licenses.gpl3Plus; + platforms = platforms.linux; + }; +} diff --git a/pkgs/by-name/gn/gnome-screenshot/package.nix b/pkgs/by-name/gn/gnome-screenshot/package.nix new file mode 100644 index 0000000000000..e282277469f02 --- /dev/null +++ b/pkgs/by-name/gn/gnome-screenshot/package.nix @@ -0,0 +1,83 @@ +{ stdenv +, lib +, gettext +, libxml2 +, libhandy +, fetchurl +, fetchpatch +, pkg-config +, libcanberra-gtk3 +, gtk3 +, glib +, meson +, ninja +, python3 +, wrapGAppsHook3 +, appstream-glib +, desktop-file-utils +, gnome +, adwaita-icon-theme +, gsettings-desktop-schemas +}: + +stdenv.mkDerivation rec { + pname = "gnome-screenshot"; + version = "41.0"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; + sha256 = "Stt97JJkKPdCY9V5ZnPPFC5HILbnaPVGio0JM/mMlZc="; + }; + + patches = [ + # Fix build with meson 0.61 + # https://gitlab.gnome.org/GNOME/gnome-screenshot/-/issues/186 + (fetchpatch { + url = "https://gitlab.gnome.org/GNOME/gnome-screenshot/-/commit/b60dad3c2536c17bd201f74ad8e40eb74385ed9f.patch"; + sha256 = "Js83h/3xxcw2hsgjzGa5lAYFXVrt6MPhXOTh5dZTx/w="; + }) + ]; + + nativeBuildInputs = [ + meson + ninja + pkg-config + gettext + appstream-glib + libxml2 + desktop-file-utils + python3 + wrapGAppsHook3 + ]; + + buildInputs = [ + gtk3 + glib + libcanberra-gtk3 + libhandy + adwaita-icon-theme + gsettings-desktop-schemas + ]; + + doCheck = true; + + postPatch = '' + chmod +x build-aux/postinstall.py # patchShebangs requires executable file + patchShebangs build-aux/postinstall.py + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + }; + }; + + meta = with lib; { + homepage = "https://gitlab.gnome.org/GNOME/gnome-screenshot"; + description = "Utility used in the GNOME desktop environment for taking screenshots"; + mainProgram = "gnome-screenshot"; + maintainers = teams.gnome.members; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/pkgs/by-name/gn/gnome-system-monitor/fix-paths.patch b/pkgs/by-name/gn/gnome-system-monitor/fix-paths.patch new file mode 100644 index 0000000000000..967ef5e155421 --- /dev/null +++ b/pkgs/by-name/gn/gnome-system-monitor/fix-paths.patch @@ -0,0 +1,12 @@ +diff --git a/src/gsm_pkexec.cpp b/src/gsm_pkexec.cpp +index 5e1edf2f..717d7bf1 100644 +--- a/src/gsm_pkexec.cpp ++++ b/src/gsm_pkexec.cpp +@@ -36,5 +36,6 @@ gsm_pkexec_create_root_password_dialog (const char *command) + gboolean + procman_has_pkexec (void) + { +- return g_file_test ("/usr/bin/pkexec", G_FILE_TEST_EXISTS); ++ return g_file_test ("/run/wrappers/bin/pkexec", G_FILE_TEST_EXISTS) ++ || g_file_test ("/usr/bin/pkexec", G_FILE_TEST_EXISTS); + } diff --git a/pkgs/by-name/gn/gnome-system-monitor/package.nix b/pkgs/by-name/gn/gnome-system-monitor/package.nix new file mode 100644 index 0000000000000..27c4576e01709 --- /dev/null +++ b/pkgs/by-name/gn/gnome-system-monitor/package.nix @@ -0,0 +1,80 @@ +{ lib +, stdenv +, gettext +, fetchurl +, pkg-config +, gtkmm4 +, libxml2 +, bash +, gtk4 +, libadwaita +, glib +, wrapGAppsHook4 +, meson +, ninja +, gsettings-desktop-schemas +, itstool +, gnome +, adwaita-icon-theme +, librsvg +, gdk-pixbuf +, libgtop +, systemd +}: + +stdenv.mkDerivation rec { + pname = "gnome-system-monitor"; + version = "46.0"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-system-monitor/${lib.versions.major version}/${pname}-${version}.tar.xz"; + hash = "sha256-U3YkgVjGhsMIJVRy6MKp5MFyVWQsFJ/HGYxtA05UdZk="; + }; + + patches = [ + # Fix pkexec detection on NixOS. + ./fix-paths.patch + ]; + + nativeBuildInputs = [ + pkg-config + gettext + itstool + wrapGAppsHook4 + meson + ninja + glib + ]; + + buildInputs = [ + bash + gtk4 + libadwaita + glib + libxml2 + gtkmm4 + libgtop + gdk-pixbuf + adwaita-icon-theme + librsvg + gsettings-desktop-schemas + systemd + ]; + + doCheck = true; + + passthru = { + updateScript = gnome.updateScript { + packageName = "gnome-system-monitor"; + }; + }; + + meta = with lib; { + homepage = "https://apps.gnome.org/SystemMonitor/"; + description = "System Monitor shows you what programs are running and how much processor time, memory, and disk space are being used"; + mainProgram = "gnome-system-monitor"; + maintainers = teams.gnome.members; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/by-name/gn/gnome-terminal/package.nix b/pkgs/by-name/gn/gnome-terminal/package.nix new file mode 100644 index 0000000000000..7cfde6e911ae2 --- /dev/null +++ b/pkgs/by-name/gn/gnome-terminal/package.nix @@ -0,0 +1,97 @@ +{ stdenv +, lib +, fetchFromGitLab +, meson +, ninja +, pkg-config +, python3 +, libxml2 +, gitUpdater +, nautilus +, glib +, gtk4 +, gtk3 +, libhandy +, gsettings-desktop-schemas +, vte +, gettext +, which +, libuuid +, vala +, desktop-file-utils +, itstool +, wrapGAppsHook3 +, pcre2 +, libxslt +, docbook-xsl-nons +, nixosTests +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "gnome-terminal"; + version = "3.52.2"; + + src = fetchFromGitLab { + domain = "gitlab.gnome.org"; + owner = "GNOME"; + repo = "gnome-terminal"; + rev = finalAttrs.version; + hash = "sha256-c6xMUyhQnJiIrFnnUEx6vGVvFghGvLjTxiAFq+nSj2A="; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + gettext + itstool + which + libxml2 + libxslt + glib # for glib-compile-schemas + docbook-xsl-nons + vala + desktop-file-utils + wrapGAppsHook3 + pcre2 + python3 + ]; + + buildInputs = [ + glib + gtk4 + gtk3 + libhandy + gsettings-desktop-schemas + vte + libuuid + nautilus # For extension + ]; + + postPatch = '' + patchShebangs \ + data/icons/meson_updateiconcache.py \ + data/meson_desktopfile.py \ + data/meson_metainfofile.py \ + src/meson_compileschemas.py + ''; + + passthru = { + updateScript = gitUpdater { + odd-unstable = true; + }; + + tests = { + test = nixosTests.terminal-emulators.gnome-terminal; + }; + }; + + meta = with lib; { + description = "GNOME Terminal Emulator"; + mainProgram = "gnome-terminal"; + homepage = "https://gitlab.gnome.org/GNOME/gnome-terminal"; + platforms = platforms.linux; + license = licenses.gpl3Plus; + maintainers = teams.gnome.members; + }; +}) diff --git a/pkgs/by-name/gn/gnome-themes-extra/package.nix b/pkgs/by-name/gn/gnome-themes-extra/package.nix new file mode 100644 index 0000000000000..c40c81b8245f7 --- /dev/null +++ b/pkgs/by-name/gn/gnome-themes-extra/package.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchurl, intltool, gtk3, gnome, adwaita-icon-theme, librsvg, pkg-config, pango, atk, gtk2 +, gdk-pixbuf, hicolor-icon-theme }: + +stdenv.mkDerivation rec { + pname = "gnome-themes-extra"; + version = "3.28"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-themes-extra/${lib.versions.majorMinor version}/gnome-themes-extra-${version}.tar.xz"; + sha256 = "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"; + }; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + }; + }; + + nativeBuildInputs = [ pkg-config intltool gtk3 ]; + buildInputs = [ gtk3 librsvg pango atk gtk2 gdk-pixbuf ]; + propagatedBuildInputs = [ adwaita-icon-theme hicolor-icon-theme ]; + + dontDropIconThemeCache = true; + + postInstall = '' + gtk-update-icon-cache "$out"/share/icons/HighContrast + ''; + + meta = with lib; { + platforms = platforms.unix; + maintainers = teams.gnome.members; + }; +} diff --git a/pkgs/by-name/gn/gnome-tweaks/package.nix b/pkgs/by-name/gn/gnome-tweaks/package.nix new file mode 100644 index 0000000000000..3bbe91007b6d8 --- /dev/null +++ b/pkgs/by-name/gn/gnome-tweaks/package.nix @@ -0,0 +1,94 @@ +{ lib +, meson +, ninja +, fetchurl +, desktop-file-utils +, gdk-pixbuf +, gettext +, glib +, gnome +, gnome-desktop +, gobject-introspection +, gsettings-desktop-schemas +, gtk4 +, itstool +, libadwaita +, libgudev +, libnotify +, libxml2 +, pkg-config +, python3Packages +, wrapGAppsHook4 +}: + +python3Packages.buildPythonApplication rec { + pname = "gnome-tweaks"; + version = "46.1"; + format = "other"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; + hash = "sha256-LxkqcIX71oQ+z4JXFtnaIeyScgKRSeo18+FZ4Kwwm4A="; + }; + + nativeBuildInputs = [ + desktop-file-utils + gettext + gobject-introspection + itstool + libxml2 + meson + ninja + pkg-config + wrapGAppsHook4 + ]; + + buildInputs = [ + gdk-pixbuf + glib + gnome-desktop + gnome.gnome-settings-daemon + gnome.gnome-shell + # Makes it possible to select user themes through the `user-theme` extension + gnome.gnome-shell-extensions + gnome.mutter + gsettings-desktop-schemas + gtk4 + libadwaita + libgudev + libnotify + ]; + + pythonPath = with python3Packages; [ + pygobject3 + ]; + + postPatch = '' + patchShebangs meson-postinstall.py + ''; + + dontWrapGApps = true; + + preFixup = '' + makeWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + postFixup = '' + wrapPythonProgramsIn "$out/libexec" "$out $pythonPath" + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + }; + }; + + meta = with lib; { + homepage = "https://gitlab.gnome.org/GNOME/gnome-tweaks"; + description = "Tool to customize advanced GNOME 3 options"; + mainProgram = "gnome-tweaks"; + maintainers = teams.gnome.members; + license = licenses.gpl3Plus; + platforms = platforms.linux; + }; +} diff --git a/pkgs/by-name/gn/gnome-user-share/package.nix b/pkgs/by-name/gn/gnome-user-share/package.nix new file mode 100644 index 0000000000000..1d2368478bb1c --- /dev/null +++ b/pkgs/by-name/gn/gnome-user-share/package.nix @@ -0,0 +1,72 @@ +{ stdenv +, lib +, gettext +, meson +, ninja +, fetchurl +, apacheHttpdPackages +, pkg-config +, glib +, libxml2 +, systemd +, wrapGAppsNoGuiHook +, itstool +, gnome +}: + +let + inherit (apacheHttpdPackages) apacheHttpd mod_dnssd; +in + +stdenv.mkDerivation (finalAttrs: { + pname = "gnome-user-share"; + version = "43.0"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-user-share/${lib.versions.major finalAttrs.version}/gnome-user-share-${finalAttrs.version}.tar.xz"; + sha256 = "DfMGqgVYMT81Pvf1G/onwDYoGtxFZ34c+/p8n4YVOM4="; + }; + + preConfigure = '' + sed -e 's,^LoadModule dnssd_module.\+,LoadModule dnssd_module ${mod_dnssd}/modules/mod_dnssd.so,' \ + -e 's,''${HTTP_MODULES_PATH},${apacheHttpd}/modules,' \ + -i data/dav_user_2.4.conf + ''; + + mesonFlags = [ + "-Dhttpd=${apacheHttpd.out}/bin/httpd" + "-Dmodules_path=${apacheHttpd}/modules" + "-Dsystemduserunitdir=${placeholder "out"}/etc/systemd/user" + ]; + + nativeBuildInputs = [ + pkg-config + meson + ninja + gettext + itstool + libxml2 + wrapGAppsNoGuiHook + ]; + + buildInputs = [ + glib + systemd + ]; + + doCheck = true; + + passthru = { + updateScript = gnome.updateScript { + packageName = "gnome-user-share"; + }; + }; + + meta = with lib; { + homepage = "https://gitlab.gnome.org/GNOME/gnome-user-share"; + description = "Service that exports the contents of the Public folder in your home directory on the local network"; + maintainers = teams.gnome.members; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +}) diff --git a/pkgs/by-name/go/google-chrome/package.nix b/pkgs/by-name/go/google-chrome/package.nix index 519b640512242..9f7a1d8281a81 100644 --- a/pkgs/by-name/go/google-chrome/package.nix +++ b/pkgs/by-name/go/google-chrome/package.nix @@ -32,7 +32,7 @@ , pulseSupport ? true, libpulseaudio , gsettings-desktop-schemas -, gnome +, adwaita-icon-theme # For video acceleration via VA-API (--enable-features=VaapiVideoDecoder) , libvaSupport ? true, libva @@ -77,7 +77,7 @@ in stdenv.mkDerivation (finalAttrs: { gsettings-desktop-schemas glib gtk3 # needed for XDG_ICON_DIRS - gnome.adwaita-icon-theme + adwaita-icon-theme ]; unpackPhase = '' diff --git a/pkgs/by-name/gp/gpaste/fix-paths.patch b/pkgs/by-name/gp/gpaste/fix-paths.patch new file mode 100644 index 0000000000000..ebebc8a20bd66 --- /dev/null +++ b/pkgs/by-name/gp/gpaste/fix-paths.patch @@ -0,0 +1,16 @@ +diff --git a/src/libgpaste/gpaste/gpaste-settings.c b/src/libgpaste/gpaste/gpaste-settings.c +index 830f5e0b..c8df0e11 100644 +--- a/src/libgpaste/gpaste/gpaste-settings.c ++++ b/src/libgpaste/gpaste/gpaste-settings.c +@@ -1039,7 +1039,10 @@ create_g_settings (void) + } + else + { +- return g_settings_new (G_PASTE_SETTINGS_NAME); ++ // library used by introspection requires schemas but we cannot set XDG_DATA_DIRS for the library ++ g_autoptr (GSettingsSchemaSource) schema_source = g_settings_schema_source_new_from_directory ("@gschemasCompiled@", NULL, FALSE, NULL); ++ g_autoptr (GSettingsSchema) schema = g_settings_schema_source_lookup (schema_source, G_PASTE_SETTINGS_NAME, FALSE); ++ return g_settings_new_full (schema, NULL, NULL); + } + } + diff --git a/pkgs/by-name/gp/gpaste/package.nix b/pkgs/by-name/gp/gpaste/package.nix new file mode 100644 index 0000000000000..16da276b64b55 --- /dev/null +++ b/pkgs/by-name/gp/gpaste/package.nix @@ -0,0 +1,88 @@ +{ stdenv +, lib +, fetchurl +, gjs +, glib +, gobject-introspection +, gtk3 +, gtk4 +, gcr_4 +, libadwaita +, meson +, ninja +, pango +, pkg-config +, vala +, desktop-file-utils +, wrapGAppsHook3 +}: + +stdenv.mkDerivation (finalAttrs: { + version = "45.1"; + pname = "gpaste"; + + src = fetchurl { + url = "https://www.imagination-land.org/files/gpaste/GPaste-${finalAttrs.version}.tar.xz"; + hash = "sha256-yYLoHn3/2xlefBeErnydNfkvtJva8/9f9JHhfschBpQ="; + }; + + patches = [ + ./fix-paths.patch + ]; + + # TODO: switch to substituteAll with placeholder + # https://github.com/NixOS/nix/issues/1846 + postPatch = '' + substituteInPlace src/libgpaste/gpaste/gpaste-settings.c \ + --subst-var-by gschemasCompiled ${glib.makeSchemaPath (placeholder "out") "${finalAttrs.pname}-${finalAttrs.version}"} + ''; + + nativeBuildInputs = [ + gobject-introspection + meson + ninja + pkg-config + vala + desktop-file-utils + wrapGAppsHook3 + ]; + + buildInputs = [ + gjs + glib + gtk3 + gtk4 + gcr_4 + libadwaita + pango + ]; + + mesonFlags = [ + "-Dcontrol-center-keybindings-dir=${placeholder "out"}/share/gnome-control-center/keybindings" + "-Ddbus-services-dir=${placeholder "out"}/share/dbus-1/services" + "-Dsystemd-user-unit-dir=${placeholder "out"}/etc/systemd/user" + ]; + + postInstall = '' + # We do not have central location to install typelibs to, + # let’s ensure GNOME Shell can still find them. + extensionDir="$out/share/gnome-shell/extensions/GPaste@gnome-shell-extensions.gnome.org" + mv "$extensionDir/"{extension,.extension-wrapped}.js + mv "$extensionDir/"{prefs,.prefs-wrapped}.js + substitute "${./wrapper.js}" "$extensionDir/extension.js" \ + --subst-var-by originalName "extension" \ + --subst-var-by typelibPath "${placeholder "out"}/lib/girepository-1.0" + substitute "${./wrapper.js}" "$extensionDir/prefs.js" \ + --subst-var-by originalName "prefs" \ + --subst-var-by typelibPath "${placeholder "out"}/lib/girepository-1.0" + ''; + + meta = with lib; { + homepage = "https://github.com/Keruspe/GPaste"; + description = "Clipboard management system with GNOME integration"; + mainProgram = "gpaste-client"; + license = licenses.bsd2; + platforms = platforms.linux; + maintainers = teams.gnome.members; + }; +}) diff --git a/pkgs/by-name/gp/gpaste/wrapper.js b/pkgs/by-name/gp/gpaste/wrapper.js new file mode 100644 index 0000000000000..ea6a9cba6f6fb --- /dev/null +++ b/pkgs/by-name/gp/gpaste/wrapper.js @@ -0,0 +1,5 @@ +import GIRepository from 'gi://GIRepository'; + +GIRepository.Repository.prepend_search_path('@typelibDir@'); + +export default (await import('./.@originalName@-wrapped.js')).default; diff --git a/pkgs/by-name/gu/gucharmap/package.nix b/pkgs/by-name/gu/gucharmap/package.nix new file mode 100644 index 0000000000000..17f8465f380bf --- /dev/null +++ b/pkgs/by-name/gu/gucharmap/package.nix @@ -0,0 +1,114 @@ +{ stdenv +, lib +, intltool +, fetchFromGitLab +, meson +, mesonEmulatorHook +, ninja +, pkg-config +, python3 +, gtk3 +, pcre2 +, glib +, desktop-file-utils +, gtk-doc +, wrapGAppsHook3 +, itstool +, libxml2 +, yelp-tools +, docbook_xsl +, docbook_xml_dtd_412 +, gsettings-desktop-schemas +, unzip +, unicode-character-database +, unihan-database +, runCommand +, symlinkJoin +, gobject-introspection +, gitUpdater +}: + +let + # TODO: make upstream patch allowing to use the uncompressed file, + # preferably from XDG_DATA_DIRS. + # https://gitlab.gnome.org/GNOME/gucharmap/issues/13 + unihanZip = runCommand "unihan" {} '' + mkdir -p $out/share/unicode + ln -s ${unihan-database.src} $out/share/unicode/Unihan.zip + ''; + ucd = symlinkJoin { + name = "ucd+unihan"; + paths = [ + unihanZip + unicode-character-database + ]; + }; +in stdenv.mkDerivation (finalAttrs: { + pname = "gucharmap"; + version = "15.1.5"; + + outputs = [ "out" "lib" "dev" "devdoc" ]; + + src = fetchFromGitLab { + domain = "gitlab.gnome.org"; + owner = "GNOME"; + repo = "gucharmap"; + rev = finalAttrs.version; + sha256 = "sha256-PG86D8QvqHdmo3aJseCerngmuWUqtSMdWzbixWE2HOQ="; + }; + + strictDeps = true; + nativeBuildInputs = [ + meson + ninja + pkg-config + python3 + wrapGAppsHook3 + unzip + intltool + itstool + gtk-doc + docbook_xsl + docbook_xml_dtd_412 + yelp-tools + libxml2 + desktop-file-utils + gobject-introspection + ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ + mesonEmulatorHook + ]; + + buildInputs = [ + gtk3 + glib + gsettings-desktop-schemas + pcre2 + ]; + + mesonFlags = [ + "-Ducd_path=${ucd}/share/unicode" + "-Dvapi=false" + ]; + + doCheck = true; + + postPatch = '' + patchShebangs \ + data/meson_desktopfile.py \ + gucharmap/gen-guch-unicode-tables.pl + ''; + + passthru = { + updateScript = gitUpdater { + }; + }; + + meta = with lib; { + description = "GNOME Character Map, based on the Unicode Character Database"; + mainProgram = "gucharmap"; + homepage = "https://gitlab.gnome.org/GNOME/gucharmap"; + license = licenses.gpl3Plus; + maintainers = teams.gnome.members; + platforms = platforms.linux; + }; +}) diff --git a/pkgs/by-name/ht/htb-toolkit/package.nix b/pkgs/by-name/ht/htb-toolkit/package.nix index cedbe645f9416..9cffed873290d 100644 --- a/pkgs/by-name/ht/htb-toolkit/package.nix +++ b/pkgs/by-name/ht/htb-toolkit/package.nix @@ -6,7 +6,7 @@ , stdenv , darwin , coreutils -, gnome +, gnome-keyring , libsecret , bash , openvpn @@ -41,7 +41,7 @@ rustPlatform.buildRustPackage { buildInputs = [ openssl ] ++ lib.optionals stdenv.isLinux [ - gnome.gnome-keyring + gnome-keyring ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security darwin.apple_sdk.frameworks.SystemConfiguration diff --git a/pkgs/by-name/in/insync-nautilus/package.nix b/pkgs/by-name/in/insync-nautilus/package.nix index 8cf010c893264..d0e3b3d934e48 100644 --- a/pkgs/by-name/in/insync-nautilus/package.nix +++ b/pkgs/by-name/in/insync-nautilus/package.nix @@ -3,7 +3,7 @@ fetchurl, lib, dpkg, - gnome, + nautilus-python, insync-emblem-icons, }: @@ -25,7 +25,7 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ dpkg ]; buildInputs = [ - gnome.nautilus-python + nautilus-python insync-emblem-icons ]; diff --git a/pkgs/by-name/ir/ironbar/package.nix b/pkgs/by-name/ir/ironbar/package.nix index 006eb004611d2..bc1f877af11bf 100644 --- a/pkgs/by-name/ir/ironbar/package.nix +++ b/pkgs/by-name/ir/ironbar/package.nix @@ -10,7 +10,7 @@ gsettings-desktop-schemas, wrapGAppsHook3, gtk-layer-shell, - gnome, + adwaita-icon-theme, libxkbcommon, openssl, pkg-config, @@ -48,7 +48,7 @@ rustPlatform.buildRustPackage rec { gtk-layer-shell glib-networking shared-mime-info - gnome.adwaita-icon-theme + adwaita-icon-theme hicolor-icon-theme gsettings-desktop-schemas libxkbcommon diff --git a/pkgs/by-name/na/nautilus-open-in-blackbox/package.nix b/pkgs/by-name/na/nautilus-open-in-blackbox/package.nix index 638d6ac671e15..cb8c6434e24cb 100644 --- a/pkgs/by-name/na/nautilus-open-in-blackbox/package.nix +++ b/pkgs/by-name/na/nautilus-open-in-blackbox/package.nix @@ -1,4 +1,4 @@ -{ python3, fetchFromGitHub, gnome, stdenv, lib }: +{ python3, fetchFromGitHub, nautilus-python, stdenv, lib }: stdenv.mkDerivation rec { pname = "nautilus-open-in-blackbox"; version = "0.1.1"; @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { patches = [ ./paths.patch ]; buildInputs = [ - gnome.nautilus-python + nautilus-python python3.pkgs.pygobject3 ]; diff --git a/pkgs/by-name/na/nautilus-python/fix-paths.patch b/pkgs/by-name/na/nautilus-python/fix-paths.patch new file mode 100644 index 0000000000000..ba82937d6c9c5 --- /dev/null +++ b/pkgs/by-name/na/nautilus-python/fix-paths.patch @@ -0,0 +1,14 @@ +diff --git a/src/nautilus-python.c b/src/nautilus-python.c +index 843e3c6..466a513 100644 +--- a/src/nautilus-python.c ++++ b/src/nautilus-python.c +@@ -184,6 +184,9 @@ nautilus_python_init_python (void) { + return FALSE; + } + ++ debug("Add PyGObject to path"); ++ PyRun_SimpleString("import site;import functools; functools.reduce(lambda k, p: site.addsitedir(p, k), [@pythonPaths@], site._init_pathinfo())"); ++ + /* import gobject */ + debug("init_pygobject"); + if (!np_init_pygobject()) { diff --git a/pkgs/by-name/na/nautilus-python/package.nix b/pkgs/by-name/na/nautilus-python/package.nix new file mode 100644 index 0000000000000..993d3e2933aff --- /dev/null +++ b/pkgs/by-name/na/nautilus-python/package.nix @@ -0,0 +1,71 @@ +{ + stdenv, + lib, + substituteAll, + fetchurl, + meson, + ninja, + pkg-config, + gtk-doc, + docbook-xsl-nons, + docbook_xml_dtd_412, + python3, + nautilus, + gnome, +}: + +stdenv.mkDerivation (finalAttrs:{ + pname = "nautilus-python"; + version = "4.0.1"; + + outputs = [ + "out" + "dev" + "doc" + "devdoc" + ]; + + src = fetchurl { + url = "mirror://gnome/sources/nautilus-python/${lib.versions.majorMinor finalAttrs.version}/nautilus-python-${finalAttrs.version}.tar.xz"; + hash = "sha256-/EnBBPsyoK0ZWmawE2eEzRnRDYs+jVnV7n9z6PlOko8="; + }; + + patches = [ + # Make PyGObject’s gi library available. + (substituteAll { + src = ./fix-paths.patch; + pythonPaths = lib.concatMapStringsSep ", " (pkg: "'${pkg}/${python3.sitePackages}'") [ + python3.pkgs.pygobject3 + ]; + }) + ]; + + nativeBuildInputs = [ + pkg-config + meson + ninja + gtk-doc + docbook-xsl-nons + docbook_xml_dtd_412 + ]; + + buildInputs = [ + python3 + python3.pkgs.pygobject3 + nautilus + ]; + + passthru = { + updateScript = gnome.updateScript { + packageName = "nautilus-python"; + }; + }; + + meta = with lib; { + description = "Python bindings for the Nautilus Extension API"; + homepage = "https://gitlab.gnome.org/GNOME/nautilus-python"; + license = licenses.gpl2Plus; + maintainers = teams.gnome.members; + platforms = platforms.unix; + }; +}) diff --git a/pkgs/by-name/na/nautilus/extension_dir.patch b/pkgs/by-name/na/nautilus/extension_dir.patch new file mode 100644 index 0000000000000..d7cd161a8dfc5 --- /dev/null +++ b/pkgs/by-name/na/nautilus/extension_dir.patch @@ -0,0 +1,24 @@ +diff --git a/src/nautilus-module.c b/src/nautilus-module.c +index cd889ff18..e2cd6468e 100644 +--- a/src/nautilus-module.c ++++ b/src/nautilus-module.c +@@ -267,6 +267,7 @@ void + nautilus_module_setup (void) + { + static gboolean initialized = FALSE; ++ const gchar* extensiondir = NULL; + const gchar *disable_plugins; + + disable_plugins = g_getenv ("NAUTILUS_DISABLE_PLUGINS"); +@@ -280,7 +281,12 @@ nautilus_module_setup (void) + { + initialized = TRUE; + +- load_module_dir (NAUTILUS_EXTENSIONDIR); ++ extensiondir = g_getenv ("NAUTILUS_4_EXTENSION_DIR"); ++ if (extensiondir == NULL) { ++ extensiondir = NAUTILUS_EXTENSIONDIR; ++ } ++ ++ load_module_dir (extensiondir); + } diff --git a/pkgs/by-name/na/nautilus/fix-paths.patch b/pkgs/by-name/na/nautilus/fix-paths.patch new file mode 100644 index 0000000000000..dc9874359b233 --- /dev/null +++ b/pkgs/by-name/na/nautilus/fix-paths.patch @@ -0,0 +1,13 @@ +diff --git a/src/nautilus-tag-manager.c b/src/nautilus-tag-manager.c +index 28b96c996..0b1fad9ab 100644 +--- a/src/nautilus-tag-manager.c ++++ b/src/nautilus-tag-manager.c +@@ -962,7 +962,7 @@ child_watch_cb (GPid pid, + static void + export_tracker2_data (NautilusTagManager *self) + { +- gchar *argv[] = {"tracker3", "export", "--2to3", "files-starred", "--keyfile", NULL}; ++ gchar *argv[] = {"@tracker@/bin/tracker3", "export", "--2to3", "files-starred", "--keyfile", NULL}; + gint stdout_fd; + GPid child_pid; + g_autoptr (GError) error = NULL; diff --git a/pkgs/by-name/na/nautilus/package.nix b/pkgs/by-name/na/nautilus/package.nix new file mode 100644 index 0000000000000..660867e81ebd8 --- /dev/null +++ b/pkgs/by-name/na/nautilus/package.nix @@ -0,0 +1,140 @@ +{ + lib, + stdenv, + fetchurl, + meson, + ninja, + pkg-config, + gi-docgen, + docbook-xsl-nons, + gettext, + desktop-file-utils, + wrapGAppsHook4, + gtk4, + libadwaita, + libportal-gtk4, + gnome, + adwaita-icon-theme, + gnome-autoar, + glib-networking, + shared-mime-info, + libnotify, + libexif, + libjxl, + libseccomp, + librsvg, + webp-pixbuf-loader, + tracker, + tracker-miners, + gexiv2, + libselinux, + libcloudproviders, + gdk-pixbuf, + substituteAll, + gnome-desktop, + gst_all_1, + gsettings-desktop-schemas, + gnome-user-share, + gobject-introspection, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "nautilus"; + version = "46.2"; + + outputs = [ + "out" + "dev" + "devdoc" + ]; + + src = fetchurl { + url = "mirror://gnome/sources/nautilus/${lib.versions.major finalAttrs.version}/nautilus-${finalAttrs.version}.tar.xz"; + hash = "sha256-bujJkBm540R/aRjWgjKiDeyonlUlwFgFQyt9iEDKcfo="; + }; + + patches = [ + # Allow changing extension directory using environment variable. + ./extension_dir.patch + + # Hardcode required paths. + (substituteAll { + src = ./fix-paths.patch; + inherit tracker; + }) + ]; + + nativeBuildInputs = [ + desktop-file-utils + gettext + gobject-introspection + meson + ninja + pkg-config + gi-docgen + docbook-xsl-nons + wrapGAppsHook4 + ]; + + buildInputs = [ + gexiv2 + glib-networking + gnome-desktop + adwaita-icon-theme + gsettings-desktop-schemas + gnome-user-share + gst_all_1.gst-plugins-base + gtk4 + libadwaita + libportal-gtk4 + libexif + libnotify + libseccomp + libselinux + gdk-pixbuf + libcloudproviders + shared-mime-info + tracker + tracker-miners + gnome-autoar + ]; + + propagatedBuildInputs = [ + gtk4 + ]; + + mesonFlags = [ + "-Ddocs=true" + ]; + + preFixup = '' + gappsWrapperArgs+=( + # Thumbnailers + --prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share" + --prefix XDG_DATA_DIRS : "${libjxl}/share" + --prefix XDG_DATA_DIRS : "${librsvg}/share" + --prefix XDG_DATA_DIRS : "${webp-pixbuf-loader}/share" + --prefix XDG_DATA_DIRS : "${shared-mime-info}/share" + ) + ''; + + postFixup = '' + # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back. + moveToOutput "share/doc" "$devdoc" + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = "nautilus"; + }; + }; + + meta = with lib; { + description = "File manager for GNOME"; + homepage = "https://apps.gnome.org/Nautilus/"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.gnome.members; + mainProgram = "nautilus"; + }; +}) diff --git a/pkgs/by-name/pa/papers/package.nix b/pkgs/by-name/pa/papers/package.nix index dcdb5e6b19f7e..c0de8348e8382 100644 --- a/pkgs/by-name/pa/papers/package.nix +++ b/pkgs/by-name/pa/papers/package.nix @@ -13,7 +13,7 @@ , shared-mime-info , itstool , poppler -, gnome +, nautilus , darwin , djvulibre , libspectre @@ -96,7 +96,7 @@ stdenv.mkDerivation (finalAttrs: { ] ++ lib.optionals supportXPS [ libgxps ] ++ lib.optionals supportNautilus [ - gnome.nautilus + nautilus ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Foundation ]; diff --git a/pkgs/by-name/ry/rygel/add-option-for-installation-sysconfdir.patch b/pkgs/by-name/ry/rygel/add-option-for-installation-sysconfdir.patch new file mode 100644 index 0000000000000..5204e3518aba7 --- /dev/null +++ b/pkgs/by-name/ry/rygel/add-option-for-installation-sysconfdir.patch @@ -0,0 +1,35 @@ +diff --git a/meson.build b/meson.build +index 27bde61f..3d434de9 100644 +--- a/meson.build ++++ b/meson.build +@@ -22,7 +22,11 @@ if not get_option('uninstalled') + rygel_datadir = join_paths(get_option('prefix'), get_option('datadir'), 'rygel') + rygel_libexecdir = join_paths(get_option('prefix'), get_option('libexecdir'), + 'rygel') +- rygel_sysconfdir = join_paths(get_option('prefix'), get_option('sysconfdir')) ++ if get_option('sysconfdir_install') != '' ++ rygel_sysconfdir = join_paths(get_option('prefix'), get_option('sysconfdir_install')) ++ else ++ rygel_sysconfdir = join_paths(get_option('prefix'), get_option('sysconfdir')) ++ endif + rygel_plugindir = join_paths(rygel_libdir, 'rygel-2.8', 'plugins') + rygel_enginedir = join_paths(rygel_libdir, 'rygel-2.8', 'engines') + rygel_presetdir = join_paths(rygel_datadir, 'presets') +@@ -57,7 +61,7 @@ conf.set_quoted('DATA_DIR', rygel_datadir) + conf.set_quoted('PLUGIN_DIR', rygel_plugindir) + conf.set_quoted('BIG_ICON_DIR', rygel_bigicondir) + conf.set_quoted('SMALL_ICON_DIR', rygel_smallicondir) +-conf.set_quoted('SYS_CONFIG_DIR', rygel_sysconfdir) ++conf.set_quoted('SYS_CONFIG_DIR', get_option('sysconfdir')) + conf.set_quoted('LOCALEDIR', join_paths(get_option('prefix'), get_option('localedir'))) + conf.set_quoted('MX_EXTRACT_PATH', join_paths(rygel_libexecdir, 'mx-extract')) + conf.set_quoted('DESKTOP_DIR', join_paths(get_option('prefix'), get_option('datadir'), 'applications')) +diff --git a/meson_options.txt b/meson_options.txt +index fd04776a..3dee43ba 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -1,3 +1,4 @@ ++option('sysconfdir_install', type: 'string', value: '', description: 'sysconfdir to use during installation') + option('uninstalled', type: 'boolean', value: 'false', description: 'Run Rygel from build directory only') + option('api-docs', type: 'boolean', value: 'false', description: 'Build the API documentation') + option('man_pages', type: 'boolean', value: 'true', description: 'Build the man pages') diff --git a/pkgs/by-name/ry/rygel/package.nix b/pkgs/by-name/ry/rygel/package.nix new file mode 100644 index 0000000000000..66d2a5ffae8c4 --- /dev/null +++ b/pkgs/by-name/ry/rygel/package.nix @@ -0,0 +1,107 @@ +{ lib, stdenv +, fetchurl +, meson +, ninja +, pkg-config +, vala +, gettext +, libxml2 +, gobject-introspection +, wrapGAppsHook3 +, python3 +, glib +, gssdp_1_6 +, gupnp_1_6 +, gupnp-av +, gupnp-dlna +, gst_all_1 +, libgee +, libsoup_3 +, gtk3 +, libmediaart +, sqlite +, systemd +, tracker +, shared-mime-info +, gnome +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "rygel"; + version = "0.42.6"; + + # TODO: split out lib + outputs = [ "out" "dev" ]; + + src = fetchurl { + url = "mirror://gnome/sources/rygel/${lib.versions.majorMinor finalAttrs.version}/rygel-${finalAttrs.version}.tar.xz"; + sha256 = "R9JXBLYQiDdeJqq6Vr5HwXGJRy5vgMdSq+hvAu9OMwQ="; + }; + + patches = [ + ./add-option-for-installation-sysconfdir.patch + ]; + + nativeBuildInputs = [ + meson + ninja + pkg-config + vala + gettext + libxml2 + gobject-introspection + wrapGAppsHook3 + python3 + ]; + + buildInputs = [ + glib + gssdp_1_6 + gupnp_1_6 + gupnp-av + gupnp-dlna + libgee + libsoup_3 + gtk3 + libmediaart + sqlite + systemd + tracker + shared-mime-info + ] ++ (with gst_all_1; [ + gstreamer + gst-editing-services + gst-plugins-base + gst-plugins-good + gst-plugins-bad + gst-plugins-ugly + ]); + + mesonFlags = [ + "-Dsystemd-user-units-dir=${placeholder "out"}/lib/systemd/user" + "-Dapi-docs=false" + "--sysconfdir=/etc" + "-Dsysconfdir_install=${placeholder "out"}/etc" + ]; + + doCheck = true; + + postPatch = '' + patchShebangs data/xml/process-xml.py + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = "rygel"; + versionPolicy = "odd-unstable"; + }; + }; + + meta = with lib; { + description = "Home media solution (UPnP AV MediaServer) that allows you to easily share audio, video and pictures to other devices"; + homepage = "https://gitlab.gnome.org/GNOME/rygel"; + license = licenses.lgpl21Plus; + maintainers = teams.gnome.members; + platforms = platforms.linux; + }; +}) diff --git a/pkgs/by-name/se/seahorse/package.nix b/pkgs/by-name/se/seahorse/package.nix new file mode 100644 index 0000000000000..2ebc5bae4d0b2 --- /dev/null +++ b/pkgs/by-name/se/seahorse/package.nix @@ -0,0 +1,114 @@ +{ stdenv +, lib +, fetchpatch +, fetchurl +, vala +, meson +, ninja +, libpwquality +, pkg-config +, gtk3 +, glib +, glib-networking +, wrapGAppsHook3 +, itstool +, gnupg +, desktop-file-utils +, libsoup_3 +, gnome +, gpgme +, python3 +, openldap +, gcr +, libsecret +, avahi +, p11-kit +, openssh +, gsettings-desktop-schemas +, libhandy +}: + +stdenv.mkDerivation rec { + pname = "seahorse"; + version = "43.0"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; + hash = "sha256-Wx0b+6dPNlgifzyC4pbzMN0PzR70Y2tqIYIo/uXqgy0="; + }; + + patches = [ + (fetchpatch { + name = "gpg-2.4.patch"; + url = "https://gitlab.gnome.org/GNOME/seahorse/-/commit/9260c74779be3d7a378db0671af862ffa3573d42.patch"; + hash = "sha256-4QiFgH4jC1ucmA9fFozUQZ3Mat76SgpYkMpRz80RH64="; + }) + ]; + + nativeBuildInputs = [ + meson + ninja + pkg-config + vala + itstool + wrapGAppsHook3 + python3 + openssh + gnupg + desktop-file-utils + gcr + ]; + + buildInputs = [ + gtk3 + glib + glib-networking + gcr + gsettings-desktop-schemas + gpgme + libsecret + avahi + libsoup_3 + p11-kit + openldap + libpwquality + libhandy + ]; + + doCheck = true; + + postPatch = '' + patchShebangs build-aux/gpg_check_version.py + ''; + + 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 + ''; + + preFixup = '' + gappsWrapperArgs+=( + # Pick up icons from Gcr + --prefix XDG_DATA_DIRS : "${gcr}/share" + ) + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + }; + }; + + meta = with lib; { + homepage = "https://gitlab.gnome.org/GNOME/seahorse"; + description = "Application for managing encryption keys and passwords in the GnomeKeyring"; + mainProgram = "seahorse"; + maintainers = teams.gnome.members; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/pkgs/by-name/si/simple-scan/package.nix b/pkgs/by-name/si/simple-scan/package.nix new file mode 100644 index 0000000000000..e7f2954ca39f4 --- /dev/null +++ b/pkgs/by-name/si/simple-scan/package.nix @@ -0,0 +1,89 @@ +{ lib, stdenv +, fetchurl +, meson +, ninja +, pkg-config +, gettext +, itstool +, python3 +, wrapGAppsHook4 +, cairo +, gdk-pixbuf +, colord +, glib +, libadwaita +, gtk4 +, gusb +, packagekit +, libwebp +, libxml2 +, sane-backends +, vala +, gnome +, gobject-introspection +}: + +stdenv.mkDerivation rec { + pname = "simple-scan"; + version = "46.0"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; + hash = "sha256-wW5lkBQv5WO+UUMSKzu7U/awCn2p2VL2HEf6Jve08Kk="; + }; + + nativeBuildInputs = [ + meson + ninja + gettext + itstool + pkg-config + python3 + wrapGAppsHook4 + libxml2 + gobject-introspection # For setup hook + vala + ]; + + buildInputs = [ + cairo + gdk-pixbuf + colord + glib + gusb + libadwaita + gtk4 + libwebp + packagekit + sane-backends + ]; + + postPatch = '' + patchShebangs data/meson_compile_gschema.py + ''; + + doCheck = true; + + passthru = { + updateScript = gnome.updateScript { + packageName = "simple-scan"; + }; + }; + + meta = with lib; { + description = "Simple scanning utility"; + mainProgram = "simple-scan"; + longDescription = '' + A really easy way to scan both documents and photos. You can crop out the + bad parts of a photo and rotate it if it is the wrong way round. You can + print your scans, export them to pdf, or save them in a range of image + formats. Basically a frontend for SANE - which is the same backend as + XSANE uses. This means that all existing scanners will work and the + interface is well tested. + ''; + homepage = "https://gitlab.gnome.org/GNOME/simple-scan"; + license = licenses.gpl3Plus; + maintainers = teams.gnome.members; + platforms = platforms.linux; + }; +} diff --git a/pkgs/by-name/sm/smartgithg/package.nix b/pkgs/by-name/sm/smartgithg/package.nix index 65c5a78ad299e..d3bb1ed1b67d7 100644 --- a/pkgs/by-name/sm/smartgithg/package.nix +++ b/pkgs/by-name/sm/smartgithg/package.nix @@ -5,7 +5,7 @@ , openjdk21 , gtk3 , glib -, gnome +, adwaita-icon-theme , wrapGAppsHook3 , libXtst , which @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ wrapGAppsHook3 ]; - buildInputs = [ jre gnome.adwaita-icon-theme gtk3 ]; + buildInputs = [ jre adwaita-icon-theme gtk3 ]; preFixup = with lib; '' gappsWrapperArgs+=( \ diff --git a/pkgs/by-name/su/sushi/package.nix b/pkgs/by-name/su/sushi/package.nix new file mode 100644 index 0000000000000..aad4727da20b1 --- /dev/null +++ b/pkgs/by-name/su/sushi/package.nix @@ -0,0 +1,86 @@ +{ lib, stdenv +, fetchurl +, pkg-config +, meson +, gettext +, gobject-introspection +, evince +, glib +, gnome +, gtksourceview4 +, gjs +, libsoup_3 +, webkitgtk_4_1 +, icu +, wrapGAppsHook3 +, gst_all_1 +, gdk-pixbuf +, librsvg +, gtk3 +, harfbuzz +, ninja +, libepoxy +}: + +stdenv.mkDerivation rec { + pname = "sushi"; + version = "46.0"; + + src = fetchurl { + url = "mirror://gnome/sources/sushi/${lib.versions.major version}/${pname}-${version}.tar.xz"; + hash = "sha256-lghbqqQwqyFCxgaqtcR+L7sv0+two1ITfmXFmlig8sY="; + }; + + nativeBuildInputs = [ + pkg-config + meson + ninja + gettext + gobject-introspection + wrapGAppsHook3 + ]; + + buildInputs = [ + glib + gtk3 + evince + icu + harfbuzz + gjs + gtksourceview4 + gdk-pixbuf + librsvg + libsoup_3 + webkitgtk_4_1 + libepoxy + gst_all_1.gstreamer + gst_all_1.gst-plugins-base + (gst_all_1.gst-plugins-good.override { gtkSupport = true; }) + gst_all_1.gst-plugins-bad + gst_all_1.gst-plugins-ugly + ]; + + # See https://github.com/NixOS/nixpkgs/issues/31168 + postInstall = '' + for file in $out/libexec/org.gnome.NautilusPreviewer + do + sed -e $"2iimports.package._findEffectiveEntryPointName = () => \'$(basename $file)\' " \ + -i $file + done + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = "sushi"; + }; + }; + + meta = with lib; { + homepage = "https://en.wikipedia.org/wiki/Sushi_(software)"; + description = "Quick previewer for Nautilus"; + mainProgram = "sushi"; + maintainers = teams.gnome.members; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/pkgs/by-name/sv/svp/package.nix b/pkgs/by-name/sv/svp/package.nix index c34507c91e448..30e540ba74165 100644 --- a/pkgs/by-name/sv/svp/package.nix +++ b/pkgs/by-name/sv/svp/package.nix @@ -7,7 +7,6 @@ , copyDesktopItems , ffmpeg , glibc -, gnome , jq , lib , libmediainfo @@ -20,6 +19,7 @@ , vapoursynth , xdg-utils , xorg +, zenity }: let mpvForSVP = callPackage ./mpv.nix { }; @@ -42,7 +42,7 @@ let fakeLsof ffmpeg.bin glibc - gnome.zenity + zenity libmediainfo libsForQt5.qtbase libsForQt5.qtwayland diff --git a/pkgs/by-name/th/thcrap-steam-proton-wrapper/package.nix b/pkgs/by-name/th/thcrap-steam-proton-wrapper/package.nix index 00a5458c08821..8b43215c52dc0 100644 --- a/pkgs/by-name/th/thcrap-steam-proton-wrapper/package.nix +++ b/pkgs/by-name/th/thcrap-steam-proton-wrapper/package.nix @@ -5,7 +5,7 @@ , makeWrapper , bash , subversion - , gnome + , zenity }: stdenv.mkDerivation { pname = "thcrap-proton"; @@ -37,7 +37,7 @@ stdenv.mkDerivation { lib.makeBinPath [ bash subversion - gnome.zenity + zenity ] } ''; diff --git a/pkgs/by-name/to/totem/package.nix b/pkgs/by-name/to/totem/package.nix new file mode 100644 index 0000000000000..c2cf2ff9a7d46 --- /dev/null +++ b/pkgs/by-name/to/totem/package.nix @@ -0,0 +1,138 @@ +{ stdenv +, lib +, fetchurl +, fetchpatch +, meson +, ninja +, gettext +, gst_all_1 +, python3Packages +, shared-mime-info +, pkg-config +, gtk3 +, glib +, gobject-introspection +, totem-pl-parser +, wrapGAppsHook3 +, itstool +, libxml2 +, vala +, gnome +, grilo +, grilo-plugins +, libpeas +, libportal-gtk3 +, libhandy +, adwaita-icon-theme +, gnome-desktop +, gsettings-desktop-schemas +, gdk-pixbuf +, xvfb-run +}: + +stdenv.mkDerivation rec { + pname = "totem"; + version = "43.0"; + + src = fetchurl { + url = "mirror://gnome/sources/totem/${lib.versions.major version}/${pname}-${version}.tar.xz"; + sha256 = "s202VZKLWJZGKk05+Dtq1m0328nJnc6wLqii43OUpB4="; + }; + + patches = [ + # Lower X11 dependency version since we do not have it. + (fetchpatch { + url = "https://gitlab.gnome.org/GNOME/totem/-/commit/140d9eea70c3101ef3234abb4de5974cb84b13db.patch"; + sha256 = "ohppxqMiH8Ksc9B2e3AXighfM6KVN+RNXYL+fLELSN8="; + revert = true; + }) + (fetchpatch { + url = "https://gitlab.gnome.org/GNOME/totem/-/commit/2610b4536f73493587e4a5a38e01c9961fcabb96.patch"; + sha256 = "nPfzS+LQuAlyQOz67hCdtx93w2frhgWlg1KGX5bEU38="; + revert = true; + }) + (fetchpatch { + url = "https://gitlab.gnome.org/GNOME/totem/-/commit/5b871aee5292f25bbf39dca18045732e979e7a68.patch"; + sha256 = "LqQLdgyZkIVc+/hQ5sdBLqhtjCVIMDSs9tjVXwMFodg="; + revert = true; + }) + ]; + + nativeBuildInputs = [ + meson + ninja + vala + pkg-config + gettext + python3Packages.python + itstool + gobject-introspection + wrapGAppsHook3 + ]; + + buildInputs = [ + gtk3 + glib + grilo + totem-pl-parser + grilo-plugins + gst_all_1.gstreamer + gst_all_1.gst-plugins-base + (gst_all_1.gst-plugins-good.override { gtkSupport = true; }) + gst_all_1.gst-plugins-bad + gst_all_1.gst-plugins-ugly + gst_all_1.gst-libav + libpeas + libportal-gtk3 + libhandy + shared-mime-info + gdk-pixbuf + libxml2 + adwaita-icon-theme + gnome-desktop + gsettings-desktop-schemas + python3Packages.pygobject3 + ]; + + nativeCheckInputs = [ + xvfb-run + ]; + + mesonFlags = [ + # TODO: https://github.com/NixOS/nixpkgs/issues/36468 + "-Dc_args=-I${glib.dev}/include/gio-unix-2.0" + ]; + + # Tests do not work with GStreamer 1.18. + # https://gitlab.gnome.org/GNOME/totem/-/issues/450 + doCheck = false; + + postPatch = '' + chmod +x meson_compile_python.py # patchShebangs requires executable file + patchShebangs \ + ./meson_compile_python.py + ''; + + checkPhase = '' + runHook preCheck + + xvfb-run -s '-screen 0 800x600x24' \ + ninja test + + runHook postCheck + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = "totem"; + }; + }; + + meta = with lib; { + homepage = "https://apps.gnome.org/Totem/"; + description = "Movie player for the GNOME desktop based on GStreamer"; + maintainers = teams.gnome.members; + license = licenses.gpl2Plus; # with exception to allow use of non-GPL compatible plug-ins + platforms = platforms.linux; + }; +} diff --git a/pkgs/by-name/tr/trigger-control/package.nix b/pkgs/by-name/tr/trigger-control/package.nix index b0a389e29ec4e..3398a3fe0aabb 100644 --- a/pkgs/by-name/tr/trigger-control/package.nix +++ b/pkgs/by-name/tr/trigger-control/package.nix @@ -10,13 +10,9 @@ , libdecor , libnotify , dejavu_fonts -, gnome +, zenity }: -let - inherit (gnome) zenity; -in - stdenv.mkDerivation (finalAttrs: { pname = "trigger-control"; version = "1.5.1"; diff --git a/pkgs/by-name/tu/tuifimanager/package.nix b/pkgs/by-name/tu/tuifimanager/package.nix index c2b214ce55b15..7ccb8e4b237f0 100644 --- a/pkgs/by-name/tu/tuifimanager/package.nix +++ b/pkgs/by-name/tu/tuifimanager/package.nix @@ -3,7 +3,7 @@ , python3 , fetchFromGitHub , kdePackages -, gnome +, gnome-themes-extra , qt6 , makeWrapper , x11Support ? stdenv.isLinux @@ -52,7 +52,7 @@ python3.pkgs.buildPythonApplication rec { postFixup = let # fix missing 'adwaita' warning missing with ncurses tui # see: https://github.com/NixOS/nixpkgs/issues/60918 - theme = gnome.gnome-themes-extra; + theme = gnome-themes-extra; in lib.optionalString enableDragAndDrop '' wrapProgram $out/bin/tuifi \ diff --git a/pkgs/by-name/wi/wifi-qr/package.nix b/pkgs/by-name/wi/wifi-qr/package.nix index 341077edaefa9..3c5a37b071b88 100644 --- a/pkgs/by-name/wi/wifi-qr/package.nix +++ b/pkgs/by-name/wi/wifi-qr/package.nix @@ -2,7 +2,7 @@ , fetchFromGitHub , installShellFiles , makeWrapper -, gnome +, zenity , ncurses , networkmanager , patsh @@ -26,7 +26,7 @@ stdenvNoCC.mkDerivation { }; buildInputs = [ - gnome.zenity + zenity ncurses networkmanager procps diff --git a/pkgs/by-name/ye/yelp-xsl/package.nix b/pkgs/by-name/ye/yelp-xsl/package.nix new file mode 100644 index 0000000000000..572f68a923a84 --- /dev/null +++ b/pkgs/by-name/ye/yelp-xsl/package.nix @@ -0,0 +1,51 @@ +{ lib, stdenv +, gettext +, fetchurl +, pkg-config +, itstool +, libxml2 +, libxslt +, gnome +}: + +stdenv.mkDerivation rec { + pname = "yelp-xsl"; + version = "42.1"; + + src = fetchurl { + url = "mirror://gnome/sources/yelp-xsl/${lib.versions.major version}/${pname}-${version}.tar.xz"; + sha256 = "sha256-I4vhULFlMIDOE5lxMw/TbTomWV4NagQKLAML89IAW80="; + }; + + nativeBuildInputs = [ + pkg-config + gettext + itstool + libxml2 + libxslt + ]; + + doCheck = true; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + }; + }; + + meta = with lib; { + homepage = "https://gitlab.gnome.org/GNOME/yelp-xsl"; + description = "Yelp's universal stylesheets for Mallard and DocBook"; + maintainers = teams.gnome.members; + license = with licenses; [ + # See https://gitlab.gnome.org/GNOME/yelp-xsl/blob/master/COPYING + # Stylesheets + lgpl2Plus + # Icons, unclear: https://gitlab.gnome.org/GNOME/yelp-xsl/issues/25 + gpl2 + # highlight.js + bsd3 + ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/by-name/ye/yelp/package.nix b/pkgs/by-name/ye/yelp/package.nix new file mode 100644 index 0000000000000..7d9549d970930 --- /dev/null +++ b/pkgs/by-name/ye/yelp/package.nix @@ -0,0 +1,64 @@ +{ lib +, stdenv +, gettext +, fetchurl +, webkitgtk_4_1 +, pkg-config +, gtk3 +, libhandy +, glib +, gnome +, adwaita-icon-theme +, sqlite +, itstool +, libxml2 +, libxslt +, gst_all_1 +, wrapGAppsHook3 +, yelp-xsl +}: + +stdenv.mkDerivation rec { + pname = "yelp"; + version = "42.2"; + + src = fetchurl { + url = "mirror://gnome/sources/yelp/${lib.versions.major version}/${pname}-${version}.tar.xz"; + sha256 = "sha256-osX9B4epCJxyLMZr0Phc33CI2HDntsyFeZ+OW/+erEs="; + }; + + nativeBuildInputs = [ + pkg-config + gettext + itstool + wrapGAppsHook3 + ]; + + buildInputs = [ + gtk3 + libhandy + glib + webkitgtk_4_1 + sqlite + libxml2 + libxslt + yelp-xsl + adwaita-icon-theme + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good + ]; + + passthru = { + updateScript = gnome.updateScript { + packageName = "yelp"; + }; + }; + + meta = with lib; { + homepage = "https://apps.gnome.org/Yelp/"; + description = "Help viewer in Gnome"; + maintainers = teams.gnome.members; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/by-name/ze/zenity/package.nix b/pkgs/by-name/ze/zenity/package.nix new file mode 100644 index 0000000000000..b9e43a42b27b1 --- /dev/null +++ b/pkgs/by-name/ze/zenity/package.nix @@ -0,0 +1,56 @@ +{ stdenv +, lib +, fetchurl +, help2man +, meson +, ninja +, pkg-config +, libxml2 +, gnome +, gtk4 +, gettext +, libadwaita +, itstool +, wrapGAppsHook4 +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "zenity"; + version = "4.0.1"; + + src = fetchurl { + url = "mirror://gnome/sources/zenity/${lib.versions.majorMinor finalAttrs.version}/zenity-${finalAttrs.version}.tar.xz"; + sha256 = "DC9TeBOxD3KEcNnQXWyVcT2yUS+clQluHoWxpnOWBeY="; + }; + + nativeBuildInputs = [ + help2man + meson + ninja + pkg-config + gettext + itstool + libxml2 + wrapGAppsHook4 + ]; + + buildInputs = [ + gtk4 + libadwaita + ]; + + passthru = { + updateScript = gnome.updateScript { + packageName = "zenity"; + }; + }; + + meta = with lib; { + mainProgram = "zenity"; + description = "Tool to display dialogs from the commandline and shell scripts"; + homepage = "https://gitlab.gnome.org/GNOME/zenity"; + license = licenses.lgpl21Plus; + platforms = platforms.unix; + maintainers = teams.gnome.members; + }; +}) |