net/irrd: Update version 2.3.10=>4.0.8

- Change LICENSE to BSD2CLAUSE from BSD4CLAUSE
- Utilizes UID and GID irrd for 252
- Take MAINTAINERSHIP
- Mentioned in UPDATING
- Both irrd-legacy and irrd can bes installed and run concurrently

Approved by:	ume (private mail)
This commit is contained in:
Muhammad Moinur Rahman 2020-04-08 10:59:28 +00:00
parent 9275e8f96d
commit 0a74f33882
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=531106
15 changed files with 183 additions and 215 deletions

2
GIDs
View File

@ -191,7 +191,7 @@ fcron:*:247:
signal-cli:*:248:
sonarqube:*:249:
sems:*:250:
# free: 251
irrd:*:251:
# free: 252
_adsuck:*:253:
imds:*:254:

2
UIDs
View File

@ -196,7 +196,7 @@ fcron:*:247:247::0:0:fcron pseudo-user:/nonexistent:/usr/sbin/nologin
signal-cli:*:248:248::0:0:Signal CLI:/nonexistent:/usr/sbin/nologin
sonarqube:*:249:249::0:0:SonarQube Server:/nonexistent:/usr/sbin/nologin
sems:*:250:250::0:0:SIP Express Media Server:/nonexistent:/usr/sbin/nologin
# free: 251
irrd:*:251:251::0:0:irrd Daemon:/nonexistent:/usr/sbin/nologin
# free: 252
_adsuck:*:253:253::0:0:Adsuck ad blocking user:/nonexistent:/usr/sbin/nologin
imds:*:254:254::0:0:Instance Metadata Service filter:/nonexistent:/usr/sbin/nologin

View File

@ -5,6 +5,22 @@ they are unavoidable.
You should get into the habit of checking this file for changes each time
you update your ports collection, before attempting any port upgrades.
20200408
AFFECTS: users of net/irrd
AUTHOR: bofh@FreeBSD.org
Legacy version of net/irrd has been moved to net/irrd-legacy.
net/irrd has been upgraded to 4.X branch. If someone wants to stick with
legacy version then pkg users have to do something like
# pkg set -o net/irrd:net/irrd-legacy
For portmaster users
# portmaster -o net/irrd-legacy net/irrd
Both of the version can be installed and used concurrently in case there is
a need for migration
20200403:
AFFECTS: users of x11-fonts/fontconfig
AUTHOR: desktop@FreeBSD.org

View File

