SKYPE and opensuse 13.1

A very happy new year to all of you readers !

I updated my suse 12.3 to 13.1 with success. Only that skype does not work any longer. read about the latency problem so I tried to start skype with "pulse_latency_msec= 60 skype “and got the following msg : " Fatal : Cannot mix incompatible Qt library (version 0x40804) with this library (version 0x40805) Abandon”
Does anybody know what to do next ?

Thanks
Mahanand
>:(

On 2014-01-02 11:46, mahanand wrote:
>
> A very happy new year to all of you readers !
>
> I updated my suse 12.3 to 13.1 with success.

How exactly did you do the upgrade?


Cheers / Saludos,

Carlos E. R.
(from 13.1 x86_64 “Bottle” (Elessar))

Downloaded the iso dvd from opensuse website, then after updating using the dvd , I went to yast and updated from there.
thanks

On 2014-01-02 14:06, mahanand wrote:
>
> Downloaded the iso dvd from opensuse website, then after updating using
> the dvd , I went to yast and updated from there.

Ok.

Well, as the DVD does not contain everything, you need to do:


zypper dup
zypper up
zypper patch

With only the default repos active. Then you need to check:


rpm -q -a --queryformat "%{INSTALLTIME}	%{INSTALLTIME:day} \
%{BUILDTIME:day} %-30{NAME}	%15{VERSION}-%-7{RELEASE}	%{arch} \
%25{VENDOR}%25{PACKAGER} == %{DISTRIBUTION} %{DISTTAG}
" \
| sort | cut --fields="2-" | tee rpmlist | less -S

or


rpm -q -a --queryformat "%{INSTALLTIME}	%{INSTALLTIME:day} \
%{BUILDTIME:day} %-30{NAME}	%15{VERSION}-%-7{RELEASE}	%{arch} \
%25{VENDOR}%25{PACKAGER} == %{DISTRIBUTION} %{DISTTAG}
" \
| sort | cut --fields="2-" | tee rpmlist \
| egrep -v "openSUSE.12\.3" | less -S

(not containing 12.3)

Finally, you need to verify the changed config files, those listed when running this:


rcrpmconfigcheck


Cheers / Saludos,

Carlos E. R.
(from 13.1 x86_64 “Bottle” (Elessar))

I did a distribution upgrade from 12.3 to 13.1 and followed the instructions for 13.1 on SDB:Skype - openSUSE

Skype starts with some ALSA output messages, but it will not connect to Internet/Skype.


ERROR: ld.so: object '/usr/lib/libv4l/v4l1compat.so' from LD_PRELOAD cannot be preloaded: ignored.
QIconvCodec::convertFromUnicode: using Latin-1 for conversion, iconv_open failed
QIconvCodec::convertToUnicode: using Latin-1 for conversion, iconv_open failed
ALSA lib conf.c:3771:(snd_config_update_r) cannot access file /etc/alsa-pulse.conf
ALSA lib conf.c:3771:(snd_config_update_r) cannot access file /etc/alsa-pulse.conf
ALSA lib control.c:953:(snd_ctl_open_noupdate) Invalid CTL default
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM default
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM default
ALSA lib control.c:953:(snd_ctl_open_noupdate) Invalid CTL default

Running skype without the extra arguments PULSE_LATENCY_MSEC=60 LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so
works the same, It starts but does not connect (it keeps trying).

Apparently you didn’t follow them exactly, because according to your error messages you seam to miss the packages libv4l-32bit and alsa-plugins-pulse-32bit.

Does it work if you install those (when you run it with those extra arguments)?

I tried following the link too, but find that libQtWebKit.so 32bit should also be on the needs-to-be-loaded list of libraries.

I see it now, but under the Preparation paragraph, which I interpreted to be for 12.3, not 13.1.

You’re right. That paragraph is for 12.3, there is none for 13.1 AFAICS.
And it is not listed for older versions, although I would think it’s needed there as well… (but maybe it was installed there by default?)

I can assure you I had already installed both those libraries in 32bit. There is also libQtWebKit.so 32bit installed.

My Skype starts and is running, but it does not connect.

Well, apparently you did not have at least libv4l-32bit installed when you got that output you posted, since that’s the package that contains /usr/lib/libv4l/v4l1compat.so.

But I made a mistake, sorry:
/etc/alsa-pulse.conf is in the package “alsa-plugins-pulse” (i.e. the 64bit package), because that file is noarch anyway (it’s a text file).
So make sure you have that installed as well.

I’m not sure if missing that packages could prevent skype from connecting though.

Don’t you get any additional output?

Do you have all those 32bit packages installed that are listed for 12.3, i.e.: libqt4-32bit libqt4-x11-32bit libpng12-0-32bit libQtWebKit4-32bit xorg-x11-libs libXss1-32bit libpng12-0 ? (although, if not I guess it wouldn’t even start)

Maybe an AppArmor problem?
Try turning it off with:

sudo /sbin/rcapparmor stop

Are you behind a proxy or firewall?
SDB:Skype - openSUSE

PS: That page tells to run

PULSE_LATENCY_MSEC=60 LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype %U

But I would say, this is what you only should put in the desktop file, because “%U” is replaced then by the desktop environment when you run it.

If you run it in a terminal window, you should omit that ‘%U’ IMHO.

Or try just:

PULSE_LATENCY_MSEC=60 skype

as it is written in the openSUSE 13.1 release notes.

All 32bit librarier are installed.

It was an AppArmor problem. By stopping it I got one step closer.

Previously before my update to 13.1 I had to start skype with MALLOC_CHECK_=0. This because it crashed every time I started it.
Skype crash log: SUSE Paste

So I added this to the other arguments.

All in all. What did the trick:


user@machine:~> sudo /sbin/rcapparmor stop
redirecting to systemctl stop apparmor

user@machine:~> MALLOC_CHECK_=0 PULSE_LATENCY_MSEC=60 LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype %U

What can I do with AppArmor in order to keep it running but with support for Skype?

Try to run:

sudo /usr/sbin/aa-logprof

and (A)llow all the things that got blocked for skype. You may have to repeat that (i.e. running skype, then running aa-logprof) a few times, since skype may want to access further things when it’s allowed to access something that was blocked before.

No (A)llow available:


Reading log entries from /var/log/messages.
Updating AppArmor profiles in /etc/apparmor.d.

Profile:  /usr/bin/skype
Execute:  /usr/bin/pulseaudio
Severity: unknown


(I)nherit / (P)rofile / (C)hild / (N)ame / (U)nconfined / (X)ix / (D)eny / Abo(r)t / (F)inish

I choose Profile and then Allow for several sections (there was A LOT).
http://paste.opensuse.org/68752133
I choose NO on “Should AppArmor sanitize the environment when switching profiles?”

And is it working now?

I have to admit that I don’t really know that much about AppArmor yet.

But I guess in the worst case you could just let skype run (U)nconfined?

Btw, the profiles are stored in /etc/apparmor.d/, so if you want/need to you can just remove it there and start fresh.
Or the same is also possible in YaST->Security and Users->AppArmor

On 2014-01-07 13:26, DJViking wrote:

> Code:
> --------------------
>
> Reading log entries from /var/log/messages.
> Updating AppArmor profiles in /etc/apparmor.d.
>
> Profile: /usr/bin/skype
> Execute: /usr/bin/pulseaudio
> Severity: unknown
>
>
> (I)nherit / (P)rofile / (C)hild / (N)ame / (U)nconfined / (X)ix / (D)eny / Abo(r)t / (F)inish
>
> --------------------

I would guess “inherit”. But maybe there is an updated skype profile
where you got it from, I don’t think that is a default openSUSE profile :-?


Cheers / Saludos,

Carlos E. R.
(from 12.3 x86_64 “Dartmouth” at Telcontar)

Its working fine, as it previous did on 12.3. Though I’m unsure why I need MALLOC_CHECK_=0.

A small update. Though I needed to stop AppArmor before I started Skype, then start AppArmor again.

I did not manage to configure Skype with AppArmor. Everytime I configured with usr/sbin/aa-logprof I got a read access from the following. The number increased everytime I started skype again, so allowing did not work for this path.


Profile:  /usr/bin/skype
Path:     /proc/2889/task/2896/stat
Mode:     r
Severity: 6

  1 - /proc/2889/task/2896/stat 
 [2 - /proc/*/task/2896/stat]

(A)llow / (D)eny] / (G)lob / Glob w/(E)xt / (N)ew / Abo(r)t / (F)inish / (O)pts
Adding /proc/*/task/2896/stat r to profile.


If I added the path /proc//task//stat I solved that problem, and no more config appeared with aa-logprof, but Skype would not start either way. So stop/start AppArmor is the only solution I found work.

Well I guess you would have to put something like /proc/* into the profile manually. (of course the PID of the process will change on every run)

But I have no idea why you even have to go through this, since it works fine for other people.

And also applications should be granted access to /proc by default. That is defined in /etc/apparmor.d/tunables/proc.
Apparently your AppArmor configuration is completely screwed up…

I would suggest you remove at least the directories /etc/apparmor/profiles/, /etc/apparmor.d/tunables, and /etc/apparmor.d/local and reinstall apparmor-profiles. And remove your skype profile again.

sudo /sbin/rcapparmor stop
sudo rm -r /etc/apparmor/profiles /etc/apparmor.d/tunables /etc/apparmor.d/local /etc/apparmor.d/*skype*
sudo zypper in -f apparmor-profiles
sudo /sbin/rcapparmor start

(I’m not sure if rcapparmor stop/start is actually needed, but it cannot harm…)

Maybe it works then?

Thanx. Removing the AppArmor profiles and reinstalling it worked perfectly.