I found this in my .xsession-errors from calibre. It wants to import pyPdf and fails because it is not installed. emerging pyPdf 1.13 make the import error go away. Calibre works fine otherwise so not sure what it is really used for but let's make calibre happy anyway :-). Traceback (most recent call last): File "/usr/lib64/calibre/calibre/gui2/ui.py", line 129, in __init__ ac = self.init_iaction(action) File "/usr/lib64/calibre/calibre/gui2/ui.py", line 143, in init_iaction ac = action.load_actual_plugin(self) File "/usr/lib64/calibre/calibre/customize/__init__.py", line 576, in load_actual_plugin ac = getattr(importlib.import_module(mod), cls)(gui, File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module __import__(name) File "/usr/lib64/calibre/calibre/customize/zipplugin.py", line 150, in load_module exec compiled in mod.__dict__ File "calibre_plugins.prst1_notes.ui", line 12, in <module> File "/usr/lib64/calibre/calibre/customize/zipplugin.py", line 150, in load_module exec compiled in mod.__dict__ File "calibre_plugins.prst1_notes.main", line 18, in <module> File "/usr/lib64/calibre/calibre/customize/zipplugin.py", line 150, in load_module exec compiled in mod.__dict__ File "calibre_plugins.prst1_notes.PRST1NotesMergeInterface", line 8, in <module> File "/usr/lib64/calibre/calibre/customize/zipplugin.py", line 150, in load_module exec compiled in mod.__dict__ File "calibre_plugins.prst1_notes.PRST1NotesMerger", line 9, in <module> ImportError: No module named pyPdf # emerge --info Portage 2.1.11.62 (default/linux/amd64/13.0/desktop, gcc-4.6.3, glibc-2.15-r3, 3.8.7-gentoo x86_64) ================================================================= System uname: Linux-3.8.7-gentoo-x86_64-Intel-R-_Core-TM-_i7-3770K_CPU_@_3.50GHz-with-gentoo-2.2 KiB Mem: 14810756 total, 4331056 free KiB Swap: 8388604 total, 8365792 free Timestamp of tree: Fri, 10 May 2013 08:45:01 +0000 ld GNU ld (GNU Binutils) 2.22 app-shells/bash: 4.2_p45 dev-java/java-config: 2.1.12-r1 dev-lang/python: 2.7.3-r3, 3.1.5-r1, 3.2.3-r2 dev-util/cmake: 2.8.10.2-r2 dev-util/pkgconfig: 0.28 sys-apps/baselayout: 2.2 sys-apps/openrc: 0.11.8 sys-apps/sandbox: 2.5 sys-devel/autoconf: 2.13, 2.69 sys-devel/automake: 1.11.6, 1.12.6 sys-devel/binutils: 2.22-r1 sys-devel/gcc: 4.6.3 sys-devel/gcc-config: 1.7.3 sys-devel/libtool: 2.4-r1 sys-devel/make: 3.82-r4 sys-kernel/linux-headers: 3.7 (virtual/os-headers) sys-libs/glibc: 2.15-r3 Repositories: gentoo sunrise multimedia eigenlay x11 bitcoin infirit steam-overlay mate-overlay ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="* -@EULA" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -pipe -march=native" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/mateconf /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-O2 -pipe -march=native" DISTDIR="/usr/portage/distfiles" FCFLAGS="-O2 -pipe" FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch parallel-install preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="ftp://ftp.snt.utwente.nl/pub/os/linux/gentoo" LANG="nl_NL.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j8" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/var/lib/layman/sunrise /var/lib/layman/multimedia /var/lib/layman/eigenlay /var/lib/layman/x11 /var/lib/layman/bitcoin /var/lib/layman/infirit /var/lib/layman/steam /var/lib/mate-overlay" SYNC="rsync://rsync.nl.gentoo.org/gentoo-portage" USE="X a52 aac acl acpi alsa amd64 avahi bash-completion berkdb bluetooth bluray branding bzip2 cairo caja cdda cddb cdr cjk cli consolekit cracklib crypt cue cups cxx dbus device-mapper dri dts dv dvd dvdr egl emboss encode exif faac faad fam ffmpeg firefox flac fontconfig fontforge fortran gdbm gif gmp gpm gstreamer gtk hires-icons iconv icu idn ipv6 jpeg kerberos lame lcms ldap libnotify lm_sensors lzma lzo mad mate mmx mmxext mng modules mp3 mp4 mpeg mudflap multilib musepack musicbrainz ncurses networkmanager nls nptl nsplugin offensive ogg openal opengl openldap openmp osmesa pam pango pch pcre pdf png policykit ppds ppp pulseaudio python qt3support qt4 readline rle samba sasl scanner schroedinger sdl semantic-desktop session sndfile speex spell sse sse2 sse3 sse4_1 ssl ssse3 startup-notification svg tcpd telepathy theora threads tiff truetype udev udisks unicode upower usb usbredir v4l vaapi vorbis vpx wavpack webp wxwidgets x264 xcb xml xmp xscreensaver xv xvid xvmc zeroconf zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" 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 auth_digest dav_fs authn_file dav authz_groupfile" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" ENLIGHTENMENT_MODULES="backlight battery clock comp conf-applications conf-dialogs conf-display conf-edgebindings conf-interaction conf-intl conf-keybindings conf-menus conf-paths conf-performance conf-randr conf-shelves conf-theme conf-window-manipulation conf-window-remembers connman cpufreq dropshadow everything fileman fileman-opinfo gadman ibar ibox illume2 mixer msgbus notification pager quickaccess start syscon systray tasks temperature tiling winlist wizard xkbswitch access shot" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" GRUB_PLATFORMS="efi-64 efi-32 pc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en en_GB nl" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-3" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_1 python3_2" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="intel radeon fbdev vesa fglrx" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" USE_PYTHON="2.7 3.1 3.2" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
calibre_plugins.prst1_notes.PRST1NotesMerge is actually a user plugin which a user can be installed from within calibre. Not sure how you want to handle this..?
There's no need for everyone to install it. I don't even have it installed myself. I suppose we could add a USE flag to pull it in, but the list of possible dependencies pulled in by plugins is really endless, so I'd prefer not to.
I did a bit of searching on the forums and it seem that pyPdf module was removed from calibre tree which of course now makes this plugin fail. http://www.mobileread.com/forums/showpost.php?p=2238957&postcount=25 Maybe it is an idee to add an elog/einfo making people aware of this?
Well, the traceback clearly shows which plugin is at fault, so that should be enough info for users to find the relevant forum thread: http://www.mobileread.com/forums/showthread.php?t=173321 It's considered "spam" so show an elog message like this to all users.