Fight for the Internet 1!

Monday, September 17, 2012

LibreOffice 3.6 from PPA problems

Background of the Problem

This happened in my Kubuntu/Ubuntu 12.04 Precise. Up until a few weeks ago, my copy of LibreOffice version 3.6 from the PPA was working great. [It was faster, more stable, more bug fixes and even some new much needed features.]

But then suddenly it just stopped working. I still don't know why this happened exactly, though I have finally been able to track the cause to the probable package that triggered the whole meltdown.

When I tried running LibreOffice through the apps menu, nothing happened. So I ran the command 'libreoffice' from console, and got the error message:
/usr/lib/libreoffice/program/oosplash: not found
I wasn't sure what this problem was. I thought maybe some dependency had gone bad.

Unsuccessful Things I Tried

(1) I found I did not have a Java JRE installed, so I installed default-jre. But this didn't help.

(2) Try to reinstall LibreOffice, but APT tells me it cannot reinstall the libreoffice package back of broken packages. So manually remove extra libreoffice components.
apt-get remove --purge libreoffice-core libreoffice-writer libreoffice-calc libreoffice-impress libreoffice-draw libreoffice-math libreoffice-base
First try ininstalling LibreOffice, but cannot. APT eventually tells me:
The following packages have unmet dependencies:
  libreoffice : Depends: libreoffice-core (= 1:3.5.4-0ubuntu1.1) but it is not going to be installed
    Depends: libreoffice-writer but it is not going to be installed
    Depends: libreoffice-calc but it is not going to be installed
    Depends: libreoffice-impress but it is not going to be installed
    Depends: libreoffice-draw but it is not going to be installed
    Depends: libreoffice-math but it is not going to be installed
    Depends: libreoffice-base but it is not going to be installed
    Recommends: libreoffice-gnome but it is not going to be installed or
    libreoffice-kde but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
(3) I had been using this PPA: http://ppa.launchpad.net/libreoffice/ppa/ubuntu/

Tried using the program ppa-purge; even let it remove 100 separate packages at one point in order to "undo" the integration from this PPA that was probably causing problems on my system. But it did nothing to fix the problem!

(4) Tried manually editing the file /var/lib/dpkg/status, to check for a false positive on the program but nothing weird was installed or remaining! [Though I could not find anywhere it

Successful Fix (Part 1)

Here is what I did that finally fixed the dependency problem. While manually trying to install libreoffice-core, I noticed the error message said:
libreoffice-core : Depends: libexttextcat0 (>= 2.2-8) but it is not going to be installed
I checked out libexttextcat0 and it said:
libexttextcat0 : Depends: libexttextcat-data (= 3.2.0-1ubuntu1) but 3.3.1-2~precise1 is to be installed
Finally I used 'apt-cache policy' to look at libexttextcat-data and it said:
libexttextcat-data:
  Installed: 3.3.1-2~precise1
  Candidate: 3.3.1-2~precise1
  Version table:
 *** 3.3.1-2~precise1 0
        100 /var/lib/dpkg/status
     3.2.0-1ubuntu1 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
This library had installed a later version (3.3.1-2) from somewhere that was no longer in my apt-repositories and apt couldn't figure this out (as being a serious problem for fixing via downgrade).

So I removed both libexttextcat-data and libexttextcat0 and then tried to install LibreOffice. Suddenly everything was ready to work again! But then came part 1.5.

Successful Fix (Part 1.5) The System is Unclean

At this point, I tried installing version LibreOffice 3.6 again from the PPA. This actually worked and installed just fine and it ran just fine. However I was a little worried about leftover crud from the prior botched installs.

After successfully installing LibreOffice 3.6, I purge uninstalled it and all its associated programs. Then I ran a check on the system, and sure enough found a bunch of left-over crud that hadn't been removed.

Successful Fix (Part 2)

So now I was left with a lot of crud left over from the previous botched installation of LibreOffice 3.6 which would simply not be uninstalled because the system (APT/DPKG) thought it wasn't installed.

This was going to require manual clean up, but thankfully it's not a very difficult task in Linux. I had to manually run a search-and-delete every single copy of anything related to LibreOffice on my system. After every trace of libreoffice named files were gone from my system, I was ready to install libreoffice for the final time.

However now if I tried to installed LibreOffice 3.6 from the PPA, the package maintainer (APT) behaved strangely. It acted like it installed the programs but actually did NOT install them. Nothing happened. So I used the command:
ppa-purge ppa:libreoffice/ppa
And removed the LibreOffice 3.6 PPA version and repository, and downgraded the program to version 3.5, installing from the official Ubuntu repositories and everything worked.

Word to the Wise: If you are installing a package and it asked you about installing a Configuration file, and you need to choose to keep your old file or install the Package-Maintainer's version, ALWAYS install the package maintainer's version, unless you have a really good reason not to.

Tuesday, September 11, 2012

Pidgin 2.10.6 libc-2.15.so Segfault Workaround

Pidgin Segfault Workaround

Today when I turned on my computer, Pidgin would not start. I normally prefer writing a more complete blog post, and I wish I had more to tell viewers but all I know is a (complex?) workaround that worked for me.

Pidgin won’t start. So I run it through command line. Get the message “Segfault”. Run it with the --debug switch. Get more info, but nothing conclusive. Check logs, find kernel describing a library problem with libc.

[   57.444660] pidgin[2211]: segfault at 0 ip 00007fc78073966a sp 00007fffee194710 error 4 in libc-2.15.so[7fc7806af000+1b3000]

Okay, that's bad but my system updated libc a week ago. Why the problem now? Try for a while but can't discover exact cause of problem.

My solution? Compile Pidgin myself, to see if that will fix the problem. Short answer: Yes, that fixed the problem.

I enabled software-sources in my apt-repository list, ran apt-get build-dep pidgin, manually download the pidgin source and compiled that sucker. Works fine, and I could remove all the extra packages installed by the apt-get build-dep move, with the exception of libfarstream, which is how Pidgin does it's sound.


Pidgin sound without gstreamers

Modern versions the instant messenger client Pidgin use gstreamers for their sound management. Sometimes you need to operate without gstreamers present on your system. But you still want sound though.

Here's a quick solution I've used in years passed. Go to Preferences -> Sounds -> Select "Method" and choose "Command". This will enable the input area with the label "Sou/nd command (%s for filename)". Into this box put this command:

aplay %s

That passes the sound from Pidgin to ALSA, which is supported on all modern Linux distributions and is also supported with backwards compatibility by PulseAudio.

Friday, September 7, 2012

Enable Auto Load with Firefox AutoPager

Hello. If you are using Firefox's add-on "AutoPager" you may have been annoyed in the past that it is inconveniently difficult to enable "Always autopage" on every sight you visit. (Essentially, you want to only use a blacklist of blocked autopage sites, and assume everything else is good.)

In the past, I don't even know how I set this. It may have been a menu or button option which has since been removed, but now for the latest Autopager, it is simply IMPOSSIBLE to enable all pages to automatically autopage.

Here is how I finally got this to work:

In Firefox, open a new tab and go to the address: "about:config" with no quotes and no http or anything. Just those words.

In the search area, type the words: extensions.autopager.noprompt

Set the value to 'True' and close. That should be all you need.