Why is ZYpp trying to install a 32-bit package on a 64-bit system?

Hi,

I’ve tried installing deluge on 64-bit Tumbleweed with:


zypper in -y deluge

but alas I seem to be in bad luck today as I get the error:


Loading repository data...
Reading installed packages...
Resolving package dependencies...

Problem: nothing provides libboost_system.so.1.65.1 needed by python2-libtorrent-rasterbar-1.1.5-1.2.i586
 Solution 1: do not install deluge-1.3.15-15.94.noarch
 Solution 2: break python2-libtorrent-rasterbar-1.1.5-1.2.i586 by ignoring some of its dependencies

Choose from above solutions by number or cancel [1/2/c] (c): c

the libboost_system error I can get, clearly someone hasn’t rebuilt python2-libtorrent-rasterbar against the new release of boost, but what I do not get is why my system is trying to install a 32-bit package. Is it just getting desperate? If it helps here be my enabled repositories (zypper lr):


Repository priorities are without effect. All enabled repositories share the same priority.

# | Alias                               | Name                                                 | Enabled | GPG Check | Refresh
--+-------------------------------------+------------------------------------------------------+---------+-----------+--------
1 | home_fusion809                      | Brenton Horne's OBS repository (openSUSE_Tumbleweed) | Yes     | (r ) Yes  | No     
2 | http-download.opensuse.org-2a9a50b5 | Virtualization                                       | Yes     | (r ) Yes  | Yes    
3 | openSUSE-20171228-0                 | openSUSE-20171228-0                                  | Yes     | (r ) Yes  | Yes    
4 | repo-debug                          | openSUSE-Tumbleweed-Debug                            | No      | ----      | ----   
5 | repo-non-oss                        | openSUSE-Tumbleweed-Non-Oss                          | Yes     | (r ) Yes  | Yes    
6 | repo-source                         | openSUSE-Tumbleweed-Source                           | Yes     | (r ) Yes  | Yes    
7 | repo-update                         | openSUSE-Tumbleweed-Update                           | Yes     | (r ) Yes  | Yes 

I realize I could get the python2-libtorrent-rasterbar package myself (i.e. its sources), build it against the latest boost (64-bit this time) and install it and then install deluge. I just want to know how to fix this error once and for all (preventing this error and other errors relating to 32-bit packages being drawn in as dependencies from ever happening again).

Thanks for your time,
Brenton

The problem likely is that libtorrent-rasterbar fails to build in Factory:
https://build.opensuse.org/package/show/openSUSE:Factory/libtorrent-rasterbar

So it hasn’t been rebuilt with the latest (and only available) boost, and still requires a previous version that’s not in the repos any more.
The x86_64 package cannot be installed because of this missing dependency, and the solver falls back to trying to i586 version (which dependencies cannot be fulfilled either though).

Solution: branch libtorrent-rasterbar, fix the build and submit it back… :wink:
Or wait until somebody else does.

Maybe this upstream change would help?

I’ll give it a try…

(but I don’t plan to spend much time on that package, TBH)

Gave it a go myself by taking the libtorrent-rasterbar-1.1.5.tar.gz file and patching it with https://github.com/arvidn/libtorrent/commit/d1a63cd781e79e1e3792a258c0bc7f9455f2272f.patch, leaving the rest of the spec untouched. Sadly this didn’t work (for details see here https://build.opensuse.org/package/live_build_log/home:fusion809:branches:devel:libraries:c_c++/libtorrent-rasterbar/openSUSE_Factory/x86_64). The reason I didn’t just use the contents of the repo at commit d1a63cd781e79e1e3792a258c0bc7f9455f2272f is because the spec file requires a configure file and the repo doesn’t have one.

Yes, the patch needs to be rebased as there have been other changes.

It still fails to compile though, seems that update io_service forward declaration to be boost-1.66 compatible · arvidn/libtorrent@f42b63c · GitHub is needed too.

It does have a configure.ac, so you should be able to generate configure with autoconf.
Or it seems to be possible to build it with cmake.

It’s normally not usus to submit random git snapshots to Factory/Tumbleweed though…

Ok, builds fine now:
https://build.opensuse.org/package/show/home:wolfi323:branches:devel:libraries:c_c++/libtorrent-rasterbar

If you want to test it, please go ahead…

PS, the fix is on the way to Factory/Tumbleweed meanwhile:
https://build.opensuse.org/request/show/560762

I just hope that it doesn’t cause any (functional) problems… lol!

Thanks I see your submitted a request to merge your fix to the original project. 'tis a shame as it seems like quite a few packages are experiencing problems related to do this as I just tried to install 0 A.D. and qBittorrent and both packages have the same problems. Alas these be the perks of using a rolling distro :).

qBittorrent is unresolvable currently because of the libbittorrent-raster failure.
Should be fixed as well then (unless it fails for a different reason afterwards).

The 0ad build failure seems to be completely unrelated though.

Alas these be the perks of using a rolling distro :).

Yes, it is the point of a rolling distro to update stuff (like boost) to the latest versions all the time.
But also fixed releases like Leap would be affected by such problems at some point as newer releases will also come with newer libraries (like boost).
And packages that won’t build (and are not getting fixed in time) will just be dropped.
That’s true for Tumbleweed as well, but of course they don’t get dropped immediately, only if nobody fixes them for a certain amount of time (months).

Na the error for qBittorrent was quite distinct before this libtorrent fix. Here it is (from zypper in qbittorrent):


Loading repository data...
Reading installed packages...
Resolving package dependencies...

Problem: nothing provides libboost_system.so.1.65.1()(64bit) needed by qbittorrent-4.0.2-1.1.x86_64
 Solution 1: do not install qbittorrent-4.0.2-1.1.x86_64
 Solution 2: break qbittorrent-4.0.2-1.1.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or cancel [1/2/c] (c): c

EDIT: oh and 0 A.D. is related to boost as the error I got (when trying to install it) complained of that and rebuilding the existing SRC RPM on my system (with the latest boost) worked and now I’ve installed it.

Please do not take these corrections as attacks though, I am grateful for your help :).

Sure, qbittorrent has not been rebuilt against the latest boost either, because it is unresolvable as I wrote.

nothing provides libboost_system.so.1.65.1 needed by libtorrent-rasterbar9

This will be fixed when libtorrent-raster is fixed. When it is rebuilt, the dependency problem will disappear.
I haven’t tried if qbittorrent itself will build fine then though.

EDIT: oh and 0 A.D. is related to boost as the error I got complained of that and rebuilding the existing SRC RPM on my system (with the latest boost) worked and now I’ve installed it.

But that actually confirms that the build failure is unrelated to boost.
Otherwise it would have failed on your system (with the latest boost) as well.

What you probably mean is that you cannot install it because of the missing boost 1.65.1.
But that is because it hasn’t been rebuilt yet with the latest boost, because it fails to build (due to a different reason).