Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RPM packages should have versioned dependency on libyang #17864

Open
2 tasks done
toreanderson opened this issue Jan 16, 2025 · 0 comments
Open
2 tasks done

RPM packages should have versioned dependency on libyang #17864

toreanderson opened this issue Jan 16, 2025 · 0 comments
Labels
triage Needs further investigation

Comments

@toreanderson
Copy link
Contributor

toreanderson commented Jan 16, 2025

Description

The version of libyang that ships with el9, at least clones such as AlmaLinux 9, is too old to be used with FRR, however the FRR package at https://rpm.frrouting.org/ does not declare a versioned dependency that ensures that libyang gets upgraded to the compatible version shipped from the FRR third-party repo.

This makes any attempts to run FRR binaries to fail like so:

$ vtysh
vtysh: symbol lookup error: /lib64/libfrr.so.0: undefined symbol: ly_strvecode

Version

$ rpm -q libyang frr
libyang-2.0.7-2.el9.x86_64
frr-10.2.1-01.el9.x86_64

How to reproduce

  1. Install an el9 clone such as AlmaLinux 9
  2. Install FRR (or just libyang) from the upstream repos: dnf install frr (you'll get FRR v8.5.3-4.el9 this way)
  3. Enable the frr-latest repo following the instructions at https://rpm.frrouting.org/
  4. Upgrade/install FRR following the instructions at https://rpm.frrouting.org/ (essentally just dnf install frr)

Expected behavior

Everything works as before, just with a newer version of FRR.

Actual behavior

FRR fails to start:

$ journalctl -u frr -o cat
Starting watchfrr with command: '  /usr/lib/frr/watchfrr  -d  -F traditional   zebra mgmtd staticd'
/usr/lib/frr/watchfrr: symbol lookup error: /lib64/libfrr.so.0: undefined symbol: ly_strvecode
Failed to start watchfrr!

Same thing when trying to run vtysh:

$ vtysh
vtysh: symbol lookup error: /lib64/libfrr.so.0: undefined symbol: ly_strvecode

Additional context

To recover, manually upgrade libyang to the version included in the third-party FRR repo, using dnf install libyang (assuming there is a working network connection at this point 😬).

#15372 is essentially a duplicate, only about the Debian packages.

@mwinter-osr versioned the build dependency on libyang in 81d63e4, but this does not appear to be inherited by the binary RPM packages, which only contains the following:

$ rpm -q --requires frr | grep yang
libyang.so.2()(64bit)

Checklist

  • I have searched the open issues for this bug.
  • I have not included sensitive information in this report.
@toreanderson toreanderson added the triage Needs further investigation label Jan 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
triage Needs further investigation
Projects
None yet
Development

No branches or pull requests

1 participant