Initial import (#920518).
This commit is contained in:
parent
ebdfd11ffe
commit
ceab4ad938
1
.gitignore
vendored
1
.gitignore
vendored
@ -0,0 +1 @@
|
||||
/metis-5.0.3.tar.gz
|
56
metis-GKREGEX-GKRAND-LIBSUFFIX-fix.patch
Normal file
56
metis-GKREGEX-GKRAND-LIBSUFFIX-fix.patch
Normal file
@ -0,0 +1,56 @@
|
||||
--- metis-5.0.3/GKlib/Makefile.orig 2013-03-11 20:50:42.000000000 +0100
|
||||
+++ metis-5.0.3/GKlib/Makefile 2013-03-17 14:26:23.632867727 +0100
|
||||
@@ -41,10 +41,10 @@
|
||||
CONFIG_FLAGS += -DPCRE=$(pcre)
|
||||
endif
|
||||
ifneq ($(gkregex), not-set)
|
||||
- CONFIG_FLAGS += -DGKREGEX=$(pcre)
|
||||
+ CONFIG_FLAGS += -DGKREGEX=$(gkregex)
|
||||
endif
|
||||
ifneq ($(gkrand), not-set)
|
||||
- CONFIG_FLAGS += -DGKRAND=$(pcre)
|
||||
+ CONFIG_FLAGS += -DGKRAND=$(gkrand)
|
||||
endif
|
||||
ifneq ($(prefix), not-set)
|
||||
CONFIG_FLAGS += -DCMAKE_INSTALL_PREFIX=$(prefix)
|
||||
|
||||
--- metis-5.0.3/Makefile.orig 2013-03-11 20:50:09.000000000 +0100
|
||||
+++ metis-5.0.3/Makefile 2013-03-17 18:30:50.634301059 +0100
|
||||
@@ -9,7 +9,10 @@
|
||||
gklib_path = not-set
|
||||
shared = not-set
|
||||
cc = not-set
|
||||
-
|
||||
+libsuffix = not-set
|
||||
+pcre = not-set
|
||||
+gkregex = not-set
|
||||
+gkrand = not-set
|
||||
|
||||
# Basically proxies everything to the builddir cmake.
|
||||
|
||||
@@ -23,6 +26,9 @@
|
||||
ifeq ($(gklib_path), not-set)
|
||||
gklib_path = GKlib
|
||||
endif
|
||||
+ifneq ($(libsuffix), not-set)
|
||||
+ CONFIG_FLAGS += -DLIB_SUFFIX=$(libsuffix)
|
||||
+endif
|
||||
CONFIG_FLAGS += -DGKLIB_PATH=$(abspath $(gklib_path))
|
||||
ifneq ($(gdb), not-set)
|
||||
CONFIG_FLAGS += -DGDB=$(gdb)
|
||||
@@ -51,6 +57,15 @@
|
||||
ifneq ($(cc), not-set)
|
||||
CONFIG_FLAGS += -DCMAKE_C_COMPILER=$(cc)
|
||||
endif
|
||||
+ifneq ($(pcre), not-set)
|
||||
+ CONFIG_FLAGS += -DPCRE=$(pcre)
|
||||
+endif
|
||||
+ifneq ($(gkregex), not-set)
|
||||
+ CONFIG_FLAGS += -DGKREGEX=$(gkregex)
|
||||
+endif
|
||||
+ifneq ($(gkrand), not-set)
|
||||
+ CONFIG_FLAGS += -DGKRAND=$(gkrand)
|
||||
+endif
|
||||
|
||||
VERNUM=5.0.3
|
||||
PKGNAME=metis-$(VERNUM)
|
20
metis-libmetis.patch
Normal file
20
metis-libmetis.patch
Normal file
@ -0,0 +1,20 @@
|
||||
--- metis-5.0.3/libmetis/CMakeLists.orig.txt 2011-06-22 19:47:13.000000000 +0200
|
||||
+++ metis-5.0.3/libmetis/CMakeLists.txt 2013-03-15 17:13:19.948911972 +0100
|
||||
@@ -4,13 +4,14 @@
|
||||
file(GLOB metis_sources *.c)
|
||||
# Build libmetis.
|
||||
add_library(metis ${METIS_LIBRARY_TYPE} ${GKlib_sources} ${metis_sources})
|
||||
+set_target_properties(metis PROPERTIES SOVERSION 0)
|
||||
if(UNIX)
|
||||
target_link_libraries(metis m)
|
||||
endif()
|
||||
|
||||
if(METIS_INSTALL)
|
||||
install(TARGETS metis
|
||||
- LIBRARY DESTINATION lib
|
||||
- RUNTIME DESTINATION lib
|
||||
- ARCHIVE DESTINATION lib)
|
||||
+ LIBRARY DESTINATION lib${LIB_SUFFIX}
|
||||
+ RUNTIME DESTINATION lib${LIB_SUFFIX}
|
||||
+ ARCHIVE DESTINATION lib${LIB_SUFFIX})
|
||||
endif()
|
21
metis-shared-GKlib.patch
Normal file
21
metis-shared-GKlib.patch
Normal file
@ -0,0 +1,21 @@
|
||||
--- metis-5.0.3/GKlib/CMakeLists.orig.txt 2013-03-11 20:50:14.000000000 +0100
|
||||
+++ metis-5.0.3/GKlib/CMakeLists.txt 2013-03-17 19:53:44.220827579 +0100
|
||||
@@ -7,7 +7,7 @@
|
||||
include(GKlibSystem.cmake)
|
||||
|
||||
include_directories(".")
|
||||
-add_library(GKlib STATIC ${GKlib_sources})
|
||||
+add_library(GKlib SHARED ${GKlib_sources})
|
||||
if(UNIX)
|
||||
target_link_libraries(GKlib m)
|
||||
endif(UNIX)
|
||||
@@ -16,6 +16,6 @@
|
||||
add_subdirectory("test")
|
||||
|
||||
install(TARGETS GKlib
|
||||
- ARCHIVE DESTINATION lib
|
||||
- LIBRARY DESTINATION lib)
|
||||
-install(FILES ${GKlib_includes} DESTINATION include)
|
||||
+ ARCHIVE DESTINATION lib${LIB_SUFFIX}
|
||||
+ LIBRARY DESTINATION lib${LIB_SUFFIX})
|
||||
+install(FILES ${GKlib_includes} DESTINATION include/metis)
|
12
metis-width-datatype.patch
Normal file
12
metis-width-datatype.patch
Normal file
@ -0,0 +1,12 @@
|
||||
--- metis-5.0.3/include/metis.orig.h 2013-03-11 20:50:00.000000000 +0100
|
||||
+++ metis-5.0.3/include/metis.h 2013-03-16 12:14:59.117329640 +0100
|
||||
@@ -30,7 +30,7 @@
|
||||
GCC does provides these definitions in stdint.h, but it may require some
|
||||
modifications on other architectures.
|
||||
--------------------------------------------------------------------------*/
|
||||
-#define IDXTYPEWIDTH 32
|
||||
+#define IDXTYPEWIDTH 64
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
|
170
metis.spec
Normal file
170
metis.spec
Normal file
@ -0,0 +1,170 @@
|
||||
Name: metis
|
||||
Version: 5.0.3
|
||||
Release: 7%{?dist}
|
||||
Summary: Serial Graph Partitioning and Fill-reducing Matrix Ordering
|
||||
License: ASL 2.0 and BSD and LGPLv2+
|
||||
Group: Development/Libraries
|
||||
URL: http://glaros.dtc.umn.edu/gkhome/views/%{name}
|
||||
Source0: http://glaros.dtc.umn.edu/gkhome/fetch/sw/%{name}/%{name}-%{version}.tar.gz
|
||||
|
||||
## This patch sets up libmetis soname of libmetis
|
||||
Patch0: %{name}-libmetis.patch
|
||||
|
||||
## This patch sets up shared GKlib library
|
||||
Patch1: %{name}-shared-GKlib.patch
|
||||
|
||||
## Specify the width (32 or 64 bits) of the elementary data type
|
||||
## used in METIS. This is controled by the IDXTYPEWIDTH
|
||||
## constant.
|
||||
## For now, on a 32 bit architecture you can only specify a width of 32,
|
||||
## whereas for a 64 bit architecture you can specify a width of either
|
||||
## 32 or 64 bits.
|
||||
Patch2: %{name}-width-datatype.patch
|
||||
|
||||
## This patch sets up GKREGEX, GKRAND, libsuffix options to the Makefiles
|
||||
Patch4: %{name}-GKREGEX-GKRAND-LIBSUFFIX-fix.patch
|
||||
|
||||
BuildRequires: cmake >= 2.8
|
||||
BuildRequires: openmpi-devel
|
||||
BuildRequires: pcre-devel
|
||||
BuildRequires: help2man
|
||||
|
||||
%description
|
||||
METIS is a set of serial programs for partitioning graphs,
|
||||
partitioning finite element meshes, and producing fill reducing
|
||||
orderings for sparse matrices.
|
||||
The algorithms implemented in METIS are based on the multilevel
|
||||
recursive-bisection, multilevel k-way, and multi-constraint
|
||||
partitioning schemes developed in our lab.
|
||||
|
||||
%package devel
|
||||
Summary: The Metis headers and development-related files
|
||||
Group: Development/Libraries
|
||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||
%description devel
|
||||
Header and library files of Metis.
|
||||
|
||||
%prep
|
||||
%setup -q -n %{name}-%{version}
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
|
||||
if [ %{__isa_bits} = "64" ]; then
|
||||
%patch2 -p1
|
||||
fi
|
||||
|
||||
%patch4 -p1
|
||||
|
||||
|
||||
%build
|
||||
|
||||
# Build metis
|
||||
cd build
|
||||
%cmake -DCMAKE_C_COMPILER=%{_bindir}/gcc \
|
||||
-DCMAKE_CXX_COMPILER=%{_bindir}/g++ \
|
||||
-DGKLIB_PATH=../GKlib \
|
||||
-DSHARED=1 \
|
||||
-DOPENMP=%{_includedir}/openmpi-%{_arch} \
|
||||
-DPCRE=%{_includedir} \
|
||||
-DCMAKE_CXX_FLAGS="%{optflags} -fopenmp -pthread" -DCMAKE_C_FLAGS="%{optflags} -fopenmp -pthread" \
|
||||
-DCMAKE_VERBOSE_MAKEFILE=1 \
|
||||
-DCMAKE_INSTALL_PREFIX=%{_prefix} \
|
||||
..
|
||||
make %{?_smp_mflags}
|
||||
cd ../
|
||||
|
||||
|
||||
%check
|
||||
cp -p %{buildroot}%{_bindir}/* graphs
|
||||
pushd graphs
|
||||
LD_LIBRARY_PATH=%{buildroot}%{_libdir}:$LD_LIBRARY_PATH ./ndmetis mdual.graph
|
||||
LD_LIBRARY_PATH=%{buildroot}%{_libdir}:$LD_LIBRARY_PATH ./mpmetis metis.mesh 2
|
||||
LD_LIBRARY_PATH=%{buildroot}%{_libdir}:$LD_LIBRARY_PATH ./gpmetis test.mgraph 4
|
||||
LD_LIBRARY_PATH=%{buildroot}%{_libdir}:$LD_LIBRARY_PATH ./gpmetis copter2.graph 4
|
||||
LD_LIBRARY_PATH=%{buildroot}%{_libdir}:$LD_LIBRARY_PATH ./graphchk 4elt.graph
|
||||
popd
|
||||
|
||||
%install
|
||||
pushd build
|
||||
%make_install
|
||||
popd
|
||||
|
||||
pushd %{buildroot}%{_bindir}
|
||||
## Generate manpages from binaries
|
||||
help2man --version-string="%{version}" -n "Partitions a graph into a specified number of parts." \
|
||||
--no-info --output="gpmetis.1" --no-discard-stderr --help-option="-help" ./gpmetis
|
||||
|
||||
help2man --version-string="%{version}" \
|
||||
-n "Computes a fill-reducing ordering of the vertices of the graph using multilevel nested dissection." \
|
||||
--no-info --output="ndmetis.1" --no-discard-stderr --help-option="-help" ./ndmetis
|
||||
|
||||
help2man --version-string="%{version}" -n "Partitions a mesh into a specified number of parts." \
|
||||
--no-info --output="mpmetis.1" --no-discard-stderr --help-option="-help" ./mpmetis
|
||||
|
||||
help2man --version-string="%{version}" -n "Converts a mesh into a graph that is compatible with METIS." \
|
||||
--no-info --output="m2gmetis.1" --no-discard-stderr --help-option="-help" ./m2gmetis
|
||||
|
||||
help2man --version-string="%{version}" -n "Checks the graph for format correctness and consistency." \
|
||||
--no-info --output="graphchk.1" --no-discard-stderr --help-option="-help" ./graphchk
|
||||
|
||||
help2man --version-string="%{version}" --no-info --output=cmpfillin.1 --no-discard-stderr \
|
||||
--help-option="-help" ./cmpfillin
|
||||
|
||||
mkdir -p %{buildroot}%{_mandir}/man1
|
||||
mv *.1 %{buildroot}%{_mandir}/man1
|
||||
popd
|
||||
|
||||
|
||||
%post -p /sbin/ldconfig
|
||||
%postun -p /sbin/ldconfig
|
||||
|
||||
%files
|
||||
%doc LICENSE.txt Changelog manual/manual.pdf
|
||||
%{_bindir}/*
|
||||
%{_mandir}/man1/*.1.gz
|
||||
%{_libdir}/lib%{name}.so.*
|
||||
|
||||
%files devel
|
||||
%doc Changelog
|
||||
%{_includedir}/%{name}.h
|
||||
%{_libdir}/lib%{name}.so
|
||||
|
||||
%changelog
|
||||
* Wed Mar 20 2013 Antonio Trande <sagitter@fedoraproject.org> - 5.0.3-7
|
||||
- Removed explicit manpages compression
|
||||
- License tag changed to 'ASL 2.0 and BSD and LGPLv2+'
|
||||
|
||||
* Wed Mar 20 2013 Antonio Trande <sagitter@fedoraproject.org> - 5.0.3-6
|
||||
- Modified %%check section to perform tests properly
|
||||
|
||||
* Tue Mar 19 2013 Antonio Trande <sagitter@fedoraproject.org> - 5.0.3-5
|
||||
- Added %%check section
|
||||
- Removed GK*.h libraries installation
|
||||
|
||||
* Sun Mar 17 2013 Antonio Trande <sagitter@fedoraproject.org> - 5.0.3-4
|
||||
- Added patch to sets up GKREGEX, GKRAND, libsuffix options to the Makefiles
|
||||
- Configured patch2 condition
|
||||
- soname version of libmetis changed to 0
|
||||
- Added cmake options and flags to check openmp
|
||||
- GKlib_includes destination changed to include/metis
|
||||
- Added commands to generate binaries man-page
|
||||
- Added BR openmpi-devel, pcre-devel, help2man
|
||||
|
||||
* Fri Mar 15 2013 Antonio Trande <sagitter@fedoraproject.org> - 5.0.3-3
|
||||
- Static sub-package removed
|
||||
- TEMPORARY fix for files in "/usr/lib" removed
|
||||
- Added patches for set up shared GKlib and soname libmetis
|
||||
- Removed BR chrpath
|
||||
|
||||
* Tue Mar 14 2013 Antonio Trande <sagitter@fedoraproject.org> - 5.0.3-2
|
||||
- Initial release changed from 0 to 1
|
||||
- Removed chrpath command
|
||||
- Added metis-width-datatype.patch only for 64bit systems
|
||||
- Build commands completely changed to use %%cmake
|
||||
- TEMPORARY fix for files in "/usr/lib"
|
||||
|
||||
* Sat Mar 02 2013 Antonio Trande <sagitter@fedoraproject.org> - 5.0.3-1
|
||||
- Initial package
|
||||
- Removed chrpaths
|
||||
- Added BR chrpath
|
||||
- Removed exec permissions to silence spurious-executable-perm warning
|
Loading…
Reference in New Issue
Block a user