net/quagga: introduce compatible installation mode

This change makes it possible to build a package not conflicting
with frr, pimd nor openbgpd introducing new port option LEGACY
enabled by default. If disabled, the package is called quagga-compat
and has following differences:

* /usr/local/bin/vtysh renamed to /usr/local/bin/qvtysh;
* libraries install to /usr/local/quagga/lib instead of /usr/local/lib;
* binaries install to /usr/local/quagga/sbin instead of /usr/local/sbin.
* manual pages install to /usr/local/quagga/man;

This is intended to ease migration from quagga to frr
making it possible to stop quagga and start frr at once
and fall back quickly if things go wrong.

Also, remove unneeded USES=ssl. Add other distfile mirrors.
This commit is contained in:
Eugene Grosbein 2023-01-03 15:38:14 +07:00
parent 39f714ce9b
commit 54df541db5
No known key found for this signature in database
GPG Key ID: B0CD1AF226988B28
5 changed files with 82 additions and 52 deletions

View File

@ -1,8 +1,10 @@
PORTNAME= quagga
PORTVERSION= 1.2.4
PORTREVISION= 10
PORTREVISION= 11
CATEGORIES= net
MASTER_SITES= https://github.com/Quagga/quagga/releases/download/${DISTNAME}/
MASTER_SITES= https://github.com/Quagga/quagga/releases/download/${DISTNAME}/ \
http://www.grosbein.net/freebsd/distfiles/ \
LOCAL/eugen
MAINTAINER= eugen@FreeBSD.org
COMMENT= Free RIPv1, RIPv2, OSPFv2, BGP4, IS-IS route software
@ -12,27 +14,26 @@ LICENSE= GPLv2+
LICENSE_FILE= ${WRKSRC}/COPYING
USES= compiler:c11 cpe gmake libtool makeinfo \
perl5 readline ssl
perl5 readline
CONFLICTS= frr7 openbgpd pimd zebra
GNU_CONFIGURE= yes
CONFIGURE_ENV+= GAWK=${AWK}
CFLAGS+= -fcommon
INSTALL_TARGET= install-strip
USE_LDCONFIG= yes
USE_PERL5= build
INFO= quagga
OPTIONS_DEFINE= ISISD PIMD PAM RTADV SNMP TCPSOCKETS DLMALLOC \
OPTIONS_DEFINE= LEGACY ISISD PIMD PAM RTADV SNMP TCPSOCKETS DLMALLOC \
NO_BGP_ANNOUNCE OSPF_NEXTHOP ISIS_TOPOLOGY EXAMPLES
# IRDP needs something freebsd does not seem to have:
# configure: error: 'IRDP requires in_pktinfo at the moment!'
OPTIONS_DEFAULT= ISISD PIMD RTADV
OPTIONS_DEFAULT= LEGACY ISISD PIMD RTADV
OPTIONS_SUB= yes
LEGACY_DESC= Install to legacy paths (conflicts with FRR etc.)
PIMD_DESC= PIM-SSM multicast routing
IRDP_DESC= Enable IRDP server support
ISISD_DESC= Enable ISIS daemon (beta)
@ -84,6 +85,11 @@ NO_BGP_ANNOUNCE_CONFIGURE_OFF= --enable-bgp-announce
USE_RC_SUBR= quagga watchquagga
LEGACY_SUB_LIST= VTYSH=vtysh N=
LEGACY_SUB_LIST_OFF= VTYSH=qvtysh N=${PORTNAME}/
LEGACY_PLIST_SUB= VTYSH=vtysh N=
LEGACY_PLIST_SUB_OFF= VTYSH=qvtysh N=${PORTNAME}/
SUB_LIST+= LOCALSTATE_DIR=${LOCALSTATE_DIR} \
SYSCONF_DIR=${SYSCONF_DIR}
@ -106,4 +112,26 @@ pre-everything::
post-install:
${MKDIR} ${STAGEDIR}${LOCALSTATE_DIR} ${STAGEDIR}${SYSCONF_DIR}
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MLEGACY}
CONFLICTS= frr7 openbgpd pimd
USE_LDCONFIG= yes
.else
PKGNAMESUFFIX= -compat
QPREFIX= ${PREFIX}/${PORTNAME}
GNU_CONFIGURE_PREFIX= ${QPREFIX}
MANPREFIX= ${QPREFIX}
MANDIRS= ${QPREFIX}/man
USE_LDCONFIG= ${QPREFIX}/lib
CONFIGURE_ARGS+= --datarootdir=${QPREFIX} \
--bindir=${PREFIX}/bin \
--includedir=${PREFIX}/include
post-install-LEGACY-off:
${MV} ${STAGEDIR}${PREFIX}/bin/vtysh ${STAGEDIR}${PREFIX}/bin/qvtysh
${MV} ${STAGEDIR}${QPREFIX}/${INFO_PATH}/${PORTNAME}* ${STAGEDIR}${PREFIX}/${INFO_PATH}/
.endif
.include <bsd.port.mk>

View File

