Bug 2098479

Summary: missing mutter3 and libwacom dependency on fedora upgrade from 35 to 36
Product: [Fedora] Fedora Reporter: Colin Barker <colin.barker07>
Component: mutter3.38Assignee: Fabio Valentini <decathorpe>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 36CC: colin.barker07, decathorpe
Target Milestone: ---Keywords: Upgrades
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-06-20 22:22:58 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Colin Barker 2022-06-19 21:49:03 UTC
Description of problem:
missing mutter3 and libwacom dependency on fedora upgrade from 35 to 36

Version-Release number of selected component (if applicable):
mutter3.38-libs-3.38.6-1.fc35.x86_64

How reproducible:
upgrade from fc35 to fc36

Steps to Reproduce:
1. dnf upgrade --refresh
2. dnf install dnf-plugin-system-upgrade
3. dnf system-upgrade download --releasever=36

Actual results:
# dnf upgrade --refresh
Adobe Systems Incorporated                          8.3 kB/s | 2.9 kB     00:00    
Dropbox Repository                                  8.6 kB/s | 2.9 kB     00:00    
Fedora 35 - x86_64                                  93 kB/s |  21 kB     00:00    
Fedora 35 openh264 (From Cisco) - x86_64            11 kB/s | 989  B     00:00    
Fedora Modular 35 - x86_64                          192 kB/s |  21 kB     00:00    
Fedora 35 - x86_64 - Updates                        319 kB/s |  20 kB     00:00    
Fedora Modular 35 - x86_64 - Updates                325 kB/s |  19 kB     00:00    
google-chrome                                       17 kB/s | 1.3 kB     00:00    
RPM Fusion for Fedora 35 - Free                     49 kB/s | 7.2 kB     00:00    
RPM Fusion for Fedora 35 - Free - Updates           62 kB/s | 6.5 kB     00:00    
RPM Fusion for Fedora 35 - Nonfree                  68 kB/s | 7.3 kB     00:00    
RPM Fusion for Fedora 35 - Nonfree - Updates        61 kB/s | 6.6 kB     00:00    
Dependencies resolved.
Nothing to do.
Complete!
# dnf install dnf-plugin-system-upgrade
Last metadata expiration check: 0:00:16 ago on Sun 19 Jun 2022 22:04:53 BST.
Package python3-dnf-plugin-system-upgrade-4.0.16-1.fc35.noarch is already installed.
Dependencies resolved.
Nothing to do.
Complete!
dnf system-upgrade download --releasever=36
Before you continue ensure that your system is fully upgraded by running "dnf --refresh upgrade". Do you want to continue [y/N]: y
Adobe Systems Incorporated                           12 kB/s | 2.0 kB     00:00    
Dropbox Repository                                  4.2 kB/s | 2.4 kB     00:00    
Fedora 36 - x86_64                                  4.1 MB/s |  81 MB     00:19    
Fedora 36 openh264 (From Cisco) - x86_64            6.6 kB/s | 2.5 kB     00:00    
Fedora Modular 36 - x86_64                          2.4 MB/s | 2.4 MB     00:00    
Fedora 36 - x86_64 - Updates                        3.9 MB/s |  18 MB     00:04    
Fedora Modular 36 - x86_64 - Updates                2.2 MB/s | 2.2 MB     00:00    
google-chrome                                        26 kB/s | 3.6 kB     00:00    
RPM Fusion for Fedora 36 - Free                     2.0 MB/s | 676 kB     00:00    
RPM Fusion for Fedora 36 - Free - Updates           851 kB/s | 180 kB     00:00    
RPM Fusion for Fedora 36 - Nonfree                  1.1 MB/s | 252 kB     00:00    
RPM Fusion for Fedora 36 - Nonfree - Updates        396 kB/s |  69 kB     00:00    
Error: 
 Problem: package mutter3.38-libs-3.38.6-1.fc35.x86_64 requires libwacom.so.2()(64bit), but none of the providers can be installed
  - package mutter3.38-libs-3.38.6-1.fc35.x86_64 requires libwacom.so.2(LIBWACOM_0.33)(64bit), but none of the providers can be installed
  - libwacom-1.12.1-2.fc35.x86_64 does not belong to a distupgrade repository
  - problem with installed package mutter3.38-libs-3.38.6-1.fc35.x86_64
