%global bits 32
%global debug_package %{nil}
%ifarch x86_64 ppc64 s390x sparc64
%global bits 64
%endif
Name: leveldbjni
Version: 1.8
Release: 1%{?dist}
Summary: A Java Native Interface to LevelDB
License: BSD
URL: https://github.com/fusesource/leveldbjni/
Source0: https://github.com/fusesource/leveldbjni/archive/%{name}-%{version}.tar.gz
BuildRequires: java-devel
BuildRequires: mvn(org.fusesource:fusesource-pom)
BuildRequires: mvn(org.fusesource.hawtjni:hawtjni-runtime)
BuildRequires: mvn(org.iq80.leveldb:leveldb-api)
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: libtool
#BuildRequires: gcc
#BuildRequires: make
# see https://bugzilla.redhat.com/show_bug.cgi?id=881608
BuildRequires: leveldb-devel >= 1.7.0-4
BuildRequires: snappy-devel
# test dep
BuildRequires: mvn(junit:junit)
BuildRequires: maven-local
BuildRequires: maven-hawtjni-plugin
BuildRequires: maven-plugin-bundle
BuildRequires: maven-plugin-tools-javadoc
BuildRequires: maven-surefire-provider-junit4
%description
LevelDB JNI gives you a Java interface to the
LevelDB C++ library which is a fast key-value
storage library written at Google that provides
an ordered mapping from string keys to string
values.
%package javadoc
Summary: Javadoc for %{name}
BuildArch: noarch
%description javadoc
This package contains javadoc for %{name}.
%prep
%setup -q -n %{name}-%{name}-%{version}
%pom_remove_plugin :jxr-maven-plugin
%pom_remove_plugin :surefire-report-maven-plugin
# disable osx module
%pom_remove_dep org.fusesource.%{name}:%{name}-osx %{name}-all
%pom_remove_dep org.fusesource.leveldbjni:leveldbjni-win32 %{name}-all
%pom_remove_dep org.fusesource.leveldbjni:leveldbjni-win64 %{name}-all
%pom_xpath_remove "pom:project/pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-bundle-plugin']/pom:configuration/pom:instructions/pom:Private-Package" %{name}-all
%pom_xpath_remove "pom:project/pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-bundle-plugin']/pom:configuration/pom:instructions/pom:Export-Package" %{name}-all
%pom_xpath_remove "pom:project/pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-bundle-plugin']/pom:configuration/pom:instructions/pom:Import-Package" %{name}-all
%pom_xpath_inject "pom:project/pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-bundle-plugin']/pom:configuration/pom:instructions" '
org.fusesource.hawtjni.runtime,
org.fusesource.leveldbjni*;version=${project.version},
org.iq80.leveldb*;version=${leveldb-api-version},
' %{name}-all
%pom_xpath_remove "pom:project/pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-bundle-plugin']/pom:configuration/pom:instructions/pom:Embed-Dependency" %{name}-all
%pom_xpath_remove "pom:project/pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-bundle-plugin']/pom:configuration/pom:instructions/pom:Bundle-NativeCode" %{name}-all
%if %{bits} == 64
%pom_remove_dep org.fusesource.%{name}:%{name}-linux32 %{name}-all
%pom_xpath_set "pom:project/pom:dependencies/pom:dependency[pom:artifactId='leveldbjni-linux64']/pom:version" '
${project.version}' %{name}-all
%pom_xpath_set "pom:project/pom:dependencies/pom:dependency[pom:artifactId='leveldbjni']/pom:version" '
${project.version}' %{name}-linux64
%pom_xpath_set "pom:project/pom:parent/pom:version" "
%{version}" %{name}-linux64
%pom_xpath_set "pom:project/pom:version" "
%{version}" %{name}-linux64
%pom_xpath_set "pom:project/pom:dependencies/pom:dependency[pom:artifactId='leveldbjni']/pom:version" '
${project.version}' %{name}-linux64
%else
%pom_remove_dep org.fusesource.%{name}:%{name}-linux64 %{name}-all
%pom_xpath_set "pom:project/pom:dependencies/pom:dependency[pom:artifactId='leveldbjni-linux32']/pom:version" '
${project.version}' %{name}-all
%pom_xpath_set "pom:project/pom:parent/pom:version" "
%{version}" %{name}-linux32
%pom_xpath_set "pom:project/pom:version" "
%{version}" %{name}-linux32
%pom_xpath_set "pom:project/pom:dependencies/pom:dependency[pom:artifactId='leveldbjni']/pom:version" '
${project.version}' %{name}-linux32
%endif
%build
%mvn_file :%{name}-linux%{bits} %{name}-linux
export JAVA_HOME=%{_jvmdir}/java LEVELDB_HOME=%{_prefix} SNAPPY_HOME=%{_prefix}
%mvn_build -- -Plinux%{bits},all -Dleveldb=%{_prefix} -Dsnappy=%{_prefix}
%install
%mvn_install
install -m 644 %{name}/target/%{name}-%{version}-tests.jar %{buildroot}%{_javadir}/%{name}/%{name}-tests.jar
%files -f .mfiles
%dir %{_javadir}/%{name}
%{_javadir}/%{name}/%{name}-tests.jar
%doc changelog.md license.txt readme.md releasing.md
%files javadoc -f .mfiles-javadoc
%doc license.txt
%changelog
* Tue Apr 22 2014 gil cattaneo 1.8-1
- update to 1.8
* Sun Aug 18 2013 gil cattaneo 1.7-1
- update to 1.7
* Fri Sep 07 2012 gil cattaneo 1.2-1
- initial rpm