Browse Source

libraries/librime: Added (Rime Input Method Engine).

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
pull/258/head
ltlnx 11 months ago
committed by Willy Sudiarto Raharjo
parent
commit
948f06e05e
No known key found for this signature in database GPG Key ID: 3F617144D7238786
  1. 35
      libraries/librime/README
  2. 106
      libraries/librime/librime.SlackBuild
  3. 10
      libraries/librime/librime.info
  4. 19
      libraries/librime/slack-desc

35
libraries/librime/README

@ -0,0 +1,35 @@
Rime is a modular, extensible input method engine in cross-platform
C++ code, built on top of open-source technologies, covering
features found in a large variety of Chinese input methods, either
shape-based or phonetic-based.
It is built with native support for Traditional Chinese, and converts
to Simplified Chinese and other regional standards via OpenCC.
Other features include:
- Rime input schema, a DSL in YAML syntax for quickly trying out
innovative ideas of input method design
- Spelling Algebra, a mechanism to create variant spelling,
especially useful for Chinese dialects
- Support for chord-typing with a generic Qwerty keyboard
This is the shared library for Rime. Logging and build testing are
disabled, and if you want to enable them:
- To enable logging, delete the line -DENABLE_LOGGING=OFF and install
`glog` from SBo.
- To enable build testing, delete the line -DBUILD_TEST=OFF and
install `gtest` from SBo.
Additionally you may want to use Plum, the Rime package manager, to
install and manage schemas. The plum script makes no sense to package,
but you can install it by following the install instructions at
<https://github.com/rime/plum>. For basic usage, run in a desired
directory:
git clone --depth 1 https://github.com/rime/plum.git
cd plum
rime_frontend=fcitx5-rime bash rime-install :preset
After running this (and installing an appropriate frontend for RIME),
you'll have a basic Rime set up.

106
libraries/librime/librime.SlackBuild

@ -0,0 +1,106 @@
#!/bin/bash
# Copyright 2022-2023 Wen-Wei Kao (ltlnx), Taichung, Taiwan
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=librime
VERSION=${VERSION:-1.9.0}
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
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
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 {} \;
mkdir -p build
cd build
cmake \
-DCMAKE_CXX_FLAGS="${SLKCFLAGS}" \
-DCMAKE_C_FLAGS="${SLKCFLAGS}" \
-DCMAKE_INSTALL_PREFIX="/usr" \
-DCMAKE_INSTALL_LIBDIR=lib${LIBDIRSUFFIX} \
-DENABLE_LOGGING=OFF \
-DBUILD_TEST=OFF \
..
make
make install/strip DESTDIR=$PKG
cd ..
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
find $PKG -name perllocal.pod -o -name ".packlist" -o -name "*.bs" | xargs rm -f || true
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a LICENSE README* $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

10
libraries/librime/librime.info

@ -0,0 +1,10 @@
PRGNAM="librime"
VERSION="1.9.0"
HOMEPAGE="https://github.com/rime/librime"
DOWNLOAD="https://github.com/rime/librime/archive/1.9.0/librime-1.9.0.tar.gz"
MD5SUM="daa5418eee4a5288704e2469733c841b"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="leveldb yaml-cpp"
MAINTAINER="ltlnx"
EMAIL="ltlnx@disroot.org"

19
libraries/librime/slack-desc

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
librime: librime (Rime Input Method Engine library)
librime:
librime: A modular, extensible input method engine covering features found in
librime: a large variety of Chinese input methods, either shape-based or
librime: phonetic-based.
librime:
librime: Homepage: https://github.com/rime/librime
librime:
librime:
librime:
librime:
Loading…
Cancel
Save