import debianpkg directory as debian

This commit is contained in:
Alexandre Derumier 2018-10-16 05:46:40 +02:00 committed by Rhonda D'Vine
parent cdbe233c1c
commit bf0248730f
67 changed files with 3017 additions and 0 deletions

1
debian/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
changelog

47
debian/Makefile.am vendored Normal file
View File

@ -0,0 +1,47 @@
EXTRA_DIST = README.Debian README.Maintainer \
changelog compat control copyright \
rules source/format tests/control \
tests/daemons watchfrr.rc \
backports/README backports/rules \
backports/debian8/debian/source/format \
backports/debian8/exclude \
backports/debian8/versionext \
backports/debian9/debian/source/format \
backports/debian9/exclude \
backports/debian9/versionext \
backports/ubuntu12.04/debian/control \
backports/ubuntu12.04/debian/frr.install \
backports/ubuntu12.04/debian/frr.postinst \
backports/ubuntu12.04/debian/frr.postrm \
backports/ubuntu12.04/debian/rules \
backports/ubuntu12.04/debian/source/format \
backports/ubuntu12.04/exclude \
backports/ubuntu12.04/versionext \
backports/ubuntu14.04/debian/control \
backports/ubuntu14.04/debian/frr.install \
backports/ubuntu14.04/debian/frr.postinst \
backports/ubuntu14.04/debian/frr.postrm \
backports/ubuntu14.04/debian/rules \
backports/ubuntu14.04/debian/source/format \
backports/ubuntu14.04/exclude \
backports/ubuntu14.04/versionext \
backports/ubuntu16.04/debian/source/format \
backports/ubuntu16.04/exclude \
backports/ubuntu16.04/versionext \
backports/ubuntu17.10/debian/control \
backports/ubuntu17.10/debian/source/format \
backports/ubuntu17.10/exclude \
backports/ubuntu17.10/versionext \
backports/ubuntu18.04/debian/control \
backports/ubuntu18.04/debian/source/format \
backports/ubuntu18.04/exclude \
backports/ubuntu18.04/versionext \
frr-doc.docs frr-doc.info frr-doc.install \
frr-doc.lintian-overrides frr.conf \
frr-dbg.lintian-overrides \
frr.dirs frr.docs frr.install \
frr.lintian-overrides frr.logrotate \
frr.manpages frr.pam frr.postinst frr.postrm \
frr.preinst frr.prerm \
frr-pythontools.install

97
debian/README.Debian vendored Normal file
View File

