Installing calibre - missing dependency

It seems to not be possible to install calibre despite it being in the repositories. pkcon responds with

Fatal error: The following packages have unmet dependencies:
  calibre-bin: Depends: qtbase-abi-5-15-3

Indeed, as far as I can see the package qtbase-abi-5-15-3 does not exist in any repository I can see.

Is this a problem with Ubuntu’s repositories, or is there something misconfigured on my machine?

1 Like

As neon upgrades Qt packages to a version newer than what is in Ubuntu, a small number of the packages in the “Universe” section (imported directly from Debian as opposed to being rebuilt by Ubuntu) won’t install in neon. These have hard, specific Qt package dependencies baked in to the package.

For Calibre, it is better to use a different source, or use a Snap/Flatpak, as it is quite old anyway.

2 Likes

It appears to want to install here from the xtradebs repository.

root@9600k:~# apt-cache policy calibre
calibre:
  Installed: (none)
  Candidate: 6.29.0+ds-1~xtradeb3
  Version table:
     6.29.0+ds-1~xtradeb3 500
        500 https://ppa.launchpadcontent.net/xtradeb/apps/ubuntu jammy/main amd64 Packages
        500 https://ppa.launchpadcontent.net/xtradeb/apps/ubuntu jammy/main i386 Packages
     5.37.0+dfsg-1build1 500
        500 http://ca.archive.ubuntu.com/ubuntu jammy/universe amd64 Packages
        500 http://ca.archive.ubuntu.com/ubuntu jammy/universe i386 Packages

root@9600k:~# apt -s install calibre
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help resolve the situation:

The following packages have unmet dependencies:
 calibre-bin : Depends: qt6-base-abi (= 6.2.4)
               Recommends: qt6-image-formats-plugins
 python3-pyqt6 : Depends: qt6-base-abi (= 6.2.4)
E: Unable to correct problems, you have held broken packages.

root@9600k:~# apt -s install calibre qt6-base-abi=6.2.4
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'libqt6core6' instead of 'qt6-base-abi'
Selected version '6.2.4+dfsg-10~xtradeb2' (xtradeb applications:22.04/jammy [amd64]) for 'libqt6core6'
The following additional packages will be installed:
  binutils binutils-common binutils-x86-64-linux-gnu blt calibre-bin
  firebird3.0-common firebird3.0-common-doc fonts-lyx freeglut3 g++ g++-11 gcc

In order to install the ppa for it to install packages from there you will needs to makes two changes to tell the system you are running Ubuntu not Neon. In the /etc/os-release and /etc/lsb-release files.

root@9600k:~# cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.3 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.3 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

root@9600k:~# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.3 LTS"

Then the sudo add-apt-repository ppa:xtradeb/apps command will work and not give the error that the Neon is an unsupported OS.

1 Like

Nope, this is incorrect.

This is completely unnecessary for adding PPAs at all. I have never seen nor heard of such an error doing so, ever. Including the xtradebs one.

In any case, the version in that PPA is also a bit outdated as well, though not terribly.

Well here it is in black and white from my install notes I always make with every install I do to track my changes to the system that I make.

root@8400:~# add-apt-repository ppa:xtradeb/apps
Repository: 'deb https://ppa.launchpadcontent.net/xtradeb/apps/ubuntu/ jammy main'
Description:
Unofficial Ubuntu application packages maintained by xtradeb.

Error: could not find a distribution template for Neon/jammy
To fix  the error needed to edit /etc/os-release and /etc/lsb-release files to tell it the machine was Ubuntu.


I tested on two machines just to be sure I wasn’t wrong, and it worked just fine, as it always has for me since 2016. it should not be necessary, The only thing that could cause an issue is a PPA not supporting Jammy, and throwing errors, the same is it would on Ubuntu proper.

Here is a third one:

$ sudo add-apt-repository ppa:xtradeb/apps
[sudo] password for claydoh: 
Repository: 'deb https://ppa.launchpadcontent.net/xtradeb/apps/ubuntu/ jammy main'
Description:
Unofficial Ubuntu application packages maintained by xtradeb.

You may request additional packages by filing a bug here: https://launchpad.net/xtradeb.

You can find more information in our website: https://xtradeb.net.
More info: https://launchpad.net/~xtradeb/+archive/ubuntu/apps
Adding repository.
Press [ENTER] to continue or Ctrl-c to cancel.
Adding deb entry to /etc/apt/sources.list.d/xtradeb-ubuntu-apps-jammy.list
Adding disabled deb-src entry to /etc/apt/sources.list.d/xtradeb-ubuntu-apps-jammy.list
Adding key to /etc/apt/trusted.gpg.d/xtradeb-ubuntu-apps.gpg with fingerprint 5301FA4FD93244FBC6F6149982BB6851C64F6880
Get:1 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Hit:2 http://archive.ubuntu.com/ubuntu jammy InRelease                                                                                    
Hit:3 https://dl.google.com/linux/chrome/deb stable InRelease                                                                             
Get:4 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]                                                                   
Hit:5 https://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu jammy InRelease                                                             
Get:6 http://archive.neon.kde.org/unstable jammy InRelease [195 kB]
Get:7 https://ppa.launchpadcontent.net/xtradeb/apps/ubuntu jammy InRelease [18.1 kB]
Get:8 https://ppa.launchpadcontent.net/xtradeb/apps/ubuntu jammy/main amd64 Packages [54.2 kB]
Fetched 496 kB in 2s (314 kB/s)     
Reading package lists... Done

