Fedora 33 broken dependencies

I am running Fedora 33, but am using the F32 repo as there doesn’t appear to be one for F33.
I have just started to pick up this error:

Last metadata expiration check: 0:04:19 ago on Wed 25 Nov 2020 09:03:45.

Dependencies resolved.

Problem: package seadrive-daemon-2.0.6-1.fc33.x86_64 requires libsearpc.so.1()(64bit), but none of the providers can be installed

  • cannot install both libsearpc-3.1-18.fc33.x86_64 and libsearpc-3.2.0-1.x86_64
  • cannot install the best update candidate for package seadrive-daemon-2.0.6-1.x86_64
  • cannot install the best update candidate for package libsearpc-3.2.0-1.x86_64
    ========================================================================================================================================================================
    Package Architecture Version Repository Size
    ========================================================================================================================================================================
    Skipping packages with conflicts:
    (add ‘–best --allowerasing’ to command line to force their upgrade):
    libsearpc x86_64 3.1-18.fc33 fedora 42 k
    Skipping packages with broken dependencies:
    seadrive-daemon x86_64 2.0.6-1.fc33 updates 164 k

Transaction Summary

Skip 2 Packages

Nothing to do.
Complete!

I have just noticed that Fedora 31 is still supported, but F31 reached end-of-life yesterday - 24 November 2020.

That would be my fault, I guess. Sorry for inconvenience.

Fedora now ships open-source version of SeaDrive as seadrive-daemon and seadrive-gui packages. Due to a differences in package names and RPM build process, those packages are conflicting with the ones from SeaDrive official repo and causing the error you’re observing.

I haven’t considered that and thus there’s no automatic upgrade to Fedora versions of the packages. Here’s the manual steps you can take to fix that:

If you prefer the versions available in Fedora repositories:

  1. seafile and seadrive repositories would cause conflicts with Fedora packages and should be disabled:

    dnf install -y 'dnf-command(config-manager)'
    dnf config-manager --disable seafile seadrive
    
  2. Verify that there are no excludepkgs= entries containing libsearpc, seadrive-daemon, seadrive-gui, seafile, seafile-client in the following files:

    /etc/yum.repos.d/fedora.repo
    /etc/yum.repos.d/fedora-updates.repo
    /etc/yum.repos.d/fedora-updates-testing.repo
    Modify files to remove the packages listed above from excludepkgs if necessary.

  3. Remove client packages previously installed from seafile and seadrive repositories.

    dnf erase -y seafile seafile-daemon seadrive seadrive-daemon libsearpc
    
  4. Install Seafile and SeaDrive clients from Fedora repository

    dnf install -y seafile-client seadrive-gui
    

If you prefer packages from SeaDrive/Seafile official repos:

  1. Configure repositories as described for Seafile and SeaDrive.
  2. Packages from these repositories could conflict with the ones provided by Fedora. Following commands would prevent installation of packages from Fedora repos:
    dnf install -y 'dnf-command(config-manager)'
    for repo in fedora updates updates-testing; do
        dnf config-manager --save --setopt $repo.excludepkgs=libsearpc,seadrive-daemon,seadrive-gui,seafile,seafile-client
    done
    
    Note: if you have previously added package exclusion rules that you want to preserve, you may need to edit repository configuration files manually. dnf config-manager always completely overwrites excludepkgs entry.
  3. Remove client packages previously installed from Fedora repositories.
    dnf erase -y seafile seafile-daemon seadrive seadrive-daemon libsearpc
    
  4. Install the client packages you need
    dnf install seafile seadrive
    

Mixing official and Fedora community packages

It is not recommended, but you can install one of the clients from the official repository provided by Seafile developers and the other from Fedora:

  1. Configure repositories as described for Seafile or SeaDrive.
  2. Ensure that libsearpc will be installed from Fedora repos:
    dnf config-manager --save --setopt seafile.excludepkgs=libsearpc
    dnf config-manager --save --setopt seadrive.excludepkgs=libsearpc
    dnf distro-sync -y libsearpc
    
    Note: The last command may fail if you have previously added excludepkgs rule for libsearpc from Fedora repos. Please, address that before continuing.
  3. To install Seafile from the official repository:
    dnf erase -y seafile seafile-client
    for repo in fedora updates updates-testing; do
       dnf config-manager --save --setopt $repo.excludepkgs=seafile,seafile-client
    done
    dnf install -y seafile
    
    Note: if you have previously added package exclusion rules that you want to preserve, you may need to edit repository configuration files manually. dnf config-manager always completely overwrites excludepkgs entry.
  4. To install SeaDrive from the official repository:
    dnf erase -y seadrive-daemon seadrive-gui
    for repo in fedora updates updates-testing; do
       dnf config-manager --save --setopt $repo.excludepkgs=seadrive-daemon,seadrive-gui
    done
    dnf install -y seadrive
    
1 Like

Thanks! I’ll try it out

Thank you very much for making SeaDrive available through the official repositories. This imho is the preferred variant with Fedora and also increases the chance a new build is available when a new version of Fedora is released (every 6 month).