(try to add '--skip-broken' to skip uninstallable packages)


Expected results:
no missing packages, no missing dependencies

Additional info:
## looks like mutter3 is not provided
# dnf whatprovides mutter3.38-libs-3.38.6-1.fc35.x86_64
Last metadata expiration check: 0:40:40 ago on Sun 19 Jun 2022 22:04:53 BST.
Error: No matches found. If searching for a file, try specifying the full path or using a wildcard prefix ("*/") at the beginning.

##looks like libwacom.so.2 is only built for i686 not x86_64.
dnf whatprovides libwacom.so.2
Last metadata expiration check: 0:38:04 ago on Sun 19 Jun 2022 22:04:53 BST.
libwacom-1.12-1.fc35.i686 : Tablet Information Client Library
Repo        : fedora
Matched from:
Provide    : libwacom.so.2

libwacom-1.12.1-2.fc35.i686 : Tablet Information Client Library
Repo        : updates
Matched from:
Provide    : libwacom.so.2

Comment 1 Colin Barker 2022-06-20 20:45:23 UTC
looked at Bug 2031746.
# dnf install dnf-plugin-system-upgrade --skip-broken 
also fails with same issue.

Why is upgrading to fedora 36 x86_64 complaining about a missing fedora 35 i686 architecture file?

Comment 2 Colin Barker 2022-06-20 22:04:15 UTC
Further info on mutter3 dependency
Looking at the files in these packages on the Fedora repository, it appears that the problem is that
 package libwacom-0:1.12.1-2.fc35.x86_64 'appears' empty even though specific files can be found in it ???
and
 package libwacom-0:1.12-1.fc35.x86_64 is not being picked up by dnf when using --best option

# rpm -qil mutter3.38-libs-3.38.6-1.fc35.x86_64
Name        : mutter3.38-libs
Version     : 3.38.6
Release     : 1.fc35
Architecture: x86_64
Install Date: Thu 10 Feb 2022 19:46:10 GMT
Group       : Unspecified
Size        : 4609098
License     : GPLv2+
Signature   : RSA/SHA256, Sat 29 Jan 2022 19:23:08 GMT, Key ID db4639719867c58f
Source RPM  : mutter3.38-3.38.6-1.fc35.src.rpm
Build Date  : Sat 29 Jan 2022 18:57:24 GMT
Build Host  : buildvm-x86-13.iad2.fedoraproject.org
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : http://www.gnome.org
Bug URL     : https://bugz.fedoraproject.org/mutter3.38
Summary     : Shared pibraries provided by mutter3.38
Description :
Shared libraries provided by mutter.
/usr/lib/.build-id
/usr/lib/.build-id/1f
/usr/lib/.build-id/1f/099b19c8794735f41eaa2436f0188e80ac824a
/usr/lib/.build-id/24
/usr/lib/.build-id/24/3cef553b8a76e5439b89e2eca0e248bdd891ac
/usr/lib/.build-id/37
/usr/lib/.build-id/37/17524f64aa2c16014f70ed3ac167aefd904609
/usr/lib/.build-id/64
/usr/lib/.build-id/64/f90ccdade95201aef8a592b22e2ac945f23ec4
/usr/lib/.build-id/8d
/usr/lib/.build-id/8d/229e114c652c8245f0b1bdd1fd1a707f42c784
/usr/lib64/libmutter-7.so.0
/usr/lib64/libmutter-7.so.0.0.0
/usr/lib64/mutter-7
/usr/lib64/mutter-7/Cally-7.typelib
/usr/lib64/mutter-7/Clutter-7.typelib
/usr/lib64/mutter-7/ClutterX11-7.typelib
/usr/lib64/mutter-7/Cogl-7.typelib
/usr/lib64/mutter-7/CoglPango-7.typelib
/usr/lib64/mutter-7/Meta-7.typelib
/usr/lib64/mutter-7/libmutter-clutter-7.so.0
/usr/lib64/mutter-7/libmutter-clutter-7.so.0.0.0
/usr/lib64/mutter-7/libmutter-cogl-7.so.0
/usr/lib64/mutter-7/libmutter-cogl-7.so.0.0.0
/usr/lib64/mutter-7/libmutter-cogl-pango-7.so.0
/usr/lib64/mutter-7/libmutter-cogl-pango-7.so.0.0.0
/usr/lib64/mutter-7/plugins
/usr/lib64/mutter-7/plugins/libdefault.so
/usr/share/doc/mutter3.38-libs
/usr/share/doc/mutter3.38-libs/NEWS
/usr/share/doc/mutter3.38-libs/README.md
/usr/share/licenses/mutter3.38-libs
/usr/share/licenses/mutter3.38-libs/COPYING
#########################################################################

