leveldbjni/leveldbjni.spec
wu-leilei 8aea6dc702 Fix not stripped problem
(cherry picked from commit 2aecb84b50237caa42d85644565c64b6ee2dbc9e)
2023-03-07 09:59:48 +08:00

93 lines
3.4 KiB
RPMSpec

%global debug_package %{nil}
Name: leveldbjni
Version: 1.8
Release: 21
Summary: A Java Native Interface to LevelDB
License: BSD
URL: https://github.com/fusesource/leveldbjni/
Source0: https://github.com/fusesource/leveldbjni/archive/leveldbjni-%{version}.tar.gz
BuildRequires: gcc-c++ autoconf automake libtool maven-local mvn(junit:junit) mvn(org.apache.felix:maven-bundle-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-source-plugin) mvn(org.apache.maven.plugin-tools:maven-plugin-tools-javadoc)
BuildRequires: mvn(org.fusesource:fusesource-pom:pom:) mvn(org.fusesource.hawtjni:hawtjni-runtime) pkgconfig(leveldb) >= 1.7.0-4
BuildRequires: mvn(org.fusesource.hawtjni:maven-hawtjni-plugin) mvn(org.iq80.leveldb:leveldb-api) snappy-devel xmvn
%description
LevelDB JNI provides a Java interface to the LevelDB C ++ library,
which is a fast key-value store written by Google that provides
an ordered mapping from string keys to string values.
%package help
Summary: Javadoc for leveldbjni
Provides: %{name}-javadoc = %{version}-%{release}
Obsoletes: %{name}-javadoc < %{version}-%{release}
BuildArch: noarch
%description help
This package contains a java manual for introducing leveldbjni.
%prep
%autosetup -n leveldbjni-leveldbjni-%{version} -p1
%pom_remove_plugin :jxr-maven-plugin
%pom_remove_plugin :surefire-report-maven-plugin
%pom_remove_dep org.fusesource.leveldbjni:leveldbjni-osx leveldbjni-all
%pom_remove_dep org.fusesource.leveldbjni:leveldbjni-win32 leveldbjni-all
%pom_remove_dep org.fusesource.leveldbjni:leveldbjni-win64 leveldbjni-all
%pom_xpath_remove "pom:Private-Package" leveldbjni-all
%pom_xpath_remove "pom:Export-Package" leveldbjni-all
%pom_xpath_remove "pom:Import-Package" leveldbjni-all
%pom_xpath_inject "pom:plugin[pom:artifactId='maven-bundle-plugin']/pom:configuration/pom:instructions" '
<Import-Package>
org.fusesource.hawtjni.runtime,
org.iq80.leveldb*;version=${leveldb-api-version}
</Import-Package>' leveldbjni-all
%pom_xpath_remove "pom:Bundle-NativeCode" leveldbjni-all
%pom_remove_dep org.fusesource.leveldbjni:leveldbjni-linux32 leveldbjni-all
%pom_xpath_inject "pom:plugin[pom:artifactId='maven-bundle-plugin']/pom:configuration/pom:instructions" "
<Bundle-NativeCode>
META-INF/native/linux64/libleveldbjni.so;osname=Linux;processor=x86-64
</Bundle-NativeCode>" leveldbjni-all
find leveldbjni/src/test/java/org/fusesource/leveldbjni/test -name DBTest.java -delete
cp -f /usr/lib/rpm/config.{sub,guess} /usr/share/automake-*/compile leveldbjni/src/main/native-package/autotools/
%pom_remove_plugin :maven-jar-plugin leveldbjni
%pom_add_plugin org.apache.maven.plugins:maven-jar-plugin:3.0.2 leveldbjni '
<configuration>
<archive>
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>'
%build
%mvn_file :leveldbjni-all leveldbjni-all
%mvn_file :leveldbjni-linux64 leveldbjni-linux
export JAVA_HOME=%{_jvmdir}/java LEVELDB_HOME=%{_prefix} SNAPPY_HOME=%{_prefix}
export CFLAGS="$RPM_OPT_FLAGS" LDFLAGS="$RPM_LD_FLAGS -Wl,-s"
%mvn_build -- -Plinux64,all -Dleveldb=%{_prefix} -Dsnappy=%{_prefix}
%install
%mvn_install
%files -f .mfiles
%doc changelog.md releasing.md
%license license.txt
%files help -f .mfiles-javadoc
%doc readme.md
%changelog
* Tue Mar 07 2023 wulei <wulei80@h-partners.com> - 1.8-21
- Fix not stripped problem
* Fri Dec 20 2019 yangjian<yangjian79@huawei.com> - 1.8-20
- Package init