Name: apfloat-java
Version: 1.8.2
Release: 1%{?dist}
Summary: High performance arbitrary precision arithmetic library for Java
License: LGPLv2+
URL: http://www.apfloat.org/apfloat_java/
Source0: http://www.apfloat.org/apfloat_java/apfloat-%{version}.zip
Source1: http://repo1.maven.org/maven2/org/apfloat/apfloat/%{version}/apfloat-%{version}.pom
Source2: http://repo1.maven.org/maven2/org/apfloat/apfloat-calc/%{version}/apfloat-calc-%{version}.pom
Source3: http://repo1.maven.org/maven2/org/apfloat/apfloat-samples/%{version}/apfloat-samples-%{version}.pom
Source4: http://repo1.maven.org/maven2/org/apfloat/apfloat-parent/%{version}/apfloat-parent-%{version}.pom
BuildRequires: maven-local
BuildRequires: mvn(junit:junit)
BuildRequires: mvn(org.apache.felix:maven-bundle-plugin)
BuildRequires: mvn(org.codehaus.mojo:build-helper-maven-plugin)
BuildRequires: mvn(org.codehaus.mojo:javacc-maven-plugin)
BuildArch: noarch
%description
Apfloat is a high performance arbitrary precision arithmetic library.
You can perform calculations with a precision of millions of digits
with it. It's as simple to use as Java's BigDecimal or BigInteger classes,
but performs a lot better with extreme precision numbers (more than a few
hundred digits). Also, a full suite of mathematical functions for arbitrary
precision numbers are available: all those existing in java.lang.Math and
more.
%package calc
Summary: Apfloat Calc
%description calc
Interactive arbitrary precision calculator application.
%package parent
Summary: Apfloat Parent POM
%description parent
Administrative Parent POM for Apfloat.
%package samples
Summary: Apfloat Samples
%description samples
Sample programs for apfloat for calculating pi.
%package javadoc
Summary: Javadoc for %{name}
%description javadoc
This package contains javadoc for %{name}.
%prep
%setup -q -c
# Extract missing services resources
%jar -xf lib/apfloat.jar
# Cleanup
find . -name "*.jar" -print -delete
find . -name "*.class" -print -delete
rm -r applet docs org lib
# Prepare source directories structures
mkdir -p apfloat/src/main/java/org/apfloat
mv source/org/apfloat/*.java apfloat/src/main/java/org/apfloat
mv source/org/apfloat/internal apfloat/src/main/java/org/apfloat
mv source/org/apfloat/spi apfloat/src/main/java/org/apfloat
mkdir -p apfloat/src/main/resources/META-INF
mv META-INF/services apfloat/src/main/resources/META-INF
rm -r META-INF
mkdir -p apfloat-calc/src/main/java/org/apfloat
mv source/org/apfloat/calc apfloat-calc/src/main/java/org/apfloat
# re-generate
rm -r apfloat-calc/src/main/java/org/apfloat/calc/CalculatorParser.java
rm -r apfloat-calc/src/main/java/org/apfloat/calc/CalculatorParserConstants.java
rm -r apfloat-calc/src/main/java/org/apfloat/calc/CalculatorParserTokenManager.java
rm -r apfloat-calc/src/main/java/org/apfloat/calc/ParseException.java
rm -r apfloat-calc/src/main/java/org/apfloat/calc/SimpleCharStream.java
rm -r apfloat-calc/src/main/java/org/apfloat/calc/Token.java
rm -r apfloat-calc/src/main/java/org/apfloat/calc/TokenMgrError.java
mkdir -p apfloat-samples/src/main/java/org/apfloat
mv source/org/apfloat/samples apfloat-samples/src/main/java/org/apfloat
cp -p %SOURCE1 apfloat/pom.xml
cp -p %SOURCE2 apfloat-calc/pom.xml
cp -p %SOURCE3 apfloat-samples/pom.xml
cp -p %SOURCE4 pom.xml
%pom_disable_module apfloat-applet
%pom_disable_module apfloat-jscience
# Disable classpath entries in manifest files
%pom_xpath_remove -r "pom:addClasspath" apfloat-calc apfloat-samples
%pom_xpath_remove "pom:classpathLayoutType" apfloat-calc
%pom_xpath_remove "pom:customClasspathLayout" apfloat-calc
# Fix encoding
%pom_xpath_set -r "pom:properties/pom:project.build.sourceEncoding" UTF-8
%pom_xpath_set -r "pom:plugin[pom:artifactId='maven-javadoc-plugin']/pom:configuration/pom:docencoding" UTF-8 apfloat-calc apfloat-samples
# Disable signatures
%pom_remove_plugin -r :maven-gpg-plugin
%pom_xpath_remove "pom:properties/pom:gpg.useagent"
# Uanavailable resources
%pom_remove_plugin :maven-antrun-plugin apfloat
%pom_xpath_remove "pom:build/pom:filters" apfloat
# OSGi support
%pom_xpath_set "pom:project/pom:packaging" bundle apfloat
%pom_add_plugin org.apache.felix:maven-bundle-plugin:2.5.4 apfloat '
true
${project.version}
bundle-manifest
process-classes
manifest
'
for p in apfloat-calc \
apfloat-samples; do
%pom_xpath_inject "pom:project" "bundle" ${p}
%pom_add_plugin org.apache.felix:maven-bundle-plugin:2.5.4 ${p} '
true
${project.version}
bundle-manifest
process-classes
manifest
'
done
# fix non ASCII chars
native2ascii -encoding UTF8 apfloat/src/main/java/org/apfloat/GCDHelper.java \
apfloat/src/main/java/org/apfloat/GCDHelper.java
%build
%mvn_build -s
%install
%mvn_install
%files -f .mfiles-apfloat
%doc readme.html
%license lgpl.txt
%files calc -f .mfiles-apfloat-calc
%license lgpl.txt
%files parent -f .mfiles-apfloat-parent
%license lgpl.txt
%files samples -f .mfiles-apfloat-samples
%license lgpl.txt
%files javadoc -f .mfiles-javadoc
%license lgpl.txt
%changelog
* Wed Oct 28 2015 gil cattaneo 1.8.2-1
- initial rpm