Naming of packages: libxkbcommon-x11

Hello,

I have a question regarding package naming.

So far as I can see there is on most linux-distris a package called “libxkbcommon-x11”. But for opensuse 15 there is no such package but a package called “libxkbcommon-x11-0”. You can see this nicely here: https://pkgs.org/download/libxkbcommon-x11.so.0

Now when installing software, e.g. Rstudio, the installation fails because a dependency can’t be provided:

Problem: nothing provides libxkbcommon-x11 needed by rstudio-1.2.5033-1.x86_64

So is my assumption correct that only the name of the package differ but the library itself is the same?

Why does opensuse not use the common names of packages. My example might be very easy to identify but if differences in names get bigger it might not be easy for non experts to identify which package belongs to each other.

Thx for the help.

Successfully installed rstudio from the repo found: https://software.opensuse.org/search?utf8=✓&baseproject=ALL&q=rstudio No problems encountered.:wink:

Like @kartmistelberger already suggests, not only do the vague generalised story telling “when I install …”, but explain how you installed from where, preferable with copy/pasts of what you did on a terminal and/or screen shots of windows posted on https://susepaste.org/ and post the URL here. Never assume that people do things the same as you do them or have the same starting situation and background information that your have…

I downloaded it from their webside for openSUSE 15 and it fails:

linux64:~ # LANG=en zypper in https://download1.rstudio.org/desktop/opensuse15/x86_64/rstudio-1.2.5033-x86_64.rpm
Loading repository data...
Reading installed packages...
Resolving package dependencies...

Problem: nothing provides libxkbcommon-x11 needed by rstudio-1.2.5033-1.x86_64
 Solution 1: do not install rstudio-1.2.5033-1.x86_64
 Solution 2: break rstudio-1.2.5033-1.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or cancel [1/2/c/d/?] (c): c
linux64:~ # 


or

linux64:~ # LANG=en zypper in https://download1.rstudio.org/desktop/opensuse/x86_64/rstudio-1.2.5033-x86_64.rpm
Loading repository data...
Reading installed packages...
Resolving package dependencies...

Problem: nothing provides libxkbcommon-x11 needed by rstudio-1.2.5033-1.x86_64
 Solution 1: do not install rstudio-1.2.5033-1.x86_64
 Solution 2: break rstudio-1.2.5033-1.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or cancel [1/2/c/d/?] (c): c
linux64:~ #

So its a build failure of the package maintainer for rstudio.

When installing Tumbleweed libxkbcommon-x11-0 was selected automatically. libxkbcommon-x11-0 provides libxkbcommon-x11. Installing package libxkbcommon-x11-0 might fix the problem.

Hi
In openSUSE, it’s based on the shared library name, have a read here: openSUSE:Shared library packaging policy - openSUSE Wiki

When installing Tumbleweed libxkbcommon-x11-0 was selected automatically. libxkbcommon-x11-0 provides libxkbcommon-x11. Installing package libxkbcommon-x11-0 might fix the problem.

Was installed when I was installing Rstudio…

The version installed on this machine does provide libxkbcommon-x11:

