python312Packages.lottie: 0.7.0 -> 0.7.1 (#361686)
[NixPkgs.git] / pkgs / applications / misc / openbangla-keyboard / default.nix
blob04a9fffcb083bcd054d4811ee2464de6065e842d
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , cargo
5 , cmake
6 , pkg-config
7 , rustPlatform
8 , rustc
9 , wrapQtAppsHook
10 , fcitx5
11 , ibus
12 , qtbase
13 , zstd
14 , fetchpatch
15 , withFcitx5Support ? false
16 , withIbusSupport ? false
19 stdenv.mkDerivation rec {
20   pname = "openbangla-keyboard";
21   version = "unstable-2023-07-21";
23   src = fetchFromGitHub {
24     owner = "openbangla";
25     repo = "openbangla-keyboard";
26     # no upstream release in 3 years
27     # fcitx5 support was added over a year after the last release
28     rev = "780bd40eed16116222faff044bfeb61a07af158f";
29     hash = "sha256-4CR4lgHB51UvS/RLc0AEfIKJ7dyTCOfDrQdGLf9de8E=";
30     fetchSubmodules = true;
31   };
33   patches = [
34     # prevents runtime crash when fcitx5-based IM attempts to look in /usr
35     (fetchpatch {
36       name = "use-CMAKE_INSTALL_PREFIX-for-loading-data.patch";
37       url = "https://github.com/OpenBangla/OpenBangla-Keyboard/commit/f402472780c29eaa6b4cc841a70289adf171462b.diff";
38       hash = "sha256-YahvtyOxe8F40Wfe+31C6fdmm197QN26/Q67oinOplk=";
39     })
40   ];
42   nativeBuildInputs = [
43     cmake
44     pkg-config
45     cargo
46     rustc
47     rustPlatform.cargoSetupHook
48     wrapQtAppsHook
49   ];
51   buildInputs = lib.optionals withFcitx5Support [
52     fcitx5
53   ] ++ lib.optionals withIbusSupport [
54     ibus
55   ] ++ [
56     qtbase
57     zstd
58   ];
60   cargoDeps = rustPlatform.fetchCargoTarball {
61     inherit src;
62     postPatch = ''
63       cp ${./Cargo.lock} Cargo.lock
64     '';
65     sourceRoot = "${src.name}/${cargoRoot}";
66     hash = "sha256-XMleyP2h1aBhtjXhuGHyU0BN+tuL12CGoj+kLY5uye0=";
67   };
69   cmakeFlags = lib.optionals withFcitx5Support [
70     "-DENABLE_FCITX=YES"
71   ] ++ lib.optionals withIbusSupport [
72     "-DENABLE_IBUS=YES"
73   ];
75   cargoRoot = "src/engine/riti";
76   postPatch = ''
77     cp ${./Cargo.lock} ${cargoRoot}/Cargo.lock
78  '';
80   meta = {
81     isIbusEngine = withIbusSupport;
82     description = "OpenSource, Unicode compliant Bengali Input Method";
83     mainProgram = "openbangla-gui";
84     homepage = "https://openbangla.github.io/";
85     license = lib.licenses.gpl3Plus;
86     maintainers = with lib.maintainers; [ hqurve ];
87     platforms = lib.platforms.linux;
88     # never built on aarch64-linux since first introduction in nixpkgs
89     broken = stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64;
90   };