commit:     aec0088206378db7ae38b3c365419d944d1a3118
Author:     Sv. Lockal <lockalsash <AT> gmail <DOT> com>
AuthorDate: Sun Dec  8 15:17:04 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Jan  5 21:46:32 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=aec00882

sci-libs/hipSPARSE: add 6.3.0

Signed-off-by: Sv. Lockal <lockalsash <AT> gmail.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 sci-libs/hipSPARSE/Manifest                        |   1 +
 .../files/hipSPARSE-6.3.0-fix-filesystem.patch     |  40 ++++++++
 .../hipSPARSE-6.3.0-no-gtest-in-benchmark.patch    |  22 +++++
 sci-libs/hipSPARSE/hipSPARSE-6.1.1.ebuild          |   6 +-
 sci-libs/hipSPARSE/hipSPARSE-6.3.0.ebuild          | 102 +++++++++++++++++++++
 sci-libs/hipSPARSE/metadata.xml                    |   5 +-
 6 files changed, 174 insertions(+), 2 deletions(-)

diff --git a/sci-libs/hipSPARSE/Manifest b/sci-libs/hipSPARSE/Manifest
index c38dc6c9f99c..f41749291572 100644
--- a/sci-libs/hipSPARSE/Manifest
+++ b/sci-libs/hipSPARSE/Manifest
@@ -1,6 +1,7 @@
 DIST hipSPARSE-5.1.tar.gz 449838 BLAKE2B 
7727ecb9fa397e2730cfda4c9367188c37ad201d501b50129994869c6ef15b51cdf2d1f481f19f2f37cf0530f1ec3689c40a9651924f70fabe945d80732df64a
 SHA512 
8b01c01a10b8419d14a532ebccfa5b5b5b5c3f6a6e73f3f0ecee58c7e240d2754485a9da020fe4693df3ef9fc08e5bb09b05396472ccbeebf89bc2635d94eb64
 DIST hipSPARSE-5.7.tar.gz 458521 BLAKE2B 
94695ef3cf4294f571723e31ab5d4295b5aaa24528e90838375ee8477cf0957b297663d80e5fe3406762b475b6ef4741f9ccfb4dfb1448ce71ea4014da14b46e
 SHA512 
bb28cd81b7ec298eb2e6462a8588ed93eee7b4892923b11087a91d1c32341f29f488fd4e6797debe51a989f463db31030eae02d07be6512d6b755367ba221aac
 DIST hipSPARSE-6.1.tar.gz 471148 BLAKE2B 
18119ac355e180adb5ce38561f44e39119226d209a970ae8cac6b85575bad1ab2a690a3bb72de1c179c1190aa2c29d691e6ce02855f3df89a58f634d42e54103
 SHA512 
09f9e94c5f976e6f17c07f9be2fde31c2e740871215a6b77b49675644b883bd9994fcaacb19864ace3883bb5aea7a7dc589ddbaf9b6aaf3d9f411c7e452a0b78
+DIST hipSPARSE-6.3.tar.gz 537764 BLAKE2B 
2989c81ac1f024246fdcf8081fa6969f1efd81d680f39b45edac290b4db7d453154d5d432e0ad3d0bc1e08948e03886a89ff4ec051b30cb7eca6bfe4f433d4a7
 SHA512 
c011b7d7a2121a20ceb2eee8d7217717ff06196f085f0996b0952b5afdbf2350e7288c4cfd2cfe9214b84c2add203788a1860d9a89bb426df2bc376b348a7f55
 DIST rocSPARSE_ASIC_320k.tar.gz 11301444 BLAKE2B 
a00cc4a3ededab3fb56339319e34e936645ddce2dee3c630153b37e337384c207b0a2829227fb7f4c2db1fe33383e97410ab7ad459d391c025f5410843d51cf2
 SHA512 
1db3af391c30a371c1ac0087436e266721474273a39d5b2b6d56408d950dcbbee004750e4dce4e3dbc4cb512f38f6d945676d7f29b62c52fd5a7fed0fe789e03
 DIST rocSPARSE_Chebyshev4.tar.gz 50165660 BLAKE2B 
f1a95554c8f38937f501488fabfd406b773eb980d7463cadac0de162529ac2f834c655cadd2b65f4c42a8487bc2d67c749601ae33bd789051f9e4d1e157196a0
 SHA512 
