diff options
Diffstat (limited to 'nixpkgs/pkgs/desktops/gnome-3/core')
76 files changed, 3469 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix new file mode 100644 index 000000000000..b091395ab37b --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchurl, pkgconfig, intltool, gnome3 +, iconnamingutils, gtk3, gdk_pixbuf, librsvg, hicolor-icon-theme }: + +stdenv.mkDerivation rec { + name = "adwaita-icon-theme-${version}"; + version = "3.30.1"; + + src = fetchurl { + url = "mirror://gnome/sources/adwaita-icon-theme/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "1kp1lis3dr16jmlgycz1b29jsr6ir8wmqj6laqwlhs663cmjlxbd"; + }; + + # For convenience, we can specify adwaita-icon-theme only in packages + propagatedBuildInputs = [ hicolor-icon-theme ]; + + buildInputs = [ gdk_pixbuf librsvg ]; + + nativeBuildInputs = [ pkgconfig intltool iconnamingutils gtk3 ]; + + # remove a tree of dirs with no files within + postInstall = '' rm -rf "$out/locale" ''; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "adwaita-icon-theme"; + attrPath = "gnome3.adwaita-icon-theme"; + }; + }; + + meta = with stdenv.lib; { + platforms = with platforms; linux ++ darwin; + maintainers = gnome3.maintainers; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/baobab/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/baobab/default.nix new file mode 100644 index 000000000000..cf73524a0ca2 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/baobab/default.nix @@ -0,0 +1,34 @@ +{ stdenv, gettext, fetchurl, vala, desktop-file-utils +, meson, ninja, pkgconfig, gtk3, glib, libxml2 +, wrapGAppsHook, itstool, gnome3 }: + +let + pname = "baobab"; + version = "3.30.0"; +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "0kx721s1hhw1g0nvbqhb93g8iq6f852imyhfhl02zcqy4ipx0kay"; + }; + + nativeBuildInputs = [ meson ninja pkgconfig vala gettext itstool libxml2 desktop-file-utils wrapGAppsHook ]; + buildInputs = [ gtk3 glib gnome3.adwaita-icon-theme ]; + + doCheck = true; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + }; + }; + + meta = with stdenv.lib; { + description = "Graphical application to analyse disk usage in any GNOME environment"; + homepage = https://wiki.gnome.org/Apps/DiskUsageAnalyzer; + license = licenses.gpl2; + maintainers = gnome3.maintainers; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/caribou/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/caribou/default.nix new file mode 100644 index 000000000000..bad06bae4054 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/caribou/default.nix @@ -0,0 +1,54 @@ +{ fetchurl, stdenv, pkgconfig, gnome3, glib, gtk3, clutter, dbus, python3, libxml2 +, libxklavier, libXtst, gtk2, intltool, libxslt, at-spi2-core, autoreconfHook +, wrapGAppsHook, libgee }: + +let + pname = "caribou"; + version = "0.4.21"; + pythonEnv = python3.withPackages ( ps: with ps; [ pygobject3 ] ); +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"; + }; + + patches = [ + # Fix crash in GNOME Flashback + # https://bugzilla.gnome.org/show_bug.cgi?id=791001 + (fetchurl { + url = https://bugzilla.gnome.org/attachment.cgi?id=364774; + sha256 = "15k1455grf6knlrxqbjnk7sals1730b0whj30451scp46wyvykvd"; + }) + ]; + + nativeBuildInputs = [ pkgconfig intltool libxslt libxml2 autoreconfHook wrapGAppsHook ]; + + buildInputs = [ + glib gtk3 clutter at-spi2-core dbus pythonEnv python3.pkgs.pygobject3 + libXtst gtk2 + ]; + + propagatedBuildInputs = [ libgee libxklavier ]; + + postPatch = '' + patchShebangs . + substituteInPlace libcaribou/Makefile.am --replace "--shared-library=libcaribou.so.0" "--shared-library=$out/lib/libcaribou.so.0" + ''; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "gnome3.${pname}"; + }; + }; + + meta = with stdenv.lib; { + description = "An input assistive technology intended for switch and pointer users"; + homepage = https://wiki.gnome.org/Projects/Caribou; + license = licenses.lgpl21; + maintainers = gnome3.maintainers; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/dconf-editor/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/dconf-editor/default.nix new file mode 100644 index 000000000000..0d583dccf766 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/dconf-editor/default.nix @@ -0,0 +1,35 @@ +{ stdenv, fetchurl, meson, ninja, vala, libxslt, pkgconfig, glib, gtk3, gnome3, python3 +, libxml2, gettext, docbook_xsl, wrapGAppsHook, gobject-introspection }: + +let + pname = "dconf-editor"; + version = "3.30.2"; +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "06f736spn20s7qjsz00xw44v8r8bjhyrz1v3bix6v416jc5jp6ia"; + }; + + nativeBuildInputs = [ meson ninja vala libxslt pkgconfig wrapGAppsHook gettext docbook_xsl libxml2 gobject-introspection python3 ]; + + buildInputs = [ glib gtk3 gnome3.dconf ]; + + postPatch = '' + chmod +x meson_post_install.py + patchShebangs meson_post_install.py + ''; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "${pname}"; + attrPath = "gnome3.${pname}"; + }; + }; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/dconf/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/dconf/default.nix new file mode 100644 index 000000000000..1f55071c83d7 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/dconf/default.nix @@ -0,0 +1,55 @@ +{ stdenv, fetchurl, meson, ninja, python3, vala, libxslt, pkgconfig, glib, bash-completion, dbus, gnome3 +, libxml2, gtk-doc, docbook_xsl, docbook_xml_dtd_42, fetchpatch }: + +let + pname = "dconf"; +in +stdenv.mkDerivation rec { + name = "${pname}-${version}"; + version = "0.30.1"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "1dq2dn7qmxr4fxzx9wnag89ck24gxq17p2n4gl81h4w8qdy3m6jl"; + }; + + patches = [ + # Fix the build on Darwin + # Issue: https://gitlab.gnome.org/GNOME/dconf/issues/47 + (fetchpatch { + url = "https://gitlab.gnome.org/GNOME/dconf/commit/49f4d916e1151af3975df52c522c69de98ed2fbb.patch"; + sha256 = "00klkr1jzli9ap0aj6399m1bj2bxxz48pmcj4r16dsy6dfdl6325"; + }) + ]; + + postPatch = '' + chmod +x meson_post_install.py + patchShebangs meson_post_install.py + ''; + + outputs = [ "out" "lib" "dev" "devdoc" ]; + + nativeBuildInputs = [ meson ninja vala pkgconfig python3 libxslt libxml2 gtk-doc docbook_xsl docbook_xml_dtd_42 ]; + buildInputs = [ glib bash-completion dbus ]; + + mesonFlags = [ + "--sysconfdir=/etc" + "-Dgtk_doc=true" + ]; + + doCheck = true; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "gnome3.${pname}"; + }; + }; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Projects/dconf; + license = licenses.lgpl21Plus; + platforms = platforms.linux ++ platforms.darwin; + maintainers = gnome3.maintainers; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/empathy/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/empathy/default.nix new file mode 100644 index 000000000000..19f2783be3d3 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/empathy/default.nix @@ -0,0 +1,64 @@ +{ stdenv, intltool, fetchurl, webkitgtk, pkgconfig, gtk3, glib +, file, librsvg, gnome3, gdk_pixbuf, python3 +, telepathy-glib, telepathy-farstream, glibcLocales +, clutter-gtk, clutter-gst, gst_all_1, cogl, gnome-online-accounts +, gcr, libsecret, folks, libpulseaudio, telepathy-mission-control +, telepathy-logger, libnotify, clutter, libsoup, gnutls +, evolution-data-server, yelp-xsl +, libcanberra-gtk3, p11-kit, farstream, libtool, shared-mime-info +, wrapGAppsHook, itstool, libxml2, libxslt, icu, libgee +, isocodes, enchant, libchamplain, geoclue2, geocode-glib, cheese, libgudev }: + +stdenv.mkDerivation rec { + name = "empathy-${version}"; + version = "3.25.90"; + + src = fetchurl { + url = "mirror://gnome/sources/empathy/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "0sn10fcymc6lyrabk7vx8lpvlaxxkqnmcwj9zdkfa8qf3388k4nc"; + }; + + propagatedUserEnvPkgs = [ + gnome-online-accounts shared-mime-info + ]; + propagatedBuildInputs = [ + folks telepathy-logger evolution-data-server telepathy-mission-control + ]; + nativeBuildInputs = [ + pkgconfig libtool intltool itstool file wrapGAppsHook + libxml2 libxslt yelp-xsl python3 glibcLocales + ]; + buildInputs = [ + gtk3 glib webkitgtk icu gnome-online-accounts + telepathy-glib clutter-gtk clutter-gst cogl + gst_all_1.gstreamer gst_all_1.gst-plugins-base + gcr libsecret libpulseaudio gdk_pixbuf + libnotify clutter libsoup gnutls libgee p11-kit + libcanberra-gtk3 telepathy-farstream farstream + gnome3.adwaita-icon-theme gnome3.gsettings-desktop-schemas + librsvg + # Spell-checking + enchant isocodes + # Display maps, location awareness, geocode support + libchamplain geoclue2 geocode-glib + # Cheese webcam support, camera monitoring + cheese libgudev + ]; + + LC_ALL = "en_US.UTF-8"; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "empathy"; + versionPolicy = "none"; + }; + }; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Empathy; + description = "Messaging program which supports text, voice, video chat, and file transfers over many different protocols"; + maintainers = gnome3.maintainers; + license = [ licenses.gpl2 ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/eog/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/eog/default.nix new file mode 100644 index 000000000000..5b6281869cc5 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/eog/default.nix @@ -0,0 +1,51 @@ +{ fetchurl, stdenv, meson, ninja, gettext, itstool, pkgconfig, libxml2, libjpeg, libpeas, gnome3 +, gtk3, glib, gsettings-desktop-schemas, adwaita-icon-theme, gnome-desktop, lcms2, gdk_pixbuf, exempi +, shared-mime-info, wrapGAppsHook, librsvg, libexif, gobject-introspection, python3 }: + +let + pname = "eog"; + version = "3.28.4"; +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "1wrq3l3z0x6q0hnc1vqr2hnyb1b14qw6aqvc5dldfgbs0yys6p55"; + }; + + nativeBuildInputs = [ meson ninja pkgconfig gettext itstool wrapGAppsHook libxml2 gobject-introspection python3 ]; + + buildInputs = [ + libjpeg gtk3 gdk_pixbuf glib libpeas librsvg lcms2 gnome-desktop libexif exempi + gsettings-desktop-schemas shared-mime-info adwaita-icon-theme + ]; + + postPatch = '' + chmod +x meson_post_install.py + patchShebangs meson_post_install.py + ''; + + preFixup = '' + gappsWrapperArgs+=( + # Thumbnailers + --prefix XDG_DATA_DIRS : "${gdk_pixbuf}/share" + --prefix XDG_DATA_DIRS : "${librsvg}/share" + --prefix XDG_DATA_DIRS : "${shared-mime-info}/share" + ) + ''; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "gnome3.${pname}"; + }; + }; + + meta = with stdenv.lib; { + description = "GNOME image viewer"; + homepage = https://wiki.gnome.org/Apps/EyeOfGnome; + license = licenses.gpl2Plus; + maintainers = gnome3.maintainers; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/epiphany/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/epiphany/default.nix new file mode 100644 index 000000000000..37cdce40f340 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/epiphany/default.nix @@ -0,0 +1,50 @@ +{ stdenv, meson, ninja, gettext, fetchurl, pkgconfig, gtk3, glib, icu +, wrapGAppsHook, gnome3, libxml2, libxslt, itstool +, webkitgtk, libsoup, glib-networking, libsecret, gnome-desktop, libnotify, p11-kit +, sqlite, gcr, isocodes, desktop-file-utils, python3 +, gdk_pixbuf, gst_all_1, json-glib, libdazzle }: + +stdenv.mkDerivation rec { + name = "epiphany-${version}"; + version = "3.30.3"; + + src = fetchurl { + url = "mirror://gnome/sources/epiphany/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "05qdzx18ld1m3xiajpz6y6snfj56bgyjsgm7f4rqrnpjdbdvikbn"; + }; + + # Tests need an X display + mesonFlags = [ "-Dunit_tests=false" ]; + + nativeBuildInputs = [ + meson ninja libxslt pkgconfig itstool gettext wrapGAppsHook desktop-file-utils python3 + ]; + + buildInputs = [ + gtk3 glib webkitgtk libsoup libxml2 libsecret gnome-desktop libnotify + sqlite isocodes p11-kit icu + gdk_pixbuf gnome3.adwaita-icon-theme gcr + glib-networking gst_all_1.gstreamer gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad gst_all_1.gst-plugins-ugly + gst_all_1.gst-libav json-glib libdazzle + ]; + + postPatch = '' + chmod +x post_install.py # patchShebangs requires executable file + patchShebangs post_install.py + ''; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "epiphany"; + }; + }; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Epiphany; + description = "WebKit based web browser for GNOME"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/evince/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/evince/default.nix new file mode 100644 index 000000000000..1a01bd307eaa --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/evince/default.nix @@ -0,0 +1,69 @@ +{ fetchurl, stdenv, pkgconfig, intltool, libxml2 +, glib, gtk3, pango, atk, gdk_pixbuf, shared-mime-info, itstool, gnome3 +, poppler, ghostscriptX, djvulibre, libspectre, libarchive, libsecret, wrapGAppsHook +, librsvg, gobject-introspection, yelp-tools, gspell, adwaita-icon-theme, gsettings-desktop-schemas +, libgxps +, recentListSize ? null # 5 is not enough, allow passing a different number +, supportXPS ? false # Open XML Paper Specification via libgxps +, autoreconfHook, pruneLibtoolFiles +}: + +stdenv.mkDerivation rec { + name = "evince-${version}"; + version = "3.30.2"; + + src = fetchurl { + url = "mirror://gnome/sources/evince/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "0k7jln6dpg4bpv61niicjzkzyq6fhb3yfld7pc8ck71c8pmvsnx9"; + }; + + passthru = { + updateScript = gnome3.updateScript { packageName = "evince"; }; + }; + + nativeBuildInputs = [ + pkgconfig gobject-introspection intltool itstool wrapGAppsHook yelp-tools autoreconfHook pruneLibtoolFiles + ]; + + buildInputs = [ + glib gtk3 pango atk gdk_pixbuf libxml2 + gsettings-desktop-schemas + poppler ghostscriptX djvulibre libspectre libarchive + libsecret librsvg adwaita-icon-theme gspell + ] ++ stdenv.lib.optional supportXPS libgxps; + + configureFlags = [ + "--disable-nautilus" # Do not build nautilus plugin + "--enable-introspection" + (if supportXPS then "--enable-xps" else "--disable-xps") + ]; + + NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0"; + + preConfigure = stdenv.lib.optionalString (recentListSize != null) '' + sed -i 's/\(gtk_recent_chooser_set_limit .*\)5)/\1${builtins.toString recentListSize})/' shell/ev-open-recent-action.c + sed -i 's/\(if (++n_items == \)5\(.*\)/\1${builtins.toString recentListSize}\2/' shell/ev-window.c + ''; + + preFixup = '' + gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "${shared-mime-info}/share") + ''; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/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 = stdenv.lib.licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = gnome3.maintainers ++ [ maintainers.vcunat ]; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix new file mode 100644 index 000000000000..62ed7aaa3d84 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix @@ -0,0 +1,64 @@ +{ fetchurl, stdenv, substituteAll, pkgconfig, gnome3, python3, gobject-introspection +, intltool, libsoup, libxml2, libsecret, icu, sqlite, tzdata, libcanberra-gtk3, gcr +, p11-kit, db, nspr, nss, libical, gperf, wrapGAppsHook, glib-networking, pcre +, vala, cmake, ninja, kerberos, openldap, webkitgtk, libaccounts-glib, json-glib +, glib, gtk3, gnome-online-accounts, libgweather, libgdata }: + +stdenv.mkDerivation rec { + name = "evolution-data-server-${version}"; + version = "3.30.5"; + + outputs = [ "out" "dev" ]; + + src = fetchurl { + url = "mirror://gnome/sources/evolution-data-server/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "1s952wyhgcbmq9nfgk75v15zdy1h3wy5p5rmkqibaavmc0pk3mli"; + }; + + patches = [ + (substituteAll { + src = ./fix-paths.patch; + inherit tzdata; + }) + ./hardcode-gsettings.patch + ]; + + nativeBuildInputs = [ + cmake ninja pkgconfig intltool python3 gperf wrapGAppsHook gobject-introspection vala + ]; + buildInputs = [ + glib libsoup libxml2 gtk3 gnome-online-accounts + gcr p11-kit libgweather libgdata libaccounts-glib json-glib + icu sqlite kerberos openldap webkitgtk glib-networking + libcanberra-gtk3 pcre + ]; + + propagatedBuildInputs = [ libsecret nss nspr libical db libsoup ]; + + cmakeFlags = [ + "-DENABLE_UOA=OFF" + "-DENABLE_VALA_BINDINGS=ON" + "-DENABLE_INTROSPECTION=ON" + "-DCMAKE_SKIP_BUILD_RPATH=OFF" + "-DINCLUDE_INSTALL_DIR=${placeholder "dev"}/include" + ]; + + postPatch = '' + substituteInPlace src/libedataserver/e-source-registry.c --subst-var-by ESD_GSETTINGS_PATH $out/share/gsettings-schemas/${name}/glib-2.0/schemas + ''; + + + passthru = { + updateScript = gnome3.updateScript { + packageName = "evolution-data-server"; + }; + }; + + meta = with stdenv.lib; { + description = "Unified backend for programs that work with contacts, tasks, and calendar information"; + homepage = https://wiki.gnome.org/Apps/Evolution; + license = licenses.lgpl2; + maintainers = gnome3.maintainers; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/fix-paths.patch new file mode 100644 index 000000000000..334235516591 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/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/nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/hardcode-gsettings.patch b/nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/hardcode-gsettings.patch new file mode 100644 index 000000000000..8b64b3df8015 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/hardcode-gsettings.patch @@ -0,0 +1,36 @@ +diff --git a/src/libedataserver/e-source-registry.c b/src/libedataserver/e-source-registry.c +index 9c166dbaf..ef368f8d4 100644 +--- a/src/libedataserver/e-source-registry.c ++++ b/src/libedataserver/e-source-registry.c +@@ -116,6 +116,8 @@ struct _ESourceRegistryPrivate { + GHashTable *sources; + GMutex sources_lock; + ++ GSettingsSchemaSource *schema_source; ++ GSettingsSchema *schema; + GSettings *settings; + + gboolean initialized; +@@ -1339,7 +1341,11 @@ source_registry_dispose (GObject *object) + if (priv->settings != NULL) { + g_signal_handlers_disconnect_by_data (priv->settings, object); + g_object_unref (priv->settings); ++ g_settings_schema_unref (priv->schema); ++ g_settings_schema_source_unref (priv->schema_source); + priv->settings = NULL; ++ priv->schema = NULL; ++ priv->schema_source = NULL; + } + + /* Chain up to parent's finalize() method. */ +@@ -1743,7 +1749,9 @@ e_source_registry_init (ESourceRegistry *registry) + + g_mutex_init (®istry->priv->sources_lock); + +- registry->priv->settings = g_settings_new (GSETTINGS_SCHEMA); ++ GSettingsSchemaSource *schema_source = registry->priv->schema_source = g_settings_schema_source_new_from_directory ("@ESD_GSETTINGS_PATH@", g_settings_schema_source_get_default (), TRUE, NULL); ++ registry->priv->schema = g_settings_schema_source_lookup (schema_source, GSETTINGS_SCHEMA, FALSE); ++ registry->priv->settings = g_settings_new_full (registry->priv->schema, NULL, NULL); + + g_signal_connect ( + registry->priv->settings, "changed", diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gdm/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gdm/default.nix new file mode 100644 index 000000000000..c985d01a5e66 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gdm/default.nix @@ -0,0 +1,82 @@ +{ stdenv, fetchurl, substituteAll, pkgconfig, glib, itstool, libxml2, xorg +, accountsservice, libX11, gnome3, systemd, autoreconfHook +, gtk3, libcanberra-gtk3, pam, libtool, gobject-introspection, plymouth +, librsvg, coreutils, xwayland, fetchpatch }: + +stdenv.mkDerivation rec { + name = "gdm-${version}"; + version = "3.30.3"; + + src = fetchurl { + url = "mirror://gnome/sources/gdm/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "15f7lz7z75krgbq8vb800afj96h8mw2fpy1s28za2911x5vgq0ak"; + }; + + # Only needed to make it build + preConfigure = '' + substituteInPlace ./configure --replace "/usr/bin/X" "${xorg.xorgserver.out}/bin/X" + ''; + + configureFlags = [ + "--sysconfdir=/etc" + "--localstatedir=/var" + "--with-plymouth=yes" + "--enable-gdm-xsession" + "--with-initial-vt=7" + "--with-systemdsystemunitdir=$(out)/etc/systemd/system" + "--with-udevdir=$(out)/lib/udev" + ]; + + nativeBuildInputs = [ pkgconfig libxml2 itstool autoreconfHook libtool gnome3.dconf ]; + buildInputs = [ + glib accountsservice systemd + gobject-introspection libX11 gtk3 + libcanberra-gtk3 pam plymouth librsvg + ]; + + enableParallelBuilding = true; + + patches = [ + # Change hardcoded paths to nix store paths. + (substituteAll { + src = ./fix-paths.patch; + inherit coreutils plymouth xwayland; + }) + + # The following patches implement certain environment variables in GDM which are set by + # the gdm configuration module (nixos/modules/services/x11/display-managers/gdm.nix). + + ./gdm-x-session_extra_args.patch + + # Allow specifying a wrapper for running the session command. + ./gdm-x-session_session-wrapper.patch + + # Forwards certain environment variables to the gdm-x-session child process + # to ensure that the above two patches actually work. + ./gdm-session-worker_forward-vars.patch + + # Set up the environment properly when launching sessions + # https://github.com/NixOS/nixpkgs/issues/48255 + ./reset-environment.patch + ]; + + installFlags = [ + "sysconfdir=$(out)/etc" + "dbusconfdir=$(out)/etc/dbus-1/system.d" + ]; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "gdm"; + attrPath = "gnome3.gdm"; + }; + }; + + meta = with stdenv.lib; { + description = "A program that manages graphical display servers and handles graphical user logins"; + homepage = https://wiki.gnome.org/Projects/GDM; + license = licenses.gpl2Plus; + maintainers = gnome3.maintainers; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gdm/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome-3/core/gdm/fix-paths.patch new file mode 100644 index 000000000000..6b5bd6152bd6 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gdm/fix-paths.patch @@ -0,0 +1,60 @@ +--- a/daemon/gdm-local-display-factory.c ++++ b/daemon/gdm-local-display-factory.c +@@ -201,7 +201,7 @@ + #ifdef ENABLE_WAYLAND_SUPPORT + gboolean wayland_enabled = FALSE; + if (gdm_settings_direct_get_boolean (GDM_KEY_WAYLAND_ENABLE, &wayland_enabled)) { +- if (wayland_enabled && g_file_test ("/usr/bin/Xwayland", G_FILE_TEST_IS_EXECUTABLE) ) ++ if (wayland_enabled && g_file_test ("@xwayland@/bin/Xwayland", G_FILE_TEST_IS_EXECUTABLE) ) + return TRUE; + } + #endif +--- a/daemon/gdm-manager.c ++++ b/daemon/gdm-manager.c +@@ -145,7 +145,7 @@ + GError *error; + + error = NULL; +- res = g_spawn_command_line_sync ("/bin/plymouth --ping", ++ res = g_spawn_command_line_sync ("@plymouth@/bin/plymouth --ping", + NULL, NULL, &status, &error); + if (! res) { + g_debug ("Could not ping plymouth: %s", error->message); +@@ -163,7 +163,7 @@ + GError *error; + + error = NULL; +- res = g_spawn_command_line_sync ("/bin/plymouth deactivate", ++ res = g_spawn_command_line_sync ("@plymouth@/bin/plymouth deactivate", + NULL, NULL, NULL, &error); + if (! res) { + g_warning ("Could not deactivate plymouth: %s", error->message); +@@ -178,7 +178,7 @@ + GError *error; + + error = NULL; +- res = g_spawn_command_line_async ("/bin/plymouth quit --retain-splash", &error); ++ res = g_spawn_command_line_async ("@plymouth@/bin/plymouth quit --retain-splash", &error); + if (! res) { + g_warning ("Could not quit plymouth: %s", error->message); + g_error_free (error); +@@ -194,7 +194,7 @@ + GError *error; + + error = NULL; +- res = g_spawn_command_line_async ("/bin/plymouth quit", &error); ++ res = g_spawn_command_line_async ("@plymouth@/bin/plymouth quit", &error); + if (! res) { + g_warning ("Could not quit plymouth: %s", error->message); + g_error_free (error); +--- a/data/gdm.service.in ++++ b/data/gdm.service.in +@@ -28,7 +28,7 @@ BusName=org.gnome.DisplayManager + StandardOutput=syslog + StandardError=inherit + EnvironmentFile=-@LANG_CONFIG_FILE@ +-ExecReload=/bin/kill -SIGHUP $MAINPID ++ExecReload=@coreutils@/bin/kill -SIGHUP $MAINPID + KeyringMode=shared + + [Install] diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gdm/gdm-session-worker_forward-vars.patch b/nixpkgs/pkgs/desktops/gnome-3/core/gdm/gdm-session-worker_forward-vars.patch new file mode 100644 index 000000000000..401b6aea0c28 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gdm/gdm-session-worker_forward-vars.patch @@ -0,0 +1,31 @@ +diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c +index 9ef4c5b..94da834 100644 +--- a/daemon/gdm-session-worker.c ++++ b/daemon/gdm-session-worker.c +@@ -1515,6 +1515,16 @@ gdm_session_worker_load_env_d (GdmSessionWorker *worker) + g_object_unref (dir); + } + ++static void ++gdm_session_worker_forward_var (GdmSessionWorker *worker, char const *var) ++{ ++ char const *value = g_getenv(var); ++ if (value != NULL) { ++ g_debug ("forwarding %s= %s", var, value); ++ gdm_session_worker_set_environment_variable(worker, var, value); ++ } ++} ++ + static gboolean + gdm_session_worker_accredit_user (GdmSessionWorker *worker, + GError **error) +@@ -1559,6 +1569,9 @@ gdm_session_worker_accredit_user (GdmSessionWorker *worker, + goto out; + } + ++ gdm_session_worker_forward_var(worker, "GDM_X_SERVER_EXTRA_ARGS"); ++ gdm_session_worker_forward_var(worker, "GDM_X_SESSION_WRAPPER"); ++ + gdm_session_worker_update_environment_from_passwd_info (worker, + uid, + gid, diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gdm/gdm-x-session_extra_args.patch b/nixpkgs/pkgs/desktops/gnome-3/core/gdm/gdm-x-session_extra_args.patch new file mode 100644 index 000000000000..66071aa4af80 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gdm/gdm-x-session_extra_args.patch @@ -0,0 +1,38 @@ +diff --git a/daemon/gdm-x-session.c.orig b/daemon/gdm-x-session.c +index d835b34..1f4b7f1 100644 +--- a/daemon/gdm-x-session.c.orig ++++ b/daemon/gdm-x-session.c +@@ -211,6 +211,7 @@ spawn_x_server (State *state, + char *vt_string = NULL; + char *display_number; + gsize display_number_size; ++ gchar **xserver_extra_args = NULL; + + auth_file = prepare_auth_file (); + +@@ -285,6 +286,17 @@ spawn_x_server (State *state, + if (state->debug_enabled) { + g_ptr_array_add (arguments, "-core"); + } ++ ++ if (g_getenv ("GDM_X_SERVER_EXTRA_ARGS") != NULL) { ++ g_debug ("using GDM_X_SERVER_EXTRA_ARGS: %s", g_getenv("GDM_X_SERVER_EXTRA_ARGS")); ++ xserver_extra_args = g_strsplit(g_getenv("GDM_X_SERVER_EXTRA_ARGS"), " ", -1); ++ for (gchar **extra_arg = xserver_extra_args; *extra_arg; extra_arg++) { ++ if (strlen(*extra_arg) < 1) continue; ++ g_debug ("adding: %s", *extra_arg); ++ g_ptr_array_add (arguments, *extra_arg); ++ } ++ } ++ + g_ptr_array_add (arguments, NULL); + + subprocess = g_subprocess_launcher_spawnv (launcher, +@@ -332,6 +344,7 @@ spawn_x_server (State *state, + + is_running = TRUE; + out: ++ g_strfreev(xserver_extra_args); + g_clear_pointer (&auth_file, g_free); + g_clear_object (&data_stream); + g_clear_object (&subprocess); diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gdm/gdm-x-session_session-wrapper.patch b/nixpkgs/pkgs/desktops/gnome-3/core/gdm/gdm-x-session_session-wrapper.patch new file mode 100644 index 000000000000..58481f0730fa --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gdm/gdm-x-session_session-wrapper.patch @@ -0,0 +1,40 @@ +diff --git a/daemon/gdm-x-session.c b/daemon/gdm-x-session.c +index 88fe96f..b1b140a 100644 +--- a/daemon/gdm-x-session.c ++++ b/daemon/gdm-x-session.c +@@ -664,18 +664,34 @@ spawn_session (State *state, + state->session_command, + NULL); + } else { ++ char const *session_wrapper; ++ char *eff_session_command; + int ret; + char **argv; + +- ret = g_shell_parse_argv (state->session_command, ++ session_wrapper = g_getenv("GDM_X_SESSION_WRAPPER"); ++ if (session_wrapper != NULL) { ++ char *quoted_wrapper = g_shell_quote(session_wrapper); ++ eff_session_command = g_strjoin(" ", quoted_wrapper, state->session_command, NULL); ++ g_free(quoted_wrapper); ++ } else { ++ eff_session_command = state->session_command; ++ } ++ ++ ret = g_shell_parse_argv (eff_session_command, + NULL, + &argv, + &error); + ++ if (session_wrapper != NULL) { ++ g_free(eff_session_command); ++ } ++ + if (!ret) { + g_debug ("could not parse session arguments: %s", error->message); + goto out; + } ++ + subprocess = g_subprocess_launcher_spawnv (launcher, + (const char * const *) argv, + &error); diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gdm/reset-environment.patch b/nixpkgs/pkgs/desktops/gnome-3/core/gdm/reset-environment.patch new file mode 100644 index 000000000000..61defd9c4bc2 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gdm/reset-environment.patch @@ -0,0 +1,20 @@ +--- a/daemon/gdm-wayland-session.c ++++ b/daemon/gdm-wayland-session.c +@@ -285,6 +285,7 @@ spawn_session (State *state, + "WAYLAND_DISPLAY", + "WAYLAND_SOCKET", + "GNOME_SHELL_SESSION_MODE", ++ "__NIXOS_SET_ENVIRONMENT_DONE", + NULL }; + + g_debug ("Running wayland session"); +--- a/daemon/gdm-x-session.c ++++ b/daemon/gdm-x-session.c +@@ -610,6 +610,7 @@ spawn_session (State *state, + "WAYLAND_DISPLAY", + "WAYLAND_SOCKET", + "GNOME_SHELL_SESSION_MODE", ++ "__NIXOS_SET_ENVIRONMENT_DONE", + NULL }; + + g_debug ("Running X session"); diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gjs/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gjs/default.nix new file mode 100644 index 000000000000..ac3a25b7dc74 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gjs/default.nix @@ -0,0 +1,51 @@ +{ fetchurl, stdenv, pkgconfig, gnome3, gtk3, atk, gobject-introspection +, spidermonkey_60, pango, readline, glib, libxml2, dbus, gdk_pixbuf +, makeWrapper }: + +stdenv.mkDerivation rec { + name = "gjs-${version}"; + version = "1.54.3"; + + src = fetchurl { + url = "mirror://gnome/sources/gjs/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "1cd65d4nq5xxlyjz1b83hm5zklyry6lillzf782nr0z97k60vcvn"; + }; + + passthru = { + updateScript = gnome3.updateScript { packageName = "gjs"; attrPath = "gnome3.gjs"; }; + }; + + outputs = [ "out" "installedTests" ]; + + nativeBuildInputs = [ pkgconfig makeWrapper ]; + buildInputs = [ libxml2 gobject-introspection gtk3 glib pango readline dbus ]; + + propagatedBuildInputs = [ spidermonkey_60 ]; + + configureFlags = [ + "--enable-installed-tests" + ]; + + postPatch = '' + for f in installed-tests/*.test.in; do + substituteInPlace "$f" --subst-var-by pkglibexecdir "$installedTests/libexec/gjs" + done + ''; + + postInstall = '' + sed 's|-lreadline|-L${readline.out}/lib -lreadline|g' -i $out/lib/libgjs.la + + moveToOutput "share/installed-tests" "$installedTests" + moveToOutput "libexec/gjs/installed-tests" "$installedTests" + + wrapProgram "$installedTests/libexec/gjs/installed-tests/minijasmine" \ + --prefix GI_TYPELIB_PATH : "${stdenv.lib.makeSearchPath "lib/girepository-1.0" [ gtk3 atk pango.out gdk_pixbuf ]}:$installedTests/libexec/gjs/installed-tests" + ''; + + meta = with stdenv.lib; { + description = "JavaScript bindings for GNOME"; + maintainers = gnome3.maintainers; + platforms = platforms.linux; + license = licenses.lgpl2Plus; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix new file mode 100644 index 000000000000..a938a59f7a01 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl, meson, ninja, pkgconfig, gnome3, gettext }: + +stdenv.mkDerivation rec { + name = "gnome-backgrounds-${version}"; + version = "3.30.0"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-backgrounds/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "1179jrl16bp9gqabqhw7nnfp8qzf5y1vf9fi45bni6rfmwm3mrpc"; + }; + + passthru = { + updateScript = gnome3.updateScript { packageName = "gnome-backgrounds"; attrPath = "gnome3.gnome-backgrounds"; }; + }; + + nativeBuildInputs = [ meson ninja pkgconfig gettext ]; + + meta = with stdenv.lib; { + platforms = platforms.unix; + maintainers = gnome3.maintainers; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix new file mode 100644 index 000000000000..e09d0b4e6f93 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix @@ -0,0 +1,52 @@ +{ stdenv, fetchurl, gnome3, meson, ninja, pkgconfig, gtk3, intltool, glib +, udev, itstool, libxml2, wrapGAppsHook, libnotify, libcanberra-gtk3, gobject-introspection +, gtk-doc, docbook_xsl, docbook_xml_dtd_43, python3 }: + +let + pname = "gnome-bluetooth"; +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + version = "3.28.2"; + + # TODO: split out "lib" + outputs = [ "out" "dev" "devdoc" "man" ]; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "0ch7lll5n8v7m26y6y485gnrik19ml42rsh1drgcxydm6fn62j8z"; + }; + + nativeBuildInputs = [ + meson ninja intltool itstool pkgconfig libxml2 wrapGAppsHook gobject-introspection + gtk-doc docbook_xsl docbook_xml_dtd_43 python3 + ]; + buildInputs = [ + glib gtk3 udev libnotify libcanberra-gtk3 + gnome3.adwaita-icon-theme gnome3.gsettings-desktop-schemas + ]; + + mesonFlags = [ + "-Dicon_update=false" + "-Dgtk_doc=true" + ]; + + postPatch = '' + chmod +x meson_post_install.py # patchShebangs requires executable file + patchShebangs meson_post_install.py + ''; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "gnome3.${pname}"; + }; + }; + + meta = with stdenv.lib; { + homepage = https://help.gnome.org/users/gnome-bluetooth/stable/index.html.en; + description = "Application that let you manage Bluetooth in the GNOME destkop"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix new file mode 100644 index 000000000000..037509b9c548 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix @@ -0,0 +1,46 @@ +{ stdenv, meson, ninja, vala, gettext, itstool, fetchurl, pkgconfig, libxml2 +, gtk3, glib, gtksourceview3, wrapGAppsHook, gobject-introspection, python3 +, gnome3, mpfr, gmp, libsoup, libmpc }: + +stdenv.mkDerivation rec { + name = "gnome-calculator-${version}"; + version = "3.30.1"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-calculator/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "0qkzcmj51cjmljxl1nc84h6jgq1a51xj4g6jwh3ymgm19m3sqypc"; + }; + + nativeBuildInputs = [ + meson ninja pkgconfig vala gettext itstool wrapGAppsHook python3 + gobject-introspection # for finding vapi files + ]; + + buildInputs = [ + gtk3 glib libxml2 gtksourceview3 mpfr gmp + gnome3.adwaita-icon-theme + gnome3.gsettings-desktop-schemas libsoup libmpc + ]; + + doCheck = true; + + postPatch = '' + chmod +x meson_post_install.py # patchShebangs requires executable file + patchShebangs meson_post_install.py + ''; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "gnome-calculator"; + attrPath = "gnome3.gnome-calculator"; + }; + }; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Calculator; + description = "Application that solves mathematical equations and is suitable as a default application in a Desktop environment"; + maintainers = gnome3.maintainers; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-color-manager/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-color-manager/default.nix new file mode 100644 index 000000000000..782a77499f9e --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-color-manager/default.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchurl, meson, ninja, pkgconfig, gettext, itstool, desktop-file-utils, gnome3, glib, gtk3, libexif, libtiff, colord, colord-gtk, libcanberra-gtk3, lcms2, vte, exiv2 }: + +let + pname = "gnome-color-manager"; + version = "3.30.0"; +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "105bqqq3yvdn5lx94mkl0d450f0l8lmwfjjcwyls1pycmj0vifwh"; + }; + + nativeBuildInputs = [ meson ninja pkgconfig gettext itstool desktop-file-utils ]; + buildInputs = [ glib gtk3 libexif libtiff colord colord-gtk libcanberra-gtk3 lcms2 vte exiv2 ]; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "gnome3.${pname}"; + }; + }; + + meta = with stdenv.lib; { + description = "A set of graphical utilities for color management to be used in the GNOME desktop"; + license = licenses.gpl2Plus; + maintainers = gnome3.maintainers; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-common/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-common/default.nix new file mode 100644 index 000000000000..d0ab339a504d --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-common/default.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchurl, which, gnome3, autoconf, automake }: + +stdenv.mkDerivation rec { + name = "gnome-common-${version}"; + version = "3.18.0"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-common/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "22569e370ae755e04527b76328befc4c73b62bfd4a572499fde116b8318af8cf"; + }; + + passthru = { + updateScript = gnome3.updateScript { packageName = "gnome-common"; attrPath = "gnome3.gnome-common"; }; + }; + + patches = [(fetchurl { + name = "gnome-common-patch"; + url = "https://bug697543.bugzilla-attachments.gnome.org/attachment.cgi?id=240935"; + sha256 = "17abp7czfzirjm7qsn2czd03hdv9kbyhk3lkjxg2xsf5fky7z7jl"; + })]; + + propagatedBuildInputs = [ which autoconf automake ]; # autogen.sh which is using gnome-common tends to require which + + meta = with stdenv.lib; { + maintainers = gnome3.maintainers; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix new file mode 100644 index 000000000000..253bbc4e1967 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix @@ -0,0 +1,57 @@ +{ stdenv, gettext, fetchurl, evolution-data-server +, pkgconfig, libxslt, docbook_xsl, docbook_xml_dtd_42, python3, gtk3, glib, cheese +, libchamplain, clutter-gtk, geocode-glib, gnome-desktop, gnome-online-accounts +, wrapGAppsHook, folks, libxml2, gnome3, telepathy-glib +, vala, meson, ninja }: + +let + version = "3.30.2"; +in stdenv.mkDerivation rec { + name = "gnome-contacts-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-contacts/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "1b0pkdwz9yqcv82zzdf76rs2w3wa5zli8pka09wnahikx1ykk43h"; + }; + + propagatedUserEnvPkgs = [ evolution-data-server ]; + + nativeBuildInputs = [ + meson ninja pkgconfig vala gettext libxslt docbook_xsl docbook_xml_dtd_42 python3 wrapGAppsHook + ]; + + buildInputs = [ + gtk3 glib evolution-data-server gnome3.gsettings-desktop-schemas + folks gnome-desktop telepathy-glib + libxml2 gnome-online-accounts cheese + gnome3.adwaita-icon-theme libchamplain clutter-gtk geocode-glib + ]; + + postPatch = '' + chmod +x meson_post_install.py + patchShebangs meson_post_install.py + ''; + + # In file included from src/gnome-contacts@exe/contacts-avatar-selector.c:30:0: + # /nix/store/*-cheese-3.28.0/include/cheese/cheese-widget.h:26:10: fatal error: clutter-gtk/clutter-gtk.h: No such file or directory + # #include <clutter-gtk/clutter-gtk.h> + # ^~~~~~~~~~~~~~~~~~~~~~~~~~~ + NIX_CFLAGS_COMPILE = "-I${stdenv.lib.getDev clutter-gtk}/include/clutter-gtk-1.0"; + + doCheck = true; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "gnome-contacts"; + attrPath = "gnome3.gnome-contacts"; + }; + }; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Contacts; + description = "GNOME’s integrated address book"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix new file mode 100644 index 000000000000..5e90998b5396 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix @@ -0,0 +1,81 @@ +{ fetchurl, stdenv, substituteAll, meson, ninja, pkgconfig, gnome3, ibus, gettext, upower, wrapGAppsHook +, libcanberra-gtk3, accountsservice, libpwquality, libpulseaudio +, gdk_pixbuf, librsvg, libnotify, libgudev, libsecret, gnome-color-manager +, libxml2, polkit, libxslt, libgtop, libsoup, colord, colord-gtk +, cracklib, libkrb5, networkmanagerapplet, networkmanager, glibc +, libwacom, samba, shared-mime-info, tzdata, libtool, libgnomekbd +, docbook_xsl, modemmanager, clutter, clutter-gtk, cheese, gnome-session +, fontconfig, sound-theme-freedesktop, grilo, python3 +, gtk3, glib, glib-networking, gsettings-desktop-schemas +, gnome-desktop, gnome-settings-daemon, gnome-online-accounts +, vino, gnome-bluetooth, tracker, adwaita-icon-theme }: + +let + pname = "gnome-control-center"; + version = "3.30.3"; +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "0gih1cmqbv803kp30704sllghb0impa0mmv3j8pndfg4zr2mnq9r"; + }; + + nativeBuildInputs = [ + meson ninja pkgconfig gettext wrapGAppsHook libtool libxslt docbook_xsl + shared-mime-info python3 + ]; + + buildInputs = [ + ibus gtk3 glib glib-networking upower gsettings-desktop-schemas + libxml2 gnome-desktop gnome-settings-daemon polkit libgtop + gnome-online-accounts libsoup colord libpulseaudio fontconfig colord-gtk + accountsservice libkrb5 networkmanagerapplet libwacom samba libnotify + grilo libpwquality cracklib vino libcanberra-gtk3 libgudev libsecret + gdk_pixbuf adwaita-icon-theme librsvg clutter clutter-gtk cheese + networkmanager modemmanager gnome-bluetooth tracker + ]; + + patches = [ + (substituteAll { + src = ./paths.patch; + gcm = gnome-color-manager; + inherit glibc libgnomekbd tzdata; + }) + ]; + + postPatch = '' + chmod +x build-aux/meson/meson_post_install.py # patchShebangs requires executable file + patchShebangs build-aux/meson/meson_post_install.py + ''; + + mesonFlags = [ + "-Dgnome_session_libexecdir=${gnome-session}/libexec" + ]; + + preFixup = '' + gappsWrapperArgs+=( + --prefix XDG_DATA_DIRS : "${sound-theme-freedesktop}/share" + # Thumbnailers (for setting user profile pictures) + --prefix XDG_DATA_DIRS : "${gdk_pixbuf}/share" + --prefix XDG_DATA_DIRS : "${librsvg}/share" + ) + for i in $out/share/applications/*; do + substituteInPlace $i --replace "Exec=gnome-control-center" "Exec=$out/bin/gnome-control-center" + done + ''; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "gnome3.${pname}"; + }; + }; + + meta = with stdenv.lib; { + description = "Utilities to configure the GNOME desktop"; + license = licenses.gpl2Plus; + maintainers = gnome3.maintainers; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-control-center/paths.patch b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-control-center/paths.patch new file mode 100644 index 000000000000..0c11a7626e40 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-control-center/paths.patch @@ -0,0 +1,78 @@ +--- a/panels/color/cc-color-panel.c ++++ b/panels/color/cc-color-panel.c +@@ -599,7 +599,7 @@ + + /* run with modal set */ + argv = g_ptr_array_new_with_free_func (g_free); +- g_ptr_array_add (argv, g_build_filename (BINDIR, "gcm-calibrate", NULL)); ++ g_ptr_array_add (argv, g_build_filename ("@gcm@", "bin", "gcm-calibrate", NULL)); + g_ptr_array_add (argv, g_strdup ("--device")); + g_ptr_array_add (argv, g_strdup (cd_device_get_id (prefs->current_device))); + g_ptr_array_add (argv, g_strdup ("--parent-window")); +@@ -1038,7 +1038,7 @@ + + /* open up gcm-viewer as a info pane */ + argv = g_ptr_array_new_with_free_func (g_free); +- g_ptr_array_add (argv, g_build_filename (BINDIR, "gcm-viewer", NULL)); ++ g_ptr_array_add (argv, g_build_filename ("@gcm@", "bin", "gcm-viewer", NULL)); + g_ptr_array_add (argv, g_strdup ("--profile")); + g_ptr_array_add (argv, g_strdup (cd_profile_get_id (profile))); + g_ptr_array_add (argv, g_strdup ("--parent-window")); +@@ -1288,15 +1288,12 @@ + static void + gcm_prefs_profile_clicked (CcColorPanel *prefs, CdProfile *profile, CdDevice *device) + { +- g_autofree gchar *s = NULL; +- + /* get profile */ + g_debug ("selected profile = %s", + cd_profile_get_filename (profile)); + + /* allow getting profile info */ +- if (cd_profile_get_filename (profile) != NULL && +- (s = g_find_program_in_path ("gcm-viewer")) != NULL) ++ if (cd_profile_get_filename (profile) != NULL) + gtk_widget_set_sensitive (prefs->toolbutton_profile_view, TRUE); + else + gtk_widget_set_sensitive (prefs->toolbutton_profile_view, FALSE); +--- a/panels/datetime/tz.h ++++ b/panels/datetime/tz.h +@@ -27,11 +27,7 @@ + + #include <glib.h> + +-#ifndef __sun +-# define TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab" +-#else +-# define TZ_DATA_FILE "/usr/share/lib/zoneinfo/tab/zone_sun.tab" +-#endif ++#define TZ_DATA_FILE "@tzdata@/share/zoneinfo/zone.tab" + + typedef struct _TzDB TzDB; + typedef struct _TzLocation TzLocation; +--- a/panels/region/cc-region-panel.c ++++ b/panels/region/cc-region-panel.c +@@ -1265,10 +1265,10 @@ + } + + if (variant && variant[0]) +- commandline = g_strdup_printf ("gkbd-keyboard-display -l \"%s\t%s\"", ++ commandline = g_strdup_printf ("@libgnomekbd@/bin/gkbd-keyboard-display -l \"%s\t%s\"", + layout, variant); + else +- commandline = g_strdup_printf ("gkbd-keyboard-display -l %s", ++ commandline = g_strdup_printf ("@libgnomekbd@/bin/gkbd-keyboard-display -l %s", + layout); + + g_spawn_command_line_async (commandline, NULL); +--- a/tests/datetime/test-endianess.c ++++ b/tests/datetime/test-endianess.c +@@ -26,7 +26,7 @@ + g_autoptr(GDir) dir = NULL; + const char *name; + +- dir = g_dir_open ("/usr/share/i18n/locales/", 0, NULL); ++ dir = g_dir_open ("@glibc@/share/i18n/locales/", 0, NULL); + if (dir == NULL) { + /* Try with /usr/share/locale/ + * https://bugzilla.gnome.org/show_bug.cgi?id=646780 */ diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-desktop/bubblewrap-paths.patch b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-desktop/bubblewrap-paths.patch new file mode 100644 index 000000000000..57eb4b3d44a9 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-desktop/bubblewrap-paths.patch @@ -0,0 +1,15 @@ +--- a/libgnome-desktop/gnome-desktop-thumbnail-script.c ++++ b/libgnome-desktop/gnome-desktop-thumbnail-script.c +@@ -536,9 +536,9 @@ add_bwrap (GPtrArray *array, + g_return_val_if_fail (script->s_infile != NULL, FALSE); + + add_args (array, +- "bwrap", +- "--ro-bind", "/usr", "/usr", +- "--ro-bind", "/etc/ld.so.cache", "/etc/ld.so.cache", ++ "@bubblewrap_bin@", ++ "--ro-bind", "@storeDir@", "@storeDir@", ++ "--ro-bind", "/run/current-system", "/run/current-system", + NULL); + + /* These directories might be symlinks into /usr/... */ diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix new file mode 100644 index 000000000000..bac8504eeec9 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix @@ -0,0 +1,59 @@ +{ stdenv, fetchurl, substituteAll, pkgconfig, libxslt, which, libX11, gnome3, gtk3, glib +, gettext, libxml2, xkeyboard_config, isocodes, itstool, wayland, fetchpatch +, libseccomp, bubblewrap, gobject-introspection, gtk-doc, docbook_xsl }: + +stdenv.mkDerivation rec { + name = "gnome-desktop-${version}"; + version = "3.30.2.1"; + + outputs = [ "out" "dev" "devdoc" ]; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-desktop/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "07s95fpfl3kjq51yxbrx6q87w812pq6bl0xdn0zzyi6qvg33m00v"; + }; + + enableParallelBuilding = true; + + nativeBuildInputs = [ + pkgconfig which itstool gettext libxslt libxml2 gobject-introspection + gtk-doc docbook_xsl + ]; + buildInputs = [ + libX11 bubblewrap xkeyboard_config isocodes wayland + gtk3 glib libseccomp + ]; + + propagatedBuildInputs = [ gnome3.gsettings-desktop-schemas ]; + + patches = [ + (substituteAll { + src = ./bubblewrap-paths.patch; + bubblewrap_bin = "${bubblewrap}/bin/bwrap"; + inherit (builtins) storeDir; + }) + (fetchpatch { + name = "fix-missing-font-cache"; + url = https://gitlab.gnome.org/GNOME/gnome-desktop/commit/b87de7495160dbf48f01aa1ddb361fc2556ffd0c.patch; + sha256 = "1aw7lw93kcflmqmbx25cwja25441i8xzvgjm1pfsxvw3vr8j6scb"; + }) + ]; + + configureFlags = [ + "--enable-gtk-doc" + ]; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "gnome-desktop"; + attrPath = "gnome3.gnome-desktop"; + }; + }; + + meta = with stdenv.lib; { + description = "Library with common API for various GNOME modules"; + license = with licenses; [ gpl2 lgpl2 ]; + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix new file mode 100644 index 000000000000..a15d2d7f6e62 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchurl, meson, ninja, pkgconfig, desktop-file-utils, appstream-glib, libxslt +, libxml2, gettext, itstool, wrapGAppsHook, docbook_xsl, docbook_xml_dtd_43 +, gnome3, gtk3, glib }: + +stdenv.mkDerivation rec { + name = "gnome-dictionary-${version}"; + version = "3.26.1"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-dictionary/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "16b8bc248dcf68987826d5e39234b1bb7fd24a2607fcdbf4258fde88f012f300"; + }; + + doCheck = true; + + nativeBuildInputs = [ + meson ninja pkgconfig wrapGAppsHook libxml2 gettext itstool + desktop-file-utils appstream-glib libxslt docbook_xsl docbook_xml_dtd_43 + ]; + buildInputs = [ gtk3 glib gnome3.gsettings-desktop-schemas gnome3.adwaita-icon-theme ]; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "gnome-dictionary"; + attrPath = "gnome3.gnome-dictionary"; + }; + }; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Dictionary; + description = "Dictionary is the GNOME application to look up definitions"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix new file mode 100644 index 000000000000..629dfe0421be --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix @@ -0,0 +1,45 @@ +{ stdenv, gettext, fetchurl, pkgconfig, udisks2, libsecret, libdvdread +, meson, ninja, gtk3, glib, wrapGAppsHook, python3, libnotify +, itstool, gnome3, libxml2 +, libcanberra-gtk3, libxslt, docbook_xsl, libpwquality }: + +stdenv.mkDerivation rec { + name = "gnome-disk-utility-${version}"; + version = "3.30.2"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-disk-utility/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "1365fabz3q7n3bl775z82m1nzg18birxxyd7l2ssbbkqrx3h7wgi"; + }; + + nativeBuildInputs = [ + meson ninja pkgconfig gettext itstool libxslt docbook_xsl + wrapGAppsHook python3 libxml2 + ]; + + buildInputs = [ + gtk3 glib libsecret libpwquality libnotify libdvdread libcanberra-gtk3 + udisks2 gnome3.adwaita-icon-theme + gnome3.gnome-settings-daemon gnome3.gsettings-desktop-schemas + ]; + + postPatch = '' + chmod +x meson_post_install.py # patchShebangs requires executable file + patchShebangs meson_post_install.py + ''; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "gnome-disk-utility"; + attrPath = "gnome3.gnome-disk-utility"; + }; + }; + + meta = with stdenv.lib; { + homepage = https://en.wikipedia.org/wiki/GNOME_Disks; + description = "A udisks graphical front-end"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix new file mode 100644 index 000000000000..3e8f7d3617fb --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix @@ -0,0 +1,35 @@ +{ stdenv, meson, ninja, gettext, fetchurl +, pkgconfig, gtk3, glib, libxml2, gnome-desktop, adwaita-icon-theme +, wrapGAppsHook, gnome3 }: + +stdenv.mkDerivation rec { + name = "gnome-font-viewer-${version}"; + version = "3.30.0"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-font-viewer/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"; + }; + + doCheck = true; + + nativeBuildInputs = [ meson ninja pkgconfig gettext wrapGAppsHook libxml2 ]; + buildInputs = [ gtk3 glib gnome-desktop adwaita-icon-theme ]; + + # Do not run meson-postinstall.sh + preConfigure = "sed -i '2,$ d' meson-postinstall.sh"; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "gnome-font-viewer"; + attrPath = "gnome3.gnome-font-viewer"; + }; + }; + + meta = with stdenv.lib; { + description = "Program that can preview fonts and create thumbnails for fonts"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix new file mode 100644 index 000000000000..a72efc61e2fe --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix @@ -0,0 +1,63 @@ +{ stdenv, fetchurl, pkgconfig, dbus, libgcrypt, pam, python2, glib, libxslt +, gettext, gcr, libcap_ng, libselinux, p11-kit, openssh, wrapGAppsHook +, docbook_xsl, docbook_xml_dtd_43, gnome3 }: + +stdenv.mkDerivation rec { + name = "gnome-keyring-${version}"; + version = "3.28.2"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-keyring/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "0sk4las4ji8wv9nx8mldzqccmpmkvvr9pdwv9imj26r10xyin5w1"; + }; + + outputs = [ "out" "dev" ]; + + buildInputs = [ + glib libgcrypt pam openssh libcap_ng libselinux + gcr p11-kit + ]; + + nativeBuildInputs = [ + pkgconfig gettext libxslt docbook_xsl docbook_xml_dtd_43 wrapGAppsHook + ]; + + configureFlags = [ + "--with-pkcs11-config=${placeholder ''out''}/etc/pkcs11/" # installation directories + "--with-pkcs11-modules=${placeholder ''out''}/lib/pkcs11/" + ]; + + postPatch = '' + patchShebangs build + ''; + + # Tends to fail non-deterministically. + # - https://github.com/NixOS/nixpkgs/issues/55293 + # - https://github.com/NixOS/nixpkgs/issues/51121 + doCheck = false; + + # In 3.20.1, tests do not support Python 3 + checkInputs = [ dbus python2 ]; + + checkPhase = '' + export HOME=$(mktemp -d) + dbus-run-session \ + --config-file=${dbus.daemon}/share/dbus-1/session.conf \ + make check + ''; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "gnome-keyring"; + attrPath = "gnome3.gnome-keyring"; + }; + }; + + meta = with stdenv.lib; { + description = "Collection of components in GNOME that store secrets, passwords, keys, certificates and make them available to applications"; + homepage = https://wiki.gnome.org/Projects/GnomeKeyring; + license = licenses.gpl2; + maintainers = gnome3.maintainers; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix new file mode 100644 index 000000000000..d12e558c276f --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix @@ -0,0 +1,51 @@ +{ stdenv, fetchurl, pkgconfig, vala, glib, libxslt, gtk3, wrapGAppsHook +, webkitgtk, json-glib, librest, libsecret, gtk-doc, gobject-introspection +, gettext, icu, glib-networking +, libsoup, docbook_xsl, docbook_xml_dtd_412, gnome3, gcr, kerberos +}: + +let + pname = "gnome-online-accounts"; + version = "3.30.2"; +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "1p1gdgryziklrgngn6m13xnvfx4gb01h723nndfi9944r24fbiq5"; + }; + + outputs = [ "out" "man" "dev" "devdoc" ]; + + configureFlags = [ + "--enable-media-server" + "--enable-kerberos" + "--enable-lastfm" + "--enable-todoist" + "--enable-gtk-doc" + "--enable-documentation" + ]; + + enableParallelBuilding = true; + + nativeBuildInputs = [ + pkgconfig gobject-introspection vala gettext wrapGAppsHook + libxslt docbook_xsl docbook_xml_dtd_412 gtk-doc + ]; + buildInputs = [ + glib gtk3 webkitgtk json-glib librest libsecret glib-networking icu libsoup + gcr kerberos + ]; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "gnome3.${pname}"; + }; + }; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix new file mode 100644 index 000000000000..ed4c1a3da13a --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchurl, pkgconfig, glib, gnome3, libxml2 +, libgdata, grilo, libzapojit, grilo-plugins, gnome-online-accounts, libmediaart +, tracker, gfbgraph, librest, libsoup, json-glib, gmp, openssl, dleyna-server, wrapGAppsHook }: + +stdenv.mkDerivation rec { + name = "gnome-online-miners-${version}"; + version = "3.30.0"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-online-miners/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "0pjamwwzn5wqgihyss357dyl2q70r0bngnqmwsqawchx5f9aja9c"; + }; + + nativeBuildInputs = [ pkgconfig wrapGAppsHook ]; + buildInputs = [ + glib libgdata libxml2 libsoup gmp openssl + grilo libzapojit grilo-plugins + gnome-online-accounts libmediaart + tracker gfbgraph json-glib librest + dleyna-server + ]; + + enableParallelBuilding = true; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "gnome-online-miners"; + attrPath = "gnome3.gnome-online-miners"; + }; + }; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Projects/GnomeOnlineMiners; + description = "A set of crawlers that go through your online content and index them locally in Tracker"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-remote-desktop/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-remote-desktop/default.nix new file mode 100644 index 000000000000..4a22fc535197 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-remote-desktop/default.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchFromGitLab, meson, ninja, pkgconfig, python3, wrapGAppsHook +, glib, pipewire, systemd, libvncserver, libsecret, libnotify, gdk_pixbuf, gnome3 }: + +stdenv.mkDerivation rec { + pname = "gnome-remote-desktop"; + version = "0.1.7"; + + src = fetchFromGitLab { + domain = "gitlab.gnome.org"; + owner = "jadahl"; + repo = "gnome-remote-desktop"; + rev = version; + sha256 = "0gmazc8ww0lyhx9iclhi982bkpjsnflrzv4qfm3q6hcy0il21fsc"; + }; + + nativeBuildInputs = [ meson ninja pkgconfig python3 wrapGAppsHook ]; + + buildInputs = [ + glib pipewire systemd libvncserver libsecret libnotify + gdk_pixbuf # For libnotify + ]; + + postPatch = '' + chmod +x meson_post_install.py # patchShebangs requires executable file + patchShebangs meson_post_install.py + ''; + + mesonFlags = [ + "-Dsystemd_user_unit_dir=${placeholder "out"}/lib/systemd/user" + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Projects/Mutter/RemoteDesktop; + description = "GNOME Remote Desktop server"; + maintainers = gnome3.maintainers; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix new file mode 100644 index 000000000000..3ce2a4433acd --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix @@ -0,0 +1,43 @@ +{ stdenv, gettext, libxml2, fetchurl, pkgconfig, libcanberra-gtk3 +, gtk3, glib, meson, ninja, python3, wrapGAppsHook, appstream-glib, desktop-file-utils +, gnome3 }: + +let + pname = "gnome-screenshot"; + version = "3.30.0"; +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "06dx3svxq6sar4913mrz5lzb7hmc66wck138vmyxj8x8iv1iw0w8"; + }; + + doCheck = true; + + postPatch = '' + chmod +x build-aux/postinstall.py # patchShebangs requires executable file + patchShebangs build-aux/postinstall.py + ''; + + nativeBuildInputs = [ meson ninja pkgconfig gettext appstream-glib libxml2 desktop-file-utils python3 wrapGAppsHook ]; + buildInputs = [ + gtk3 glib libcanberra-gtk3 gnome3.adwaita-icon-theme + gnome3.gsettings-desktop-schemas + ]; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "${pname}"; + attrPath = "gnome3.${pname}"; + }; + }; + + meta = with stdenv.lib; { + homepage = https://en.wikipedia.org/wiki/GNOME_Screenshot; + description = "Utility used in the GNOME desktop environment for taking screenshots"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/default.nix new file mode 100644 index 000000000000..34921d46b4cd --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/default.nix @@ -0,0 +1,67 @@ +{ fetchurl, stdenv, substituteAll, meson, ninja, pkgconfig, gnome3, glib, gtk3, gsettings-desktop-schemas +, gnome-desktop, dbus, json-glib, libICE, xmlto, docbook_xsl, docbook_xml_dtd_412, python3 +, libxslt, gettext, makeWrapper, systemd, xorg, epoxy, gnugrep, bash }: + +stdenv.mkDerivation rec { + name = "gnome-session-${version}"; + version = "3.30.1"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-session/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "0fbpq103md4g9gi67rxnwvha21629nxx7qazddy6q6494sbqbzpa"; + }; + + patches = [ + (substituteAll { + src = ./fix-paths.patch; + gsettings = "${glib.bin}/bin/gsettings"; + dbusLaunch = "${dbus.lib}/bin/dbus-launch"; + grep = "${gnugrep}/bin/grep"; + bash = "${bash}/bin/bash"; + }) + ]; + + mesonFlags = [ "-Dsystemd=true" ]; + + nativeBuildInputs = [ + meson ninja pkgconfig gettext makeWrapper + xmlto libxslt docbook_xsl docbook_xml_dtd_412 python3 + dbus # for DTD + ]; + + buildInputs = [ + glib gtk3 libICE gnome-desktop json-glib xorg.xtrans gnome3.adwaita-icon-theme + gnome3.gnome-settings-daemon gsettings-desktop-schemas systemd epoxy + ]; + + postPatch = '' + chmod +x meson_post_install.py # patchShebangs requires executable file + patchShebangs meson_post_install.py + ''; + + # `bin/gnome-session` will reset the environment when run in wayland, we + # therefor wrap `libexec/gnome-session-binary` instead which is the actual + # binary needing wrapping + preFixup = '' + wrapProgram "$out/libexec/gnome-session-binary" \ + --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ + --suffix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" \ + --suffix XDG_DATA_DIRS : "${gnome3.gnome-shell}/share"\ + --suffix XDG_CONFIG_DIRS : "${gnome3.gnome-settings-daemon}/etc/xdg" + ''; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "gnome-session"; + attrPath = "gnome3.gnome-session"; + }; + }; + + meta = with stdenv.lib; { + description = "GNOME session manager"; + homepage = https://wiki.gnome.org/Projects/SessionManagement; + license = licenses.gpl2Plus; + maintainers = gnome3.maintainers; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch new file mode 100644 index 000000000000..fe4feaf70857 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch @@ -0,0 +1,38 @@ +--- a/gnome-session/gnome-session.in ++++ b/gnome-session/gnome-session.in +@@ -3,11 +3,11 @@ + if [ "x$XDG_SESSION_TYPE" = "xwayland" ] && + [ "x$XDG_SESSION_CLASS" != "xgreeter" ] && + [ -n "$SHELL" ] && +- grep -q "$SHELL" /etc/shells && +- ! (echo "$SHELL" | grep -q "false") && +- ! (echo "$SHELL" | grep -q "nologin"); then ++ @grep@ -q "$SHELL" /etc/shells && ++ ! (echo "$SHELL" | @grep@ -q "false") && ++ ! (echo "$SHELL" | @grep@ -q "nologin"); then + if [ "$1" != '-l' ]; then +- exec bash -c "exec -l '$SHELL' -c '$0 -l $*'" ++ exec @bash@ -c "exec -l '$SHELL' -c '$0 -l $*'" + else + shift + fi +@@ -13,7 +13,7 @@ + fi + fi + +-SETTING=$(G_MESSAGES_DEBUG= gsettings get org.gnome.system.locale region) ++SETTING=$(G_MESSAGES_DEBUG= @gsettings@ get org.gnome.system.locale region) + REGION=${SETTING#\'} + REGION=${REGION%\'} + +--- a/gnome-session/main.c ++++ b/gnome-session/main.c +@@ -203,7 +203,7 @@ + } + new_argv[i + 2] = NULL; + +- if (!execvp ("dbus-launch", new_argv)) { ++ if (!execvp ("@dbusLaunch@", new_argv)) { + g_set_error (error, + G_SPAWN_ERROR, + G_SPAWN_ERROR_FAILED, diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix new file mode 100644 index 000000000000..7a2271e128de --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix @@ -0,0 +1,54 @@ +{ fetchurl, substituteAll, stdenv, meson, ninja, pkgconfig, gnome3, perl, gettext, gtk3, glib, libnotify, lcms2, libXtst +, libxkbfile, libpulseaudio, alsaLib, libcanberra-gtk3, upower, colord, libgweather, polkit, gsettings-desktop-schemas +, geoclue2, librsvg, xf86_input_wacom, udev, libgudev, libwacom, libxslt, libxml2, networkmanager +, gnome-desktop, geocode-glib, docbook_xsl, wrapGAppsHook, python3, ibus, xkeyboard_config, tzdata, nss }: + +stdenv.mkDerivation rec { + name = "gnome-settings-daemon-${version}"; + version = "3.30.2"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-settings-daemon/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "0c663csa3gnsr6wm0xfll6aani45snkdj7zjwjfzcwfh8w4a3z12"; + }; + + patches = [ + (substituteAll { + src = ./fix-paths.patch; + inherit tzdata; + }) + ]; + + nativeBuildInputs = [ meson ninja pkgconfig perl gettext libxml2 libxslt docbook_xsl wrapGAppsHook python3 ]; + + buildInputs = [ + ibus gtk3 glib gsettings-desktop-schemas networkmanager + libnotify gnome-desktop lcms2 libXtst libxkbfile libpulseaudio alsaLib + libcanberra-gtk3 upower colord libgweather xkeyboard_config nss + polkit geocode-glib geoclue2 librsvg xf86_input_wacom udev libgudev libwacom + ]; + + mesonFlags = [ + "-Dudev_dir=${placeholder "out"}/lib/udev" + ]; + + postPatch = '' + for f in gnome-settings-daemon/codegen.py plugins/power/gsd-power-constants-update.pl meson_post_install.py; do + chmod +x $f + patchShebangs $f + done + ''; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "gnome-settings-daemon"; + attrPath = "gnome3.gnome-settings-daemon"; + }; + }; + + meta = with stdenv.lib; { + license = licenses.gpl2Plus; + maintainers = gnome3.maintainers; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-settings-daemon/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-settings-daemon/fix-paths.patch new file mode 100644 index 000000000000..2229302cab7c --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-settings-daemon/fix-paths.patch @@ -0,0 +1,15 @@ +--- a/plugins/datetime/tz.h ++++ b/plugins/datetime/tz.h +@@ -27,11 +27,7 @@ + + #include <glib.h> + +-#ifndef __sun +-# define TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab" +-#else +-# define TZ_DATA_FILE "/usr/share/lib/zoneinfo/tab/zone_sun.tab" +-#endif ++#define TZ_DATA_FILE "@tzdata@/share/zoneinfo/zone.tab" + + typedef struct _TzDB TzDB; + typedef struct _TzLocation TzLocation; diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix new file mode 100644 index 000000000000..ec6d1af015a5 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix @@ -0,0 +1,65 @@ +{ stdenv, fetchurl, meson, ninja, gettext, pkgconfig, spidermonkey_52, glib +, gnome3, gnome-menus, substituteAll }: + +stdenv.mkDerivation rec { + name = "gnome-shell-extensions-${version}"; + version = "3.30.1"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-shell-extensions/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "1grxn4f5x754r172wmnf0h0xpy69afmj359zsj1rwgqlzw4i4c5p"; + }; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "gnome-shell-extensions"; + attrPath = "gnome3.gnome-shell-extensions"; + }; + }; + + patches = [ + (substituteAll { + src = ./fix_gmenu.patch; + gmenu_path = "${gnome-menus}/lib/girepository-1.0"; + }) + ]; + + doCheck = true; + # 52 is required for tests + # https://gitlab.gnome.org/GNOME/gnome-shell-extensions/blob/3.30.1/meson.build#L25 + checkInputs = [ spidermonkey_52 ]; + + nativeBuildInputs = [ meson ninja pkgconfig gettext glib ]; + + mesonFlags = [ "-Dextension_set=all" ]; + + preFixup = '' + # The meson build doesn't compile the schemas. + # Fixup adapted from export-zips.sh in the source. + + extensiondir=$out/share/gnome-shell/extensions + schemadir=$out/share/gsettings-schemas/${name}/glib-2.0/schemas/ + + glib-compile-schemas $schemadir + + for f in $extensiondir/*; do + name=`basename ''${f%%@*}` + uuid=$name@gnome-shell-extensions.gcampax.github.com + schema=$schemadir/org.gnome.shell.extensions.$name.gschema.xml + + if [ -f $schema ]; then + mkdir $f/schemas + ln -s $schema $f/schemas; + glib-compile-schemas $f/schemas + fi + done + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Projects/GnomeShell/Extensions; + description = "Modify and extend GNOME Shell functionality and behavior"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell-extensions/fix_gmenu.patch b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell-extensions/fix_gmenu.patch new file mode 100644 index 000000000000..c384826de617 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell-extensions/fix_gmenu.patch @@ -0,0 +1,24 @@ +From f72924a59d4a30daefccf84526bd854ebbe65ac8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Tor=20Hedin=20Br=C3=B8nner?= <torhedinbronner@gmail.com> +Date: Tue, 3 Apr 2018 14:13:12 +0200 +Subject: [PATCH] Fix gmenu typelib path + +--- + extensions/apps-menu/extension.js | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/extensions/apps-menu/extension.js b/extensions/apps-menu/extension.js +index 5b38213..d706f64 100644 +--- a/extensions/apps-menu/extension.js ++++ b/extensions/apps-menu/extension.js +@@ -1,5 +1,7 @@ + /* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */ + ++imports.gi.GIRepository.Repository.prepend_search_path('@gmenu_path@'); ++ + const Atk = imports.gi.Atk; + const DND = imports.ui.dnd; + const GMenu = imports.gi.GMenu; +-- +2.16.2 + diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix new file mode 100644 index 000000000000..693a3bec4868 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix @@ -0,0 +1,99 @@ +{ fetchurl, fetchpatch, substituteAll, stdenv, meson, ninja, pkgconfig, gnome3, json-glib, libcroco, gettext, libsecret +, python3Packages, libsoup, polkit, clutter, networkmanager, docbook_xsl , docbook_xsl_ns, at-spi2-core +, libstartup_notification, telepathy-glib, telepathy-logger, libXtst, unzip, glibcLocales, shared-mime-info +, libgweather, libcanberra-gtk3, librsvg, geoclue2, perl, docbook_xml_dtd_42, desktop-file-utils +, libpulseaudio, libical, gobject-introspection, gstreamer, wrapGAppsHook, libxslt, gcr, caribou +, accountsservice, gdk_pixbuf, gdm, upower, ibus, networkmanagerapplet, libgnomekbd, gnome-desktop +, gsettings-desktop-schemas, gnome-keyring, glib, gjs, mutter, evolution-data-server, gtk3 +, sassc, systemd, gst_all_1, adwaita-icon-theme, gnome-bluetooth, gnome-clocks, gnome-settings-daemon }: + +# http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/gnome-shell-3.10.2.1.ebuild?revision=1.3&view=markup + +let + pythonEnv = python3Packages.python.withPackages ( ps: with ps; [ pygobject3 ] ); + +in stdenv.mkDerivation rec { + name = "gnome-shell-${version}"; + version = "3.30.2"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-shell/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "0kacd4w9lc5finsvs170i7827qkxwd1ddj0g2giizwffpjdjqqr2"; + }; + + LANG = "en_US.UTF-8"; + + nativeBuildInputs = [ + meson ninja pkgconfig gettext docbook_xsl docbook_xsl_ns docbook_xml_dtd_42 perl wrapGAppsHook glibcLocales + sassc desktop-file-utils libxslt.bin + ]; + buildInputs = [ + systemd caribou + gsettings-desktop-schemas gnome-keyring glib gcr json-glib accountsservice + libcroco libsecret libsoup polkit gdk_pixbuf librsvg + clutter networkmanager libstartup_notification telepathy-glib + libXtst gjs mutter libpulseaudio evolution-data-server + libical gtk3 gstreamer gdm libcanberra-gtk3 geoclue2 + adwaita-icon-theme gnome-bluetooth + gnome-clocks # schemas needed + at-spi2-core upower ibus gnome-desktop telepathy-logger gnome-settings-daemon + gst_all_1.gst-plugins-good # recording + gobject-introspection + + # not declared at build time, but typelib is needed at runtime + libgweather networkmanagerapplet + ]; + propagatedUserEnvPkgs = [ + # Needed to support on-screen keyboard used with touch screen devices + # see https://github.com/NixOS/nixpkgs/issues/25968 + caribou + ]; + + patches = [ + (fetchpatch { + name = "0001-build-Add-missing-dependency-to-run-js-test.patch"; + url = https://bug787864.bugzilla-attachments.gnome.org/attachment.cgi?id=360016; + sha256 = "1dmahd8ysbzh33rxglba0fbq127aw9h14cl2a2bw9913vjxhxijm"; + }) + (substituteAll { + src = ./fix-paths.patch; + inherit libgnomekbd unzip; + }) + ]; + + postPatch = '' + patchShebangs src/data-to-c.pl + + substituteInPlace src/gnome-shell-extension-tool.in --replace "@PYTHON@" "${pythonEnv}/bin/python" + substituteInPlace src/gnome-shell-perf-tool.in --replace "@PYTHON@" "${pythonEnv}/bin/python" + ''; + + postInstall = '' + glib-compile-schemas $out/share/glib-2.0/schemas + ''; + + preFixup = '' + gappsWrapperArgs+=( + # Until glib’s xdgmime is patched + # Fixes “Failed to load resource:///org/gnome/shell/theme/noise-texture.png: Unrecognized image file format” + --prefix XDG_DATA_DIRS : "${shared-mime-info}/share" + ) + ''; + + passthru = { + mozillaPlugin = "/lib/mozilla/plugins"; + updateScript = gnome3.updateScript { + packageName = "gnome-shell"; + attrPath = "gnome3.gnome-shell"; + }; + }; + + meta = with stdenv.lib; { + description = "Core user interface for the GNOME 3 desktop"; + homepage = https://wiki.gnome.org/Projects/GnomeShell; + license = licenses.gpl2Plus; + maintainers = gnome3.maintainers; + platforms = platforms.linux; + }; + +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch new file mode 100644 index 000000000000..32a0cc476da0 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch @@ -0,0 +1,22 @@ +--- a/js/ui/extensionDownloader.js ++++ b/js/ui/extensionDownloader.js +@@ -86,7 +86,7 @@ + stream.output_stream.write_bytes(contents, null); + stream.close(null); + let [success, pid] = GLib.spawn_async(null, +- ['unzip', '-uod', dir.get_path(), '--', file.get_path()], ++ ['@unzip@/bin/unzip', '-uod', dir.get_path(), '--', file.get_path()], + null, + GLib.SpawnFlags.SEARCH_PATH | GLib.SpawnFlags.DO_NOT_REAP_CHILD, + null); +--- a/js/ui/status/keyboard.js ++++ b/js/ui/status/keyboard.js +@@ -1019,7 +1019,7 @@ + if (xkbVariant.length > 0) + description = description + '\t' + xkbVariant; + +- Util.spawn(['gkbd-keyboard-display', '-l', description]); ++ Util.spawn(['@libgnomekbd@/bin/gkbd-keyboard-display', '-l', description]); + }, + + _containerGetPreferredWidth: function(container, for_height, alloc) { diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-software/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-software/default.nix new file mode 100644 index 000000000000..cab777f4febe --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-software/default.nix @@ -0,0 +1,53 @@ +{ stdenv, fetchurl, substituteAll, pkgconfig, meson, ninja, gettext, gnome3, wrapGAppsHook, packagekit, ostree +, glib, appstream-glib, libsoup, polkit, isocodes, gspell, libxslt, gobject-introspection, flatpak, fwupd +, gtk3, gsettings-desktop-schemas, gnome-desktop +, json-glib, libsecret, valgrind-light, docbook_xsl, docbook_xml_dtd_42, docbook_xml_dtd_43, gtk-doc, desktop-file-utils }: + +stdenv.mkDerivation rec { + name = "gnome-software-${version}"; + version = "3.30.6"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-software/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "00lh1ifgcs888i0774qdz2pzd5vnzcc5kvx20lcmgk37vvf0qqsl"; + }; + + patches = [ + (substituteAll { + src = ./fix-paths.patch; + inherit isocodes; + }) + ]; + + nativeBuildInputs = [ + meson ninja pkgconfig gettext wrapGAppsHook libxslt docbook_xml_dtd_42 docbook_xml_dtd_43 + valgrind-light docbook_xsl gtk-doc desktop-file-utils gobject-introspection + ]; + + buildInputs = [ + gtk3 glib packagekit appstream-glib libsoup + gsettings-desktop-schemas gnome-desktop + gspell json-glib libsecret ostree + polkit flatpak fwupd + ]; + + mesonFlags = [ + "-Dubuntu_reviews=false" + "-Dgudev=false" + ]; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "gnome-software"; + attrPath = "gnome3.gnome-software"; + }; + }; + + meta = with stdenv.lib; { + description = "Software store that lets you install and update applications and system extensions"; + homepage = https://wiki.gnome.org/Apps/Software; + license = licenses.gpl2; + maintainers = gnome3.maintainers; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-software/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-software/fix-paths.patch new file mode 100644 index 000000000000..6f443a8a43ed --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-software/fix-paths.patch @@ -0,0 +1,11 @@ +--- a/src/gs-language.c ++++ b/src/gs-language.c +@@ -95,7 +95,7 @@ + g_autoptr(GMarkupParseContext) context = NULL; + + /* find filename */ +- filename = g_build_filename (DATADIR, "xml", "iso-codes", "iso_639.xml", NULL); ++ filename = g_build_filename ("@isocodes@", "share", "xml", "iso-codes", "iso_639.xml", NULL); + if (!g_file_test (filename, G_FILE_TEST_EXISTS)) { + g_free (filename); + filename = g_build_filename ("/usr", "share", "xml", "iso-codes", "iso_639.xml", NULL); diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix new file mode 100644 index 000000000000..4b02411b4863 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix @@ -0,0 +1,45 @@ +{ stdenv, gettext, fetchurl, pkgconfig, gtkmm3, libxml2, polkit +, bash, gtk3, glib, wrapGAppsHook, meson, ninja, python3 +, itstool, gnome3, librsvg, gdk_pixbuf, libgtop, systemd }: + +stdenv.mkDerivation rec { + name = "gnome-system-monitor-${version}"; + version = "3.30.0"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-system-monitor/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "0g0y565bjs6bdszrnxsz1f7hcm1x59i3mfvplysirh7nz3hpz888"; + }; + + doCheck = true; + + nativeBuildInputs = [ + pkgconfig gettext itstool wrapGAppsHook meson ninja python3 + polkit # for ITS file + ]; + buildInputs = [ + bash gtk3 glib libxml2 gtkmm3 libgtop gdk_pixbuf gnome3.adwaita-icon-theme librsvg + gnome3.gsettings-desktop-schemas systemd + ]; + + postPatch = '' + chmod +x meson_post_install.py # patchShebangs requires executable file + patchShebangs meson_post_install.py + sed -i '/gtk-update-icon-cache/s/^/#/' meson_post_install.py + ''; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "gnome-system-monitor"; + attrPath = "gnome3.gnome-system-monitor"; + }; + }; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/SystemMonitor; + description = "System Monitor shows you what programs are running and how much processor time, memory, and disk space are being used"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix new file mode 100644 index 000000000000..6bde15ba762e --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix @@ -0,0 +1,50 @@ +{ stdenv, fetchurl, pkgconfig, libxml2, gnome3, dconf, nautilus +, gtk3, gsettings-desktop-schemas, vte, intltool, which, libuuid, vala +, desktop-file-utils, itstool, wrapGAppsHook }: + +stdenv.mkDerivation rec { + name = "gnome-terminal-${version}"; + version = "3.30.2"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-terminal/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "0f2y76gs72sw5l5lkkkvxzsvvwm0sg83h7nl8lk5kz1v1rrc47vb"; + }; + + buildInputs = [ + gtk3 gsettings-desktop-schemas vte libuuid dconf + # For extension + nautilus + ]; + + nativeBuildInputs = [ + pkgconfig intltool itstool which libxml2 + vala desktop-file-utils wrapGAppsHook + ]; + + # Silly ./configure, it looks for dbus file from gnome-shell in the + # installation tree of the package it is configuring. + postPatch = '' + substituteInPlace configure --replace '$(eval echo $(eval echo $(eval echo ''${dbusinterfacedir})))/org.gnome.ShellSearchProvider2.xml' "${gnome3.gnome-shell}/share/dbus-1/interfaces/org.gnome.ShellSearchProvider2.xml" + substituteInPlace src/Makefile.in --replace '$(dbusinterfacedir)/org.gnome.ShellSearchProvider2.xml' "${gnome3.gnome-shell}/share/dbus-1/interfaces/org.gnome.ShellSearchProvider2.xml" + ''; + + configureFlags = [ "--disable-migration" ]; # TODO: remove this with 3.30 + + passthru = { + updateScript = gnome3.updateScript { + packageName = "gnome-terminal"; + attrPath = "gnome3.gnome-terminal"; + }; + }; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + description = "The GNOME Terminal Emulator"; + homepage = https://wiki.gnome.org/Apps/Terminal; + platforms = platforms.linux; + license = licenses.gpl3Plus; + maintainers = gnome3.maintainers; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-themes-extra/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-themes-extra/default.nix new file mode 100644 index 000000000000..3d5cfb85d671 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-themes-extra/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchurl, intltool, gtk3, gnome3, librsvg, pkgconfig, pango, atk, gtk2 +, gdk_pixbuf }: + +let + pname = "gnome-themes-extra"; + version = "3.28"; +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"; + }; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + }; + }; + + nativeBuildInputs = [ pkgconfig intltool ]; + buildInputs = [ gtk3 librsvg pango atk gtk2 gdk_pixbuf gnome3.adwaita-icon-theme ]; + + postFixup = '' + gtk-update-icon-cache "$out"/share/icons/HighContrast + ''; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix new file mode 100644 index 000000000000..7062dbafce8a --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, itstool, libxml2, intltool }: + +stdenv.mkDerivation rec { + name = "gnome-user-docs-${version}"; + version = "3.30.2"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-user-docs/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "1pgsrvd79rqxa183wsmzh422y2zsg7fl5hskgc0s87jsc8b57fkg"; + }; + + passthru = { + updateScript = gnome3.updateScript { packageName = "gnome-user-docs"; attrPath = "gnome3.gnome-user-docs"; }; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ gnome3.yelp itstool libxml2 intltool ]; + + meta = with stdenv.lib; { + homepage = https://help.gnome.org/users/gnome-help/; + description = "User and system administration help for the GNOME desktop"; + maintainers = gnome3.maintainers; + license = licenses.cc-by-30; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix new file mode 100644 index 000000000000..134ba41d6534 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix @@ -0,0 +1,56 @@ +{ stdenv, intltool, fetchurl, apacheHttpd, nautilus +, pkgconfig, gtk3, glib, libxml2, systemd, adwaita-icon-theme +, wrapGAppsHook, itstool, libnotify, libtool, mod_dnssd +, gnome3, librsvg, gdk_pixbuf, file, libcanberra-gtk3 }: + +stdenv.mkDerivation rec { + name = "gnome-user-share-${version}"; + version = "3.28.0"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-user-share/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "04wjnrcdlmyszj582nsda32sgi44nwgrw2ksy11xp17nb09d7m09"; + }; + + passthru = { + updateScript = gnome3.updateScript { packageName = "gnome-user-share"; attrPath = "gnome3.gnome-user-share"; }; + }; + + doCheck = true; + + NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0"; + + 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 + ''; + + configureFlags = [ + "--with-httpd=${apacheHttpd.out}/bin/httpd" + "--with-modules-path=${apacheHttpd.dev}/modules" + "--with-systemduserunitdir=$(out)/etc/systemd/user" + "--with-nautilusdir=$(out)/lib/nautilus/extensions-3.0" + ]; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ + gtk3 glib intltool itstool libxml2 libtool + wrapGAppsHook file gdk_pixbuf adwaita-icon-theme librsvg + nautilus libnotify libcanberra-gtk3 systemd + ]; + + postInstall = '' + mkdir -p $out/share/gsettings-schemas/$name + mv $out/share/glib-2.0 $out/share/gsettings-schemas/$name + glib-compile-schemas "$out/share/gsettings-schemas/$name/glib-2.0/schemas" + ''; + + meta = with stdenv.lib; { + homepage = https://help.gnome.org/users/gnome-user-share/3.8; + description = "Service that exports the contents of the Public folder in your home directory on the local network"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/grilo-plugins/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/grilo-plugins/default.nix new file mode 100644 index 000000000000..02e0c29fdaa7 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/grilo-plugins/default.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchurl, meson, ninja, pkgconfig, gettext, sqlite, librest +, gnome3, libxml2, gupnp, gssdp, lua5, liboauth, gupnp-av, libgdata, libmediaart +, gmime, json-glib, avahi, tracker, dleyna-server, itstool, totem-pl-parser }: + +let + pname = "grilo-plugins"; + version = "0.3.8"; +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "0nync07gah3jkpb5ph5d3gwbygmabnih2m3hfz7lkvjl2l5pgpac"; + }; + + nativeBuildInputs = [ meson ninja pkgconfig gettext itstool ]; + buildInputs = [ + gnome3.grilo libxml2 gupnp gssdp libgdata + lua5 liboauth gupnp-av sqlite gnome3.gnome-online-accounts + totem-pl-parser librest gmime json-glib + avahi libmediaart tracker dleyna-server + ]; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "gnome3.${pname}"; + versionPolicy = "none"; + }; + }; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Projects/Grilo; + description = "A collection of plugins for the Grilo framework"; + maintainers = gnome3.maintainers; + license = licenses.lgpl21; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/grilo/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/grilo/default.nix new file mode 100644 index 000000000000..a2bee6ac41ee --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/grilo/default.nix @@ -0,0 +1,54 @@ +{ stdenv, fetchurl, meson, ninja, pkgconfig, gettext, vala, glib, liboauth, gtk3 +, gtk-doc, docbook_xsl, docbook_xml_dtd_43 +, libxml2, gnome3, gobject-introspection, libsoup, totem-pl-parser }: + +let + pname = "grilo"; + version = "0.3.7"; # if you change minor, also change ./setup-hook.sh +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + + outputs = [ "out" "dev" "man" "devdoc" ]; + outputBin = "dev"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "1dz965l743r4bhj78wij9k1mb6635gnkb1lnk9j7gw9dd5qsyfza"; + }; + + patches = [ + # Fix meson build: https://gitlab.gnome.org/GNOME/grilo/merge_requests/34 + (fetchurl { + url = "https://gitlab.gnome.org/GNOME/grilo/commit/166612aeff09e5fc2fec1f62185c84cbdcf8f889.diff"; + sha256 = "07zamy927iaa7knrwq5yxz7ypl1i02pymkcdrg5l55alhdvb81pw"; + }) + ]; + + setupHook = ./setup-hook.sh; + + mesonFlags = [ + "-Dgtk_doc=true" + ]; + + nativeBuildInputs = [ + meson ninja pkgconfig gettext gobject-introspection vala + gtk-doc docbook_xsl docbook_xml_dtd_43 + ]; + buildInputs = [ glib liboauth gtk3 libxml2 libsoup totem-pl-parser ]; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "gnome3.${pname}"; + versionPolicy = "none"; + }; + }; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Projects/Grilo; + description = "Framework that provides access to various sources of multimedia content, using a pluggable system"; + maintainers = gnome3.maintainers; + license = licenses.lgpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/grilo/setup-hook.sh b/nixpkgs/pkgs/desktops/gnome-3/core/grilo/setup-hook.sh new file mode 100644 index 000000000000..9337c520a207 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/grilo/setup-hook.sh @@ -0,0 +1,7 @@ +make_grilo_find_plugins() { + if [ -d "$1"/lib/grilo-0.3 ]; then + addToSearchPath GRL_PLUGIN_PATH "$1/lib/grilo-0.3" + fi +} + +addEnvHooks "$hostOffset" make_grilo_find_plugins diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix new file mode 100644 index 000000000000..dad0c8850b22 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchurl, pkgconfig, intltool, glib, gobject-introspection + # just for passthru +, gnome3 }: + +stdenv.mkDerivation rec { + name = "gsettings-desktop-schemas-${version}"; + version = "3.28.1"; + + src = fetchurl { + url = "mirror://gnome/sources/gsettings-desktop-schemas/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "0bshwm49cd01ighsxqlbqn10q0ch71ff99gcrx8pr2gyky2ad3pq"; + }; + + passthru = { + updateScript = gnome3.updateScript { packageName = "gsettings-desktop-schemas"; }; + }; + + preInstall = '' + mkdir -p $out/share/gsettings-schemas/${name}/glib-2.0/schemas + cat - > $out/share/gsettings-schemas/${name}/glib-2.0/schemas/remove-backgrounds.gschema.override <<- EOF + [org.gnome.desktop.background] + picture-uri=''' + + [org.gnome.desktop.screensaver] + picture-uri=''' + EOF + ''; + + buildInputs = [ glib gobject-introspection ]; + + nativeBuildInputs = [ pkgconfig intltool ]; + + meta = with stdenv.lib; { + maintainers = gnome3.maintainers; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gucharmap/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gucharmap/default.nix new file mode 100644 index 000000000000..2b7794a9a8ef --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gucharmap/default.nix @@ -0,0 +1,59 @@ +{ stdenv, intltool, fetchFromGitLab, fetchpatch, pkgconfig, gtk3, adwaita-icon-theme +, glib, desktop-file-utils, gtk-doc, autoconf, automake, libtool +, wrapGAppsHook, gnome3, itstool, libxml2, yelp-tools +, docbook_xsl, docbook_xml_dtd_412, gsettings-desktop-schemas +, callPackage, unzip, gobject-introspection }: + +let + unicode-data = callPackage ./unicode-data.nix {}; +in stdenv.mkDerivation rec { + name = "gucharmap-${version}"; + version = "11.0.3"; + + outputs = [ "out" "lib" "dev" "devdoc" ]; + + src = fetchFromGitLab { + domain = "gitlab.gnome.org"; + owner = "GNOME"; + repo = "gucharmap"; + rev = version; + sha256 = "1a590nxy8jdf6zxh6jdsyvhxyaz94ixx3aa1pj7gicf1aqp26vnh"; + }; + + nativeBuildInputs = [ + pkgconfig wrapGAppsHook unzip intltool itstool + autoconf automake libtool gtk-doc docbook_xsl docbook_xml_dtd_412 + yelp-tools libxml2 desktop-file-utils gobject-introspection + ]; + + buildInputs = [ gtk3 glib gsettings-desktop-schemas adwaita-icon-theme ]; + + configureFlags = [ + "--with-unicode-data=${unicode-data}" + "--enable-gtk-doc" + ]; + + doCheck = true; + + postPatch = '' + patchShebangs gucharmap/gen-guch-unicode-tables.pl + ''; + + preConfigure = '' + NOCONFIGURE=1 ./autogen.sh + ''; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "gucharmap"; + }; + }; + + meta = with stdenv.lib; { + description = "GNOME Character Map, based on the Unicode Character Database"; + homepage = https://wiki.gnome.org/Apps/Gucharmap; + license = licenses.gpl3; + maintainers = gnome3.maintainers; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gucharmap/unicode-data.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gucharmap/unicode-data.nix new file mode 100644 index 000000000000..6bf2fd39a2d3 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/gucharmap/unicode-data.nix @@ -0,0 +1,45 @@ +{ fetchurl, stdenv, gnome3 }: +stdenv.mkDerivation rec { + name = "unicode-data-${version}"; + version = "11.0.0"; + srcs = [ + (fetchurl { + url = "http://www.unicode.org/Public/${version}/ucd/Blocks.txt"; + sha256 = "0lnh9iazikpr548bd7nkaq9r3vfljfvz0rg2462prac8qxk7ni8b"; + }) + (fetchurl { + url = "http://www.unicode.org/Public/${version}/ucd/DerivedAge.txt"; + sha256 = "0rlqqd0b1sqbzvrj29dwdizx8lyvrbfirsnn8za9lb53x5fml4gb"; + }) + (fetchurl { + url = "http://www.unicode.org/Public/${version}/ucd/NamesList.txt"; + sha256 = "0yr2h0nfqhirfi3bxl33z6cc94qqshlpgi06c25xh9754irqsgv8"; + }) + (fetchurl { + url = "http://www.unicode.org/Public/${version}/ucd/Scripts.txt"; + sha256 = "1mbnvf97nwa3pvyzx9nd2wa94f8s0npg9740kic2p2ag7jmc1wz9"; + }) + (fetchurl { + url = "http://www.unicode.org/Public/${version}/ucd/UnicodeData.txt"; + sha256 = "16b0jzvvzarnlxdvs2izd5ia0ipbd87md143dc6lv6xpdqcs75s9"; + }) + (fetchurl { + url = "http://www.unicode.org/Public/${version}/ucd/Unihan.zip"; + sha256 = "0cy8gxb17ksi5h4ysypk4c09z61am1svjrvg97hm5m5ccjfrs1vj"; + }) + ]; + phases = "installPhase"; + installPhase = with stdenv.lib; '' + mkdir $out + for f in $srcs;do + cp $f $out/$(stripHash $f) + done + ''; + meta = with stdenv.lib; { + homepage = http://www.unicode.org/ucd/; + description = "Unicode Character Database"; + maintainers = gnome3.maintainers; + license = licenses.mit; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix new file mode 100644 index 000000000000..bc0f5683a75f --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchurl, glib, dbus, libgcrypt, pkgconfig, intltool, gobject-introspection, gnome3 }: + +let + pname = "libgnome-keyring"; + version = "3.12.0"; +in +stdenv.mkDerivation rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "c4c178fbb05f72acc484d22ddb0568f7532c409b0a13e06513ff54b91e947783"; + }; + + outputs = [ "out" "dev" ]; + + propagatedBuildInputs = [ glib gobject-introspection dbus libgcrypt ]; + nativeBuildInputs = [ pkgconfig intltool ]; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "gnome3.${pname}"; + }; + }; + + meta = { + description = "Framework for managing passwords and other secrets"; + homepage = https://wiki.gnome.org/Projects/GnomeKeyring; + license = with stdenv.lib.licenses; [ gpl2Plus lgpl2Plus ]; + inherit (glib.meta) platforms maintainers; + + longDescription = '' + gnome-keyring is a program that keeps password and other secrets for + users. The library libgnome-keyring is used by applications to integrate + with the gnome-keyring system. + ''; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.28.nix b/nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.28.nix new file mode 100644 index 000000000000..2988dd1b47e2 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.28.nix @@ -0,0 +1,56 @@ +{ fetchurl, stdenv, fetchpatch, pkgconfig, gnome3, intltool, gobject-introspection, upower, cairo +, glib, gtk3, pango, cogl, clutter, libstartup_notification, zenity, libcanberra-gtk3 +, gsettings-desktop-schemas, gnome-desktop +, libtool, makeWrapper, xkeyboard_config, libxkbfile, libxkbcommon, libXtst, libinput +, geocode-glib, pipewire, libgudev, libwacom, xwayland, autoreconfHook }: + +stdenv.mkDerivation rec { + name = "mutter-${version}"; + version = "3.28.3"; + + src = fetchurl { + url = "mirror://gnome/sources/mutter/3.28/${name}.tar.xz"; + sha256 = "0vq3rmq20d6b1mi6sf67wkzqys6hw5j7n7fd4hndcp19d5i26149"; + }; + + configureFlags = [ + "--with-x" + "--disable-static" + "--enable-shape" + "--enable-sm" + "--enable-startup-notification" + "--enable-xsync" + "--enable-verbose-mode" + "--with-libcanberra" + "--with-xwayland-path=${xwayland}/bin/Xwayland" + "--enable-compile-warnings=maximum" + ]; + + propagatedBuildInputs = [ + # required for pkgconfig to detect mutter-clutter + libXtst + ]; + + nativeBuildInputs = [ autoreconfHook pkgconfig intltool libtool makeWrapper ]; + + buildInputs = [ + glib gobject-introspection gtk3 gsettings-desktop-schemas upower + gnome-desktop cairo pango cogl clutter zenity libstartup_notification + geocode-glib libinput libgudev libwacom + libcanberra-gtk3 zenity xkeyboard_config libxkbfile + libxkbcommon pipewire + ]; + + preFixup = '' + wrapProgram "$out/bin/mutter" \ + --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" + ''; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/mutter/default.nix new file mode 100644 index 000000000000..518b0ec1c48c --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/mutter/default.nix @@ -0,0 +1,73 @@ +{ fetchurl, fetchpatch, stdenv, pkgconfig, gnome3, intltool, gobject-introspection, upower, cairo +, pango, cogl, clutter, libstartup_notification, zenity, libcanberra-gtk3 +, libtool, makeWrapper, xkeyboard_config, libxkbfile, libxkbcommon, libXtst, libinput +, gsettings-desktop-schemas, glib, gtk3, gnome-desktop +, geocode-glib, pipewire, libgudev, libwacom, xwayland, autoreconfHook }: + +stdenv.mkDerivation rec { + name = "mutter-${version}"; + version = "3.30.2"; + + src = fetchurl { + url = "mirror://gnome/sources/mutter/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "0qr3w480p31nbiad49213rj9rk6p9fl82a68pzznpz36p30dq96z"; + }; + + patches = [ + # https://gitlab.gnome.org/GNOME/mutter/issues/270 + # Fixes direction of the desktop switching animation when using workspace + # grid extension with desktops arranged horizontally. + (fetchpatch { + url = https://gitlab.gnome.org/GNOME/mutter/commit/92cccf53dfe9e077f1d61ac4f896fd391f8cb689.patch; + sha256 = "11vmypypjss50xg7hhdbqrxvgqlxx4lnwy59089qsfl3akg4kk2i"; + }) + ]; + + configureFlags = [ + "--with-x" + "--disable-static" + "--enable-remote-desktop" + "--enable-shape" + "--enable-sm" + "--enable-startup-notification" + "--enable-xsync" + "--enable-verbose-mode" + "--with-libcanberra" + "--with-xwayland-path=${xwayland}/bin/Xwayland" + ]; + + propagatedBuildInputs = [ + # required for pkgconfig to detect mutter-clutter + libXtst + ]; + + nativeBuildInputs = [ autoreconfHook pkgconfig intltool libtool makeWrapper ]; + + buildInputs = [ + glib gobject-introspection gtk3 gsettings-desktop-schemas upower + gnome-desktop cairo pango cogl clutter zenity libstartup_notification + geocode-glib libinput libgudev libwacom + libcanberra-gtk3 zenity xkeyboard_config libxkbfile + libxkbcommon pipewire + ]; + + preFixup = '' + wrapProgram "$out/bin/mutter" \ + --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" + ''; + + enableParallelBuilding = true; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "mutter"; + attrPath = "gnome3.mutter"; + }; + }; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/nautilus/bubblewrap-paths.patch b/nixpkgs/pkgs/desktops/gnome-3/core/nautilus/bubblewrap-paths.patch new file mode 100644 index 000000000000..e3ad75b869c8 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/nautilus/bubblewrap-paths.patch @@ -0,0 +1,20 @@ +--- a/src/gnome-desktop/gnome-desktop-thumbnail-script.c ++++ a/src/gnome-desktop/gnome-desktop-thumbnail-script.c +@@ -514,14 +514,11 @@ add_bwrap (GPtrArray *array, + g_return_val_if_fail (script->s_infile != NULL, FALSE); + + add_args (array, +- "bwrap", +- "--ro-bind", "/usr", "/usr", +- "--ro-bind", "/lib", "/lib", +- "--ro-bind", "/lib64", "/lib64", ++ "@bubblewrap_bin@", ++ "--ro-bind", "@storeDir@", "@storeDir@", ++ "--ro-bind", "/run/current-system", "/run/current-system", + "--proc", "/proc", + "--dev", "/dev", +- "--symlink", "usr/bin", "/bin", +- "--symlink", "usr/sbin", "/sbin", + "--chdir", "/", + "--setenv", "GIO_USE_VFS", "local", + "--unshare-all", diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/nautilus/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/nautilus/default.nix new file mode 100644 index 000000000000..715686460a38 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/nautilus/default.nix @@ -0,0 +1,70 @@ +{ stdenv, fetchurl, meson, ninja, pkgconfig, gettext, libxml2 +, desktop-file-utils, python3, wrapGAppsHook , gtk3, gnome3, gnome-autoar +, glib-networking, shared-mime-info, libnotify, libexif, libseccomp , exempi +, librsvg, tracker, tracker-miners, gexiv2, libselinux, gdk_pixbuf +, substituteAll, bubblewrap +}: + +let + pname = "nautilus"; + version = "3.30.5"; +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "144r4py9b8w9ycsg6fggjg05kwvymh003qsb3h6apgpch5y3zgnv"; + }; + + nativeBuildInputs = [ + meson ninja pkgconfig libxml2 gettext python3 wrapGAppsHook + desktop-file-utils + ]; + + buildInputs = [ + glib-networking shared-mime-info libexif gtk3 exempi libnotify libselinux + tracker tracker-miners gexiv2 libseccomp bubblewrap + gnome3.adwaita-icon-theme gnome3.gsettings-desktop-schemas + ]; + + propagatedBuildInputs = [ gnome-autoar ]; + + preFixup = '' + gappsWrapperArgs+=( + # Thumbnailers + --prefix XDG_DATA_DIRS : "${gdk_pixbuf}/share" + --prefix XDG_DATA_DIRS : "${librsvg}/share" + --prefix XDG_DATA_DIRS : "${shared-mime-info}/share" + ) + ''; + + postPatch = '' + patchShebangs build-aux/meson/postinstall.py + ''; + + patches = [ + ./extension_dir.patch + # 3.30 now generates it's own thummbnails, + # and no longer depends on `gnome-desktop` + (substituteAll { + src = ./bubblewrap-paths.patch; + bubblewrap_bin = "${bubblewrap}/bin/bwrap"; + inherit (builtins) storeDir; + }) + ]; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "gnome3.${pname}"; + }; + }; + + meta = with stdenv.lib; { + description = "The file manager for GNOME"; + homepage = https://wiki.gnome.org/Apps/Files; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/nautilus/extension_dir.patch b/nixpkgs/pkgs/desktops/gnome-3/core/nautilus/extension_dir.patch new file mode 100644 index 000000000000..e1313999675d --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/nautilus/extension_dir.patch @@ -0,0 +1,24 @@ +diff --git a/src/nautilus-module.c b/src/nautilus-module.c +index 6273a76..4adcc8a 100644 +--- a/src/nautilus-module.c ++++ b/src/nautilus-module.c +@@ -242,11 +242,17 @@ void + nautilus_module_setup (void) + { + static gboolean initialized = FALSE; ++ const gchar* extensiondir = NULL; + + if (!initialized) + { + initialized = TRUE; + +- load_module_dir (NAUTILUS_EXTENSIONDIR); ++ extensiondir = g_getenv ("NAUTILUS_EXTENSION_DIR"); ++ if (extensiondir == NULL) { ++ extensiondir = NAUTILUS_EXTENSIONDIR; ++ } ++ ++ load_module_dir (extensiondir); + + eel_debug_call_at_shutdown (free_module_objects); + } diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/rygel/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/rygel/default.nix new file mode 100644 index 000000000000..5d60500b3636 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/rygel/default.nix @@ -0,0 +1,54 @@ +{ stdenv, fetchurl, pkgconfig, vala, gettext, libxml2, gobject-introspection, gtk-doc, wrapGAppsHook, glib, gssdp, gupnp, gupnp-av, gupnp-dlna, gst_all_1, libgee, libsoup, gtk3, libmediaart, sqlite, systemd, tracker, shared-mime-info, gnome3 }: + +let + pname = "rygel"; + version = "0.36.2"; +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + + # TODO: split out lib + outputs = [ "out" "dev" "devdoc" ]; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "0i12z6bzfzgcjidhxa2jsvpm4hqpab0s032z13jy2vbifrncfcnk"; + }; + + nativeBuildInputs = [ + pkgconfig vala gettext libxml2 gobject-introspection gtk-doc wrapGAppsHook + ]; + buildInputs = [ + glib gssdp gupnp gupnp-av gupnp-dlna libgee libsoup gtk3 libmediaart sqlite systemd tracker shared-mime-info + ] ++ (with gst_all_1; [ + gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly + ]); + + configureFlags = [ + "--with-systemduserunitdir=$(out)/lib/systemd/user" + "--enable-apidocs" + "--sysconfdir=/etc" + ]; + + installFlags = [ + "sysconfdir=$(out)/etc" + ]; + + doCheck = true; + + enableParallelBuilding = true; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "gnome3.${pname}"; + }; + }; + + meta = with stdenv.lib; { + description = "A home media solution (UPnP AV MediaServer) that allows you to easily share audio, video and pictures to other devices"; + homepage = https://wiki.gnome.org/Projects/Rygel; + license = licenses.lgpl21Plus; + maintainers = gnome3.maintainers; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/simple-scan/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/simple-scan/default.nix new file mode 100644 index 000000000000..742819e0ba17 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/simple-scan/default.nix @@ -0,0 +1,51 @@ +{ stdenv, fetchurl, meson, ninja, pkgconfig, gettext, itstool, python3, wrapGAppsHook +, cairo, gdk_pixbuf, colord, glib, gtk3, gusb, packagekit, libwebp +, libxml2, sane-backends, vala, gnome3, gobject-introspection }: + +stdenv.mkDerivation rec { + name = "simple-scan-${version}"; + version = "3.30.2"; + + src = fetchurl { + url = "mirror://gnome/sources/simple-scan/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "0dknvdjlnxrp9nxd3yr8wyjc4kv94nwglss8pr6rfvl4hnlly53i"; + }; + + buildInputs = [ + cairo gdk_pixbuf colord glib gnome3.adwaita-icon-theme gusb + gtk3 libwebp packagekit sane-backends vala + ]; + nativeBuildInputs = [ + meson ninja gettext itstool pkgconfig python3 wrapGAppsHook libxml2 + # For setup hook + gobject-introspection + ]; + + postPatch = '' + patchShebangs data/meson_compile_gschema.py + ''; + + doCheck = true; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "simple-scan"; + }; + }; + + meta = with stdenv.lib; { + description = "Simple scanning utility"; + 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 = gnome3.maintainers; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/sushi/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/sushi/default.nix new file mode 100644 index 000000000000..77c216e73764 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/sushi/default.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchurl, pkgconfig, file, intltool, gobject-introspection, glib +, clutter-gtk, clutter-gst, gnome3, aspell, hspell, gtksourceview, gjs +, webkitgtk, libmusicbrainz5, icu, wrapGAppsHook, gst_all_1 +, gdk_pixbuf, librsvg, gtk3, harfbuzz }: + +stdenv.mkDerivation rec { + name = "sushi-${version}"; + version = "3.30.0"; + + src = fetchurl { + url = "mirror://gnome/sources/sushi/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "0zpaiw5r734fky3zq95a6szwn7srbkpixajqg2xvdivhhx4mbnnj"; + }; + + nativeBuildInputs = [ pkgconfig file intltool gobject-introspection wrapGAppsHook ]; + buildInputs = [ + glib gtk3 gnome3.evince icu harfbuzz + clutter-gtk clutter-gst gjs gtksourceview gdk_pixbuf + librsvg libmusicbrainz5 webkitgtk + gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good + # cannot find -laspell, -lhspell + aspell hspell + ]; + + enableParallelBuilding = true; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "sushi"; + attrPath = "gnome3.sushi"; + }; + }; + + meta = with stdenv.lib; { + homepage = "https://en.wikipedia.org/wiki/Sushi_(software)"; + description = "A quick previewer for Nautilus"; + maintainers = gnome3.maintainers; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/totem/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/totem/default.nix new file mode 100644 index 000000000000..d4a66b6c4936 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/totem/default.nix @@ -0,0 +1,60 @@ +{ stdenv, fetchurl, meson, ninja, intltool, gst_all_1 +, clutter-gtk, clutter-gst, python3Packages, shared-mime-info +, pkgconfig, gtk3, glib, gobject-introspection, totem-pl-parser +, wrapGAppsHook, itstool, libxml2, vala, gnome3, grilo, grilo-plugins +, libpeas, adwaita-icon-theme, gnome-desktop, gsettings-desktop-schemas +, gdk_pixbuf, tracker, nautilus }: + +stdenv.mkDerivation rec { + name = "totem-${version}"; + version = "3.30.0"; + + src = fetchurl { + url = "mirror://gnome/sources/totem/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "0rahkybxbmxhlmrrgrzxny1xm7wycx7ib4blxp1i2l1q3i8s84b0"; + }; + + doCheck = true; + + NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0"; + + nativeBuildInputs = [ meson ninja vala pkgconfig intltool python3Packages.python itstool gobject-introspection wrapGAppsHook ]; + buildInputs = [ + gtk3 glib grilo clutter-gtk clutter-gst totem-pl-parser grilo-plugins + gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad + gst_all_1.gst-plugins-ugly gst_all_1.gst-libav libpeas shared-mime-info + gdk_pixbuf libxml2 adwaita-icon-theme gnome-desktop + gsettings-desktop-schemas tracker nautilus + python3Packages.pygobject3 python3Packages.dbus-python # for plug-ins + ]; + + postPatch = '' + chmod +x meson_compile_python.py meson_post_install.py # patchShebangs requires executable file + patchShebangs . + ''; + + mesonFlags = [ + "-Dwith-nautilusdir=${placeholder "out"}/lib/nautilus/extensions-3.0" + # https://bugs.launchpad.net/ubuntu/+source/totem/+bug/1712021 + # https://bugzilla.gnome.org/show_bug.cgi?id=784236 + # https://github.com/mesonbuild/meson/issues/1994 + "-Denable-vala=no" + ]; + + wrapPrefixVariables = [ "PYTHONPATH" ]; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "totem"; + attrPath = "gnome3.totem"; + }; + }; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Videos; + description = "Movie player for the GNOME desktop based on GStreamer"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/tracker-miners/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/tracker-miners/default.nix new file mode 100644 index 000000000000..85bb32972f4b --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/tracker-miners/default.nix @@ -0,0 +1,100 @@ +{ stdenv, fetchurl, substituteAll, intltool, itstool, libxslt, gexiv2, tracker +, meson, ninja, pkgconfig, vala, wrapGAppsHook, bzip2, dbus, evolution-data-server +, exempi, flac, giflib, glib, gnome3, gst_all_1, icu, json-glib, libcue, libexif +, libgrss, libgsf, libiptcdata, libjpeg, libpng, libseccomp, libsoup, libtiff, libuuid +, libvorbis, libxml2, poppler, taglib, upower, totem-pl-parser }: + +let + pname = "tracker-miners"; +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + version = "2.1.5"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "1kdq7fk9c80ngg65p31pjdk4za0fq7nfhblqsma9alvkam5kvzgm"; + }; + + nativeBuildInputs = [ + intltool + itstool + libxslt + meson + ninja + pkgconfig + vala + wrapGAppsHook + ]; + + # TODO: add libenca, libosinfo + buildInputs = [ + bzip2 + dbus + evolution-data-server + exempi + flac + giflib + glib + gexiv2 + totem-pl-parser + tracker + gst_all_1.gst-plugins-base + gst_all_1.gstreamer + icu + json-glib + libcue + libexif + libgrss + libgsf + libiptcdata + libjpeg + libpng + libseccomp + libsoup + libtiff + libuuid + libvorbis + libxml2 + poppler + taglib + upower + ]; + + mesonFlags = [ + # TODO: tests do not like our sandbox + "-Dfunctional_tests=false" + "-Ddbus_services=${placeholder "out"}/share/dbus-1/services" + ]; + + patches = [ + (substituteAll { + src = ./fix-paths.patch; + inherit (gnome3) tracker; + }) + # https://bugzilla.gnome.org/show_bug.cgi?id=795576 + (fetchurl { + url = https://bugzilla.gnome.org/attachment.cgi?id=371427; + sha256 = "187flswvzymjfxwfrrhizb1cvs780zm39aa3i2vwa5fbllr7kcpf"; + }) + ]; + + postInstall = '' + glib-compile-schemas "$out/share/glib-2.0/schemas" + ''; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "gnome3.${pname}"; + versionPolicy = "none"; + }; + }; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Projects/Tracker; + description = "Desktop-neutral user information store, search tool and indexer"; + maintainers = gnome3.maintainers; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/tracker-miners/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome-3/core/tracker-miners/fix-paths.patch new file mode 100644 index 000000000000..47ad114eb0b5 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/tracker-miners/fix-paths.patch @@ -0,0 +1,42 @@ +--- a/meson.build ++++ b/meson.build +@@ -25,15 +25,15 @@ + # + # This check acts as a guard to make sure we are being configured with the + # right prefix, among other things. +- tracker_store = find_program(join_paths(get_option('prefix'), get_option('libexecdir'), 'tracker-store')) ++ tracker_store = find_program(join_paths(tracker_miner.get_pkgconfig_variable('prefix'), 'libexec', 'tracker-store')) + tracker_store_path = tracker_store.path() + + # If we are building against an installed version of tracker core rather than + # having it as a subproject, these 'uninstalled' locations point to the actual + # installed locations. +- tracker_uninstalled_domain_rule = join_paths(get_option('prefix'), get_option('datadir'), 'tracker', 'domain-ontologies', 'default.rule') +- tracker_uninstalled_nepomuk_ontologies_dir = join_paths(get_option('prefix'), get_option('datadir'), 'tracker', 'ontologies', 'nepomuk') +- tracker_uninstalled_stop_words_dir = join_paths(get_option('prefix'), get_option('datadir'), 'tracker', 'stop-words', 'default.rule') ++ tracker_uninstalled_domain_rule = join_paths(tracker_miner.get_pkgconfig_variable('prefix'), 'share', 'tracker', 'domain-ontologies', 'default.rule') ++ tracker_uninstalled_nepomuk_ontologies_dir = join_paths(tracker_miner.get_pkgconfig_variable('prefix'), 'share', 'tracker', 'ontologies', 'nepomuk') ++ tracker_uninstalled_stop_words_dir = join_paths(tracker_miner.get_pkgconfig_variable('prefix'), 'share', 'tracker', 'stop-words', 'default.rule') + else + tracker_subproject = subproject('tracker', + default_options: [ +--- a/src/libtracker-miners-common/tracker-domain-ontology.c ++++ b/src/libtracker-miners-common/tracker-domain-ontology.c +@@ -323,7 +323,7 @@ + goto end; + } + } else { +- path = g_build_filename (SHAREDIR, "tracker", "domain-ontologies", ++ path = g_build_filename ("@tracker@", "share", "tracker", "domain-ontologies", + DEFAULT_RULE, NULL); + + if (!g_file_test (path, G_FILE_TEST_IS_REGULAR)) { +@@ -388,7 +388,7 @@ + if (!priv->ontology_location) { + gchar *ontology_path; + +- ontology_path = g_build_filename (SHAREDIR, "tracker", "ontologies", ++ ontology_path = g_build_filename ("@tracker@", "share", "tracker", "ontologies", + priv->ontology_name, NULL); + + if (!g_file_test (ontology_path, G_FILE_TEST_IS_DIR)) { diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/tracker/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/tracker/default.nix new file mode 100644 index 000000000000..d744fc6c87c7 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/tracker/default.nix @@ -0,0 +1,78 @@ +{ stdenv, fetchurl, fetchFromGitLab, intltool, meson, ninja, pkgconfig, gobject-introspection, python2 +, gtk-doc, docbook_xsl, docbook_xml_dtd_412, docbook_xml_dtd_43, glibcLocales +, libxml2, upower, glib, wrapGAppsHook, vala, sqlite, libxslt, libstemmer +, gnome3, icu, libuuid, networkmanager, libsoup, json-glib }: + +let + pname = "tracker"; + version = "2.1.6"; +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + + outputs = [ "out" "dev" "devdoc" ]; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "143zapq50lggj3mpqg2y4rh1hgnkbn9vgvzpqxr7waiawsmx0awq"; + }; + + nativeBuildInputs = [ + meson ninja vala pkgconfig intltool libxslt wrapGAppsHook gobject-introspection + gtk-doc docbook_xsl docbook_xml_dtd_412 docbook_xml_dtd_43 glibcLocales + python2 # for data-generators + ]; + + buildInputs = [ + glib libxml2 sqlite upower icu networkmanager libsoup libuuid json-glib libstemmer + ]; + + LC_ALL = "en_US.UTF-8"; + + mesonFlags = [ + "-Ddbus_services=share/dbus-1/services" + "-Dsystemd_user_services=lib/systemd/user" + # TODO: figure out wrapping unit tests, some of them fail on missing gsettings-desktop-schemas + "-Dfunctional_tests=false" + ]; + + patches = [ + # Always generate tracker-sparql.h in time + (fetchurl { + url = https://gitlab.gnome.org/GNOME/tracker/commit/3cbfaa5b374e615098e60eb4430f108b642ebe76.diff; + sha256 = "0smavzvsglpghggrcl8sjflki13nh7pr0jl2yv6ymbf5hr1c4dws"; + }) + ]; + + postPatch = '' + patchShebangs utils/g-ir-merge/g-ir-merge + patchShebangs utils/data-generators/cc/generate + + # make .desktop Exec absolute + patch -p0 <<END_PATCH + +++ src/tracker-store/tracker-store.desktop.in.in + @@ -4 +4 @@ + -Exec=gdbus call -e -d org.freedesktop.DBus -o /org/freedesktop/DBus -m org.freedesktop.DBus.StartServiceByName org.freedesktop.Tracker1 0 + +Exec=${glib.dev}/bin/gdbus call -e -d org.freedesktop.DBus -o /org/freedesktop/DBus -m org.freedesktop.DBus.StartServiceByName org.freedesktop.Tracker1 0 + END_PATCH + ''; + + postInstall = '' + glib-compile-schemas "$out/share/glib-2.0/schemas" + ''; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "gnome3.${pname}"; + versionPolicy = "none"; + }; + }; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Projects/Tracker; + description = "Desktop-neutral user information store, search tool and indexer"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/vino/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/vino/default.nix new file mode 100644 index 000000000000..b3f06c2dcc1c --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/vino/default.nix @@ -0,0 +1,42 @@ +{ stdenv, fetchurl, lib, wrapGAppsHook +, pkgconfig, gnome3, gtk3, glib, intltool, libXtst, libnotify, libsoup +, telepathySupport ? false, dbus-glib ? null, telepathy-glib ? null +, libsecret, gnutls, libgcrypt, avahi, zlib, libjpeg, libXdamage, libXfixes, libXext +, networkmanager }: + +with lib; + +stdenv.mkDerivation rec { + name = "vino-${version}"; + version = "3.22.0"; + + src = fetchurl { + url = "mirror://gnome/sources/vino/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "2911c779b6a2c46e5bc8e5a0c94c2a4d5bd4a1ee7e35f2818702cb13d9d23bab"; + }; + + doCheck = true; + + nativeBuildInputs = [ intltool wrapGAppsHook pkgconfig ]; + + buildInputs = [ + gnome3.adwaita-icon-theme gtk3 glib libXtst libnotify libsoup + libsecret gnutls libgcrypt avahi zlib libjpeg + libXdamage libXfixes libXext networkmanager + ] ++ optionals telepathySupport [ dbus-glib telepathy-glib ]; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "vino"; + attrPath = "gnome3.vino"; + }; + }; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Projects/Vino; + description = "GNOME desktop sharing server"; + maintainers = with maintainers; [ lethalman domenkozar ]; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/yelp-tools/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/yelp-tools/default.nix new file mode 100644 index 000000000000..6f487eacf972 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/yelp-tools/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchurl, libxml2, libxslt, itstool, gnome3, pkgconfig }: + +stdenv.mkDerivation rec { + name = "yelp-tools-${version}"; + version = "3.28.0"; + + src = fetchurl { + url = "mirror://gnome/sources/yelp-tools/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "1b61dmlb1sd50fgq6zgnkcpx2s1py33q0x9cx67fzpsr4gmgxnw2"; + }; + + passthru = { + updateScript = gnome3.updateScript { packageName = "yelp-tools"; attrPath = "gnome3.yelp-tools"; }; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libxml2 libxslt itstool gnome3.yelp-xsl ]; + + doCheck = true; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Yelp/Tools; + description = "Small programs that help you create, edit, manage, and publish your Mallard or DocBook documentation"; + maintainers = with maintainers; [ domenkozar ]; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix new file mode 100644 index 000000000000..7e98012998dc --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix @@ -0,0 +1,29 @@ +{ stdenv, intltool, fetchurl, pkgconfig +, itstool, libxml2, libxslt, gnome3 }: + +stdenv.mkDerivation rec { + name = "yelp-xsl-${version}"; + version = "3.30.1"; + + src = fetchurl { + url = "mirror://gnome/sources/yelp-xsl/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "0ffgp3ymcc11r9sdndliwwngljcy1mfqpfxsdfbm8rlcjg2k3vzw"; + }; + + passthru = { + updateScript = gnome3.updateScript { packageName = "yelp-xsl"; attrPath = "gnome3.yelp-xsl"; }; + }; + + doCheck = true; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ intltool itstool libxml2 libxslt ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Yelp; + description = "Yelp's universal stylesheets for Mallard and DocBook"; + maintainers = gnome3.maintainers; + license = [licenses.gpl2 licenses.lgpl2]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/yelp/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/yelp/default.nix new file mode 100644 index 000000000000..644c27938318 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/yelp/default.nix @@ -0,0 +1,36 @@ +{ stdenv, intltool, fetchurl, webkitgtk, pkgconfig, gtk3, glib +, gnome3, sqlite +, itstool, libxml2, libxslt, gst_all_1 +, wrapGAppsHook }: + +stdenv.mkDerivation rec { + name = "yelp-${version}"; + version = "3.30.0"; + + src = fetchurl { + url = "mirror://gnome/sources/yelp/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "060a902j15k76fyhk8xfl38ipvrrcc0qd7nm2mcck4ifb45b0zv4"; + }; + + nativeBuildInputs = [ pkgconfig intltool itstool wrapGAppsHook ]; + buildInputs = [ + gtk3 glib webkitgtk sqlite + libxml2 libxslt gnome3.yelp-xsl + gnome3.adwaita-icon-theme + gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good + ]; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "yelp"; + }; + }; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Yelp; + description = "The help viewer in Gnome"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/zenity/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/zenity/default.nix new file mode 100644 index 000000000000..a347c8f2f9db --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome-3/core/zenity/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchurl, pkgconfig, libxml2, libxslt, gnome3, gtk3 +, gnome-doc-utils, intltool, libX11, which, itstool, wrapGAppsHook }: + +stdenv.mkDerivation rec { + name = "zenity-${version}"; + version = "3.30.0"; + + src = fetchurl { + url = "mirror://gnome/sources/zenity/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "1wipnp46pd238z9ck5rsckbaw7yla6c936fswq5w94k4c6bgcplr"; + }; + + preBuild = '' + mkdir -p $out/include + ''; + + buildInputs = [ gtk3 libxml2 libxslt libX11 itstool ]; + + nativeBuildInputs = [ pkgconfig intltool gnome-doc-utils which wrapGAppsHook ]; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "zenity"; + attrPath = "gnome3.zenity"; + }; + }; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} |