Beta 023 .deb available


Built on Ubuntu 11.04

Tested on 10.10 and 11.04

Worked in the Software Centre, and via dpkg -i

Does not install a shortcut in Ubuntu. Can be run from the terminal via: Scrivener …

Install .deb package with software center. When I try to run Scrivener from the command line, here is the output:

Scrivener: symbol lookup error: Scrivener: undefined symbol: _ZN19QTextDocumentLayout16staticMetaObjectE

Any ideas? And thank you for your work on this!

What OS version are you installing in? Both my Ubuntus are working fine so I’m not sure what the cause could be. The Ubuntu 10.10 in my virtual machine is a clean install just for the purposes of testing the package so there’s nothing needed from a prior build. Hmmm.

You can also try doing: dpkg -i scrivener-beta.deb
at the terminal and see if it processes better there. (Sometimes it makes a difference)

Ubuntu 10.10, and thus far, all of the other beta .deb packages installed and upgraded without problem. I deleted Scrivener, reinstalled beta 21, and then tried upgrading through command line as you suggest and the outcome is the same when I try to run it.

From googling it looks like somewhere a needed library is the wrong version. What about purging the previous version?

I just tried that as well with the same result. :frowning:

Thanks for trying to help though. :slight_smile:

Did you try to repair the symlinks on the previous version manually? And did it work or fail if you did?

If it failed before then it might be because some symlinks are mucked up. You may need to find links that point to the included libraries and remove them manually.

What architecture are you using? 32 or 64 bit?

After purging previous versions, reboot, install, and sudo ldconfig

Everything I’m finding on the issue points to a version conflict somewhere.

Aha! You have a version conflict in the QtGui library. Don’t know how you’ll fix it but that’s a step in the right direction.

Same error here on Ubuntu 10.10. I’ve uninstalled the last .deb version, but not yet done a full apt-get purge on it.

The problems might be due conflicts with the somewhat … peculiar file layout in that deb. Installing random libs that would normally go in /usr/lib in /lib is a bit of a recipe for chaos (q.f. dll hell on windows). Shouldn’t be too hard to shove it all into /opt, fiddle with LD_LIBRARY_PATH and go from there. I’ll try knocking up a more standard deb after work.

I’ll bite. What’s peculiar?
I just followed the instructions for creating .debs for binary packages, and used multiple sources to be sure. (edit: the file layout was unchanged from the binary pack. I only added the control file and dpkg’d it)
I can modify as needed. Happy to learn.

Odd that it didn’t conflict with anything on my day-to-day system or the fresh test VM though. We’ll work it out :slight_smile:

creating everything under / is the main problem (and generally a complete no-no). Mostly its stylistic reasons, but its important when the program is using its own compiled versions of library files (as this one does). ‘Binary blob’ libraries like that should never be put in a general library location (e.g. /lib, /usr/lib), as they could potentially then get loaded by other apps which are expecting the normal library.

This can lead to all sorts of fun, especially if you have the same version but compiled with a different set of options.

Best way around this is to put all the files in their own directory - convention would be /usr/share/packagename, so /usr/share/scrivener/libs, /usr/share/scrivener/bin, etc.
then you’d make a script like this:

LD_LIBRARY_PATH=/usr/share/scrivener/libs:$LD_LIBRARY_PATH /usr/share/scrivener/bin/Scrivener

as /usr/bin/scrivener (note thats a two line script, the forum cuts it in half).

This way it can keep its custom compiled libs and they are out of everyone else’s way. It also paves the way to trying adding depends to the control file and using the debian version of the libraries rather than the bundled ones.

currently I’m just wrestling with fixing the .install file, once I have that working, I’ll put it up if you like.

@cwoac: Please! If it’s of any use for comparison the .deb posted here on the forum for 021 worked nicely, and had a menu item as well.

Okay, a new deb file made.
first the deb file. Built and tested against ubuntu 10.10 / debian 6 but should work on earlier versions
I added menu & desktop entries (no icon though).
You will want to remove the old package first (sudo apt-get remove scrivener-beta)

next the source tar for those who are interested.

Its built roughly around the outline in my last post, the main difference is I put the files under /usr/share/LiteratureAndLatte to mirror the original tar.gz
Because I couldn’t figure out how to tell dpkg-shlibs to reliably ignore the dependancies, I needed libphonon-dev and libqtwebkit-dev installed to build it (it still generates a bunch of link warnings, but thats just because I couldn’t get the LD_LIBRARY_PATH value inside the rules script quite right. It works fine once installed).

If you want to build a deb off this for a new version of the package, change the debian/changelog file, replace the contents of usr/share/LiteratureAndLatte with the new beta and rerun dpkg-buildpackage on it.

[EDIT: now tested on debian box]

Worked perfectly. Thank you!!! :slight_smile:

Many thanks for the latest .deb package. It installed without any problems on my Ubuntu 10.10 system. Previously I had tried installing from the tar file and hit the unreferenced symbol error already reported by others. Great work!

Thanks for making this, but I cannot get it to work. I am still getting the “library too short” error.
I must be doing something wrong.

Thats an odd error, can you paste the command you are trying and the full error message?
also, which distro/version?

Thanks for the reply. I installed it, then went to the terminal and typed Scrivener, and this came up:
/usr/share/LiteratureAndLatte/bin/Scrivener: error while loading shared libraries: /usr/local/LiteratureAndLatte/lib/ file too short

The distro is Ubuntu 10.04

Theres your problem, you have some files from an old install hanging around in /usr/local, which its trying to load. the libraries it should be loading are in /usr/share/Literature… not /usr/local.

try sudo rm -r /usr/local/LiteratureAndLatte then re-running.
also, what does
which Scrivener

Many thanks for creating this. I installed scrivener_0.2.3_i386.deb in Ubuntu 10.04 using gdebi and it works very well.