@ -1,6 +1,8 @@
[
{ type: install
message: <<EOM
vtysh is installed as %%PREFIX%%/bin/%%VTYSH%%
To enable quagga, add the following lines to rc.conf:
defaultrouter="NO"

View File

@ -82,7 +82,7 @@ do_cmd()
local ret
ret=0
for daemon in ${quagga_daemons}; do
command=%%PREFIX%%/sbin/${daemon}
command=%%PREFIX%%/%%N%%sbin/${daemon}
required_files=%%SYSCONF_DIR%%/${daemon}.conf
pidfile=%%LOCALSTATE_DIR%%/${daemon}.pid
if [ ${quagga_cmd} = "restart" -o ${quagga_cmd} = "start" ]; then
@ -101,7 +101,7 @@ do_cmd()
done
if checkyesno quagga_vtysh_boot; then
echo "Booting for integrated-vtysh-config..."
%%PREFIX%%/bin/vtysh -b
%%PREFIX%%/bin/%%VTYSH%% -b
fi
return ${ret}
}

View File

@ -21,7 +21,7 @@ stop_postcmd="rm -f $pidfile"
watchquagga_enable=${watchquagga_enable:-"NO"}
command=%%PREFIX%%/sbin/watchquagga
command=%%PREFIX%%/%%N%%sbin/watchquagga
pidfile=%%LOCALSTATE_DIR%%/watchquagga.pid
run_rc_command "$1"

View File

@ -1,6 +1,6 @@
bin/bgp_btoa
%%PIMD%%bin/test_igmpv3_join
bin/vtysh
bin/%%VTYSH%%
include/quagga/buffer.h
include/quagga/checksum.h
include/quagga/command.h
@ -54,47 +54,47 @@ include/quagga/workqueue.h
include/quagga/zassert.h
include/quagga/zclient.h
include/quagga/zebra.h
lib/libfpm_pb.a
lib/libfpm_pb.so
lib/libfpm_pb.so.0
lib/libfpm_pb.so.0.0.0
lib/libospf.a
lib/libospf.so
lib/libospf.so.0
lib/libospf.so.0.0.0
lib/libospfapiclient.a
lib/libospfapiclient.so
lib/libospfapiclient.so.0
lib/libospfapiclient.so.0.0.0
lib/libquagga_pb.a
lib/libquagga_pb.so
lib/libquagga_pb.so.0
lib/libquagga_pb.so.0.0.0
lib/libzebra.a
lib/libzebra.so
lib/libzebra.so.1
lib/libzebra.so.1.0.0
man/man1/vtysh.1.gz
man/man8/bgpd.8.gz
%%ISISD%%man/man8/isisd.8.gz
man/man8/ospf6d.8.gz
man/man8/ospfclient.8.gz
man/man8/ospfd.8.gz
%%PIMD%%man/man8/pimd.8.gz
man/man8/ripd.8.gz
man/man8/ripngd.8.gz
man/man8/watchquagga.8.gz
man/man8/zebra.8.gz
sbin/bgpd
%%ISISD%%sbin/isisd
sbin/ospf6d
sbin/ospfclient
sbin/ospfd
%%PIMD%%sbin/pimd
sbin/ripd
sbin/ripngd
sbin/watchquagga
sbin/zebra
%%N%%lib/libfpm_pb.a
%%N%%lib/libfpm_pb.so
%%N%%lib/libfpm_pb.so.0
%%N%%lib/libfpm_pb.so.0.0.0
%%N%%lib/libospf.a
%%N%%lib/libospf.so
%%N%%lib/libospf.so.0
%%N%%lib/libospf.so.0.0.0
%%N%%lib/libospfapiclient.a
%%N%%lib/libospfapiclient.so
%%N%%lib/libospfapiclient.so.0
%%N%%lib/libospfapiclient.so.0.0.0
%%N%%lib/libquagga_pb.a
%%N%%lib/libquagga_pb.so
%%N%%lib/libquagga_pb.so.0
%%N%%lib/libquagga_pb.so.0.0.0
%%N%%lib/libzebra.a
%%N%%lib/libzebra.so
%%N%%lib/libzebra.so.1
%%N%%lib/libzebra.so.1.0.0
%%N%%man/man1/vtysh.1.gz
%%N%%man/man8/bgpd.8.gz
%%ISISD%%%%N%%man/man8/isisd.8.gz
%%N%%man/man8/ospf6d.8.gz
%%N%%man/man8/ospfclient.8.gz
%%N%%man/man8/ospfd.8.gz
%%PIMD%%%%N%%man/man8/pimd.8.gz
%%N%%man/man8/ripd.8.gz
%%N%%man/man8/ripngd.8.gz
%%N%%man/man8/watchquagga.8.gz
%%N%%man/man8/zebra.8.gz
%%N%%sbin/bgpd
%%ISISD%%%%N%%sbin/isisd
%%N%%sbin/ospf6d
%%N%%sbin/ospfclient
%%N%%sbin/ospfd
%%PIMD%%%%N%%sbin/pimd
%%N%%sbin/ripd
%%N%%sbin/ripngd
%%N%%sbin/watchquagga
%%N%%sbin/zebra
%%EXAMPLES%%%%EXAMPLESDIR%%/bgpd.conf.sample
%%EXAMPLES%%%%EXAMPLESDIR%%/bgpd.conf.sample2
%%EXAMPLES%%%%ISISD%%%%EXAMPLESDIR%%/isisd.conf.sample