@ -1,76 +1,73 @@
# Created by: TAKANO Yuji <takano@net-chef.net>
# Created by: Muhammad Moinur Rahman <bofh@FreeBSD.org>
# $FreeBSD$
PORTNAME= irrd
PORTVERSION= 2.3.10
PORTVERSION= 4.0.8
DISTVERSIONPREFIX= v
PORTREVISION= 3
CATEGORIES= net
CATEGORIES= net python
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
PKGNAMESUFFIX= 4
MAINTAINER= ume@FreeBSD.org
COMMENT= Internet Routing Registry database server
MAINTAINER= bofh@FreeBSD.org
COMMENT= Internet Routing Registry database server v4
LICENSE= BSD4CLAUSE
LICENSE_FILE= ${WRKDIR}/${PORTNAME}-legacy-${PORTVERSION}/COPYRIGHT
LICENSE= BSD2CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= wget:ftp/wget
#python-gnupg==0.4.4 needs updating
#twisted==19.2.1 needs updating
BUILD_DEPENDS= \
${PYTHON_PKGNAMEPREFIX}alembic>=1.0.10:databases/py-alembic@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}beautifultable>=0.7.0:devel/py-beautifultable@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dotted>=0.1.8:devel/py-dotted@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}ipy>=1.00:net-mgmt/py-ipy@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}ordered-set>=3.1.1:devel/py-ordered-set@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}passlib>=1.7.1:security/py-passlib@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}psycopg2>=2.8.2:databases/py-psycopg2@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}python-gnupg>=0.4.3:security/py-python-gnupg@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}service_identity>0:security/py-service_identity@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}twisted>=18.9.0:devel/py-twisted@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}ujson>=1.35:devel/py-ujson@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}yaml>=5.1:devel/py-yaml@${PY_FLAVOR}
TEST_DEPENDS= \
${PYTHON_PKGNAMEPREFIX}coverage>=4.5.3:devel/py-coverage@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pytest>=4.4.1:devel/py-pytest@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pytest-cov>=2.6.1:devel/py-pytest-cov@${PY_FLAVOR}
WRKSRC_SUBDIR= src
IRRD_CONFDIR= ${PREFIX}/etc
USES= shebangfix
USE_RC_SUBR= irrd
USES= pgsql python:3.6+
USE_GITHUB= yes
USE_PYTHON= autoplist concurrent distutils
USE_RC_SUBR= irrd4
GH_ACCOUNT= irrdnet
GH_PROJECT= irrd-legacy
GH_PROJECT= ${PORTNAME}
GNU_CONFIGURE= yes
CONFIGURE_ENV= YACC="${YACC}"
MAKE_JOBS_UNSAFE= yes
DESTDIRNAME= STAGEDIR
USERS= ${PORTNAME}
GROUPS= ${PORTNAME}
OPTIONS_DEFINE= IPV6
IPV6_CONFIGURE_ENABLE= ipv6
OPTIONS_DEFINE= DOCS
DOCS_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sphinx>0:textproc/py-sphinx@${PY_FLAVOR}
SHEBANG_FILES= programs/irrdcacher/irrdcacher \
programs/irrdcacher/ripe2rpsl
PLIST_FILES= "@sample etc/${PORTNAME}${PKGNAMESUFFIX}.yaml.sample"
NO_ARCH= yes
PLIST_FILES= etc/irrd.conf.sample \
man/man8/irrd.8.gz \
sbin/irr_notify \
sbin/irr_rpsl_check \
sbin/irr_rpsl_submit \
sbin/irrd \
sbin/irrdcacher \
sbin/ripe2rpsl
SUB_FILES= pkg-message
SUB_LIST= PYTHON_CMD="${PYTHON_CMD}" \
PGSQL_DEFAULT=${PGSQL_DEFAULT} \
USERS=${USERS} \
GROUPS=${GROUPS}
post-patch:
${REINPLACE_CMD} -e 's|/etc/irrd.conf|${IRRD_CONFDIR}/irrd.conf|g' \
${WRKSRC}/programs/IRRd/irrd.8 \
${WRKSRC}/programs/IRRd/main.c \
${WRKSRC}/programs/hdr_comm/read_conf.c \
${WRKSRC}/programs/irr_notify/main.c \
${WRKSRC}/programs/irr_rpsl_check/main.c \
${WRKSRC}/programs/irr_rpsl_submit/main.c \
${WRKSRC}/programs/irrdcacher/irrdcacher \
${WRKSRC}/programs/rps_dist/rpsdist.c
${REINPLACE_CMD} -e 's|\($$(DESTDIR)\)|$$(STAGEDIR)\1|g' \
-e 's|\( -m 755 \)| -s\1|g' \
-e 's| -o root -g bin||g' \
${WRKSRC}/programs/IRRd/Makefile \
${WRKSRC}/programs/irr_notify/Makefile \
${WRKSRC}/programs/irr_rpsl_check/Makefile \
${WRKSRC}/programs/irr_rpsl_submit/Makefile
.include <bsd.port.pre.mk>
.if ${PYTHON_REL} < 3700
BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}dataclasses>=0.6:devel/py-dataclasses@${PY_FLAVOR}
.endif
post-install:
${INSTALL_SCRIPT} ${WRKSRC}/programs/irrdcacher/irrdcacher \
${STAGEDIR}${PREFIX}/sbin
${INSTALL_SCRIPT} ${WRKSRC}/programs/irrdcacher/ripe2rpsl \
${STAGEDIR}${PREFIX}/sbin
${INSTALL_DATA} ${WRKSRC}/../samples/irrd.conf.sample \
${STAGEDIR}${IRRD_CONFDIR}
${INSTALL_DATA} ${WRKSRC}/programs/IRRd/irrd.8 \
${STAGEDIR}${PREFIX}/man/man8
${INSTALL_DATA} ${STAGEDIR}${PYTHON_SITELIBDIR}/${PORTNAME}/conf/default_config.yaml \
${STAGEDIR}${PREFIX}/etc/${PORTNAME}${PKGNAMESUFFIX}.yaml.sample
.include <bsd.port.mk>
do-test:
@(cd ${TEST_WRKSRC} && ${SETENV} pytest ${PORTNAME})
.include <bsd.port.post.mk>

View File

@ -1,3 +1,3 @@
TIMESTAMP = 1582065766
SHA256 (irrdnet-irrd-legacy-v2.3.10_GH0.tar.gz) = acc1b6e5b219c617b1a614cfd586901183a184ee91a42c81473724161a63d65a
SIZE (irrdnet-irrd-legacy-v2.3.10_GH0.tar.gz) = 769512
TIMESTAMP = 1585613545
SHA256 (irrdnet-irrd-v4.0.8_GH0.tar.gz) = dd51d10bfad54bd7272ec90380f29824ae70dc401645e6e3bac9554798f4104b
SIZE (irrdnet-irrd-v4.0.8_GH0.tar.gz) = 257853

View File

