Leap used to have a calibre package up to 15.3. In 15.4 it was removed, probably because the python2 dependencies of the 15.3 package couldn't be met any more.
The most recent version of calibre (TW: 6.9.0) needs a bunch of very recent libraries and python packages; porting it to Leap is highly unrealistic.
The calibre maintainer (Eric Schirra - ecsos) maintains a package calibre4 (4.36) in his home repository. I have recently forked this into home:mwilck:Leap:15.4 and with slight modifications, I've made it build against stock Leap 15.4. "Only" 8 packages in Leap 15.4 are older than recommended by the upstream calibre author for 4.36.
I've tested the package built this way, and it seems to work well. While for the "best" Calibre experience users will probably turn to Flatpak, I believe having an official Leap package would be desirable.
I discussed this with Eric via private email and he wasn't found of the idea for various reasons. Still, I'd like to propose it here to discuss it in a somewhat wider audience.
I'll ask Eric if he's willing to work on this. I'm bit afraid that any changes needed on the SLE side would otherwise be rejected, as we're too close to the feature drop deadline.
I think there is no chance to bring calibre in the latest version in 15.5. There are too many dependencies in the meantime. So too many too old package versions in Leap. And when you try to update necessary packages, you run into a wall, with always the same answer. The package comes from SLE and newer ones don't work etc. etc. Even minor updates are rejected. And the maximum version for calibre under Leap is 4.23.0. But only if the above package updates went through. In addition, several Python packages in 15.5 are currently older than in 15.4.
Besides dependencies I think device support is also important. I have tried to keep this support up to date in 15.0 with updates, backporting device drivers, but in the end the work was too much. So I gave up. Forcing user to use the flatpak or the official download is better, IMO.
I think absolutely nothing of flatpack and for this reason alone would very much like to bring calibre into 15.5. But that's not so easy or costs extreme work, time and nerves, sorry, lies entirely with openSUSE and the dependencies on SLE. As far as devices are concerned, I have never missed anything. In my home repo, calibre for 15.4 is built in version 4.23.0. I think 15.5 would also be built if the Python packages in 15.5 were not older than those in 15.4.
Here are part dependencies for calibre 6.10.0 under Leap 15.5: unresolvable: nothing provides freetype2-devel >= 2.11.0, (got version 2.10.4-150000.4.12.1), nothing provides graphite2-devel >= 1.3.14, (got version 1.3.11-2.12), nothing provides libpodofo-devel >= 0.9.7, (got version 0.9.6-150300.3.6.1), nothing provides podofo >= 0.9.7, (got version 0.9.6-150300.3.6.1), nothing provides qt6-core-private-devel >= 6.3.1, (got version 6.2.2-150400.2.8), nothing provides qt6-declarative-devel >= 6.3.1, (got version 6.2.2-150400.1.5), nothing provides qt6-gui-private-devel >= 6.3.1, (got version 6.2.2-150400.2.8), nothing provides qt6-imageformats-devel >= 6.3.1, (got version 6.2.2-bp155.2.10), nothing provides qt6-platformsupport-private-devel >= 6.3.1, (got version 6.2.2-150400.2.8), nothing provides qt6-wayland-devel >= 6.3.1, (got version 6.2.2-bp155.2.11), nothing provides pkgconfig(Qt6Core) >= 6.3.1, nothing provides pkgconfig(Qt6Gui) >= 6.3.1, nothing provides pkgconfig(Qt6Network) >= 6.3.1, nothing provides pkgconfig(Qt6Positioning) >= 6.3.1, nothing provides pkgconfig(Qt6Sensors) >= 6.3.1, nothing provides pkgconfig(Qt6ShaderTools) >= 6.3.1, nothing provides pkgconfig(Qt6Svg) >= 6.3.1, nothing provides pkgconfig(Qt6WebChannel) >= 6.3.1, nothing provides pkgconfig(Qt6WebEngineCore) >= 6.3.1, nothing provides pkgconfig(Qt6WebEngineWidgets) >= 6.3.1, nothing provides pkgconfig(Qt6Widgets) >= 6.3.1, nothing provides pkgconfig(dbus-glib-1) >= 0.112, (got version 0.108 provided by dbus-1-glib-devel), nothing provides pkgconfig(fontconfig) >= 2.13.94, (got version 2.13.1 provided by fontconfig-devel), (got version 2.13.1 provided by fontconfig-devel-32bit), nothing provides pkgconfig(gpg-error) >= 1.43, (got version 1.42 provided by libgpg-error-devel-32bit), (got version 1.42 provided by libgpg-error-devel), nothing provid
And here for calibre 4.23.0 under 15.5: unresolvable: nothing provides python3-beautifulsoup4 >= 4.9.1, (got version 4.8.2-1.18), nothing provides python3-dnspython >= 2.0.0, (got version 1.15.0-150000.3.2.1), nothing provides python3-html2text >= 2020.1.16, (got version 2018.1.9-lp155.2.2), nothing provides python3-html5lib >= 1.1, (got version 1.0.1-1.22), nothing provides python3-ifaddr >= 0.1.7, (got version 0.1.6-bp155.2.7), nothing provides python3-msgpack >= 1.0.0, (got version 0.5.6-150100.3.3.1), nothing provides python3-netifaces >= 0.10.9, (got version 0.10.6-1.31), nothing provides python3-pycryptodome >= 3.9.8, (got version 3.9.0-6.1), nothing provides python3-regex >= 2020.07.14, (got version 2020.2.20-1.1), nothing provides python3-setuptools >= 49.6.0, (got version 44.1.1-150400.1.4), nothing provides python3-texttable >= 1.6.3, (got version 1.6.2-bp155.2.7), nothing provides python3-six >= 1.15.0, (got version 1.14.0-12.1), nothing provides python3-soupsieve >= 2.0.1, (got version 1.9.5-lp155.4.4), nothing provides python3-zeroconf >= 0.31.0, (got version 0.25.1-bp155.2.5)
Leap is just way too old because of the interlocking with SLE. Even Debian, which is always said to be more modern, is now more modern.
There's no doubt that integrating Calibre 6.x in Leap 15.5 is not a realistic option. But looking at the distro list on GitHub, only very few distributions do. Did we ever ship an "up-to-date" calibre version with Leap?
My goal is to integrate the latest version we can realistically achieve. As @ecsos noted, he has 4.23 in his repo. That repo contains a lot of updated python packages, thus @ecsos' version can't be installed without pulling in some of them. I have a slightly modified copy of @ecsos 4.23 package in my OBS repo which is installable with stock 15.4 dependencies. Comments in the spec file show the deviations between upstream requirements and what Leap currently ships. "Only" 8 dependencies are older than recommended by upstream (4.23). Quite a few are newer, actually. I had to add 2 simple patches to avoid build errors with the original Leap packages for hunspell and python-msgpack.
I would be satisfied with having 4.23 in Leap, which would be far better than nothing. If some python deps are updated in 15.5 (I haven't double-checked) perhaps we could even provide a 5.x version?
People who want the latest calibre on Leap will have to resort to the Flatpak, obviously. But flatpak doesn't work for everyone (what about non-x86_64 archs?) My personal use case is a small RasPi-like home server which runs calibre-server to serve my local ebook library. Installing a flatpak for this purpose on such a small system doesn't make much sense. I have been running my 4.23 package on this system for a while now without any issues.
@mwilck Is not the easiest solution that you become the maintainter of a leap version of calibre? I find your use case a good reason.
I would be willing to do some testing, but for me 5.44 would then be better, to see how well it does with my ereader and plugins and how I use it.
@mwilck Is not the easiest solution that you become the maintainter of a leap version of calibre?
I could only do that with @ecsos' blessing, as he has much more experience with the package. I am aware that getting upstream support for such an outdated package is basically impossible, and that the upstream calibre community is difficult to work with (but unlike ecsos I haven't tried myself).
Thus users of the package would need to understand that it can only be "supported" to some extent. We have a similar situation with other Leap packages too, so I don't think it'd be a no-go.
I could only do that with @ecsos' blessing
I realize that this sentence might be easily misunderstood. I'd be willing to fill the maintainer role for Leap, and I would try hard not to resort to @ecsos' experience for any Leap issues.
Yet I would want him to at least agree with me trying this.
Just to illustrate the plight of Leap. I had tried to minimize the too old python packages by a request from devel:backport to Leap:15.5. But there is no chance. Because then a bot comes and says you should take it from SLE. How then, if they are too old. One can answer though. But no one is interested, because there is probably only a bot behind it. Factory I have then not even tried, because they are usually too new. My time is now used up for this. In my opinion, you can forget the process to bring newer package in not yet published Leaps. Or I have not understood something.
In the course of this I noticed that calibre 4.23.0 under Leap 15.4 now after years no longer builds. Worked now for years. Suddenly no longer. Why, no idea. Evl a python package now too new. Because, I also noticed, are in backport sometimes renewed packages, but with python 3.6 no longer work at all. Build maybe. But to serve as a module to build other modules or to run independently they are broken.
In the course of this I noticed that calibre 4.23.0 under Leap 15.4 now after years no longer builds
Strange, my branch still builds.
Login to comment on this ticket.