diff --git a/dev-db/neo4j-community/Manifest b/dev-db/neo4j-community/Manifest index eac5bf03f..9fbbb2454 100644 --- a/dev-db/neo4j-community/Manifest +++ b/dev-db/neo4j-community/Manifest @@ -3,3 +3,4 @@ DIST neo4j-community-3.5.16-unix.tar.gz 133768976 BLAKE2B 322ce36387a710dc73a30b DIST neo4j-community-3.5.3-unix.tar.gz 101923016 BLAKE2B 6f2084834c4c2c596c448eccace2d187a3deacb287b88f619e860618ead5b34ce6756d1af60a4e82a686d0b7604f3ee17856610341789ce3e2d800b1aff3f0a4 SHA512 29f58d41d2733bd34077dd26d3be9211b508a07278ed2f14dbb2c1880b2fc12c36fb901ab3b3b52d358d3ddf94ac1da6129207c9b293dbc130c52325e5ab47ee DIST neo4j-community-4.0.0-unix.tar.gz 129042779 BLAKE2B 2011f086ffadbe00e6169aab68dacb7588a32068903daf556937438987db70dc786e2cc04d298351941ac21f011447a2fcc050599da54af642758723a11c303e SHA512 3ea64f05207a611a11593de5dc974500afcc4d78e1924e9e156d6b96e90061e9af277bc3f4364ea47f51e5c981c7c6813087980f7c31c5db8de84935a1aebbda DIST neo4j-community-4.0.3-unix.tar.gz 104942020 BLAKE2B 090728f99fa9070a4fd1821ad6edd27c53f452a81c68de07bc37467ef4ec38cdc548415924b20669e237278163c76512bc119dfbb817b6d7bb158e51afaf50ce SHA512 6cf83e591a26528e6763f75b8c8bf483c11220db535aec38b741665ee9f3ff7a34a1badb8895c9b01b899bdc0d91e8699a13a67fda02bb22744c757ecceeb2e8 +DIST neo4j-community-4.0.4-unix.tar.gz 105070127 BLAKE2B b909e99bf6bcfc7610b30bb56ac0e4d2c2187f311e6a7118a281e987f93adab007c4f28f4c4683cdb528a310c307da6fc9b6ce0ed5b3455bbf8f57d93c04fa2f SHA512 023db00fcb99d0858314a49e4bb6ecfe244b8d504cff5faed8b7993e157971b9bd4a404176ed6135f491a30e21e60b0f620afa437ee2dda523a69687440e119c diff --git a/dev-db/neo4j-community/neo4j-community-4.0.4.ebuild b/dev-db/neo4j-community/neo4j-community-4.0.4.ebuild new file mode 100644 index 000000000..f5f06dbd1 --- /dev/null +++ b/dev-db/neo4j-community/neo4j-community-4.0.4.ebuild @@ -0,0 +1,137 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit eutils + +DESCRIPTION="Neo4j is a high-performance, NOSQL graph database with all the features of a mature and robust database" +HOMEPAGE="https://neo4j.com/" +SRC_URI="https://dist.neo4j.org/${P}-unix.tar.gz" + +KEYWORDS="~amd64 ~x86" +LICENSE="GPL-3" +SLOT="0" + +# TODO: add support virtual/jre:11 (masked) +RDEPEND=" + acct-group/neo4j + !dev-db/neo4j-advanced + !dev-db/neo4j-enterprise + virtual/jre" + +src_prepare() { + mv conf/neo4j.conf "${T}" || die + + # set absolute path + sed -e "s:dbms.directories.import=import:dbms.directories.import=/var/lib/${PN}/import:" \ + -e "s:#dbms.directories.data=data:dbms.directories.data=/var/lib/${PN}/data:" \ + -e "s:#dbms.directories.plugins=plugins:#dbms.directories.plugins=/opt/${P}/plugins:" \ + -e "s:#dbms.directories.lib=lib:#dbms.directories.lib=/opt/${P}/lib:" \ + -e "s:#dbms.directories.certificates=certificates:dbms.directories.certificates=/var/lib/${PN}/certificates:" \ + -e "s:#dbms.directories.logs=logs:dbms.directories.logs=/var/log/${PN}:" \ + -e "s:#dbms.directories.run=run:dbms.directories.run=/run/neo4j-daemon:" \ + -i "${T}"/neo4j.conf || die "sed failed!" + + # cleanup + rm -fr logs conf run data import LICENSE{,S}.txt || die + + default +} + +src_install() { + local dest_dir="/opt/${P}" + local limitsdfile="50-${PN}.conf" + + dodir "${dest_dir}" + cp -Rp . "${D}${dest_dir}" || die "failed to install!" + + insinto "/etc/${PN}" + doins "${T}"/neo4j.conf + + keepdir "/var/log/${PN}" "/var/lib/${PN}" + fowners -R nobody:neo4j "/var/log/${PN}" "/var/lib/${PN}" + fperms -R 750 "/var/lib/${PN}" "/var/log/${PN}" + + dodir "/opt/bin" + for x in $(find bin -type f -executable -printf "%f\n"); do + cat > "${D}/opt/bin"/${x} <<-_EOF_ || die "cat EOF failed" + #!/bin/sh + + JAVA_CMD="\${JAVA_CMD:-"/usr/bin/java"}" + NEO4J_HOME="\${NEO4J_HOME:-"${dest_dir}"}" + NEO4J_CONF="\${NEO4J_CONF:-"/etc/${PN}"}" + NEO4J_DATA="\${NEO4J_DATA:-"/var/lib/${PN}/data"}" + NEO4J_LIB="\${NEO4J_LIB:-"${dest_dir}/lib"}" + NEO4J_LOGS="\${NEO4J_LOGS:-"/var/log/${PN}"}" + NEO4J_PIDFILE="\${NEO4J_PIDFILE:-"/var/lib/${PN}/${PN%-community}.pid"}" # run it as user + NEO4J_PLUGINS="\${NEO4J_PLUGINS:-"${dest_dir}/plugins"}" + + export JAVA_CMD NEO4J_HOME NEO4J_CONF NEO4J_DATA NEO4J_LIB NEO4J_LOGS NEO4J_PIDFILE NEO4J_PLUGINS + + cd "${dest_dir}/bin" && + exec "${dest_dir}/bin/${x}" "\$@" + _EOF_ + + fperms 0755 "/opt/bin/${x}" + done + + dodir "/etc/security/limits.d" + cat > "${D}/etc/security/limits.d"/${limitsdfile} <<-_EOF_ || die "cat EOF failed" + # Start of ${limitsdfile} from ${P} + # This is needed because neo4j can open a high number of file + # descriptors + @${PN%-community} soft nofile 40000 + @${PN%-community} hard nofile 40000 + # End of ${limitsdfile} from ${P} + _EOF_ + + newinitd "${FILESDIR}"/neo4j-daemon.initd-r1 neo4j-daemon + newconfd "${FILESDIR}"/neo4j-daemon.confd neo4j-daemon + + dodoc *.txt +} + +pkg_config() { + local _yesno_ask + + ewarn "*** Please create a backup!!! ***" + ewarn "Reset databases and log files for new configuring ..." + read -r -p " [>] Are you sure? [y/N] " _yesno_ask + + if [[ ${_yesno_ask,,} =~ ^(yes|y)$ ]]; then + ewarn "Remove: \"${EROOT}/var/lib/${PN}\" and \"${EROOT}/var/log/${PN}\" ..." + read -r -p " [>] Continue? [y/N] " _yesno_ask + if [[ ${_yesno_ask,,} =~ ^(yes|y)$ ]]; then + rm -rf -- "${EROOT}/var/lib/${PN}" "${EROOT}/var/log/${PN}" || die + fi + + ebegin "Preparing a new configuration for ${PF}" + + mkdir -p "${EROOT}/var/lib/${PN}" "${EROOT}/var/log/${PN}" + chown nobody:neo4j "${EROOT}/var/lib/${PN}" "${EROOT}/var/log/${PN}" + chmod 750 "${EROOT}/var/lib/${PN}" "${EROOT}/var/log/${PN}" + + touch \ + "${EROOT}/var/lib/${PN}/.keep_dev-db_neo4j-community-${SLOT}" \ + "${EROOT}/var/log/${PN}/.keep_dev-db_neo4j-community-${SLOT}" + + eend ${?} || die + fi +} + +pkg_postinst() { + ewarn "\nFor upgrade instructions ('3.5.any' to '4.0.0'), please see:" + ewarn " https://neo4j.com/docs/operations-manual/current/upgrade/" + ewarn " https://neo4j.com/docs/migration-guide/4.0/" + ewarn "\nAlso create a backup from \"/var/lib/${PN}\" and run:" + ewarn " ~# emerge --config \"=${CATEGORY}/${PF}\"" + ewarn "for new configuring" + ewarn "\nWARNING: Use Oracle(R) Java(TM) 11, OpenJDK(TM) 11 to run ${PF} !!!" + ewarn " ~# emerge -avw dev-java/oracle-jdk-bin:11" + ewarn " ~# JAVA_CMD=\"/opt/openjdk-bin-/bin/java\" neo4j start" + ewarn "or:" + ewarn " ~# echo JAVA_CMD=\"/opt/openjdk-bin-/bin/java\" >> /etc/conf.d/neo4j-daemon" + ewarn " ~# rc-service neo4j-daemon start\n" + ewarn "Wait for few seconds and open in browser http://localhost:7474/\n" +}