osrg / gobgp

BGP implemented in the Go Programming Language
https://osrg.github.io/gobgp/
Apache License 2.0
3.59k stars 684 forks source link

Official deb and rpm packages #2654

Open pavel-odintsov opened 1 year ago

pavel-odintsov commented 1 year ago

Hello!

Thank you for your effort in maintaining and developing GoBGP.

We can see very solid interest from network community in GoBGP as it has very unique position of developer friendly BGP daemon.

To simplify deployment for clients which use GoBGP with FastNetMon we bundle it as part of our own deb and rpm packages.

This approach works for us but it's far from ideal as it mixes two unrelated tools in same package and leads to us using too old versions of GoBGP for very long time as we had to update it manually.

To address such suboptimality would be great to have official rpm / deb packages for x86_64 Linux builds for GoBGP.

As one approach to build rpm / deb without going into all details about implementation of each packaging formats you may look on: https://fpm.readthedocs.io/en/v1.15.1/

As more comprehensive approach you may look on OSS offerings for Package Cloud: https://blog.packagecloud.io/packagecloud-loves-oss/

If you have people able to work on it we will be happy to fund their time.

Thank you!

pavel-odintsov commented 1 year ago

I found way better options which can create rpm / deb packages for Go app in a matter of minutes: https://nfpm.goreleaser.com/ Just tried it for our internal project and it worked just fine

pavel-odintsov commented 1 year ago

Example manifest for GoBGP may be something like this:

name: "gobgp"
arch: "amd64"
platform: "linux"
version: "v1.0.0"
section: "default"
priority: "extra"
provides:
- gobgp
maintainer: "NTT Engineering <engineering@ntt.com>"
description: "GoBGP is a modern BGP daemon"
vendor: "NTT"
homepage: "https://medium.com/nttlabs"
license: "Apache2"
changelog: "changelog.yaml"
contents:
- src: ./bin/gobgp
  dst: /usr/bin/gobgp
- src: ./bin/gobgpd
  dst: /usr/bin/gobgpd
- src: ./gobgp.conf
  dst: /etc/gobgp.conf
  type: config
fujita commented 1 year ago

Some Linux distributions already have GoBGP packages? What distributions you think about?

pavel-odintsov commented 1 year ago

Thank you for feedback!

I think about all distros actually as even in case when distro ships GoBGP in official repos it may be outdated and packaged upstream version will be beneficial.

At FastNetMon we do offer both official / latest versions directly from our web site and we do ship it to official repos in variety of Linux distros.

I just checked all major Linux distros and I think that lack of Fedora support may be quite significant gap as plenty of network operating systems use it as base: https://packages.fedoraproject.org/search?query=gobgp

There is a nice service which helps with version tracking of different packages in different distros. You may find nice image below.

GoBGP upstream distro packaging status