From 7db14c325aa16647433041f6fdb48fe1d7d29e21 Mon Sep 17 00:00:00 2001 From: Yury Martynov Date: Sun, 12 Apr 2020 16:37:02 +0300 Subject: [PATCH] dev-db/neo4j-community: add 4.0.3 also Package-Manager: Portage-2.3.89, Repoman-2.3.20 Signed-off-by: Yury Martynov --- dev-db/neo4j-community/Manifest | 1 + ...ebuild => neo4j-community-4.0.0-r1.ebuild} | 9 +- .../neo4j-community-4.0.3.ebuild | 137 ++++++++++++++++++ 3 files changed, 141 insertions(+), 6 deletions(-) rename dev-db/neo4j-community/{neo4j-community-4.0.0.ebuild => neo4j-community-4.0.0-r1.ebuild} (98%) create mode 100644 dev-db/neo4j-community/neo4j-community-4.0.3.ebuild diff --git a/dev-db/neo4j-community/Manifest b/dev-db/neo4j-community/Manifest index e6fe12ccd..eac5bf03f 100644 --- a/dev-db/neo4j-community/Manifest +++ b/dev-db/neo4j-community/Manifest @@ -2,3 +2,4 @@ DIST neo4j-community-3.5.12-unix.tar.gz 154093256 BLAKE2B 2dcf7baeb977ce21b2637f DIST neo4j-community-3.5.16-unix.tar.gz 133768976 BLAKE2B 322ce36387a710dc73a30b725b4d78549c43b4ce8c4e763f7783a1b635dd9d97bc08cf63526cfdd3beb2b7150b4555b07de2802bb1d45e4d9cbbe44a5055a93d SHA512 8323b5d9a015d15cf6e4846a435227f05b07ab68471a07cd251ae9fb12ee07ca945b6b8f70c850205bb87e2b5cd2b0caee60890e2a0c1fe772a51abd6aa82311 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 diff --git a/dev-db/neo4j-community/neo4j-community-4.0.0.ebuild b/dev-db/neo4j-community/neo4j-community-4.0.0-r1.ebuild similarity index 98% rename from dev-db/neo4j-community/neo4j-community-4.0.0.ebuild rename to dev-db/neo4j-community/neo4j-community-4.0.0-r1.ebuild index 3fcc6db96..f5f06dbd1 100644 --- a/dev-db/neo4j-community/neo4j-community-4.0.0.ebuild +++ b/dev-db/neo4j-community/neo4j-community-4.0.0-r1.ebuild @@ -3,7 +3,7 @@ EAPI=7 -inherit eutils user +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/" @@ -11,18 +11,15 @@ SRC_URI="https://dist.neo4j.org/${P}-unix.tar.gz" KEYWORDS="~amd64 ~x86" LICENSE="GPL-3" -SLOT=0 +SLOT="0" # TODO: add support virtual/jre:11 (masked) RDEPEND=" + acct-group/neo4j !dev-db/neo4j-advanced !dev-db/neo4j-enterprise virtual/jre" -pkg_setup() { - enewgroup ${PN%-community} -} - src_prepare() { mv conf/neo4j.conf "${T}" || die diff --git a/dev-db/neo4j-community/neo4j-community-4.0.3.ebuild b/dev-db/neo4j-community/neo4j-community-4.0.3.ebuild new file mode 100644 index 000000000..f5f06dbd1 --- /dev/null +++ b/dev-db/neo4j-community/neo4j-community-4.0.3.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" +}