summaryrefslogtreecommitdiffstats
path: root/misc/fcitx-mozc/fcitx-mozc.SlackBuild
blob: 55d0abd24fb649809b6a8345860f5aaf7849544b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
#!/bin/bash

# Slackware build script for fcitx-mozc

# Copyright 2015-2023 Kuro_CODE25 JAPAN
# All rights reserved.
#
# Licensed under the MIT License.
# See https://opensource.org/licenses/MIT for details.

cd $(dirname $0) ; CWD=$(pwd)

PRGNAM=fcitx-mozc
VERSION=${VERSION:-2.26.4360.102.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}

if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i?86) ARCH=i586 ;;
    arm*) ARCH=arm ;;
       *) ARCH=$( uname -m ) ;;
  esac
fi

if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
  echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
  exit 0
fi

TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

if [ "$ARCH" = "i586" ]; then
  SLKCFLAGS="-O2 -march=i586 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"
  LIBDIRSUFFIX="64"
else
  SLKCFLAGS="-O2"
  LIBDIRSUFFIX=""
fi

set -e

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
mkdir -p $PRGNAM-$VERSION
cd $PRGNAM-$VERSION

ZIPCODE_REL=202011
PROTOBUF_REV=fde7cf7358ec7cd69e8db9be4f1fa6a5c431386a
GYP_REV=caa60026e223fc501e8b337fd5086ece4028b1c6
JAPANESE_USAGE_DICT_REV=e5b3425575734c323e1d947009dd74709437b684
ABSEIL_CPP_REV=0f3bb466b868b523cf1dc9b2aaaed65c77b28862
BREAKPAD_REV=216cea7bca53fa441a3ee0d0f5fd339a3a894224
GOOGLETEST_REV=703bd9caab50b139428cea1aaff9974ebee5742e
JSONCPP_REV=11086dd6a7eba04289944367ca82cea71299ed70
MOZC_REV=ca82d39d08df3359fdf5c653a1f56b3e95cbe2ce
unzip ${CWD}/x-ken-all-${ZIPCODE_REL}.zip
unzip ${CWD}/jigyosyo-${ZIPCODE_REL}.zip
unzip ${CWD}/mozc-$MOZC_REV.zip
unzip ${CWD}/japanese-usage-dictionary-$JAPANESE_USAGE_DICT_REV.zip
unzip ${CWD}/gyp-$GYP_REV.zip
unzip ${CWD}/protobuf-$PROTOBUF_REV.zip
unzip ${CWD}/googletest-$GOOGLETEST_REV.zip
unzip ${CWD}/jsoncpp-$JSONCPP_REV.zip
unzip ${CWD}/breakpad-$BREAKPAD_REV.zip
unzip ${CWD}/abseil-cpp-$ABSEIL_CPP_REV.zip
mv mozc-$MOZC_REV mozc
mv japanese-usage-dictionary-$JAPANESE_USAGE_DICT_REV japanese_usage_dictionary
mv protobuf-$PROTOBUF_REV protobuf
mv gyp-$GYP_REV gyp
mv googletest-$GOOGLETEST_REV googletest
mv jsoncpp-$JSONCPP_REV jsoncpp
mv breakpad-$BREAKPAD_REV breakpad
mv abseil-cpp-$ABSEIL_CPP_REV abseil-cpp

chown -R root:root .
find -L . \
 \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
  -o -perm 511 \) -exec chmod 755 {} \; -o \
 \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
  -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;

CFLAGS="${CFLAGS} -fvisibility=hidden"
CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"

cd $TMP/$PRGNAM-$VERSION/mozc/src
rm unix/fcitx5/fcitx5.gyp
PYTHONPATH="$PWD:$PYTHONPATH" python3 dictionary/gen_zip_code_seed.py \
  --zip_code="$TMP/$PRGNAM-$VERSION/x-ken-all.csv" \
  --jigyosyo="$TMP/$PRGNAM-$VERSION/JIGYOSYO.CSV" >> data/dictionary_oss/dictionary09.txt

