103 lines
2.0 KiB
Nix

{
stdenv,
lib,
fetchFromGitHub,
appstream-glib,
desktop-file-utils,
gdk-pixbuf,
gettext,
gjs,
glib,
glib-networking,
gobject-introspection,
gsettings-desktop-schemas,
gtk4,
libadwaita,
gst_all_1,
hicolor-icon-theme,
meson,
ninja,
nix-update-script,
pkg-config,
python3,
webkitgtk_6_0,
blueprint-compiler,
wrapGAppsHook4,
}:
stdenv.mkDerivation rec {
pname = "tangram";
version = "3.3";
src = fetchFromGitHub {
owner = "sonnyp";
repo = "Tangram";
tag = "v${version}";
hash = "sha256-OtQN8Iigu92iKa7CAaslIpbS0bqJ9Vus++inrgV/eeM=";
fetchSubmodules = true;
};
nativeBuildInputs = [
appstream-glib
desktop-file-utils
gettext
gobject-introspection
hicolor-icon-theme
meson
ninja
pkg-config
python3
blueprint-compiler
wrapGAppsHook4
];
buildInputs = [
gdk-pixbuf
gjs
glib
glib-networking
gsettings-desktop-schemas
gtk4
libadwaita
webkitgtk_6_0
]
++ (with gst_all_1; [
gstreamer
gst-libav
gst-plugins-base
(gst-plugins-good.override { gtkSupport = true; })
gst-plugins-bad
]);
dontPatchShebangs = true;
postPatch = ''
substituteInPlace src/meson.build --replace "/app/bin/blueprint-compiler" "blueprint-compiler"
substituteInPlace src/bin.js troll/gjspack/bin/gjspack \
--replace "#!/usr/bin/env -S gjs -m" "#!${gjs}/bin/gjs -m"
'';
# https://github.com/NixOS/nixpkgs/issues/31168#issuecomment-341793501
preFixup = ''
sed -e '2iimports.package._findEffectiveEntryPointName = () => "re.sonny.Tangram"' \
-i $out/bin/re.sonny.Tangram
'';
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Run web apps on your desktop";
mainProgram = "re.sonny.Tangram";
homepage = "https://github.com/sonnyp/Tangram";
license = licenses.gpl3Only;
platforms = platforms.linux;
maintainers = with maintainers; [
austinbutler
chuangzhu
];
teams = [ lib.teams.gnome-circle ];
};
}