public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: sci-libs/parmetis/files/, sci-libs/parmetis/
@ 2021-07-16 11:43 Marek Szuba
  0 siblings, 0 replies; 2+ messages in thread
From: Marek Szuba @ 2021-07-16 11:43 UTC (permalink / raw
  To: gentoo-commits

commit:     fab9308cfb8c6c168b169803c9d8d04d3696dc64
Author:     Marek Szuba <marecki <AT> gentoo <DOT> org>
AuthorDate: Fri Jul 16 10:00:02 2021 +0000
Commit:     Marek Szuba <marecki <AT> gentoo <DOT> org>
CommitDate: Fri Jul 16 11:43:25 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fab9308c

sci-libs/parmetis: major refactoring

1. Update to EAPI 7 and cmake.eclass
2. Unbundle sci-libs/metis
3. Remove IUSE=mpi - with METIS unbundled, settings USE=-mpi effectively
   turns this package into a metapackage
4. Add USE=fortran requirement to virtual/mpi - without it,
   libparmetis.so ends up with unresolved symbol MPI_Comm_f2c
5. CMakeFiles are now modified by patches rather than sed - the changes
   are entirely static so there is no need for the latter

Signed-off-by: Marek Szuba <marecki <AT> gentoo.org>

 .../files/parmetis-4.0.3-01-cmake-paths.patch      | 37 +++++++++++
 .../files/parmetis-4.0.3-02-unbundle-metis.patch   | 10 +++
 sci-libs/parmetis/parmetis-4.0.3-r2.ebuild         | 76 ++++++++++++++++++++++
 3 files changed, 123 insertions(+)

diff --git a/sci-libs/parmetis/files/parmetis-4.0.3-01-cmake-paths.patch b/sci-libs/parmetis/files/parmetis-4.0.3-01-cmake-paths.patch
new file mode 100644
index 00000000000..cdff3c0ea49
--- /dev/null
+++ b/sci-libs/parmetis/files/parmetis-4.0.3-01-cmake-paths.patch
@@ -0,0 +1,37 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,6 +1,8 @@
+ cmake_minimum_required(VERSION 2.8)
+ project(ParMETIS)
+ 
++include(GNUInstallDirs)
++
+ set(GKLIB_PATH METIS/GKlib CACHE PATH "path to GKlib")
+ set(METIS_PATH METIS CACHE PATH "path to METIS")
+ 
+@@ -36,7 +38,6 @@
+ add_subdirectory(${METIS_PATH}/libmetis ${CMAKE_BINARY_DIR}/libmetis)
+ add_subdirectory(include)
+ add_subdirectory(libparmetis)
+-add_subdirectory(programs)
+ 
+ # This is for testing during development and is not being distributed
+ #add_subdirectory(test)
+--- a/include/CMakeLists.txt
++++ b/include/CMakeLists.txt
+@@ -1 +1 @@
+-install(FILES parmetis.h DESTINATION include)
+\ No newline at end of file
++install(FILES parmetis.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+--- a/libparmetis/CMakeLists.txt
++++ b/libparmetis/CMakeLists.txt
+@@ -9,6 +9,6 @@
+ set_target_properties(parmetis PROPERTIES LINK_FLAGS "${MPI_LINK_FLAGS}")
+ 
+ install(TARGETS parmetis
+-  LIBRARY DESTINATION lib
+-  RUNTIME DESTINATION lib
+-  ARCHIVE DESTINATION lib)
++  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
++  RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}
++  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})

diff --git a/sci-libs/parmetis/files/parmetis-4.0.3-02-unbundle-metis.patch b/sci-libs/parmetis/files/parmetis-4.0.3-02-unbundle-metis.patch
new file mode 100644
index 00000000000..f4e04eb48a9
--- /dev/null
+++ b/sci-libs/parmetis/files/parmetis-4.0.3-02-unbundle-metis.patch
@@ -0,0 +1,10 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -35,7 +35,6 @@
+ include_directories(${METIS_PATH}/include)
+ 
+ # List of directories that cmake will look for CMakeLists.txt
+-add_subdirectory(${METIS_PATH}/libmetis ${CMAKE_BINARY_DIR}/libmetis)
+ add_subdirectory(include)
+ add_subdirectory(libparmetis)
+ 