claydoh@ittybitty:~$ apt policy calibre
calibre:
  Installed: (none)
  Candidate: 6.29.0+ds-1~xtradeb3
  Version table:
     6.29.0+ds-1~xtradeb3 500
        500 https://ppa.launchpadcontent.net/xtradeb/apps/ubuntu jammy/main amd64 Packages
     5.37.0+dfsg-1build1 500
        500 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages

There is no template error, but calibre won’t install.

the offending package is the virtual one called qt6-base-abi, which is fulfilled by libqt6core6, but the calibre package is looking for one for Qt 6.2.4, while Neon provides 6.6.1. Changing the distro release doesn’t fix this. I checked this as well.

There was a PPA in the past that provided a package that didn’t have this oddball virtual package as a dependency, but its owner stopped updating it some years ago.

Probably because I run unique system then, a Kubuntu 22.04.3 base with the Neon sources for the Desktop. Which certainly does give that error, I lived it, and got the output that I put in my file along with the solution I figured out was needed to eliminate it.

And now I check I know where the file(s) came from and why the base-files was replaced by the Neon one at some point. Time to downgrade that package to the Ubuntu provided and mark it as a hold with apt-mark so it does not happen again.

root@9600k:~# apt-file search /etc/os-release
base-files: /etc/os-release               
root@9600k:~# apt-cache policy base-files
base-files:
  Installed: 12ubuntu4.4+p22.04+vstable+git20231007.0556
  Candidate: 12ubuntu4.4+p22.04+vstable+git20231007.0556
  Version table:
 *** 12ubuntu4.4+p22.04+vstable+git20231007.0556 100
        100 /var/lib/dpkg/status
     12ubuntu4.4+p22.04+vrelease+git20230824.0924 500
        500 http://archive.neon.kde.org/user jammy/main amd64 Packages
     12ubuntu4.4 500
        500 http://ca.archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages
     12ubuntu4.3+p22.04+trelease+git20230622.1345 500
        500 http://archive.neon.kde.org/user jammy/main amd64 Packages
     12ubuntu4.3+p22.04+trelease+git20230222.1141 500
        500 http://archive.neon.kde.org/user jammy/main amd64 Packages
     12ubuntu4.2+p22.04+trelease+git20230210.2002 500
        500 http://archive.neon.kde.org/user jammy/main amd64 Packages
     12ubuntu4 500
        500 http://ca.archive.ubuntu.com/ubuntu jammy/main amd64 Packages

It appears both of us have the right answer for our own situations, mine only applies to my unique install probably the only one on the planet using it this way. Oh well as I have heard said many times, this is Linux if you break it you get to fix it and the every popular if you have itch scratch it. Which is what I did, I wanted a stable base with the neon packages on it without the changes to the base, tried compiling it up on Debian but that was failing miserably. Now I think about it should have used the bullseye not bookworm as the base as the files would have been more compatible with a 22.04 based system. Anyway you live and learn…

May I ask why, out of curiosity? Since Kubuntu is an Ubuntu base with Plasma sourced directly from Ubuntu’s repositories (created by the Kubuntu team for sure), this seems like an unnecessary source of complication, mostly due to a good potential for packaging conflicts. This has been my experience testing this out over the years, though admittedly I have not done so since the switch to the 22.04 base (my own itches were well-scratched by then :smiley: ). These aren’t necessarily hard to fix, mind you, but there isn’t really a benefit I can see. Which I may be overlooking.

Neon will have the same exact same base OS, kernel, and driver packages that Ubuntu and Kubuntu share. It will lack the complete set of software that Kubuntu provides in a default full install, but one can easily add what they need after the fact, including the Software Sources/Driver Manager tool and Muon

And to be clear, modifying /etc/os-release and /etc/lsb-release (at least temporarily) isn’t really harmful, and may be needed for a small number of things that actively look at those files, such as manually installing hplip-gui.

May I ask why, out of curiosity? Since Kubuntu is an Ubuntu base with Plasma sourced directly from Ubuntu’s repositories (created by the Kubuntu team for sure), this seems like an unnecessary source of complication, mostly due to a good potential for packaging conflicts.
[/quote]

