Name: neo4j
# NOTE: Newer release use scala 2.11+
Version: 2.2.8
Release: 1%{?dist}
Summary: Java Graph Database
License: AGPLv3+ and ASL 2.0 and GPLv3+ and CC-BY
URL: http://www.neo4j.org/
Source0: https://github.com/neo4j/neo4j/archive/%{version}.tar.gz
# Use maven-antrun-plugin instead of scala*-maven-plugin
Patch0: neo4j-2.2.8-antrun-plugin.patch
# Disable use of unavailable neo4j-cypher-compiler-{1.9:2.0.4,2.0:2.0.4,2.1:2.1.8}
Patch1: neo4j-2.2.8-disable-old-compiler-support.patch
# Support for jetty 9.3+
Patch2: neo4j-2.2.8-jetty.patch
BuildRequires: maven-local
BuildRequires: mvn(ant-contrib:ant-contrib)
BuildRequires: mvn(ch.qos.logback:logback-access)
BuildRequires: mvn(ch.qos.logback:logback-classic)
BuildRequires: mvn(ch.qos.logback:logback-core)
BuildRequires: mvn(com.google.code.gson:gson)
BuildRequires: mvn(com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru)
BuildRequires: mvn(com.sun.jersey:jersey-client:1.19)
BuildRequires: mvn(com.sun.jersey:jersey-server:1.19)
BuildRequires: mvn(com.sun.jersey:jersey-servlet:1.19)
BuildRequires: mvn(com.sun.jersey.contribs:jersey-multipart:1.19)
BuildRequires: mvn(commons-codec:commons-codec)
BuildRequires: mvn(commons-configuration:commons-configuration)
BuildRequires: mvn(commons-digester:commons-digester)
BuildRequires: mvn(commons-io:commons-io)
BuildRequires: mvn(javax.servlet:javax.servlet-api)
BuildRequires: mvn(javax.ws.rs:jsr311-api)
BuildRequires: mvn(jline:jline:1.0)
BuildRequires: mvn(junit:junit)
BuildRequires: mvn(net.sf.opencsv:opencsv)
BuildRequires: mvn(org.apache.ant:ant)
BuildRequires: mvn(org.apache.ant:ant-apache-regexp)
BuildRequires: mvn(org.apache.ant:ant-launcher)
BuildRequires: mvn(org.apache.commons:commons-lang3)
BuildRequires: mvn(org.apache.felix:org.osgi.compendium)
BuildRequires: mvn(org.apache.felix:org.osgi.core)
BuildRequires: mvn(org.apache.geronimo.specs:geronimo-jta_1.1_spec)
BuildRequires: mvn(org.apache.geronimo.specs:specs:pom:)
BuildRequires: mvn(org.apache.lucene:lucene-core:3)
BuildRequires: mvn(org.apache.maven.plugins:maven-antrun-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-failsafe-plugin)
BuildRequires: mvn(org.bouncycastle:bcprov-jdk16)
BuildRequires: mvn(org.codehaus.jackson:jackson-jaxrs)
BuildRequires: mvn(org.codehaus.janino:janino)
BuildRequires: mvn(org.codehaus.mojo:build-helper-maven-plugin)
BuildRequires: mvn(org.codehaus.mojo:exec-maven-plugin)
BuildRequires: mvn(org.eclipse.jetty:jetty-server)
BuildRequires: mvn(org.eclipse.jetty:jetty-webapp)
BuildRequires: mvn(org.hamcrest:hamcrest-all)
BuildRequires: mvn(org.mockito:mockito-all)
BuildRequires: mvn(org.mockito:mockito-core)
BuildRequires: mvn(org.mozilla:rhino)
BuildRequires: mvn(org.parboiled:parboiled-scala_2.10)
BuildRequires: mvn(org.powermock:powermock-api-mockito)
BuildRequires: mvn(org.powermock:powermock-module-junit4)
# https://bugzilla.redhat.com/show_bug.cgi?id=1221474
BuildRequires: mvn(org.rrd4j:rrd4j)
BuildRequires: mvn(org.scala-lang:scala-compiler)
BuildRequires: mvn(org.scala-lang:scala-library)
BuildRequires: mvn(org.scala-lang:scala-reflect)
BuildRequires: mvn(org.slf4j:slf4j-api)
BuildArch: noarch
%description
Neo4j is a highly scalable, robust (fully ACID) native graph database.
Neo4j is used in mission-critical apps by thousands of leading start-ups,
enterprises, and governments around the world.
%package community
Summary: Neo4j Community
%description community
A meta package containing the most used Neo4j libraries.
Intended use: as a Maven dependency.
%package consistency-check
Summary: Neo4j - Consistency Checker
%description consistency-check
Tool for checking consistency of a Neo4j data store.
%package csv
Summary: Neo4j - CSV reading and parsing
%description csv
Efficient reading and parsing of CSV input streams.
%package cypher-parent
Summary: Neo4j Community Cypher Parent POM
%description cypher-parent
Parent POM for the Neo4j Cypher modules.
%package cypher
Summary: Neo4j - Cypher
%description cypher
Neo4j query language.
%package cypher-compiler
Summary: Neo4j - Cypher Compiler
%description cypher-compiler
Compiler for Cypher.
%package graph-algo
Summary: Neo4j - Graph Algorithms
%description graph-algo
Graph algorithms for Neo4j.
%package graph-matching
Summary: Neo4j - Graph Matching
%description graph-matching
A graph pattern matcher for Neo4j.
%package graphviz
Summary: Neo4j - Graphviz generation
%description graphviz
Utility component to generate Graphviz
.dot notation from Neo4j graphs.
#%%package harness
#Summary: Neo4j Test Harness
#%%description harness
#Components for writing integration tests with Neo4j.
%package import-tool
Summary: Neo4j - Import Command Line Tool
%description import-tool
Command line tool for importing data into Neo4j.
%package io
Summary: Neo4j - IO
%description io
Input/output abstraction layer for Neo4j.
%package jmx
Summary: Neo4j - JMX support
%description jmx
Management support using JMX.
%package kernel
Summary: Neo4j - Graph Database Kernel
%description kernel
Neo4j kernel is a lightweight, embedded Java database designed to
store data structured as graphs rather than tables. For more
information, see http://neo4j.org.
%package lucene-index
Summary: Neo4j - Lucene Index
%description lucene-index
Integration layer between Neo4j and Lucene,
providing one possible implementation of the
Index API.
%package monitor-logging
Summary: Neo4j - Monitor Logging
%description monitor-logging
Logs information collected from a set of monitors.
%package primitive-collections
Summary: Neo4j - Primitive Collections
%description primitive-collections
Efficient collections for sets and
maps that has primitive types as keys.
%package server
Summary: Neo4j Server
%description server
Standalone Neo4j server application.
%package server-api
Summary: Neo4j Server API
%description server-api
Interfaces and baseclasses needed to create your own extensions.
%package shell
Summary: Neo4j - Generic shell
%description shell
A generic command shell with a client and server part.
%package udc
Summary: Neo4j - Usage Data Collection
%description udc
Collects simple statistics about server deployment.
%package unsafe
Summary: Neo4j - Unsafe Access
%description unsafe
Internal component that provides access to unsafe memory
intrinsics.
%package javadoc
Summary: Javadoc for %{name}
%description javadoc
This package contains javadoc for %{name}.
%prep
%setup -q -n %{name}-%{version}
# Cleanup
find -name "*.class" -print -delete
find -name "*.jar" -print -delete
# Remove bundle JS libraries
find -name "arbor*.js" -print -delete
find -name "jquery*.js" -print -delete
rm -r community/server/src/main/resources/webadmin-html/lib/deck/js/* \
community/server/src/main/resources/webadmin-html/js/order.js \
community/server/src/main/resources/webadmin-html/js/require.js \
community/server/src/main/resources/webadmin-html/js/lib/seedrandom.js \
community/server/src/main/resources/webadmin-html/js/lib/rgbcolor.js \
community/server/src/main/resources/webadmin-html/js/lib/DateFormat.js \
community/server/src/main/resources/webadmin-html/js/lib/colorpicker.js \
community/server/src/main/resources/webadmin-html/js/lib/backbone.js \
community/server/src/main/resources/webadmin-html/js/lib/codemirror2/util/foldcode.js
%patch0 -p1
%patch1 -p1
rm -rf community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v{1_9,2_0,2_1}
rm -rf community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/CompatibilityFor{1_9,2_0,2_1}.scala
%pom_remove_dep :neo4j-cypher-compiler-1.9 community/cypher/cypher
%pom_remove_dep :neo4j-cypher-compiler-2.0 community/cypher/cypher
%pom_remove_dep :neo4j-cypher-compiler-2.1 community/cypher/cypher
%patch2 -p1
%pom_remove_parent
%pom_remove_plugin -r :brew
%pom_remove_plugin -r :clirr-maven-plugin
%pom_remove_plugin -r :findbugs-maven-plugin
%pom_remove_plugin -r :jasmine-maven-plugin
%pom_remove_plugin -r :license-maven-plugin
%pom_remove_plugin -r :licensing-maven-plugin
%pom_remove_plugin :maven-source-plugin community/server
%pom_remove_plugin -r :maven-assembly-plugin
%pom_remove_plugin :build-helper-maven-plugin community/udc
%pom_remove_plugin :maven-site-plugin community/kernel
%pom_remove_plugin :scala-maven-plugin community/cypher
%pom_remove_plugin :maven-pmd-plugin community/cypher
%pom_remove_plugin :scalastyle-maven-plugin community/cypher
%pom_remove_plugin :findbugs-maven-plugin community/cypher
%pom_remove_plugin :clirr-maven-plugin community/cypher
%pom_remove_plugin :maven-enforcer-plugin community/cypher
# Under AGPL 3.0 license
%pom_disable_module advanced
%pom_disable_module enterprise
%pom_disable_module integrationtests
%pom_disable_module packaging
%pom_disable_module packaging/installer-linux
%pom_disable_module stresstests
%pom_disable_module tools
# Under Creative Commons 3.0 license
%pom_disable_module manual
%pom_disable_module docs/refcard-tests community/cypher
# Unwanted
%pom_disable_module server-examples community
# Bundle some JS libraries e.g. grunt
%pom_disable_module browser community
%pom_disable_module embedded-examples community
%pom_disable_module licensecheck-config community
%pom_disable_module server-plugin-test community
# Use org.neo4j:neo4j-kernel:${neo4j.version}:test-jar
%pom_disable_module docs/graphgist community/cypher
%pom_disable_module docs/cypher-docs community/cypher
%pom_disable_module neo4j-harness community
%pom_disable_module cypher-compiler-2.2_2.11 community/cypher
%pom_remove_dep -r :geronimo-spec-j2ee
%pom_remove_dep :scalautils_2.10 community/cypher
%pom_remove_dep :scalacheck_2.10 community/cypher
%pom_remove_dep :scalatest_2.10 community/cypher
%pom_remove_dep :salat-core_2.10 community/cypher/cypher
%pom_xpath_remove -r "pom:dependency[pom:classifier = 'tests']"
%pom_xpath_remove -r "pom:dependency[pom:type = 'test-jar']"
%pom_xpath_set "pom:dependency[pom:artifactId = 'tools']/pom:groupId" com.sun
%pom_xpath_set "pom:dependency[pom:artifactId = 'tools']/pom:version" 1.8.0
%pom_xpath_remove "pom:dependency[pom:artifactId = 'tools']/pom:scope"
%pom_xpath_remove "pom:dependency[pom:artifactId = 'tools']/pom:systemPath"
%pom_change_dep :lucene-core ::3 community/lucene-index
%pom_change_dep -r org.osgi:osgi_R4_core org.apache.felix:org.osgi.core
%pom_change_dep -r org.osgi:osgi_R4_compendium org.apache.felix:org.osgi.compendium
%pom_change_dep -r org.neo4j.3rdparty.javax.ws.rs:jsr311-api javax.ws.rs:jsr311-api
%pom_remove_plugin org.neo4j.build.plugins:docs-maven-plugin community/shell
%pom_xpath_remove pom:Class-Path community/shell
# Use org.apache.servicemix.bundles:org.apache.servicemix.bundles.jline:0.9.94_1
%pom_xpath_set "pom:properties/pom:jline.groupId" jline community/shell
%pom_xpath_set "pom:properties/pom:jline.artifactId" jline community/shell
%pom_xpath_set "pom:properties/pom:jline.version" 1.0 community/shell
%pom_xpath_set "pom:properties/pom:jline.main.version" 1.0 community/shell
# community/server
%pom_change_dep -r :bcprov-jdk16 org.bouncycastle:
%pom_remove_dep org.neo4j.app:neo4j-browser community/server
%pom_change_dep com.sun.jersey: ::1.19 community/neo4j-harness
%pom_change_dep com.sun.jersey: ::1.19 community/server
# break the build xmvn find org.apache.ant:maven-antrun-plugin:1.8.4
%pom_xpath_inject "pom:plugin[pom:artifactId = 'maven-antrun-plugin']" \
'org.apache.maven.plugins'
%pom_xpath_inject "pom:plugin[pom:artifactId = 'maven-antrun-plugin']" \
'org.apache.maven.plugins' community/kernel
%pom_xpath_inject "pom:plugin[pom:artifactId = 'maven-antrun-plugin']" \
'org.apache.maven.plugins' community/server
%pom_add_dep javax.servlet:javax.servlet-api:3.1.0 community/server
%mvn_package :neo4j neo4j-community
%mvn_package :neo4j-community neo4j-community
%mvn_package :community-build parent
%build
# no test deps
%mvn_build -s -f -- -Dproject.build.sourceEncoding=UTF-8
%install
%mvn_install
%files -f .mfiles-parent
%doc README.asciidoc
%license community/LICENSE.txt community/NOTICE.txt
%files community -f .mfiles-%{name}-community
%files consistency-check -f .mfiles-%{name}-consistency-check
%doc community/consistency-check/CHANGES.txt
%files csv -f .mfiles-%{name}-csv
%doc community/csv/CHANGES.txt
%files cypher-parent -f .mfiles-cypher-parent
%files cypher -f .mfiles-%{name}-cypher
%doc community/cypher/cypher/CHANGES.txt community/cypher/cypher/README.txt
%files cypher-compiler -f .mfiles-%{name}-cypher-compiler-2.2
%doc community/cypher/cypher-compiler-2.2/README.txt
%files graph-algo -f .mfiles-%{name}-graph-algo
%doc community/graph-algo/CHANGES.txt
%files graph-matching -f .mfiles-%{name}-graph-matching
%files graphviz -f .mfiles-%{name}-graphviz
%doc community/graphviz/README.rst
%files import-tool -f .mfiles-%{name}-import-tool
%doc community/import-tool/CHANGES.txt
%files io -f .mfiles-%{name}-io
%doc community/io/CHANGES.txt community/io/README.md
%files jmx -f .mfiles-%{name}-jmx
%doc community/jmx/CHANGES.txt
%files kernel -f .mfiles-%{name}-kernel
%doc community/kernel/CHANGES.txt community/kernel/README.txt
%files lucene-index -f .mfiles-%{name}-lucene-index
%doc community/lucene-index/CHANGES.txt
%files monitor-logging -f .mfiles-%{name}-monitor-logging
%doc community/monitor-logging/CHANGES.txt community/monitor-logging/readme.md
%files primitive-collections -f .mfiles-%{name}-primitive-collections
%doc community/primitive-collections/CHANGES.txt
%files server -f .mfiles-%{name}-server
%doc community/server/CHANGES.txt community/server/README.asciidoc
%files server-api -f .mfiles-server-api
%doc community/server-api/CHANGES.txt
%files shell -f .mfiles-%{name}-shell
%doc community/shell/CHANGES.txt community/shell/README.txt
%files udc -f .mfiles-%{name}-udc
%doc community/udc/CHANGES.txt community/udc/readme.md
%files unsafe -f .mfiles-%{name}-unsafe
%files javadoc -f .mfiles-javadoc
%license community/LICENSE.txt community/NOTICE.txt
%changelog
* Sun Mar 06 2016 gil cattaneo 2.2.8-1
- update to 2.2.8
* Sat Jul 11 2015 gil cattaneo 2.2.3-1
- update to 2.2.3
* Thu May 14 2015 gil cattaneo 2.2.1-1
- update to 2.2.1
* Thu Feb 26 2015 gil cattaneo 2.1.7-1
- initial rpm