Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 785463 - app-text/calibre fails to removed DRM from amazon books with DeDRM plugin unless dev-python/pycryptodome is installed
Summary: app-text/calibre fails to removed DRM from amazon books with DeDRM plugin unl...
Status: UNCONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Zac Medico
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-04-24 22:37 UTC by John Moore
Modified: 2023-10-19 23:35 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description John Moore 2021-04-24 22:37:58 UTC
Recently, app-text/calibre, with the DeDRM plugin installed, has failed to remove DRM when importing amazon.com purchased ebooks.  Looking at calibre's debug mode logs, I think the error is:

ModuleNotFoundError: No module named 'Crypto'

After some googling of this error, I emerged dev-python/pycryptodome, and it looks like this fixes the problem.

Could this be made a dependency of calibre, maybe via a use flag?  I realize this is a dependency of the DeDRM plugin, not calibre itself, but I imagine most Gentoo users with calibre also use this plugin.



emerge --info:
Portage 3.0.17 (python 3.8.8-final-0, default/linux/amd64/17.1/desktop/plasma, gcc-10.2.0, glibc-2.32-r7, 5.10.27-gentoo x86_64)
=================================================================
System uname: Linux-5.10.27-gentoo-x86_64-Intel-R-_Core-TM-_i7-4790K_CPU_@_4.00GHz-with-glibc2.2.5
KiB Mem:    16352852 total,   4516288 free
KiB Swap:   19922940 total,  19914700 free
Timestamp of repository gentoo: Fri, 23 Apr 2021 11:35:15 +0000
Head commit of repository gentoo: e3ca789fcbb273b73a2f076641771472560de492

Timestamp of repository brother-overlay: Mon, 12 Apr 2021 01:22:45 +0000
Head commit of repository brother-overlay: 6811e245c3516c154f57e0dcf952fe0182394ae0

Timestamp of repository maekke: Mon, 12 Apr 2021 10:36:07 +0000
Head commit of repository maekke: ff4d8cb5b1fe1de7a620de692e6c1e283ca67894

Timestamp of repository poly-c: Thu, 22 Apr 2021 10:05:10 +0000
Head commit of repository poly-c: 3097765e89078cddbb35ce7ea93d35ecb8b2f753

Timestamp of repository src_prepare-overlay: Tue, 20 Apr 2021 05:49:59 +0000
Head commit of repository src_prepare-overlay: 691573e8a525042bc2d91ca41684b5517704f6df

Timestamp of repository steam-overlay: Tue, 20 Apr 2021 22:35:10 +0000
Head commit of repository steam-overlay: 1189a84a704dfba7c3312ccfd6c22cceb35bddfd

sh bash 5.0_p18
ld GNU ld (Gentoo 2.35.2 p1) 2.35.2
app-shells/bash:          5.0_p18::gentoo
dev-java/java-config:     2.3.1::gentoo
dev-lang/perl:            5.30.3::gentoo
dev-lang/python:          2.7.18_p8::gentoo, 3.8.8_p1::gentoo, 3.9.2_p1::gentoo
dev-lang/rust:            1.51.0-r2::gentoo
dev-util/cmake:           3.18.5::gentoo
dev-util/pkgconfig:       0.29.2::gentoo
sys-apps/baselayout:      2.7::gentoo
sys-apps/openrc:          0.42.1-r1::gentoo
sys-apps/sandbox:         2.20::gentoo
sys-devel/autoconf:       2.13-r1::gentoo, 2.69-r5::gentoo
sys-devel/automake:       1.16.2-r1::gentoo
sys-devel/binutils:       2.35.2::gentoo
sys-devel/gcc:            10.2.0-r5::gentoo
sys-devel/gcc-config:     2.4::gentoo
sys-devel/libtool:        2.4.6-r6::gentoo
sys-devel/make:           4.3::gentoo
sys-kernel/linux-headers: 5.10::gentoo (virtual/os-headers)
sys-libs/glibc:           2.32-r7::gentoo
Repositories:

gentoo
    location: /var/db/repos/gentoo
    sync-type: git
    sync-uri: https://github.com/gentoo-mirror/gentoo.git
    priority: -1000
    sync-git-verify-commit-signature: true

brother-overlay
    location: /var/db/repos/brother-overlay
    sync-type: git
    sync-uri: https://github.com/gentoo-mirror/brother-overlay.git
    masters: gentoo

maekke
    location: /var/db/repos/maekke
    sync-type: git
    sync-uri: https://github.com/gentoo-mirror/maekke.git
    masters: gentoo

officepc
    location: /var/db/repos/localrepo
    masters: gentoo

poly-c
    location: /var/db/repos/poly-c
    sync-type: git
    sync-uri: https://github.com/gentoo-mirror/poly-c.git
    masters: gentoo

