diff options
Diffstat (limited to 'databases/neo4j')
-rw-r--r-- | databases/neo4j/Makefile | 61 | ||||
-rw-r--r-- | databases/neo4j/files/neo4j.in | 31 | ||||
-rw-r--r-- | databases/neo4j/files/neo4j.sh.in | 4 | ||||
-rw-r--r-- | databases/neo4j/files/patch-conf_neo4j.conf | 64 | ||||
-rw-r--r-- | databases/neo4j/pkg-plist | 9 |
5 files changed, 140 insertions, 29 deletions
diff --git a/databases/neo4j/Makefile b/databases/neo4j/Makefile index c63d9df7a7bc..233c88b5011a 100644 --- a/databases/neo4j/Makefile +++ b/databases/neo4j/Makefile @@ -1,5 +1,6 @@ PORTNAME= neo4j DISTVERSION= 4.4.44 +PORTREVISION= 1 CATEGORIES= databases java MASTER_SITES= http://dist.neo4j.org/ DISTNAME= ${PORTNAME}-community-${DISTVERSION}-unix @@ -8,29 +9,58 @@ MAINTAINER= otis@FreeBSD.org COMMENT= High performance graph store and database WWW= https://neo4j.com -LICENSE= GPLv3 +# Bouncy Castle License is in fact MIT. +# Scala is licensed under BSD3CLAUSE. +# Java Servlet API is licensed under CDDL and GPLv2wCE +LICENSE= APACHE20 BSD2CLAUSE BSD3CLAUSE CDDL GPLv2wCE GPLv3 ISCL MIT MPL20 OFL11 +LICENSE_COMB= multi +LICENSE_NAME_GPLv2wCE= GPLv2 with Classpath Exception +LICENSE_FILE_GPLv3= ${WRKSRC}/LICENSE.txt +LICENSE_FILE= ${WRKSRC}/LICENSES.txt +LICENSE_PERMS_GPLv2wCE= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept -RUN_DEPENDS= bash:shells/bash - -WRKSRC= ${WRKDIR}/${DISTNAME:S,-unix,,} -NO_BUILD= yes USES= cpe java shebangfix -SHEBANG_FILES= bin/cypher-shell bin/neo4j-admin JAVA_VERSION= 11 USE_RC_SUBR= ${PORTNAME} + +SHEBANG_FILES= bin/cypher-shell bin/neo4j-admin + +NO_ARCH= yes +NO_BUILD= yes + SUB_FILES= ${PORTNAME}.sh -SUB_LIST= LOGDIR=${LOGDIR} RUNDIR=${RUNDIR} +SUB_LIST= JAVA_HOME=${JAVA_HOME} \ + LOGDIR=${LOGDIR} \ + RUNDIR=${RUNDIR} + +WRKSRC= ${WRKDIR}/${DISTNAME:S,-unix,,} + +USERS?= neo4j +GROUPS?= neo4j -PLIST_SUB= DBDIR=${DBDIR} DISTVERSION=${DISTVERSION} +PLIST_SUB= CERTDIR=${CERTDIR} \ + DBDATADIR=${DBDATADIR} \ + DBDIR=${DBDIR} \ + DBIMPORTDIR=${DBIMPORTDIR} \ + DISTVERSION=${DISTVERSION} \ + GROUPS=${GROUPS} \ + METRICSDIR=${METRICSDIR} \ + USERS=${USERS} +CERTDIR= ${ETCDIR}/certificates +DBDATADIR= ${DBDIR}/data DBDIR= ${DESTDIR}/var/db/${PORTNAME} +DBIMPORTDIR= ${DBDIR}/import LOGDIR= ${DESTDIR}/var/log/${PORTNAME} -RUNDIR= ${DESTDIR}/var/run/ +METRICSDIR= ${DBDIR}/metrics +RUNDIR= ${DESTDIR}/var/run/${PORTNAME} NEO4JDIR= ${PREFIX}/${PORTNAME} -NEO4J_CONFDIR= ${PREFIX}/etc +NEO4J_CONFDIR= ${PREFIX}/etc/neo4j post-patch: - ${REINPLACE_CMD} 's,%%DBDIR%%,${DBDIR},g;s,%%JAVA_HOME%%,${JAVA_HOME},g;s,%%LOGDIR%%,${LOGDIR},g;s,%%PREFIX%%,${PREFIX},g;s,%%RUNDIR%%,${RUNDIR},g' \ + ${REINPLACE_CMD} 's,%%DBDATADIR%%,${DBDATADIR},g;s,%%DBDIR%%,${DBDIR},g;\ + s,%%JAVA_HOME%%,${JAVA_HOME},g;s,%%LOGDIR%%,${LOGDIR},g;s,%%PREFIX%%,${PREFIX},g;s,%%RUNDIR%%,${RUNDIR},g;\ + s,%%DBIMPORTDIR%%,${DBIMPORTDIR},g;s,%%CERTDIR%%,${CERTDIR},g' \ ${WRKSRC}/bin/cypher-shell ${WRKSRC}/bin/neo4j* \ ${WRKSRC}/conf/neo4j.conf @@ -38,6 +68,7 @@ post-patch: ${WRKSRC}/bin/neo4j do-install: + ${MKDIR} ${STAGEDIR}${ETCDIR} ${INSTALL_SCRIPT} ${WRKDIR}/${PORTNAME}.sh ${STAGEDIR}${PREFIX}/bin/${PORTNAME} ${MKDIR} ${STAGEDIR}${PREFIX}/${PORTNAME}/libexec/tools ${INSTALL_SCRIPT} ${WRKSRC}/bin/tools/* \ @@ -49,8 +80,12 @@ do-install: ${INSTALL_SCRIPT} ${WRKSRC}/lib/* ${STAGEDIR}${PREFIX}/${PORTNAME}/lib .for f in ${PORTNAME}.conf ${INSTALL_DATA} ${WRKSRC}/conf/$f \ - ${STAGEDIR}${PREFIX}/etc/$f.sample + ${STAGEDIR}${ETCDIR}/$f.sample .endfor - ${MKDIR} ${STAGEDIR}${DBDIR} ${STAGEDIR}${PREFIX}/etc/neo4j-certificates + ${MKDIR} ${STAGEDIR}${DBDIR} \ + ${STAGEDIR}${DBDATADIR} \ + ${STAGEDIR}${DBIMPORTDIR} \ + ${STAGEDIR}${METRICSDIR} \ + ${STAGEDIR}${CERTDIR} .include <bsd.port.mk> diff --git a/databases/neo4j/files/neo4j.in b/databases/neo4j/files/neo4j.in index 6cb20b01c3ea..a7f9e6f83cd7 100644 --- a/databases/neo4j/files/neo4j.in +++ b/databases/neo4j/files/neo4j.in @@ -7,6 +7,18 @@ # Add the following line to /etc/rc.conf to enable neo4j: # # neo4j_enable=YES +# +# The following rc.conf variable can be set: +# +# For user/group to run neo4j under: +# +# neo4j_user (str) Default: neo4j +# neo4j_group (str) Default: neo4j +# +# For service jail: +# +# neo4j_svcj_options (str) Default: net_basic +# . /etc/rc.subr @@ -17,21 +29,30 @@ desc="Graphing database" load_rc_config $name : ${neo4j_enable:=NO} +: ${neo4j_user=neo4j} +: ${neo4j_group=neo4j} +: ${neo4j_svcj_options:=net_basic} +: ${neo4j_env:="HOME=%%DBDIR%% NEO4J_CONF=%%ETCDIR%% JAVA_HOME=%%JAVA_HOME%%"} command=%%PREFIX%%/bin/neo4j -start_cmd="$command start" +procname=%%JAVA_HOME%%/bin/java +start_cmd="su -m $neo4j_user -c \"$command start\"" start_precmd=neo4j_prestart -stop_cmd="$command stop" -status_cmd="$command status" +stop_cmd="su -m $neo4j_user -c \"$command stop\"" +status_cmd="su -m $neo4j_user -c \"$command status\"" neo4j_prestart() { - NEO4J_DATA=%%DBDIR%% + NEO4J_DATA=%%DBDIR%%/data + NEO4J_METRICS=%%DBDIR%%/metrics NEO4J_LIB=%%PREFIX%%/neo4j/lib NEO4J_LOGS=%%LOGDIR%% NEO4J_PLUGINS=${NEO4J_LIB}/plugins NEO4J_RUN=%%RUNDIR%% - mkdir -p ${NEO4J_LOGS} ${NEO4J_RUN} + [ -d ${NEO4J_LOGS} ] || install -d -o ${neo4j_user} -g ${neo4j_group} -m 0750 ${NEO4J_LOGS} + [ -d ${NEO4J_RUN} ] || install -d -o ${neo4j_user} -g ${neo4j_group} ${NEO4J_RUN} + [ -d ${NEO4J_DATA} ] || install -d -o ${neo4j_user} -g ${neo4j_group} -m 0750 ${NEO4J_DATA} + [ -d ${NEO4J_METRICS} ] || install -d -o ${neo4j_user} -g ${neo4j_group} -m 0750 ${NEO4J_METRICS} } run_rc_command $1 diff --git a/databases/neo4j/files/neo4j.sh.in b/databases/neo4j/files/neo4j.sh.in index 01a498c14583..f2704e7bc0fd 100644 --- a/databases/neo4j/files/neo4j.sh.in +++ b/databases/neo4j/files/neo4j.sh.in @@ -1,3 +1,3 @@ -#!/usr/bin/env bash - +#!/bin/sh +export JAVA_HOME=${JAVA_HOME:-"%%JAVA_HOME%%"} exec %%PREFIX%%/bin/$(basename $0) ${1+"$@"} diff --git a/databases/neo4j/files/patch-conf_neo4j.conf b/databases/neo4j/files/patch-conf_neo4j.conf index d7a5984f2abc..7fd32a3f5f5b 100644 --- a/databases/neo4j/files/patch-conf_neo4j.conf +++ b/databases/neo4j/files/patch-conf_neo4j.conf @@ -1,17 +1,69 @@ ---- conf/neo4j.conf.orig 2022-05-06 21:00:03 UTC +--- conf/neo4j.conf.orig 2025-05-15 11:34:49 UTC +++ conf/neo4j.conf -@@ -9,11 +9,11 @@ +@@ -9,18 +9,18 @@ #dbms.default_database=neo4j # Paths of directories in the installation. -#dbms.directories.data=data -+dbms.directories.data=/var/db/neo4j ++dbms.directories.data=%%DBDATADIR%% #dbms.directories.plugins=plugins -#dbms.directories.logs=logs -+dbms.directories.logs=/var/log/neo4j ++dbms.directories.logs=%%LOGDIR%% #dbms.directories.lib=lib -#dbms.directories.run=run -+dbms.directories.run=/var/run/ ++dbms.directories.run=%%RUNDIR%% #dbms.directories.licenses=licenses - #dbms.directories.transaction.logs.root=data/transactions +-#dbms.directories.transaction.logs.root=data/transactions ++dbms.directories.transaction.logs.root=%%DBDIR%%/transactions + + # This setting constrains all `LOAD CSV` import files to be under the `import` directory. Remove or comment it out to + # allow files to be loaded from anywhere in the filesystem; this introduces possible security problems. See the + # `LOAD CSV` section of the manual for details. +-dbms.directories.import=import ++dbms.directories.import=%%DBIMPORTDIR%% + + # Whether requests to Neo4j are authenticated. + # To disable authentication, uncomment this line +@@ -118,8 +118,8 @@ dbms.connector.https.enabled=false + # Allowable values are 'bolt', 'https', 'cluster' or 'backup'. + + # E.g if bolt and https connectors should use the same policy, the following could be declared +-# dbms.ssl.policy.bolt.base_directory=certificates/default +-# dbms.ssl.policy.https.base_directory=certificates/default ++# dbms.ssl.policy.bolt.base_directory=%%CERTDIR%%/default ++# dbms.ssl.policy.https.base_directory=%%CERTDIR%%/default + # However, it's strongly encouraged to not use the same key pair for multiple scopes. + # + # N.B: Note that a connector must be configured to support/require +@@ -157,27 +157,27 @@ dbms.connector.https.enabled=false + + # Bolt SSL configuration + #dbms.ssl.policy.bolt.enabled=true +-#dbms.ssl.policy.bolt.base_directory=certificates/bolt ++#dbms.ssl.policy.bolt.base_directory=%%CERTDIR%%/bolt + #dbms.ssl.policy.bolt.private_key=private.key + #dbms.ssl.policy.bolt.public_certificate=public.crt + #dbms.ssl.policy.bolt.client_auth=NONE + + # Https SSL configuration + #dbms.ssl.policy.https.enabled=true +-#dbms.ssl.policy.https.base_directory=certificates/https ++#dbms.ssl.policy.https.base_directory=%%CERTDIR%%/https + #dbms.ssl.policy.https.private_key=private.key + #dbms.ssl.policy.https.public_certificate=public.crt + #dbms.ssl.policy.https.client_auth=NONE + + # Cluster SSL configuration + #dbms.ssl.policy.cluster.enabled=true +-#dbms.ssl.policy.cluster.base_directory=certificates/cluster ++#dbms.ssl.policy.cluster.base_directory=%%CERTDIR%%/cluster + #dbms.ssl.policy.cluster.private_key=private.key + #dbms.ssl.policy.cluster.public_certificate=public.crt + + # Backup SSL configuration + #dbms.ssl.policy.backup.enabled=true +-#dbms.ssl.policy.backup.base_directory=certificates/backup ++#dbms.ssl.policy.backup.base_directory=%%CERTDIR%%/backup + #dbms.ssl.policy.backup.private_key=private.key + #dbms.ssl.policy.backup.public_certificate=public.crt diff --git a/databases/neo4j/pkg-plist b/databases/neo4j/pkg-plist index 6b8192f9c5d7..3cda72ff21e4 100644 --- a/databases/neo4j/pkg-plist +++ b/databases/neo4j/pkg-plist @@ -1,7 +1,7 @@ bin/cypher-shell bin/neo4j bin/neo4j-admin -@sample etc/neo4j.conf.sample +@sample %%ETCDIR%%/neo4j.conf.sample neo4j/lib/FastInfoset-1.2.16.jar neo4j/lib/WMI4Java-1.6.3.jar neo4j/lib/annotations-%%DISTVERSION%%.jar @@ -172,6 +172,9 @@ neo4j/lib/txw2-2.3.2.jar neo4j/lib/zstd-jni-1.5.0-4.jar neo4j/lib/zstd-proxy-%%DISTVERSION%%.jar neo4j/libexec/tools/cypher-shell.jar -@dir etc/neo4j-certificates @dir neo4j/lib/plugins -@dir %%DBDIR%% +@dir(%%USERS%%,%%GROUPS%%,750) %%CERTDIR%% +@dir(%%USERS%%,%%GROUPS%%,750) %%DBDIR%% +@dir(%%USERS%%,%%GROUPS%%,750) %%DBDATADIR%% +@dir(%%USERS%%,%%GROUPS%%,750) %%METRICSDIR%% +@dir(%%USERS%%,%%GROUPS%%,750) %%DBIMPORTDIR%% |