@ -1,28 +0,0 @@
#!/bin/sh
# $FreeBSD$
# PROVIDE: irrd
# REQUIRE: DAEMON
# BEFORE: LOGIN
# KEYWORD: shutdown
# Define these irrd_* variables in one of these files:
# /etc/rc.conf
# /etc/rc.conf.local
# /etc/rc.conf.d/irrd
#
# DO NOT CHANGE THESE DEFAULT VALUES HERE
#
irrd_enable="${irrd_enable:-NO}" # Enable irrd
#irrd_program="%%PREFIX%%/sbin/irrd" # Location of irrd
irrd_flags="${irrd_flags:--u}" # Flags to irrd program
. /etc/rc.subr
name="irrd"
rcvar=irrd_enable
command="%%PREFIX%%/sbin/irrd"
required_files="%%PREFIX%%/etc/irrd.conf"
load_rc_config $name
run_rc_command "$1"

45
net/irrd/files/irrd4.in Normal file
View File

@ -0,0 +1,45 @@
#!/bin/sh
# $FreeBSD$
# PROVIDE: irrd
# REQUIRE: DAEMON
# BEFORE: LOGIN
# KEYWORD: shutdown
# Define these irrd_* variables in one of these files:
# /etc/rc.conf
# /etc/rc.conf.local
# /etc/rc.conf.d/irrd
#
# DO NOT CHANGE THESE DEFAULT VALUES HERE
#
# irrd4_enable (bool): Set to NO by default.
# Set it to YES to enable irrd4
# irrd4_uid (string): Set to irrd by default.
# irrd4_gid (string): Set to irrd by default.
# irrd4_logfile (path): Set to /var/log/irrd4.log by default.
# irrd4_pidfile (path): Set to /var/run/irrd4.pid by default.
# irrd4_config (path): Set to %%PREFIX%%/etc/irrd4.yaml by default.
. /etc/rc.subr
name="irrd4"
rcvar=irrd4_enable
command="%%PREFIX%%/bin/twistd"
load_rc_config $name
irrd4_enable=${irrd4_enable-"NO"}
irrd4_uid=${irrd4_uid-"%%USERS%%"}
irrd4_gid=${irrd4_gid-"%%GROUPS%%"}
irrd4_logfile=${irrd4_logfile-"/var/log/irrd4.log"}
irrd4_pidfile=${irrd4_pidfile-"/var/run/irrd4.pid"}
irrd4_config=${irrd4_config-"%%PREFIX%%/etc/irrd4.yaml"}
required_files="${irrd4_config}"
command_interpreter="%%PYTHON_CMD%%"
pidfile=${irrd4_pidfile}
command_args="--originalname -u ${irrd4_uid} -g ${irrd4_gid} --pidfile ${pidfile} -l ${irrd4_logfile} irrd -c ${irrd4_config}"
run_rc_command "$1"

View File

@ -1,11 +0,0 @@
--- lib/config/config_file.c.orig 2009-03-25 00:38:11.000000000 +0300
+++ lib/config/config_file.c 2011-06-24 17:09:08.000000000 +0400
@@ -772,7 +772,7 @@
Deref_Prefix (prefix);
return (1);
}
- if (prefix_compare2 (UII->prefix, prefix) != 0) {
+ if ( UII->prefix == NULL || prefix_compare2 (UII->prefix, prefix) != 0) {
set_uii (UII, UII_ADDR, prefix, 0);
listen_uii2 (NULL);
}

View File

@ -1,19 +0,0 @@
--- configure.orig 2006-09-12 17:40:55 UTC
+++ configure
@@ -2638,7 +2638,6 @@
THREAD_CFLAGS="-D_THREAD_SAFE -pthread"
fi
CRYPT_LIB="-lcrypt"
- ac_pthrlib="c_r"
;;
linux* )
CRYPT_LIB="-lcrypt"
@@ -6011,7 +6010,7 @@
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <netinet/in.h>
+#include <netinet6/in6.h>
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |

View File

@ -1,16 +0,0 @@
--- programs/IRRd/database.c~ 2009-03-25 00:21:26.000000000 +0300
+++ programs/IRRd/database.c 2012-03-15 10:53:03.000000000 +0400
@@ -59,9 +59,11 @@
db->radix_v4 = New_Radix (32);
db->radix_v6 = New_Radix (128);
- fclose (db->db_fp);
- db->db_fp = NULL;
+ if (db->db_fp) {
+ fclose (db->db_fp);
+ db->db_fp = NULL;
+ }
}

View File

