Tag Archives: ebook

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!

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)!


Calibre reaches 1.0 after nearly 7 years of development

calibreicoI am fully occupied this week and the next with training my new helpdesk team, so it took me a bit by surprise when tweeted that there was a version 1.0 of Calibre since this morning. Kovid Goyal, developer of Calibre, published the news in a blog post. It’s nearly seven years since Kovid started with Calibre – this was the time when the first E-ink based ereader device, SONY PRS-500, hit the market. At first, Calibre was merely a library which was able to convert e-book formats into Sony’s LRF format. It got ‘upgraded’ with a graphical user interface to manage Kovid’s growing ebook library.

There have been 44 increments in the 0.9.x series of Calibre. During that period of development, the program got powered by a new optimized database engine, you can now sub-divide your library into smaller virtual collections, and many improvements have been made to the importing, converting, polishing and exportering of digital book formats (including the .docx file format).

I try to maintain an up-to-date version of my custom-built Calibre package (and a fairly successful package it is!). Calibre is invaluable to anyone in the possession of an E-Reader or even just a collection of E-Books. I use it every day – one of Calibre’s many functions is to download my daily (paid) newspaper in EPUB format, so that I can access the newspaper (today’s and all previous days’editions) anywhere I have an internet connection.

I realize that the Calibre web site urges you to download the developer’s own distro-agnostic installer – it is the only binary version of Calibre he will support – but to me the calibre.SlackBuild has been a learning experience akin to developing my SlackBuild script for VLC, only this time for a Python-based program. Been lots of fun! Also, a proper Slackware package is a more appropriate way of installing software in Slackware.

I hope you give the new Calibre 1.0 package a spin. I made packages available for Slackware releases 13.37, 14.0 and -current. While the Slackware 13.37 package is pretty much self-contained (you only need podofo and icu4c installed additionally), the package for newer Slackware releases is a lot smaller, but has many external dependencies: BeautifulSoup, dnspython, podofo, pycrypto, pysetuptools, python-apsw, python-cssselect, python-cssutils, python-dateutil, python-imaging, python-lxml, python-mechanize, python-netifaces and python-psutil (note: python-apsw is a new dependency since the previous version). All of these packages can be found in my repository as well, of course.

Kovid, thanks for this nice piece of software.

Readers, have fun!


Packages for LibreOffice 3.6.5, calibre and steamclient, and lots of movement on the horizon

Yes, I finally got rid of the flu – but it took a week. I lost some weight (and I am not overweight so I am looking starved now), I still have a bad cough and my lower back muscles are strained and painful because of the continuous coughing. Otherwise I am fine.

I had a bit of a Slackware backlog which I am getting rid of now, thanks to my automated build scripts (creating these packages took time, not effort).


The Libre Office developers had published their 3.6.5 release last week, and I finally felt good enough to build packages. I did a quick examination and it appears that the opening/saving of password-protected files is finally working! Other bugfixes are documented in the release notes. That shows a fairly long list, let’s hope 3.6.5 is going to be rock stable for everyone. It is the last 3.x release before moving on to 4.0.0 in February.

These LibreOffice 3.6.5 packages have been built on Slackware 13.37. They can be installed on Slackware 14 as well, but there seem to be some dynamic linking errors, so I assume that some functionality is broken. I have not yet found where that happens, though. If you find any issues on Slackware 14 please tell me.

The next series, 4.x ,will be compiled on Slackware 14.0 and that will be the end of the library errors in any case. Modifying the libreoffice.SlackBuild script for the 4.x release required real effort! I am running LibreOffice 4.0.0_RC2 here on the desktop machine and it will be worth it, I promise. I will wait with making my new packages public until the official stable 4.0.0 release, so be patient for now please… Those who are still on Slackware 13.37 will have a good fallback choice with LibreOffice 3.6.5.

Downloads are available here, as usual:

Remember, you can add more functionality by installing extensions. LibreOffice extensions are available from http://extensions.libreoffice.org/extension-center


Steam client

I also updated my steamclient package with a re-packaging of Valve’s latest binary release (a debian package for Ubuntu actually): I am going to write a separate blog entry about Steam this weekend so I am not lingering here too long. Rest assured that the new package will rid you of the annoying “outdated client” errors and works like a charm (mostly).


