| @@ -1,116 +1,117 @@ | | | @@ -1,116 +1,117 @@ |
1 | # $NetBSD: Makefile,v 1.1 2020/12/10 16:43:24 kardel Exp $ | | 1 | # $NetBSD: Makefile,v 1.1.2.1 2021/01/22 18:33:17 bsiegert Exp $ |
2 | | | 2 | |
3 | GITHUB_PROJECT= frr | | 3 | GITHUB_PROJECT= frr |
4 | VERSION= 7.5 | | 4 | VERSION= 7.5 |
5 | GITHUB_TAG= frr-${VERSION} | | 5 | GITHUB_TAG= frr-${VERSION} |
6 | DISTNAME= frr-${VERSION} | | 6 | DISTNAME= frr-${VERSION} |
7 | CATEGORIES= net | | 7 | CATEGORIES= net |
8 | MASTER_SITES= ${MASTER_SITE_GITHUB:=FRRouting/} | | 8 | MASTER_SITES= ${MASTER_SITE_GITHUB:=FRRouting/} |
9 | | | 9 | |
10 | MAINTAINER= kardel@NetBSD.org | | 10 | MAINTAINER= kardel@NetBSD.org |
11 | HOMEPAGE= https://github.com/FRRouting/frr/ | | 11 | HOMEPAGE= https://github.com/FRRouting/frr/ |
12 | COMMENT= Frr routing multi protocol suite | | 12 | COMMENT= Frr routing multi protocol suite |
13 | LICENSE= gnu-gpl-v2 | | 13 | LICENSE= gnu-gpl-v2 |
14 | | | 14 | |
15 | CONFLICTS= quagga-[0-9]* | | 15 | CONFLICTS= quagga-[0-9]* |
16 | | | 16 | |
17 | WRKSRC= ${WRKDIR}/frr-frr-${VERSION} | | 17 | WRKSRC= ${WRKDIR}/frr-frr-${VERSION} |
18 | USE_LANGUAGES= c c++ | | 18 | USE_LANGUAGES= c c++ |
19 | USE_TOOLS+= gmake perl bash pkg-config autoconf automake autoreconf | | 19 | USE_TOOLS+= gmake perl bash pkg-config autoconf automake autoreconf bison |
20 | USE_LIBTOOL= YES | | 20 | USE_LIBTOOL= YES |
21 | GNU_CONFIGURE= yes | | 21 | GNU_CONFIGURE= yes |
22 | BUILD_DEFS= VARBASE | | 22 | BUILD_DEFS= VARBASE |
| | | 23 | BISON_REQD= 3.3 |
23 | | | 24 | |
24 | .include "../../mk/bsd.prefs.mk" | | 25 | .include "../../mk/bsd.prefs.mk" |
25 | .include "options.mk" | | 26 | .include "options.mk" |
26 | | | 27 | |
27 | # to pick up the atomic implementation on i386 | | 28 | # to pick up the atomic implementation on i386 |
28 | .if ${MACHINE_ARCH} == "i386" | | 29 | .if ${MACHINE_ARCH} == "i386" |
29 | CPPFLAGS+= -march=i586 | | 30 | CPPFLAGS+= -march=i586 |
30 | .endif | | 31 | .endif |
31 | | | 32 | |
32 | FRR_GROUP?= _frr | | 33 | FRR_GROUP?= _frr |
33 | FRR_VTY_GROUP?= frrvty | | 34 | FRR_VTY_GROUP?= frrvty |
34 | | | 35 | |
35 | FRR_USER?= _frr | | 36 | FRR_USER?= _frr |
36 | FRR_CONF_MODE= 0640 | | 37 | FRR_CONF_MODE= 0640 |
37 | FRR_CONFDIR_MODE= 0755 | | 38 | FRR_CONFDIR_MODE= 0755 |
38 | FRR_LOG_MODE= 0640 | | 39 | FRR_LOG_MODE= 0640 |
39 | | | 40 | |
40 | PKG_SYSCONFDIR_PERMS= ${FRR_USER} ${FRR_VTY_GROUP} ${FRR_CONFDIR_MODE} | | 41 | PKG_SYSCONFDIR_PERMS= ${FRR_USER} ${FRR_VTY_GROUP} ${FRR_CONFDIR_MODE} |
41 | PKG_SYSCONFSUBDIR= frr | | 42 | PKG_SYSCONFSUBDIR= frr |
42 | | | 43 | |
43 | PKG_GECOS.${FRR_USER}= FRRouting User | | 44 | PKG_GECOS.${FRR_USER}= FRRouting User |
44 | PKG_HOME.${FRR_USER}= /nonexistent | | 45 | PKG_HOME.${FRR_USER}= /nonexistent |
45 | PKG_SHELL.${FRR_USER}= /bin/sh | | 46 | PKG_SHELL.${FRR_USER}= /bin/sh |
46 | | | 47 | |
47 | PKG_GROUPS= ${FRR_GROUP} ${FRR_VTY_GROUP} | | 48 | PKG_GROUPS= ${FRR_GROUP} ${FRR_VTY_GROUP} |
48 | PKG_USERS= ${FRR_USER}:${FRR_GROUP} | | 49 | PKG_USERS= ${FRR_USER}:${FRR_GROUP} |
49 | | | 50 | |
50 | RCD_SUPPLIED= bgpd ospf6d ospfd ripd ripngd zebra | | 51 | RCD_SUPPLIED= bgpd ospf6d ospfd ripd ripngd zebra |
51 | RCD_SCRIPTS= ${RCD_SUPPLIED} staticd | | 52 | RCD_SCRIPTS= ${RCD_SUPPLIED} staticd |
52 | | | 53 | |
53 | .for f in ${RCD_SUPPLIED} | | 54 | .for f in ${RCD_SUPPLIED} |
54 | RCD_SCRIPT_SRC.${f}= ${WRKSRC}/pkgsrc/${f}.sh | | 55 | RCD_SCRIPT_SRC.${f}= ${WRKSRC}/pkgsrc/${f}.sh |
55 | .endfor | | 56 | .endfor |
56 | | | 57 | |
57 | CONFIG_TEMPLATE_PATH= share/examples/${PKG_SYSCONFSUBDIR}/configsamples | | 58 | CONFIG_TEMPLATE_PATH= share/examples/${PKG_SYSCONFSUBDIR}/configsamples |
58 | | | 59 | |
59 | USE_TOOLS+= bash:run | | 60 | USE_TOOLS+= bash:run |
60 | REPLACE_BASH= tools/frr.in tools/*.sh.in | | 61 | REPLACE_BASH= tools/frr.in tools/*.sh.in |
61 | | | 62 | |
62 | REPLACE_PYTHON= tools/generate_support_bundle.py tools/frr-reload.py | | 63 | REPLACE_PYTHON= tools/generate_support_bundle.py tools/frr-reload.py |
63 | | | 64 | |
64 | MESSAGE_SUBST+= FRR_USER=${FRR_USER} | | 65 | MESSAGE_SUBST+= FRR_USER=${FRR_USER} |
65 | MESSAGE_SUBST+= FRR_VTY_GROUP=${FRR_VTY_GROUP} | | 66 | MESSAGE_SUBST+= FRR_VTY_GROUP=${FRR_VTY_GROUP} |
66 | | | 67 | |
67 | SUBST_CLASSES+= ids | | 68 | SUBST_CLASSES+= ids |
68 | SUBST_STAGE.ids= pre-configure | | 69 | SUBST_STAGE.ids= pre-configure |
69 | SUBST_MESSAGE.ids= Fixing user/group references. | | 70 | SUBST_MESSAGE.ids= Fixing user/group references. |
70 | SUBST_FILES.ids= pkgsrc/zebra.sh.in | | 71 | SUBST_FILES.ids= pkgsrc/zebra.sh.in |
71 | SUBST_VARS.ids= FRR_USER FRR_VTY_GROUP | | 72 | SUBST_VARS.ids= FRR_USER FRR_VTY_GROUP |
72 | | | 73 | |
73 | SUBST_CLASSES+= workdir | | 74 | SUBST_CLASSES+= workdir |
74 | SUBST_STAGE.workdir= post-configure | | 75 | SUBST_STAGE.workdir= post-configure |
75 | SUBST_MESSAGE.workdir= Fixing absolute workdir references. | | 76 | SUBST_MESSAGE.workdir= Fixing absolute workdir references. |
76 | SUBST_FILES.workdir= lib/version.h | | 77 | SUBST_FILES.workdir= lib/version.h |
77 | SUBST_SED.workdir= -e "s,${WRKDIR},"'{WRKDIR},g' | | 78 | SUBST_SED.workdir= -e "s,${WRKDIR},"'{WRKDIR},g' |
78 | SUBST_VARS.workdir= | | 79 | SUBST_VARS.workdir= |
79 | | | 80 | |
80 | CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR} | | 81 | CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR} |
81 | CONFIGURE_ARGS+= --enable-user=${FRR_USER} | | 82 | CONFIGURE_ARGS+= --enable-user=${FRR_USER} |
82 | CONFIGURE_ARGS+= --enable-group=${FRR_GROUP} | | 83 | CONFIGURE_ARGS+= --enable-group=${FRR_GROUP} |
83 | CONFIGURE_ARGS+= --enable-exampledir=${PREFIX}/${CONFIG_TEMPLATE_PATH} | | 84 | CONFIGURE_ARGS+= --enable-exampledir=${PREFIX}/${CONFIG_TEMPLATE_PATH} |
84 | CONFIGURE_ARGS+= --localstatedir=${VARBASE}/run/frr | | 85 | CONFIGURE_ARGS+= --localstatedir=${VARBASE}/run/frr |
85 | CONFIGURE_ARGS+= --enable-multipath=64 | | 86 | CONFIGURE_ARGS+= --enable-multipath=64 |
86 | CONFIGURE_ARGS+= --enable-vty-group=${FRR_VTY_GROUP} | | 87 | CONFIGURE_ARGS+= --enable-vty-group=${FRR_VTY_GROUP} |
87 | CONFIGURE_ARGS+= --enable-configfile-mask=${FRR_CONF_MODE} | | 88 | CONFIGURE_ARGS+= --enable-configfile-mask=${FRR_CONF_MODE} |
88 | CONFIGURE_ARGS+= --enable-logfile-mask=${FRR_LOG_MODE} | | 89 | CONFIGURE_ARGS+= --enable-logfile-mask=${FRR_LOG_MODE} |
89 | CONFIGURE_ARGS+= --enable-fpm | | 90 | CONFIGURE_ARGS+= --enable-fpm |
90 | CONFIGURE_ARGS+= --with-pkg-git-version | | 91 | CONFIGURE_ARGS+= --with-pkg-git-version |
91 | CONFIGURE_ARGS+= --with-pkg-extra-version=/${DISTNAME} | | 92 | CONFIGURE_ARGS+= --with-pkg-extra-version=/${DISTNAME} |
92 | # CONFIGURE_ARGS+= --enable-address-sanitizer | | 93 | # CONFIGURE_ARGS+= --enable-address-sanitizer |
93 | | | 94 | |
94 | pre-configure: | | 95 | pre-configure: |
95 | cd ${WRKSRC} && ${SH} bootstrap.sh | | 96 | cd ${WRKSRC} && ${SH} bootstrap.sh |
96 | | | 97 | |
97 | .include "../../devel/libyang/buildlink3.mk" | | 98 | .include "../../devel/libyang/buildlink3.mk" |
98 | .include "../../textproc/json-c/buildlink3.mk" | | 99 | .include "../../textproc/json-c/buildlink3.mk" |
99 | .include "../../lang/python/application.mk" | | 100 | .include "../../lang/python/application.mk" |
100 | .include "../../devel/readline/buildlink3.mk" | | 101 | .include "../../devel/readline/buildlink3.mk" |
101 | | | 102 | |
102 | .include "../../mk/bsd.pkg.mk" | | 103 | .include "../../mk/bsd.pkg.mk" |
103 | | | 104 | |
104 | # needs to be here to have ${EGREP} defined | | 105 | # needs to be here to have ${EGREP} defined |
105 | CONFIG_TEMPLATES!= ${EGREP} ${CONFIG_TEMPLATE_PATH:Q} PLIST 2>/dev/null | | 106 | CONFIG_TEMPLATES!= ${EGREP} ${CONFIG_TEMPLATE_PATH:Q} PLIST 2>/dev/null |
106 | CONF_FILES?= | | 107 | CONF_FILES?= |
107 | | | 108 | |
108 | .for l in ${CONFIG_TEMPLATES} | | 109 | .for l in ${CONFIG_TEMPLATES} |
109 | . if ${l:C,^${CONFIG_TEMPLATE_PATH}/(.*)\.sample,\1,} == "vtysh.conf" | | 110 | . if ${l:C,^${CONFIG_TEMPLATE_PATH}/(.*)\.sample,\1,} == "vtysh.conf" |
110 | CONF_FILES_PERMS+= /dev/null ${PKG_SYSCONFDIR}${l:C,^${CONFIG_TEMPLATE_PATH}(/.*)\.sample,\1,} \ | | 111 | CONF_FILES_PERMS+= /dev/null ${PKG_SYSCONFDIR}${l:C,^${CONFIG_TEMPLATE_PATH}(/.*)\.sample,\1,} \ |
111 | ${FRR_USER} ${FRR_VTY_GROUP} ${FRR_CONF_MODE} | | 112 | ${FRR_USER} ${FRR_VTY_GROUP} ${FRR_CONF_MODE} |
112 | . else | | 113 | . else |
113 | CONF_FILES_PERMS+= /dev/null ${PKG_SYSCONFDIR}${l:C,^${CONFIG_TEMPLATE_PATH}(/.*)\.sample,\1,} \ | | 114 | CONF_FILES_PERMS+= /dev/null ${PKG_SYSCONFDIR}${l:C,^${CONFIG_TEMPLATE_PATH}(/.*)\.sample,\1,} \ |
114 | ${FRR_USER} ${FRR_GROUP} ${FRR_CONF_MODE} | | 115 | ${FRR_USER} ${FRR_GROUP} ${FRR_CONF_MODE} |
115 | . endif | | 116 | . endif |
116 | .endfor | | 117 | .endfor |