diff --git a/sci-libs/parmetis/parmetis-4.0.3-r2.ebuild b/sci-libs/parmetis/parmetis-4.0.3-r2.ebuild
new file mode 100644
index 00000000000..6d9599fec41
--- /dev/null
+++ b/sci-libs/parmetis/parmetis-4.0.3-r2.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake toolchain-funcs
+
+DESCRIPTION="Parallel (MPI) unstructured graph partitioning library"
+HOMEPAGE="https://www-users.cs.umn.edu/~karypis/metis/parmetis/"
+SRC_URI="http://glaros.dtc.umn.edu/gkhome/fetch/sw/${PN}/${P}.tar.gz"
+
+LICENSE="all-rights-reserved"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples openmp pcre"
+RESTRICT="mirror bindist"
+
+DEPEND=">=sci-libs/metis-5.1.0-r5
+	virtual/mpi[fortran]
+	pcre? ( dev-libs/libpcre:= )"
+RDEPEND="${DEPEND}
+	!<sci-libs/metis-5.1.0-r5"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-4.0.3-01-cmake-paths.patch
+	"${FILESDIR}"/${PN}-4.0.3-02-unbundle-metis.patch
+)
+
+pkg_setup() {
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		use openmp && tc-check-openmp
+	fi
+}
+
+src_prepare() {
+	export CC=mpicc CXX=mpicxx
+	cmake_src_prepare
+}
+
+src_configure() {
+	local mycmakeargs=(
+		-DGKLIB_PATH="${S}/metis/GKlib"
+		-DGKRAND=ON
+		-DMETIS_PATH="${EPREFIX}/usr"
+		-DOPENMP=$(usex openmp)
+		-DPCRE=$(usex pcre)
+		-DSHARED=ON
+	)
+	cmake_src_configure
+}
+
+src_install() {
+	cmake_src_install
+
+	dodoc Changelog
+	use doc && dodoc manual/manual.pdf
+	if use examples; then
+		docinto examples
+		dodoc -r Graphs programs
+	fi
+
+	cat > ${PN}.pc <<-EOF
+		prefix=${EPREFIX}/usr
+		libdir=\${prefix}/$(get_libdir)
+		includedir=\${prefix}/include
+		Name: ${PN}
+		Description: ${DESCRIPTION}
+		Version: ${PV}
+		URL: ${HOMEPAGE}
+		Libs: -L\${libdir} -l${PN}
+		Cflags: -I\${includedir}/${PN}
+		Requires: metis
+	EOF
+	insinto /usr/$(get_libdir)/pkgconfig
+	doins ${PN}.pc
+}


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sci-libs/parmetis/files/, sci-libs/parmetis/
@ 2023-05-02 14:19 Andrew Ammerlaan
  0 siblings, 0 replies; 2+ messages in thread
