git: 54df541db5b4 - main - net/quagga: introduce compatible installation mode
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 03 Jan 2023 08:50:12 UTC
The branch main has been updated by eugen:
URL: https://cgit.FreeBSD.org/ports/commit/?id=54df541db5b43bad19051ca8c5a6d0d8667fd8b5
commit 54df541db5b43bad19051ca8c5a6d0d8667fd8b5
Author: Eugene Grosbein <eugen@FreeBSD.org>
AuthorDate: 2023-01-03 08:38:14 +0000
Commit: Eugene Grosbein <eugen@FreeBSD.org>
CommitDate: 2023-01-03 08:50:02 +0000
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.
---
net/quagga/Makefile | 42 ++++++++++--
net/quagga/{pkg-message => files/pkg-message.in} | 2 +
net/quagga/files/quagga.in | 4 +-
net/quagga/files/watchquagga.in | 2 +-
net/quagga/pkg-plist | 84 ++++++++++++------------
5 files changed, 82 insertions(+), 52 deletions(-)
diff --git a/net/quagga/Makefile b/net/quagga/Makefile
index edce72330110..84eeeebf2b27 100644
--- a/net/quagga/Makefile
+++ b/net/quagga/Makefile
@@ -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>
diff --git a/net/quagga/pkg-message b/net/quagga/files/pkg-message.in
similarity index 86%
rename from net/quagga/pkg-message
rename to net/quagga/files/pkg-message.in
index 39a462ff3210..3c1b5716e9b6 100644
--- a/net/quagga/pkg-message
+++ b/net/quagga/files/pkg-message.in
@@ -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"
diff --git a/net/quagga/files/quagga.in b/net/quagga/files/quagga.in
index 29ad459f17d2..82a814a82a4a 100644
--- a/net/quagga/files/quagga.in
+++ b/net/quagga/files/quagga.in
@@ -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}
}
diff --git a/net/quagga/files/watchquagga.in b/net/quagga/files/watchquagga.in
index 6e1176f483dc..737a9f3cc6ba 100644
--- a/net/quagga/files/watchquagga.in
+++ b/net/quagga/files/watchquagga.in
@@ -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"
diff --git a/net/quagga/pkg-plist b/net/quagga/pkg-plist
index c25931a835d9..a5f68a9cbc8e 100644
--- a/net/quagga/pkg-plist
+++ b/net/quagga/pkg-plist
@@ -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