[root@copper ~]# dnf whatprovides mutter3.38-libs
Last metadata expiration check: 0:18:54 ago on Mon 20 Jun 2022 21:51:22 BST.
mutter3.38-libs-3.38.5-2.fc35.i686 : Shared pibraries provided by mutter3.38
Repo        : fedora
Matched from:
Provide    : mutter3.38-libs = 3.38.5-2.fc35

mutter3.38-libs-3.38.5-2.fc35.x86_64 : Shared pibraries provided by mutter3.38
Repo        : fedora
Matched from:
Provide    : mutter3.38-libs = 3.38.5-2.fc35

mutter3.38-libs-3.38.6-1.fc35.i686 : Shared pibraries provided by mutter3.38
Repo        : updates
Matched from:
Provide    : mutter3.38-libs = 3.38.6-1.fc35

mutter3.38-libs-3.38.6-1.fc35.x86_64 : Shared pibraries provided by mutter3.38
Repo        : @System
Matched from:
Provide    : mutter3.38-libs = 3.38.6-1.fc35

mutter3.38-libs-3.38.6-1.fc35.x86_64 : Shared pibraries provided by mutter3.38
Repo        : updates
Matched from:
Provide    : mutter3.38-libs = 3.38.6-1.fc35
######################################################################

[root@copper ~]# rpm -qil libwacom-1.12.1-2.fc35.x86_64
Name        : libwacom
Version     : 1.12.1
Release     : 2.fc35
Architecture: x86_64
Install Date: Fri 25 Feb 2022 10:35:07 GMT
Group       : Unspecified
Size        : 88089
License     : MIT
Signature   : RSA/SHA256, Mon 31 Jan 2022 00:23:30 GMT, Key ID db4639719867c58f
Source RPM  : libwacom-1.12.1-2.fc35.src.rpm
Build Date  : Mon 31 Jan 2022 00:17:32 GMT
Build Host  : buildvm-x86-07.iad2.fedoraproject.org
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : https://github.com/linuxwacom/libwacom
Bug URL     : https://bugz.fedoraproject.org/libwacom
Summary     : Tablet Information Client Library
Description :
libwacom is a library that provides information about Wacom tablets and
tools. This information can then be used by drivers or applications to tweak
the UI or general settings to match the physical tablet.
/usr/bin/libwacom-list-local-devices
/usr/bin/libwacom-update-db
/usr/lib/.build-id
/usr/lib/.build-id/95
/usr/lib/.build-id/95/c95af5ed32f5d344db1da7090542d3d506e9df
/usr/lib/.build-id/d2
/usr/lib/.build-id/d2/a788612d26ab15b2a378db01b057d09666cf0e
/usr/lib64/libwacom.so.2
/usr/lib64/libwacom.so.2.6.1
/usr/share/doc/libwacom
/usr/share/doc/libwacom/README.md
/usr/share/licenses/libwacom
/usr/share/licenses/libwacom/COPYING
/usr/share/man/man1/libwacom-list-local-devices.1.gz

