zerotier / ZeroTierOne

A Smart Ethernet Switch for Earth
https://zerotier.com
Other
14.63k stars 1.71k forks source link

zerotier-one update fails on fedora 35 due to broken dependencies #1575

Open ijanos opened 2 years ago

ijanos commented 2 years ago

What you expect to be happening.

I ran dnf update on a fedora 35 box and I expected it to run successfully.

What is actually happening?

The zerotier-one packages has broken dependencies.

Any steps to reproduce the error.

Add the zerotier repo to a fedora 35 install and try installing it.

$ cat /etc/yum.repos.d/zerotier.repo 
[zerotier]
name=ZeroTier RPM Repository
baseurl= http://download.zerotier.com/redhat/fc/$releasever
enabled=1
gpgcheck=1
gpgkey=https://download.zerotier.com/contact@zerotier.com.gpg
enabled=1

What operating system and ZeroTier version. Please try the latest ZeroTier release.

Fedora 35 linux.

$ sudo dnf update
Last metadata expiration check: 2:20:56 ago on Fri 04 Mar 2022 08:07:08 AM CET.
Dependencies resolved.

 Problem: cannot install the best update candidate for package zerotier-one-1.8.4-1.el7.x86_64
  - nothing provides libcrypto.so.10()(64bit) needed by zerotier-one-1.8.5-1.el7.x86_64
  - nothing provides libcrypto.so.10(OPENSSL_1.0.1_EC)(64bit) needed by zerotier-one-1.8.5-1.el7.x86_64
  - nothing provides libcrypto.so.10(OPENSSL_1.0.2)(64bit) needed by zerotier-one-1.8.5-1.el7.x86_64
  - nothing provides libcrypto.so.10(libcrypto.so.10)(64bit) needed by zerotier-one-1.8.5-1.el7.x86_64
  - nothing provides libssl.so.10()(64bit) needed by zerotier-one-1.8.5-1.el7.x86_64
  - nothing provides libssl.so.10(libssl.so.10)(64bit) needed by zerotier-one-1.8.5-1.el7.x86_64
=================================================================================================================
 Package                      Architecture           Version                      Repository                Size
=================================================================================================================
Skipping packages with broken dependencies:
 zerotier-one                 x86_64                 1.8.5-1.el7                  zerotier                 4.9 M

Transaction Summary
=================================================================================================================
Skip  1 Package

Nothing to do.
Complete!
rjmalagon commented 2 years ago

My Fedora 35 server already upgrade to 1.8.5. My system has libcrypto.so.10. Give a look at your repos, could be something tangled there.

adamierymenko commented 2 years ago

We are in the process of updating the RPM packages to make the dependency list a little more universal. Give it about an hour if you are having issues and try again. It's hard to make packages for a million little distributions...

timroster commented 2 years ago

I noted a dependency issue creep in today on Rocky Linux 8.5 after installing zerotier-one-1.8.5-1.el7.x86_64 with a missing libssl.so.10.

Looks like for Rocky Linux that compat-openssl10 resolves the issue.

proletarius101 commented 2 years ago

This, however, results in

> sudo zerotier-cli listpeers

zerotier-cli: error while loading shared libraries: libssl.so.10: cannot open shared object file: No such file or directory

in Fedora 35.

Maybe Fedora users should switch to the zerotier in RPMFusion

divinitus commented 2 years ago

Devs, why did you stop publishing src.rpm along with binaries?

divinitus commented 2 years ago

Also why do you build ONE package for several different releases of rpm based distributions? There should be different pakages for EL6 EL7 eL8 and FC3x. Those systems are not the same.

cosmedd commented 2 years ago

It's hard to make packages for a million little distributions...

That's an exaggeration plus the fact that it is a task that can be easily automated.

By the way, the problem is still happening with Fedora 35

divinitus commented 2 years ago

It's hard to make packages for a million little distributions...

That's an exaggeration plus the fact that it is a task that can be easily automated.

By the way, the problem is still happening with Fedora 35

Exactly. Having ONE specfile that can be used to build three major systems is no-brainer. Besides Fedora is not a little distribution by any measure. Having proper packages for EL7/EL8 and current F35 should not be a big issue.

timroster commented 2 years ago

I looked at how the installer script is setting up the yum repos and there's a few things going awry that should be straightfoward to fix. For Fedora, it's probably better for the 28 (first upstream release for rhel8) and beyond http://download.zerotier.com/redhat/fc/28/ to be populated with the el8-based 1.8.5 rpms.

The problem I caught with Rocky was that the installer doesn't have a matcher for Rocky (just centos and "enterprise") so I was getting the el7 - based yum repo which was ok on 1.8.4 and is not ok on 1.8.5. I'm going to create a new issue for this as it's a different problem from the Fedora dependencies

kalaklanar commented 2 years ago

Zerotier - changing your internal build script to link f35 and later (for now, at least) contents to use the el8 packages will have this issue fixed. Relying on a copatability library years after it was introduced is never a good aidea, as it will (and apparently has) eventually break on newer systems. That package was orphaned back in 2019. see Bug 1673419 - compat-openssl10-devel is AWOL]

