diff --git a/net/quagga/Makefile b/net/quagga/Makefile index 9417f6677533..ad20890eef83 100644 --- a/net/quagga/Makefile +++ b/net/quagga/Makefile @@ -1,138 +1,138 @@ PORTNAME= quagga PORTVERSION= 1.2.4 -PORTREVISION= 12 +PORTREVISION= 13 CATEGORIES= net 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 WWW= https://www.quagga.net/ LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC}/COPYING USES= compiler:c11 cpe gmake libtool makeinfo \ perl5 readline GNU_CONFIGURE= yes GNU_CONFIGURE_MANPREFIX= ${PREFIX}/share CONFIGURE_ENV+= GAWK=${AWK} CFLAGS+= -fcommon INSTALL_TARGET= install-strip USE_PERL5= build INFO= quagga 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= 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) ISIS_TOPOLOGY_DESC= Enable IS-IS topology generator PAM_DESC= PAM authentication for vtysh RTADV_DESC= IPv6 Router Advertisements TCPSOCKETS_DESC= Use TCP/IP sockets for protocol daemons DLMALLOC_DESC= Use dlmalloc (makes bgpd much faster) NO_BGP_ANNOUNCE_DESC= Turn off BGP route announcement OSPF_NEXTHOP_DESC= Set ip next-hop in OSPF route maps ENABLE_USER?= quagga ENABLE_GROUP?= quagga USERS= ${ENABLE_USER} GROUPS= ${ENABLE_GROUP} SYSCONF_DIR?= ${ETCDIR} LOCALSTATE_DIR?=/var/run/quagga CONFIGURE_ARGS= --enable-user=${ENABLE_USER} \ --enable-group=${ENABLE_GROUP} \ --sysconfdir=${SYSCONF_DIR} \ --localstatedir=${LOCALSTATE_DIR} \ --enable-vtysh .if defined(ENABLE_VTY_GROUP) CONFIGURE_ARGS+=--enable-vty-group=${ENABLE_VTY_GROUP} .endif EXAMPLES_CONFIGURE_ON= --enable-exampledir=${PREFIX}/share/examples/quagga EXAMPLES_CONFIGURE_OFF= --disable-exampledir ISISD_CONFIGURE_ENABLE= isisd ISIS_TOPOLOGY_CONFIGURE_ENABLE= isis-topology PIMD_CONFIGURE_ENABLE= pimd IRDP_CONFIGURE_ENABLE= irdp PAM_CONFIGURE_WITH= libpam RTADV_CONFIGURE_ENABLE= rtadv SNMP_CONFIGURE_ENABLE= snmp SNMP_LIB_DEPENDS= libnetsnmp.so:net-mgmt/net-snmp TCPSOCKETS_CONFIGURE_ENABLE= tcp-zebra DLMALLOC_LIB_DEPENDS= libdlmalloc.so:devel/libdlmalloc DLMALLOC_LIBS= -L${LOCALBASE}/lib -ldlmalloc OSPF_NEXTHOP_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-ospf-nexthop # inverse option. NO_BGP_ANNOUNCE_CONFIGURE_ON= --disable-bgp-announce 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} PLIST_SUB+= LOCALSTATE_DIR=${LOCALSTATE_DIR} \ SYSCONF_DIR=${SYSCONF_DIR} \ ENABLE_USER=${ENABLE_USER} \ ENABLE_GROUP=${ENABLE_GROUP} pre-everything:: @${ECHO} "=============================================================" @${ECHO} @${ECHO} "You can build ${PORTNAME} with the following options:" @${ECHO} @${ECHO} "ENABLE_USER Specify user to run Quagga suite as" @${ECHO} "ENABLE_GROUP Specify group to run Quagga suite as" @${ECHO} "ENABLE_VTY_GROUP Specify group for vty socket ownership" @${ECHO} "SYSCONF_DIR Specify directory for Quagga configuration files" @${ECHO} "LOCALSTATE_DIR Specify directory for Quagga runtime files" post-install: ${MKDIR} ${STAGEDIR}${LOCALSTATE_DIR} ${STAGEDIR}${SYSCONF_DIR} .include .if ${PORT_OPTIONS:MLEGACY} -CONFLICTS= frr7 openbgpd pimd +CONFLICTS= frr* openbgpd pimd USE_LDCONFIG= yes .else PKGNAMESUFFIX= -compat QPREFIX= ${PREFIX}/${PORTNAME} GNU_CONFIGURE_PREFIX= ${QPREFIX} GNU_CONFIGURE_MANPREFIX= ${QPREFIX}/share MANDIRS= ${QPREFIX}/share/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 diff --git a/net/quagga/files/patch-lib_privs.c b/net/quagga/files/patch-lib_privs.c new file mode 100644 index 000000000000..159920b4cb6a --- /dev/null +++ b/net/quagga/files/patch-lib_privs.c @@ -0,0 +1,13 @@ +--- lib/privs.c.orig 2018-02-20 04:24:55.000000000 +0700 ++++ lib/privs.c 2024-05-06 19:00:18.907694000 +0700 +@@ -717,8 +717,8 @@ zprivs_init(struct zebra_privs_t *zprivs) + + if (zprivs->user) + { +- ngroups = sizeof(groups); +- if ( (ngroups = getgrouplist (zprivs->user, zprivs_state.zgid, groups, &ngroups )) < 0 ) ++ ngroups = nitems(groups); ++ if (getgrouplist (zprivs->user, zprivs_state.zgid, groups, &ngroups) < 0 ) + { + /* cant use log.h here as it depends on vty */ + fprintf (stderr, "privs_init: could not getgrouplist for user %s\n", diff --git a/net/quagga/files/patch-vtysh.c b/net/quagga/files/patch-vtysh.c index e5779a1de11d..2e0b1b6cd4cb 100644 --- a/net/quagga/files/patch-vtysh.c +++ b/net/quagga/files/patch-vtysh.c @@ -1,29 +1,29 @@ --- vtysh/vtysh.c.orig 2018-02-20 00:24:55.000000000 +0300 +++ vtysh/vtysh.c 2022-12-31 19:56:32.203501000 +0300 @@ -246,7 +246,7 @@ vtysh_client_execute (struct vtysh_client *vclient, co void vtysh_pager_init (void) { - char *pager_defined; + char *pager_defined, *s; pager_defined = getenv ("VTYSH_PAGER"); @@ -254,6 +254,17 @@ vtysh_pager_init (void) vtysh_pager_name = strdup (pager_defined); else vtysh_pager_name = strdup ("more"); + + s = getenv("MORE"); + if (s != NULL) + return; + + s = strrchr(vtysh_pager_name, '/'); -+ s = (s == NULL ? vtysh_pager_name : s++); ++ s = (s == NULL ? vtysh_pager_name : s + 1); + if (strcmp(s, "more") != 0 && strcmp(s, "less") != 0) + return; + + putenv("MORE=-E"); } /* Command execution over the vty interface. */