fdec4947a4af923d28b4be8d23690fd6d356c58f8344a5dcdd2e3fa61769d83e47a84d65316b527e6e82d9f988de2675a852367d406e44b44d784137a90b95c0
 DIST rocSPARSE_amazon0312.tar.gz 11303646 BLAKE2B 
388947a29380253bb5eecb22d3a3b6f3378711044b3fe98d6d2517cd27330f11b3d12fdb96320a2889e139224f1a6a5ad1c455ff8e91a262aa2aadbe16301330
 SHA512 
aed2d62581763742d9c7faf3dcaf1eaa983caa1e2e7ad4abebe97c5e7c2aec9942e0e32291092b348b60052c92b130e721ec19ed59bda22e1b233ef72ac7d2ff

diff --git a/sci-libs/hipSPARSE/files/hipSPARSE-6.3.0-fix-filesystem.patch 
b/sci-libs/hipSPARSE/files/hipSPARSE-6.3.0-fix-filesystem.patch
new file mode 100644
index 000000000000..c688f0c81c53
--- /dev/null
+++ b/sci-libs/hipSPARSE/files/hipSPARSE-6.3.0-fix-filesystem.patch
@@ -0,0 +1,40 @@
+Incorrect usage of C++ filesystem for libc++ and libstdc++
+https://github.com/ROCm/hipSPARSE/issues/555
+--- a/clients/common/utility.cpp
++++ b/clients/common/utility.cpp
+@@ -34,16 +34,22 @@
+ #define strSUITEcmp(A, B) _stricmp(A, B)
+ #endif
+ 
++#ifdef __has_include
++#if __has_include(<version>)
++#include <version>
++#endif
++#endif
++
+ #ifdef __cpp_lib_filesystem
+ #include <filesystem>
++
++namespace fs = std::filesystem;
+ #else
+ #include <experimental/filesystem>
+ 
+-namespace std
+-{
+-    namespace filesystem = experimental::filesystem;
+-}
++namespace fs = std::experimental::filesystem;
+ #endif
++
+ #if 0
+ #ifdef WIN32
+ #include <windows.h>
+@@ -91,7 +97,7 @@ std::string hipsparse_exepath()
+         result.resize(result.size() * 2);
+     }
+ 
+-    std::filesystem::path exepath(result.begin(), result.end());
++    fs::path exepath(result.begin(), result.end());
+     exepath = exepath.remove_filename();
+     exepath += exepath.empty() ? "" : "/";
+     return exepath.string();

