jffi/jffi.spec

113 lines
3.5 KiB
RPMSpec
Raw Normal View History

2020-08-04 15:31:53 +08:00
%global cluster jnr
%global sover 1.2
Name: jffi
2023-09-26 17:31:16 +08:00
Version: 1.3.0
2023-10-08 15:10:03 +08:00
Release: 2
2020-08-04 15:31:53 +08:00
Summary: Java Foreign Function Interface
License: LGPL-3.0-or-later OR Apache-2.0
URL: http://github.com/jnr/jffi
2023-09-26 17:31:16 +08:00
Source0: https://github.com/%{cluster}/%{name}/archive/refs/tags/jffi-jffi-1.3.0.tar.gz
2020-08-04 15:31:53 +08:00
Source3: p2.inf
Patch0: jffi-fix-dependencies-in-build-xml.patch
Patch1: jffi-add-built-jar-to-test-classpath.patch
Patch2: jffi-fix-compilation-flags.patch
Patch3: jffi-1.2.12-no_javah.patch
Patch4: jffi-fix-system-ffi.patch
2023-05-16 20:40:59 +08:00
Patch5: add-loongarch64-support-for-jffi.patch
2023-10-08 15:10:03 +08:00
Patch6: Add-support-for-riscv64.patch
2020-08-04 15:31:53 +08:00
BuildRequires: ant ant-junit fdupes gcc libffi-devel make maven-local unzip mvn(junit:junit)
BuildRequires: mvn(org.apache.felix:maven-bundle-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-antrun-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-assembly-plugin)
BuildRequires: mvn(org.sonatype.oss:oss-parent:pom:)
2023-09-26 17:31:16 +08:00
Provides: osgi(com.github.jnr.jffi) = %{version}
2020-08-04 15:31:53 +08:00
%description
An optimized Java interface to libffi.
%package native
Summary: The %{name} JAR with native bits
%description native
This package contains %{name} JAR with native bits.
%package javadoc
Summary: Javadoc for %{name}
BuildArch: noarch
%description javadoc
This package contains the API documentation for %{name}.
%prep
%setup -q -n %{name}-%{name}-%{version}
2023-09-26 17:31:16 +08:00
%patch0 -p1
%patch1 -p1
%patch2 -p1
2020-08-04 15:31:53 +08:00
%patch3 -p1
2023-09-26 17:31:16 +08:00
%patch4 -p1
2023-05-16 20:40:59 +08:00
%ifarch loongarch64
%patch5 -p1
%endif
2023-10-08 15:10:03 +08:00
%ifarch riscv64
%patch6 -p1
%endif
2020-08-04 15:31:53 +08:00
sed -i.cpu -e '/m\$(MODEL)/d' jni/GNUmakefile libtest/GNUmakefile
rm -rf archive/* jni/libffi/ jni/win32/ lib/CopyLibs/ lib/junit*
find ./ -name '*.jar' -exec rm -f '{}' \;
find ./ -name '*.class' -exec rm -f '{}' \;
build-jar-repository -s -p lib/ junit hamcrest/core
%{mvn_package} 'com.github.jnr:jffi::native:' native
%{mvn_file} ':{*}' %{name}/@1 @1
2023-09-26 17:31:16 +08:00
sed -i 's/1.6/1.8/g' build.xml
2020-08-04 15:31:53 +08:00
%build
ant jar build-native -Duse.system.libffi=1
cp -p dist/jffi-*-Linux.jar archive/
%{mvn_build}
%install
%mvn_install
%fdupes -s %{buildroot}%{_javadocdir}
mkdir -p META-INF/
cp %{SOURCE3} META-INF/
jar uf %{buildroot}%{_jnidir}/%{name}/%{name}.jar META-INF/p2.inf
install -dm 755 %{buildroot}%{_libdir}/%{name}
unzip dist/jffi-*-Linux.jar
mv jni/*-Linux %{buildroot}%{_libdir}/%{name}/
pushd %{buildroot}%{_libdir}/%{name}/*
chmod +x lib%{name}-%{sover}.so
ln -s lib%{name}-%{sover}.so lib%{name}.so
popd
%check
sed -i 's|-Werror||' libtest/GNUmakefile
ant -Duse.system.libffi=1 test
%files -f .mfiles
%doc COPYING.GPL COPYING.LESSER LICENSE
%files native -f .mfiles-native
%{_libdir}/%{name}
%doc COPYING.GPL COPYING.LESSER LICENSE
%files javadoc -f .mfiles-javadoc
%doc COPYING.GPL COPYING.LESSER LICENSE
%changelog
2023-10-08 15:10:03 +08:00
* Sun Oct 08 2023 laokz <zhangkai@iscas.ac.cn> - 1.3.0-2
- Backport v1.3.11 patch to support riscv64
2023-09-26 17:31:16 +08:00
* Tue Sep 26 2023 Ge Wang <wang__ge@126.com> - 1.3.0-1
- update to version 1.3.0
* Mon Jun 12 2023 hutianxue <hutianxue@xfusion.com> - 1.2.13-4
- remove redundant macros %pkg_vcmp
2023-05-16 20:40:59 +08:00
* Thu May 18 2023 Wenlong Zhang <zhangwenlong@loongson.cn> - 1.2.13-3
- fix build error for loongarch64
* Thu May 18 2023 wulei <wu_lei@hoperun.com> - 1.2.13-2
- Add Buildrequires apache-parent package to fix pkg_vcmp macro not being recognized
2020-08-04 15:31:53 +08:00
* Thu Jul 30 2020 Jeffery.Gao <gaojianxing@huawei.com> - 1.2.13-1
- Package init