Scrivener "Cannot mix incompatible Qt library"

I’ll post it when I get back to the office on Sunday.

https://launchpad.net/ubuntu/precise/i386/libqt4-dbus/4:4.8.0-1ubuntu11

Note: As the URL implies, this is the version for precise i386. Before downloading and unpacking, make sure it matches the version of *ubuntu you installed.

If you need help unpacking the package file, read the man page for dpkg, you will want the -x option.

Once you unpack the package, find the libqtdbus.so.* files and copy them to the Scrivener lib directory. You will need to sudo to do that.

Good luck!

Great!! Thx a lot!!! It works, although there is no configured package for the version of ubuntu I use it works. I think it’s not dependent from my system Qt version because Scrivener use a whole Qt environment of it’s own (what causes the conflict) Any it’s owrking and I am deeply greatful.

Beside how did you find the package within Launchpad. Afte your Tip I used Google and Launchpad search but didn’t find anything. Is there a special section for sourcefiles within Launchpad or did the files just get lost wihin the whole list of bug report results?

I’ve used that download of libQt-DBus 4.8.0 library files to get my Scrivener Linux beta working again on Ubuntu 12.04 LTS.
Thanks.

Glad it works! Hope you’ll enjoy Scrivener as much as I do.

On finding the package, I have a hunch we are getting different search results, as it shows up near the top of the page for me.

Best

Here’s a link to the file libQtDBus.so.4:

dropbox.com/s/efy1yj4095vww … tDBus.so.4

But copying these files into /scrivener/lib did not work. Same error while trying to start the program.

