Giter VIP home page Giter VIP logo

gentoo-overlay's People

Contributors

alarig avatar f0o avatar rzalamena avatar wesl-ee avatar yuxans avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gentoo-overlay's Issues

libyang and frr: bump ebuilds, recommended versions and todo

Summary

FRR and known good libyang versions:

FRR version libyang version
7.0 or less 0.16-r3
7.1 0.16-r3
7.2 0.16-r3
7.3 0.16-r3
7.4 0.16-r3 (maybe 1.0.167)
>7.4 1.0.167

TODOs

  • Use libyang 0.16-r3 in FRR 7.3 or lesser by default (I've run into some problems using newer versions).
  • Bump libyang ebuild to 1.0.167 (from 1.0.109).
  • Test new libyang 1.0.167 in FRR 7.4 before defaulting it there. (7.4 will use 0.16-r3 still)
  • FRR master will soon default to libyang 1.0.167 and will no longer use 0.16-r3 ( see FRRouting/frr#6376 )
  • Write FRR ebuilds that use watchfrr instead of routing daemons in init scripts/systemd
  • Add ebuild for FRR 7.3.1
  • Add ebuilds for FRR 7.4.
  • Implement OpenRC reload with frr-reload.py.

If anyone feels like doing any of the activities above, please let me know. I'll slowly work on these as I find time.

ebuild fails with systemd

frr-6 and frr-7 ebuilds fail with the following error:
OSError: [Errno 2] No such file or directory: '/var/tmp/portage/net-misc/frr-7.0/files/systemd/no.service'

Issue appears to be in src_install() function with usage of usex. Per ebuild(5):

usex <USE flag> [true output] [false output] [true suffix] [false suffix]
       If  USE  flag  is  set,  echo  [true output][true suffix] (defaults to "yes"), otherwise echo [false output][false suffix] (defaults to "no").

Since there is no false output provided, it defaults to "no". Suggest using empty string in false argument as workaround - $(usex bgp bgpd ""), etc.

frr should RDEPEND on dev-python/ipaddr

root@g17-rt-a:~ # rcfrr restart
 * Reloading FRR configuration ...
 *   Failed to reload (check /var/run/frr/reload.log)                                                                               [ ok ]
   [127]   root@g17-rt-a:~ # cat /var/run/frr/reload.log
Traceback (most recent call last):
  File "/usr/lib/frr/frr-reload.py", line 45, in <module>
    from ipaddr import IPv6Address, IPNetwork
ImportError: No module named ipaddr
root@g17-rt-a:~ # eix ipaddr
...
* dev-python/ipaddr
     Verfügbare Versionen:   2.2.0 {PYTHON_TARGETS="python2_7 python3_6 python3_7 python3_8"}
     Startseite:             https://github.com/google/ipaddr-py https://pypi.org/project/ipaddr/
     Beschreibung:           Python IP address manipulation library
...
3 Treffer
root@g17-rt-a:~ # emerge -1tav dev-python/ipaddr

Local copy of remote index is up-to-date and will be used.

 * IMPORTANT: 31 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.


Local copy of remote index is up-to-date and will be used.

These are the packages that would be merged, in reverse order:

Calculating dependencies... done!
[ebuild  N     ] dev-python/ipaddr-2.2.0::gentoo  PYTHON_TARGETS="python2_7 python3_7 -python3_6 -python3_8" 26 KiB

Total: 1 package (1 new), Size of downloads: 26 KiB

Would you like to merge these packages? [Yes/No]
>>> Verifying ebuild manifests
>>> Emerging (1 of 1) dev-python/ipaddr-2.2.0::gentoo
>>> Installing (1 of 1) dev-python/ipaddr-2.2.0::gentoo
>>> Jobs: 1 of 1 complete                           Load avg: 0.37, 0.26, 0.20
>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.

 * GNU info directory index is up-to-date.

   [1]   root@g17-rt-a:~ # rcfrr restart
 * Reloading FRR configuration ...                                                                                                  [ ok ]
root@g17-rt-a:~ #

revise CI

the CI should've failed for #2 however it didnt.

I suspect the subshell not returning correct exit codes.

net-misc/frr: compilation failure

I tried to build net-misc/frr-7.1-r1 but it is failing in my Gentoo stable.

Compilation error message:

pimd/pim_register.c: In function ‘pim_register_join’:                                                                                                                                                                                          
pimd/pim_register.c:64:41: error: ‘TRUE’ undeclared (first use in this function)                                                                                                                                                               
   64 |  pim_vxlan_update_sg_reg_state(pim, up, TRUE /*reg_join*/);                                                                                                                                                                            
      |                                         ^~~~                                                                                                                                                                                           
pimd/pim_register.c:64:41: note: each undeclared identifier is reported only once for each function it appears in                                                                                                                              
pimd/pim_register.c: In function ‘pim_register_stop_recv’:                                                                                                                                                                                     
pimd/pim_register.c:151:4: error: ‘FALSE’ undeclared (first use in this function)                                                                                                                                                              
  151 |    FALSE /*reg_join*/);                                                                                                                                                                                                                
      |    ^~~~~                                                                                                                                                                                                                               

This problem was recently fixed in upstream (related FRRouting/frr#6208 , FRRouting/frr#6209). Basically json-c upstream removed some macro booleans and some code in FRR was expecting it, the FRR fix was to migrate all booleans to stdbool format but I think the PRs are scattered.

I'm not sure how to fix this: patch files, downgrade json-c or just wait for new FRR ebuild...

Rethink CI's scope

It's taking well over 4h now for a PR.

This is inefficient. I suggest moving the CI to the basics, being x86 hardened and amd64 hardened-nomultilib. If it compiles fine there, it should compile fine on the normal stage3 as well.

The ebuild doesn’t install correctly the init scripts

All the scripts are linked to zebra, but zebra is linked to itself:

rr2 ~ # file /etc/init.d/ospfd
/etc/init.d/ospfd: broken symbolic link to zebra
rr2 ~ # file /etc/init.d/bgpd 
/etc/init.d/bgpd: broken symbolic link to zebra
rr2 ~ # file /etc/init.d/zebra 
/etc/init.d/zebra: broken symbolic link to zebra

cmake-utils is deprecated

#   net-libs/libyang/libyang-0.16.104.ebuild: line 6: please migrate from 'cmake-utils' to 'cmake'
#   net-libs/libyang/libyang-1.0.109.ebuild: line 6: please migrate from 'cmake-utils' to 'cmake'
#   net-libs/libyang/libyang-1.0.167.ebuild: line 6: please migrate from 'cmake-utils' to 'cmake'
#   net-libs/libyang/libyang-9999.ebuild: line 6: please migrate from 'cmake-utils' to 'cmake'
#   net-libs/rtrlib/rtrlib-0.5.0.ebuild: line 6: please migrate from 'cmake-utils' to 'cmake'
#   net-libs/rtrlib/rtrlib-0.6.0.ebuild: line 6: please migrate from 'cmake-utils' to 'cmake'
#   net-libs/rtrlib/rtrlib-0.6.1.ebuild: line 6: please migrate from 'cmake-utils' to 'cmake'
#   net-libs/rtrlib/rtrlib-0.6.2.ebuild: line 6: please migrate from 'cmake-utils' to 'cmake'
#   net-libs/rtrlib/rtrlib-0.6.3.ebuild: line 6: please migrate from 'cmake-utils' to 'cmake'
#   net-libs/rtrlib/rtrlib-9999.ebuild: line 6: please migrate from 'cmake-utils' to 'cmake'

user.eclass could not be found by inherit()

user.eclass was removedyesterday, gentoo/gentoo@dd1ebe4
looks like some Ebuilds have to be touched, a lot of newer versions are missing, anyway.

 *   user.eclass could not be found by inherit()
 *
 * Call stack:
 *           ebuild.sh, line 614:  Called source '/var/db/repos/frr-gentoo/net-misc/frr/frr-7.1-r2.ebuild'
 *   frr-7.1-r2.ebuild, line   6:  Called inherit 'autotools' 'eutils' 'flag-o-matic' 'multilib' 'pam' 'readme.gentoo-r1' 'systemd' 'tmpfiles' 'user' 'vcs-snapshot'
 - *           ebuild.sh, line 259:  Called die
 * The specific snippet of code:
 *   		[[ -z ${location} ]] && die "${1}.eclass could not be found by inherit()"
 *

Thanks a lot for this great piece of software.

Deprecate old releases

I think we should at most keep the last 3 recent releases and drop all the old stuff to de-clutter this.

I dont even know if the old releases compile correctly anymore, altho they should

How to cross-compile?

Hi, I'm wondering if you have any previous experience with cross-compilation of frr.
I'm trying to build this using crossdev wrapper scripts, but I'm hitting issues, I tried to modify frr ebuild to do out-of-source builds, but no luck so far. If you have any pointers/tips for cross-compilation it would be greatly appreciated.
Thanks 😃

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.