My thoughts on Slackware, life and everything

Tag: calibre (Page 2 of 3)

Calibre 4.2.0 for Slackware with no external dependencies

One of the programs I use a lot on all my computers is Calibre, the E-book library management system. My wife and I both have Kobo e-readers, and on my Android phone I use FBReader to read my books on the road whenever I have some free time.

Having Calibre on a computer still requires a USB cable to transfer e-books from the computer to your ereader/phone, but networked alternatives exist. Calibre comes with a content server which can make your e-book library accessible online (on your LAN or on the Internet). Earlier versions of the Calibre content server were too resource-intensive and therefore I have chosen another solution for online access to my books. That’s COPS. which is short for “Calibre OPDS PHP Server“. OPDS (Open Publication Distribution System) Is the protocol through which E-readers can access online libraries. COPS allows me to download new books to read from my Calibre library over the wireless network to both my Kobo e-reader and to FBReader on my phone. No more cables needed!

FBReader on Android

FBReader accesses e-book library via COPS

Calibre is of course more than a library manager and a content server – the software comes bundled with its own e-book reader, a format converter, and an e-book editor!
Calibre is written in Python. For its graphical interface it heavily uses PyQt5 which in turn is based on Qt5 libraries.
I have been offering calibre packages in my repository for over eight years, starting with the 0.7.20 release as far as I could see (then still Qt4 based). This roughly coincided with my wife buying her first E-reader. The program has evolved a lot over the years and is much better than the proprietary library management software that ships with the major E-reader hardware.

Kovid Goyal is the primary developer, and he released a new major version of Calibre a few weeks ago. The new 4.x series delivers a completely re-written reader, a new content server with basically the same management and editing capabilities as the calibre desktop program, and a stark increase in amount and version numbers of the dependent software. For instance, Calibre 4 now depends on features in Qt 5.13.0 and PyQt 5.13.0. Several new pieces of sofware are listed in the dependencies list now, which were not required for Calibre 3.

The challenge was to create a solid Slackware package for Calibre 4. I know, you can simply download pre-built binaries for a generic Linux platform, and SlackBuilds.org even offers a build script to package these binaries for you, but it is much more fun, and very educational, to compile all of it yourself. In addition you’ll get binaries which are native to your Slackware distro instead of having to resort to binaries that were compiled on Ubuntu or Debian and do unpeakable things to your system when you’re not looking.

Luckily I have taken a week off from work, so I had time to spend on a rewrite of calibre.SlackBuild.

I also decided to do away with external dependencies. Until now, you would have to install podofo and unrar in order to fully use Calibre’s functionality. WIth my new calibre-4 package all dependencies are bundled inside. This includes Python 2.7.17 and Qt 5.13.1 as well as podofo and unrar libraries. This bundling makes it possible to build a fully functional Calibre on Slackware 14.2 (I had to add a newer version of the hunspell spell-checker because Slackware 14.2 has a version that is too old).

You can still compile a calibre package without all these internal libraries. For instance if you already have Qt 5.13.1 installed you can reduce the size of the package significantly by recompiling it. The calibre.SlackBuild will find your Qt5 libraries and won’t compile an internal version then. Same for Python 2.7. But I would recommend building the package always with the python interpreter and the slew of python modules included. It does not take that much time and you’ll be independent of updates in Slackware. Also, I do not offer packages for all those required Python modules anyway.

Here’s a couple of example command lines in case you would want to recompile. If you want create a package without any external dependency:

# BUILD_QT=YES BUILD_PYTHON=YES BUILD_MTP=YES  ./calibre.SlackBuild

In case you already have Qt 5.13.0 or newer installed and want to shrink the size of the package:

# BUILD_PYTHON=YES ./calibre.SlackBuild

Note:
On Slackware 14.2 you will have to install meson, python3 and python3-setuptools from my repository or else the compilation will fail.  Slackware-current contains all of them already.

Note:
If you have issues with Calibre 4 and think you can convince me to re-add a Calibre 3 package to my repository, let me know in the comments section below.

Note:
If you use XFCE or some other desktop environment which does not support StatusNotifier (and only supports the old X11 based XEmbed specification like the systray), then Calibre will not be able to display its system tray icon. You will have to install ‘xfce4-statusnotifier-plugin’ and its dependency ‘libdbusmenu-gtk’. Both are available as packages in my repository. After installing, right-click on the XFCE status bar, select ‘Panel > Add new items’ and add ‘Status Notifier Plugin’.

Get the new ‘calibre-4.2.0‘ package from my repository (or any mirror) and enjoy your e-book library!

If you want to know how to properly setup COPS and serve your e-book library on the internet (with or without authentication) let me know and I will devote an article to the topic. Perhaps in more generic terms, I should address the topic of reverse proxying.

Eric

Calibre 3.30.0 for Slackware with internal Qt5 libraries

It took me quite a while to release a new package for Calibre, the e-book library manager. That had a reason.

In July I switched the Qt5 package in my repositories to version 5.11 to support the latest KDE Plasma5 software and because it offers advantages over the previous 5.9 releases. Unfortunately, as I found out soon afterwards, the Calibre software fails to work with Qt 5.11 – its GUI components were not built and there was no obvious error to explain why.

Therefore I had to re-visit the calibre.SlackBuild‘s internals and try to revive the internal functions that compile an embedded Qt library set. This was last tested in the early days of my Calibre packages when Qt4 was the running champion. Adding internal Qt5 support was quite a different beast. Qt5 is a lot bigger than the venerable Qt4 so the build process needed some pruning to keep the compilation times acceptable and the package size under control.

