Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

@@ -59,6 +59,7 @@ python3.pkgs.buildPythonApplication rec {
passthru = {
updateScript = gnome3.updateScript {
packageName = pname;
versionPolicy = "odd-unstable";
};
};

@@ -13,14 +13,14 @@

rustPlatform.buildRustPackage rec {
pname = "pijul";
version = "1.0.0-alpha.46";
version = "1.0.0-alpha.48";

src = fetchCrate {
inherit version pname;
sha256 = "0x095g26qdch1m3izkn8ynwk1xg1qyz9ia8di23j61k7z2rqk0j5";
sha256 = "09sz5665nwj2jppx2695hbwdqr3ws6z6rg7mmc4ldb7hkp4yilig";
};

cargoSha256 = "0cw1y4vmhn70a94512mppk0kfh9xdfm0v4rp3zm00y06jzq1a1fp";
cargoSha256 = "1v5w5za7l3hy9anz136x0vgdmgg090f5sawzgrg5ylgxy2l9s2gn";

cargoBuildFlags = lib.optional gitImportSupport "--features=git";

@@ -1,20 +1,20 @@
{ lib
, buildPythonApplication
, fetchPypi
, ffmpeg_3
, tqdm
, ffmpeg
, ffmpeg-progress-yield
}:

buildPythonApplication rec {
pname = "ffmpeg-normalize";
version = "1.19.0";
version = "1.22.1";

src = fetchPypi {
inherit pname version;
sha256 = "18dpck9grnr3wgbjvdh4mjlx0zfwcxpy4rnpmc39in0yk3w7li2x";
sha256 = "df826053212d540ab1bbe9819587fcbf36162f8c2535ae85b88b252e47d6d632";
};

propagatedBuildInputs = [ ffmpeg_3 tqdm ];
propagatedBuildInputs = [ ffmpeg ffmpeg-progress-yield ];

checkPhase = ''
$out/bin/ffmpeg-normalize --help > /dev/null
@@ -4,14 +4,14 @@

python3.pkgs.buildPythonApplication rec {
pname = "kooha";
version = "1.1.1";
version = "1.1.2";
format = "other";

src = fetchFromGitHub {
owner = "SeaDve";
repo = "Kooha";
rev = "v${version}";
sha256 = "05515xccs6y3wy28a6lkyn2jgi0fli53548l8qs73li8mdbxzd4c";
sha256 = "0jr55b39py9c8dc9rihn7ffx2yh71qqdk6pfn3c2ciiajjs74l17";
};

buildInputs = [
@@ -1,4 +1,4 @@
{ config, lib, stdenv, fetchurl, pkg-config, freetype, yasm, ffmpeg_3
{ config, lib, stdenv, fetchurl, pkg-config, freetype, yasm, ffmpeg
, aalibSupport ? true, aalib ? null
, fontconfigSupport ? true, fontconfig ? null, freefont_ttf ? null
, fribidiSupport ? true, fribidi ? null
@@ -109,7 +109,7 @@ stdenv.mkDerivation rec {
depsBuildBuild = [ buildPackages.stdenv.cc ];
nativeBuildInputs = [ pkg-config yasm ];
buildInputs = with lib;
[ freetype ffmpeg_3 ]
[ freetype ffmpeg ]
++ optional aalibSupport aalib
++ optional fontconfigSupport fontconfig
++ optional fribidiSupport fribidi
@@ -21,13 +21,13 @@

python3Packages.buildPythonApplication rec {
pname = "pitivi";
version = "2020.09.2";
version = "2021.01";

format = "other";

src = fetchurl {
url = "mirror://gnome/sources/pitivi/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0hzvv4wia4rk0kvq16y27imq2qd4q5lg3vx99hdcjdb1x3zqqfg0";
url = "mirror://gnome/sources/pitivi/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "0krzsrv19v3mwhbsm72ica6m3p8ijy0lbd0c3s87yd7pmbwld2c1";
};

patches = [
@@ -0,0 +1,72 @@
{ lib
, cni-plugins
, buildGoModule
, firecracker
, containerd
, runc
, makeWrapper
, fetchFromGitHub
, git
}:

buildGoModule rec{
pname = "ignite";
version = "0.9.0";

src = fetchFromGitHub {
owner = "weaveworks";
repo = "ignite";
rev = "v${version}";
sha256 = "sha256-rjCsZ12DHcSw5GZu6jGTtqCPOZDSbYoMplkqvspbvO8=";
leaveDotGit = true;
};

vendorSha256 = null;

doCheck = false;

postPatch = ''
# ignite tries to run cni-plugins programs from /opt/cni/bin
substituteInPlace pkg/constants/dependencies.go \
--replace "/opt/cni/bin/loopback" ${cni-plugins}/bin/loopback \
--replace "/opt/cni/bin/bridge" ${cni-plugins}/bin/bridge
# ignite tries to run cni-plugins programs from /opt/cni/bin
substituteInPlace pkg/network/cni/cni.go \
--replace "/opt/cni/bin" ${cni-plugins}/bin
# fetchgit doesn't fetch tags from git repository so it's necessary to force IGNITE_GIT_VERSION to be ${version}
# also forcing git state to be clean because if it's dirty ignite will try to fetch the image weaveworks/ignite:dev
# which is not in docker.io, we want it to fetch the image weaveworks/ignite:v${version}
substituteInPlace hack/ldflags.sh \
--replace '$(git describe --tags --abbrev=14 "''${IGNITE_GIT_COMMIT}^{commit}" 2>/dev/null)' "v${version}" \
--replace 'IGNITE_GIT_TREE_STATE="dirty"' 'IGNITE_GIT_TREE_STATE="clean"'
'';

nativeBuildInputs = [
git
makeWrapper
];

buildInputs = [
firecracker
];

preBuild = ''
patchShebangs ./hack/ldflags.sh
export buildFlagsArray+=("-ldflags=$(./hack/ldflags.sh)")
'';

postInstall = ''
for prog in hack ignite ignited ignite-spawn; do
wrapProgram "$out/bin/$prog" --prefix PATH : ${lib.makeBinPath [ cni-plugins firecracker containerd runc ]}
done
'';

meta = with lib; {
description = "Ignite a Firecracker microVM";
homepage = "https://github.com/weaveworks/ignite";
license = licenses.asl20;
maintainers = with maintainers; [ tfmoraes ];
};
}
@@ -2,16 +2,16 @@

rustPlatform.buildRustPackage rec {
pname = "i3wsr";
version = "2.0.0";
version = "2.0.1";

src = fetchFromGitHub {
owner = "roosta";
repo = pname;
rev = "v${version}";
sha256 = "sha256-PluczllPRlfzoM2y552YJirrX5RQZQAkBQkner7fWhU=";
sha256 = "sha256-JzQWfC0kmnMArpIAE5fgb3YLmXktSCH5aUdrQH9pCbo=";
};

cargoSha256 = "sha256-GwRiyAHTcRoByxUViXSwslb+IAP6LK8IWZ0xICQ8qag=";
cargoSha256 = "sha256-ZvSdJLaw1nfaqpTBKIiHiXvNFSZhsmLk0PBrV6ykv/w=";

nativeBuildInputs = [ python3 ];
buildInputs = [ libxcb ];
@@ -9,11 +9,11 @@

stdenv.mkDerivation rec {
pname = "gnome-user-docs";
version = "3.38.2";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/gnome-user-docs/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "1h9lyn80zccmgi6gpymabgrcj7km0sb1axll5z490qnx74xbn37m";
url = "mirror://gnome/sources/gnome-user-docs/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "149s4qvqyx1jgqqzsrpmlavi6p8kgh8hbqbpncl5i8ld446lhx1i";
};

nativeBuildInputs = [
@@ -1,14 +1,12 @@
{ lib, stdenv, fetchurl, meson, ninja, gettext, appstream-glib, gnome3 }:

let
stdenv.mkDerivation rec {
pname = "cantarell-fonts";
version = "0.111";
in stdenv.mkDerivation rec {
name = "${pname}-${version}";
version = "0.301";

src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
sha256 = "05hpnhihwm9sxlq1qn993g03pwkmpjbn0dvnba71r1gfjv0jp2w5";
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "3d35db0ac03f9e6b0d5a53577591b714238985f4cfc31a0aa17f26cd74675e83";
};

nativeBuildInputs = [ meson ninja gettext appstream-glib ];
@@ -21,7 +19,7 @@ in stdenv.mkDerivation rec {

outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = "12ps2gjv1lmzbmkv16vgjmaahl3ayadpniyrx0z31sqn443r57hq";
outputHash = "1sczskw2kv3qy39i9mzw2lkl94a90bjgv5ln9acy5kh4gb2zmy7z";

passthru = {
updateScript = gnome3.updateScript {
@@ -0,0 +1,24 @@
{ lib, fetchurl }:

let
version = "13.001";
in fetchurl {
name = "last-resort-${version}";

url = "https://github.com/unicode-org/last-resort-font/releases/download/${version}/LastResortHE-Regular.ttf";
downloadToTemp = true;

postFetch = ''
install -D -m 0644 $downloadedFile $out/share/fonts/truetype/LastResortHE-Regular.ttf
'';

recursiveHash = true;
sha256 = "08mi65j46fv6a3y3pqnglqdjxjnbzg25v25f7c1zyk3c285m14hq";

meta = with lib; {
description = "Fallback font of last resort";
homepage = "https://github.com/unicode-org/last-resort-font";
license = licenses.ofl;
maintainers = with maintainers; [ V ];
};
}
@@ -0,0 +1,36 @@
{ fetchFromGitHub, gtk3, hicolor-icon-theme, jdupes, lib, stdenv }:

stdenv.mkDerivation rec {
pname = "tela-icon-theme";
version = "2021-01-21";

src = fetchFromGitHub {
owner = "vinceliuice";
repo = pname;
rev = version;
sha256 = "0gphy4aq2qjcg79k6rc0q5901mn3q76qhckn5vxvmypn9n3lb9ph";
};

nativeBuildInputs = [ gtk3 jdupes ];

propagatedBuildInputs = [ hicolor-icon-theme ];

dontDropIconThemeCache = true;

installPhase = ''
runHook preInstall
patchShebangs install.sh
mkdir -p $out/share/icons
./install.sh -a -d $out/share/icons
jdupes -l -r $out/share/icons
runHook postInstall
'';

meta = with lib; {
description = "A flat colorful Design icon theme";
homepage = "https://github.com/vinceliuice/tela-icon-theme";
license = licenses.gpl3Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ figsoda ];
};
}
@@ -1,14 +1,19 @@
{ lib, stdenv, fetchurl, gnome3 }:
{ lib, stdenv, fetchurl, gnome3, libxslt }:

stdenv.mkDerivation rec {
pname = "mobile-broadband-provider-info";
version = "20190116";
version = "20201225";

src = fetchurl {
url = "mirror://gnome/sources/${pname}/${version}/${pname}-${version}.tar.xz";
sha256 = "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic";
sha256 = "1g9x2i4xjm2sagaha07n9psacbylrwfrmfqkp17gjwhpyi6w0zqd";
};

nativeBuildInputs = [
# fixes configure: error: xsltproc not found
libxslt
];

passthru = {
updateScript = gnome3.updateScript {
packageName = pname;
@@ -2,13 +2,13 @@

stdenv.mkDerivation rec {
pname = "gruvbox-dark-gtk";
version = "1.0.1";
version = "1.0.2";

src = fetchFromGitHub {
owner = "jmattheis";
repo = pname;
rev = "v${version}";
sha256 = "1wf4ybnjdp2kbbvz7pmqdnzk94axaqx5ws18f34hrg4y267n0w4g";
sha256 = "sha256-C681o89MTGNp1l3DLQsRpH9HQdmdCXZzk0F0rNhcyL4=";
};

installPhase = ''
@@ -2,11 +2,11 @@

stdenv.mkDerivation rec {
pname = "evisum";
version = "0.5.11";
version = "0.5.13";

src = fetchurl {
url = "https://download.enlightenment.org/rel/apps/${pname}/${pname}-${version}.tar.xz";
sha256 = "sha256-jCOYnG/+xz9qK6npOPT+tw1tp/K0QaFCmsBRO9J4bjE=";
sha256 = "sha256-TMVxx7D9wdujyN6PcbIxC8M6zby5myvxO9AqolrcWOY=";
};

nativeBuildInputs = [
@@ -60,6 +60,7 @@ python3.pkgs.buildPythonApplication rec {
updateScript = gnome3.updateScript {
packageName = "accerciser";
attrPath = "gnome3.accerciser";
versionPolicy = "odd-unstable";
};
};

@@ -1,6 +1,8 @@
{ lib, stdenv
{ lib
, stdenv
, gettext
, fetchurl
, fetchpatch
, wrapGAppsHook
, gnome-video-effects
, libcanberra-gtk3
@@ -9,17 +11,13 @@
, glib
, clutter-gtk
, clutter-gst
, udev
, gst_all_1
, itstool
, libgudev
, vala
, docbook_xml_dtd_43
, docbook_xsl
, docbook-xsl-nons
, appstream-glib
, libxslt
, yelp-tools
, gnome-common
, gtk-doc
, adwaita-icon-theme
, librsvg
@@ -38,37 +36,37 @@ stdenv.mkDerivation rec {
pname = "cheese";
version = "3.38.0";

outputs = [ "out" "man" "devdoc" ];

src = fetchurl {
url = "mirror://gnome/sources/cheese/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0vyim2avlgq3a48rgdfz5g21kqk11mfb53b2l883340v88mp7ll8";
};

postPatch = ''
chmod +x meson_post_install.py
patchShebangs meson_post_install.py
'';

passthru = {
updateScript = gnome3.updateScript { packageName = "cheese"; attrPath = "gnome3.cheese"; };
};
patches = [
# Fix build with latest Vala or GLib
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/cheese/commit/7cf6268e54620bbbe5e6e61800c50fb0cb4bea57.patch";
sha256 = "WJgGNrpZLTahe7Sxr8HdTl+4Mf4VcmJb6DdiInlDcT4=";
})
];

nativeBuildInputs = [
appstream-glib
docbook_xml_dtd_43
docbook_xsl
docbook-xsl-nons
gettext
gnome-common
gtk-doc
itstool
libxml2
libxslt
libxslt # for xsltproc
meson
ninja
pkg-config
python3
vala
wrapGAppsHook
yelp-tools
glib # for glib-compile-schemas
];

buildInputs = [
@@ -86,12 +84,13 @@ stdenv.mkDerivation rec {
gst_all_1.gstreamer
gtk3
libcanberra-gtk3
libgudev
librsvg
udev
];

outputs = [ "out" "man" "devdoc" ];
postPatch = ''
chmod +x meson_post_install.py
patchShebangs meson_post_install.py
'';

preFixup = ''
gappsWrapperArgs+=(
@@ -105,13 +104,18 @@ stdenv.mkDerivation rec {
)
'';

enableParallelBuilding = true;
passthru = {
updateScript = gnome3.updateScript {
packageName = "cheese";
attrPath = "gnome3.cheese";
};
};

meta = with lib; {
homepage = "https://wiki.gnome.org/Apps/Cheese";
description = "Take photos and videos with your webcam, with fun graphical effects";
maintainers = teams.gnome.members;
license = licenses.gpl3;
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
}
@@ -1,5 +1,6 @@
{ lib, stdenv, fetchurl, glib, gtk3, meson, ninja, pkg-config, gnome3, gettext, itstool, libxml2, libarchive
, file, json-glib, python3, wrapGAppsHook, desktop-file-utils, libnotify, nautilus, glibcLocales }:
, file, json-glib, python3, wrapGAppsHook, fetchpatch, desktop-file-utils, libnotify, nautilus, glibcLocales
, unzip, cpio }:

stdenv.mkDerivation rec {
pname = "file-roller";
@@ -10,11 +11,21 @@ stdenv.mkDerivation rec {
sha256 = "0mxwdbfqizakxq65fa8zlvjf48v5f44lv8ckjw8sl8fk2871784l";
};

patches = [
# Hardcode cpio path consistently.
# Should become obsolete when the following release is out.
(fetchpatch {
name = "fix-cpio-path.patch";
url = "https://gitlab.gnome.org/GNOME/file-roller/commit/af27465a3ef07622e89890ef4b1aacbb754b6fb9.patch";
sha256 = "0r7qlx8yj4qa7jdrgm618bjia7wjryd05fmhcfq2957wh5ww9ffx";
})
];

LANG = "en_US.UTF-8"; # postinstall.py

nativeBuildInputs = [ meson ninja gettext itstool pkg-config libxml2 python3 wrapGAppsHook glibcLocales desktop-file-utils ];

buildInputs = [ glib gtk3 json-glib libarchive file gnome3.adwaita-icon-theme libnotify nautilus ];
buildInputs = [ glib gtk3 json-glib libarchive file gnome3.adwaita-icon-theme libnotify nautilus cpio ];

PKG_CONFIG_LIBNAUTILUS_EXTENSION_EXTENSIONDIR = "${placeholder "out"}/lib/nautilus/extensions-3.0";

@@ -24,6 +35,12 @@ stdenv.mkDerivation rec {
patchShebangs data/set-mime-type-entry.py
'';

postFixup = ''
# Workaround because of https://gitlab.gnome.org/GNOME/file-roller/issues/40
wrapProgram "$out/bin/file-roller" \
--prefix PATH : ${lib.makeBinPath [ unzip ]}
'';

passthru = {
updateScript = gnome3.updateScript {
packageName = "file-roller";
@@ -23,11 +23,11 @@

stdenv.mkDerivation rec {
pname = "gedit";
version = "3.38.1";
version = "40.1";

src = fetchurl {
url = "mirror://gnome/sources/gedit/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0kc48a399achcz6vlqq0jk0b8ixbrzyv9xb22s5av76m5hyqalq0";
url = "mirror://gnome/sources/gedit/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "149ngl9qw6h59546lir1pa7hvw23ppsnqlj9mfqphmmn5jl99qsm";
};

nativeBuildInputs = [
@@ -18,7 +18,7 @@
, gdk-pixbuf
, gsettings-desktop-schemas
, adwaita-icon-theme
, docbook_xsl
, docbook-xsl-nons
, docbook_xml_dtd_42
, desktop-file-utils
, python3
@@ -28,11 +28,11 @@

stdenv.mkDerivation rec {
pname = "gnome-books";
version = "3.34.0";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "153vknqisjn5f105avzm933fsc3v0pjzzbwxlqxf8vjjksh1cmya";
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "0c41l8m2di8h39bmk2fnhpwglwp6qhljmwqqbihzp4ay9976zrc5";
};

nativeBuildInputs = [
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
gettext
libxslt
desktop-file-utils
docbook_xsl
docbook-xsl-nons
docbook_xml_dtd_42
wrapGAppsHook
python3
@@ -77,7 +77,6 @@ stdenv.mkDerivation rec {
};

meta = with lib; {
broken = true; # Tracker 3 not supported and it cannot start Tracker 2.
homepage = "https://wiki.gnome.org/Apps/Books";
description = "An e-book manager application for GNOME";
maintainers = teams.gnome.members;
@@ -19,7 +19,7 @@
, python3
, appstream-glib
, spice-protocol
, libhandy_0
, libhandy
, libsoup
, libosinfo
, systemd
@@ -53,11 +53,11 @@

stdenv.mkDerivation rec {
pname = "gnome-boxes";
version = "3.38.2";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "1zjvng0izbws3506998l3dwsxjbm7wnhqipb8nmqzvi096czvajl";
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "1xdcc6pndqcwc889bjwnjk92synmh5nxr756d8m9c73l9mgilzzs";
};

doCheck = true;
@@ -99,7 +99,7 @@ stdenv.mkDerivation rec {
libcap
libcap_ng
libgudev
libhandy_0
libhandy
libosinfo
librsvg
libsecret
@@ -138,7 +138,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Simple GNOME 3 application to access remote or virtual systems";
homepage = "https://wiki.gnome.org/Apps/Boxes";
license = licenses.gpl3;
license = licenses.lgpl2Plus;
platforms = platforms.linux;
maintainers = teams.gnome.members;
};
@@ -1,6 +1,5 @@
{ lib, stdenv
, fetchurl
, fetchpatch
, meson
, ninja
, pkg-config
@@ -25,25 +24,17 @@

stdenv.mkDerivation rec {
pname = "gnome-calendar";
version = "3.38.2";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0SG7NLCLbqYB9du6Q6SxYTpuVJP8Cx4uzJDGZnEakS0=";
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "0d74hng9jdmwdcjgj4xfrcink2gwkbp1k1mad4wanaf7q31c6f38";
};

patches = [
# Port to libhandy-1
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/gnome-calendar/-/commit/8be361b6ce8f0f8053e1609decbdbdc164ec8448.patch";
sha256 = "Ue0pWwcbYyCZPHPPoR0dXW5n948/AZ3wVDMTIZDOnyE=";
})

# https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/84
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/84.patch";
sha256 = "czG3uIHl3tBnjDUvCOPm8IRp2o7yZYCb0/jWtv3uzIY=";
})
# A refactor has caused the PR patch to drift enough to need rebasing
./gtk_image_reset_crash.patch
];

passthru = {
@@ -0,0 +1,17 @@
diff --git a/src/gui/views/gcal-year-view.c b/src/gui/views/gcal-year-view.c
index ac32a8f9..532425c1 100644
--- a/src/gui/views/gcal-year-view.c
+++ b/src/gui/views/gcal-year-view.c
@@ -2158,7 +2158,11 @@ update_weather (GcalYearView *self)
if (!updated)
{
gtk_label_set_text (self->temp_label, "");
- gtk_image_clear (self->weather_icon);
+ /* FIXME: This should never be NULL, but it somehow is.
+ * https://gitlab.gnome.org/GNOME/gnome-calendar/issues/299
+ */
+ if (self->weather_icon != NULL)
+ gtk_image_clear (self->weather_icon);
}
}

@@ -1,4 +1,5 @@
{ lib, stdenv
{ lib
, stdenv
, fetchurl
, meson
, ninja
@@ -13,18 +14,19 @@
, gobject-introspection
, gjs
, libunistring
, libhandy
, gsettings-desktop-schemas
, adwaita-icon-theme
, gnome-desktop
}:

stdenv.mkDerivation rec {
pname = "gnome-characters";
version = "3.34.0";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/gnome-characters/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0mqaxsa7hcmvid3zbzvxpfkp7s01ghiq6kaibmd3169axrr8ahql";
url = "mirror://gnome/sources/gnome-characters/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "0z2xa4w921bzpzj6gv88pvbrijcnnwni6jxynwz0ybaravyzaqha";
};

nativeBuildInputs = [
@@ -46,6 +48,7 @@ stdenv.mkDerivation rec {
gsettings-desktop-schemas
gtk3
libunistring
libhandy
pango
];

@@ -76,10 +79,10 @@ stdenv.mkDerivation rec {
};

meta = with lib; {
homepage = "https://wiki.gnome.org/Design/Apps/CharacterMap";
homepage = "https://wiki.gnome.org/Apps/Characters";
description = "Simple utility application to find and insert unusual characters";
maintainers = teams.gnome.members;
license = licenses.gpl2;
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
}
@@ -27,11 +27,11 @@

stdenv.mkDerivation rec {
pname = "gnome-clocks";
version = "3.38.0";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/gnome-clocks/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0f24g76ax59qnms1rjfyf1i0sa84nadgbr0r6m26p90w1w2wnmnr";
url = "mirror://gnome/sources/gnome-clocks/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "02d3jg46sn8d9gd4dsaly22gg5vkbz2gpq4pmwpvncb4rsqk7sn2";
};

nativeBuildInputs = [

This file was deleted.

@@ -29,11 +29,11 @@

stdenv.mkDerivation rec {
pname = "gnome-maps";
version = "3.38.4";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "sha256-1WQekf/kePsqqcpIliJczxjsLqTZjjV2UXmBin2+RKM=";
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "sha256-7BHcbJ7qJphZJQDa861nPB5PZOvrDT0oI/uGVbtdSkk=";
};

doCheck = true;
@@ -82,6 +82,11 @@ stdenv.mkDerivation rec {
"Exec=$out/bin/gnome-maps"
'';

preCheck = ''
# “time.js” included by “timeTest” and “translationsTest” depends on “org.gnome.desktop.interface” schema.
export XDG_DATA_DIRS="${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:$XDG_DATA_DIRS"
'';

passthru = {
updateScript = gnome3.updateScript {
packageName = pname;
@@ -30,13 +30,13 @@

python3.pkgs.buildPythonApplication rec {
pname = "gnome-music";
version = "3.38.2";
version = "40.0";

format = "other";

src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0c2051wngf3jrifl5bv5kyqcci459n62vixxkryiryjcaqwbd1am";
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "1djqhd4jccvk352hwxjhiwjgbnv1qnpv450f2c6w6581vcn9pq38";
};

nativeBuildInputs = [
@@ -12,10 +12,11 @@
, gtk3
, evolution-data-server
, gnome-online-accounts
, json-glib
, libuuid
, libhandy_0
, curl
, libhandy
, webkitgtk
, zeitgeist
, gnome3
, libxml2
, gsettings-desktop-schemas
@@ -24,11 +25,11 @@

stdenv.mkDerivation rec {
pname = "gnome-notes";
version = "3.38.0";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/bijiben/${lib.versions.majorMinor version}/bijiben-${version}.tar.xz";
sha256 = "H/bMCsbGKQe/KgmhchXt0vF7dNrKs6XIminDBJFyvis=";
url = "mirror://gnome/sources/bijiben/${lib.versions.major version}/bijiben-${version}.tar.xz";
sha256 = "098g247dlwddjvcd56ld3iak3bfb0d159avr9vjrd332a720mymf";
};

doCheck = true;
@@ -53,19 +54,19 @@ stdenv.mkDerivation rec {
buildInputs = [
glib
gtk3
json-glib
libuuid
libhandy_0 # doesn't support libhandy-1 yet
curl
libhandy
webkitgtk
tracker
gnome-online-accounts
zeitgeist
gsettings-desktop-schemas
evolution-data-server
gnome3.adwaita-icon-theme
];

mesonFlags = [
"-Dzeitgeist=true"
"-Dupdate_mimedb=false"
];

@@ -19,11 +19,11 @@

stdenv.mkDerivation rec {
pname = "gnome-sound-recorder";
version = "3.38.1";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "2Z6k+WPsEInpzVl6fUQ5ihHs7xMeQUInGhyQwVuqRSE=";
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "00b55vsfzx877b7mj744abzjws7zclz71wbvh0axsrbl9l84ranl";
};

nativeBuildInputs = [
@@ -1,19 +1,49 @@
{ lib, stdenv, fetchurl, pkg-config, gnome3, gtk3, wrapGAppsHook, gjs, gobject-introspection
, libgweather, meson, ninja, geoclue2, gnome-desktop, python3, gsettings-desktop-schemas }:
{ lib
, stdenv
, fetchurl
, pkg-config
, gnome3
, gtk3
, libhandy
, wrapGAppsHook
, gjs
, gobject-introspection
, libgweather
, meson
, ninja
, geoclue2
, gnome-desktop
, python3
, gsettings-desktop-schemas
}:

stdenv.mkDerivation rec {
pname = "gnome-weather";
version = "3.36.1";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/gnome-weather/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "11z75ky6xp9hx7lm24xng7ydr20bzh4d6p9sbi9c8ccz2m3fdrk8";
url = "mirror://gnome/sources/gnome-weather/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "1vxfcvga5waangq3rzwdrdxyy5sw40vv0l463lc651s0n8xafd9a";
};

nativeBuildInputs = [ pkg-config meson ninja wrapGAppsHook python3 ];
nativeBuildInputs = [
pkg-config
meson
ninja
wrapGAppsHook
python3
];

buildInputs = [
gtk3 gjs gobject-introspection gnome-desktop
libgweather gnome3.adwaita-icon-theme geoclue2 gsettings-desktop-schemas
gtk3
libhandy
gjs
gobject-introspection
gnome-desktop
libgweather
gnome3.adwaita-icon-theme
geoclue2
gsettings-desktop-schemas
];

postPatch = ''
@@ -26,11 +26,11 @@

stdenv.mkDerivation rec {
pname = "seahorse";
version = "3.38.0.1";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
hash = "sha256-x0XdHebhog8ZorB6Q4uO98yiNaaqc0ENt/E3sCHpsqI=";
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
hash = "sha256-fscFezhousbqBB/aghQKOfXsnlsYi0UJFNRTvC1V0Cw=";
};

doCheck = true;
@@ -3,11 +3,11 @@

stdenv.mkDerivation rec {
pname = "adwaita-icon-theme";
version = "3.38.0";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/adwaita-icon-theme/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "15xgz9wzk07442x3s3052as95g0223z4pp9qlsgcs323yama30v6";
url = "mirror://gnome/sources/adwaita-icon-theme/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "1cmv1mxzkd8bhzydyf2115g7fdmd37lwb4fvny8snmq3yqsclaqz";
};

# For convenience, we can specify adwaita-icon-theme only in packages
@@ -1,20 +1,50 @@
{ lib, stdenv, gettext, fetchurl, vala, desktop-file-utils
, meson, ninja, pkg-config, python3, gtk3, glib, libxml2
, wrapGAppsHook, itstool, gnome3 }:
{ stdenv
, lib
, gettext
, fetchurl
, vala
, desktop-file-utils
, meson
, ninja
, pkg-config
, python3
, gtk3
, libhandy
, glib
, libxml2
, wrapGAppsHook
, itstool
, gnome3
}:

let
stdenv.mkDerivation rec {
pname = "baobab";
version = "3.38.0";
in stdenv.mkDerivation rec {
name = "${pname}-${version}";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
sha256 = "0ac3fbl15l836yvgw724q4whbkws9v4b6l2xy6bnp0b0g0a6i104";
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "19yii3bdgivxrcka1c4g6dpbmql5nyawwhzlsph7z6bs68nambm6";
};

nativeBuildInputs = [ meson ninja pkg-config vala gettext itstool libxml2 desktop-file-utils wrapGAppsHook python3 ];
buildInputs = [ gtk3 glib gnome3.adwaita-icon-theme ];
nativeBuildInputs = [
meson
ninja
pkg-config
vala
gettext
itstool
libxml2
desktop-file-utils
wrapGAppsHook
python3
];

buildInputs = [
gtk3
libhandy
glib
gnome3.adwaita-icon-theme
];

doCheck = true;

@@ -27,7 +57,7 @@ in stdenv.mkDerivation rec {
meta = with lib; {
description = "Graphical application to analyse disk usage in any GNOME environment";
homepage = "https://wiki.gnome.org/Apps/DiskUsageAnalyzer";
license = licenses.gpl2;
license = licenses.gpl2Plus;
maintainers = teams.gnome.members;
platforms = platforms.linux;
};
@@ -1,21 +1,51 @@
{ lib, stdenv, fetchurl, meson, ninja, vala, libxslt, pkg-config, glib, gtk3, gnome3, python3, dconf
, libxml2, gettext, docbook_xsl, wrapGAppsHook, gobject-introspection }:
{ lib
, stdenv
, fetchurl
, meson
, ninja
, vala
, libxslt
, pkg-config
, glib
, gtk3
, gnome3
, python3
, dconf
, libxml2
, gettext
, docbook-xsl-nons
, wrapGAppsHook
, gobject-introspection
}:

stdenv.mkDerivation rec {
pname = "dconf-editor";
version = "3.38.2";
version = "3.38.3";

src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "sha256-ElPa2H5iE/vzE/+eydxDWKobECYfKAcsHcDgmXuS+DU=";
sha256 = "sha256-Vxr0x9rU8Em1PmzXKLea3fCMJ92ra8V7OW0hGGbueeM=";
};

nativeBuildInputs = [
meson ninja vala libxslt pkg-config wrapGAppsHook
gettext docbook_xsl libxml2 gobject-introspection python3
meson
ninja
vala
libxslt
pkg-config
wrapGAppsHook
gettext
docbook-xsl-nons
libxml2
gobject-introspection
python3
];

buildInputs = [ glib gtk3 dconf ];
buildInputs = [
glib
gtk3
dconf
];

postPatch = ''
chmod +x meson_post_install.py
@@ -30,7 +60,10 @@ stdenv.mkDerivation rec {
};

meta = with lib; {
platforms = platforms.linux;
description = "GSettings editor for GNOME";
homepage = "https://wiki.gnome.org/Apps/DconfEditor";
license = licenses.gpl3Plus;
maintainers = teams.gnome.members;
platforms = platforms.linux;
};
}
@@ -28,11 +28,11 @@

stdenv.mkDerivation rec {
pname = "eog";
version = "3.38.2";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "sha256-ilT9+T4wag9khToYgxrIwEg4IEdxBqrgvcAKrDc4bw4=";
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "sha256-MBfJhPEVl3wivE+dJ9CfgOyWrfaQG07A9PVC7wI95fk=";
};

nativeBuildInputs = [
@@ -19,6 +19,7 @@
, libsecret
, gnome-desktop
, libnotify
, libarchive
, p11-kit
, sqlite
, gcr
@@ -36,18 +37,13 @@

stdenv.mkDerivation rec {
pname = "epiphany";
version = "3.38.2";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0v8iymg72m83ikxxyhapvz5v8zh8hlr1pw7n215cy3p8q6yg41cb";
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "0i58mfmdkzgamb08p6sp6q9imrqn25a3gcw6fq9v06xdcq7iry6m";
};

# Tests need an X display
mesonFlags = [
"-Dunit_tests=disabled"
];

nativeBuildInputs = [
desktop-file-utils
gettext
@@ -83,6 +79,7 @@ stdenv.mkDerivation rec {
libhandy
libportal
libnotify
libarchive
libsecret
libsoup
libxml2
@@ -92,6 +89,11 @@ stdenv.mkDerivation rec {
webkitgtk
];

# Tests need an X display
mesonFlags = [
"-Dunit_tests=disabled"
];

postPatch = ''
chmod +x post_install.py # patchShebangs requires executable file
patchShebangs post_install.py
@@ -107,7 +109,7 @@ stdenv.mkDerivation rec {
homepage = "https://wiki.gnome.org/Apps/Epiphany";
description = "WebKit based web browser for GNOME";
maintainers = teams.gnome.members;
license = licenses.gpl2;
license = licenses.gpl3Plus;
platforms = platforms.linux;
};
}
@@ -19,6 +19,7 @@
, djvulibre
, libspectre
, libarchive
, libhandy
, libsecret
, wrapGAppsHook
, librsvg
@@ -43,13 +44,13 @@

stdenv.mkDerivation rec {
pname = "evince";
version = "3.38.2";
version = "40.1";

outputs = [ "out" "dev" "devdoc" ];

src = fetchurl {
url = "mirror://gnome/sources/evince/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "J9QZ1f7WMF4HRijtz94MtzT//aIF1jysMjORwEkDvZQ=";
url = "mirror://gnome/sources/evince/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "0bfg7prmjk3z8irx1nfkkqph3igg3cy4pwd7pcxjxbshqdin6rks";
};

postPatch = ''
@@ -86,6 +87,7 @@ stdenv.mkDerivation rec {
gspell
gtk3
libarchive
libhandy
librsvg
libsecret
libspectre
@@ -6,13 +6,13 @@

stdenv.mkDerivation rec {
pname = "evolution-data-server";
version = "3.38.4";
version = "3.40.0";

outputs = [ "out" "dev" ];

src = fetchurl {
url = "mirror://gnome/sources/evolution-data-server/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "rFPxay1R8+f/gCX5yhn0otTOOEHXKun+K7iX3ICZ1wU=";
sha256 = "0iblv19vn35nai57y6ls5lg6hlp6pv6ahj9ljh4mhdm2nq62ymzd";
};

patches = [
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
passthru = {
updateScript = gnome3.updateScript {
packageName = "evolution-data-server";
versionPolicy = "odd-unstable";
};
};

@@ -42,13 +42,13 @@ in

stdenv.mkDerivation rec {
pname = "gdm";
version = "3.38.2.1";
version = "40.0";

outputs = [ "out" "dev" ];

src = fetchurl {
url = "mirror://gnome/sources/gdm/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "yliiBdXr/L2rVqEXFriY4Wrl3/Ia7nnQdgRkRGKOxNo=";
url = "mirror://gnome/sources/gdm/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "XtdLc506Iy/7HkoTK8+WW9/pVdmVtSh3NYh3WwLylQ4=";
};

mesonFlags = [
@@ -90,10 +90,13 @@ stdenv.mkDerivation rec {
];

patches = [
# https://gitlab.gnome.org/GNOME/gdm/-/merge_requests/112
# GDM fails to find g-s with the following error in the journal.
# gdm-x-session[976]: dbus-run-session: failed to exec 'gnome-session': No such file or directory
# https://gitlab.gnome.org/GNOME/gdm/-/merge_requests/92
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/gdm/-/commit/1d28d4b3568381b8590d2235737b924aefd1746c.patch";
sha256 = "ZUXKZS4T0o0hzrApxaqcR0txCRv5zBgqeQ9K9fLNX1o=";
url = "https://gitlab.gnome.org/GNOME/gdm/-/commit/ccecd9c975d04da80db4cd547b67a1a94fa83292.patch";
sha256 = "5hKS9wjjhuSAYwXct5vS0dPbmPRIINJoLC0Zm1naz6Q=";
revert = true;
})

# Change hardcoded paths to nix store paths.
@@ -2,11 +2,11 @@

stdenv.mkDerivation rec {
pname = "gnome-backgrounds";
version = "3.38.0";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/gnome-backgrounds/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "1qqygm15rcdgm36vz2iy7b9axndjzvpi29lmygyakjc07a3jlwgp";
url = "mirror://gnome/sources/gnome-backgrounds/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "1xm2cyhw88yna9a3inbw7c7my217i2zn4s9rmr3h666pbqx17hs6";
};

passthru = {
@@ -1,28 +1,62 @@
{ lib, stdenv, fetchurl, gnome3, meson, ninja, pkg-config, gtk3, intltool, glib
, udev, itstool, libxml2, wrapGAppsHook, libnotify, libcanberra-gtk3, gobject-introspection
, gtk-doc, docbook_xsl, docbook_xml_dtd_43, python3, gsettings-desktop-schemas }:
{ lib
, stdenv
, fetchurl
, gnome3
, meson
, ninja
, pkg-config
, gtk3
, gettext
, glib
, udev
, itstool
, libxml2
, wrapGAppsHook
, libnotify
, libcanberra-gtk3
, gobject-introspection
, gtk-doc
, docbook-xsl-nons
, docbook_xml_dtd_43
, python3
, gsettings-desktop-schemas
}:

let
stdenv.mkDerivation rec {
pname = "gnome-bluetooth";
in stdenv.mkDerivation rec {
name = "${pname}-${version}";
version = "3.34.3";
version = "3.34.5";

# TODO: split out "lib"
outputs = [ "out" "dev" "devdoc" "man" ];

src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
sha256 = "08k4jak4r72pvn5kjhm21planyc514j6c7jjj5lv9nmvvlxqw1ha";
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "1a9ynlwwkb3wpg293ym517vmrkk63y809mmcv9a21k5yr199x53c";
};

nativeBuildInputs = [
meson ninja intltool itstool pkg-config libxml2 wrapGAppsHook gobject-introspection
gtk-doc docbook_xsl docbook_xml_dtd_43 python3
meson
ninja
gettext
itstool
pkg-config
libxml2
wrapGAppsHook
gobject-introspection
gtk-doc
docbook-xsl-nons
docbook_xml_dtd_43
python3
];

buildInputs = [
glib gtk3 udev libnotify libcanberra-gtk3
gnome3.adwaita-icon-theme gsettings-desktop-schemas
glib
gtk3
udev
libnotify
libcanberra-gtk3
gnome3.adwaita-icon-theme
gsettings-desktop-schemas
];

mesonFlags = [
@@ -46,7 +80,7 @@ in stdenv.mkDerivation rec {
homepage = "https://help.gnome.org/users/gnome-bluetooth/stable/index.html.en";
description = "Application that let you manage Bluetooth in the GNOME destkop";
maintainers = teams.gnome.members;
license = licenses.gpl2;
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
}
@@ -1,25 +1,63 @@
{ lib, stdenv, meson, ninja, vala, gettext, itstool, fetchurl, pkg-config, libxml2
, gtk3, glib, gtksourceview4, wrapGAppsHook, gobject-introspection, python3
, gnome3, mpfr, gmp, libsoup, libmpc, gsettings-desktop-schemas, libgee }:
{ stdenv
, lib
, meson
, ninja
, vala
, gettext
, itstool
, fetchurl
, pkg-config
, libxml2
, gtk3
, glib
, gtksourceview4
, wrapGAppsHook
, gobject-introspection
, python3
, gnome3
, mpfr
, gmp
, libsoup
, libmpc
, libhandy
, gsettings-desktop-schemas
, libgee
}:

stdenv.mkDerivation rec {
pname = "gnome-calculator";
version = "3.38.2";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/gnome-calculator/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0sri58cp6v07cqpdsf8dhf9dnykz305kvkx0l9dd25g06djcr0wc";
url = "mirror://gnome/sources/gnome-calculator/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "1qsddhr1himkgghq40g81g5ny4wjc723vfyqfa8fnw0ips45k8pk";
};

nativeBuildInputs = [
meson ninja pkg-config vala gettext itstool wrapGAppsHook python3
meson
ninja
pkg-config
vala
gettext
itstool
wrapGAppsHook
python3
gobject-introspection # for finding vapi files
];

buildInputs = [
gtk3 glib libxml2 gtksourceview4 mpfr gmp
gnome3.adwaita-icon-theme libgee
gsettings-desktop-schemas libsoup libmpc
gtk3
glib
libxml2
gtksourceview4
mpfr
gmp
gnome3.adwaita-icon-theme
libgee
gsettings-desktop-schemas
libsoup
libmpc
libhandy
];

doCheck = true;
@@ -29,6 +67,11 @@ stdenv.mkDerivation rec {
patchShebangs meson_post_install.py
'';

preCheck = ''
# Currency conversion test tries to store currency data in $HOME/.cache.
export HOME=$TMPDIR
'';

passthru = {
updateScript = gnome3.updateScript {
packageName = "gnome-calculator";
@@ -40,7 +83,7 @@ stdenv.mkDerivation rec {
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 = teams.gnome.members;
license = licenses.gpl3;
license = licenses.gpl3Plus;
platforms = platforms.linux;
};
}
@@ -17,6 +17,7 @@
, gnome-online-accounts
, wrapGAppsHook
, folks
, libgdata
, libxml2
, gnome3
, vala
@@ -28,11 +29,11 @@

stdenv.mkDerivation rec {
pname = "gnome-contacts";
version = "3.38.1";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/gnome-contacts/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0hsq0dwxjahcaxnm1m4r1lync9k2fkwzybfmkchrmn95vqcwwvf9";
url = "mirror://gnome/sources/gnome-contacts/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "0w2g5xhw65adzvwzakrj5kaim4sw1w7s8qqwm3nm6inq50znzpn9";
};

propagatedUserEnvPkgs = [
@@ -58,6 +59,7 @@ stdenv.mkDerivation rec {
evolution-data-server
gsettings-desktop-schemas
folks
libgdata # required by some dependency transitively
gnome-desktop
libhandy
libxml2
@@ -1,6 +1,7 @@
{ fetchurl
, fetchFromGitLab
, lib, stdenv
, fetchpatch
, lib
, stdenv
, substituteAll
, accountsservice
, adwaita-icon-theme
@@ -10,7 +11,7 @@
, colord
, colord-gtk
, cups
, docbook_xsl
, docbook-xsl-nons
, fontconfig
, gdk-pixbuf
, gettext
@@ -69,20 +70,32 @@

stdenv.mkDerivation rec {
pname = "gnome-control-center";
version = "3.38.4";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "sha256-SdxjeNTTXBxu1ZIk9WNpFsK2+km7+4tW6xmoTW6QzRk=";
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "sha256-zMmlc2UXOFEJrlpZkGwlgkTdh5t1A61ZhM9BZVyzAvE=";
};

# See https://mail.gnome.org/archives/distributor-list/2020-September/msg00001.html
prePatch = (import ../gvc-with-ucm-prePatch.nix {
inherit fetchFromGitLab;
});
patches = [
(substituteAll {
src = ./paths.patch;
gcm = gnome-color-manager;
gnome_desktop = gnome-desktop;
inherit glibc libgnomekbd tzdata;
inherit cups networkmanagerapplet;
})

# Fix startup assertion in power panel.
# https://gitlab.gnome.org/GNOME/gnome-control-center/merge_requests/974
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/gnome-control-center/commit/9acaa10567c94048657c69538e5d7813f82c4224.patch";
sha256 = "59GeTPcG2UiVTL4VTS/TP0p0QkAQpm3VgvuAiw64wUU=";
})
];

nativeBuildInputs = [
docbook_xsl
docbook-xsl-nons
gettext
libxslt
meson
@@ -142,16 +155,6 @@ stdenv.mkDerivation rec {
upower
];

patches = [
(substituteAll {
src = ./paths.patch;
gcm = gnome-color-manager;
gnome_desktop = gnome-desktop;
inherit glibc libgnomekbd tzdata;
inherit cups networkmanagerapplet;
})
];

postPatch = ''
chmod +x build-aux/meson/meson_post_install.py # patchShebangs requires executable file
patchShebangs build-aux/meson/meson_post_install.py
@@ -1,26 +1,26 @@
diff --git a/panels/color/cc-color-panel.c b/panels/color/cc-color-panel.c
index 49ca35220..adefb87b9 100644
index 603178efc..c363a6a5c 100644
--- a/panels/color/cc-color-panel.c
+++ b/panels/color/cc-color-panel.c
@@ -599,7 +599,7 @@ gcm_prefs_calibrate_cb (GtkWidget *widget, CcColorPanel *prefs)
@@ -591,7 +591,7 @@ gcm_prefs_calibrate_cb (CcColorPanel *prefs)

/* 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_strdup ("gcm-calibrate"));
+ 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 @@ gcm_prefs_profile_view (CcColorPanel *prefs, CdProfile *profile)
@@ -1029,7 +1029,7 @@ gcm_prefs_profile_view (CcColorPanel *prefs, CdProfile *profile)

/* 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_strdup ("gcm-viewer"));
+ 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 @@ gcm_prefs_device_clicked (CcColorPanel *prefs, CdDevice *device)
@@ -1275,15 +1275,12 @@ gcm_prefs_device_clicked (CcColorPanel *prefs, CdDevice *device)
static void
gcm_prefs_profile_clicked (CcColorPanel *prefs, CdProfile *profile, CdDevice *device)
{
@@ -38,12 +38,12 @@ index 49ca35220..adefb87b9 100644
else
gtk_widget_set_sensitive (prefs->toolbutton_profile_view, FALSE);
diff --git a/panels/datetime/tz.h b/panels/datetime/tz.h
index 96b25140c..1ad704d4a 100644
index a2376f8a4..98769e08f 100644
--- a/panels/datetime/tz.h
+++ b/panels/datetime/tz.h
@@ -27,11 +27,7 @@

#include <glib.h>
G_BEGIN_DECLS

-#ifndef __sun
-# define TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab"
@@ -55,25 +55,42 @@ index 96b25140c..1ad704d4a 100644
typedef struct _TzDB TzDB;
typedef struct _TzLocation TzLocation;
diff --git a/panels/info-overview/cc-info-overview-panel.c b/panels/info-overview/cc-info-overview-panel.c
index 4541986db..da7826bfe 100644
index bd0e07762..0e71351f8 100644
--- a/panels/info-overview/cc-info-overview-panel.c
+++ b/panels/info-overview/cc-info-overview-panel.c
@@ -169,7 +169,7 @@ load_gnome_version (char **version,
@@ -172,7 +172,7 @@ load_gnome_version (char **version,
gsize length;
g_autoptr(VersionData) data = NULL;

- if (!g_file_get_contents (DATADIR "/gnome/gnome-version.xml",
+ if (!g_file_get_contents ("@gnome_desktop@/share/gnome/gnome-version.xml",
&contents,
&length,
&error))
diff --git a/panels/keyboard/cc-input-list-box.c b/panels/keyboard/cc-input-list-box.c
index 6c2cb5614..8f57159cc 100644
--- a/panels/keyboard/cc-input-list-box.c
+++ b/panels/keyboard/cc-input-list-box.c
@@ -223,10 +223,10 @@ row_layout_cb (CcInputListBox *self,
layout_variant = cc_input_source_get_layout_variant (source);

if (layout_variant && layout_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, 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);
diff --git a/panels/network/connection-editor/net-connection-editor.c b/panels/network/connection-editor/net-connection-editor.c
index 9390a3308..d30b4a68e 100644
index 505b8ee25..62e94009f 100644
--- a/panels/network/connection-editor/net-connection-editor.c
+++ b/panels/network/connection-editor/net-connection-editor.c
@@ -278,9 +278,9 @@ net_connection_editor_do_fallback (NetConnectionEditor *self, const gchar *type)
@@ -267,9 +267,9 @@ net_connection_editor_do_fallback (NetConnectionEditor *self, const gchar *type)
g_autoptr(GError) error = NULL;

if (self->is_new_connection) {
- cmdline = g_strdup_printf ("nm-connection-editor --type='%s' --create", type);
+ cmdline = g_strdup_printf ("@networkmanagerapplet@/bin/nm-connection-editor --type='%s' --create", type);
@@ -84,19 +101,20 @@ index 9390a3308..d30b4a68e 100644
}

diff --git a/panels/network/net-device-bluetooth.c b/panels/network/net-device-bluetooth.c
index 74dfb0e9a..5f53d1a20 100644
--- a/panels/network/net-device-bluetooth.c
+++ b/panels/network/net-device-bluetooth.c
@@ -90,7 +90,7 @@ nm_device_bluetooth_refresh_ui (NetDeviceBluetooth *self)
update_off_switch_from_device_state (self->device_off_switch, state, self);

/* set up the Options button */
- path = g_find_program_in_path ("nm-connection-editor");
+ path = g_find_program_in_path ("@networkmanagerapplet@/bin/nm-connection-editor");
gtk_widget_set_visible (GTK_WIDGET (self->options_button), state != NM_DEVICE_STATE_UNMANAGED && path != NULL);
}

@@ -141,7 +141,7 @@ options_button_clicked_cb (NetDeviceBluetooth *self)

connection = net_device_get_find_connection (self->client, self->device);
uuid = nm_connection_get_uuid (connection);
- cmdline = g_strdup_printf ("nm-connection-editor --edit %s", uuid);
@@ -105,67 +123,51 @@ diff --git a/panels/network/net-device-bluetooth.c b/panels/network/net-device-b
if (!g_spawn_command_line_async (cmdline, &error))
g_warning ("Failed to launch nm-connection-editor: %s", error->message);
@@ -185,7 +185,7 @@ net_device_bluetooth_init (NetDeviceBluetooth *self)

gtk_widget_init_template (GTK_WIDGET (self));

- path = g_find_program_in_path ("nm-connection-editor");
+ path = g_find_program_in_path ("@networkmanagerapplet@/bin/nm-connection-editor");
gtk_widget_set_visible (GTK_WIDGET (self->options_button), path != NULL);
}

diff --git a/panels/network/net-device-mobile.c b/panels/network/net-device-mobile.c
index 34eb86241..50d0a2bed 100644
--- a/panels/network/net-device-mobile.c
+++ b/panels/network/net-device-mobile.c
@@ -484,7 +484,7 @@ options_button_clicked_cb (NetDeviceMobile *self)

@@ -508,7 +508,7 @@ options_button_clicked_cb (NetDeviceMobile *self)
connection = net_device_get_find_connection (self->client, self->device);
uuid = nm_connection_get_uuid (connection);
- cmdline = g_strdup_printf ("nm-connection-editor --edit %s", uuid);
+ cmdline = g_strdup_printf ("@networkmanagerapplet@/bin/nm-connection-editor --edit %s", uuid);
g_debug ("Launching '%s'\n", cmdline);
if (!g_spawn_command_line_async (cmdline, &error))
g_warning ("Failed to launch nm-connection-editor: %s", error->message);
@@ -776,7 +776,7 @@ net_device_mobile_init (NetDeviceMobile *self)

@@ -797,7 +797,7 @@ net_device_mobile_init (NetDeviceMobile *self)
self->cancellable = g_cancellable_new ();

- path = g_find_program_in_path ("nm-connection-editor");
+ path = g_find_program_in_path ("@networkmanagerapplet@/bin/nm-connection-editor");
gtk_widget_set_visible (GTK_WIDGET (self->options_button), path != NULL);
}

diff --git a/panels/printers/pp-host.c b/panels/printers/pp-host.c
index f53ba217e..d24bcaeb9 100644
index a31a606e3..ed5133d29 100644
--- a/panels/printers/pp-host.c
+++ b/panels/printers/pp-host.c
@@ -256,7 +256,7 @@ _pp_host_get_snmp_devices_thread (GTask *task,
devices = g_new0 (PpDevicesList, 1);
devices = g_ptr_array_new_with_free_func (g_object_unref);

argv = g_new0 (gchar *, 3);
- argv[0] = g_strdup ("/usr/lib/cups/backend/snmp");
+ argv[0] = g_strdup ("@cups@/lib/cups/backend/snmp");
argv[1] = g_strdup (priv->hostname);

/* Use SNMP to get printer's informations */
diff --git a/panels/region/cc-region-panel.c b/panels/region/cc-region-panel.c
index 35859526d..21486c917 100644
--- a/panels/region/cc-region-panel.c
+++ b/panels/region/cc-region-panel.c
@@ -755,10 +755,10 @@ row_layout_cb (CcRegionPanel *self,
layout_variant = cc_input_source_get_layout_variant (source);

if (layout_variant && layout_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, 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);
diff --git a/panels/user-accounts/run-passwd.c b/panels/user-accounts/run-passwd.c
index 00239ce0f..617c98870 100644
index 86f53d4fc..0b052856f 100644
--- a/panels/user-accounts/run-passwd.c
+++ b/panels/user-accounts/run-passwd.c
@@ -150,7 +150,7 @@ spawn_passwd (PasswdHandler *passwd_handler, GError **error)
@@ -1,29 +1,40 @@
{ lib, stdenv, fetchurl, substituteAll, pkg-config, libxslt, ninja, gnome3, gtk3, glib
, gettext, libxml2, xkeyboard_config, isocodes, meson, wayland
, libseccomp, systemd, bubblewrap, gobject-introspection, gtk-doc, docbook_xsl, gsettings-desktop-schemas }:
{ lib
, stdenv
, fetchurl
, substituteAll
, pkg-config
, libxslt
, ninja
, gnome3
, gtk3
, glib
, gettext
, libxml2
, xkeyboard_config
, libxkbcommon
, isocodes
, meson
, wayland
, libseccomp
, systemd
, bubblewrap
, gobject-introspection
, gtk-doc
, docbook-xsl-nons
, gsettings-desktop-schemas
}:

stdenv.mkDerivation rec {
pname = "gnome-desktop";
version = "3.38.4";
version = "40.0";

outputs = [ "out" "dev" "devdoc" ];

src = fetchurl {
url = "mirror://gnome/sources/gnome-desktop/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "sha256-P2A+pb/UdyLJLPybiFRGtGJg6gnIz7Y/a92f7+NC5Iw=";
url = "mirror://gnome/sources/gnome-desktop/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "sha256-IKv9P4MeToCStVg5MRZh3HOyvxP8m+9xxKWkR12p7gQ=";
};

nativeBuildInputs = [
pkg-config meson ninja gettext libxslt libxml2 gobject-introspection
gtk-doc docbook_xsl glib
];
buildInputs = [
bubblewrap xkeyboard_config isocodes wayland
gtk3 glib libseccomp systemd
];

propagatedBuildInputs = [ gsettings-desktop-schemas ];

patches = [
(substituteAll {
src = ./bubblewrap-paths.patch;
@@ -32,6 +43,35 @@ stdenv.mkDerivation rec {
})
];

nativeBuildInputs = [
pkg-config
meson
ninja
gettext
libxslt
libxml2
gobject-introspection
gtk-doc
docbook-xsl-nons
glib
];

buildInputs = [
bubblewrap
xkeyboard_config
libxkbcommon # for xkbregistry
isocodes
wayland
gtk3
glib
libseccomp
systemd
];

propagatedBuildInputs = [
gsettings-desktop-schemas
];

mesonFlags = [
"-Dgtk_doc=true"
"-Ddesktop_docs=false"
@@ -46,7 +86,8 @@ stdenv.mkDerivation rec {

meta = with lib; {
description = "Library with common API for various GNOME modules";
license = with licenses; [ gpl2 lgpl2 ];
homepage = "https://gitlab.gnome.org/GNOME/gnome-desktop";
license = with licenses; [ gpl2Plus lgpl2Plus ];
platforms = platforms.linux;
maintainers = teams.gnome.members;
};
@@ -1,24 +1,16 @@
{ lib, stdenv, fetchurl, fetchpatch, meson, ninja, pkg-config, desktop-file-utils, appstream-glib, libxslt
{ lib, stdenv, fetchurl, meson, ninja, pkg-config, desktop-file-utils, appstream-glib, libxslt
, libxml2, gettext, itstool, wrapGAppsHook, docbook_xsl, docbook_xml_dtd_43
, gnome3, gtk3, glib, gsettings-desktop-schemas }:

stdenv.mkDerivation rec {
pname = "gnome-dictionary";
version = "3.26.1";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/gnome-dictionary/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "16b8bc248dcf68987826d5e39234b1bb7fd24a2607fcdbf4258fde88f012f300";
url = "mirror://gnome/sources/gnome-dictionary/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "1d8dhcfys788vv27v34i3s3x3jdvdi2kqn2a5p8c937a9hm0qr9f";
};

patches = [
# fix AppStream validation
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/gnome-dictionary/commit/1c94d612030ef87c6e26a01a490470b71c39e341.patch";
sha256 = "0cbswmhs9mks3gsc0iy4wnidsa8sfzzf4s1kgvb80qwffgxz5m8b";
})
];

doCheck = true;

nativeBuildInputs = [
@@ -1,26 +1,66 @@
{ lib, stdenv, gettext, fetchurl, pkg-config, udisks2, libsecret, libdvdread
, meson, ninja, gtk3, glib, wrapGAppsHook, python3, libnotify
, itstool, gnome3, libxml2, gsettings-desktop-schemas
, libcanberra-gtk3, libxslt, docbook_xsl, libpwquality, systemd }:
{ lib
, stdenv
, gettext
, fetchurl
, pkg-config
, udisks2
, libhandy
, libsecret
, libdvdread
, meson
, ninja
, gtk3
, glib
, wrapGAppsHook
, python3
, libnotify
, itstool
, gnome3
, libxml2
, gsettings-desktop-schemas
, libcanberra-gtk3
, libxslt
, docbook-xsl-nons
, libpwquality
, systemd
}:

stdenv.mkDerivation rec {
pname = "gnome-disk-utility";
version = "3.38.2";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/gnome-disk-utility/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "sha256-EL7d5UlL6zTjoiDW8w2TIMiCUv7rhCa9mM760YNteOk=";
url = "mirror://gnome/sources/gnome-disk-utility/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "sha256-n5xy9EU8n2yw/52d7uxncD4RsHNtgm99Alz2pobvSJc=";
};

nativeBuildInputs = [
meson ninja pkg-config gettext itstool libxslt docbook_xsl
wrapGAppsHook python3 libxml2
meson
ninja
pkg-config
gettext
itstool
libxslt
docbook-xsl-nons
wrapGAppsHook
python3
libxml2
];

buildInputs = [
gtk3 glib libsecret libpwquality libnotify libdvdread libcanberra-gtk3
udisks2 gnome3.adwaita-icon-theme systemd
gnome3.gnome-settings-daemon gsettings-desktop-schemas
gtk3
glib
libhandy
libsecret
libpwquality
libnotify
libdvdread
libcanberra-gtk3
udisks2
gnome3.adwaita-icon-theme
systemd
gnome3.gnome-settings-daemon
gsettings-desktop-schemas
];

postPatch = ''
@@ -36,10 +76,10 @@ stdenv.mkDerivation rec {
};

meta = with lib; {
homepage = "https://en.wikipedia.org/wiki/GNOME_Disks";
homepage = "https://wiki.gnome.org/Apps/Disks";
description = "A udisks graphical front-end";
maintainers = teams.gnome.members;
license = licenses.gpl2;
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
}
@@ -1,20 +1,20 @@
{ lib, stdenv, meson, ninja, gettext, fetchurl
, pkg-config, gtk3, glib, libxml2, gnome-desktop, adwaita-icon-theme
, pkg-config, gtk3, glib, libxml2, gnome-desktop, adwaita-icon-theme, libhandy
, wrapGAppsHook, gnome3, harfbuzz }:

stdenv.mkDerivation rec {
pname = "gnome-font-viewer";
version = "3.34.0";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/gnome-font-viewer/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "12xrsqwmvid7hksiw4zhj4jd1qwxn8w0czskbq4yqfprwn1havxa";
url = "mirror://gnome/sources/gnome-font-viewer/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "0hpyi0sz3gcqqs9lkwyk8b6hr39m3n27432x98kxr436jj37dk6j";
};

doCheck = true;

nativeBuildInputs = [ meson ninja pkg-config gettext wrapGAppsHook libxml2 ];
buildInputs = [ gtk3 glib gnome-desktop adwaita-icon-theme harfbuzz ];
buildInputs = [ gtk3 glib gnome-desktop adwaita-icon-theme harfbuzz libhandy ];

# Do not run meson-postinstall.sh
preConfigure = "sed -i '2,$ d' meson-postinstall.sh";
@@ -5,29 +5,10 @@ Date: Sun, 20 Sep 2020 14:46:59 -0400
Subject: [PATCH] fix paths

---
data/gnome-welcome-tour | 4 ++--
gnome-initial-setup/pages/keyboard/cc-input-chooser.c | 6 +++---
gnome-initial-setup/pages/timezone/tz.h | 4 ++--
3 files changed, 7 insertions(+), 7 deletions(-)
3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/data/gnome-welcome-tour b/data/gnome-welcome-tour
index 51c9b59..68ab0c4 100755
--- a/data/gnome-welcome-tour
+++ b/data/gnome-welcome-tour
@@ -3,11 +3,11 @@
cfgdir=${XDG_CONFIG_DIR:-$HOME/.config}

# Don't do anything if gnome-tour isn't installed
-gnome_tour_path=$(which gnome-tour 2>/dev/null)
+gnome_tour_path="@gnome_tour@"
if test -z "${gnome_tour_path}"; then
rm -f $cfgdir/run-welcome-tour
exit
fi

-gnome-tour
+@gnome_tour@
rm -f $cfgdir/run-welcome-tour
diff --git a/gnome-initial-setup/pages/keyboard/cc-input-chooser.c b/gnome-initial-setup/pages/keyboard/cc-input-chooser.c
index 196abf6..613d0e5 100644
--- a/gnome-initial-setup/pages/keyboard/cc-input-chooser.c
@@ -14,7 +14,6 @@
, geocode-glib
, glib
, gnome-desktop
, gnome-getting-started-docs
, gnome-online-accounts
, gtk3
, libgweather
@@ -32,18 +31,24 @@
, tzdata
, libgnomekbd
, gsettings-desktop-schemas
, gnome-tour
}:

stdenv.mkDerivation rec {
pname = "gnome-initial-setup";
version = "3.38.4";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "001jdzsvc541qracn68r609pr5qwymrh85xrqmvzzc1dbg5w3mlg";
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "0vw9k4drslbxr9q0160v88zny3xx0rkfqks1lw9f23iq2i3cgq0l";
};

patches = [
(substituteAll {
src = ./0001-fix-paths.patch;
inherit tzdata libgnomekbd;
})
];

nativeBuildInputs = [
gettext
meson
@@ -61,7 +66,6 @@ stdenv.mkDerivation rec {
geocode-glib
glib
gnome-desktop
gnome-getting-started-docs
gnome-online-accounts
gsettings-desktop-schemas
gtk3
@@ -78,14 +82,6 @@ stdenv.mkDerivation rec {
webkitgtk
];

patches = [
(substituteAll {
src = ./0001-fix-paths.patch;
inherit tzdata libgnomekbd;
gnome_tour = "${gnome-tour}/bin/gnome-tour";
})
];

mesonFlags = [
"-Dcheese=disabled"
"-Dibus=disabled"
@@ -1,51 +1,72 @@
{ lib, stdenv, fetchurl, fetchpatch, pkg-config, dbus, libgcrypt, pam, python2, glib, libxslt
, gettext, gcr, libcap_ng, libselinux, p11-kit, openssh, wrapGAppsHook
, docbook_xsl, docbook_xml_dtd_43, gnome3 }:
{ lib
, stdenv
, fetchurl
, pkg-config
, dbus
, libgcrypt
, pam
, python2
, glib
, libxslt
, gettext
, gcr
, libcap_ng
, libselinux
, p11-kit
, openssh
, wrapGAppsHook
, docbook-xsl-nons
, docbook_xml_dtd_43
, gnome3
}:

stdenv.mkDerivation rec {
pname = "gnome-keyring";
version = "3.36.0";
version = "40.0";

outputs = [ "out" "dev" ];

src = fetchurl {
url = "mirror://gnome/sources/gnome-keyring/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "11sgffrrpss5cmv3b717pqlbhgq17l1xd33fsvqgsw8simxbar52";
url = "mirror://gnome/sources/gnome-keyring/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "0cdrlcw814zayhvlaxqs1sm9bqlfijlp22dzzd0g5zg2isq4vlm3";
};

patches = [
# version 3.36.0 is incompatible with libncap_ng >= 0.8.1. remove patch after update.
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/gnome-keyring/-/commit/ebc7bc9efacc17049e54da8d96a4a29943621113.diff";
sha256 = "07bx7zmdswqsa3dj37m729g35n1prhylkw7ya8a7h64i10la12cs";
})
nativeBuildInputs = [
pkg-config
gettext
libxslt
docbook-xsl-nons
docbook_xml_dtd_43
wrapGAppsHook
];

outputs = [ "out" "dev" ];

buildInputs = [
glib libgcrypt pam openssh libcap_ng libselinux
gcr p11-kit
glib
libgcrypt
pam
openssh
libcap_ng
libselinux
gcr
p11-kit
];

nativeBuildInputs = [
pkg-config gettext libxslt docbook_xsl docbook_xml_dtd_43 wrapGAppsHook
];
# In 3.20.1, tests do not support Python 3
checkInputs = [ dbus python2 ];

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 ];
postPatch = ''
patchShebangs build
'';

checkPhase = ''
export HOME=$(mktemp -d)
@@ -4,13 +4,13 @@

let
pname = "gnome-screenshot";
version = "3.38.0";
version = "40.0";
in stdenv.mkDerivation rec {
name = "${pname}-${version}";

src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
sha256 = "1h4zsaybjrlkfcrvriyybg4gfr7v9d1ndh2p516k94ad2gfx6mp5";
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${name}.tar.xz";
sha256 = "1qm544ymwibk31s30k47vnn79xg30m18r7l4di0c57g375dak31n";
};

doCheck = true;
@@ -1,4 +1,5 @@
{ lib, stdenv
{ lib
, stdenv
, fetchFromGitHub
, meson
, ninja
@@ -10,13 +11,13 @@

stdenv.mkDerivation rec {
pname = "gnome-session-ctl";
version = "3.38.0";
version = "40.0";

src = fetchFromGitHub {
owner = "nix-community";
repo = pname;
rev = "c20907fea27fa96568b8375a6756c40d0bfb9e40"; # main
hash = "sha256-y9/yOH6N8wf93+gPqnqzRzV/lPXYD0M6v7dsLFF8lWo=";
rev = version;
hash = "sha256-gvBmLx8Qoj1vPsOwaZsd9+pTDvU5D7uUts7ZT1pXwNo=";
};

nativeBuildInputs = [
@@ -1,17 +1,16 @@
{ fetchurl, lib, stdenv, substituteAll, meson, ninja, pkg-config, 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, gnome-session-ctl
, fetchpatch }:
, libxslt, gettext, makeWrapper, systemd, xorg, epoxy, gnugrep, bash, gnome-session-ctl }:

stdenv.mkDerivation rec {
pname = "gnome-session";
version = "3.38.0";
version = "40.0";

outputs = ["out" "sessions"];

src = fetchurl {
url = "mirror://gnome/sources/gnome-session/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0rrxjk3vbqy3cdgnl7rw71dvcyrvhwq3m6s53dnkyjxsrnr0xk3v";
url = "mirror://gnome/sources/gnome-session/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "128smcbs2xlx1mgdvmnyvv4imx7xah3dxvirqid2gz74qrcirpl0";
};

patches = [
@@ -22,12 +21,6 @@ stdenv.mkDerivation rec {
grep = "${gnugrep}/bin/grep";
bash = "${bash}/bin/bash";
})
# Fixes 2 minute delay at poweroff.
# https://gitlab.gnome.org/GNOME/gnome-session/issues/74
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/gnome-session/-/commit/9de6e40f12e8878f524f8d429d85724c156a0517.diff";
sha256 = "19vrjdf7d6dfl7sqxvbc5h5lcgk1krgzg5rkssrdzd1h4ma6y8fz";
})
];

mesonFlags = [ "-Dsystemd=true" "-Dsystemd_session=default" ];
@@ -42,11 +42,11 @@

stdenv.mkDerivation rec {
pname = "gnome-settings-daemon";
version = "3.38.1";
version = "40.0.1";

src = fetchurl {
url = "mirror://gnome/sources/gnome-settings-daemon/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0r010wzw3dj87mapzvq15zv93i86wg0x0rpii3x2wapq3bcj30g2";
url = "mirror://gnome/sources/gnome-settings-daemon/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "08bv32hvsmd8izw0llvldg0c2d71srch4hi8j94jwgm5d4dsrprp";
};

patches = [
@@ -3,11 +3,11 @@

stdenv.mkDerivation rec {
pname = "gnome-shell-extensions";
version = "3.38.2";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/gnome-shell-extensions/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0hzn975v49rv3nsqp8m0mzv8gcm7nyvn54gj3zsml8ahlxwl592p";
url = "mirror://gnome/sources/gnome-shell-extensions/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "15hak4prx2nx1svfii39clxy1lll8crdf7p91if85jcsh6r8ab8p";
};

passthru = {
@@ -22,8 +22,7 @@
, librsvg
, geoclue2
, perl
, docbook_xml_dtd_42
, docbook_xml_dtd_43
, docbook_xml_dtd_45
, desktop-file-utils
, libpulseaudio
, libical
@@ -46,6 +45,7 @@
, mutter
, evolution-data-server
, gtk3
, gtk4
, sassc
, systemd
, pipewire
@@ -66,13 +66,13 @@ let
in
stdenv.mkDerivation rec {
pname = "gnome-shell";
version = "3.38.3";
version = "40.0";

outputs = [ "out" "devdoc" ];

src = fetchurl {
url = "mirror://gnome/sources/gnome-shell/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "sha256-U0W0GMsSqXKVXOXM6u1mYkgAJzNrXFHa6lcwV1tiHO0=";
url = "mirror://gnome/sources/gnome-shell/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "sha256-vOcfQC36qcXiab9lv0iiI0PYlubPmiw0ZpOS1/v2hHg=";
};

patches = [
@@ -97,6 +97,18 @@ stdenv.mkDerivation rec {
revert = true;
sha256 = "14h7ahlxgly0n3sskzq9dhxzbyb04fn80pv74vz1526396676dzl";
})

# Fix copying technical details when extension crashes.
# https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1795
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/gnome-shell/commit/1b5d71130e3a48d8f636542f979346add7829544.patch";
sha256 = "WXRG/+u/N7KTTG1HutcMvw5HU2XWUmqFExmOXrOkeeA=";
})
# https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1796
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/gnome-shell/commit/53dd291aba24e9eab3994b0ffeadec05e0150470.patch";
sha256 = "xD0iIjlUGDLM5tTNDNtx6ZgxL25EKYgaBEH4JOZh8AM=";
})
];

nativeBuildInputs = [
@@ -105,9 +117,7 @@ stdenv.mkDerivation rec {
pkg-config
gettext
docbook-xsl-nons
# Switch to 4.5 in the 40.
docbook_xml_dtd_42
docbook_xml_dtd_43
docbook_xml_dtd_45
gtk-doc
perl
wrapGAppsHook
@@ -137,6 +147,7 @@ stdenv.mkDerivation rec {
evolution-data-server
libical
gtk3
gtk4
gdm
geoclue2
adwaita-icon-theme
@@ -189,7 +200,7 @@ stdenv.mkDerivation rec {

postFixup = ''
# The services need typelibs.
for svc in org.gnome.Shell.Extensions org.gnome.Shell.Notifications org.gnome.Shell.Screencast; do
for svc in org.gnome.ScreenSaver org.gnome.Shell.Extensions org.gnome.Shell.Notifications org.gnome.Shell.Screencast; do
wrapGApp $out/share/gnome-shell/$svc
done
'';
@@ -3,7 +3,7 @@
@@ -13,7 +13,7 @@ shew_sources = [
libshew = library(full_name,
sources: shew_sources,
dependencies: [gtk_dep],
dependencies: [gtk_dep, x11_dep],
- install_dir: pkglibdir,
+ install_dir: get_option('prefix') / pkglibdir,
install: true,
@@ -11,8 +11,9 @@
, packagekit
, ostree
, glib
, appstream-glib
, appstream
, libsoup
, libhandy
, polkit
, isocodes
, gspell
@@ -42,11 +43,11 @@ in

stdenv.mkDerivation rec {
pname = "gnome-software";
version = "3.38.0";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/gnome-software/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0rjm486vgn6gi9mv1rqdcvr9cilmw6in4r6djqkxbxqll89cp2l7";
url = "mirror://gnome/sources/gnome-software/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "0l9finr7z73qg8nrv59hf2lkc7ni89gxpr7qnfvqds4bxr68jiz4";
};

patches = [
@@ -76,8 +77,9 @@ stdenv.mkDerivation rec {
gtk3
glib
packagekit
appstream-glib
appstream
libsoup
libhandy
gsettings-desktop-schemas
gnome-desktop
gspell
@@ -94,7 +96,6 @@ stdenv.mkDerivation rec {
];

mesonFlags = [
"-Dubuntu_reviews=false"
"-Dgudev=false"
# FIXME: package malcontent parental controls
"-Dmalcontent=false"
@@ -1,26 +1,63 @@
{ lib, stdenv, gettext, fetchurl, pkg-config, gtkmm3, libxml2
, bash, gtk3, glib, wrapGAppsHook, meson, ninja, python3
, gsettings-desktop-schemas, itstool, gnome3, librsvg, gdk-pixbuf, libgtop, systemd }:
{ lib
, stdenv
, gettext
, fetchurl
, pkg-config
, gtkmm3
, libxml2
, bash
, gtk3
, libhandy
, glib
, wrapGAppsHook
, meson
, ninja
, python3
, gsettings-desktop-schemas
, itstool
, gnome3
, librsvg
, gdk-pixbuf
, libgtop
, systemd
}:

stdenv.mkDerivation rec {
pname = "gnome-system-monitor";
version = "3.38.0";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/gnome-system-monitor/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "1x5gd30g87im7fnqj63njlac69zywfd1r0vgsxkjag2hsns7mgvk";
url = "mirror://gnome/sources/gnome-system-monitor/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "0mp778rcmh0l9rh8wlz4d0b5sw5fpap0lqp1g6db0ljmypvm1rb4";
};

doCheck = true;

nativeBuildInputs = [
pkg-config gettext itstool wrapGAppsHook meson ninja python3
pkg-config
gettext
itstool
wrapGAppsHook
meson
ninja
python3
];

buildInputs = [
bash gtk3 glib libxml2 gtkmm3 libgtop gdk-pixbuf gnome3.adwaita-icon-theme librsvg
gsettings-desktop-schemas systemd
bash
gtk3
libhandy
glib
libxml2
gtkmm3
libgtop
gdk-pixbuf
gnome3.adwaita-icon-theme
librsvg
gsettings-desktop-schemas
systemd
];

doCheck = true;

postPatch = ''
chmod +x meson_post_install.py # patchShebangs requires executable file
patchShebangs meson_post_install.py
@@ -5,11 +5,11 @@

stdenv.mkDerivation rec {
pname = "gnome-terminal";
version = "3.38.3";
version = "3.40.0";

src = fetchurl {
url = "mirror://gnome/sources/gnome-terminal/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "EaWw1jXxX9znUINRpRD79OkqpTMVKlD/DHhF4xAuR2Q=";
sha256 = "0km73zhhfjc0rhp5hc8ldpsrzbc00hp4lqwnxz2512qbpsby6bwx";
};

buildInputs = [
@@ -22,11 +22,11 @@

stdenv.mkDerivation rec {
pname = "gnome-tour";
version = "3.38.0";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
hash = "sha256-hV/C/Lyz6e9zhe3FRw4Sox5gMqThDP57wVCTgcekjng=";
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
hash = "sha256-cGMiOGmgdHJ0FL7H23ONhQYhbuhMz8O8p9rFLkmMG/k=";
};

cargoVendorDir = "vendor";

This file was deleted.

@@ -17,13 +17,6 @@ stdenv.mkDerivation rec {
propagatedBuildInputs = [ glib gobject-introspection dbus libgcrypt ];
nativeBuildInputs = [ pkg-config 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";
@@ -45,24 +45,31 @@

let self = stdenv.mkDerivation rec {
pname = "mutter";
version = "3.38.3";
version = "40.0";

outputs = [ "out" "dev" "man" ];

src = fetchurl {
url = "mirror://gnome/sources/mutter/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "sha256-sjIec9Hj/i6Q5jAfQrugf02UvGR1aivxPXWunW+qIB8=";
url = "mirror://gnome/sources/mutter/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "sha256-enGzEuWmZ8U3SJUYilBqP2tnF2i8s2K2jv3FYnc9GY4=";
};

patches = [
# Drop inheritable cap_sys_nice, to prevent the ambient set from leaking
# from mutter/gnome-shell, see https://github.com/NixOS/nixpkgs/issues/71381
./drop-inheritable.patch
# ./drop-inheritable.patch

(substituteAll {
src = ./fix-paths.patch;
inherit zenity;
})

# Fix non-deterministic build failure:
# https://gitlab.gnome.org/GNOME/mutter/-/issues/1682
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/mutter/commit/91117bb052ed0d69c8ea4159c1df15c814d90627.patch";
sha256 = "ek8hEoPP4S2TGOm6SGGOhUVIp4OT68nz0SQzZrceFUU=";
})
];

mesonFlags = [
@@ -155,7 +162,7 @@ let self = stdenv.mkDerivation rec {
meta = with lib; {
description = "A window manager for GNOME";
homepage = "https://gitlab.gnome.org/GNOME/mutter";
license = licenses.gpl2;
license = licenses.gpl2Plus;
maintainers = teams.gnome.members;
platforms = platforms.linux;
};
@@ -9,6 +9,8 @@
, python3
, wrapGAppsHook
, gtk3
, libhandy
, libportal
, gnome3
, gnome-autoar
, glib-networking
@@ -32,11 +34,11 @@

stdenv.mkDerivation rec {
pname = "nautilus";
version = "3.38.2";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "19ln84d6s05h6cvx3c500bg5pvkz4k6p6ykmr2201rblq9afp76h";
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "0h2drh4zfjhhys6zm27h75kk4hr3lc1f7a7pa8p3gbcmg1hh4l3x";
};

patches = [
@@ -71,6 +73,8 @@ stdenv.mkDerivation rec {
gsettings-desktop-schemas
gst_all_1.gst-plugins-base
gtk3
libhandy
libportal
libexif
libnotify
libseccomp
@@ -96,6 +96,7 @@ stdenv.mkDerivation rec {
updateScript = gnome3.updateScript {
packageName = pname;
attrPath = "gnome3.${pname}";
versionPolicy = "odd-unstable";
};
};

@@ -14,6 +14,7 @@
, gtk3
, gusb
, packagekit
, libhandy
, libwebp
, libxml2
, sane-backends
@@ -24,11 +25,11 @@

stdenv.mkDerivation rec {
pname = "simple-scan";
version = "3.38.2";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "sha256-qI2AcpaCiIZJzfzfqGkrCjSs3ladwICIjyea/DqcTQs=";
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "sha256-E4EbsqhhnmOkP8Lva3E1ny1cQITG1cizqtYXJLIHUa8=";
};

nativeBuildInputs = [
@@ -51,6 +52,7 @@ stdenv.mkDerivation rec {
gnome3.adwaita-icon-theme
gusb
gtk3
libhandy
libwebp
packagekit
sane-backends
@@ -5,8 +5,6 @@
, gettext
, gobject-introspection
, glib
, clutter-gtk
, clutter-gst
, gnome3
, gtksourceview4
, gjs
@@ -40,14 +38,13 @@ stdenv.mkDerivation rec {
gobject-introspection
wrapGAppsHook
];

buildInputs = [
glib
gtk3
gnome3.evince
icu
harfbuzz
clutter-gtk
clutter-gst
gjs
gtksourceview4
gdk-pixbuf
@@ -10,11 +10,11 @@

stdenv.mkDerivation rec {
pname = "yelp-xsl";
version = "3.38.3";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/yelp-xsl/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "sha256-GTtqvUaXt7Qh6Yw21NMTXaCw/bUapT5gLtNo3YTR/QM=";
url = "mirror://gnome/sources/yelp-xsl/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "sha256-Nh7NTTP8zbO7CKaH9g5cPpCdLp47Ai2ETgSYINDPYrA=";
};

nativeBuildInputs = [
@@ -5,11 +5,11 @@

stdenv.mkDerivation rec {
pname = "yelp";
version = "3.38.3";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/yelp/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "sha256-r9RqTQrrRrtCXFIAcdgY+LKzLmnnVqv9mXlodpphVJ0=";
url = "mirror://gnome/sources/yelp/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "sha256-B3dfoGzSg2Xs2Cm7FqhaaCiXqyHYzONFlrvvXNRVquA=";
};

nativeBuildInputs = [ pkg-config gettext itstool wrapGAppsHook ];
@@ -176,8 +176,6 @@ lib.makeScope pkgs.newScope (self: with self; {

gnome-documents = callPackage ./apps/gnome-documents { };

gnome-getting-started-docs = callPackage ./apps/gnome-getting-started-docs { };

gnome-logs = callPackage ./apps/gnome-logs { };

gnome-maps = callPackage ./apps/gnome-maps { };
@@ -361,4 +359,6 @@ lib.makeScope pkgs.newScope (self: with self; {
maintainers = lib.teams.gnome.members;

mutter328 = throw "Removed as Pantheon is upgraded to mutter334.";

gnome-getting-started-docs = throw "Removed in favour of gnome-tour.";
})
@@ -20,11 +20,11 @@

stdenv.mkDerivation rec {
pname = "devhelp";
version = "3.38.1";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/devhelp/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "13sa25mmlc49kn520hdfbskma65y7smvwmyhfggj0n9s3fazba2d";
url = "mirror://gnome/sources/devhelp/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "0zr64qp5c6jcc3x5hmfp7jhzpi96qwr6xplyfkmz4kjzvr9xidjd";
};

nativeBuildInputs = [
@@ -2,11 +2,11 @@

stdenv.mkDerivation rec {
pname = "gnome-devel-docs";
version = "3.38.2";
version = "40.0";

src = fetchurl {
url = "mirror://gnome/sources/gnome-devel-docs/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "1h6481hbz1c5p69r6h96hbgf560lhp1jibszscgw0s2yikdh6q8n";
url = "mirror://gnome/sources/gnome-devel-docs/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "0zqp01ks8m3s6jn5xqd05rw4fwbvxy5qvcfg9g50b2ar2j7v1ar8";
};

passthru = {
@@ -19,15 +19,15 @@

stdenv.mkDerivation rec {
pname = "gnome-shell-gsconnect";
version = "44";
version = "46";

outputs = [ "out" "installedTests" ];

src = fetchFromGitHub {
owner = "andyholmes";
repo = "gnome-shell-extension-gsconnect";
rev = "v${version}";
sha256 = "C+8mhK4UOs2iZplDyY45bCX0mMGgwVV/ZfaPpYUlWxA=";
sha256 = "161379kipr6z6gbhchb5b17djrkg5fbvblyyabzkc2gv05r3h6fw";
};

patches = [
@@ -3,14 +3,21 @@
import json
import requests
import sys
from libversion import Version
from typing import Optional


def version_to_list(version):
return list(map(int, version.split(".")))


def odd_unstable(version_str, selected):
version = version_to_list(version_str)
def odd_unstable(version: Version, selected):
try:
version = version_to_list(version.value)
except:
# Failing to parse as a list of numbers likely means the version contains a string tag like “beta”, therefore it is not a stable release.
return selected != "stable"

if len(version) < 2:
return True

@@ -23,28 +30,34 @@ def odd_unstable(version_str, selected):
return True


def no_policy(version, selected):
def tagged(version: Version, selected):
if selected == "stable":
return not ("alpha" in version.value or "beta" in version.value or "rc" in version.value)
else:
return True


def no_policy(version: Version, selected):
return True


version_policies = {
"odd-unstable": odd_unstable,
"tagged": tagged,
"none": no_policy,
}


def make_version_policy(version_predicate, selected, upper_bound):
def make_version_policy(version_predicate, selected, upper_bound: Optional[Version]):
if not upper_bound:
upper_bound = [math.inf, math.inf]
return lambda version: version_predicate(version, selected)
else:
upper_bound = version_to_list(upper_bound)

return lambda version: version_predicate(version, selected) and version_to_list(version) < upper_bound
return lambda version: version_predicate(version, selected) and version < upper_bound


parser = argparse.ArgumentParser(description="Find latest version for a GNOME package by crawling their release server.")
parser.add_argument("package-name", help="Name of the directory in https://ftp.gnome.org/pub/GNOME/sources/ containing the package.")
parser.add_argument("version-policy", help="Policy determining which versions are considered stable. For most GNOME packages, odd minor versions are unstable but there are exceptions.", choices=version_policies.keys(), nargs="?", default="odd-unstable")
parser.add_argument("version-policy", help="Policy determining which versions are considered stable. GNOME packages usually denote stability by alpha/beta/rc tag in the version. For older packages, odd minor versions are unstable but there are exceptions.", choices=version_policies.keys(), nargs="?", default="tagged")
parser.add_argument("requested-release", help="Most of the time, we will want to update to stable version but sometimes it is useful to test.", choices=["stable", "unstable"], nargs="?", default="stable")
parser.add_argument("--upper-bound", dest="upper-bound", help="Only look for versions older than this one (useful for pinning dependencies).")

@@ -55,6 +68,8 @@ def make_version_policy(version_predicate, selected, upper_bound):
package_name = getattr(args, "package-name")
requested_release = getattr(args, "requested-release")
upper_bound = getattr(args, "upper-bound")
if upper_bound:
upper_bound = Version(upper_bound)
version_predicate = version_policies[getattr(args, "version-policy")]
version_policy = make_version_policy(version_predicate, requested_release, upper_bound)

@@ -64,11 +79,11 @@ def make_version_policy(version_predicate, selected, upper_bound):
print("Unknown format of cache.json file.", file=sys.stderr)
sys.exit(1)

versions = cache[2][package_name]
versions = sorted(filter(version_policy, versions), key=version_to_list)
versions = map(Version, cache[2][package_name])
versions = sorted(filter(version_policy, versions))

if len(versions) == 0:
print("No versions matched.", file=sys.stderr)
sys.exit(1)

print(versions[-1])
print(versions[-1].value)
@@ -1,17 +1,50 @@
{ lib, stdenv, fetchurl, meson, ninja, vala, pkg-config, wrapGAppsHook, gobject-introspection
, gettext, itstool, libxml2, python3, gnome3, glib, gtk3, librsvg }:
{ lib
, stdenv
, fetchurl
, meson
, ninja
, vala
, pkg-config
, wrapGAppsHook4
, gobject-introspection
, gettext
, itstool
, libxml2
, python3
, gnome3
, glib
, gtk4
, librsvg
}:

stdenv.mkDerivation rec {
pname = "gnome-chess";
version = "3.38.1";
version = "40.1";

src = fetchurl {
url = "mirror://gnome/sources/gnome-chess/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "1bpmi5p5vvjdq2rlm5x9k4gpci8jbrjvdxr1q62h5znzq0vz0w0l";
url = "mirror://gnome/sources/gnome-chess/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "132nc96z0bryyi9d5gljsbwsa71rl8wm5w57jbhpwiv4fyjhgybk";
};

nativeBuildInputs = [ meson ninja vala pkg-config gettext itstool libxml2 python3 wrapGAppsHook gobject-introspection ];
buildInputs = [ glib gtk3 librsvg gnome3.adwaita-icon-theme ];
nativeBuildInputs = [
meson
ninja
vala
pkg-config
gettext
itstool
libxml2
python3
wrapGAppsHook4
gobject-introspection
];

buildInputs = [
glib
gtk4
librsvg
gnome3.adwaita-icon-theme
];

postPatch = ''
chmod +x meson_post_install.py
@@ -29,7 +62,7 @@ stdenv.mkDerivation rec {
homepage = "https://wiki.gnome.org/Apps/Chess";
description = "Play the classic two-player boardgame of chess";
maintainers = teams.gnome.members;
license = licenses.gpl2;
license = licenses.gpl3Plus;
platforms = platforms.linux;
};
}