%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