#######################################################################
[root@copper ~]# dnf whatprovides libwacom
Last metadata expiration check: 0:24:22 ago on Mon 20 Jun 2022 21:51:22 BST.
libwacom-1.12-1.fc35.i686 : Tablet Information Client Library
Repo        : fedora
Matched from:
Provide    : libwacom = 1.12-1.fc35

libwacom-1.12-1.fc35.x86_64 : Tablet Information Client Library
Repo        : fedora
Matched from:
Provide    : libwacom = 1.12-1.fc35

libwacom-1.12.1-2.fc35.i686 : Tablet Information Client Library
Repo        : updates
Matched from:
Provide    : libwacom = 1.12.1-2.fc35

libwacom-1.12.1-2.fc35.x86_64 : Tablet Information Client Library
Repo        : @System
Matched from:
Provide    : libwacom = 1.12.1-2.fc35

libwacom-1.12.1-2.fc35.x86_64 : Tablet Information Client Library
Repo        : updates
Matched from:
Provide    : libwacom = 1.12.1-2.fc35

So there is a x86_64 version of libwacom available with libwacom.so.2 that can be found locally installed by rpm but not from the repositories by dnf when looking for libwacom.so.2 as opposed to libwacom. 
# rpm -qil libwacom-1.12.1-2.fc35.x86_64
Name        : libwacom
Version     : 1.12.1
Release     : 2.fc35
Architecture: x86_64
Install Date: Fri 25 Feb 2022 10:35:07 GMT
Group       : Unspecified
Size        : 88089
License     : MIT
Signature   : RSA/SHA256, Mon 31 Jan 2022 00:23:30 GMT, Key ID db4639719867c58f
Source RPM  : libwacom-1.12.1-2.fc35.src.rpm
Build Date  : Mon 31 Jan 2022 00:17:32 GMT
Build Host  : buildvm-x86-07.iad2.fedoraproject.org
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : https://github.com/linuxwacom/libwacom
Bug URL     : https://bugz.fedoraproject.org/libwacom
Summary     : Tablet Information Client Library
Description :
libwacom is a library that provides information about Wacom tablets and
tools. This information can then be used by drivers or applications to tweak
the UI or general settings to match the physical tablet.
/usr/bin/libwacom-list-local-devices
/usr/bin/libwacom-update-db
/usr/lib/.build-id
/usr/lib/.build-id/95
/usr/lib/.build-id/95/c95af5ed32f5d344db1da7090542d3d506e9df
/usr/lib/.build-id/d2
/usr/lib/.build-id/d2/a788612d26ab15b2a378db01b057d09666cf0e
/usr/lib64/libwacom.so.2
/usr/lib64/libwacom.so.2.6.1
/usr/share/doc/libwacom
/usr/share/doc/libwacom/README.md
/usr/share/licenses/libwacom
/usr/share/licenses/libwacom/COPYING
/usr/share/man/man1/libwacom-list-local-devices.1.gz

[root@copper ~]# dnf repoquery --whatprovides libwacom
Last metadata expiration check: 0:29:04 ago on Mon 20 Jun 2022 21:51:22 BST.
libwacom-0:1.12-1.fc35.i686
libwacom-0:1.12-1.fc35.x86_64
libwacom-0:1.12.1-2.fc35.i686
libwacom-0:1.12.1-2.fc35.x86_64

[root@copper ~]# dnf repoquery --whatprovides libwacom.so.2
Last metadata expiration check: 0:28:15 ago on Mon 20 Jun 2022 21:51:22 BST.
libwacom-0:1.12-1.fc35.i686
libwacom-0:1.12.1-2.fc35.i686

looking at the files in these packages it is clear that libwacom-0:1.12.1-2.fc35.x86_64 appears to be empty!
### looking in version 1.12.1-2
[root@copper ~]# dnf repoquery --repo fedora -l libwacom-0:1.12.1-2.fc35.x86_64
Last metadata expiration check: 0:42:17 ago on Mon 20 Jun 2022 21:51:20 BST.

