You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
197 lines
8.1 KiB
197 lines
8.1 KiB
## |
|
## neo4j.spec -- OpenPKG RPM Package Specification |
|
## Copyright (c) 2000-2022 OpenPKG Project <http://openpkg.org/> |
|
## |
|
## Permission to use, copy, modify, and distribute this software for |
|
## any purpose with or without fee is hereby granted, provided that |
|
## the above copyright notice and this permission notice appear in all |
|
## copies. |
|
## |
|
## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED |
|
## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
|
## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
|
## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR |
|
## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
|
## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
|
## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF |
|
## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
|
## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
|
## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT |
|
## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
|
## SUCH DAMAGE. |
|
## |
|
|
|
# package version |
|
%define V_opkg 4.4.2 |
|
%define V_dist 4.4.2 |
|
|
|
# package information |
|
Name: neo4j |
|
Summary: Graph Database |
|
URL: http://neo4j.org/ |
|
Vendor: Neo Technology |
|
Packager: OpenPKG Project |
|
Distribution: OpenPKG Community |
|
Class: PLUS |
|
Group: Database |
|
License: AGPL |
|
Version: %{V_opkg} |
|
Release: 20211217 |
|
|
|
# list of sources |
|
Source0: http://dist.neo4j.org/neo4j-community-%{V_dist}-unix.tar.gz |
|
Source1: neo4j-server.sh |
|
Source2: neo4j-shell.sh |
|
Source3: neo4j-admin.sh |
|
Source4: neo4j-admin-password.sh |
|
Source5: neo4j-import.sh |
|
Source6: cypher-shell.sh |
|
Source7: neo4j-log4j.properties |
|
Source8: neo4j.conf |
|
Source9: rc.neo4j |
|
|
|
# build information |
|
BuildPreReq: OpenPKG, openpkg >= 20160101 |
|
PreReq: OpenPKG, openpkg >= 20160101 |
|
BuildPreReq: java, JAVA-JDK |
|
PreReq: java, JAVA-JDK |
|
|
|
%description |
|
Neo4J is a graph database, a fully transactional database that |
|
stores data structured as graphs. A graph is a flexible data |
|
structure that allows for a more agile and rapid style of |
|
development. You work with a flexible graph network consisting |
|
of nodes, relationships and properties. Neo4J has a disk-based, |
|
native storage manager completely optimized for storing graph |
|
structures for maximum performance and scalability. It allows |
|
massive scalability. Neo4J can handle graphs of several billion |
|
nodes/relationships/properties on a single machine and can be |
|
sharded to scale out across multiple machines. Neo4J also provides a |
|
powerful traversal framework for high-speed traversals in the node |
|
space. Neo4J can be used an an embedded database or as a standlone |
|
server speaking Bolt and REST. |
|
|
|
%track |
|
prog neo4j = { |
|
version = %{V_dist} |
|
url = https://neo4j.com/download-center/ |
|
regex = release=(\d+\.\d+\.\d+)[^-] |
|
} |
|
|
|
%prep |
|
%setup -q -n neo4j-community-%{V_dist} |
|
|
|
%build |
|
|
|
%install |
|
# create installation hierarchy |
|
%{l_shtool} mkdir -f -p -m 755 \ |
|
$RPM_BUILD_ROOT%{l_prefix}/bin \ |
|
$RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \ |
|
$RPM_BUILD_ROOT%{l_prefix}/etc/neo4j/neo4j-tls.d \ |
|
$RPM_BUILD_ROOT%{l_prefix}/etc/neo4j/neo4j-tls.trusted.d \ |
|
$RPM_BUILD_ROOT%{l_prefix}/etc/neo4j/neo4j-tls.revoked.d \ |
|
$RPM_BUILD_ROOT%{l_prefix}/lib/neo4j/server \ |
|
$RPM_BUILD_ROOT%{l_prefix}/lib/neo4j/client \ |
|
$RPM_BUILD_ROOT%{l_prefix}/lib/neo4j/plugins \ |
|
$RPM_BUILD_ROOT%{l_prefix}/var/neo4j/data \ |
|
$RPM_BUILD_ROOT%{l_prefix}/var/neo4j/import \ |
|
$RPM_BUILD_ROOT%{l_prefix}/var/neo4j/run \ |
|
$RPM_BUILD_ROOT%{l_prefix}/var/neo4j/log |
|
|
|
# install program components |
|
%{l_shtool} install -c -m 644 \ |
|
lib/*.jar $RPM_BUILD_ROOT%{l_prefix}/lib/neo4j/server/ |
|
%{l_shtool} install -c -m 644 \ |
|
bin/tools/cypher-shell.jar $RPM_BUILD_ROOT%{l_prefix}/lib/neo4j/client/ |
|
|
|
# install startup wrappers |
|
%{l_shtool} install -c -m 755 %{l_value -s -a} \ |
|
%{SOURCE neo4j-server.sh} \ |
|
$RPM_BUILD_ROOT%{l_prefix}/bin/neo4j-server |
|
%{l_shtool} install -c -m 755 %{l_value -s -a} \ |
|
%{SOURCE neo4j-shell.sh} \ |
|
$RPM_BUILD_ROOT%{l_prefix}/bin/neo4j-shell |
|
%{l_shtool} install -c -m 755 %{l_value -s -a} \ |
|
%{SOURCE neo4j-admin.sh} \ |
|
$RPM_BUILD_ROOT%{l_prefix}/bin/neo4j-admin |
|
%{l_shtool} install -c -m 755 %{l_value -s -a} \ |
|
%{SOURCE neo4j-admin-password.sh} \ |
|
$RPM_BUILD_ROOT%{l_prefix}/bin/neo4j-admin-password |
|
%{l_shtool} install -c -m 755 %{l_value -s -a} \ |
|
%{SOURCE neo4j-import.sh} \ |
|
$RPM_BUILD_ROOT%{l_prefix}/bin/neo4j-import |
|
%{l_shtool} install -c -m 755 %{l_value -s -a} \ |
|
%{SOURCE cypher-shell.sh} \ |
|
$RPM_BUILD_ROOT%{l_prefix}/bin/cypher-shell |
|
|
|
# install configuration files |
|
%{l_shtool} install -c -m 644 %{l_value -s -a} \ |
|
%{SOURCE neo4j-log4j.properties} \ |
|
%{SOURCE neo4j.conf} \ |
|
$RPM_BUILD_ROOT%{l_prefix}/etc/neo4j/ |
|
|
|
# install run-command script |
|
%{l_shtool} install -c -m 755 %{l_value -s -a} \ |
|
%{SOURCE rc.neo4j} \ |
|
$RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/ |
|
|
|
# determine installation files |
|
%{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ |
|
%{l_files_std} \ |
|
'%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/etc/neo4j' \ |
|
'%config %attr(644,%{l_rusr},%{l_rgrp}) %{l_prefix}/etc/neo4j/neo4j.conf' \ |
|
'%attr(755,%{l_rusr},%{l_rgrp}) %{l_prefix}/etc/neo4j/neo4j-tls.d' \ |
|
'%attr(755,%{l_rusr},%{l_rgrp}) %{l_prefix}/etc/neo4j/neo4j-tls.*.d' \ |
|
'%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/neo4j/*' |
|
|
|
%files -f files |
|
|
|
%clean |
|
|
|
%post |
|
if [ $1 -eq 1 ]; then |
|
# display information about next steps |
|
( echo "The Neo4J administrator is \"neo4j\" with default password \"neo4j\"." |
|
echo "You should change this with the following command before starting Neo4J:" |
|
echo " \$ $RPM_INSTALL_PREFIX/bin/neo4j-admin-password <password>" |
|
echo "If you do not initially change it, you are forced to change it later in" |
|
echo "cypher-shell(1) or the Neo4J Browser. In cypher-shell(1) change it with:" |
|
echo " neo4j> CALL dbms.security.changePassword(\"<password>\");" |
|
echo "" |
|
echo "Then start Neo4J with..." |
|
echo " \$ $RPM_INSTALL_PREFIX/bin/openpkg rc neo4j start" |
|
echo "...and connect to Neo4J Browser under:" |
|
echo " http://localhost:7474/browser/" |
|
echo " https://localhost:7473/browser/" |
|
echo "...or on the command-line with:" |
|
echo " \$ $RPM_INSTALL_PREFIX/bin/cypher-shell \\%{l_nil}" |
|
echo " -a bolt://127.0.0.1:7687 -u neo4j [-p <password>]" |
|
echo "" |
|
echo "You can create a new user in cypher-shell(1) with:" |
|
echo " neo4j> CALL dbms.security.createUser(" |
|
echo " \"<username>\", \"<password>\", false);" |
|
echo "" |
|
echo "The Neo4J Bolt (with/without TLS) endpoint is under:" |
|
echo " bolt://localhost:7687/" |
|
echo "The Neo4J Transactional Cypher HTTP endpoint is under:" |
|
echo " http://localhost:7474/db/data/transaction" |
|
echo " https://localhost:7473/db/data/transaction" |
|
echo "The Neo4J Legacy Cypher HTTP endpoint is under:" |
|
echo " http://localhost:7474/db/data/cypher" |
|
echo " https://localhost:7473/db/data/cypher" |
|
) | %{l_rpmtool} msg -b -t notice |
|
fi |
|
exit 0 |
|
|
|
%preun |
|
if [ $1 -eq 0 ]; then |
|
# before erase, stop service and remove log files |
|
%{l_rc} neo4j stop 2>/dev/null |
|
rm -f $RPM_INSTALL_PREFIX/etc/neo4j/neo4j-tls.d/* >/dev/null 2>&1 || true |
|
rm -f $RPM_INSTALL_PREFIX/etc/neo4j/neo4j-tls.*.d/* >/dev/null 2>&1 || true |
|
rm -f $RPM_INSTALL_PREFIX/var/neo4j/run/* >/dev/null 2>&1 || true |
|
rm -f $RPM_INSTALL_PREFIX/var/neo4j/log/* >/dev/null 2>&1 || true |
|
fi |
|
exit 0 |
|
|
|
|