No way to get the totally up to date KDE with Kubuntu and I can get almost as close if not better with the software I had installed in Debian 12, 5.27.5, 103.0 for frameworks, 5.15.8 for the QT. In the Debian 12 the KDE Gear was stuck at 22.12.3 with some farther behind. Doing it this way I have 5.27.10, 103.0, 5.15.11and 23.08.4. A totally up to date system that is working flawlessly in my few day of testing. Couple more days of that and I turn on my crontab scripts for root and home users that use rsync to backup my live running install every 2 hours. It actually works for the purpose unlike any of those other tools like Time Shift which claim to backup and restore I have tested but never complete a proper re-install of grub, unlike my tested restore script which does exactly that. I choose the date and time I want and it restores it to that point.

Sure, but what you are doing is quite literally just a longer and more complicated way of installing neon. Not saying you should reinstall or anything, but if it became necessary, installing neon gets you to the exact same OS and Plasma/Frameworks/KDE Gear/Qt as what you have now, without the extra steps (outside of extra software choices above a minimal install.)

And to muddy things even more, you can now get a lot closer to this on Kubuntu 22.04 proper with their recent Kubuntu Backports Extra PPA.

1 Like

That is exactly what I have thought…

If you want to keep up-to-date with which KDE components are available in some of the Debian/Ubuntu-based distributions (also taking the Kubuntu Backports into consideration) see Overview: Kubuntu, its parent and some of its siblings

Installing neon also gets you that pkcon warning when using apt to install packages. I never use graphical installers and am not interested in anything but apt to install with. I kept Debian on my box for years using a testing/unstable setup with some experimental thrown in for good measure with apt-pinning. Now I had to come up with some damn long install lines with exact version numbers for the packages to get things to work at times but I kept it running without needing to reinstall for ages. I do believe I used that back port one before in my testing out things. With it they could not be bothered to update the KDE Gear to the latest so you end up with the 21.12.3 versions installed. Just fired up my install USB and checked it again after adding the ppa to it and sure enough my memory was correct. I tried installing the up to date 23.08.03 Gear from the neon as source but gave up after a few package building failures of the packages. Then I stripped it back a Kubuntu install to nothing from KDE or QT installed and did the install I have now suing the neon user as the source for that. As I say it works flawlessly and if it breaks I get to fix it as with all of Linux. Worse case I fire up my old Debian 12 install which I will keep laying around for months as a backup to this install and use it. Only the /home directory is the really important one to have anyways as that is where all you personal settings and files are. I have that backed up in many places. It works no matter the distro installed to use its partition. Except for some weirdness the Manjaro people seem to have done with a few of the applications for the icon locations and starting apps from them. I had to relaunch and pin a new icon to the taskbar for it to work properly for some, anyone else I tried it just worked. They have the truly up to date versions of what I want too but no apt…

So ignore the warning/strong suggestion, and just use apt. This is what pkcon on the cli and Discover on the GUI are actually using (on Debian/*buntu systems). You will only see that warning when using apt incorrectly for the setting - a set of packages that are very frequently updated and can often involve package removals at times. Just use apt full-upgrade instead of upgrade. You’d want to do this on Kubuntu using any Backports PPAs as well. Yes, it is unfortunate that they chose to promote pkcon, but apt works just fine, and most of us with any experience use it instead.

The plus side of pkcon , I guess, is that the same commands can used on any sort of distro that uses Discover/Gnome Software/Packagekit, as these are all just wrappers for whatever native packaging system that distro is using.

tl;dr, if you do decide to reinstall/rebuild, just skip all the extraneous extra steps and just install neon.

Ah ok that was my main concern with it. I will give it until next month before a new install I think. I will wait until the 114 frameworks are released in the user install. Then use that version, do you known if the user system will stay at them versions old versions once they start releasing the KDE6 stuff?

I don’t know. I haven’t asked them though. Usually, I’d assume that Plasma 6 will come down the chute when it is officially released, in User, same as any other version upgrade.

Unstable is where Plasma 6 is found for neon, currently. I am positive some sort of upgrade testing for User will be done beforehand , and I will take part.

Alright, damn I miss Norbert he was a Debian developer before their stupid politics forced him out. He always did some great backports of the up to date KDE stuff for the current Debian stable.

1 Like

Just for fun I tried to install Calibre both in KDE neon and in TUXEDO OS 2 (--dry-run).

In KDE neon I got the error:

The following packages have unmet dependencies:
 calibre-bin : Depends: qtbase-abi-5-15-3
E: Unable to correct problems, you have held broken packages.

In TUXEDO OS 2 (despite it uses lots of KDE neon stuff and also is on Plasma 5.27.10, Frameworks 5.113 and Qt 5.15.11 atm) I would have been able to install Calibre without problems!

As mentioned in the instructions on this page :

“Please do not use your distribution provided calibre package, as those are often buggy/outdated. Instead use the Binary install described below.”

So you can:

  • install binaries with the command given on this page. for a clean install in /opt: sudo -v && wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sudo sh /dev/stdin install_dir=/opt
  • install flatpak or snap
  • download the appimage