{
lib,
mkDerivation,
cargo,
cmake,
corrosion,
extra-cmake-modules,
fetchpatch2,
futuresql,
kconfig,
kcoreaddons,
kdbusaddons,
ki18n,
kirigami-addons,
kirigami2,
knotifications,
kpurpose,
kwindowsystem,
qcoro,
qtfeedback,
qtquickcontrols2,
qqc2-desktop-style,
qtwebengine,
rustPlatform,
rustc,
srcs,
# provided as callPackage input to enable easier overrides through overlays
cargoSha256 ? "sha256-PSrTo7nGgH0KxA82RlBEwtOu80WMCBeaCxHj3n7SgEE=",
}:
mkDerivation rec {
pname = "angelfish";
patches = [
(fetchpatch2 {
name = "fix-build-with-corrosion-0.5.patch";
url = "https://invent.kde.org/network/angelfish/-/commit/b04928e3b62a11b647622b81fb67b7c0db656ac8.patch";
hash = "sha256-9rpkMKQKrvGJFIQDwSIeeZyk4/vd348r660mBOKzM2E=";
})
];
cargoDeps = rustPlatform.fetchCargoTarball {
# include version in the name so we invalidate the FOD
name = "${pname}-${srcs.angelfish.version}";
inherit (srcs.angelfish) src;
sha256 = cargoSha256;
};
nativeBuildInputs = [
cmake
corrosion
extra-cmake-modules
rustPlatform.cargoSetupHook
cargo
rustc
buildInputs = [
futuresql
kconfig
kcoreaddons
kdbusaddons
ki18n
kirigami-addons
kirigami2
knotifications
kpurpose
kwindowsystem
qcoro
qtfeedback
qtquickcontrols2
qqc2-desktop-style
qtwebengine
meta = with lib; {
description = "Web browser for Plasma Mobile";
homepage = "https://invent.kde.org/plasma-mobile/angelfish";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ dotlambda ];
}