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