### looking in version 1.12-1
root@copper ~]# dnf repoquery --repo fedora -l libwacom-0:1.12-1.fc35.x86_64
Last metadata expiration check: 0:43:21 ago on Mon 20 Jun 2022 21:51:20 BST.
/usr/bin/libwacom-list-devices
/usr/bin/libwacom-list-local-devices
/usr/bin/libwacom-show-stylus
/usr/bin/libwacom-update-db
/usr/lib/.build-id
/usr/lib/.build-id/3f
/usr/lib/.build-id/3f/2d0a91418581b451d4994d6c075951bc0a0b42
/usr/lib/.build-id/a1
/usr/lib/.build-id/a1/2d81b4a5843f47af7667fdaff121772543164b
/usr/lib/.build-id/b2
/usr/lib/.build-id/b2/e72851a561e9ce0bfc4db1e399c3a9b8109972
/usr/lib64/libwacom.so.2
/usr/lib64/libwacom.so.2.6.1
/usr/share/doc/libwacom
/usr/share/doc/libwacom/README.md
/usr/share/licenses/libwacom
/usr/share/licenses/libwacom/COPYING
/usr/share/man/man1/libwacom-list-devices.1.gz
/usr/share/man/man1/libwacom-list-local-devices.1.gz

#but looking for specific files, they can be found!

[root@copper ~]# dnf repoquery --file /usr/lib/libwacom.so.2
Last metadata expiration check: 1:09:42 ago on Mon 20 Jun 2022 21:51:22 BST.
libwacom-0:1.12-1.fc35.i686
libwacom-0:1.12.1-2.fc35.i686
[root@copper ~]# dnf repoquery --file /usr/lib64/libwacom.so.2
Last metadata expiration check: 1:10:22 ago on Mon 20 Jun 2022 21:51:22 BST.
libwacom-0:1.12-1.fc35.x86_64
libwacom-0:1.12.1-2.fc35.x86_64

Comment 3 Fabio Valentini 2022-06-20 22:11:26 UTC
> Why is upgrading to fedora 36 x86_64 complaining about a missing fedora 35 i686 architecture file?

It's not, though. You're looking at the wrong metadata: 

> dnf whatprovides libwacom.so.2

This is the query specific to 32-bit libraries. The error output from dnf actually tells you the correct one:

> libwacom.so.2(LIBWACOM_0.33)(64bit)

Without the (64bit) suffix, you'll match the 32-bit package, which is not what you want.

> Further info on mutter3 dependency

The package is called mutter3.38, not mutter3. It provided an older version of mutter than the default for compatibility with Pantheon. However, it is no longer required and has been removed from Fedora (which is why you're getting this error now).

> dnf system-upgrade download --releasever=36

You don't need "--skip-broken", you need "--allowerasing".
That should remove "mutter3.38*" packages from your system on upgrade, because they are no longer needed, used, or indeed, present in Fedora 36 repositories.

Hope that helps.

Comment 4 Colin Barker 2022-06-20 22:15:53 UTC
Perfect! Many thanks you for your quick response and for explaining my misunderstanding.

(In reply to Fabio Valentini from comment #3)
> > Why is upgrading to fedora 36 x86_64 complaining about a missing fedora 35 i686 architecture file?
> 
> It's not, though. You're looking at the wrong metadata: 
> 
> > dnf whatprovides libwacom.so.2
> 
> This is the query specific to 32-bit libraries. The error output from dnf
> actually tells you the correct one:
> 
> > libwacom.so.2(LIBWACOM_0.33)(64bit)
> 
> Without the (64bit) suffix, you'll match the 32-bit package, which is not
> what you want.
> 
> > Further info on mutter3 dependency
> 
> The package is called mutter3.38, not mutter3. It provided an older version
> of mutter than the default for compatibility with Pantheon. However, it is
> no longer required and has been removed from Fedora (which is why you're
> getting this error now).
> 
> > dnf system-upgrade download --releasever=36
> 
> You don't need "--skip-broken", you need "--allowerasing".
> That should remove "mutter3.38*" packages from your system on upgrade,
> because they are no longer needed, used, or indeed, present in Fedora 36
> repositories.
> 
> Hope that helps.