Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

calibre-web: fix ebook conversion missing config_binariesdir setting #366642

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

mfenniak
Copy link
Contributor

Since janeczku/calibre-web@b7aaa0f (calibre-web 0.6.22), calibre-web requires a setting config_binariesdir to be available which provides access to the calibredb binary for metadata management during book export. Although the nixos module has an enableBookConversion setting, it only sets the path to the convert-ebook binary and does not set the path required since this change -- as a result, ebook conversions will fail:

Dec 19 14:30:59 anxi calibre-web[3385431]: [2024-12-19 14:30:59,975]  INFO {cps.editbooks:320} converting: book id: 1744 from: LRF to: EPUB
Dec 19 14:30:59 anxi calibre-web[3385431]: [2024-12-19 14:30:59,976] DEBUG {cps.services.worker:91} Add Task for user: mfenniak - Convert Book 1744
Dec 19 14:30:59 anxi calibre-web[3385431]: [2024-12-19 14:30:59,978]  INFO {cps.tasks.convert:159} Book id 1744 - target format of .epub does not exist. Moving forward with convert.
Dec 19 14:30:59 anxi calibre-web[3385431]: [2024-12-19 14:30:59,981]  INFO {cps.tasks.convert:206} ebook converter failed with error while converting book
Dec 19 14:30:59 anxi calibre-web[3385431]: [2024-12-19 14:30:59,981] ERROR {cps.tasks.convert:210} Ebook-converter failed: [Errno 2] No such file or directory: 'calibredb'

This change populates the config_binariesdir, fixing the enableBookConversion setting.

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
    • NixOS test(s) (look inside nixos/tests)
    • and/or package tests
    • or, for functions and "core" functionality, tests in lib/tests or pkgs/test
    • made sure NixOS tests are linked to the relevant packages
    • (none of these are applicable) -- performed manual testing by upgrading a server to nixos-24.11 + this patch, and confirmed calibre-web starts, the settings are updated, and ebook conversion works.
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 25.05 Release Notes (or backporting 24.11 and 25.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Backport: Please backport to 24.11.


Add a 👍 reaction to pull requests you find important.

@github-actions github-actions bot added 6.topic: nixos Issues or PRs affecting NixOS modules, or package usability issues specific to NixOS 8.has: module (update) This PR changes an existing module in `nixos/` 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin 10.rebuild-linux: 1-10 labels Dec 19, 2024
@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/prs-ready-for-review/3032/4983

@ambroisie
Copy link
Contributor

Is config_converterpath still necessary?

@mfenniak
Copy link
Contributor Author

Is config_converterpath still necessary?

Good question! From a code analysis, yes. If config_binariesdir was changed through the admin web UI, it would automatically detects the presence of the ebook-convert binary and populate config_converterpath -- but because this module is doing the configuration straight in the SQLite database this codepath won't be invoked.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
6.topic: nixos Issues or PRs affecting NixOS modules, or package usability issues specific to NixOS 8.has: module (update) This PR changes an existing module in `nixos/` 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin 10.rebuild-linux: 1-10
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants