evcc: 0.131.4 -> 0.131.5
[NixPkgs.git] / pkgs / by-name / fc / fcitx5-mozc / package.nix
blob43535fd935455f2f8a9924f50b8d0f7ef444f069
2   bazel_7,
3   buildBazelPackage,
4   fcitx5,
5   fetchFromGitHub,
6   gettext,
7   lib,
8   mozc,
9   nixosTests,
10   pkg-config,
11   python3,
12   stdenv,
13   unzip,
16 buildBazelPackage {
17   pname = "fcitx5-mozc";
18   version = "2.30.5544.102";
20   src = fetchFromGitHub {
21     owner = "fcitx";
22     repo = "mozc";
23     fetchSubmodules = true;
24     rev = "57e67f2a25e4c0861e0e422da0c7d4c232d89fcc";
25     hash = "sha256-1EZjEbMl+LRipH5gEgFpaKP8uEKPfupHmiiTNJc/T1k=";
26   };
28   nativeBuildInputs = [
29     gettext
30     pkg-config
31     python3
32     unzip
33   ];
35   buildInputs = [
36     mozc
37     fcitx5
38   ];
40   postPatch = ''
41     sed -i -e 's|^\(LINUX_MOZC_SERVER_DIR = \).\+|\1"${mozc}/lib/mozc"|' src/config.bzl
42   '';
44   bazel = bazel_7;
45   removeRulesCC = false;
46   dontAddBazelOpts = true;
48   bazelFlags = [
49     "--config"
50     "oss_linux"
51     "--compilation_mode"
52     "opt"
53   ];
55   bazelTargets = [
56     "unix/fcitx5:fcitx5-mozc.so"
57     "unix/icons"
58   ];
60   fetchAttrs = {
61     preInstall = ''
62       rm -rf $bazelOut/external/fcitx5
63     '';
65     sha256 = "sha256-wz2lJckr7Pu4jtoejjFv8LdjVO2+ferrS473M4jc86I=";
66   };
68   preConfigure = ''
69     cd src
70   '';
72   buildAttrs = {
73     installPhase = ''
74       runHook preInstall
76       install -Dm444 ../LICENSE $out/share/licenses/fcitx5-mozc/LICENSE
77       install -Dm444 data/installer/credits_en.html $out/share/licenses/fcitx5-mozc/Submodules
79       install -Dm555 bazel-bin/unix/fcitx5/fcitx5-mozc.so $out/lib/fcitx5/fcitx5-mozc.so
80       install -Dm444 unix/fcitx5/mozc-addon.conf $out/share/fcitx5/addon/mozc.conf
81       install -Dm444 unix/fcitx5/mozc.conf $out/share/fcitx5/inputmethod/mozc.conf
83       for pofile in unix/fcitx5/po/*.po; do
84         filename=$(basename $pofile)
85         lang=''${filename/.po/}
86         mofile=''${pofile/.po/.mo}
87         msgfmt $pofile -o $mofile
88         install -Dm444 $mofile $out/share/locale/$lang/LC_MESSAGES/fcitx5-mozc.mo
89       done
91       msgfmt --xml -d unix/fcitx5/po/ --template unix/fcitx5/org.fcitx.Fcitx5.Addon.Mozc.metainfo.xml.in -o unix/fcitx5/org.fcitx.Fcitx5.Addon.Mozc.metainfo.xml
92       install -Dm444 unix/fcitx5/org.fcitx.Fcitx5.Addon.Mozc.metainfo.xml $out/share/metainfo/org.fcitx.Fcitx5.Addon.Mozc.metainfo.xml
94       cd bazel-bin/unix
96       unzip -o icons.zip
98       # These are relative symlinks, they will always resolve to files within $out
100       install -Dm444 mozc.png $out/share/icons/hicolor/128x128/apps/org.fcitx.Fcitx5.fcitx_mozc.png
101       ln -s org.fcitx.Fcitx5.fcitx_mozc.png $out/share/icons/hicolor/128x128/apps/fcitx_mozc.png
103       for svg in \
104         alpha_full.svg \
105         alpha_half.svg \
106         direct.svg \
107         hiragana.svg \
108         katakana_full.svg \
109         katakana_half.svg \
110         outlined/dictionary.svg \
111         outlined/properties.svg \
112         outlined/tool.svg
113       do
114         name=$(basename -- $svg)
115         path=$out/share/icons/hicolor/scalable/apps
116         prefix=org.fcitx.Fcitx5.fcitx_mozc
118         install -Dm444 $svg $path/$prefix_$name
119         ln -s $prefix_$name $path/fcitx_mozc_$name
120       done
122       runHook postInstall
123     '';
124   };
126   passthru.tests = lib.optionalAttrs stdenv.hostPlatform.isLinux {
127     inherit (nixosTests) fcitx5;
128   };
130   meta = with lib; {
131     description = "Mozc - a Japanese Input Method Editor designed for multi-platform";
132     homepage = "https://github.com/fcitx/mozc";
133     license = with licenses; [
134       asl20 # abseil-cpp
135       bsd3 # mozc, breakpad, gtest, gyp, japanese-usage-dictionary, protobuf
136       mit # wil
137       naist-2003 # IPAdic
138       publicDomain # src/data/test/stress_test, Okinawa dictionary
139       unicode-30 # src/data/unicode, breakpad
140     ];
141     maintainers = with maintainers; [
142       berberman
143       govanify
144       musjj
145     ];
146     platforms = platforms.linux;
147   };