src_prepare-overlay
    location: /var/db/repos/src_prepare-overlay
    sync-type: git
    sync-uri: https://github.com/gentoo-mirror/src_prepare-overlay.git
    masters: gentoo

steam-overlay
    location: /var/db/repos/steam-overlay
    sync-type: git
    sync-uri: https://github.com/gentoo-mirror/steam-overlay.git
    masters: gentoo

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="@FREE PUEL dlj-1.1 googleearth AdobeFlash-11.x Oracle-BCLA-JavaSE google-chrome RAR RTCW unRAR"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/themes/oxygen-gtk/gtk-2.0"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/init.d /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /usr/share/x11"
CXXFLAGS="-march=native -O2 -pipe"
DISTDIR="/mnt/data/portage_distfiles"
EMERGE_DEFAULT_OPTS="-j4 --quiet-build --with-bdeps y --verbose-conflicts --autounmask-write=n --autounmask-keep-masks"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs buildpkg clean-logs config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
INSTALL_MASK="/usr/share/locale -/usr/share/locale/en_US -/usr/share/locale/en_GB"
LANG="en_US.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="en_US"
MAKEOPTS="-j6 -l3"
PKGDIR="/var/cache/binpkgs"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
USE="X a52 aac acpi activities alsa amd64 audiofile bash-completion branding bzip2 cdda cdparanoia cdr cleartype cli clucene cups dbus declarative dri dvd dvdr dvdread elogind encode exif flac gif gphoto2 gpm gui iconv icu imagemagick infinality jpeg kde kipi kwallet lcms libglvnd libtirpc lm-sensors lock mad midi mng mp3 mp4 mpeg mpris mtp multilib musicbrainz nas nptl nvidia ogg opengl openmp pam pango pch pcre pdf phonon plasma png policykit ppds pulseaudio qml qt5 readline realtime scanner sdl seccomp semantic-desktop spell split-usr ssl startup-notification tcpd threads tiff truetype udev udisks urandom usb v4l v4l2 vorbis widgets wxwidgets x264 xattr xcb xcomposite xine xml xulrunner xv xvid zlib" ABI_X86="64" ADA_TARGET="gnat_2018" ALSA_CARDS="hda-intel" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="efi-64" INPUT_DEVICES="libinput" KERNEL="linux" L10N="en_US" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-3 php7-4" POSTGRES_TARGETS="postgres10 postgres11" PYTHON_SINGLE_TARGET="python3_8" PYTHON_TARGETS="python3_8" RUBY_TARGETS="ruby26" SANE_BACKENDS="epson epson2" USERLAND="GNU" VIDEO_CARDS="nvidia vesa fbdev" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq proto steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CC, CPPFLAGS, CTARGET, CXX, LC_ALL, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, RUSTFLAGS
Comment 1 Zac Medico gentoo-dev 2021-04-25 11:16:16 UTC
What procedure do you use to install the plugin? Are installation and updates entirely manual, as described here?

https://github.com/apprenticeharper/DeDRM_tools/blob/master/CALIBRE_CLI_INSTRUCTIONS.md#install-plugins

> #### Install plugins
>   - Download the DeDRM `.zip` archive from DeDRM_tools'
>      [latest release](https://github.com/apprenticeharper/DeDRM_tools/releases/latest).
>      Then unzip it.
>   - Add the DeDRM plugin to Calibre:
>      ```
>      cd *the unzipped DeDRM_tools folder*
>      calibre-customize --add DeDRM_calibre_plugin/DeDRM_plugin.zip
>      ```
>   - Add the Obok plugin:
>     ```
>     calibre-customize --add Obok_calibre_plugin/obok_plugin.zip
>     ```

I imagine that we can create an ebuild to automate updates and pull in the dev-python/pycryptodome dependency.
Comment 2 John Moore 2021-04-25 13:13:14 UTC
Yes, it is just a manual install following those instructions. I think, due to possible legal concerns, the calibre devs do not want to be "officially" associated with the DeDRM plugin, so, unlike other plugins, it cannot be installed using calibre's list of user plugins.

I was not intending to ask for the ebuild to actually install the plugin, just add dev-python/pycryptodome as a dependency.
Comment 3 Eli Schwartz 2023-10-19 23:35:12 UTC
I have just recently implemented https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5a1aae1fc67dd51c2789e11b8f7dc156d62d8b8d

This sets up gentoo to support: https://github.com/kovidgoyal/calibre/pull/1284

It is now possible to package arbitrary calibre plugins as ebuilds, install them to /usr/share/calibre/system-plugins, and have them automatically loaded and centrally managed.

Maybe you'd like to make an overlay for this plugin?