That took a full week’s nights of compiling, debugging, recompiling and so on… hence the lack of updates on the ‘ktown’ front where I should perhaps pay some attention to a recent poppler update in slackware-current. But I managed to add Qt 5.9 internal library support to the calibre package.
My package for Slackware 14.2 still depends on an external ‘qt5’ package (to keep the package size small and because calibre works just fine with the qt 5.7 which is available from my own repository and the SBo script repository). The package for Slackware -current on the other hand was built with an embedded Qt 5.9, which means that its external dependency list shrunk to just ‘podofo’ and ‘unrar’.

Grab the new ‘calibre’ package and enjoy your e-book library!

Almost weekend again – what’s in store

Just a quick recap of my work during the past week (well… the work that I do besides my paid-for work):

I updated my packages for calibre and chromium with new versions. I updated the set of “compat32” packages for a multilib setup on slackware64-current to match the Slackware packages contained in the new Slackware 14.2 Beta 2.

And I updated the “plasma” package set of my KDE5 (aka Plasma 5) repository on ‘ktown‘; this is also just also for slackware-current. Plasma was upgraded to 5.5.4 which is a new bugfix release.

And there is a bit more, still in the pipeline. I have stamped a “version 0.5.0” onto my liveslak scripts and I am currently in the process of generating new ISO images for my Slackware Live Edition (in full Slackware, Plasma5, Mate and slimmed-down XFCE variants).

After I upload the new ISOs I will update the git repository with liveslak-0.5.0 sources. More about that hopefully tomorrow if my testing yielded good results.

Cheers, Eric

LibreOffice 5.0.2 and Calibre 2.39.0 packaged

libreoffce_logoThe Document Foundation announced version 5.0.2 of their free Office Suite a few days ago. LibreOffice 5.0.2 is the second update to the “5” major release. Again this is a bugfix release for Linux, no new functionality has been added. According to the Document Foundation “LibreOffice 5.0.2 is targeted to technology enthusiasts, early adopters and power users. For more conservative users, and for enterprise deployments, TDF suggests the “still” version: LibreOffice 4.4.5“.

The new LibreOffice 5.0.2 packages have been compiled for users of Slackware-current only – after all, you are the power users of Slackware. I offer 4.4.5 packages for Slackware 14.1 where a wee bit more conservatism is a good thing. The 4.4.5 packages should also work on -current, but I have not tested that.

lo502_about

There was a bug report in the comments section of my previous LibreOffice blog post: audio and video files embedded in presentations suffer from delays when opened. This appears to happen in all builds of LibreOffice that use gstreamer-1.x (like my LibreOffice 5 packages) whereas the bug does not appear when LibreOffice has been configured to use gstreamer-0.x (like my LibreOffice 4 packages). The bug has been reported over a year ago, but it does not show a lot of movement.

I decided to stick with gstreamer-1.x, to see if the new release is still affected. Let me know! If the bug still shows, I will compile LO 5.0.3 against gstreamer-0.x again.

For download locations, see below.

calibreicoAlso, I released packages for the latest version of Calibre. I quit following the weekly Calibre update cycle, and at some point noticed that the Calibre developer himself also switched from weekly updates to bi-weeklies.

Calibre 2.x uses Qt5 for its GUI so you’ll have to install a couple of dependencies as well: qt5 of course, and podofo. The remainder of the dependencies (several python libraries) has been built into the package so that they do not have to be installed separately. Available for both Slackware 14.1 and Slackware-current, you can grab the calibre package off  the Slackware server or any other mirror that carries my repository:

Cheers! Eric

New calibre packages – finally

calibreicoIt’s been nearly ten months since my last package for Calibre. What’s Calibre again I hear you ask? It is the highly popular E-book library management program with support for any E-Reader you can think of. I doubt that anyone who tried Calibre will ever switch back to one of the proprietary library management programs that commonly ship with E-Reader devices because Calibre transfers your E-books to and from your E-Reader device with ease. Calibre also contains an excellent E-book reader program for your desktop – even an EPUB editor comparable to Sigil. It will let you convert E-books from one format to another and allows you to subscribe to lots of news sites.

Last year august, the Calibre software switched from Qt4 to Qt5 for its user interface, and I was not yet prepared to follow suit. Running up to that month I had been working long and hard on the new KDE 5 preview and that was my first encounter with Qt5 – I decided to wait a bit for the new Calibre to mature and also I wanted to wait with adding Qt5 to my slackbuilds repository (the qt5 in ‘ktown_testing’ was just that, for testing KDE 5 and nothing production-ready).

During the previous couple of weeks I enjoyed several long weekends due to national holidays, and so it happened that I could spend some time re-visiting the calibre.SlackBuild and updating it so that it was able to compile a package for Calibre 2.x.

I wanted as few external dependencies as possible. The exception would be Qt5 which should be a proper package in its own right – it is too big to become a mere part of a calibre package. I ended up with just “podofo” and “qt5” as dependencies and I am now in the process of uploading the qt5 packages for slackware-current… something I forgot earlier this week. I borrowed them from my ktown_testing repository in order to compile Calibre.

But I also want to keep the older Qt4 version of Calibre (the 1.x releases) around for those who like that better or do not want the big Qt5 on their computer. So I renamed my SlackBuild for the 1.x version to “calibre1.SlackBuild“. I then recompiled calibre-1.48.0 for Slackware-current because the previous build of the package was broken after the recent big update and I still needed to address that issue. That is why you will find a “calibre” as well as a “calibre1” package in the repositories for Slackware 14.1 and -current. Take your pick.

Enjoy a shiny new Calibre 2.28.0 on Slackware (14.1 and -current)!

Eric

« Older posts Newer posts »

© 2024 Alien Pastures

Theme by Anders NorenUp ↑