Perhaps you could also update the documentation please?
https://download.seafile.com/published/seafile-user-manual/drive_client/drive_client_for_linux.md

OK, so here’s what happened. As you can see, the problem persists:

[mike@constellation ~]$ sudo dnf config-manager --disable seadrive
[sudo] password for mike:
[mike@constellation ~]$ sudo dnf distro-sync libsearpc seadrive-daemon
Fedora Modular 33 - x86_64 - Updates 17 kB/s | 34 kB 00:01
Fedora Modular 33 - x86_64 - Updates 17 kB/s | 42 kB 00:02
Fedora 33 - x86_64 - Updates 25 kB/s | 29 kB 00:01
Fedora 33 - x86_64 - Updates 90 kB/s | 418 kB 00:04
Last metadata expiration check: 0:00:01 ago on Fri 27 Nov 2020 11:18:33.
No package seadrive-daemon installed.
Error:
Problem: package seadrive-daemon-2.0.6-1.fc33.x86_64 requires libsearpc.so.1()(64bit), but none of the providers can be installed

  • libsearpc-3.1-18.fc33.x86_64 does not belong to a distupgrade repository
  • problem with installed package seadrive-daemon-2.0.6-1.fc33.x86_64
  • package libsearpc-3.1-18.fc33.x86_64 is filtered out by exclude filtering
    (try to add ‘–skip-broken’ to skip uninstallable packages)

[mike@constellation ~]$ sudo dnf swap seadrive seadrive-gui
Last metadata expiration check: 0:00:46 ago on Fri 27 Nov 2020 11:18:33.
No match for argument: seadrive
No packages marked for removal.
Package seadrive-gui-2.0.7-1.fc33.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
[mike@constellation ~]$ sudo dnf update -y
Last metadata expiration check: 0:00:59 ago on Fri 27 Nov 2020 11:18:33.
Dependencies resolved.

Problem: cannot install both libsearpc-3.2.0-1.x86_64 and libsearpc-3.1-18.fc33.x86_64

  • package seadrive-daemon-2.0.6-1.fc33.x86_64 requires libsearpc.so.1()(64bit), but none of the providers can be installed
  • cannot install the best update candidate for package libsearpc-3.1-18.fc33.x86_64
  • problem with installed package seadrive-daemon-2.0.6-1.fc33.x86_64
  • package libsearpc-3.1-18.fc33.x86_64 is filtered out by exclude filtering
    ========================================================================================================================================================================
    Package Architecture Version Repository Size
    ========================================================================================================================================================================
    Skipping packages with conflicts:
    (add ‘–best --allowerasing’ to command line to force their upgrade):
    libsearpc x86_64 3.2.0-1 seafile 74 k

Transaction Summary

Skip 1 Package

Nothing to do.
Complete!
[mike@constellation ~]$

This line means that you have excludepkgs=libsearpc in /etc/yum.repos.d/fedora.repo or /etc/yum.repos.d/fedora-updates.repo (or both). It shouldn’t be there if you are trying to install the package from Fedora repos.

Now this is what happens when I try to install Seafile:

Error: Transaction test error:

file /usr/bin/seaf-cli from install of seafile-7.0.10-1.fc33.x86_64 conflicts with file from package seafile-daemon-7.0.10-1.x86_64
file /usr/bin/seaf-daemon from install of seafile-7.0.10-1.fc33.x86_64 conflicts with file from package seafile-daemon-7.0.10-1.x86_64
file /usr/lib64/libseafile.so.0.0.0 from install of seafile-7.0.10-1.fc33.x86_64 conflicts with file from package seafile-daemon-7.0.10-1.x86_64

I think I’ll go back to Debian.

@alebastr Thank you for that. We’ll update our documentation about the official repository.

2 Likes

Ouch. That’s another difference in the official packages and Fedora ones. In the official repository these packages are called seafile-daemon and seafile (GUI client). In Fedora seafile is a daemon package and GUI client package is named seafile-client.
Nothing I can change as the names were chosen way before I gained commit access to Fedora packages :frowning:

Note that Fedora repository packages are maintained by Fedora community completely independent from Seafile developers and adhere to a different set of packaging rules mandated by the distribution. That’s why there are all these differences and incompatibilities.


I updated my previous post and hopefully now it should have enough information to fix this error.

2 Likes

Thanks alebastr for all your help!
I’ve decided to abandon Fedora because it’s just more trouble than it’s worth! I’ve had issues before and never seem to learn! I have it running great (as I did Fedora 32) and a new version comes out… I install it… and things break.
So, I’ve reinstalled Debian Buster, and everything works as it should! And, because it’s Debian, it will work next week too!
Thanks again!

Which trouble are you talking about?

Just run sudo dnf install seafile-client seadrive-gui and everything is fine. If you also need cli run sudo dnf install seafile.

Packages in official Fedora repositories:

seafile-client = Seafile Client
seadrive-gui   = SeaDrive
seafile        = Seafile CLI

wow! is that all I have to do?