From: Andrew Ammerlaan @ 2023-05-02 14:19 UTC (permalink / raw
  To: gentoo-commits

commit:     9ef11ae52d90024bb6e73e95b30b0860b5010fb1
Author:     Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
AuthorDate: Tue May  2 14:18:53 2023 +0000
Commit:     Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
CommitDate: Tue May  2 14:19:00 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9ef11ae5

sci-libs/parmetis: add 4.0.3_p20230326

the license indicates we probably still need the fetch
restriction.

Closes: https://bugs.gentoo.org/905318
Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org>

 sci-libs/parmetis/Manifest                         |  1 +
 .../files/parmetis-4.0.3_p20230326-multilib.patch  | 31 ++++++++
 ...rmetis-4.0.3_p20230326-respect-user-flags.patch | 47 +++++++++++++
 sci-libs/parmetis/metadata.xml                     |  3 +
 sci-libs/parmetis/parmetis-4.0.3_p20230326.ebuild  | 82 ++++++++++++++++++++++
 5 files changed, 164 insertions(+)

diff --git a/sci-libs/parmetis/Manifest b/sci-libs/parmetis/Manifest
index f51deaae9a5a..7e9881aae079 100644
--- a/sci-libs/parmetis/Manifest
+++ b/sci-libs/parmetis/Manifest
@@ -1 +1,2 @@
 DIST parmetis-4.0.3.tar.gz 5567670 BLAKE2B 69a44ea8e50d8fd78046a342807b994220d03da3ab1695533d92772b1840302917a7d5d6f9eb020d9ff8ab7e5372bff0386d6354b662f58495b74f8f596c45f9 SHA512 454a91921ca35c981df11c9846a11963ff8fd8407a25179453af33f8fe69493f6dd7f2a0b8feed9a7d3f121e45b715749dd7a94873eaac2bae4cad1e535ca132
+DIST parmetis-4.0.3_p20230326.tar.gz 5312266 BLAKE2B 52f34982cff0aa3dbc26dde1bab72ff1a8f5fa20feba72deedc600fcb0d73c9d05f3a43bf5713f9a7db74695affaedd5ea5f691396f5d02c58ad26dc5a779592 SHA512 a71d212a1c8682eb662ef6bb8bdcb124bc13c353e76ac236b01e544bddb975740c36be54c05305e1114e4daf20fec56642ffa319a6426c87c5538ea2225c156b

diff --git a/sci-libs/parmetis/files/parmetis-4.0.3_p20230326-multilib.patch b/sci-libs/parmetis/files/parmetis-4.0.3_p20230326-multilib.patch
new file mode 100644
index 000000000000..cccf5a45f36e
--- /dev/null
+++ b/sci-libs/parmetis/files/parmetis-4.0.3_p20230326-multilib.patch
@@ -0,0 +1,31 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 146bc5f..faa1cfd 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -30,9 +30,9 @@ include_directories(${CMAKE_INSTALL_PREFIX}/include)
+ 
+ # List of paths that the compiler will search for library files.
+ # i.e., the -L equivalent
+-link_directories(${GKLIB_PATH}/lib)
+-link_directories(${METIS_PATH}/lib)
+-link_directories(${CMAKE_INSTALL_PREFIX}/lib)
++link_directories(${GKLIB_PATH}/lib${LIB_SUFFIX})
++link_directories(${METIS_PATH}/lib${LIB_SUFFIX})
++link_directories(${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX})
+ 
+ # List of directories that cmake will look for CMakeLists.txt
+ add_subdirectory(include)
+diff --git a/libparmetis/CMakeLists.txt b/libparmetis/CMakeLists.txt
+index b9d6d84..c0553e7 100644
+--- a/libparmetis/CMakeLists.txt
++++ b/libparmetis/CMakeLists.txt
+@@ -12,6 +12,6 @@ if(SHARED)
+ endif()
+  
+ install(TARGETS parmetis
+-  LIBRARY DESTINATION lib
+-  RUNTIME DESTINATION lib
+-  ARCHIVE DESTINATION lib)
++  LIBRARY DESTINATION lib${LIB_SUFFIX}
++  RUNTIME DESTINATION lib${LIB_SUFFIX}
++  ARCHIVE DESTINATION lib${LIB_SUFFIX})