@ -1,22 +0,0 @@
Index: lib/mrt/prefix.c
diff -u -p lib/mrt/prefix.c.orig lib/mrt/prefix.c
--- lib/mrt/prefix.c.orig Fri Aug 31 03:10:31 2001
+++ lib/mrt/prefix.c Mon May 1 12:05:11 2006
@@ -15,7 +15,7 @@
#include <ws2tcpip.h>
#endif /* NT */
-#ifndef __GLIBC__
+#if !defined(__GLIBC__) && !defined(__FreeBSD__)
#ifdef __osf__
/* apparently, OSF's gethostby{name,addr}_r's are different, broken, and
@@ -50,7 +50,7 @@ struct hostent *gethostbyaddr_r
For the time being, this part tries to convert Linux glibc 2.X
gethostXX_r into Solaris's that we use to code MRT. -- masaki
*/
-#if __GLIBC__ >= 2
+#if __GLIBC__ >= 2 || (defined(__FreeBSD__) && defined(HAVE_GETHOSTBYNAME_R))
/* Glibc 2.X
int gethostbyname_r (const char *name, struct hostent *result_buf,

View File

@ -0,0 +1,35 @@
--- setup.py.orig 2019-11-12 12:54:56 UTC
+++ setup.py
@@ -23,19 +23,19 @@ setuptools.setup(
# This list must be kept in sync with requirements.txt version-wise,
# but should not include packages used for testing, generating docs
# or packages.
- 'python-gnupg==0.4.4',
- 'passlib==1.7.1',
- 'IPy==1.0.0',
- 'dataclasses==0.6',
- 'ordered-set==3.1.1',
- 'dotted==0.1.8',
- 'beautifultable==0.7.0',
- 'PyYAML==5.1',
- 'psycopg2-binary==2.8.2',
- 'SQLAlchemy==1.3.3',
- 'alembic==1.0.10',
- 'ujson==1.35',
- 'twisted==19.2.1',
+ 'python-gnupg>=0.4.3',
+ 'passlib>=1.7.1',
+ 'IPy>=1.0.0',
+ 'dataclasses==0.6; python_version<"3.7"',
+ 'ordered-set>=3.1.1',
+ 'dotted>=0.1.8',
+ 'beautifultable>=0.7.0',
+ 'PyYAML>=5.1',
+ 'psycopg2>=2.8.2',
+ 'SQLAlchemy>=1.2.19',
+ 'alembic>=1.0.10',
+ 'ujson>=1.35',
+ 'twisted>=18.9.0',
],
entry_points={
'console_scripts': [

View File

@ -1,55 +0,0 @@
--- programs/IRRd/uii_commands.c.orig Tue Feb 5 05:53:57 2002
+++ programs/IRRd/uii_commands.c Thu Apr 22 18:13:29 2004
@@ -14,6 +14,8 @@
#include <ctype.h>
#include "irrd.h"
+#include <errno.h>
+
#include <fcntl.h>
#ifndef SETPGRP_VOID
#endif
@@ -720,6 +722,10 @@
void run_cmd (char *cmd, FILE **in, FILE **out) {
int pin[2], pout[2];
+ int pid;
+ int omask, pstat;
+ pid_t ppid;
+ extern int errno;
if (in != NULL)
*in = NULL;
@@ -733,7 +739,9 @@
if (out != NULL)
pipe (pout);
- if (fork() == 0) { /* We're the child */
+/* if (fork() == 0) { */
+ pid = fork();
+ if (pid == 0) { /* We're the child */
if (in != NULL) {
close (pin[1]);
dup2 (pin[0], 0);
@@ -747,7 +755,7 @@
close (pout[1]);
}
- execl("/bin/sh", "sh", "-c", cmd, NULL);
+ execlp("/bin/sh", "sh", "-c", cmd, NULL);
_exit(127);
}
@@ -761,6 +769,12 @@
close (pin[0]);
*in = fdopen (pin[1], "w");
}
+
+ omask = sigblock(sigmask(SIGINT)|sigmask(SIGQUIT)|sigmask(SIGHUP));
+ do {
+ ppid = waitpid(pid, (int *) &pstat, 0);
+ } while (pid == -1 && errno == EINTR);
+ (void)sigsetmask(omask);
}
int kill_irrd (uii_connection_t *uii) {

View File

@ -0,0 +1,26 @@
[
{ type: install
message: <<EOM
1. A working copy of postgresql-server and postgresql-contrib is required.
2. For a fresh install the following should do:
pkg install postgresql%%PGSQL_DEFAULT%%-server postgresql%%PGSQL_DEFAULT%%-contrib
3. Change the related postgresql server configuration like the following:
https://irrd.readthedocs.io/en/stable/admins/deployment.html#postgresql-configuration
Follow the documentation to create a database
4. Configure irrd accordingly following the documentation:
https://irrd.readthedocs.io/en/stable/admins/configuration.html
5. Enable irrd at startup with:
sysrc irrd4_enable=YES
6. Start the service:
service irrd4 start
7. First sync of whois database might take a long time depending on resources available
EOM
}
]

View File

@ -1,3 +1,3 @@
Internet Routing Registry Daemon (IRRd).
Internet Routing Registry Daemon (IRRd) v4.
WWW: http://www.irrd.net/