Calibre Ebook Management

And I am again in line with the weekly updates of Kovid Goyal, developer of Calibre. I still maintain an up-to-date version of my custom-built package because I think it is an important tool for anyone with an E-Reader who does not want to tie his hands to a commercial ebook management & library system. Calibre acts as my family’s library and using OPDS protocol, I do not even need a cable to download new books onto the reader. I just use the wireless network.

The Event Horizon!

The blog’s subject hinted that more is coming.. Indeed I already have my packages ready for KDE 4.10.0 but I am not yet releasing them yet… I am waiting for the official announcement next week (and maybe other packagers will find bugs in the meantime). It is looking cool and I am running it here with no issues. In fact I played several hours of Half-Life Deathmatch against my son (there’s a Linux Beta of that too, since this week on Steam – well worth the 10 bucks), and neither the new KDE nor Steam nor Half-life crashed. Also imminent is a new release of IcedTea, the build framework for OpenJDK which I use. That means, there will be a Slackware package for OpenJDK “7u12” or somewhat like that, very soon.

And last but certainly not least, the VideoLAN developers (who are currently partying at FOSDEM, Brussels) will have to come up fast with a fix for a critical vulnerability in the VLC player, which was divulged yesterday… I guess that you should not be opening ASF files in the meantime.


Digitizing my paperback books

Part one: what do I want?

I hinted at this topic in a previous post. I have a big collection of (mostly) paperback Science Fiction books – some hardcover books too. I used to read a lot more in the pre-Internet days, nowadays it’s just during my holidays that I get enough time to read whole books in a short enough time… so many of those old paperbacks are 20-30 years old and yellowed.

In this digital age it would be appropriate to have digital versions of my books and save them from crumbling to dust. I am in anticipation of Sony’s new e-reader, the PRS-T1 which I want to buy once it is out:

This is a very nice device. It is also a lot cheaper than the previous generation Sony e-reader (the PRS-650) while at the same time adding wireless connectivity. This device needs content once I have it in my possession.

A lot of the “newer” books, and those written by contenporary authors can be purchased online, or downloaded from fan sites where people scan their own collections into EPUB or MOBI e-books.  That is all good and well, but on my bookshelves I have many dozens good books that will probably never see a new life as an e-book. That is very unfortunate… I had a lot of fun reading them and do not want to see them go into oblivion.

I decided to do something about this. I am going to try and describe (and hopefully implement) how I am going to digitize my book library. Note: at the moment this is all just ideas, “dreams” if you wish, although I have already found quite a bit of information on the Internet that I will be sharing with you. I want it to be more than just a dream.

What does one need to get a paper book converted into an e-book?

  1. the book’s pages need to be scanned
  2. the scanned bitmaps may have to be cleaned-up digitally (enhancing the contrast between characters and background, de-skewing or rotating the text blocks, …)
  3. I need an Optical Character Recognition (OCR) program to convert the bitmap images into character text
  4. I need an e-book editor to layout the bare text that I got from the OCR program – the ebook has to look largely like the original paper version.
  5. I want to use a library program to make my book catalogue available, to myself of course, to my e-reader device, and possibly to other interested parties.

And I want this to be as low-cost as possible. Any software that I am going to use for this should preferably be Open Source and run on Slackware.

Those are the main topics I will write about. Each of these topics deserves its own separate article. Why is that?

I can already see how this project will confront me with interesting challenges. I am going to write a multi-post story with interlinked articles (this being the first) in order to preserve this hobby project of mine for posterity. Having separate topic articles allows me to split up your feedback as well (heh… I hope I do get some feedback!), so that discussions about, say, scanning techniques will not interfere with talk about what is the best OCR program for Linux.

The articles are not going to be “static” per se. I value your feedback and important new insights will find their way back into the main text.

Let’s see where this ends. It is probably going to take days, or weeks,  to write. It delends a bit on Slackware development – if that picks up speed again, I will have less time for this ebook side show. But for the moment , there is silence in the ChangeLog.txt and I have time to spare.