diff --git 
a/sci-libs/hipSPARSE/files/hipSPARSE-6.3.0-no-gtest-in-benchmark.patch 
b/sci-libs/hipSPARSE/files/hipSPARSE-6.3.0-no-gtest-in-benchmark.patch
new file mode 100644
index 000000000000..4555b1000d38
--- /dev/null
+++ b/sci-libs/hipSPARSE/files/hipSPARSE-6.3.0-no-gtest-in-benchmark.patch
@@ -0,0 +1,22 @@
+GTest is linked/required for hipsparse-bench, but not used
+https://github.com/ROCm/hipSPARSE/issues/557
+--- a/clients/benchmarks/CMakeLists.txt
++++ b/clients/benchmarks/CMakeLists.txt
+@@ -21,8 +21,6 @@
+ #
+ # ########################################################################
+ 
+-find_package(GTest REQUIRED)
+-
+ set(HIPSPARSE_BENCHMARK_SOURCES
+   client.cpp
+   hipsparse_arguments_config.cpp
+@@ -48,7 +46,7 @@ target_compile_options(hipsparse-bench PRIVATE 
-Wno-deprecated -Wno-unused-comma
+ target_include_directories(hipsparse-bench PRIVATE 
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../include>)
+ 
+ # Target link libraries
+-target_link_libraries(hipsparse-bench PRIVATE GTest::GTest roc::hipsparse)
++target_link_libraries(hipsparse-bench PRIVATE roc::hipsparse)
+ 
+ # Add OpenMP if available
+ if(OPENMP_FOUND AND THREADS_FOUND)

diff --git a/sci-libs/hipSPARSE/hipSPARSE-6.1.1.ebuild 
b/sci-libs/hipSPARSE/hipSPARSE-6.1.1.ebuild
index 2176f205682a..66e72a372ec5 100644
--- a/sci-libs/hipSPARSE/hipSPARSE-6.1.1.ebuild
+++ b/sci-libs/hipSPARSE/hipSPARSE-6.1.1.ebuild
@@ -43,7 +43,7 @@ REQUIRED_USE="${ROCM_REQUIRED_USE}"
 RESTRICT="!test? ( test )"
 
 RDEPEND="dev-util/rocminfo
-               dev-util/hip
+               dev-util/hip:${SLOT}
                sci-libs/rocSPARSE:${SLOT}[${ROCM_USEDEP}]"
 DEPEND="${RDEPEND}"
 BDEPEND="dev-build/rocm-cmake
@@ -68,6 +68,10 @@ src_prepare() {
 }
 
 src_configure() {
+       # Note: hipcc is enforced; clang fails when libc++ is enabled
+       # with an error similar to https://github.com/boostorg/config/issues/392
+       rocm_use_hipcc
+
        local mycmakeargs=(
                -DHIP_RUNTIME="ROCclr"
                -DBUILD_CLIENTS_TESTS=$(usex test ON OFF)

diff --git a/sci-libs/hipSPARSE/hipSPARSE-6.3.0.ebuild 
b/sci-libs/hipSPARSE/hipSPARSE-6.3.0.ebuild
new file mode 100644
index 000000000000..62a5615be846
--- /dev/null
+++ b/sci-libs/hipSPARSE/hipSPARSE-6.3.0.ebuild
@@ -0,0 +1,102 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ROCM_VERSION=${PV}
+
+inherit cmake edo rocm toolchain-funcs
+
+DESCRIPTION="ROCm SPARSE marshalling library"
+HOMEPAGE="https://github.com/ROCm/hipSPARSE";
+# share some test datasets with rocSPARSE
+SRC_URI="https://github.com/ROCm/hipSPARSE/archive/rocm-${PV}.tar.gz -> 
hipSPARSE-$(ver_cut 1-2).tar.gz
+test? (
+http://sparse-files.engr.tamu.edu/MM/SNAP/amazon0312.tar.gz -> 
rocSPARSE_amazon0312.tar.gz
+http://sparse-files.engr.tamu.edu/MM/Muite/Chebyshev4.tar.gz -> 
rocSPARSE_Chebyshev4.tar.gz
+http://sparse-files.engr.tamu.edu/MM/FEMLAB/sme3Dc.tar.gz -> 
rocSPARSE_sme3Dc.tar.gz
+http://sparse-files.engr.tamu.edu/MM/Williams/webbase-1M.tar.gz -> 
rocSPARSE_webbase-1M.tar.gz
+http://sparse-files.engr.tamu.edu/MM/Bova/rma10.tar.gz -> 
rocSPARSE_rma10.tar.gz
+http://sparse-files.engr.tamu.edu/MM/JGD_BIBD/bibd_22_8.tar.gz -> 
rocSPARSE_bibd_22_8.tar.gz
+http://sparse-files.engr.tamu.edu/MM/Williams/mac_econ_fwd500.tar.gz -> 
rocSPARSE_mac_econ_fwd500.tar.gz
+http://sparse-files.engr.tamu.edu/MM/Williams/mc2depi.tar.gz -> 
rocSPARSE_mc2depi.tar.gz
+http://sparse-files.engr.tamu.edu/MM/Hamm/scircuit.tar.gz -> 
rocSPARSE_scircuit.tar.gz
+http://sparse-files.engr.tamu.edu/MM/Sandia/ASIC_320k.tar.gz -> 
rocSPARSE_ASIC_320k.tar.gz
+http://sparse-files.engr.tamu.edu/MM/GHS_psdef/bmwcra_1.tar.gz -> 
rocSPARSE_bmwcra_1.tar.gz
+http://sparse-files.engr.tamu.edu/MM/HB/nos1.tar.gz -> rocSPARSE_nos1.tar.gz
+http://sparse-files.engr.tamu.edu/MM/HB/nos2.tar.gz -> rocSPARSE_nos2.tar.gz
+http://sparse-files.engr.tamu.edu/MM/HB/nos3.tar.gz -> rocSPARSE_nos3.tar.gz
+http://sparse-files.engr.tamu.edu/MM/HB/nos4.tar.gz -> rocSPARSE_nos4.tar.gz
+http://sparse-files.engr.tamu.edu/MM/HB/nos5.tar.gz -> rocSPARSE_nos5.tar.gz
+http://sparse-files.engr.tamu.edu/MM/HB/nos6.tar.gz -> rocSPARSE_nos6.tar.gz
+http://sparse-files.engr.tamu.edu/MM/HB/nos7.tar.gz -> rocSPARSE_nos7.tar.gz
+http://sparse-files.engr.tamu.edu/MM/DNVS/shipsec1.tar.gz -> 
rocSPARSE_shipsec1.tar.gz
+)"
+S="${WORKDIR}/hipSPARSE-rocm-${PV}"
+
+LICENSE="MIT"
+SLOT="0"/$(ver_cut 1-2)
+KEYWORDS="~amd64"
+IUSE="benchmark test"
+REQUIRED_USE="${ROCM_REQUIRED_USE}"
+
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+       dev-util/rocminfo:${SLOT}
+       dev-util/hip:${SLOT}
+       sci-libs/rocSPARSE:${SLOT}[${ROCM_USEDEP}]
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+       dev-build/rocm-cmake
+       test? ( dev-cpp/gtest )
+"
+
+PATCHES=(
+       "${FILESDIR}/${PN}-6.3.0-fix-filesystem.patch"
+       "${FILESDIR}/${PN}-6.3.0-no-gtest-in-benchmark.patch"
+)
+
+src_prepare() {
+       # include <filesystem> issue - 
https://github.com/ROCm/hipSPARSE/issues/555
+       sed -e "s/CMAKE_CXX_STANDARD 14/CMAKE_CXX_STANDARD 17/" -i 
CMakeLists.txt clients/CMakeLists.txt || die
+
+       cmake_src_prepare
+
+       if use test; then
+               mkdir -p "${BUILD_DIR}"/clients/matrices
+               # compile and use the mtx2bin converter. Do not use any 
optimization flags!
+               edo $(tc-getCXX) deps/convert.cpp -o deps/convert
+               find "${WORKDIR}" -maxdepth 2 -regextype egrep -regex 
".*/(.*)/\1\.mtx" -print0 |
+                       while IFS= read -r -d '' mtxfile; do
+                               
destination=${BUILD_DIR}/clients/matrices/$(basename -s '.mtx' "${mtxfile}").bin
+                               ebegin "Converting ${mtxfile} to ${destination}"
+                               deps/convert "${mtxfile}" "${destination}"
+                               eend $?
+                       done
+       fi
+}
+
+src_configure() {
+       # Note: hipcc is enforced; clang fails when libc++ is enabled
+       # with an error similar to https://github.com/boostorg/config/issues/392
+       rocm_use_hipcc
+
+       local mycmakeargs=(
+               -DHIP_RUNTIME="ROCclr"
+               -DBUILD_CLIENTS_TESTS=$(usex test ON OFF)
+               -DBUILD_CLIENTS_SAMPLES=OFF
+               -DBUILD_CLIENTS_BENCHMARKS=$(usex benchmark ON OFF)
+               -DROCM_SYMLINK_LIBS=OFF
+               -DBUILD_FILE_REORG_BACKWARD_COMPATIBILITY=OFF
+       )
+
+       cmake_src_configure
+}
+
+src_test() {
+       check_amdgpu
+       cd "${BUILD_DIR}"/clients/staging || die
+       edob ./${PN,,}-test
+}

diff --git a/sci-libs/hipSPARSE/metadata.xml b/sci-libs/hipSPARSE/metadata.xml
index db85e1426e8f..57758b20d8ba 100644
--- a/sci-libs/hipSPARSE/metadata.xml
+++ b/sci-libs/hipSPARSE/metadata.xml
@@ -18,6 +18,9 @@
     <name>Sv. Lockal</name>
   </maintainer>
   <upstream>
-    <remote-id type="github">ROCmSoftwarePlatform/hipSPARSE</remote-id>
+    <remote-id type="github">ROCm/hipSPARSE</remote-id>
   </upstream>
+  <use>
+    <flag name="benchmark">Build and install hipsparse-bench.</flag>
+  </use>
 </pkgmetadata>

Reply via email to