2024-05-30 20:28:22 +00:00
|
|
|
|
{
|
|
|
|
|
lib,
|
|
|
|
|
stdenv,
|
|
|
|
|
fetchurl,
|
|
|
|
|
meson,
|
|
|
|
|
ninja,
|
|
|
|
|
gettext,
|
|
|
|
|
pkg-config,
|
|
|
|
|
libgtop,
|
|
|
|
|
glib,
|
|
|
|
|
gnome,
|
|
|
|
|
gnome-menus,
|
|
|
|
|
substituteAll,
|
2021-05-14 15:56:34 +00:00
|
|
|
|
}:
|
2016-09-18 19:35:23 +00:00
|
|
|
|
|
2023-12-09 11:18:50 +00:00
|
|
|
|
stdenv.mkDerivation (finalAttrs: {
|
2019-08-15 12:41:18 +00:00
|
|
|
|
pname = "gnome-shell-extensions";
|
2024-09-17 13:28:07 +00:00
|
|
|
|
version = "47.0";
|
2018-02-25 20:07:20 +00:00
|
|
|
|
|
|
|
|
|
src = fetchurl {
|
2023-12-09 11:18:50 +00:00
|
|
|
|
url = "mirror://gnome/sources/gnome-shell-extensions/${lib.versions.major finalAttrs.version}/gnome-shell-extensions-${finalAttrs.version}.tar.xz";
|
2024-09-17 13:28:07 +00:00
|
|
|
|
hash = "sha256-UPBPe6UO3tEM6gekcF+zNj6Gkm0QARvlslA3Vmdwg08=";
|
2018-02-25 20:07:20 +00:00
|
|
|
|
};
|
2016-09-18 19:35:23 +00:00
|
|
|
|
|
2018-04-03 12:17:50 +00:00
|
|
|
|
patches = [
|
|
|
|
|
(substituteAll {
|
|
|
|
|
src = ./fix_gmenu.patch;
|
2018-12-25 23:29:06 +00:00
|
|
|
|
gmenu_path = "${gnome-menus}/lib/girepository-1.0";
|
2018-04-03 12:17:50 +00:00
|
|
|
|
})
|
2024-05-30 20:28:22 +00:00
|
|
|
|
(substituteAll {
|
|
|
|
|
src = ./fix_gtop.patch;
|
|
|
|
|
gtop_path = "${libgtop}/lib/girepository-1.0";
|
|
|
|
|
})
|
2018-04-03 12:17:50 +00:00
|
|
|
|
];
|
|
|
|
|
|
2021-05-14 15:56:34 +00:00
|
|
|
|
nativeBuildInputs = [
|
|
|
|
|
meson
|
|
|
|
|
ninja
|
|
|
|
|
pkg-config
|
|
|
|
|
gettext
|
|
|
|
|
glib
|
|
|
|
|
];
|
2016-09-18 19:35:23 +00:00
|
|
|
|
|
2024-05-30 20:28:22 +00:00
|
|
|
|
mesonFlags = [ "-Dextension_set=all" ];
|
2017-09-13 21:41:02 +00:00
|
|
|
|
|
2018-04-02 10:31:04 +00:00
|
|
|
|
preFixup = ''
|
2023-03-20 00:58:06 +00:00
|
|
|
|
# Since we do not install the schemas to central location,
|
|
|
|
|
# let’s link them to where extensions installed
|
|
|
|
|
# through the extension portal would look for them.
|
|
|
|
|
# Adapted from export-zips.sh in the source.
|
2018-04-02 10:31:04 +00:00
|
|
|
|
|
|
|
|
|
extensiondir=$out/share/gnome-shell/extensions
|
2022-08-06 22:48:42 +00:00
|
|
|
|
schemadir=${glib.makeSchemaPath "$out" "$name"}
|
2018-04-02 10:31:04 +00:00
|
|
|
|
|
|
|
|
|
for f in $extensiondir/*; do
|
2023-03-20 00:58:06 +00:00
|
|
|
|
name=$(basename "''${f%%@*}")
|
2018-04-02 10:31:04 +00:00
|
|
|
|
schema=$schemadir/org.gnome.shell.extensions.$name.gschema.xml
|
2023-03-20 00:58:06 +00:00
|
|
|
|
schemas_compiled=$schemadir/gschemas.compiled
|
2018-04-02 10:31:04 +00:00
|
|
|
|
|
2023-03-20 00:58:06 +00:00
|
|
|
|
if [[ -f $schema ]]; then
|
|
|
|
|
mkdir "$f/schemas"
|
|
|
|
|
ln -s "$schema" "$f/schemas"
|
|
|
|
|
ln -s "$schemas_compiled" "$f/schemas"
|
2018-04-02 10:31:04 +00:00
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
'';
|
|
|
|
|
|
2021-05-14 15:56:34 +00:00
|
|
|
|
passthru = {
|
2024-08-11 16:48:19 +00:00
|
|
|
|
updateScript = gnome.updateScript { packageName = "gnome-shell-extensions"; };
|
2021-05-14 15:56:34 +00:00
|
|
|
|
};
|
|
|
|
|
|
2021-01-11 07:54:33 +00:00
|
|
|
|
meta = with lib; {
|
2024-04-30 14:14:16 +00:00
|
|
|
|
homepage = "https://gitlab.gnome.org/GNOME/gnome-shell-extensions";
|
2024-10-04 19:35:12 +00:00
|
|
|
|
changelog = "https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/blob/${finalAttrs.version}/NEWS?ref_type=tags";
|
2016-09-18 19:35:23 +00:00
|
|
|
|
description = "Modify and extend GNOME Shell functionality and behavior";
|
2020-04-01 12:40:51 +00:00
|
|
|
|
maintainers = teams.gnome.members;
|
2021-05-14 15:56:34 +00:00
|
|
|
|
license = licenses.gpl2Plus;
|
2016-09-18 19:35:23 +00:00
|
|
|
|
platforms = platforms.linux;
|
|
|
|
|
};
|
2023-12-09 11:18:50 +00:00
|
|
|
|
})
|