Until the build scripts are fixed, us users can run this to download the el8 rpm, reinstall, and restart (in case it is actually working as it was a week or so ago): sudo rpm --reinstall https://download.zerotier.com/redhat/el/8.9/zerotier-one-1.8.5-1.el8.x86_64.rpm && systemctl restart zerotier-one

adamierymenko commented 2 years ago

Good catch -- will update install.zerotier.com with next release too.

adamierymenko commented 2 years ago

Actually for 1.8.6 I updated our deploy files to symlink fc28 onward to el8 instead of el7. This should work AFAIK.

adamierymenko commented 2 years ago
mkdir fc
cd fc
for n in `seq 16 27`; do
        ln -sf ../el/7 $n
done
for n in `seq 28 99`; do
        ln -sf ../el/8 $n
done
cd ..
JDPerf commented 2 years ago

We are in the process of updating the RPM packages to make the dependency list a little more universal. Give it about an hour if you are having issues and try again. It's hard to make packages for a million little distributions...

Well then maybe you guys should consider updating the ZeroTier snap with every release so users could still take advantage of the new features/fixes in releases without having to roll-back if dependency issues come up. If so then could include the Snap Store on the Download page too.

adamierymenko commented 2 years ago

1.8.6 is in progress which should fix this and contains a few other fixes.

cosmedd commented 2 years ago

If you are still having problems with 1.8.6 on Fedora 35 make sure you have updated your repository:

[root@sniper cosme]# cat /etc/yum.repos.d/zerotier.repo 
[zerotier]
name=ZeroTier, Inc. RPM Release Repository
baseurl=http://download.zerotier.com/redhat/fc/35
enabled=1
gpgcheck=1
huang-jy commented 2 years ago

An additional tip. You can use the convenience script to install, but you need to remove the zerotier first, otherwise it won't regenerate the dnf/yum repo

sudo dnf remove -y zerotier-one
curl -s 'https://raw.githubusercontent.com/zerotier/ZeroTierOne/master/doc/contact%40zerotier.com.gpg' | gpg --import && if z=$(curl -s 'https://install.zerotier.com/' | gpg); then echo "$z" | sudo bash; fi
stefanfoulis commented 2 years ago

I just did a fresh install of Fedora 36 today (2022-03-30) and ran into this issue too. I ended up using https://copr.fedorainfracloud.org/coprs/atim/zerotier-one/ instead, which worked.

Segment0895 commented 2 years ago

Again? FYI the contents of zerotier.repo should have been updated to:

[zerotier]
name=ZeroTier, Inc. RPM Release Repository
baseurl=http://download.zerotier.com/redhat/fc/35
enabled=1
gpgcheck=1
proletarius101 commented 2 years ago

I just did a fresh install of Fedora 36 today (2022-03-30) and ran into this issue too. I ended up using https://copr.fedorainfracloud.org/coprs/atim/zerotier-one/ instead, which worked.

You may prefer the one provided by rpmfusion which is more maintained.

cosmedd commented 2 years ago

As far as I know, Fedora 36 is still a beta:

https://communityblog.fedoraproject.org/fedora-linux-36-development-schedule/

divinitus commented 2 years ago

I just did a fresh install of Fedora 36 today (2022-03-30) and ran into this issue too. I ended up using https://copr.fedorainfracloud.org/coprs/atim/zerotier-one/ instead, which worked.

You may prefer the one provided by rpmfusion which is more maintained.

actually rpmfusion has only 1.8.4.

aaylnx commented 2 years ago

I just did a fresh install of Fedora 36 today (2022-03-30) and ran into this issue too. I ended up using https://copr.fedorainfracloud.org/coprs/atim/zerotier-one/ instead, which worked.

This worked for me on Kinoite 35. Thank you. Hopefully the official repo will be working soon.

proletarius101 commented 2 years ago

As far as I know, Fedora 36 is still a beta:

https://communityblog.fedoraproject.org/fedora-linux-36-development-schedule/

Software should always be prepared of new OS release ahead of time. Otherwise you will literally break users' system as soon as they upgrade their OS.

kalaklanar commented 2 years ago

Can you move Fedora Betas to a different issue? Since things are changing with Betas, it's early for those of us running release to get through bugs for that.

kalaklanar commented 2 years ago

Zereotier needs to just update the scripts they use to make their download directories to point to the appropriate directory (el8 for fedora 20+) and use the following for all the fedora zerotier.repo files:

[zerotier] name=ZeroTier, Inc. RPM Release Repository baseurl=http://download.zerotier.com/redhat/fc/f$releasever enabled=1 gpgcheck=1

This is how most .repo files are, including the officia repos (without the "f" in the final string, but meh.)

I'd put in a PR, but the scripts to create the http://download.zerotier.com/redhat/fc/f35 directory aren't available publically.

This is a simple fix for the issues here: Can someone @zerotier get on this?

moshhh commented 2 years ago

I've had the same issue today with Alma 8.5, basically a fresh install.

Used the curl script from the main page.: /usr/sbin/zerotier-one: error while loading shared libraries: libssl.so.10: cannot open shared object file: No such file or directory

I had to install compat-openssl10 to fix this issue.

DemonicTutor commented 2 years ago

same thing happening on fedora core 36