2014-05-09 14:52:45 +00:00
|
|
|
KOReader [![Build Status][travis-icon]][travis-link]
|
2012-09-16 17:56:58 +00:00
|
|
|
========
|
|
|
|
|
2014-05-29 13:09:22 +00:00
|
|
|
KOReader is a document viewer application, originally created for usage on the
|
2013-08-28 21:36:19 +00:00
|
|
|
Kindle e-ink reader. It currently supports Kindle 5 (Touch), Kindle Paperwhite
|
2014-05-29 13:09:22 +00:00
|
|
|
, Kobo and Android devices.
|
2012-09-16 17:56:58 +00:00
|
|
|
|
2013-03-31 03:35:41 +00:00
|
|
|
KOReader started as the KindlePDFViewer application, but it supports much more
|
2013-03-24 12:25:52 +00:00
|
|
|
formats than PDF now. Among them are DJVU, FB2, EPUB, TXT, CBZ, HTML.
|
2012-09-16 17:56:58 +00:00
|
|
|
|
2013-03-31 03:35:41 +00:00
|
|
|
KOReader is a frontend written in Lua and uses the API presented by the
|
2014-05-29 13:09:22 +00:00
|
|
|
koreader-base framework. KOReader implements a GUI and is currently targeted
|
|
|
|
at touch-based devices - for the classic user interface for button-driven
|
2013-03-24 12:25:52 +00:00
|
|
|
e-ink devices (like the Kindle 2, Kindle DX, Kindle 3, Kindle 4) see the
|
|
|
|
KindlePDFviewer legacy project or - especially for the Kindle 4 - have a look
|
|
|
|
at its fork Librerator.
|
2012-09-16 17:56:58 +00:00
|
|
|
|
2014-03-23 08:51:17 +00:00
|
|
|
This application is distributed under the GNU AGPL v3 license (read the [COPYING](COPYING) file).
|
2013-03-24 14:08:42 +00:00
|
|
|
|
2014-05-09 14:42:30 +00:00
|
|
|
Check out the [KOReader wiki](https://github.com/koreader/koreader/wiki) to learn
|
|
|
|
more about this project.
|
|
|
|
|
2013-04-20 22:28:42 +00:00
|
|
|
Prerequisites
|
2013-03-24 14:08:42 +00:00
|
|
|
========
|
|
|
|
|
2014-05-29 13:09:22 +00:00
|
|
|
Instructions about how to get and compile the source are intended for a linux
|
|
|
|
OS. Windows users are suggested to develop in a [Linux VM][linux-vm] or use Wubi.
|
2013-03-24 14:08:42 +00:00
|
|
|
|
2014-05-07 11:37:47 +00:00
|
|
|
To get and compile the source you must have `patch`, `wget`, `unzip`, `git`, `autoconf`,
|
|
|
|
`subversion` and `cmake` installed. Version of autoconf need to be greater than 2.64.
|
2013-09-26 05:06:10 +00:00
|
|
|
|
2014-03-25 14:26:36 +00:00
|
|
|
Ubuntu users may need to run:
|
|
|
|
```
|
2014-05-07 11:52:54 +00:00
|
|
|
sudo apt-get install build-essential libtool
|
2014-03-25 14:26:36 +00:00
|
|
|
```
|
2013-03-24 14:08:42 +00:00
|
|
|
|
2014-05-29 13:09:22 +00:00
|
|
|
Cross compile toolchains are available for Ubuntu users through these commands:
|
2014-02-13 14:49:45 +00:00
|
|
|
```
|
2014-03-23 08:55:15 +00:00
|
|
|
# for Kindle
|
2014-02-13 14:49:45 +00:00
|
|
|
sudo apt-get install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi
|
2014-03-23 08:55:15 +00:00
|
|
|
# for Kobo
|
2014-02-13 14:49:45 +00:00
|
|
|
sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
|
|
|
|
```
|
|
|
|
|
2014-05-29 13:09:22 +00:00
|
|
|
A recent version of Android SDK/NDK is needed in order to build Koreader for Android
|
|
|
|
devices.
|
|
|
|
|
2014-02-13 14:49:45 +00:00
|
|
|
You might also need SDL library packages if you want to compile and run
|
2014-03-25 14:26:36 +00:00
|
|
|
Koreader on PC. Fedora users can install `SDL` and `SDL-devel`.
|
2014-05-29 13:09:22 +00:00
|
|
|
Ubuntu users probably need to run:
|
2014-03-25 14:26:36 +00:00
|
|
|
```
|
|
|
|
sudo apt-get install libsdl1.2-dev
|
|
|
|
```
|
2013-03-24 14:08:42 +00:00
|
|
|
|
2013-04-20 22:28:42 +00:00
|
|
|
Getting the source
|
|
|
|
========
|
2013-03-24 14:08:42 +00:00
|
|
|
|
2013-04-20 22:28:42 +00:00
|
|
|
```
|
|
|
|
git clone https://github.com/koreader/koreader.git
|
|
|
|
cd koreader
|
|
|
|
make fetchthirdparty
|
|
|
|
```
|
2013-03-24 14:08:42 +00:00
|
|
|
|
|
|
|
|
2014-03-25 14:26:36 +00:00
|
|
|
Building & Running & Testing
|
2013-04-20 22:28:42 +00:00
|
|
|
========
|
2013-03-24 14:08:42 +00:00
|
|
|
|
2013-04-20 22:28:42 +00:00
|
|
|
For real eink devices
|
2013-03-24 16:18:53 +00:00
|
|
|
---------------------
|
2013-03-24 14:08:42 +00:00
|
|
|
|
2014-05-29 13:09:22 +00:00
|
|
|
If you have already built one package for a different target, remember to run
|
|
|
|
this command before you go further:
|
2013-04-20 22:28:42 +00:00
|
|
|
```
|
2013-08-28 21:36:19 +00:00
|
|
|
make clean
|
2013-04-20 22:28:42 +00:00
|
|
|
```
|
2013-03-24 14:08:42 +00:00
|
|
|
|
2014-05-29 13:09:22 +00:00
|
|
|
To build installable package for Kindle:
|
2013-04-20 22:28:42 +00:00
|
|
|
```
|
2014-05-29 13:09:22 +00:00
|
|
|
make TARGET=kindle kindleupdate
|
2013-08-28 21:36:19 +00:00
|
|
|
```
|
|
|
|
|
2014-05-29 13:09:22 +00:00
|
|
|
To build installable package for Kobo:
|
2013-08-28 21:36:19 +00:00
|
|
|
```
|
2014-05-29 13:09:22 +00:00
|
|
|
make TARGET=kobo koboupdate
|
2013-04-20 22:28:42 +00:00
|
|
|
```
|
2013-03-24 14:08:42 +00:00
|
|
|
|
2013-04-20 22:28:42 +00:00
|
|
|
To run, you must call the script reader.lua. Run it without arguments to see
|
|
|
|
usage notes. Note that the script and the koreader-base binary currently must
|
|
|
|
be in the same directory.
|
2013-03-24 14:08:42 +00:00
|
|
|
|
2013-04-20 22:35:47 +00:00
|
|
|
You may checkout our [nightlybuild script][nb-script] to see how to build a
|
|
|
|
package from scratch.
|
|
|
|
|
2014-05-29 13:09:22 +00:00
|
|
|
For Android devices
|
|
|
|
-------------------
|
|
|
|
|
|
|
|
Make sure the "android" tool is in your PATH variable and the NDK variable
|
|
|
|
points to the root directory of the Android NDK.
|
|
|
|
|
|
|
|
First, run this command to make a standalone android cross compiling toolchain
|
|
|
|
from NDK:
|
|
|
|
```
|
|
|
|
make android-toolchain
|
|
|
|
```
|
|
|
|
|
|
|
|
Also, if you have already built a different target, remember to clear the source
|
|
|
|
code tree with:
|
|
|
|
```
|
|
|
|
make clean
|
|
|
|
```
|
|
|
|
|
|
|
|
Then, build installable package for Android:
|
|
|
|
```
|
|
|
|
make TARGET=android androidupdate
|
|
|
|
```
|
|
|
|
|
2013-04-20 22:28:42 +00:00
|
|
|
For emulating
|
2014-05-29 13:09:22 +00:00
|
|
|
-------------
|
2013-03-24 19:13:03 +00:00
|
|
|
|
2013-04-20 22:28:42 +00:00
|
|
|
If you already done a real device build, you must do:
|
2013-03-24 19:13:03 +00:00
|
|
|
```
|
2013-08-28 21:36:19 +00:00
|
|
|
make clean
|
2013-03-24 16:18:53 +00:00
|
|
|
```
|
2013-03-24 19:13:03 +00:00
|
|
|
|
2014-01-01 21:07:28 +00:00
|
|
|
To build:
|
2013-03-24 19:13:03 +00:00
|
|
|
```
|
2013-08-28 21:36:19 +00:00
|
|
|
EMULATE_READER=1 make
|
2013-03-24 16:18:53 +00:00
|
|
|
```
|
2013-03-24 19:13:03 +00:00
|
|
|
|
2013-04-20 22:28:42 +00:00
|
|
|
To run:
|
2013-04-20 22:31:24 +00:00
|
|
|
```
|
2013-08-28 21:36:19 +00:00
|
|
|
cd koreader-*/koreader && ./reader.lua -d ./
|
2013-04-20 22:31:24 +00:00
|
|
|
```
|
|
|
|
|
2014-03-25 14:26:36 +00:00
|
|
|
To test:
|
|
|
|
```
|
|
|
|
make test
|
|
|
|
```
|
|
|
|
|
|
|
|
You may need to checkout the [travis config file][travis-conf] to setup up
|
|
|
|
a proper testing environment. Briefly, you need to install `luarocks` and
|
|
|
|
then install `busted` with `luarocks`. The "eng" language data file for
|
|
|
|
tesseract-ocr is also need to test OCR functionality. Finally, make sure
|
|
|
|
that `luajit` in your system is at least of version 2.0.2.
|
|
|
|
|
2013-04-20 22:31:24 +00:00
|
|
|
You can also specify size of emulator's screen via environment variables.
|
|
|
|
For more information, please refer to [koreader-base's README][base-readme].
|
2013-03-24 19:13:03 +00:00
|
|
|
|
2014-01-01 21:07:28 +00:00
|
|
|
To use your own koreader-base repo instead of the default one change KOR_BASE
|
|
|
|
environment variable:
|
|
|
|
```
|
|
|
|
EMULATE_READER=1 make KOR_BASE=../koreader-base
|
|
|
|
```
|
|
|
|
|
|
|
|
This will be handy if you are developing koreader-base and want to test your
|
|
|
|
modifications with kroeader frontend. NOTE: only support relative path for now.
|
|
|
|
|
2013-03-24 16:18:53 +00:00
|
|
|
|
2013-04-20 22:28:42 +00:00
|
|
|
Use ccache
|
|
|
|
==========
|
2013-03-24 19:13:03 +00:00
|
|
|
|
2013-04-20 22:28:42 +00:00
|
|
|
Ccache can speed up recompilation by caching previous compilations and detecting
|
|
|
|
when the same compilation is being done again. In other words, it will decrease
|
|
|
|
build time when the source have been built. Ccache support has been added to
|
|
|
|
KOReader's build system. Before using it, you need to install a ccache in your
|
|
|
|
system.
|
|
|
|
|
|
|
|
* in ubuntu use:`sudo apt-get install ccache`
|
|
|
|
* in fedora use:`sudo yum install ccache`
|
|
|
|
* install from source:
|
|
|
|
* get latest ccache source from http://ccache.samba.org/download.html
|
|
|
|
* unarchieve the source package in a directory
|
|
|
|
* cd to that directory and use:`./configure && make && sudo make install`
|
|
|
|
* after using ccache, make a clean build will only take 15sec. Enjoy!
|
|
|
|
* to disable ccache, use `export USE_NO_CCACHE=1` before make.
|
|
|
|
* for more detail about ccache. visit:
|
2013-03-26 23:21:30 +00:00
|
|
|
|
2013-04-20 22:28:42 +00:00
|
|
|
http://ccache.samba.org
|
2013-03-26 23:21:30 +00:00
|
|
|
|
2013-04-20 22:31:24 +00:00
|
|
|
|
|
|
|
[base-readme]:https://github.com/koreader/koreader-base/blob/master/README.md
|
2013-04-20 22:35:47 +00:00
|
|
|
[nb-script]:https://github.com/koreader/koreader-misc/blob/master/koreader-nightlybuild/koreader-nightlybuild.sh
|
2014-03-23 08:51:17 +00:00
|
|
|
[travis-icon]:https://travis-ci.org/koreader/koreader-base.png?branch=master
|
|
|
|
[travis-link]:https://travis-ci.org/koreader/koreader-base
|
2014-03-25 14:26:36 +00:00
|
|
|
[travis-conf]:https://github.com/koreader/koreader-base/blob/master/.travis.yml
|
2014-05-29 13:09:22 +00:00
|
|
|
[linux-vm]:http://www.howtogeek.com/howto/11287/how-to-run-ubuntu-in-windows-7-with-vmware-player/
|
2014-03-25 14:26:36 +00:00
|
|
|
|