New app: Liseur

Required

  • The app complies with the inclusion criteria
  • The original app author has been notified (and does not oppose the inclusion) — I am the author.
  • All related fdroiddata and RFP issues have been referenced in this merge request — there are none; I searched both trackers before opening this.
  • Builds with fdroid build and all pipelines pass
  • There is an issue tracker and contact info of the author so that we can report bugs and contact the author.
  • The upstream app source code repo contains the app metadata (summary/description/images/changelog/etc) in a Fastlane or Triple-T folder structure
  • Releases are tagged and auto update is enabled

Suggested

  • External repos are added as git submodules instead of srclibs — the app uses neither; every dependency comes from Maven Central or Google's Maven.
  • Enable Reproducible Builds — No, I don't want this.
  • Multiple apks for native code — not applicable, the app has no native code.

About the app

Liseur is an EPUB reader for Android and a client for calibre-web or komga: it reads the files on your phone, and it can browse, download from and sync reading positions with a calibre-web server you run yourself. Rendering is Readium. MIT licensed.

I have run fdroid readmeta, rewritemeta, lint, checkupdates and build in the buildserver container locally as well; rewritemeta produced no changes and the build produced com.chmouel.liseur_3.apk. I installed that APK on an emulator and it starts and reads books.

Permissions

The manifest declares two: INTERNET and ACCESS_NETWORK_STATE.

The built APK also carries WAKE_LOCK, RECEIVE_BOOT_COMPLETED and FOREGROUND_SERVICE, merged in from androidx.work and androidx.media3. WorkManager runs the downloads and the position sync; media3 is used for the media-button handling in the reader. Nothing requests them at runtime beyond that.

Network connections

The app declares INTERNET, so it is worth saying exactly where it connects. There are two places, both optional, and neither is a service I run:

  • a calibre-web server, whose address the user types in themselves — GPLv3, self-hosted. Nothing is contacted until an account is configured, and the app is fully usable without one.
  • Wiktionary, through Wikimedia's MediaWiki API, when the user taps Define on a selected word. This can be turned off in settings, or pointed at an installed offline dictionary app instead.

There is no first-party server, no account, no telemetry, no crash reporting and no ads. No Google Play services, no Firebase, no analytics library. I mention this because Myne, the other ebook reader in the repo, carries NonFreeNet, and I do not think it applies here — but say so if you disagree and I will add it.

Bundled assets

Seven fonts ship with the app, all under the SIL Open Font License 1.1: Literata, Vollkorn, Inter, iA Writer Duospace, Atkinson Hyperlegible, OpenDyslexic and Accessible-DFA. The full licence text for each, with its copyright line and upstream URL, is in app/src/main/assets/licences/. The only other binary in the repo is gradle/wrapper/gradle-wrapper.jar, which fdroidserver replaces with its own wrapper.

Review checklist

Filled in from testing on an emulator (Android 16, API 37) and on a OnePlus CPH2653:

  • Basic function — opens EPUBs from a folder chosen through SAF and from a single file; paginates, remembers the position, highlights, notes, bookmarks, in-book search, Wiktionary lookup, calibre-web browse/download and position sync. The screenshots are captured by a script that drives each of these through the real UI.
  • Policy compliance — MIT, no proprietary dependencies, no tracking. Notably it does not include readium-lcp, which pulls in a proprietary binary.
  • Permissions — as above.
  • Network connections — as above.
  • Language support — English only for now; the app has no hardcoded strings outside strings.xml, so translations can be added without code changes.
  • Security — no exported components beyond the launcher activity, no WRITE_EXTERNAL_STORAGE, file access goes through the Storage Access Framework. Network access is HTTPS by default; usesCleartextTraffic is not enabled.
Edited by Chmouel Boudjnah

Merge request reports

Loading
Loading