From 1a178de287fbeab48b20c1294f53a58e24893e6e Mon Sep 17 00:00:00 2001 From: Andrew Ammerlaan Date: Tue, 2 May 2023 15:56:42 +0200 Subject: sci-libs/metis: add 5.2.1 Bug: https://bugs.gentoo.org/905318 Signed-off-by: Andrew Ammerlaan --- sci-libs/metis/Manifest | 1 + sci-libs/metis/files/metis-5.2.1-multilib.patch | 19 +++++ .../files/metis-5.2.1-respect-user-flags.patch | 47 +++++++++++ sci-libs/metis/metadata.xml | 3 + sci-libs/metis/metis-5.2.1.ebuild | 92 ++++++++++++++++++++++ 5 files changed, 162 insertions(+) create mode 100644 sci-libs/metis/files/metis-5.2.1-multilib.patch create mode 100644 sci-libs/metis/files/metis-5.2.1-respect-user-flags.patch create mode 100644 sci-libs/metis/metis-5.2.1.ebuild (limited to 'sci-libs/metis') diff --git a/sci-libs/metis/Manifest b/sci-libs/metis/Manifest index 5686a42c6fc7..39754651ea8d 100644 --- a/sci-libs/metis/Manifest +++ b/sci-libs/metis/Manifest @@ -1 +1,2 @@ DIST metis-5.1.0.tar.gz 4984968 BLAKE2B c5f8ff552fce7e7cc02740e6197c9deb5e05e8bc2e2e56cad0cba85705eec6990b511182930c8758fd16a18015f54c8a4827038039bc3c58ee41df468ea175bc SHA512 deea47749d13bd06fbeaf98a53c6c0b61603ddc17a43dae81d72c8015576f6495fd83c11b0ef68d024879ed5415c14ebdbd87ce49c181bdac680573bea8bdb25 +DIST metis-5.2.1.tar.gz 4838377 BLAKE2B 7f2bb3b4dce71cd05e25d042095c311f814d5d197b1a6ae19994b6bcbb7d948d3a96210cbce5633f39d7bb8ad7cc3f8f4977c6465ec8591934aac00ea9637c94 SHA512 69127b7a777f9ba14cf399a7122000af9d6094a5f44be600a28384cfc0495c024fb0c6eab37c4473a5763ec1077cd9f30d9bcbb3c952462f6c9ead31c6b9e790 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 @@ Use double- rather than single-precision floating-point representation Use 64- rather than 32-bit integer representation (needed for > 2^31 vertices) + + KarypisLab/METIS + 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 +} -- cgit v1.2.3-65-gdbad