summaryrefslogtreecommitdiff
path: root/sci-libs/metis
diff options
context:
space:
mode:
Diffstat (limited to 'sci-libs/metis')
-rw-r--r--sci-libs/metis/Manifest6
-rw-r--r--sci-libs/metis/files/metis-5.2.1-multilib.patch19
-rw-r--r--sci-libs/metis/files/metis-5.2.1-respect-user-flags.patch47
-rw-r--r--sci-libs/metis/metadata.xml3
-rw-r--r--sci-libs/metis/metis-5.2.1.ebuild92
5 files changed, 166 insertions, 1 deletions
diff --git a/sci-libs/metis/Manifest b/sci-libs/metis/Manifest
index b20e94202ca9..2027ee0b0cdb 100644
--- a/sci-libs/metis/Manifest
+++ b/sci-libs/metis/Manifest
@@ -1,6 +1,10 @@
AUX metis-5.1.0-multilib.patch 579 BLAKE2B 3e9edf7809a43026bfc7a320b1ff37f2e00a04dbdbcb8c3acb62016d8c41b4e68301ab3053fa1fb0fcb2a6bf3b48818175fdbf4b4fe2a23c0b4cb814d512f092 SHA512 5aa179b6de17ac24eb25ddc9377b5adea7b794405ba332de23096daac9231ab5c603268a24ad9219b3a9c598b9cdad33082f31a2cdc957b784d09d92e50f4941
AUX metis-5.1.0-remove-GKlib-O3.patch 267 BLAKE2B ef39556238377c12a311685ca96188f8b4c3db1398b55941d273592ff40cad49d3ec5c7606177edacad25af4684d9ae65dacaa9a7ca9ad957d326b874b87f3cf SHA512 8b4f4eb0753063e64533e0101b9e78bf2a711e6b2d080607ab06025ad681788225abe7555db28edee00a98ba41badc41341bb3cec2bd654fc738d63d78867968
AUX metis-5.1.0-shared-GKlib.patch 590 BLAKE2B 63a10fd00f21cff949660c598fa4519432559965c72f31c35d2a726dbbdfb9d2591c99e92c9520c2021e8ce0c485aa9834445e9f5dfe388f93106e49eee562af SHA512 3157e364f56661c7bc896016b2cda83658f2b00fe7c936e732e80e366ccf6421a1ab6f95d5a74fdb790f4ec8789d048aab9d68b0ccf1eb03f94621f78adb1a3a
+AUX metis-5.2.1-multilib.patch 603 BLAKE2B aa988f804f6dfdba9ccff7a8b6929c2551273d7c8d1303feef5a7310632a4af78380f3e9d0024fb9fa0cdbb7952db7c09919ab54e323d5282a7b844e3708bfad SHA512 d89a7ba0cba8df805fd6a97f8fa8df354e9af441133d2417ec9a16afaa3666937712fefd2e83dcfb0e93a6a9f17d1123cc84501b3d21e45e93169915a9d1d7bb
+AUX metis-5.2.1-respect-user-flags.patch 1258 BLAKE2B aadf0612d276228bc0fc116534a523337f0e6330195ab5b66dc0954ee8ceb98e3c9e5f849dbd234fa6b1a5d8ca0f284b1099711bbc8bd53f8be41ee347f362e9 SHA512 c7b6f6e7db0c0a2bccdfa9fef8addcab67f79fd05609375defe432ac05d54a8d4da50b4ee35d873dd04d05e2d251cfcc7a6b1e0fbbdb8d39af2385833d86a778
DIST metis-5.1.0.tar.gz 4984968 BLAKE2B c5f8ff552fce7e7cc02740e6197c9deb5e05e8bc2e2e56cad0cba85705eec6990b511182930c8758fd16a18015f54c8a4827038039bc3c58ee41df468ea175bc SHA512 deea47749d13bd06fbeaf98a53c6c0b61603ddc17a43dae81d72c8015576f6495fd83c11b0ef68d024879ed5415c14ebdbd87ce49c181bdac680573bea8bdb25
+DIST metis-5.2.1.tar.gz 4838377 BLAKE2B 7f2bb3b4dce71cd05e25d042095c311f814d5d197b1a6ae19994b6bcbb7d948d3a96210cbce5633f39d7bb8ad7cc3f8f4977c6465ec8591934aac00ea9637c94 SHA512 69127b7a777f9ba14cf399a7122000af9d6094a5f44be600a28384cfc0495c024fb0c6eab37c4473a5763ec1077cd9f30d9bcbb3c952462f6c9ead31c6b9e790
EBUILD metis-5.1.0-r5.ebuild 1827 BLAKE2B b123d41eb74c449790c44b0f40d089feae705144876e23bc2862de24fecc54edc04e26b2a62007b4691249520b3a2e9c2c5fdf26f2b092e0b5d479adce7382b8 SHA512 853cd965c826ebb32de42da696ae0fbbe57fbefc1bd11db66f912611e53aeb870ef27a15cfced14519b9c452280a816bf88ee7edfaf82ac59afe9177d7453a21
-MISC metadata.xml 862 BLAKE2B ae00feba4b79f981b8c730758a8b4fb39b93e9bad64ec6b2ea5cc109682d828a7a3c7cbaa4209c18fe26e49f240f0af1b6ba76834961d941d568b635b3f7f729 SHA512 a596e61e9fcd162594e56f68c787c9b8b516e02eb18667c60e13aa012fbd262b1bddccb7e70f05da96bc0480c803c1219935c3595b47fd2acbaac26b388af544
+EBUILD metis-5.2.1.ebuild 2014 BLAKE2B ee781918ead05edfe75ced034b9346d44b251e656cfccd55103351ecf397db34acf65df0f2666f5e6202347350d2e8003e1f799d4a02b1c7d5d0e4470d929607 SHA512 3fb87b356eabc4d5f1585e5175cea3d4d4121d12903441a6af20e238ac1c8c1bd3db41e04444b6e113e220bc283c5e77b2395a00788767ab3a0f44c277ec34c7
+MISC metadata.xml 947 BLAKE2B 9687c616dd1c8684be3fc1022671560ac5ff752514cbced0a3bb1bfc70348ecdb72c4913e65720a70f03609a1277c5a697e5985fb0cb8032d60e5c24f9b16674 SHA512 efa12e77a7af2803d0626eefc85aaaa5b2594fdfc748c8ad870590f65ae40ec7e557fa923707f327b8bb04036b57a67a036fed52ff9159af1fe65c062165408f
diff --git a/sci-libs/metis/files/metis-5.2.1-multilib.patch b/sci-libs/metis/files/metis-5.2.1-multilib.patch
new file mode 100644
index 000000000000..fc26f7556f12
--- /dev/null
+++ b/sci-libs/metis/files/metis-5.2.1-multilib.patch
@@ -0,0 +1,19 @@
+diff --git a/libmetis/CMakeLists.txt b/libmetis/CMakeLists.txt
+index fc6cec6..e10a1a1 100644
+--- a/libmetis/CMakeLists.txt
++++ b/libmetis/CMakeLists.txt
+@@ -6,10 +6,11 @@ file(GLOB metis_sources *.c)
+
+ # Build libmetis.
+ add_library(metis ${METIS_LIBRARY_TYPE} ${metis_sources})
++set_target_properties(metis PROPERTIES SOVERSION 0)
+
+ 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()
diff --git a/sci-libs/metis/files/metis-5.2.1-respect-user-flags.patch b/sci-libs/metis/files/metis-5.2.1-respect-user-flags.patch
new file mode 100644
index 000000000000..acdf17df5090
--- /dev/null
+++ b/sci-libs/metis/files/metis-5.2.1-respect-user-flags.patch
@@ -0,0 +1,47 @@
+diff --git a/conf/gkbuild.cmake b/conf/gkbuild.cmake
+index 0e70a8e..d005f84 100644
+--- a/conf/gkbuild.cmake
++++ b/conf/gkbuild.cmake
+@@ -29,16 +29,7 @@ endif(CYGWIN)
+ if(CMAKE_COMPILER_IS_GNUCC)
+ # GCC opts.
+ set(GK_COPTIONS "${GK_COPTIONS} -std=c99 -fno-strict-aliasing")
+-if(VALGRIND)
+- set(GK_COPTIONS "${GK_COPTIONS} -march=x86-64 -mtune=generic")
+-else()
+- set(GK_COPTIONS "${GK_COPTIONS} -march=native")
+-endif(VALGRIND)
+- if(NOT MINGW)
+- set(GK_COPTIONS "${GK_COPTIONS} -fPIC")
+- endif(NOT MINGW)
+-# GCC warnings.
+- set(GK_COPTIONS "${GK_COPTIONS} -Werror -Wall -pedantic -Wno-unused-function -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -Wno-unused-label")
++
+ elseif(${CMAKE_C_COMPILER_ID} MATCHES "Sun")
+ # Sun insists on -xc99.
+ set(GK_COPTIONS "${GK_COPTIONS} -xc99")
+@@ -65,24 +56,10 @@ if(OPENMP)
+ endif(OPENMP)
+
+
+-# Add various definitions.
+-if(GDB)
+- set(GK_COPTS "${GK_COPTS} -g")
+- set(GK_COPTIONS "${GK_COPTIONS} -Werror")
+-else()
+- set(GK_COPTS "-O3")
+-endif(GDB)
+-
+-
+ if(DEBUG)
+- set(GK_COPTS "-Og")
+ set(GK_COPTIONS "${GK_COPTIONS} -DDEBUG")
+ endif(DEBUG)
+
+-if(GPROF)
+- set(GK_COPTS "-pg")
+-endif(GPROF)
+-
+ if(NOT ASSERT)
+ set(GK_COPTIONS "${GK_COPTIONS} -DNDEBUG")
+ endif(NOT ASSERT)
diff --git a/sci-libs/metis/metadata.xml b/sci-libs/metis/metadata.xml
index 6415e7e43b5c..3daf0ce6b84d 100644
--- a/sci-libs/metis/metadata.xml
+++ b/sci-libs/metis/metadata.xml
@@ -16,4 +16,7 @@
<flag name="double-precision">Use double- rather than single-precision floating-point representation</flag>
<flag name="int64">Use 64- rather than 32-bit integer representation (needed for &gt; 2^31 vertices)</flag>
</use>
+ <upstream>
+ <remote-id type="github">KarypisLab/METIS</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/sci-libs/metis/metis-5.2.1.ebuild b/sci-libs/metis/metis-5.2.1.ebuild
new file mode 100644
index 000000000000..a31ce9ab612c
--- /dev/null
+++ b/sci-libs/metis/metis-5.2.1.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="A package for unstructured serial graph partitioning"
+HOMEPAGE="https://github.com/KarypisLab/METIS"
+SRC_URI="https://github.com/KarypisLab/METIS/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/METIS-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~amd64-linux"
+IUSE="double-precision examples int64 openmp"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-multilib.patch
+ "${FILESDIR}"/${P}-respect-user-flags.patch
+)
+
+DEPEND="sci-libs/gklib"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ local idxwidth realwidth
+
+ if use int64; then
+ idxwidth="#define IDXTYPEWIDTH 64"
+ else
+ idxwidth="#define IDXTYPEWIDTH 32"
+ fi
+
+ if use double-precision; then
+ realwidth="#define REALTYPEWIDTH 64"
+ else
+ realwidth="#define REALTYPEWIDTH 32"
+ fi
+
+ cmake_src_prepare
+
+ # From Makefile
+ mkdir -p build/xinclude || die
+ echo ${idxwidth} > build/xinclude/metis.h || die
+ echo ${realwidth} >> build/xinclude/metis.h || die
+ cat include/metis.h >> build/xinclude/metis.h || die
+ cp include/CMakeLists.txt build/xinclude || die
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DSHARED=yes
+ -DOPENMP=$(usex openmp)
+ )
+ cmake_src_configure
+}
+
+src_test() {
+ cd graphs || die
+ local PATH="${BUILD_DIR}"/programs/:${PATH}
+
+ ndmetis mdual.graph || die
+ mpmetis metis.mesh 2 || die
+ gpmetis test.mgraph 4 || die
+ gpmetis copter2.graph 4 || die
+ graphchk 4elt.graph || die
+}
+
+src_install() {
+ cmake_src_install
+ dodoc manual/manual.pdf
+ if use examples; then
+ docinto examples
+ dodoc -r programs graphs
+ fi
+
+ cat >> "${T}"/metis.pc <<- EOF || die
+ prefix=${EPREFIX}/usr
+ exec_prefix=\${prefix}
+ libdir=\${exec_prefix}/$(get_libdir)
+ includedir=\${prefix}/include
+
+ Name: METIS
+ Description: Software for partioning unstructured graphes and meshes
+ Version: ${PV}
+ Cflags: -I\${includedir}/metis
+ Libs: -L\${libdir} -lmetis
+ EOF
+ insinto /usr/$(get_libdir)/pkgconfig
+ doins "${T}"/metis.pc
+}