@ -0,0 +1,97 @@
* SAFETY MEASURES:
==================
Please consider setting this package "on hold" by typing
echo "frr hold" | dpkg --set-selections
and verifying this using
dpkg --get-selections | grep 'hold$'
Setting a package "on hold" means that it will not automatically be upgraded.
Instead apt-get only displays a warning saying that a new version would be
available forcing you to explicitly type "apt-get install frr" to upgrade it.
* What is frr?
=================
http://www.frrouting.org/
FRR is a routing software suite, providing implementations of OSPFv2,
OSPFv3, RIP v1 and v2, RIPng, ISIS, PIM, BGP and LDP for Unix platforms, particularly
FreeBSD and Linux and also NetBSD, to mention a few. FRR is a fork of Quagga
which itself is a fork of Zebra.
Zebra was developed by Kunihiro Ishiguro.
* Why has SNMP support been disabled?
=====================================
FRR used to link against the NetSNMP libraries to provide SNMP
support. Those libraries sadly link against the OpenSSL libraries
to provide crypto support for SNMPv3 among others.
OpenSSL now is not compatible with the GNU GENERAL PUBLIC LICENSE (GPL)
licence that FRR is distributed under. For more explanation read:
http://www.gnome.org/~markmc/openssl-and-the-gpl.html
http://www.gnu.org/licenses/gpl-faq.html#GPLIncompatibleLibs
Updating the licence to explecitly allow linking against OpenSSL
would requite the affirmation of all people that ever contributed
a significant part to Zebra / Quagga or FRR and thus are the collective
"copyright holder". That's too much work. Using a shrinked down
version of NetSNMP without OpenSSL or convincing the NetSNMP people
to change to GnuTLS are maybe good solutions but not reachable
during the last days before the Sarge release :-(
*BUT*
It is allowed by the used licence mix that you fetch the sources and
build FRR yourself with SNMP with
<remove the "grep ^smux" block at the end of debian/frr.preinst>
# export WANT_SNMP=1
# apt-get -b source frr
Just distributing it in binary form, linked against OpenSSL, is forbidden.
* Daemon selection:
===================
The Debian package uses /etc/frr/daemons to tell the
initscript which daemons to start. It's in the format
<daemon>=<yes|no|priority>
with no spaces (it's simply source-d into the initscript).
Default is not to start anything, since it can hose your
system's routing table if not set up properly.
Priorities were suggested by Dancer <dancer@zeor.simegen.com>.
They're used to start the FRR daemons in more than one step
(for example start one or two at network initialization and the
rest later). The number of FRR daemons being small, priorities
must be between 1 and 9, inclusive (or the initscript has to be
changed). /etc/init.d/frr then can be started as
/etc/init.d/frr <start|stop|restart|<priority>>
where priority 0 is the same as 'stop', priority 10 or 'start'
means 'start all'
* Error message "privs_init: initial cap_set_proc failed":
==========================================================
This error message means that "capability support" has to be built
into the kernel.
* Error message "netlink-listen: overrun: No buffer space available":
=====================================================================
If this message occurs the receive buffer should be increased by adding the
following to /etc/sysctl.conf and "--nl-bufsize" to /etc/frr/daemons.conf.
> net.core.rmem_default = 262144
> net.core.rmem_max = 262144
See message #4525 from 2005-05-09 in the quagga-users mailing list.
* vtysh immediately exists:
===========================
Check /etc/pam.d/frr, it probably denies access to your user. The passwords
configured in /etc/frr/frr.conf are only for telnet access.

22
debian/README.Maintainer vendored Normal file
View File

@ -0,0 +1,22 @@
#
# To check if the patches still apply on new upstream versions:
#
for i in debian/patches/*.diff; do echo -e "#\n# $i\n#"; patch --fuzz=3 --dry-run -p1 < $i; done
#
# Filename transition from zebra to frr
#
Files that keep their names
/usr/bin/vtysh
Files that got an -pj suffix
/etc/default/zebra -> /etc/frr/daemons.conf
/etc/init.d/zebra -> /etc/init.d/frr
/etc/zebra/ -> /etc/frr/
/usr/share/doc/zebra/ -> /usr/share/doc/frr/
/var/log/zebra/ -> /var/log/frr/
/var/run/ -> /var/run/frr/
Files that were moved
/usr/sbin/* -> /usr/lib/frr/

2
debian/backports/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
*/*.dirhash
*/debian/changelog

28
debian/backports/README vendored Normal file
View File

@ -0,0 +1,28 @@
This directory contains the debian directories for backports to other debian
platforms. These are built via the `3.0 (custom)' source format, which
allows one to build a source package directly out of tarballs (e.g. an
orig.tar.gz tarball and a debian.tar.gz file), at which point the format can
be changed to a real format (e.g. `3.0 (quilt)').
Source packages are assembled via targets of the same name as the system to
which the backport is done (e.g. `precise'), included in debian/rules.
To create a new debian backport:
* Add its name to `KNOWN_BACKPORTS', defined in debian/rules.
* Create a directory of the same name in debian/backports.
* Add the files `exclude', `versionext', and `debian/source/format' under
this directory:
* `exclude' contains whitespace-separated paths (relative to the root of
the source dir) that should be excluded from the source package (e.g.
debian/patches).
* `versionext' contains the suffix added to the version number for this
backport's build. Distributions often have guidelines for what this
should be. If left empty, no new debian/changelog entry is created.
* `debian/source/format' should contain the source format of the resulting
source package. As of of the writing of this document the only supported
format is `3.0 (quilt)'.
* Add appropriate files under the `debian/' subdirectory. These will be
included in the source package, overriding any top-level `debian/' files
with equivalent paths.

View File

@ -0,0 +1 @@
3.0 (quilt)

0
debian/backports/debian8/exclude vendored Normal file
View File

1
debian/backports/debian8/versionext vendored Normal file
View File

@ -0,0 +1 @@
-1~debian8+1

View File

@ -0,0 +1 @@
3.0 (quilt)

0
debian/backports/debian9/exclude vendored Normal file
View File

1
debian/backports/debian9/versionext vendored Normal file
View File

@ -0,0 +1 @@
-1~debian9+1

137
debian/backports/rules vendored Executable file
View File

@ -0,0 +1,137 @@
.PHONY: backports $(KNOWN_BACKPORTS)
# error out if these files are missing
required_files = $(foreach backport,$(KNOWN_BACKPORTS), \
$(addprefix debian/backports/$(backport)/, \
debian/source/format \
versionext \
exclude))
$(if $(filter-out $(wildcard $(required_files)),$(required_files)), \
$(error missing required backports files: \
$(filter-out $(wildcard $(required_files)),$(required_files)). \
see debian/backports/README) \
)
TARBALLDIR ?= $(shell dh_testdir debian/changelog && realpath .)
define backports-targets
# if this file is empty, no automatic changelog entry is created
VERSIONEXT_$(1) ?= $(strip \
$(shell cat $(wildcard debian/backports/$(1)/versionext)))
DEBIAN_VERSION_$(1) = $(DEBIAN_VERSION)$$(VERSIONEXT_$(1))
BACKPORTDIR_$(1) = $(realpath debian/backports/$(1))
# as of right now, must be '3.0 (quilt)'
SOURCEFORMAT_$(1) ?= $(strip \
$(shell cat debian/backports/$(1)/debian/source/format))
# files checked for the dirhash (see below)
FINDCMD_$(1) = find -L debian/backports/$(1)/debian \
-type f \
! -path debian/backports/$(1)/debian/changelog
# files *not* pulled from the root debian directory into the backport tarball:
# debian/changelog (copied and edited for backport version entry)
# debian/backports itself (relevant contents are copied out separately)
# anything provided in the current backports debian dir
# anything specified in the 'exclude' file in the current backports debian dir
EXCLUDEROOT_$(1) = debian/changelog debian/backports \
$$(subst debian/backports/$(1)/,,$$(shell $$(FINDCMD_$(1)))) \
$$(shell cat debian/backports/$(1)/exclude)
EXCLUDEROOT_TAR_$(1) = $$(foreach file,$$(EXCLUDEROOT_$(1)),--exclude $$(file))
EXCLUDEROOT_FIND_$(1) = $$(foreach file,$$(EXCLUDEROOT_$(1)),-o -path $$(file))
# find command resulting in all files that *will* be pulled into the backport
# tarball.
FINDCMDROOT_$(1) = find -L debian/ \
'(' -false $$(EXCLUDEROOT_FIND_$(1)) ')' -prune -o \
-type f -a '!' '(' -false $$(EXCLUDEROOT_FIND_$(1)) ')'
# usually using `find' output for dependencies has the downfall of not tracking
# file removal. Work around that by introducing a dependency on a file whose
# name contains the hash of `find' output, so that the name will change when a
# file is deleted.
DIRHASH_$(1) = \
$$(shell $$(FINDCMD_$(1)) | sha1sum | sed -r 's/^(......).*/\1/')
DIRHASHROOT_$(1) = \
$$(shell $$(FINDCMDROOT_$(1)) | sha1sum | sed -r 's/^(......).*/\1/')
CONTROL_$(1) = $$(strip \
$$(if $$(wildcard $$(BACKPORTDIR_$(1))/debian/control), \
$$(BACKPORTDIR_$(1))/debian/control, \
$(realpath debian/control) \
))
# TARGETS:
$(1): $(TARBALLDIR)/$(SRCPKG)_$$(DEBIAN_VERSION_$(1)).dsc ;
# we use 3.0 (custom) to build a source package directly from tarballs,
# bypassing the usual checks (which wouldn't like our combination-of-
# directories approach)
$(TARBALLDIR)/$(SRCPKG)_$$(DEBIAN_VERSION_$(1)).dsc:
dpkg-source -l$$(BACKPORTDIR_$(1))/debian/changelog \
-c$$(CONTROL_$(1)) \
--format='3.0 (custom)' \
--target-format='$$(SOURCEFORMAT_$(1))' \
-b . $$^
mv $(TARBALLDIR)/../$$(notdir $$@) $$@
ifeq ($$(SOURCEFORMAT_$(1)),3.0 (quilt))
# this target depends on the orig.tar.gz file, for which there is no target in
# this makefile. It is assumed to either already exist or be built by a target
# provided elsewhere in debian/rules (e.g. via pristine-tar)
$$(if $$(findstring $(ORIG_VERSION),$$(DEBIAN_VERSION_$(1))), \
$$(info downstream version matches upstream version (good)), \
$$(error quilt format expects downstream version \
($$(DEBIAN_VERSION_$(1))) to contain upstream version \
($(ORIG_VERSION)). Make a new debian/changelog entry \
to reflect the new upstream release) \
)
$(TARBALLDIR)/$(SRCPKG)_$$(DEBIAN_VERSION_$(1)).dsc: \
$(TARBALLDIR)/$(SRCPKG)_$(ORIG_VERSION).orig.tar.gz \
$(TARBALLDIR)/$(SRCPKG)_$$(DEBIAN_VERSION_$(1)).debian.tar.xz
else
$$(error unsupported source format for $(1) backport: $$(SOURCEFORMAT_$(1)))
endif #SOURCEFORMAT_$(1)
# for 3.0 (quilt)
$(TARBALLDIR)/$(SRCPKG)_$$(DEBIAN_VERSION_$(1)).debian.tar.xz: \
$$(BACKPORTDIR_$(1))/debian/changelog \
$$(shell $$(FINDCMD_$(1))) \
$$(BACKPORTDIR_$(1))/$$(DIRHASH_$(1)).backport.dirhash \
$$(shell $$(FINDCMDROOT_$(1))) \
$$(BACKPORTDIR_$(1))/$$(DIRHASHROOT_$(1)).root.dirhash \
$$(BACKPORTDIR_$(1))/exclude
rm -f $$(subst .tar.xz,.tar,$$@) $$@
tar -chf $$(subst .tar.xz,.tar,$$@) \
--exclude-vcs $$(EXCLUDEROOT_TAR_$(1)) debian/
cd debian/backports/$(1) && tar -uhf $$(subst .tar.xz,.tar,$$@) \
--exclude-vcs debian/
xz $$(subst .tar.xz,.tar,$$@)
$$(BACKPORTDIR_$(1))/debian/changelog: \
debian/changelog \
debian/backports/$(1)/versionext
rm -f debian/backports/$(1)/debian/changelog
cp $$< $$@
$(if $$(VERSIONEXT_$(1)), \
dch -c $$@ -v '$$(DEBIAN_VERSION_$(1))' -b \
'backport to $(1) systems', \
)
$$(BACKPORTDIR_$(1))/$$(DIRHASH_$(1)).backport.dirhash:
rm -f debian/backports/$(1)/*.backport.dirhash
touch $$@
$$(BACKPORTDIR_$(1))/$$(DIRHASHROOT_$(1)).root.dirhash:
rm -f debian/backports/$(1)/*.root.dirhash
touch $$@
endef # backports-targets
$(foreach backport,$(KNOWN_BACKPORTS),$(eval \
$(call backports-targets,$(backport))))
backports: $(KNOWN_BACKPORTS)

View File

@ -0,0 +1,56 @@
Source: frr
Section: net
Priority: optional
Maintainer: Nobody <nobody@frrouting.org>
Uploaders: Nobody <nobody@frrouting.org>
XSBC-Original-Maintainer: <maintainers@frrouting.org>
Build-Depends: debhelper (>= 7.0.50~), libncurses5-dev, libreadline-dev, texlive-latex-base, texlive-generic-recommended, libpam0g-dev | libpam-dev, libcap-dev, texinfo (>= 4.7), imagemagick, ghostscript, groff, autotools-dev, libpcre3-dev, gawk, chrpath, libsnmp-dev, git, dh-autoreconf, libjson0, libjson0-dev, pkg-config, python (>= 2.7), python-ipaddr
Standards-Version: 3.9.6
Homepage: http://www.frrouting.org/
XS-Testsuite: autopkgtest
Package: frr
Architecture: any
Depends: ${shlibs:Depends}, logrotate (>= 3.2-11), ${misc:Depends}
Pre-Depends: adduser
Conflicts: zebra, zebra-pj, quagga
Replaces: zebra, zebra-pj
Suggests: snmpd
Description: BGP/OSPF/RIP/RIPng/ISIS/PIM/LDP routing daemon forked from Quagga
FRR is free software which manages TCP/IP based routing protocols.
It supports BGP4, BGP4+, OSPFv2, OSPFv3, IS-IS, RIPv1, RIPv2, RIPng,
PIM and LDP as well as the IPv6 versions of these.
.
FRR is a fork of Quagga with an open community model. The main git
lives on https://github.com/frrouting/frr.git
Package: frr-dbg
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, frr (= ${binary:Version})
Priority: extra
Section: debug
Description: BGP/OSPF/RIP/RIPng/ISIS/PIM/LDP routing daemon (debug symbols)
This package provides debugging symbols for all binary packages built
from frr source package. It's highly recommended to have this package
installed before reporting any FRR crashes to either FRR developers or
Debian package maintainers.
Package: frr-doc
Section: net
Architecture: all
Depends: ${misc:Depends}
Suggests: frr
Description: documentation files for FRR
This package includes info files for frr, a free software which manages
TCP/IP based routing protocols. It supports BGP4, BGP4+, OSPFv2, OSPFv3,
IS-IS, RIPv1, RIPv2, RIPng, PIM and LDP as well as the IPv6 versions of these.
Package: frr-pythontools
Section: net
Architecture: all
Depends: ${misc:Depends}, frr (= ${binary:Version}), python (>= 2.7), python-ipaddr
Description: BGP/OSPF/RIP/RIPng/ISIS/PIM/LDP routing daemon (Python Tools)
This package includes info files for frr, a free software which manages
TCP/IP based routing protocols. It supports BGP4, BGP4+, OSPFv2, OSPFv3,
IS-IS, RIPv1, RIPv2, RIPng, PIM and LDP as well as the IPv6 versions of these.

View File

@ -0,0 +1 @@
../../ubuntu14.04/debian/frr.install

View File

@ -0,0 +1 @@
../../ubuntu14.04/debian/frr.postinst

View File

@ -0,0 +1 @@
../../ubuntu14.04/debian/frr.postrm

162
debian/backports/ubuntu12.04/debian/rules vendored Executable file
View File

@ -0,0 +1,162 @@
#!/usr/bin/make -f
# FRRouting Configuration options
######################################
#
# WANT_xxxx --> Set to 1 for enable, 0 for disable
# The following are the defaults. They can be overridden by setting a
# env variable to a different value
WANT_LDP ?= 1
WANT_PIM ?= 1
WANT_OSPFAPI ?= 1
WANT_BGP_VNC ?= 1
WANT_CUMULUS_MODE ?= 0
WANT_MULTIPATH ?= 1
WANT_SNMP ?= 0
# NOTES:
#
# If multipath is enabled (WANT_MULTIPATH=1), then set number of multipaths here
# Please be aware that 0 is NOT disabled, but treated as unlimited
MULTIPATH ?= 256
# Set the following to the value required (or leave alone for the default below)
# WANT_FRR_USER is used for the username and groupname of the FRR user account
WANT_FRR_USER ?= frr
WANT_FRR_VTY_GROUP ?= frrvty
# Don't build PDF docs by default
GENERATE_PDF ?= 0
#
####################################
export DH_VERBOSE=1
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
export DH_OPTIONS=-v
ifeq ($(WANT_SNMP), 1)
USE_SNMP=--enable-snmp
$(warning "DEBIAN: SNMP enabled, sorry for your inconvenience")
else
USE_SNMP=--disable-snmp
$(warning "DEBIAN: SNMP disabled, see README.Debian")
endif
ifeq ($(WANT_LDP), 1)
USE_LDP=--enable-ldpd
else
USE_LDP=--disable-ldpd
endif
ifeq ($(WANT_PIM), 1)
USE_PIM=--enable-pimd
else
USE_PIM=--disable-pimd
endif
ifeq ($(WANT_OSPFAPI), 1)
USE_OSPFAPI=--enable-ospfapi=yes
else
USE_OSPFAPI=--enable-ospfapi=no
endif
ifeq ($(WANT_BGP_VNC), 1)
USE_BGP_VNC=--enable-bgp-vnc=yes
else
USE_BGP_VNC=--enable-bgp-vnc=no
endif
USE_FRR_USER=--enable-user=$(WANT_FRR_USER)
USE_FRR_GROUP=--enable-group=$(WANT_FRR_USER)
USE_FRR_VTY_GROUP=--enable-vty-group=$(WANT_FRR_VTY_GROUP)
ifeq ($(WANT_MULTIPATH), 1)
USE_MULTIPATH=--enable-multipath=$(MULTIPATH)
else
USE_MULTIPATH=--disable-multipath
endif
ifeq ($(WANT_CUMULUS_MODE), 1)
USE_CUMULUS=--enable-cumulus=yes
else
USE_CUMULUS=--enable-cumulus=no
endif
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
DEBIAN_JOBS := $(subst parallel=,,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
endif
ifdef DEBIAN_JOBS
MAKEFLAGS += -j$(DEBIAN_JOBS)
endif
%:
dh $@ --with=autoreconf --parallel --dbg-package=frr-dbg --list-missing
override_dh_auto_configure:
# Frr needs /proc to check some BSD vs Linux specific stuff.
# Else it fails with an obscure error message pointing out that
# IPCTL_FORWARDING is an undefined symbol which is not very helpful.
@if ! [ -d /proc/1 ]; then \
echo "./configure needs a mounted /proc"; \
exit 1; \
fi
if ! [ -e config.status ]; then \
dh_auto_configure -- \
--enable-exampledir=/usr/share/doc/frr/examples/ \
--localstatedir=/var/run/frr \
--sbindir=/usr/lib/frr \
--sysconfdir=/etc/frr \
$(USE_SNMP) \
$(USE_OSPFAPI) \
$(USE_MULTIPATH) \
$(USE_LDP) \
--enable-fpm \
$(USE_FRR_USER) $(USE_FRR_GROUP) \
$(USE_FRR_VTY_GROUP) \
--enable-configfile-mask=0640 \
--enable-logfile-mask=0640 \
--with-libpam \
--enable-systemd=no \
--enable-poll=yes \
$(USE_CUMULUS) \
$(USE_PIM) \
--disable-bfdd \
--enable-dependency-tracking \
$(USE_BGP_VNC) \
$(shell dpkg-buildflags --export=configure); \
fi
override_dh_auto_build:
ifeq ($(GENERATE_PDF), 1)
dh_auto_build -- -C doc pdf
endif
rm -vf doc/user/_build/texinfo/frr.info
dh_auto_build -- -C doc info
override_dh_auto_test:
override_dh_auto_install:
dh_auto_install
# installed in frr-pythontools
rm debian/tmp/usr/lib/frr/frr-reload.py
# cleaning up the info dir
rm -f debian/tmp/usr/share/info/dir*
# install config files
mkdir -p debian/tmp/etc/frr/
perl -pi -e 's#^!log file #!log file /var/log/frr/#' debian/tmp/usr/share/doc/frr/examples/*sample*
# leftover from previously shipping SMUX client OID MIB
mkdir -p debian/tmp/usr/share/snmp/mibs
# cleaning .la files
sed -i "/dependency_libs/ s/'.*'/''/" debian/tmp/usr/lib/*.la
sed -i "/dependency_libs/ s/'.*'/''/" debian/tmp/usr/lib/frr/modules/*.la

View File

@ -0,0 +1 @@
3.0 (quilt)

0
debian/backports/ubuntu12.04/exclude vendored Normal file
View File

View File

@ -0,0 +1 @@
-1~ubuntu12.04+1

View File

@ -0,0 +1,56 @@
Source: frr
Section: net
Priority: optional
Maintainer: Nobody <nobody@frrouting.org>
Uploaders: Nobody <nobody@frrouting.org>
XSBC-Original-Maintainer: <maintainers@frrouting.org>
Build-Depends: debhelper (>= 7.0.50~), libncurses5-dev, libreadline-dev, texlive-latex-base, texlive-generic-recommended, libpam0g-dev | libpam-dev, libcap-dev, texinfo (>= 4.7), imagemagick, ghostscript, groff, autotools-dev, libpcre3-dev, gawk, chrpath, libsnmp-dev, git, dh-autoreconf, libjson-c-dev, libjson-c2, pkg-config, python (>= 2.7), python-ipaddr
Standards-Version: 3.9.6
Homepage: http://www.frrouting.org/
XS-Testsuite: autopkgtest
Package: frr
Architecture: any
Depends: ${shlibs:Depends}, logrotate (>= 3.2-11), ${misc:Depends}
Pre-Depends: adduser
Conflicts: zebra, zebra-pj, quagga
Replaces: zebra, zebra-pj
Suggests: snmpd
Description: BGP/OSPF/RIP/RIPng/ISIS/PIM/LDP routing daemon forked from Quagga
FRR is free software which manages TCP/IP based routing protocols.
It supports BGP4, BGP4+, OSPFv2, OSPFv3, IS-IS, RIPv1, RIPv2, RIPng,
PIM and LDP as well as the IPv6 versions of these.
.
FRR is a fork of Quagga with an open community model. The main git
lives on https://github.com/frrouting/frr.git
Package: frr-dbg
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, frr (= ${binary:Version})
Priority: extra
Section: debug
Description: BGP/OSPF/RIP/RIPng/ISIS/PIM/LDP routing daemon (debug symbols)
This package provides debugging symbols for all binary packages built
from frr source package. It's highly recommended to have this package
installed before reporting any FRR crashes to either FRR developers or
Debian package maintainers.
Package: frr-doc
Section: net
Architecture: all
Depends: ${misc:Depends}
Suggests: frr
Description: BGP/OSPF/RIP/RIPng/ISIS/PIM/LDP routing daemon (documentation)
This package includes info files for frr, a free software which manages
TCP/IP based routing protocols. It supports BGP4, BGP4+, OSPFv2, OSPFv3,
IS-IS, RIPv1, RIPv2, RIPng, PIM and LDP as well as the IPv6 versions of these.
Package: frr-pythontools
Section: net
Architecture: all
Depends: ${misc:Depends}, frr (= ${binary:Version}), python (>= 2.7), python-ipaddr
Description: BGP/OSPF/RIP/RIPng/ISIS/PIM/LDP routing daemon (Python Tools)
This package includes info files for frr, a free software which manages
TCP/IP based routing protocols. It supports BGP4, BGP4+, OSPFv2, OSPFv3,
IS-IS, RIPv1, RIPv2, RIPng, PIM and LDP as well as the IPv6 versions of these.

View File

@ -0,0 +1,11 @@
etc/frr/
usr/bin/vtysh
usr/bin/mtracebis
usr/include/frr/
usr/lib/
tools/frr etc/init.d/
usr/share/doc/frr/
usr/share/snmp/mibs/
tools/etc/* etc/
tools/*.service lib/systemd/system
debian/frr.conf usr/lib/tmpfiles.d

View File

@ -0,0 +1,38 @@
#!/bin/bash -e
######################
PASSWDFILE=/etc/passwd
GROUPFILE=/etc/group
frruid=`egrep "^frr:" $PASSWDFILE | awk -F ":" '{ print $3 }'`
frrgid=`egrep "^frr:" $GROUPFILE | awk -F ":" '{ print $3 }'`
frrvtygid=`egrep "^frrvty:" $GROUPFILE | awk -F ":" '{ print $3 }'`
[ -n ${frruid} ] || (echo "No uid for frr in ${PASSWDFILE}" && /bin/false)
[ -n ${frrgid} ] || (echo "No gid for frr in ${GROUPFILE}" && /bin/false)
[ -n ${frrVTYgid} ] || (echo "No gid for frrvty in ${GROUPFILE}" && /bin/false)
chown -R ${frruid}:${frrgid} /etc/frr
touch /etc/frr/vtysh.conf
chgrp ${frrvtygid} /etc/frr/vtysh*
chmod 644 /etc/frr/*
ENVIRONMENTFILE=/etc/environment
if ! egrep --quiet '^VTYSH_PAGER=' ${ENVIRONMENTFILE}; then
echo "VTYSH_PAGER=/bin/cat" >> ${ENVIRONMENTFILE}
fi
##################################################
if [ -n "$DEBIAN_SCRIPT_DEBUG" ]; then set -v -x; DEBIAN_SCRIPT_TRACE=1; fi
${DEBIAN_SCRIPT_TRACE:+ echo "#42#DEBUG# RUNNING $0 $*"}
# This is most likely due to the answer "no" to the "really stop the server"
# question in the prerm script.
if [ "$1" = "abort-upgrade" ]; then
exit 0
fi
update-rc.d frr defaults > /dev/null
#DEBHELPER#

View File

@ -0,0 +1,14 @@
#!/bin/bash -e
if [ -n "$DEBIAN_SCRIPT_DEBUG" ]; then set -v -x; DEBIAN_SCRIPT_TRACE=1; fi
${DEBIAN_SCRIPT_TRACE:+ echo "#42#DEBUG# RUNNING $0 $*"}
# set -u not because of debhelper
update-rc.d -f frr remove >> /dev/null
if [ "$1" = "purge" ]; then
rm -rf /etc/frr /var/run/frr /var/log/frr
userdel frr >/dev/null 2>&1 || true
fi
#DEBHELPER#

203
debian/backports/ubuntu14.04/debian/rules vendored Executable file
View File

@ -0,0 +1,203 @@
#!/usr/bin/make -f
# FRRouting Configuration options
######################################
#
# WANT_xxxx --> Set to 1 for enable, 0 for disable
# The following are the defaults. They can be overridden by setting a
# env variable to a different value
WANT_LDP ?= 1
WANT_PIM ?= 1
WANT_OSPFAPI ?= 1
WANT_BGP_VNC ?= 1
WANT_CUMULUS_MODE ?= 0
WANT_MULTIPATH ?= 1
WANT_SNMP ?= 0
WANT_RPKI ?= 0
WANT_BFD ?= 1
# NOTES:
#
# If you use WANT_RPKI, then there is a new dependency for librtr0 package
# and a build dependency of the librtr-dev package.
# While the librtr0 is added to the depenencies automatically, the build
# dependency can't be changed dynamically and building will fail if the
# librtr-dev isn't installed during package build
# Tested versions of both packages can be found at
# https://ci1.netdef.org/browse/RPKI-RTRLIB/latestSuccessful/artifact
#
# If multipath is enabled (WANT_MULTIPATH=1), then set number of multipaths here
# Please be aware that 0 is NOT disabled, but treated as unlimited
MULTIPATH ?= 256
# Set the following to the value required (or leave alone for the default below)
# WANT_FRR_USER is used for the username and groupname of the FRR user account
WANT_FRR_USER ?= frr
WANT_FRR_VTY_GROUP ?= frrvty
# Don't build PDF docs by default
GENERATE_PDF ?= 0
#
####################################
export DH_VERBOSE=1
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
export DH_OPTIONS=-v
ifeq ($(WANT_SNMP), 1)
USE_SNMP=--enable-snmp
$(warning "DEBIAN: SNMP enabled, sorry for your inconvenience")
else
USE_SNMP=--disable-snmp
$(warning "DEBIAN: SNMP disabled, see README.Debian")
endif
ifeq ($(WANT_LDP), 1)
USE_LDP=--enable-ldpd
else
USE_LDP=--disable-ldpd
endif
ifeq ($(WANT_PIM), 1)
USE_PIM=--enable-pimd
else
USE_PIM=--disable-pimd
endif
ifeq ($(WANT_OSPFAPI), 1)
USE_OSPFAPI=--enable-ospfapi=yes
else
USE_OSPFAPI=--enable-ospfapi=no
endif
ifeq ($(WANT_BGP_VNC), 1)
USE_BGP_VNC=--enable-bgp-vnc=yes
else
USE_BGP_VNC=--enable-bgp-vnc=no
endif
USE_FRR_USER=--enable-user=$(WANT_FRR_USER)
USE_FRR_GROUP=--enable-group=$(WANT_FRR_USER)
USE_FRR_VTY_GROUP=--enable-vty-group=$(WANT_FRR_VTY_GROUP)
ifeq ($(WANT_MULTIPATH), 1)
USE_MULTIPATH=--enable-multipath=$(MULTIPATH)
else
USE_MULTIPATH=--disable-multipath
endif
ifeq ($(WANT_CUMULUS_MODE), 1)
USE_CUMULUS=--enable-cumulus=yes
else
USE_CUMULUS=--enable-cumulus=no
endif
ifeq ($(WANT_RPKI), 1)
USE_RPKI=--enable-rpki
else
USE_RPKI=--disable-rpki
endif
ifeq ($(WANT_BFD), 1)
USE_BFD=--enable-bfdd
else
USE_BFD=--disable-bfdd
endif
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
DEBIAN_JOBS := $(subst parallel=,,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
endif
ifdef DEBIAN_JOBS
MAKEFLAGS += -j$(DEBIAN_JOBS)
endif
%:
dh $@ --with=autoreconf --parallel --dbg-package=frr-dbg --list-missing
override_dh_gencontrol:
ifeq ($(WANT_RPKI), 1)
dh_gencontrol -- -Vdist:Depends="librtr0 (>= 0.5)"
else
dh_gencontrol
endif
override_dh_auto_configure:
# Frr needs /proc to check some BSD vs Linux specific stuff.
# Else it fails with an obscure error message pointing out that
# IPCTL_FORWARDING is an undefined symbol which is not very helpful.
@if ! [ -d /proc/1 ]; then \
echo "./configure needs a mounted /proc"; \
exit 1; \
fi
if ! [ -e config.status ]; then \
dh_auto_configure -- \
--enable-exampledir=/usr/share/doc/frr/examples/ \
--localstatedir=/var/run/frr \
--sbindir=/usr/lib/frr \
--sysconfdir=/etc/frr \
$(USE_SNMP) \
$(USE_OSPFAPI) \
$(USE_MULTIPATH) \
$(USE_LDP) \
--enable-fpm \
$(USE_FRR_USER) $(USE_FRR_GROUP) \
$(USE_FRR_VTY_GROUP) \
--enable-configfile-mask=0640 \
--enable-logfile-mask=0640 \
--with-libpam \
--enable-systemd=no \
--enable-poll=yes \
$(USE_CUMULUS) \
$(USE_PIM) \
--enable-dependency-tracking \
$(USE_BGP_VNC) \
$(USE_RPKI) \
$(USE_BFD) \
$(shell dpkg-buildflags --export=configure); \
fi
override_dh_auto_build:
#dh_auto_build
$(MAKE)
# doc/ is a bit crazy
ifeq ($(GENERATE_PDF), 1)
dh_auto_build -- -C doc pdf
endif
rm -vf doc/_build/texinfo/frr.info
dh_auto_build -- -C doc info
override_dh_auto_test:
override_dh_auto_install:
dh_auto_install
# installed in frr-pythontools
rm debian/tmp/usr/lib/frr/frr-reload.py
# cleaning up the info dir
rm -f debian/tmp/usr/share/info/dir*
# install config files
mkdir -p debian/tmp/etc/frr/
perl -pi -e 's#^!log file #!log file /var/log/frr/#' debian/tmp/usr/share/doc/frr/examples/*sample*
# leftover from previously shipping SMUX client OID MIB
mkdir -p debian/tmp/usr/share/snmp/mibs/
# cleaning .la files
sed -i "/dependency_libs/ s/'.*'/''/" debian/tmp/usr/lib/*.la
sed -i "/dependency_libs/ s/'.*'/''/" debian/tmp/usr/lib/frr/modules/*.la
override_dh_systemd_start:
dh_systemd_start frr.service
override_dh_systemd_enable:
dh_systemd_enable frr.service

View File

@ -0,0 +1 @@
3.0 (quilt)

0
debian/backports/ubuntu14.04/exclude vendored Normal file
View File

View File

@ -0,0 +1 @@
-1~ubuntu14.04+1

View File

@ -0,0 +1 @@
3.0 (quilt)

0
debian/backports/ubuntu16.04/exclude vendored Normal file
View File

View File

@ -0,0 +1 @@
-1~ubuntu16.04+1

View File

@ -0,0 +1,54 @@
Source: frr
Section: net
Priority: optional
Maintainer: Nobody <nobody@frrouting.org>
Uploaders: Nobody <nobody@frrouting.org>
XSBC-Original-Maintainer: <maintainers@frrouting.org>
Build-Depends: debhelper (>= 7.0.50~), libncurses5-dev, libreadline-dev, texlive-latex-base, texlive-generic-recommended, libpam0g-dev | libpam-dev, libcap-dev, texinfo (>= 4.7), imagemagick, ghostscript, groff, autotools-dev, libpcre3-dev, gawk, chrpath, libsnmp-dev, git, dh-autoreconf, libjson-c-dev, libjson-c2 | libjson-c3, dh-systemd, libsystemd-dev, bison, flex, libc-ares-dev, pkg-config, python (>= 2.7), python-ipaddr, libpython-dev
Standards-Version: 3.9.6
Homepage: http://www.frrouting.org/
Package: frr
Architecture: any
Depends: ${shlibs:Depends}, logrotate (>= 3.2-11), iproute2 | iproute, ${misc:Depends}, libc-ares2
Pre-Depends: adduser
Conflicts: zebra, zebra-pj, quagga
Replaces: zebra, zebra-pj
Suggests: snmpd
Description: BGP/OSPF/RIP/RIPng/ISIS/PIM/LDP routing daemon forked from Quagga
FRR is free software which manages TCP/IP based routing protocols.
It supports BGP4, BGP4+, OSPFv2, OSPFv3, IS-IS, RIPv1, RIPv2, RIPng,
PIM and LDP as well as the IPv6 versions of these.
.
FRR is a fork of Quagga with an open community model. The main git
lives on https://github.com/frrouting/frr.git
Package: frr-dbg
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, frr (= ${binary:Version})
Priority: optional
Section: debug
Description: BGP/OSPF/RIP/RIPng/ISIS/PIM/LDP routing daemon (debug symbols)
This package provides debugging symbols for all binary packages built
from frr source package. It's highly recommended to have this package
installed before reporting any FRR crashes to either FRR developers or
Debian package maintainers.
Package: frr-doc
Section: net
Architecture: all
Depends: ${misc:Depends}
Suggests: frr
Description: BGP/OSPF/RIP/RIPng/ISIS/PIM/LDP routing daemon (documentation)
This package includes info files for frr, a free software which manages
TCP/IP based routing protocols. It supports BGP4, BGP4+, OSPFv2, OSPFv3,
IS-IS, RIPv1, RIPv2, RIPng, PIM and LDP as well as the IPv6 versions of these.
Package: frr-pythontools
Section: net
Architecture: all
Depends: ${misc:Depends}, frr (= ${binary:Version}), python (>= 2.7), python-ipaddr
Description: BGP/OSPF/RIP/RIPng/ISIS/PIM/LDP routing daemon (Python Tools)
This package includes info files for frr, a free software which manages
TCP/IP based routing protocols. It supports BGP4, BGP4+, OSPFv2, OSPFv3,
IS-IS, RIPv1, RIPv2, RIPng, PIM and LDP as well as the IPv6 versions of these.

View File

@ -0,0 +1 @@
3.0 (quilt)

0
debian/backports/ubuntu17.10/exclude vendored Normal file
View File

View File

@ -0,0 +1 @@
-1~ubuntu17.10+1

View File

@ -0,0 +1,54 @@
Source: frr
Section: net
Priority: optional
Maintainer: Nobody <nobody@frrouting.org>
Uploaders: Nobody <nobody@frrouting.org>
XSBC-Original-Maintainer: <maintainers@frrouting.org>
Build-Depends: debhelper (>= 7.0.50~), libncurses5-dev, libreadline-dev, texlive-latex-base, texlive-generic-recommended, libpam0g-dev | libpam-dev, libcap-dev, texinfo (>= 4.7), imagemagick, ghostscript, groff, autotools-dev, libpcre3-dev, gawk, chrpath, libsnmp-dev, git, dh-autoreconf, libjson-c-dev, libjson-c2 | libjson-c3, dh-systemd, libsystemd-dev, bison, flex, libc-ares-dev, pkg-config, python (>= 2.7), python-ipaddr, python-sphinx, libpython-dev
Standards-Version: 3.9.6
Homepage: http://www.frrouting.org/
Package: frr
Architecture: any
Depends: ${shlibs:Depends}, logrotate (>= 3.2-11), iproute2 | iproute, ${misc:Depends}, libc-ares2
Pre-Depends: adduser
Conflicts: zebra, zebra-pj, quagga
Replaces: zebra, zebra-pj
Suggests: snmpd
Description: BGP/OSPF/RIP/RIPng/ISIS/PIM/LDP routing daemon forked from Quagga
FRR is free software which manages TCP/IP based routing protocols.
It supports BGP4, BGP4+, OSPFv2, OSPFv3, IS-IS, RIPv1, RIPv2, RIPng,
PIM and LDP as well as the IPv6 versions of these.
.
FRR is a fork of Quagga with an open community model. The main git
lives on https://github.com/frrouting/frr.git
Package: frr-dbg
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, frr (= ${binary:Version})
Priority: optional
Section: debug
Description: BGP/OSPF/RIP/RIPng/ISIS/PIM/LDP routing daemon (debug symbols)
This package provides debugging symbols for all binary packages built
from frr source package. It's highly recommended to have this package
installed before reporting any FRR crashes to either FRR developers or
Debian package maintainers.
Package: frr-doc
Section: net
Architecture: all
Depends: ${misc:Depends}
Suggests: frr
Description: BGP/OSPF/RIP/RIPng/ISIS/PIM/LDP routing daemon (documentation)
This package includes info files for frr, a free software which manages
TCP/IP based routing protocols. It supports BGP4, BGP4+, OSPFv2, OSPFv3,
IS-IS, RIPv1, RIPv2, RIPng, PIM and LDP as well as the IPv6 versions of these.
Package: frr-pythontools
Section: net
Architecture: all
Depends: ${misc:Depends}, frr (= ${binary:Version}), python (>= 2.7), python-ipaddr
Description: BGP/OSPF/RIP/RIPng/ISIS/PIM/LDP routing daemon (Python Tools)
This package includes info files for frr, a free software which manages
TCP/IP based routing protocols. It supports BGP4, BGP4+, OSPFv2, OSPFv3,
IS-IS, RIPv1, RIPv2, RIPng, PIM and LDP as well as the IPv6 versions of these.

View File

@ -0,0 +1 @@
3.0 (quilt)

0
debian/backports/ubuntu18.04/exclude vendored Normal file
View File

View File

@ -0,0 +1 @@
-1~ubuntu18.04+1

1429
debian/changelog.in vendored Normal file

File diff suppressed because it is too large Load Diff

1
debian/compat vendored Normal file
View File

@ -0,0 +1 @@
7

54
debian/control vendored Normal file
View File

@ -0,0 +1,54 @@
Source: frr
Section: net
Priority: optional
Maintainer: Nobody <nobody@frrouting.org>
Uploaders: Nobody <nobody@frrouting.org>
XSBC-Original-Maintainer: <maintainers@frrouting.org>
Build-Depends: debhelper (>= 7.0.50~), libncurses5-dev, libreadline-dev, texlive-latex-base, texlive-generic-recommended, libpam0g-dev | libpam-dev, libcap-dev, texinfo (>= 4.7), autotools-dev, libpcre3-dev, gawk, chrpath, libsnmp-dev, git, dh-autoreconf, libjson-c-dev, libjson-c2 | libjson-c3, dh-systemd, libsystemd-dev, bison, flex, libc-ares-dev, pkg-config, python (>= 2.7), python-ipaddr, python-sphinx, libpython-dev, install-info
Standards-Version: 3.9.6
Homepage: http://www.frrouting.org/
Package: frr
Architecture: any
Depends: ${shlibs:Depends}, logrotate (>= 3.2-11), iproute2 | iproute, ${misc:Depends}, libc-ares2
Pre-Depends: adduser
Conflicts: zebra, zebra-pj, quagga
Replaces: zebra, zebra-pj
Suggests: snmpd
Description: BGP/OSPF/RIP/RIPng/ISIS/PIM/LDP routing daemon forked from Quagga
FRR is free software which manages TCP/IP based routing protocols.
It supports BGP4, BGP4+, OSPFv2, OSPFv3, IS-IS, RIPv1, RIPv2, RIPng,
PIM and LDP as well as the IPv6 versions of these.
.
FRR is a fork of Quagga with an open community model. The main git
lives on https://github.com/frrouting/frr.git
Package: frr-dbg
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, frr (= ${binary:Version})
Priority: extra
Section: debug
Description: BGP/OSPF/RIP/RIPng/ISIS/PIM/LDP routing daemon (debug symbols)
This package provides debugging symbols for all binary packages built
from frr source package. It's highly recommended to have this package
installed before reporting any FRR crashes to either FRR developers or
Debian package maintainers.
Package: frr-doc
Section: net
Architecture: all
Depends: ${misc:Depends}
Suggests: frr
Description: BGP/OSPF/RIP/RIPng/ISIS/PIM/LDP routing daemon (documentation)
This package includes info files for frr, a free software which manages
TCP/IP based routing protocols. It supports BGP4, BGP4+, OSPFv2, OSPFv3,
IS-IS, RIPv1, RIPv2, RIPng, PIM and LDP as well as the IPv6 versions of these.
Package: frr-pythontools
Section: net
Architecture: all
Depends: ${misc:Depends}, frr (= ${binary:Version}), python (>= 2.7), python-ipaddr
Description: BGP/OSPF/RIP/RIPng/ISIS/PIM/LDP routing daemon (Python Tools)
This package includes info files for frr, a free software which manages
TCP/IP based routing protocols. It supports BGP4, BGP4+, OSPFv2, OSPFv3,
IS-IS, RIPv1, RIPv2, RIPng, PIM and LDP as well as the IPv6 versions of these.

29
debian/copyright vendored Normal file
View File

@ -0,0 +1,29 @@
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: Frr
Upstream-Contact: maintainers@frrouting.org, security@frrouting.org
Source: http://www.frrouting.org/
Files: *
Copyright: 1996-2003 by the original Zebra authors:
Kunihiro Ishiguro <kunihiro@zebra.org>
Toshiaki Takada <takada@zebra.org>
Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
2003-2012 by the Quagga Project, mostly Paul Jakma <paul@jakma.org>
License: GPL-2+
This program 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 2 of the License, or
(at your option) any later version.
.
This program 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 program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
.
On Debian systems, the full text of the GNU General Public
License version 2 can be found in the file
`/usr/share/common-licenses/GPL-2'.

1
debian/frr-dbg.lintian-overrides vendored Normal file
View File

@ -0,0 +1 @@
frr-dbg: debug-file-with-no-debug-symbols usr/lib/debug/usr/lib/libfrrfpm_pb.so.0.0.0

5
debian/frr-doc.docs vendored Normal file
View File

@ -0,0 +1,5 @@
AUTHORS
NEWS
README
doc/user/*.rst
doc/figures/*.png

1
debian/frr-doc.info vendored Normal file
View File

@ -0,0 +1 @@
doc/user/_build/texinfo/frr.info

1
debian/frr-doc.install vendored Normal file
View File

@ -0,0 +1 @@
doc/user/_build/texinfo/*.png usr/share/info

1
debian/frr-doc.lintian-overrides vendored Normal file
View File

@ -0,0 +1 @@
frr-doc: wrong-section-according-to-package-name frr-doc => doc

1
debian/frr-pythontools.install vendored Normal file
View File

@ -0,0 +1 @@
tools/frr-reload.py usr/lib/frr/

2
debian/frr.conf vendored Normal file
View File

@ -0,0 +1,2 @@
# Create the /run/frr directory at boot or from systemd-tmpfiles on install
d /run/frr 0755 frr frr

8
debian/frr.dirs vendored Normal file
View File

@ -0,0 +1,8 @@
etc/logrotate.d/
etc/frr/
etc/iproute2/rt_protos.d/
usr/share/doc/frr/
usr/share/doc/frr/examples/
usr/share/lintian/overrides/
usr/share/snmp/mibs/
var/log/frr/

2
debian/frr.docs vendored Normal file
View File

@ -0,0 +1,2 @@
tools
debian/README.Debian

12
debian/frr.install vendored Normal file
View File

@ -0,0 +1,12 @@
etc/frr/
usr/bin/vtysh
usr/bin/mtracebis
usr/include/frr/
usr/lib/
tools/frr usr/lib/frr
usr/share/doc/frr/
usr/share/snmp/mibs/
tools/etc/* etc/
tools/*.service lib/systemd/system
tools/frr-reload usr/lib/frr/
debian/frr.conf usr/lib/tmpfiles.d

6
debian/frr.lintian-overrides vendored Normal file
View File

@ -0,0 +1,6 @@
frr: non-dev-pkg-with-shlib-symlink usr/lib/libfrrospfapiclient.so.0.0.0 usr/lib/libfrrospfapiclient.so
frr: non-dev-pkg-with-shlib-symlink usr/lib/libfrr.so.0.0.0 usr/lib/libfrr.so
frr: non-dev-pkg-with-shlib-symlink usr/lib/libfrrfpm_pb.so.0.0.0 usr/lib/libfrrfpm_pb.so
frr: package-name-doesnt-match-sonames libfrr0 libfrrfpm-pb0 libfrrospfapiclient0
frr: systemd-service-file-refers-to-unusual-wantedby-target lib/systemd/system/frr.service network-online.target
frr: shared-lib-without-dependency-information usr/lib/libfrrfpm_pb.so.0.0.0

27
debian/frr.logrotate vendored Normal file
View File

@ -0,0 +1,27 @@
/var/log/frr/*.log {
size 500k
sharedscripts
missingok
compress
rotate 14
create 640 frr frrvty
postrotate
pid=$(lsof -t -a -c /syslog/ /var/log/frr/* 2>/dev/null)
if [ -n "$pid" ]
then # using syslog
kill -HUP $pid
fi
# in case using file logging; if switching back and forth
# between file and syslog, rsyslogd might still have file
# open, as well as the daemons, so always signal the daemons.
# It's safe, a NOP if (only) syslog is being used.
for i in babeld bgpd eigrpd isisd ldpd nhrpd ospf6d ospfd \
pimd ripd ripngd zebra staticd ; do
if [ -e /var/run/frr/$i.pid ] ; then
pids="$pids $(cat /var/run/frr/$i.pid)"
fi
done
[ -n "$pids" ] && kill -USR1 $pids || true
endscript
}

15
debian/frr.manpages vendored Normal file
View File

@ -0,0 +1,15 @@
doc/manpages/_build/man/frr.1
doc/manpages/_build/man/bgpd.8
doc/manpages/_build/man/pimd.8
doc/manpages/_build/man/eigrpd.8
doc/manpages/_build/man/ldpd.8
doc/manpages/_build/man/nhrpd.8
doc/manpages/_build/man/ospf6d.8
doc/manpages/_build/man/ospfd.8
doc/manpages/_build/man/ripd.8
doc/manpages/_build/man/ripngd.8
doc/manpages/_build/man/vtysh.1
doc/manpages/_build/man/zebra.8
doc/manpages/_build/man/isisd.8
doc/manpages/_build/man/watchfrr.8
doc/manpages/_build/man/mtracebis.8

3
debian/frr.pam vendored Normal file
View File

@ -0,0 +1,3 @@
# Any user may call vtysh but only those belonging to the group frrvty can
# actually connect to the socket and use the program.
auth sufficient pam_permit.so

37
debian/frr.postinst vendored Normal file
View File

@ -0,0 +1,37 @@
#!/bin/bash -e
######################
PASSWDFILE=/etc/passwd
GROUPFILE=/etc/group
frruid=`egrep "^frr:" $PASSWDFILE | awk -F ":" '{ print $3 }'`
frrgid=`egrep "^frr:" $GROUPFILE | awk -F ":" '{ print $3 }'`
frrvtygid=`egrep "^frrvty:" $GROUPFILE | awk -F ":" '{ print $3 }'`
[ -n ${frruid} ] || (echo "No uid for frr in ${PASSWDFILE}" && /bin/false)
[ -n ${frrgid} ] || (echo "No gid for frr in ${GROUPFILE}" && /bin/false)
[ -n ${frrVTYgid} ] || (echo "No gid for frrvty in ${GROUPFILE}" && /bin/false)
chown ${frruid}:${frrgid} /etc/frr
chown ${frruid}:${frrgid} /etc/frr/*
touch /etc/frr/vtysh.conf
chgrp ${frrvtygid} /etc/frr/vtysh*
chmod 644 /etc/frr/*
ENVIRONMENTFILE=/etc/environment
if ! egrep --quiet '^VTYSH_PAGER=' ${ENVIRONMENTFILE}; then
echo "VTYSH_PAGER=/bin/cat" >> ${ENVIRONMENTFILE}
fi
##################################################
if [ -n "$DEBIAN_SCRIPT_DEBUG" ]; then set -v -x; DEBIAN_SCRIPT_TRACE=1; fi
${DEBIAN_SCRIPT_TRACE:+ echo "#42#DEBUG# RUNNING $0 $*"}
# This is most likely due to the answer "no" to the "really stop the server"
# question in the prerm script.
if [ "$1" = "abort-upgrade" ]; then
exit 0
fi
#DEBHELPER#

12
debian/frr.postrm vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/bash -e
if [ -n "$DEBIAN_SCRIPT_DEBUG" ]; then set -v -x; DEBIAN_SCRIPT_TRACE=1; fi
${DEBIAN_SCRIPT_TRACE:+ echo "#42#DEBUG# RUNNING $0 $*"}
# set -u not because of debhelper
if [ "$1" = "purge" ]; then
rm -rf /etc/frr /var/run/frr /var/log/frr
userdel frr >/dev/null 2>&1 || true
fi
#DEBHELPER#

81
debian/frr.preinst vendored Normal file
View File

@ -0,0 +1,81 @@
#!/bin/bash
if [ -n "$DEBIAN_SCRIPT_DEBUG" ]; then set -v -x; DEBIAN_SCRIPT_TRACE=1; fi
${DEBIAN_SCRIPT_TRACE:+ echo "#42#DEBUG# RUNNING $0 $*"}
set -e
set -u
# creating frrvty group if it isn't already there
if ! getent group frrvty >/dev/null; then
addgroup --system frrvty >/dev/null
fi
# creating frr group if it isn't already there
if ! getent group frr >/dev/null; then
addgroup --system frr >/dev/null
fi
# creating frr user if he isn't already there
if ! getent passwd frr >/dev/null; then
adduser \
--system \
--ingroup frr \
--home /var/run/frr/ \
--gecos "Frr routing suite" \
--shell /bin/false \
frr >/dev/null
fi
# We may be installing over an older version of
# frr and as such we need to intelligently
# check to see if the frr user is in the frrvty
# group.
if ! id frr | grep &>/dev/null 'frrvty'; then
usermod -a -G frrvty frr >/dev/null
fi
# Do not change permissions when upgrading as it would violate policy.
if [ "$1" = "install" ]; then
# Logfiles are group readable in case users were put into the frr group.
d=/var/log/frr/
mkdir -p $d
chown frr:frr $d
chown --quiet frr:frr $d/* | true
chmod u=rwx,go=rx $d
find $d -type f -print0 | xargs -0 --no-run-if-empty chmod u=rw,g=r,o=
# Strict permissions for the sockets.
d=/var/run/frr/
mkdir -p $d
chown frr:frr $d
chown --quiet frr:frr $d/* | true
chmod u=rwx,go=rx $d
find $d -type f -print0 | xargs -0 --no-run-if-empty chmod u=rw,go=
# Config files. Vtysh does not have access to the individual daemons config file
d=/etc/frr/
mkdir -p $d
chown frr:frrvty $d
chmod ug=rwx,o=rx $d
find $d -type f -print0 | xargs -0 --no-run-if-empty chown frr:frr
find $d -type f -print0 | xargs -0 --no-run-if-empty chmod u=rw,g=r,o=
# Exceptions for vtysh.
f=$d/vtysh.conf
if [ -f $f ]; then
chown frr:frrvty $f
chmod u=rw,g=r,o= $f
fi
# Exceptions for vtysh.
f=$d/frr.conf
if [ -f $d/Zebra.conf ]; then
mv $d/Zebra.conf $f
fi
if [ -f $f ]; then
chown frr:frrvty $f
chmod u=rw,g=r,o= $f
fi
fi
#DEBHELPER#

23
debian/frr.prerm vendored Normal file
View File

@ -0,0 +1,23 @@
#!/bin/bash -e
if [ -n "$DEBIAN_SCRIPT_DEBUG" ]; then set -v -x; DEBIAN_SCRIPT_TRACE=1; fi
${DEBIAN_SCRIPT_TRACE:+ echo "#42#DEBUG# RUNNING $0 $*"}
# prerm remove
# old-prerm upgrade new-version
# new-prerm failed-upgrade old-version
# conflictor's-prerm remove in-favour package new-version
# deconfigured's-prerm deconfigure in-favour package-being-installed version removing conflicting-package
case $1 in
remove|upgrade)
;;
failed-upgrade)
# If frr/really_stop was negated then this script exits with return
# code 1 and is called again with "failed-upgrade". Well, exit again.
exit 1
;;
esac
#DEBHELPER#

229
debian/rules vendored Executable file
View File

@ -0,0 +1,229 @@
#!/usr/bin/make -f
# FRRouting Configuration options
######################################
#
# WANT_xxxx --> Set to 1 for enable, 0 for disable
# The following are the defaults. They can be overridden by setting a
# env variable to a different value
WANT_LDP ?= 1
WANT_PIM ?= 1
WANT_OSPFAPI ?= 1
WANT_BGP_VNC ?= 1
WANT_CUMULUS_MODE ?= 0
WANT_MULTIPATH ?= 1
WANT_SNMP ?= 0
WANT_RPKI ?= 0
WANT_BFD ?= 1
# NOTES:
#
# If you use WANT_RPKI, then there is a new dependency for librtr0 package
# and a build dependency of the librtr-dev package.
# While the librtr0 is added to the depenencies automatically, the build
# dependency can't be changed dynamically and building will fail if the
# librtr-dev isn't installed during package build
# Tested versions of both packages can be found at
# https://ci1.netdef.org/browse/RPKI-RTRLIB/latestSuccessful/artifact
#
# If multipath is enabled (WANT_MULTIPATH=1), then set number of multipaths here
# Please be aware that 0 is NOT disabled, but treated as unlimited
MULTIPATH ?= 256
# Set the following to the value required (or leave alone for the default below)
# WANT_FRR_USER is used for the username and groupname of the FRR user account
WANT_FRR_USER ?= frr
WANT_FRR_VTY_GROUP ?= frrvty
# Don't build PDF docs by default
GENERATE_PDF ?= 0
#
####################################
export DH_VERBOSE=1
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
export DH_OPTIONS=-v
ifeq ($(WANT_SNMP), 1)
USE_SNMP=--enable-snmp
$(warning "DEBIAN: SNMP enabled, sorry for your inconvenience")
else
USE_SNMP=--disable-snmp
$(warning "DEBIAN: SNMP disabled, see README.Debian")
endif
ifeq ($(WANT_LDP), 1)
USE_LDP=--enable-ldpd
else
USE_LDP=--disable-ldpd
endif
ifeq ($(WANT_PIM), 1)
USE_PIM=--enable-pimd
else
USE_PIM=--disable-pimd
endif
ifeq ($(WANT_OSPFAPI), 1)
USE_OSPFAPI=--enable-ospfapi=yes
else
USE_OSPFAPI=--enable-ospfapi=no
endif
ifeq ($(WANT_BGP_VNC), 1)
USE_BGP_VNC=--enable-bgp-vnc=yes
else
USE_BGP_VNC=--enable-bgp-vnc=no
endif
USE_FRR_USER=--enable-user=$(WANT_FRR_USER)
USE_FRR_GROUP=--enable-group=$(WANT_FRR_USER)
USE_FRR_VTY_GROUP=--enable-vty-group=$(WANT_FRR_VTY_GROUP)
ifeq ($(WANT_MULTIPATH), 1)
USE_MULTIPATH=--enable-multipath=$(MULTIPATH)
else
USE_MULTIPATH=--disable-multipath
endif
ifeq ($(WANT_CUMULUS_MODE), 1)
USE_CUMULUS=--enable-cumulus=yes
else
USE_CUMULUS=--enable-cumulus=no
endif
ifeq ($(WANT_RPKI), 1)
USE_RPKI=--enable-rpki
else
USE_RPKI=--disable-rpki
endif
ifeq ($(WANT_BFD), 1)
USE_BFD=--enable-bfdd
else
USE_BFD=--disable-bfdd
endif
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
DEBIAN_JOBS := $(subst parallel=,,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
endif
ifdef DEBIAN_JOBS
MAKEFLAGS += -j$(DEBIAN_JOBS)
endif
%:
dh $@ --with=systemd,autoreconf --parallel --dbg-package=frr-dbg --list-missing
override_dh_gencontrol:
ifeq ($(WANT_RPKI), 1)
dh_gencontrol -- -Vdist:Depends="librtr0 (>= 0.5)"
else
dh_gencontrol
endif
override_dh_auto_configure:
# Frr needs /proc to check some BSD vs Linux specific stuff.
# Else it fails with an obscure error message pointing out that
# IPCTL_FORWARDING is an undefined symbol which is not very helpful.
@if ! [ -d /proc/1 ]; then \
echo "./configure needs a mounted /proc"; \
exit 1; \
fi
if ! [ -e config.status ]; then \
dh_auto_configure -- \
--enable-exampledir=/usr/share/doc/frr/examples/ \
--localstatedir=/var/run/frr \
--sbindir=/usr/lib/frr \
--sysconfdir=/etc/frr \
$(USE_SNMP) \
$(USE_OSPFAPI) \
$(USE_MULTIPATH) \
$(USE_LDP) \
--enable-fpm \
$(USE_FRR_USER) $(USE_FRR_GROUP) \
$(USE_FRR_VTY_GROUP) \
--enable-configfile-mask=0640 \
--enable-logfile-mask=0640 \
--enable-werror \
--with-libpam \
--enable-systemd=yes \
--enable-poll=yes \
$(USE_CUMULUS) \
$(USE_PIM) \
--enable-dependency-tracking \
$(USE_BGP_VNC) \
$(USE_RPKI) \
$(USE_BFD) \
$(shell dpkg-buildflags --export=configure); \
fi
override_dh_auto_build:
# doc/ is a bit crazy
ifeq ($(GENERATE_PDF), 1)
dh_auto_build -- -C doc pdf
endif
rm -vf doc/user/_build/texinfo/frr.info
dh_auto_build -- -C doc info
override_dh_auto_test:
override_dh_auto_install:
dh_auto_install
# installed in frr-pythontools
rm debian/tmp/usr/lib/frr/frr-reload.py
# cleaning up the info dir
rm -f debian/tmp/usr/share/info/dir*
# install config files
mkdir -p debian/tmp/etc/frr/
perl -pi -e 's#^!log file #!log file /var/log/frr/#' debian/tmp/usr/share/doc/frr/examples/*sample*
# leftover from previously shipping SMUX client OID MIB
mkdir -p debian/tmp/usr/share/snmp/mibs/
# cleaning .la files
sed -i "/dependency_libs/ s/'.*'/''/" debian/tmp/usr/lib/*.la
sed -i "/dependency_libs/ s/'.*'/''/" debian/tmp/usr/lib/frr/modules/*.la
override_dh_systemd_start:
dh_systemd_start frr.service
override_dh_systemd_enable:
dh_systemd_enable frr.service
# backports
SRCPKG = frr
KNOWN_BACKPORTS = debian8 debian9 ubuntu12.04 ubuntu14.04 ubuntu16.04 ubuntu17.10 ubuntu18.04
DEBIAN_VERSION := $(shell dh_testdir && \
dpkg-parsechangelog -c1 < debian/changelog | \
sed -rn 's/^Version: ?//p')
ORIG_VERSION := $(DEBIAN_VERSION)
-include debian/backports/rules
ifneq ($(TARBALLDIR),)
ifeq ($(wildcard frr-$(ORIG_VERSION).tar.gz),frr-$(ORIG_VERSION).tar.gz)
$(TARBALLDIR)/$(SRCPKG)_$(ORIG_VERSION).orig.tar.gz: \
frr-$(ORIG_VERSION).tar.gz
cp $< $@
else # wildcard frr-$(ORIG_VERSION).tar.gz
# better error message on missing .orig.tar.gz
$(TARBALLDIR)/$(SRCPKG)_$(ORIG_VERSION).orig.tar.gz:
@ echo "\`$(TARBALLDIR)/$(SRCPKG)-$(ORIG_VERSION).tar.gz'" not \
found and not generated by debian/rules. Provided you have the \
necessary packages installed, you can generate it yourself via \
"\"./bootstrap.sh && ./configure && make dist\"".
exit 1
endif # wildcard frr-$(ORIG_VERSION).tar.gz
endif # TARBALLDIR nonempty

1
debian/source/format vendored Normal file
View File

@ -0,0 +1 @@
3.0 (git)

3
debian/tests/control vendored Normal file
View File

@ -0,0 +1,3 @@
Tests: daemons
Depends: frr
Restrictions: needs-root

30
debian/tests/daemons vendored Normal file
View File

@ -0,0 +1,30 @@
#!/bin/bash
#---------------
# Testing frr
#---------------
set -e
# modify config file to enable all daemons and copy config files
CONFIG_FILE=/etc/frr/daemons
DAEMONS=("zebra" "bgpd" "ospfd" "ospf6d" "ripd" "ripngd" "isisd" "pimd")
for daemon in "${DAEMONS[@]}"
do
sed -i -e "s/${daemon}=no/${daemon}=yes/g" $CONFIG_FILE
cp /usr/share/doc/frr/examples/${daemon}.conf.sample /etc/frr/${daemon}.conf
done
# reload frr
/etc/init.d/frr restart > /dev/null 2>&1
# check daemons
for daemon in "${DAEMONS[@]}"
do
echo -n "check $daemon - "
if pidof -x $daemon > /dev/null; then
echo "${daemon} OK"
else
echo "ERROR: ${daemon} IS NOT RUNNING"
exit 1
fi
done

4
debian/watchfrr.rc vendored Normal file
View File

@ -0,0 +1,4 @@
check process watchfrr with pidfile /var/run/frr/watchfrr.pid
start program = "/etc/init.d/frr start watchfrr" with timeout 120 seconds
stop program = "/etc/init.d/frr stop watchfrr"
if 3 restarts within 10 cycles then timeout