cd $TMP/$PRGNAM-$VERSION
for dep in gyp protobuf japanese_usage_dictionary googletest jsoncpp breakpad abseil-cpp
do
  cp -a $dep mozc/src/third_party/
done

cd $TMP/$PRGNAM-$VERSION/mozc/src
QTDIR=/usr GYP_DEFINES="document_dir=/usr/share/licenses/$PRGNAM use_libzinnia=1" python3 build_mozc.py gyp
sed -i 's|python|python3|' ../scripts/build
TARGETS="server/server.gyp:mozc_server gui/gui.gyp:mozc_tool unix/fcitx/fcitx.gyp:fcitx-mozc" \
  _bldtype=Release ../scripts/build

PREFIX=${PKG}/usr
_bldtype=Release

install -D -m 755 "out_linux/${_bldtype}/mozc_server" "${PREFIX}/lib${LIBDIRSUFFIX}/mozc/mozc_server"
install -D -m 755 "out_linux/${_bldtype}/mozc_tool"   "${PREFIX}/lib${LIBDIRSUFFIX}/mozc/mozc_tool"
install -d "${PREFIX}/share/doc/mozc/"
install -m 644 data/installer/*.html "${PREFIX}/share/doc/mozc/"

for mofile in out_linux/${_bldtype}/gen/unix/fcitx/po/*.mo
do
    filename=`basename $mofile`
    lang=${filename/.mo/}
    install -D -m 644 "$mofile" "${PREFIX}/share/locale/$lang/LC_MESSAGES/fcitx-mozc.mo"
done

install -D -m 755 "out_linux/${_bldtype}/fcitx-mozc.so" "${PREFIX}/lib${LIBDIRSUFFIX}/fcitx/fcitx-mozc.so"
install -D -m 644 unix/fcitx/fcitx-mozc.conf "${PREFIX}/share/fcitx/addon/fcitx-mozc.conf"
install -D -m 644 unix/fcitx/mozc.conf "${PREFIX}/share/fcitx/inputmethod/mozc.conf"

install -d "${PREFIX}/share/fcitx/mozc/icon"
install -D -m 644 data/images/product_icon_32bpp-128.png "${PREFIX}/share/fcitx/mozc/icon/mozc.png"
install -D -m 644 ../scripts/icons/ui-alpha_full.png "${PREFIX}/share/fcitx/mozc/icon/mozc-alpha_full.png"
install -D -m 644 ../scripts/icons/ui-alpha_half.png "${PREFIX}/share/fcitx/mozc/icon/mozc-alpha_half.png"
install -D -m 644 ../scripts/icons/ui-direct.png "${PREFIX}/share/fcitx/mozc/icon/mozc-direct.png"
install -D -m 644 ../scripts/icons/ui-hiragana.png "${PREFIX}/share/fcitx/mozc/icon/mozc-hiragana.png"
install -D -m 644 ../scripts/icons/ui-katakana_full.png "${PREFIX}/share/fcitx/mozc/icon/mozc-katakana_full.png"
install -D -m 644 ../scripts/icons/ui-katakana_half.png "${PREFIX}/share/fcitx/mozc/icon/mozc-katakana_half.png"
install -D -m 644 ../scripts/icons/ui-dictionary.png "${PREFIX}/share/fcitx/mozc/icon/mozc-dictionary.png"
install -D -m 644 ../scripts/icons/ui-properties.png "${PREFIX}/share/fcitx/mozc/icon/mozc-properties.png"
install -D -m 644 ../scripts/icons/ui-tool.png "${PREFIX}/share/fcitx/mozc/icon/mozc-tool.png"

rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la

find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
  | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true

cd $TMP/$PRGNAM-$VERSION/mozc
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \
  AUTHORS CONTRIBUTORS LICENSE README.md \
  $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild

mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc

cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE