!1 package init

Merge pull request !1 from 莫得感情的打包机器人/master
This commit is contained in:
openeuler-ci-bot 2021-12-28 01:52:23 +00:00 committed by Gitee
commit b6beef4426
8 changed files with 412 additions and 0 deletions

BIN
metis-5.1.0.tar.gz Normal file

Binary file not shown.

View File

@ -0,0 +1,56 @@
--- GKlib/Makefile.orig 2013-03-11 20:50:42.000000000 +0100
+++ 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)
--- Makefile.origin 2013-03-30 17:24:45.000000000 +0100
+++ Makefile 2013-04-14 20:04:38.887674462 +0200
@@ -9,6 +9,11 @@
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 +28,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 +59,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.1.0
PKGNAME=metis-$(VERNUM)

20
metis-libmetis.patch Normal file
View File

@ -0,0 +1,20 @@
--- libmetis/CMakeLists.orig.txt 2011-06-22 19:47:13.000000000 +0200
+++ 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()

22
metis-pcre2.patch Normal file
View File

@ -0,0 +1,22 @@
--- GKlib/GKlib.orig.h 2013-03-30 17:24:45.000000000 +0100
+++ GKlib/GKlib.h 2019-02-05 14:45:44.051629682 +0100
@@ -43,7 +43,7 @@
#include <sys/stat.h>
#if defined(__WITHPCRE__)
- #include <pcreposix.h>
+ #include <pcre2posix.h>
#else
#if defined(USE_GKREGEX)
#include "gkregex.h"
--- GKlib/test/Makefile.in.orig.old 2013-03-30 17:24:45.000000000 +0100
+++ GKlib/test/Makefile.in.old 2019-02-05 15:04:35.009847901 +0100
@@ -196,7 +196,7 @@
#Libraries needed for linking
LIBSDIR = -L$(BUILDDIR) -L$(GKLIBBUILDDIR) -L$(HOME)/local/lib
- LIBS = -lGKlib -lpcreposix -lpcre -lz -lm
+ LIBS = -lGKlib -lpcre2-posix -lz -lm
# Standard file extensions
OBJEXT = .o

21
metis-shared-GKlib.patch Normal file
View File

@ -0,0 +1,21 @@
--- GKlib/CMakeLists.orig.txt 2013-03-11 20:50:14.000000000 +0100
+++ 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)

View File

@ -0,0 +1,12 @@
--- include/metis.orig.h 2013-03-11 20:50:00.000000000 +0100
+++ 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
/*--------------------------------------------------------------------------

229
metis.spec Normal file
View File

@ -0,0 +1,229 @@
%undefine _ld_as_needed
%if %{?__isa_bits:%{__isa_bits}}%{!?__isa_bits:32} == 64
%global arch64 1
%else
%global arch64 0
%endif
Name: metis
Version: 5.1.0
Release: 1
Summary: Serial Graph Partitioning and Fill-reducing Matrix Ordering
License: ASL 2.0 and BSD and LGPLv2+
URL: http://glaros.dtc.umn.edu/gkhome/views/%{name}
Source0: http://glaros.dtc.umn.edu/gkhome/fetch/sw/%{name}/%{name}-%{version}.tar.gz
Patch0: %{name}-libmetis.patch
Patch1: %{name}-shared-GKlib.patch
Patch2: %{name}-width-datatype.patch
Patch3: %{name}-GKREGEX-GKRAND-LIBSUFFIX-fix.patch
Patch4: %{name}_lib64.patch
Patch5: %{name}-pcre2.patch
BuildRequires: make cmake gcc gcc-c++ pcre2-devel help2man chrpath
%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.
METIS is distributed with OpenMP support.
%package devel
Summary: METIS headers and development-related files
Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
Header and library files of Metis.
%if 0%{?arch64}
%package -n metis64
Summary: Serial Graph Partitioning and Fill-reducing Matrix Ordering (64bit INTEGER)
%description -n metis64
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.
METIS is distributed with OpenMP support.
This build has 64bit INTEGER support.
%package -n metis64-devel
Summary: METIS development libraries (64bit INTEGER)
Requires: metis64%{?_isa} = %{version}-%{release}
%description -n metis64-devel
Header and library files of Metis,
OpenMP version (64bit INTEGER).
%endif
%prep
%setup -qc
pushd %{name}-%{version}
%patch0 -p0
%patch1 -p0
%patch3 -p0
%patch5 -p0
## Remove default compiler flag
sed -e 's|-O3||g' -i GKlib/GKlibSystem.cmake
popd
%if 0%{?arch64}
%{__cp} -a %{name}-%{version} metis64
%endif
%build
PCRE_LDFLAGS="-lpcre2-posix"
%cmake -S %{name}-%{version} -B %{name}-%{version}/build \
-DCMAKE_BUILD_TYPE:STRING=Release \
-DGKLIB_PATH=%{name}-%{version}/GKlib \
-DSHARED:BOOL=TRUE \
-DOPENMP:BOOL=ON \
-DPCRE:BOOL=ON \
-DCMAKE_C_FLAGS:STRING="%{optflags} -pthread" \
-DCMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING="%{__global_ldflags} $PCRE_LDFLAGS" \
-DCMAKE_EXE_LINKER_FLAGS_RELEASE:STRING="%{__global_ldflags} $PCRE_LDFLAGS" \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=TRUE \
-DCMAKE_INSTALL_PREFIX:PATH=%{_prefix}
%make_build -C %{name}-%{version}/build
%if 0%{?arch64}
cd metis64
patch -p0 < %{PATCH2}
patch -p0 < %{PATCH4}
cd ..
mkdir -p metis64/build64
PCRE_LDFLAGS="-lpcre2-posix"
%cmake -S metis64 -B metis64/build64 \
-DCMAKE_BUILD_TYPE:STRING=Release \
-DGKLIB_PATH=metis64/GKlib \
-DSHARED:BOOL=TRUE \
-DOPENMP:BOOL=ON \
-DPCRE:BOOL=ON \
-DCMAKE_C_FLAGS:STRING="%{optflags} -pthread" \
-DCMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING="%{__global_ldflags} $PCRE_LDFLAGS" \
-DCMAKE_EXE_LINKER_FLAGS_RELEASE:STRING="%{__global_ldflags} $PCRE_LDFLAGS" \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=TRUE \
-DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} ..
%make_build -C metis64/build64
%endif
%install
pushd %{name}-%{version}/build
%make_install
## Generate manpages from binaries
LD_PRELOAD=%{buildroot}%{_libdir}/lib%{name}.so.0 \
help2man --version-string="%{version}" -n "Partitions a graph into a specified number of parts." \
-N --output="gpmetis.1" --no-discard-stderr --help-option="-help" %{buildroot}%{_bindir}/gpmetis
LD_PRELOAD=%{buildroot}%{_libdir}/lib%{name}.so.0 \
help2man --version-string="%{version}" \
-n "Computes a fill-reducing ordering of the vertices of the graph using multilevel nested dissection." \
-N --output="ndmetis.1" --no-discard-stderr --help-option="-help" %{buildroot}%{_bindir}/ndmetis
LD_PRELOAD=%{buildroot}%{_libdir}/lib%{name}.so.0 \
help2man --version-string="%{version}" -n "Partitions a mesh into a specified number of parts." \
-N --output="mpmetis.1" --no-discard-stderr --help-option="-help" %{buildroot}%{_bindir}/mpmetis
LD_PRELOAD=%{buildroot}%{_libdir}/lib%{name}.so.0 \
help2man --version-string="%{version}" -n "Converts a mesh into a graph that is compatible with METIS." \
-N --output="m2gmetis.1" --no-discard-stderr -h "-help" %{buildroot}%{_bindir}/m2gmetis
%{__mkdir_p} %{buildroot}%{_mandir}/man1
%{__mv} *.1 %{buildroot}%{_mandir}/man1
popd
# Save metis.h with IDXTYPEWIDTH = 32
%{__mv} %{buildroot}%{_includedir}/metis.h %{buildroot}%{_includedir}/metis32.h
%if 0%{?arch64}
pushd metis64/build64
%make_install
# Save metis.h with IDXTYPEWIDTH = 64
%{__mv} %{buildroot}%{_includedir}/metis.h %{buildroot}%{_includedir}/metis64.h
popd
%endif
# Save metis.h with IDXTYPEWIDTH = 32
%{__mv} %{buildroot}%{_includedir}/metis32.h %{buildroot}%{_includedir}/metis.h
## Remove rpaths
chrpath -d %{buildroot}%{_bindir}/*
%check
%{__cp} -p %{buildroot}%{_bindir}/* %{name}-%{version}/graphs
pushd %{name}-%{version}/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
%if 0%{?arch64}
LD_LIBRARY_PATH=%{buildroot}%{_libdir}:$LD_LIBRARY_PATH ./ndmetis64 mdual.graph
LD_LIBRARY_PATH=%{buildroot}%{_libdir}:$LD_LIBRARY_PATH ./mpmetis64 metis.mesh 2
LD_LIBRARY_PATH=%{buildroot}%{_libdir}:$LD_LIBRARY_PATH ./gpmetis64 test.mgraph 4
LD_LIBRARY_PATH=%{buildroot}%{_libdir}:$LD_LIBRARY_PATH ./gpmetis64 copter2.graph 4
LD_LIBRARY_PATH=%{buildroot}%{_libdir}:$LD_LIBRARY_PATH ./graphchk64 4elt.graph
%endif
popd
%files
%doc %{name}-%{version}/Changelog %{name}-%{version}/manual/manual.pdf
%license %{name}-%{version}/LICENSE.txt
%{_bindir}/cmpfillin
%{_bindir}/gpmetis
%{_bindir}/graphchk
%{_bindir}/m2gmetis
%{_bindir}/mpmetis
%{_bindir}/ndmetis
%{_mandir}/man1/*.1.gz
%{_libdir}/lib%{name}.so.*
%files devel
%{_includedir}/%{name}.h
%{_libdir}/lib%{name}.so
%if 0%{?arch64}
%files -n metis64
%doc metis64/Changelog metis64/manual/manual.pdf
%license metis64/LICENSE.txt
%{_bindir}/cmpfillin64
%{_bindir}/gpmetis64
%{_bindir}/graphchk64
%{_bindir}/m2gmetis64
%{_bindir}/mpmetis64
%{_bindir}/ndmetis64
%{_libdir}/lib%{name}64.so.*
%files -n metis64-devel
%{_includedir}/%{name}64.h
%{_libdir}/lib%{name}64.so
%endif
%changelog
* Mon Dec 20 2021 herengui <herengui@uniontech.com> - 5.1.0-1
- Initial package

52
metis_lib64.patch Normal file
View File

@ -0,0 +1,52 @@
--- libmetis/CMakeLists.orig.txt 2016-02-16 19:06:56.480139000 +0100
+++ libmetis/CMakeLists.txt 2016-02-16 19:07:55.511134162 +0100
@@ -3,14 +3,14 @@
# Find sources.
file(GLOB metis_sources *.c)
# Build libmetis.
-add_library(metis ${METIS_LIBRARY_TYPE} ${GKlib_sources} ${metis_sources})
-set_target_properties(metis PROPERTIES SOVERSION 0)
+add_library(metis64 ${METIS_LIBRARY_TYPE} ${GKlib_sources} ${metis_sources})
+set_target_properties(metis64 PROPERTIES SOVERSION 0)
if(UNIX)
- target_link_libraries(metis m)
+ target_link_libraries(metis64 m)
endif()
if(METIS_INSTALL)
- install(TARGETS metis
+ install(TARGETS metis64
LIBRARY DESTINATION lib${LIB_SUFFIX}
RUNTIME DESTINATION lib${LIB_SUFFIX}
ARCHIVE DESTINATION lib${LIB_SUFFIX})
--- programs/CMakeLists.orig.txt 2013-03-30 17:24:45.000000000 +0100
+++ programs/CMakeLists.txt 2016-02-16 22:42:18.625946692 +0100
@@ -2,19 +2,19 @@
include_directories(../libmetis)
link_directories(/home/karypis/local/lib)
# Build program.
-add_executable(gpmetis gpmetis.c cmdline_gpmetis.c io.c stat.c)
-add_executable(ndmetis ndmetis.c cmdline_ndmetis.c io.c smbfactor.c)
-add_executable(mpmetis mpmetis.c cmdline_mpmetis.c io.c stat.c)
-add_executable(m2gmetis m2gmetis.c cmdline_m2gmetis.c io.c)
-add_executable(graphchk graphchk.c io.c)
-add_executable(cmpfillin cmpfillin.c io.c smbfactor.c)
-foreach(prog gpmetis ndmetis mpmetis m2gmetis graphchk cmpfillin)
- target_link_libraries(${prog} metis)
+add_executable(gpmetis64 gpmetis.c cmdline_gpmetis.c io.c stat.c)
+add_executable(ndmetis64 ndmetis.c cmdline_ndmetis.c io.c smbfactor.c)
+add_executable(mpmetis64 mpmetis.c cmdline_mpmetis.c io.c stat.c)
+add_executable(m2gmetis64 m2gmetis.c cmdline_m2gmetis.c io.c)
+add_executable(graphchk64 graphchk.c io.c)
+add_executable(cmpfillin64 cmpfillin.c io.c smbfactor.c)
+foreach(prog gpmetis64 ndmetis64 mpmetis64 m2gmetis64 graphchk64 cmpfillin64)
+ target_link_libraries(${prog} metis64)
# target_link_libraries(${prog} metis profiler)
endforeach(prog)
if(METIS_INSTALL)
- install(TARGETS gpmetis ndmetis mpmetis m2gmetis graphchk cmpfillin
+ install(TARGETS gpmetis64 ndmetis64 mpmetis64 m2gmetis64 graphchk64 cmpfillin64
RUNTIME DESTINATION bin)
endif()