spiegel-keyman/linux/legacy/README.md
Eberhard Beilharz 1e8e598cd3
chore(linux): Update readme
This change adds separate READMEs for the legacy projects, and
removes mentioning of the legacy projects in the current READMEs.
The motivation is to make it later easier to remove the legacy
projects, as well as reducing the efforts to testing the README with
legacy projects. Since legacy projects aren't maintained anymore
it doesn't make sense to still have them in the regular README,
suggesting that the instructions work for the legacy projects as
well.
2022-10-12 12:28:46 +02:00

80 lines
2.5 KiB
Markdown

# Keyman for Linux
## Projects
- [kmflcomp](./kmflcomp) - KMFL keyboard compiler
- [libkmfl](./libkmfl) - older KMFL core library
- [ibus-kmfl](./ibus-kmfl) - IBUS integration to use KMFL
See [license information](./LICENSE.md) about licensing.
## Linux Requirements/Setup
- It is helpful to be using the [packages.sil.org](http://packages.sil.org) repo
- Install packages required for building and developing KMFL
```bash
sudo apt install cdbs debhelper libx11-dev autotools-dev build-essential \
dh-autoreconf flex bison libibus-1.0-dev python3-setuptools meson \
libjson-glib-dev libgtk-3-dev libxml2-utils help2man python3-lxml \
python3-magic python3-numpy python3-pil python3-pip python3-qrcode \
python3-requests python3-requests-cache python3 python3-gi dconf-cli \
dconf-editor cargo python3-dbus
```
## Compiling from Command Line
### Build script
#### Installing for ibus to use ibus-kmfl
- The process to build and install everything is:
- `make reconf` to create the build system and set the version
- `make fullbuild` to configure and build
- `sudo make install` to install to `/usr/local`
- Some of the files must be installed to `/usr/share/` so `make install` must be run as `sudo`.
To do this run `sudo make install`
- This will install to `/usr/local`
- and `/usr/share/ibus/component/kmfl.xml` and `/usr/share/kmfl/icons`
- If you already have the ibus-kmfl package installed then it will move the file `/usr/share/ibus/component/kmfl.xml` to `/usr/share/doc/ibus-kmfl/`
- run `sudo make uninstall` to uninstall everything and put it back again
#### Tmp install
Used by TC for validating PRs
Run `make tmpinstall` to build and install **keyboardprocessor**, **kmflcomp**, **libkmfl**, **ibus-kmfl** and **ibus-keyman** to `/tmp/kmfl`
This is only for testing the build, not for running **ibus-kmfl** in ibus
### Manually
- **libkmfl** requires `kmfl.h` header from **kmflcomp**
- **ibus-kfml** requires `kmfl.h` and headers and lib from **libkmfl**
So
- **kmflcomp** must be built and installed before **libkmfl**
- **libkmfl** must be built and installed before **ibus-kmfl**
For each project run `./configure && make && make install`.
You may prefer to create a different directory to build in and run configure from there e.g.
```bash
mkdir ../build-kmflcomp
cd ../build-kmflcomp
../kmflcomp/configure
make
make install
```
The install of **ibus-kmfl** doesn't install everything to the correct location for it to be
used - to be fixed