%global uname jigawatts
%global uversion 6c78499af1a1d536368267e5ab5449232b05f878
%global dversion %(echo %{uversion} | sed s/-/_/)
%global aarch64 aarch64 arm64 armv8
%global shortcommit %(c=%{uversion}; echo ${c:0:7})
%global commitdate 20210827
Name: %{uname}
Version: 0.2
Release: 0.6.%{commitdate}%{shortcommit}%{?dist}
Summary: Java CRIU helper
License: GPLv2 with exceptions
URL: https://github.com/chflood/%{uname}
Source0: https://github.com/chflood/jigawatts/archive/%{uversion}.tar.gz
# Pathces to move library out of the jar. This must be usptreamed in one or another way
Patch0: output_loc.patch
BuildRequires: java-devel
BuildRequires: criu-devel
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: maven-local
BuildRequires: maven-surefire-provider-junit
BuildRequires: maven-surefire-provider-junit5
BuildRequires: maven-surefire
BuildRequires: maven-surefire-plugin
BuildRequires: maven-clean-plugin
BuildRequires: exec-maven-plugin
BuildRequires: maven-shade-plugin
BuildRequires: mvn(org.apache.commons:commons-lang3)
Requires: java-headless
#Requires: criu-libs the depndence shhould be generated by rpmbuild
# criu is only available on these architectures
# https://bugzilla.redhat.com/show_bug.cgi?id=902875
ExclusiveArch: x86_64 %{arm} ppc64le aarch64 s390x
%description
CRIU is a Linux utility that allows the checkpointing and restoring
of processes.You can read more about CRIU at criu.org. CRIU for
Java is a package which makes it more convenient to use CRIU from
Java.
%package javadoc
Summary: Javadoc for %{name}
%description javadoc
Javadoc for %{name}
%prep
%setup -q -n %{uname}-%{uversion}
%patch0 -p1
%pom_add_dep org.apache.commons:commons-lang3:3.12.0:test
%pom_xpath_inject "pom:build/pom:plugins/pom:plugin[pom:artifactId='exec-maven-plugin']/pom:executions/pom:execution/pom:configuration/pom:arguments" '-g'
# Work-around for RHBZ#1977671, /usr/lib64 missing on default java.library.path on aarch64
%ifarch %{aarch64}
%pom_xpath_inject "pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-surefire-plugin']/pom:configuration" '1
/usr/lib64:${project.build.directory}
'
%else
%pom_xpath_inject "pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-surefire-plugin']/pom:configuration" '1
${project.build.directory}
'
%endif
%build
#skipping tests, new tests can pass only if run as root
%mvn_build --xmvn-javadoc -f
%install
%mvn_install
mkdir -p %{buildroot}/%{_libdir}
cp ./target/libJigawatts.so %{buildroot}/%{_libdir}/
%files -f .mfiles
%doc README.md
%license LICENSE.md
%{_libdir}/libJigawatts.so
%files javadoc -f .mfiles-javadoc
%changelog
* Sat Feb 05 2022 Jiri Vanek - 0.2-0.6.202108276c78499
- Rebuilt for java-17-openjdk as system jdk
* Thu Jan 20 2022 Fedora Release Engineering - 0.2-0.5.202108276c78499
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Thu Aug 19 2021 Jiri Vanek - 0.2-0.4.202108276c78499
- bumped to latst commit
- includes system library patch and variables to control library
* Thu Aug 19 2021 Jiri Vanek - 0.2-0.3.2021081722e8e87
- bumped to latst commit
- includes renaming jigawat.jar -> jigawatts.jar and chnage of package to com.redhat.jigawatts
* Thu Jul 22 2021 Fedora Release Engineering - 0.2-0.2.20210701c15dd4c
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Thu Jul 01 2021 Jiri Vanek - 0.2-0.1.20210701c15dd4c
- criu-devel moved to BR
- now requires criu-libs
- enabled debuginfo generation
- excluded i686 build as criu is 64b only
- .so file moved out of jar. Required teo patches:
- added and applied patch0 output_loc.patch
- added and applied patch1 load_library.patch
- on aarch64 workarounded missing lib64 on /usr/LD_LIBRARY_PATH
* Wed Apr 14 2021 Jiri Vanek - 0.2-0.1.20210701c15dd4c
- initial build
- added requires of criu-devel