:~ # rpm -ql libxkbcommon-x11-0
/usr/lib64/**libxkbcommon-x11**.so.0
/usr/lib64/libxkbcommon-x11.so.0.0.0
/usr/share/licenses/libxkbcommon-x11-0
/usr/share/licenses/libxkbcommon-x11-0/LICENSE
:~ # 

:~ # zypper se -is libxkbcommon-x11
Loading repository data...
Reading installed packages...

S | Name               | Type    | Version   | Arch   | Repository            
--+--------------------+---------+-----------+--------+-----------------------
i | libxkbcommon-x11-0 | package | 0.9.1-1.1 | x86_64 | Haupt-Repository (OSS) (http://download.opensuse.org/tumbleweed/repo/oss/)
:~ # 

RStudio is fully functional!

The Version in Leap 15.1 has the same, but it gives the installtion error…

linux64:~ # rpm -ql libxkbcommon-x11-0
/usr/lib64/libxkbcommon-x11.so.0
/usr/lib64/libxkbcommon-x11.so.0.0.0
/usr/share/licenses/libxkbcommon-x11-0
/usr/share/licenses/libxkbcommon-x11-0/LICENSE

So it must provide libxkbcommon-x11 but:

linux64:~ # rpm -qa --provides libxkbcommon-x11-0
libxkbcommon-x11-0 = 0.9.1-lp151.61.1
libxkbcommon-x11-0(x86-64) = 0.9.1-lp151.61.1
libxkbcommon-x11.so.0()(64bit)
libxkbcommon-x11.so.0(V_0.5.0)(64bit)

To show, why it gives an error, I build libxkbcommon-x11-0 new with a

Privides: libxkbcommon-x11
linux64:~ # rpm -qa --provides libxkbcommon-x11-0
libxkbcommon-x11
libxkbcommon-x11-0 = 0.9.1-lp151.62.1
libxkbcommon-x11-0(x86-64) = 0.9.1-lp151.62.1
libxkbcommon-x11.so.0()(64bit)
libxkbcommon-x11.so.0(V_0.5.0)(64bit)

Now it installs:

linux64:~ # LANG=en zypper in https://download1.rstudio.org/desktop/opensuse15/x86_64/rstudio-1.2.5033-x86_64.rpm
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW package is going to be installed:
  rstudio

1 new package to install.
Overall download size: 102.0 MiB. Already cached: 0 B. After the operation, additional 583.0 MiB will be
used.
Continue? [y/n/v/...? shows all options] (y): y
Retrieving package rstudio-1.2.5033-1.x86_64                          (1/1), 102.0 MiB (583.0 MiB unpacked)
rstudio-1.2.5033-x86_64.rpm:
    Header V4 RSA/SHA256 Signature, key ID e331692f: NOKEY

Looking for gpg key ID E331692F in cache /var/cache/zypp/pubkeys.
Repository Plain RPM files cache does not define additional 'gpgkey=' URLs.
rstudio-1.2.5033-1.x86_64 (Plain RPM files cache): Signature verification failed [4-Signatures public key is not available]
Abort, retry, ignore? [a/r/i] (a): i

Checking for file conflicts: ........................................................................[done]
(1/1) Installing: rstudio-1.2.5033-1.x86_64 .........................................................[done]
Additional rpm output:
warning: /var/cache/zypper/RPMS/rstudio-1.2.5033-x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID e331692f: NOKEY
Unknown media type in type 'all/all'
Unknown media type in type 'all/allfiles'
Unknown media type in type 'all/all'
Unknown media type in type 'all/allfiles'


linux64:~ # 

But this is the wrong way, because if someone is building an openSUSE rpm , he has to build it with the right Requires:

Requires: libxkbcommon-x11-0

I know, that you can ignore this error when you install rstudio and have libxkbcommon-x11-0 installed…

Hi
Not necessarily, if the code is up to scratch (soname and version etc), at build time rpm should determine the actual libraries required without adding a specific requires… then zypper/rpm can work with this irrespective of the platform being installed on. It’s only when there are hard requires in the rpm that you strike issues like this…

I presumed that you knew that, but the original poster is unsure. I try to be more explicit:

The package https://download1.rstudio.org/desktop/opensuse15/x86_64/rstudio-1.2.5033-x86_64.rpm has:

erlangen:~ # rpm -q --requires -p rstudio-1.2.5033-x86_64.rpm 
warning: rstudio-1.2.5033-x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID e331692f: NOKEY
/bin/sh
/bin/sh
/bin/sh
/bin/sh
**libxkbcommon-x11**
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1
erlangen:~ # 

The original poster asks: Why does opensuse not use the common names of packages?

The answer is: openSUSE does use the proper package name. It’s up to the packagers at rstudio.org to provide a correct list of required packages.

The answer is: openSUSE does use the proper package name. It’s up to the packagers at rstudio.org to provide a correct list of required packages.

I agree, that is also I want to say.

Thanks for the help and sorry that my initial post was not precisely enough.

Yes, I ignored this error and the installation was successful. Rstudio started correctly.

So I should address this problem to the packagers at rstudio.org that they should correct the list of required packages. In this case it should be “libxkbcommon-x11-0” instead of “libxkbcommon-x11”. I will do this.

Thx again for the quick and detailed help.

Hi
They probably need to remove and then check the build log to see that rpm finds it, but I suspect they build for Fedora as the rpm which does use different package names…