* Flag those scripts as executable in git
Somewhat irrelevant because we'll end up living on a FAT32 drive, but,
still.
* Cleanup Kobo startup script
Support KFMon >= 0.9.5
Don't siphon PRODUCT from nickel, it's exported by rcS, so fmon/KFMon
already inherit it.
Siphon NICKEL_HOME, on the off-chance nickel fails to figure that one
out for itself on restart.
Siphon LANG (This may be a terrible idea, rcS sets LANG to en_US.UTF-8,
while we set LC_ALL to en_US.UTF-8, but I don't know if nickel itself
ever updates LANG, since I have mine set to en_US also ;)).
My secret hope if that everything's working as it should and this ensures
we default to Nickel's locale on fresh installs?
Remove the extra sync on startup, both @Baskerville's fmon and KFMon are
smart enough not to do anything overly stupid, and recent FW versions
have a slightly more resilient DB anyway (rollback journal -> WAL).
This effectively shaves over a second off our startup time.
* Slimmed down the nickel restart script.
Based on current rcS
Scrapped a bucketload of irrelevant & legacy crap, since we're never
bootstrapping nickel, only restarting it.
* Update Kobo install instrcutions.
Point to KSM09, @Baskerville's fmon, and KFMon.
Deprecate legacy fmon, and as such, stop shipping a useless KoboRoot
tarball.
You'll still have to call it with `ANDROID_ARCH=x86 ./kodev build/release/run android`.
Don't forget to `./mk-luajit.sh clean` in luajit-launcher when changing architectures.
* Bump android-luajit-launcher
This includes the fix for Android 8. Fixes#3126.
* Bump base
Also improve SDK installation for ease of setting up development system.
This also puts in place most of the missing pieces to finish the intent in #3064.
* Travis: speed up by caching base and running luacheck earlier
* ignore bin and install for git status change detection
* skip coverage except on official master branch. It adds 3 whole minutes and does nothing to prevent regressions
* also cache ~/.luarocks. It evens out but would generally prevent remote timeout shenenigans
* remove base cache dir before caching with verbose remove to see what's going on
* more inclusive shell code quality analysis
* fixed more shellcheck issues
* better shellcheck/shfmt debugging info
Disable wakeup_count handling, that's often causing more harm than
anything else...
Nickel doesn't even use it, that should have been a hint ;).
Make the logging slightly less confusing.
Add commented out debug features (dumping relevant dmesg output).
Re #2188
When using KFMon, make the reboot on exit user-configurable.
The user can now choose to try to restart Nickel directly, like with
fmon.
For now, we still do a full reboot by default.
to make koreader on Android more stable
and with these opt params:
```
require("jit.opt").start("sizemcode=64","maxmcode=64", "hotloop=10000")
```
The strategy here is that we only use precious mcode memory (jitting)
on deep loops like the several blitting methods in blitbuffer.lua and
the pixel-copying methods in mupdf.lua. So that a small amount of mcode
memory (64KB) allocated when koreader is launched in the android.lua
is enough for the program and it won't need to jit other parts of lua
code and thus won't allocate mcode memory any more which by our
observation will be harder and harder as we run koreader.
Because we cannot deal with it properly...
We'd need to be able to stop eating all input, and have a lot of luck
with refresh timings to actually have the popup visible at the right
time.
TL;DR: it's a mess, kill it with fire.
Fix#1811
Which I broke the last time I touched this.
NOTE: I'm not quire sure why the bbsave/bbrestore on stop/resume did a
double check (screensaver & charging), because that effectiely disabled
it when charging, which I don't quite understand...
Also makes sure the needsScreenRefreshAfterResume flag is honored on
Kindles, because we need it on FW >= 5.7.2
Note that this *breaks* the behavior with passcode enabled, which was
unwittingly fixed in said previous changes...
re #1811
This workaround makes a reservation of mmap slots that are hopefully
near the address of `mcode_alloc_at`. Then it unmaps those slots and
lets luajit allocate a large slot for mcode.
When launching KOReader with the framework up from KUAL...
Our gentle hide/unhide method doesn't work anymore, which leads to
various issues, the most obvious being not getting a refresh to the
default UI on exit...
Currently only tested on Ubuntu-touch emulator with framework
ubuntu-sdk-14.10 for armhf.
The ubuntu-touch port is binary compatible with the Kobo port
major changes in this PR are:
1. rename the emulator device to sdl device since both the emulator
and the ubuntu-touch target use libsdl to handle input/output.
2. ubuntu-touch app has no write access to the installation dir so
all write-outs should be in a seperate dir definded in `datastorage`.
Properly refresh the screen when exiting with the framework running.
The lua code to handle that is called while cvm is SIGSTOPP'ed, so it
doesn't help.
To avoid potential issues with USBMS.
Namely, make sure CWD doesn't point to the userstore for persitent
processes.
Make sure wpa_supplicant doesn't try to use our own OpenSSL lib, which,
again, is in the userstore area.
Properly kill our dhcp client invocation on when killing WiFi
Also, some related fixes to the startup script:
Properly kill wpa_supplicant & the dhcp client when we kill
wifi before rebooting to nickel.
On kindle, kobo and pocketbook the data directory is the current
running directory but on Android the app is installed in system
defined location and users may have no access to that location.
The same circumstances should be true for the upcoming Koreader for
Ubuntu touch, so the data directory (in which tessdata, dictionaries,
global settings, persistant defaults and probably history data are
stored) could be stored in another place.
Thanks to @Markismus's questions, I realized that some of what i thought
was true, wasn't.
First, pkill is a terrible idea to check for interpreted scripts.
Second, pidof is also potentially not that great for interpreted
scripts, because it'll only work with a shebang, and one that is
following the Linux syntax.
We don't have the full version with the -x to paper over that,
so use pgrep -f instead.
cf.
a736a571d2 (commitcomment-10948910)
for the gory details.
pkill probably only checks the actual name of the binary.
We were checking a shell script, which I'm guessing is not launched
via a shebang, so that name was actually an arg to sh, or something like
that.
Use pidof instead, which matches the full command line.
For some unknowable reason, restarting nickel on exit deadlocks on my
H2O, so, do a full reboot instead, at least *that* works.
I'm probably one of the only people running KO manually anyway...
Compatibility with KSM is resolved. Koreader will now work from any directory it is installed in.
KSM7 tweaks `koreader.sh` line 5 from a hardcoded path to the line used above. I've added the change in line 12 to allow OTA updating.