diff --git a/sci-libs/parmetis/files/parmetis-4.0.3_p20230326-respect-user-flags.patch b/sci-libs/parmetis/files/parmetis-4.0.3_p20230326-respect-user-flags.patch
new file mode 100644
index 000000000000..4aa19580619e
--- /dev/null
+++ b/sci-libs/parmetis/files/parmetis-4.0.3_p20230326-respect-user-flags.patch
@@ -0,0 +1,47 @@
+diff --git a/conf/gkbuild.cmake b/conf/gkbuild.cmake
+index ec91224..5e66546 100644
+--- a/conf/gkbuild.cmake
++++ b/conf/gkbuild.cmake
+@@ -28,17 +28,6 @@ endif(CYGWIN)
+ if(CMAKE_COMPILER_IS_GNUCC)
+ # GCC opts.
+   set(GK_COPTIONS "${GK_COPTIONS} -std=c99 -fno-strict-aliasing")
+-# -march=native is not a valid flag on PPC:
+-if(CMAKE_SYSTEM_PROCESSOR MATCHES "power|ppc|powerpc|ppc64|powerpc64" OR (APPLE AND CMAKE_OSX_ARCHITECTURES MATCHES "ppc|ppc64"))
+-  set(GK_COPTIONS "${GK_COPTIONS} -mtune=native")
+-else()
+-  set(GK_COPTIONS "${GK_COPTIONS} -march=native")
+-endif()
+-  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 +54,6 @@ 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/parmetis/metadata.xml b/sci-libs/parmetis/metadata.xml
index abc834509acf..bf62d9f372a0 100644
--- a/sci-libs/parmetis/metadata.xml
+++ b/sci-libs/parmetis/metadata.xml
@@ -13,4 +13,7 @@
 	especially suited for parallel AMR computations and large scale
 	numerical simulations.
 	</longdescription>
+	<upstream>
+		<remote-id type="github">KarypisLab/ParMETIS</remote-id>
+	</upstream>
 </pkgmetadata>

diff --git a/sci-libs/parmetis/parmetis-4.0.3_p20230326.ebuild b/sci-libs/parmetis/parmetis-4.0.3_p20230326.ebuild
new file mode 100644
index 000000000000..32c0dc0c83d8
--- /dev/null
+++ b/sci-libs/parmetis/parmetis-4.0.3_p20230326.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake toolchain-funcs
+
+COMMIT="8ee6a372ca703836f593e3c450ca903f04be14df"
+
+DESCRIPTION="Parallel (MPI) unstructured graph partitioning library"
+HOMEPAGE="https://github.com/KarypisLab/ParMETIS"
+SRC_URI="https://github.com/KarypisLab/ParMETIS/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/ParMETIS-${COMMIT}"
+
+LICENSE="all-rights-reserved"
+SLOT="0"
+KEYWORDS="~amd64 ~amd64-linux"
+IUSE="examples openmp pcre"
+RESTRICT="mirror bindist"
+
+DEPEND="
+	sci-libs/gklib
+	>=sci-libs/metis-5.1.0-r5
+	virtual/mpi[fortran]
+	pcre? ( dev-libs/libpcre:= )
+"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+	"${FILESDIR}"/${P}-respect-user-flags.patch
+	"${FILESDIR}"/${P}-multilib.patch
+)
+
+pkg_pretend() {
+	[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+pkg_setup() {
+	[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+src_prepare() {
+	export CC=mpicc CXX=mpicxx
+	cmake_src_prepare
+}
+
+src_configure() {
+	local mycmakeargs=(
+		-DGKRAND=ON
+		-DMETIS_PATH="${EPREFIX}/usr"
+		-DOPENMP=$(usex openmp)
+		-DPCRE=$(usex pcre)
+		-DSHARED=ON
+	)
+	cmake_src_configure
+}
+
+src_install() {
+	cmake_src_install
+
+	dodoc Changelog
+	dodoc manual/manual.pdf
+	if use examples; then
+		docinto examples
+		dodoc -r Graphs programs
+	fi
+
+	cat > ${PN}.pc <<-EOF
+		prefix=${EPREFIX}/usr
+		libdir=\${prefix}/$(get_libdir)
+		includedir=\${prefix}/include
+		Name: ${PN}
+		Description: ${DESCRIPTION}
+		Version: ${PV}
+		URL: ${HOMEPAGE}
+		Libs: -L\${libdir} -l${PN}
+		Cflags: -I\${includedir}/${PN}
+		Requires: metis
+	EOF
+	insinto /usr/$(get_libdir)/pkgconfig
+	doins ${PN}.pc
+}


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-05-02 14:19 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-02 14:19 [gentoo-commits] repo/gentoo:master commit in: sci-libs/parmetis/files/, sci-libs/parmetis/ Andrew Ammerlaan
  -- strict thread matches above, loose matches on Subject: below --
2021-07-16 11:43 Marek Szuba

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox