gnomeExtensions.forge: package manually

This extension has not gotten a new release in while, and the latest one
in the GNOME extension repository is not compatible with GNOME 49. This
commit replaces that one with a new one manually packaged directly from
GitHub, and which includes fixes to make it work with GNOME 49 again.
This commit is contained in:
Agustin Mista
2025-12-06 15:51:17 +01:00
parent dc0b904dce
commit 1db54da55a
2 changed files with 55 additions and 0 deletions
@@ -0,0 +1,54 @@
{
fetchFromGitHub,
glib,
lib,
stdenv,
...
}:
let
uuid = "forge@jmmaranan.com";
in
stdenv.mkDerivation {
pname = "gnome-shell-extension-forge";
version = "49.2-development";
src = fetchFromGitHub {
owner = "forge-ext";
repo = "forge";
rev = "701e7587e88fd51cc10e0f2fc5124ac61c82cf1c";
hash = "sha256-yKBH4Hv4b0CUVubsfs8a8fg3nIuogvGp5DJT/HjBcns=";
};
nativeBuildInputs = [ glib ];
buildPhase = ''
runHook preBuild
glib-compile-schemas --strict schemas
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/share/gnome-shell/extensions/
cp -r -T . $out/share/gnome-shell/extensions/${uuid}
# The makefile autogenerates a lib/prefs/metadata.js with a list of
# developers. We can just hardcode an empty one to avoid having to read the
# git history during the derivation.
echo "export const developers = []" > \
$out/share/gnome-shell/extensions/${uuid}/lib/prefs/metadata.js
runHook postInstall
'';
passthru = {
extensionPortalSlug = "forge";
extensionUuid = uuid;
};
meta = {
description = "Tiling and window manager for GNOME";
homepage = "https://extensions.gnome.org/extension/4481/forge/";
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ agustinmista ];
platforms = lib.platforms.linux;
};
}
@@ -5,6 +5,7 @@
"clock-override@gnomeshell.kryogenix.org" = callPackage ./clock-override { };
"drop-down-terminal@gs-extensions.zzrough.org" = callPackage ./drop-down-terminal { };
"EasyScreenCast@iacopodeenosee.gmail.com" = callPackage ./EasyScreenCast { };
"forge@jmmaranan.com" = callPackage ./forge { };
"gsconnect@andyholmes.github.io" = callPackage ./gsconnect { };
"guillotine@fopdoodle.net" = callPackage ./guillotine { };
"impatience@gfxmonk.net" = callPackage ./impatience { };