Trying to get this version of Scrivener to run is a journey down the rabbit hole.
Downloaded the tar file.
Researched opening the file when it’s not gzipped.
Success! (the command is “tar -xvf Scrivener-1.5.3.1.tar”
Changed the directory to the newly created Scrivener folder.
Tried ./configure. Nope–error message.
Perhaps the gcc compiler is missing?
Nope–latest version, but manually installed?
Trying to solve a system compiler error is way beyond trying to install the program.
I own two licenses for Scrivener, but I’d like to get it running on my Linux box.
Anyone have any other ideas?

What linux distro are you using?
I can talk you through my Ubuntu 12.04 LTS installation of Scrivener if it will help.

[Later edit]
I see from page 1 of this thread that you might be on Kubuntu (version ?).

Kubuntu 12.10

This is what I suggest (although note I’m not a Kubuntu user)

Unpack the scrivener deb package into some temporary folder

Download the libQtDBus deb package using the link to launchpad …

https://launchpad.net/ubuntu/precise/i386/libqt4-dbus/4:4.8.0-1ubuntu11

Unpack the libQtDBus deb package into a temporary folder

Copy the three files from unpacked libQtDBus package (in folder usr/lib/i386-linux-gnu) into unpacked scrivener deb package (in scrivener/lib)

Repackage the scrivener deb with these three added files in package.

Reinstall/update scrivener using sudo dpkg -i path/to/scrivener.deb

From a doogle search here is just one post explaining the dpkg commands (or run $ man dpkg command to see options) for unpacking and repacking deb package.

https://geekwentfreak-raviteja.rhcloud.com/2012/10/modify-dependencies-addremove-files-of-debian-deb-package/

Or you might be able to install GDebi Package Installer under Kubuntu.

For crying out loud - is there no way to convince the package maintainer to add the library to the package and update it? It seems cruel that people would have to go through all sorts of hoops, when the fix is so easy for the maintainer!

  1. Copied three (libQtBus.so) files to temporary directory.
  2. copied scrivener-1.5.3.1-beta.deb to same temporary directory.
  3. ar vf scrivener-1.5.3.1-beta.deb
  4. tar -xzvf data.tar.gz
  5. rename directory to scrivener
  6. dpkg-deb build–scrivener
    Following error message:

mok@algol:~$ dpkg-deb --build scrivener
dpkg-deb: error: failed to open package info file scrivener/DEBIAN/control' for reading: No such file or directory mok@algol:~$ sudo dpkg-deb --build scrivener dpkg-deb: error: failed to open package info file scrivener/DEBIAN/control’ for reading: No such file or directory
mok@algol:~$

so,

  1. tar -cvzf data.tar.gz %to recreate the compressed version of this file with the 3 libqtdbus files added

Now there are only three files in the directory, same as when the deb file was decompressed using ar.

  1. ar -rcv anyname.deb debian-binary control.tar.gz data.tar.gz %It took a while to find this command.
  2. file anyname.deb created in directory.
  3. Rename anyname.deb to scrivener-1.5.3.1-beta_patched.deb
  4. Open file with Qapt package installer.

Installer reports that the installation is “Done.”

  1. Run Scrivener from graphic desktop: bouncing small icon, minimized to taskbar, icon in taskbar disappears.

  2. Run Scrivener as root from command line yields the following error:

Fontconfig warning: “/etc/fonts/conf.d/50-user.conf”, line 9: reading configurations from ~/.fonts.conf is deprecated.
Cannot mix incompatible Qt library (version 0x40803) with this library (version 0x40800)
Aborted (core dumped)

This was the original error message. Does anyone have any other ideas?

I have uploaded the patched file to Dropbox: dropbox.com/s/6jyt1cn1gttdk … atch.deb?m

@mokane: the libQtDbus you added to the .deb file is 4.8.3, which is probably the library on your system. The library you should add is an older version, 4.8.0, matching the other libraries in the Scrivener distribution.

Something has gone wrong in you rebuilding the deb …
When i try to unpack (not install) the downloaded package using dpkg-deb

$dpkg-deb -x {deb-package name} {target directory}

trying to just inspect contents of scrivener/lib I get this error …

dpkg-deb: error: file `scrivener-1.5.3.1-beta_patch.deb’ is not a debian binary archive (try dpkg-split?)

I don’t think so. When I unpacked the .deb file, I added the 4.8.0 files that I downloaded separately.

I listed all the steps in my post, above. In doing research, I found a recommendation not to use ar to repack the *.deb file, but when I used dpkg it threw off errors. Another suggestion was to use equivus, dhelper, etc., but while I think it’s OK to take reasonable steps to make the program work it’s a little unreasonable to have to learn the in’s and out’s of deb packaging (the manuals are not short). In other words, a user should not have to spend three or four days trying to install the package. Also, I would not have uploaded the patched file if it did not install on my system.

What tool would you recommend then, to repack the *deb file? What tool did the maintainer use? Is there a way to build this (make/install) using say, no more than two hours?

I hope this helps … although I’m using ubuntu 12.04 LTS 32 bit.

I tried extracting the patch you placed in dropbox …
Using command gksu file-roller (to launch with root permissions)
then Open > scrivener-1.5.3.1-beta_patch.deb

but I get “an error occurred while loading the archive”

I would withdraw your patch deb and try instead a force install of scrivener sourced package

sudo dpkg -i --force-all scrivener-1.5.3.1-beta.deb

and then use file-roller (root permissions) to extract the three files in
libqt4-dbus_4.8.0-1ubuntu11_i386.deb
into /usr/share/scrivener/lib/

gksudo file-roller

Open > libqt4-dbus_4.8.0-1ubuntu11_i386.deb
usr > lib > i386-linux-gnu
(path will be /usr/lib/i386-linux-gnu/ )
3 objects (519.1 kb)

to see …

libQtDBus.so.4
libQtDBus.so.4.8
libQtDBus.so.4.8.0

and right click on each file to extract into

/usr/share/scrivener/lib/

Good luck.

[After thought]

If you have used file-roller in root mode (gksudo file-roller) as above it may be that the three libQtDBus files extracted into /usr/share/scrivener/lib will have root permissions.

Take back your user ownership of the scrivener installation by running these commands …

cd /usr/share/scrivener/ && ls -l

to show ownership of scrivener files …
Then if you see “root root” in the file listing change ownership by running …

sudo chown -R [owner]:[group] /usr/share/scrivener

and then run command ls -l again to check change of ownership.

More information on chown can be seen by running command … chown --help

Thank you for your help.
There is no gksudo on Kubuntu, the equivalent is kdesudo.
I made it to that point in your instructions and saw that I had erased the previous version of libQtDbus.so.4.8.0 from the /usr/lib/i386-linux-gnu/ location (the other two files were there).
So I thought I would re-install libqt4-dbus_4.8.0-1ubuntu11_i386.deb.

This threw off error messages but worked. I then tried to run kdesudo, but got a message that there were incompatible Qt libraries after the downgrade. So I tried to run Scrivener and it runs!

I have a feeling that I am going to have a problem with any other program that uses the 4.8.3 library.

I would urge the package maintainer to recompile–or give instructions as to how to do this.

Here is the terminal output:

mok@algol:~/Documents$ sudo dpkg -i libqt4-dbus_4.8.0-1ubuntu11_i386.deb
dpkg: warning: downgrading libqt4-dbus:i386 from 4:4.8.3+dfsg-0ubuntu3.1 to 4:4.8.0-1ubuntu11
(Reading database … 173370 files and directories currently installed.)
Preparing to replace libqt4-dbus:i386 4:4.8.3+dfsg-0ubuntu3.1 (using libqt4-dbus_4.8.0-1ubuntu11_i386.deb) …
Unpacking replacement libqt4-dbus:i386 …
dpkg: dependency problems prevent configuration of libqt4-dbus:i386:
libqt4-dbus:i386 depends on libqt4-xml (= 4:4.8.0-1ubuntu11); however:
Version of libqt4-xml:i386 on system is 4:4.8.3+dfsg-0ubuntu3.1.
libqt4-dbus:i386 depends on libqtcore4 (= 4:4.8.0-1ubuntu11); however:
Version of libqtcore4:i386 on system is 4:4.8.3+dfsg-0ubuntu3.1.

dpkg: error processing libqt4-dbus:i386 (–install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
libqt4-dbus:i386
mok@algol:~/Documents$ kdesudo
Fontconfig warning: “/etc/fonts/conf.d/50-user.conf”, line 9: reading configurations from ~/.fonts.conf is deprecated.
Cannot mix incompatible Qt library (version 0x40800) with this library (version 0x40803)
Aborted (core dumped)
mok@algol:~/Documents$ kdesudo
Fontconfig warning: “/etc/fonts/conf.d/50-user.conf”, line 9: reading configurations from ~/.fonts.conf is deprecated.
Cannot mix incompatible Qt library (version 0x40800) with this library (version 0x40803)
Aborted (core dumped)
mok@algol:~/Documents$ scrivener
Fontconfig warning: “/etc/fonts/conf.d/50-user.conf”, line 9: reading configurations from ~/.fonts.conf is deprecated.

Yes, it looks like Scrivener runs–but nothing else does. :frowning: