From 1e8e598cd3a236867cd6369a5ee844b2e5241a93 Mon Sep 17 00:00:00 2001 From: Eberhard Beilharz Date: Tue, 11 Oct 2022 17:00:40 +0200 Subject: [PATCH] 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. --- linux/LICENSE.md | 19 +++++----- linux/README.md | 23 ++++-------- linux/README.repo | 7 ---- linux/legacy/LICENSE.md | 13 +++++++ linux/legacy/README.md | 80 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 109 insertions(+), 33 deletions(-) delete mode 100644 linux/README.repo create mode 100644 linux/legacy/LICENSE.md create mode 100644 linux/legacy/README.md diff --git a/linux/LICENSE.md b/linux/LICENSE.md index 153a83e91b..98cdd5435c 100644 --- a/linux/LICENSE.md +++ b/linux/LICENSE.md @@ -1,17 +1,16 @@ # LICENSE -The [kmflcomp](./kmflcomp), [libkmfl](./libkmfl), and [keyman_config](./keyman_config) projects -are covered by the [MIT license](./libkmfl/COPYING). +The [keyman-config](./keyman-config) project is covered by the +[MIT license](./keyman-config/COPYING). -The [ibus-kmfl](./ibus-kmfl) and [ibus-keyman](./ibus-keyman) projects are licensed under GNU -General Public License as published by the Free Software Foundation; either -[version 2 of the License](./ibus-kmfl/COPYING), or (at your option) any later version. +The [ibus-keyman](./ibus-keyman) projects is licensed under GNU General Public License +as published by the Free Software Foundation; either +[version 2 of the License](./ibus-keyman/COPYING), or (at your option) any later version. -Two files in ibus-kmfl, [kmflutil.c](./ibus-kmfl/src/kmflutil.c) and -[kmflutil.h](./ibus-kmfl/src/kmflutil.h), as well as four files in ibus-keyman, -[keymanutil.c](./ibus-keyman/src/keymanutil.c), [keymanutil.h](./ibus-keyman/src/keymanutil.h), -[kmpdetails.c](./ibus-keyman/src/kmpdetails.c) and [kmpdetails.h](./ibus-keyman/src/kmpdetails.h), -are dual licensed by the MIT license and the GNU General Public License which is described above. +Four files in ibus-keyman, [keymanutil.c](./ibus-keyman/src/keymanutil.c), +[keymanutil.h](./ibus-keyman/src/keymanutil.h), [kmpdetails.c](./ibus-keyman/src/kmpdetails.c) +and [kmpdetails.h](./ibus-keyman/src/kmpdetails.h), are dual licensed by the MIT license and +the GNU General Public License which is described above. The MIT license alone may be chosen for them for their use in other projects. Two files in ibus-keyman, [keyman-service.c](./ibus-keyman/src/keyman-service.c) and diff --git a/linux/README.md b/linux/README.md index 870fddabb9..5aafea3dd1 100644 --- a/linux/README.md +++ b/linux/README.md @@ -16,7 +16,7 @@ See [license information](./LICENSE.md) about licensing. - It is helpful to be using the [packages.sil.org](http://packages.sil.org) repo -- Install packages required for building and developing KMFL and Keyman for Linux +- Install packages required for building and developing Keyman for Linux ```bash sudo apt install cdbs debhelper libx11-dev autotools-dev build-essential \ @@ -31,7 +31,7 @@ See [license information](./LICENSE.md) about licensing. ### Build script -#### Installing for ibus to use ibus-kmfl or ibus-keyman +#### Installing for ibus to use ibus-keyman - The process to build and install everything is: @@ -44,10 +44,8 @@ See [license information](./LICENSE.md) about licensing. 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` - and `/usr/share/ibus/component/keyman.xml` and `/usr/share/keyman/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/` - If you already have the ibus-keyman package installed then it will move the file `/usr/share/ibus/component/keyman.xml` to `/usr/share/doc/ibus-keyman/` - run `sudo make uninstall` to uninstall everything and put it back again @@ -56,20 +54,16 @@ See [license information](./LICENSE.md) about licensing. Used by TC for validating PRs -Run `make tmpinstall` to build and install **keyboardprocessor**, **kmflcomp**, **libkmfl**, **ibus-kmfl** and **ibus-keyman** to `/tmp/kmfl` +Run `make tmpinstall` to build and install **keyboardprocessor** and **ibus-keyman** to `/tmp/kmfl` -This is only for testing the build, not for running **ibus-kmfl** or **ibus-keyman** in ibus +This is only for testing the build, not for running **ibus-keyman** in ibus ### Manually -- **libkmfl** requires `kmfl.h` header from **kmflcomp** -- **ibus-kfml** requires `kmfl.h` and headers and lib from **libkmfl** - **ibus-keyman** requires headers and lib from **keyboardprocessor** So -- **kmflcomp** must be built and installed before **libkmfl** -- **libkmfl** must be built and installed before **ibus-kmfl** - **keyboardprocessor** must be built before **ibus-keyman** For each project run `./configure && make && make install`. @@ -77,16 +71,13 @@ 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 +mkdir ../build-ibus-keyman +cd ../build-ibus-keyman +../ibus-keyman/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 - ## Continuous integration Teamcity PR builds will run `make tmpinstall` diff --git a/linux/README.repo b/linux/README.repo deleted file mode 100644 index 708cda84bd..0000000000 --- a/linux/README.repo +++ /dev/null @@ -1,7 +0,0 @@ -You need autoconf, autopoint, gettext, automake and libtool to generate the build system - -flex and bison are useful to rebuild lex.l and yacc.y in kmflcomp but not essential - -For keyboardprocessor you need rust, meson and ninja (meson package pulls in ninja) - -Run `make reconf` to run them diff --git a/linux/legacy/LICENSE.md b/linux/legacy/LICENSE.md new file mode 100644 index 0000000000..25cba465bf --- /dev/null +++ b/linux/legacy/LICENSE.md @@ -0,0 +1,13 @@ +# LICENSE + +The [kmflcomp](./kmflcomp) and [libkmfl](./libkmfl) projects are covered by the +[MIT license](./libkmfl/COPYING). + +The [ibus-kmfl](./ibus-kmfl) project is licensed under GNU General Public License +as published by the Free Software Foundation; either +[version 2 of the License](./ibus-kmfl/COPYING), or (at your option) any later version. + +Two files in ibus-kmfl, [kmflutil.c](./ibus-kmfl/src/kmflutil.c) and +[kmflutil.h](./ibus-kmfl/src/kmflutil.h) are dual licensed by the MIT license and the +GNU General Public License which is described above. +The MIT license alone may be chosen for them for their use in other projects. diff --git a/linux/legacy/README.md b/linux/legacy/README.md new file mode 100644 index 0000000000..d65723012d --- /dev/null +++ b/linux/legacy/README.md @@ -0,0 +1,80 @@ +# 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