nauty/nauty.spec

133 lines
3.7 KiB
RPMSpec

%global nautybasever 2.6r5
%global nautytarver %(tr -d . <<< %{nautybasever})
Name: nauty
Version: %(tr r . <<< %{nautybasever})
Release: 1%{?dist}
Summary: Graph canonical labeling and automorphism group computation
License: ASL 2.0
URL: http://pallini.di.uniroma1.it/
Source0: http://pallini.di.uniroma1.it/%{name}%{nautytarver}.tar.gz
# Debian patch to fix the gt_numorbits declaration
Patch0: %{name}-fix-gt_numorbits.patch
# Debian patch to add explicit extern declarations where needed
Patch1: %{name}-fix-include-extern.patch
# Debian patch to use zlib instead of invoking zcat through a pipe
Patch2: %{name}-zlib-blisstog.patch
# Debian patch to improve usage and help information
Patch3: %{name}-help2man.patch
# Debian patch to add libtool support for building a shared library
Patch4: %{name}-autotoolization.patch
# Debian patch to canonicalize header file usage
Patch5: %{name}-includes.patch
# Debian patch to prefix "nauty-" to the names of the generic tools
Patch6: %{name}-tool-prefix.patch
# Detect availability of the popcnt instruction at runtime
Patch7: %{name}-popcnt.patch
BuildRequires: gcc
BuildRequires: gmp-devel
BuildRequires: help2man
BuildRequires: libtool
BuildRequires: zlib-devel
# The shortg program invokes sort.
Requires: coreutils
Requires: lib%{name}%{?_isa} = %{version}-%{release}
%description
Nauty and Traces are programs for computing automorphism groups of
graphs and digraphs. (At present, Traces does not accept digraphs.)
They can also produce a canonical label. They are written in a portable
subset of C, and run on a considerable number of different systems.
There is a small suite of programs called gtools included in the
package. For example, geng can generate non-isomorphic graphs very
quickly. There are also generators for bipartite graphs, digraphs, and
multigraphs, and programs for manipulating files of graphs in a compact
format.
%package -n libnauty
Summary: Library for graph automorphism
%description -n libnauty
Nauty (No AUTomorphisms, Yes?) is a set of procedures for computing
automorphism groups of graphs and digraphs. This package contains a
library of nauty procedures.
%package -n libnauty-devel
Summary: Development files for libnauty
Requires: lib%{name}%{?_isa} = %{version}-%{release}
%description -n libnauty-devel
This package contains files needed to develop programs that use libnauty.
%prep
%setup -q -n %{name}%{nautytarver}
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
# Remove the pregenerated makefile
rm -f makefile
# Inject the version number
sed -i 's/@INJECTVER@/%{version}/' configure.ac
# Regenerate the configure script with libtool support
autoreconf -fi
%build
export CFLAGS="%{optflags} -fwrapv"
%configure --disable-static \
%ifarch %ix86 x86_64
--enable-runtime-popcnt \
%endif
--enable-tls
make %{?_smp_mflags}
%install
make install DESTDIR=%{buildroot}
# We do not want the libtool archives
rm %{buildroot}%{_libdir}/*.la
%check
make check
%post -n libnauty -p /sbin/ldconfig
%postun -n libnauty -p /sbin/ldconfig
%files
%doc README nug26.pdf
%{_bindir}/dreadnaut
%{_bindir}/nauty-*
%{_mandir}/man1/dreadnaut.1*
%{_mandir}/man1/nauty-*.1*
%files -n libnauty
%doc changes24-26.txt formats.txt
%license COPYRIGHT
%{_libdir}/libnauty*.so.*
%files -n libnauty-devel
%doc schreier.txt
%{_includedir}/nauty/
%{_libdir}/libnauty*.so
%{_libdir}/pkgconfig/%{name}.pc
%changelog
* Thu Apr 21 2016 Jerry James <loganjerry@gmail.com> - 2.6.5-1
- New upstream version
* Fri Apr 15 2016 Jerry James <loganjerry@gmail.com> - 2.6.4-1
- Initial RPM