]> git.puffer.fish Git - mirror/frr.git/commitdiff
debian: Add option to build pkg with grpc support
authorMartin Winter <mwinter@opensourcerouting.org>
Wed, 15 May 2024 08:32:33 +0000 (10:32 +0200)
committerMartin Winter <mwinter@opensourcerouting.org>
Thu, 20 Jun 2024 10:14:48 +0000 (12:14 +0200)
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
debian/control
debian/copyright
debian/frr-grpc.install [new file with mode: 0644]
debian/rules
doc/developer/packaging-debian.rst

index 12b80a77f362f1678254d5a1a661b1eaed35f5e0..4a02a36b71d1eda48d9401a21f2ee5489c7b4f38 100644 (file)
@@ -33,7 +33,11 @@ Build-Depends: bison,
                python3-sphinx:native,
                texinfo (>= 4.7),
                lua5.3 <pkg.frr.lua>,
-               liblua5.3-dev <pkg.frr.lua>
+               liblua5.3-dev <pkg.frr.lua>,
+              libgrpc-dev (>=1.16.1) <pkg.frr.grpc>,
+              libgrpc++-dev (>=1.16.1) <pkg.frr.grpc>,
+              protobuf-compiler (>=3.6.1) <pkg.frr.grpc>,
+              protobuf-compiler-grpc (>=1.16.1) <pkg.frr.grpc>
 Standards-Version: 4.5.0.3
 Homepage: https://www.frrouting.org/
 Vcs-Browser: https://github.com/FRRouting/frr/tree/debian/master
@@ -136,3 +140,13 @@ Description: FRRouting suite - Python tools
  .
  Without this package installed, "reload" (as a systemd or init script
  invocation) will not work for the FRR daemons.
+
+Package: frr-grpc
+Architecture: linux-any
+Depends: frr (= ${binary:Version}),
+         ${misc:Depends},
+        ${shlibs:Depends}
+Description: FRRouting suite - GRPC interface
+ This provides the GRPC interface to the daemons.
+Build-Profiles: <pkg.frr.grpc>
+
index edd73020bd22a178991406c987355c1894d19729..e1a944b338ad793b85fefbe338ca96c46a15671a 100644 (file)
@@ -4,6 +4,13 @@ Upstream-Contact: maintainers@frrouting.org, security@frrouting.org
 Source: https://www.frrouting.org/
 
 Files: *
+Comment: Note: GPL Versions of FRR binaries
+    If GRPC module is installed then please be aware that the
+    combination of the GRPC (licensed under Apache License) and 
+    FRR (Licensed under GPLv2+) will force the resulting grpc 
+    modules and related binaries to GPLv3
+    Impacted binary files: frr/libfrrgrpc_pb.* frr/modules/grpc.so
+    FRR built or used without GRPC is not impacted
 Copyright: 1996-2003 by the original Zebra authors:
     Kunihiro Ishiguro <kunihiro@zebra.org>
     Toshiaki Takada <takada@zebra.org>
@@ -377,6 +384,24 @@ License: LGPL-2.1+
  License version 2.1 can be found in the file
  `/usr/share/common-licenses/LGPL-2.1'.
 
+License: GPL-3
+ This package is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+ .
+ This package is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this package; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ .
+ On Debian systems, the complete text of the GNU General
+ Public License can be found in `/usr/share/common-licenses/GPL-3'.
+
 License: BSD-0-clause
  Redistribution and use in source and binary forms, with or without
  modification, are permitted.
diff --git a/debian/frr-grpc.install b/debian/frr-grpc.install
new file mode 100644 (file)
index 0000000..d006439
--- /dev/null
@@ -0,0 +1,2 @@
+usr/lib/*/frr/libfrrgrpc_pb.*
+usr/lib/*/frr/modules/grpc.so
index 0f841457180e7b9aac50772cb9a15b7b3eadc962..ec8f92f755f6576385b7ec6e0490effd2aeea826 100755 (executable)
@@ -33,6 +33,12 @@ else
   CONF_PIM6=--disable-pim6d
 endif
 
+ifeq ($(filter pkg.frr.grpc,$(DEB_BUILD_PROFILES)),)
+  CONF_GRPC=--disable-grpc
+else
+  CONF_GRPC=--enable-grpc
+endif
+
 export PYTHON=python3
 
 %:
@@ -51,6 +57,7 @@ override_dh_auto_configure:
                $(CONF_RPKI) \
                $(CONF_LUA) \
                $(CONF_PIM6) \
+               $(CONF_GRPC) \
                --with-libpam \
                --enable-doc \
                --enable-doc-html \
index c2c3b7e7e1eba9050ce898c55b24e02decd6e32a..4109057ee5e508b0c0c5ce2174758ee74786acca 100644 (file)
@@ -68,6 +68,8 @@ buster.)
      +----------------+-------------------+-----------------------------------------+
      | pkg.frr.pim6d  | pkg.frr.nopim6d   | builds pim6d (default enabled)          |
      +----------------+-------------------+-----------------------------------------+
+     | pkg.frr.grpc   | pkg.frr.nogrpc    | builds with grpc support (default: no)  |
+     +----------------+-------------------+-----------------------------------------+
 
    * the ``-uc -us`` options to disable signing the packages with your GPG key