Name: normaliz
Version: 2.12.1
Release: 1%{?dist}
Summary: A tool for mathematical computations
License: GPLv3+
URL: http://www.mathematik.uni-osnabrueck.de/normaliz/
# Warning: This zip-ball contains .jar binaries, source only zip-ball not
# available
Source0: http://www.mathematik.uni-osnabrueck.de/normaliz/Normaliz%{version}/Normaliz%{version}.zip
BuildRequires: ant
BuildRequires: apache-commons-exec
BuildRequires: apache-commons-exec-javadoc
BuildRequires: appframework
BuildRequires: boost-devel
BuildRequires: chrpath
BuildRequires: cmake
BuildRequires: gmp-devel
BuildRequires: java-devel >= 1:1.6.0
BuildRequires: javasysmon
BuildRequires: jpackage-utils
Requires: lib%{name}%{?_isa} = %{version}-%{release}
%global nopatchver %(cut -d. -f1-2 <<< %{version})
%description
Normaliz is a tool for computations in affine monoids, vector
configurations, lattice polytopes, and rational cones.
Documentation and examples can be found in %{?_pkgdocdir}%{!?_pkgdocdir:%{_docdir}/%{name}-%{version}},
in particular you may find Normaliz%{version}Documentation.pdf useful.
%package -n libnormaliz
Summary: Normaliz internals as a library
%description -n libnormaliz
This package contains the normaliz internals as a library, often called
libnormaliz.
%package -n libnormaliz-devel
Summary: Developer files for libnormaliz
Requires: lib%{name}%{?_isa} = %{version}-%{release}
%description -n libnormaliz-devel
Header files and library links to develop applications that use the
Normaliz internals as a library (libnormaliz).
%package -n jnormaliz
Summary: Graphical interface for Normaliz
Requires: %{name} = %{version}-%{release}
Requires: apache-commons-exec
Requires: appframework
Requires: java >= 1:1.6.0
Requires: javasysmon
Requires: jpackage-utils
BuildArch: noarch
%description -n jnormaliz
JNormaliz is a graphic interface for Normaliz, written in Java.
%package -n jnormaliz-javadoc
Summary: Javadoc documentation for jNormaliz
Requires: jnormaliz = %{version}-%{release}
Requires: apache-commons-exec-javadoc
Requires: jpackage-utils
BuildArch: noarch
%description -n jnormaliz-javadoc
Javadoc documentation for jNormaliz
%prep
%setup -q -n Normaliz%{nopatchver}
# Remove prebuilt class files, jars, and javadocs, except for one netbeans jar
# used for building only (no runtime dependencies).
find . -name \*.jar -a \! -name \*copylibstask.jar | xargs rm -f
rm -fr source/jNormaliz/build
# Use system jars instead of bundled jars
ln -s %{_javadir}/appframework.jar lib/appframework-1.0.3.jar
ln -s %{_javadir}/commons-exec.jar lib/commons-exec-1.0.1.jar
ln -s %{_javadir}/javasysmon.jar lib/javasysmon.jar
pushd source/jNormaliz/lib
ln -s %{_javadir}/commons-exec.jar commons-exec-1.0.1/commons-exec-1.0.1.jar
ln -s %{_javadocdir}/apache-commons-exec commons-exec-1.0.1/apidocs
ln -s %{_javadir}/javasysmon.jar javasysmon.jar
ln -s %{_javadir}/junit.jar junit_4/junit-4.5.jar
ln -s %{_javadir}/appframework.jar swing-app-framework/appframework-1.0.3.jar
popd
# Don't add a Class-Path to the jar
sed -i '/Class-Path/d' source/jNormaliz/nbproject/build-impl.xml
# Use our compiler flags
sed -i '/funroll-loops/d' source/CMakeLists.txt
# Fix the library path
if [ "%{_libdir}" = "%{_prefix}/lib64" ]; then
sed -i "s,/lib,/lib64," source/CMakeLists.txt
fi
%build
# Build the C library and the binaries
mkdir build
pushd build
export LDFLAGS="-Wl,--as-needed $RPM_LD_FLAGS"
%cmake ../source
make %{?_smp_mflags} VERBOSE=1
# Build the Java interface and documentation
cd ../source/jNormaliz
ant jar
ant javadoc
popd
mkdir -p docs/example
# Correct the end of line encodings for use on Linux
pushd example
for file in *.out *.in
do
sed 's/\r//' "$file" > "../docs/example/$file"
touch -r "$file" "../docs/example/$file"
done
popd
%install
# Install the library, binary, and headers
pushd build
make install DESTDIR=%{buildroot}
popd
# Remove spurious rpaths
chrpath -d %{buildroot}%{_libdir}/libnormaliz.so.%{version}
chrpath -d %{buildroot}%{_bindir}/normaliz
# Install the jar
mkdir -p %{buildroot}%{_javadir}
cp -p source/jNormaliz/dist/jNormaliz.jar %{buildroot}%{_javadir}
# Install the javadoc
mkdir -p %{buildroot}%{_javadocdir}
cp -a source/jNormaliz/dist/javadoc %{buildroot}%{_javadocdir}/jnormaliz
%post -n libnormaliz -p /sbin/ldconfig
%postun -n libnormaliz -p /sbin/ldconfig
%files
%doc docs/* doc/Algorithms*.pdf doc/Challenging*.pdf doc/Computing*.pdf
%doc doc/Normaliz.pdf doc/The*.pdf
%{_bindir}/normaliz
%files -n libnormaliz
%license source/COPYING
%{_libdir}/libnormaliz.so.*
%files -n libnormaliz-devel
%doc source/libnormaliz/README
%{_libdir}/libnormaliz.so
%{_includedir}/libnormaliz/
%files -n jnormaliz
%doc doc/jNormaliz_*.pdf
%{_javadir}/jNormaliz.jar
%files -n jnormaliz-javadoc
%{_javadocdir}/jnormaliz
%changelog
* Mon Nov 10 2014 Jerry James <loganjerry@gmail.com> - 2.12.1-1
- New upstream release
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.11.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Tue Aug 5 2014 Jerry James <loganjerry@gmail.com> - 2.11.2-1
- New upstream release
- Build now uses cmake
- Drop upstreamed patch
- Fix license handling
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.10.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Thu May 22 2014 Petr Machata <pmachata@redhat.com> - 2.10.1-3
- Rebuild for boost 1.55.0
* Wed Jan 15 2014 Jerry James <loganjerry@gmail.com> - 2.10.1-2
- Fix thinko in -devel dependencies
* Tue Jan 14 2014 Jerry James <loganjerry@gmail.com> - 2.10.1-1
- New upstream release
- Package libnormaliz and jNormaliz separately
* Wed Aug 21 2013 Ville Skyttä <ville.skytta@iki.fi> - 2.7-8
- Adjust for unversioned %%{_docdir_fmt} (#994006).
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.7-7.2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Tue Jul 30 2013 Petr Machata <pmachata@redhat.com> - 2.7-6.2
- Rebuild for boost 1.54.0
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.7-5.2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Fri Jul 20 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.7-4.2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Tue Feb 28 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.7-3.2
- Rebuilt for c++ ABI breakage
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.7-2.2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Wed Oct 26 2011 Marcela Mašláňová <mmaslano@redhat.com> - 2.7-1.2
- rebuild with new gmp without compat lib
* Wed Oct 12 2011 Peter Schiffer <pschiffe@redhat.com> - 2.7-1.1
- rebuild with new gmp
* Fri May 27 2011 Rex Dieter <rdieter@fedoraproject.org> 2.7-1
- 2.7
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Thu Feb 25 2010 Mark Chappell <tremble@fedoraproject.org> - 2.2-3
- Preserve timestamps on examples
- Ensure that the first command in install is to wipe the buildroot
- Tweak to description
* Thu Feb 25 2010 Mark Chappell <tremble@fedoraproject.org> - 2.2-2
- Move examples into a subdirectory
- Correct inconsistant use of macros
- Provide a reference to the documentation in the description
* Wed Feb 24 2010 Mark Chappell <tremble@fedoraproject.org> - 2.2-1
- Initial build