commit: ca942b500cd74be4ef39a90a282d6ba6870826a0
Author: Matthias Maier <tamiko <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 19 17:33:43 2023 +0000
Commit: Matthias Maier <tamiko <AT> gentoo <DOT> org>
CommitDate: Mon Jun 19 18:26:33 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ca942b50
sci-libs/libsc: add 2.8.5
Signed-off-by: Matthias Maier <tamiko <AT> gentoo.org>
sci-libs/libsc/Manifest | 1 +
.../files/libsc-2.8.5-do_not_compile_zlib-ng.patch | 57 +++++++++
.../libsc/files/libsc-2.8.5-fix_build_system.patch | 25 ++++
sci-libs/libsc/files/libsc-2.8.5-set_version.patch | 49 ++++++++
.../files/libsc-2.8.5-use_zlib-ng_symbols.patch | 135 +++++++++++++++++++++
sci-libs/libsc/libsc-2.8.5.ebuild | 69 +++++++++++
6 files changed, 336 insertions(+)
diff --git a/sci-libs/libsc/Manifest b/sci-libs/libsc/Manifest
index d14ff4ef580d..af1e9c81cb76 100644
--- a/sci-libs/libsc/Manifest
+++ b/sci-libs/libsc/Manifest
@@ -1 +1,2 @@
DIST libsc-2.8.3.tar.gz 360755 BLAKE2B
2d7e3a16b97de551678ebb33f362e1ef7ebb0bcbf8d00b1a5317bfbf6732cf7bb9be2d215c79395809f3c616c23da5236c4f0f436a7b8bb07171141aaf08bbb3
SHA512
9def8850898f2d7d7a6ffaffd0872bc18af28026407356a1fe10f2b4f6d4a32ae6febe59c91cfa8817969624f995d48f64e0d5424b475e3a4c501338f4de70de
+DIST libsc-2.8.5.tar.gz 401520 BLAKE2B
28f74c03dc9a6238c254683585e3a6e372718bbf147f1a1bfe051d9a9079491650eca645bb695ce4c36920dda459904be6f9d41fb53163952d9076302072e181
SHA512
d7854a77cb574531d410c978af5768782d6201c730a3248371a822172cb99fe0b2efc8c2e4f495160924fb867ed77ab1b9ac17a1db349d8a6495228698cf970b
diff --git a/sci-libs/libsc/files/libsc-2.8.5-do_not_compile_zlib-ng.patch
b/sci-libs/libsc/files/libsc-2.8.5-do_not_compile_zlib-ng.patch
new file mode 100644
index 000000000000..fb0ce0de7dbb
--- /dev/null
+++ b/sci-libs/libsc/files/libsc-2.8.5-do_not_compile_zlib-ng.patch
@@ -0,0 +1,57 @@
+diff --git a/cmake/zlib.cmake b/cmake/zlib.cmake
+index 5ca9f6d..86b9035 100644
+--- a/cmake/zlib.cmake
++++ b/cmake/zlib.cmake
+@@ -1,51 +1,8 @@
+ # build Zlib to ensure compatibility.
+ # We use Zlib 2.x for speed and robustness.
+ include(GNUInstallDirs)
+-include(ExternalProject)
+
+-set(ZLIB_INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX}/include)
+-
+-if(BUILD_SHARED_LIBS)
+- if(WIN32)
+- set(ZLIB_LIBRARIES
${CMAKE_INSTALL_PREFIX}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}zlib1${CMAKE_SHARED_LIBRARY_SUFFIX})
+- else()
+- set(ZLIB_LIBRARIES
${CMAKE_INSTALL_PREFIX}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}z${CMAKE_SHARED_LIBRARY_SUFFIX})
+- endif()
+-else()
+- if(MSVC)
+- set(ZLIB_LIBRARIES
${CMAKE_INSTALL_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}zlibstatic${CMAKE_STATIC_LIBRARY_SUFFIX})
+- else()
+- set(ZLIB_LIBRARIES
${CMAKE_INSTALL_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}z${CMAKE_STATIC_LIBRARY_SUFFIX})
+- endif()
+-endif()
+-
+-set(zlib_cmake_args
+--DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}
+--DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
+--DCMAKE_BUILD_TYPE=Release
+--DZLIB_COMPAT:BOOL=on
+--DZLIB_ENABLE_TESTS:BOOL=off
+--DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON
+--DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
+-)
+-
+-ExternalProject_Add(ZLIB
+-GIT_REPOSITORY https://github.com/zlib-ng/zlib-ng.git
+-GIT_TAG 2.0.6
+-GIT_SHALLOW true
+-CMAKE_ARGS ${zlib_cmake_args}
+-BUILD_BYPRODUCTS ${ZLIB_LIBRARIES}
+-TLS_VERIFY true
+-CONFIGURE_HANDLED_BY_BUILD ON
+-INACTIVITY_TIMEOUT 60
+-)
+-
+-# --- imported target
+-
+-file(MAKE_DIRECTORY ${ZLIB_INCLUDE_DIRS})
+-# avoid race condition
++find_library(ZLIB_LIBRARIES NAMES z-ng)
+
+ add_library(ZLIB::ZLIB INTERFACE IMPORTED GLOBAL)
+-add_dependencies(ZLIB::ZLIB ZLIB) # to avoid include directory race condition
+ target_link_libraries(ZLIB::ZLIB INTERFACE ${ZLIB_LIBRARIES})
+-target_include_directories(ZLIB::ZLIB INTERFACE ${ZLIB_INCLUDE_DIRS})
diff --git a/sci-libs/libsc/files/libsc-2.8.5-fix_build_system.patch
b/sci-libs/libsc/files/libsc-2.8.5-fix_build_system.patch
new file mode 100644
index 000000000000..6adfbf31c997
--- /dev/null
+++ b/sci-libs/libsc/files/libsc-2.8.5-fix_build_system.patch
@@ -0,0 +1,25 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 87af1b1..82cb357 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -8,6 +8,8 @@ HOMEPAGE_URL https://www.p4est.org/
+ DESCRIPTION "The SC library supports parallel scientific applications."
+ VERSION ${PROJECT_VERSION})
+
++set(CMAKE_POSITION_INDEPENDENT_CODE ON)
++
+ enable_testing()
+
+ include(cmake/options.cmake)
+@@ -57,7 +59,10 @@ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+ FILES_MATCHING PATTERN "*.h"
+ )
+
+-install(TARGETS sc EXPORT ${PROJECT_NAME}-targets)
++install(TARGETS sc EXPORT ${PROJECT_NAME}-targets
++ARCHIVE DESTINATION ${library_reldir}
++LIBRARY DESTINATION ${library_reldir}
++)
+
+ add_subdirectory(src)
+ add_subdirectory(example)
diff --git a/sci-libs/libsc/files/libsc-2.8.5-set_version.patch
b/sci-libs/libsc/files/libsc-2.8.5-set_version.patch
new file mode 100644
index 000000000000..061081a0da9e
--- /dev/null
+++ b/sci-libs/libsc/files/libsc-2.8.5-set_version.patch
@@ -0,0 +1,49 @@
+diff --git a/cmake/git.cmake b/cmake/git.cmake
+index f88e984..f04f52b 100644
+--- a/cmake/git.cmake
++++ b/cmake/git.cmake
+@@ -1,39 +1,5 @@
+-# --- extract version from Git
+-
+-set(PROJECT_MAJOR 0)
+-set(PROJECT_MINOR 0)
+-set(PROJECT_PATCH 0)
+-set(PROJECT_VERSION 0.0.0)
+-find_program(GIT_VERSION_GEN NAMES git-version-gen
+- PATHS ${CMAKE_SOURCE_DIR}/build-aux NO_DEFAULT_PATH)
+-if(GIT_VERSION_GEN)
+- execute_process(COMMAND ${GIT_VERSION_GEN} .tarball-version
+- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+- RESULT_VARIABLE _err
+- OUTPUT_VARIABLE git_version
+- OUTPUT_STRIP_TRAILING_WHITESPACE)
+-endif()
+-if(_err EQUAL 0)
+- if(git_version MATCHES
+- "^(0|[1-9][0-9]*)[.](0|[1-9][0-9]*)[.](0|[1-9][0-9]*)[.].*")
+- set(PROJECT_MAJOR "${CMAKE_MATCH_1}")
+- set(PROJECT_MINOR "${CMAKE_MATCH_2}")
+- set(PROJECT_PATCH "${CMAKE_MATCH_3}")
+- set(PROJECT_VERSION
${PROJECT_MAJOR}.${PROJECT_MINOR}.${PROJECT_PATCH}.999)
+- elseif(git_version MATCHES
+- "^(0|[1-9][0-9]*)[.](0|[1-9][0-9]*)[.](0|[1-9][0-9]*)")
+- set(PROJECT_MAJOR "${CMAKE_MATCH_1}")
+- set(PROJECT_MINOR "${CMAKE_MATCH_2}")
+- set(PROJECT_PATCH "${CMAKE_MATCH_3}")
+- set(PROJECT_VERSION ${PROJECT_MAJOR}.${PROJECT_MINOR}.${PROJECT_PATCH})
+- elseif(git_version MATCHES
+- "^(0|[1-9][0-9]*)[.](0|[1-9][0-9]*)")
+- set(PROJECT_MAJOR "${CMAKE_MATCH_1}")
+- set(PROJECT_MINOR "${CMAKE_MATCH_2}")
+- set(PROJECT_VERSION ${PROJECT_MAJOR}.${PROJECT_MINOR})
+- elseif(git_version MATCHES
+- "^(0|[1-9][0-9]*)")
+- set(PROJECT_MAJOR "${CMAKE_MATCH_1}")
+- set(PROJECT_VERSION ${PROJECT_MAJOR})
+- endif()
+-endif()
++set(git_version 2.8.5)
++set(PROJECT_MAJOR 2)
++set(PROJECT_MINOR 8)
++set(PROJECT_PATCH 5)
++set(PROJECT_VERSION 2.8.5)
diff --git a/sci-libs/libsc/files/libsc-2.8.5-use_zlib-ng_symbols.patch
b/sci-libs/libsc/files/libsc-2.8.5-use_zlib-ng_symbols.patch
new file mode 100644
index 000000000000..74827050243b
--- /dev/null
+++ b/sci-libs/libsc/files/libsc-2.8.5-use_zlib-ng_symbols.patch
@@ -0,0 +1,135 @@
+diff --git a/src/sc_containers.c b/src/sc_containers.c
+index 47c86d7..b9a1979 100644
+--- a/src/sc_containers.c
++++ b/src/sc_containers.c
+@@ -23,7 +23,7 @@
+
+ #include <sc_containers.h>
+ #ifdef SC_HAVE_ZLIB
+-#include <zlib.h>
++#include <zlib-ng.h>
+ #endif
+
+ /* array routines */
+@@ -636,13 +636,13 @@ sc_array_checksum (sc_array_t * array)
+ unsigned int crc;
+ size_t bytes;
+
+- crc = adler32 (0, Z_NULL, 0);
++ crc = zng_adler32 (0, Z_NULL, 0);
+ if (array->elem_count == 0) {
+ return crc;
+ }
+
+ bytes = array->elem_count * array->elem_size;
+- crc = adler32 (crc, (const Bytef *) array->array, bytes);
++ crc = zng_adler32 (crc, (const Bytef *) array->array, bytes);
+
+ return crc;
+ #else
+diff --git a/src/sc_io.c b/src/sc_io.c
+index a7ed413..bc2df7d 100644
+--- a/src/sc_io.c
++++ b/src/sc_io.c
+@@ -25,7 +25,7 @@
+ #include <sc_puff.h>
+ #include <libb64.h>
+ #ifdef SC_HAVE_ZLIB
+-#include <zlib.h>
++#include <zlib-ng.h>
+ #endif
+
+ #ifndef SC_ENABLE_MPIIO
+@@ -706,7 +706,7 @@ sc_io_encode_zlib (sc_array_t *data, sc_array_t *out,
+ #ifndef SC_HAVE_ZLIB
+ input_compress_bound = sc_io_noncompress_bound (input_size);
+ #else
+- input_compress_bound = compressBound ((uLong) input_size);
++ input_compress_bound = zng_compressBound ((uLong) input_size);
+ #endif /* SC_HAVE_ZLIB */
+ sc_array_init_count (&compressed, 1,
+ SC_IO_ENCODE_INFO_LEN + input_compress_bound);
+@@ -715,9 +715,9 @@ sc_io_encode_zlib (sc_array_t *data, sc_array_t *out,
+ sc_io_noncompress (compressed.array + SC_IO_ENCODE_INFO_LEN,
+ input_compress_bound, data->array, input_size);
+ #else
+- zrv = compress2 ((Bytef *) compressed.array + SC_IO_ENCODE_INFO_LEN,
+- &input_compress_bound, (Bytef *) data->array,
+- (uLong) input_size, zlib_compression_level);
++ zrv = zng_compress2 ((Bytef *) compressed.array + SC_IO_ENCODE_INFO_LEN,
++ &input_compress_bound, (Bytef *) data->array,
++ (uLong) input_size, zlib_compression_level);
+ SC_CHECK_ABORT (zrv == Z_OK, "Error on zlib compression");
+ #endif /* SC_HAVE_ZLIB */
+
+@@ -993,9 +993,9 @@ sc_io_decode (sc_array_t *data, sc_array_t *out,
+ }
+ #else
+ uncompsize = (uLong) encoded_size;
+- zrv = uncompress ((Bytef *) out->array, &uncompsize,
+- (Bytef *) (compressed.array + SC_IO_ENCODE_INFO_LEN),
+- ocnt - SC_IO_ENCODE_INFO_LEN);
++ zrv = zng_uncompress ((Bytef *) out->array, &uncompsize,
++ (Bytef *) (compressed.array + SC_IO_ENCODE_INFO_LEN),
++ ocnt - SC_IO_ENCODE_INFO_LEN);
+ if (zrv != Z_OK) {
+ SC_LERROR ("zlib uncompress error\n");
+ goto decode_error;
+@@ -1120,9 +1120,9 @@ sc_vtk_write_compressed (FILE * vtkfile, char
*numeric_data,
+ base64_init_encodestate (&encode_state);
+ for (theblock = 0; theblock < numregularblocks; ++theblock) {
+ comp_length = code_length;
+- retval = compress2 ((Bytef *) comp_data, &comp_length,
+- (const Bytef *) (numeric_data + theblock * blocksize),
+- (uLong) blocksize, Z_BEST_COMPRESSION);
++ retval = zng_compress2 ((Bytef *) comp_data, &comp_length,
++ (const Bytef *) (numeric_data + theblock *
blocksize),
++ (uLong) blocksize, Z_BEST_COMPRESSION);
+ SC_CHECK_ZLIB (retval);
+ compression_header[3 + theblock] = comp_length;
+ base_length = base64_encode_block (comp_data, comp_length,
+@@ -1135,9 +1135,9 @@ sc_vtk_write_compressed (FILE * vtkfile, char
*numeric_data,
+ /* write odd-sized last block if necessary */
+ if (lastsize > 0) {
+ comp_length = code_length;
+- retval = compress2 ((Bytef *) comp_data, &comp_length,
+- (const Bytef *) (numeric_data + theblock * blocksize),
+- (uLong) lastsize, Z_BEST_COMPRESSION);
++ retval = zng_compress2 ((Bytef *) comp_data, &comp_length,
++ (const Bytef *) (numeric_data + theblock *
blocksize),
++ (uLong) lastsize, Z_BEST_COMPRESSION);
+ SC_CHECK_ZLIB (retval);
+ compression_header[3 + theblock] = comp_length;
+ base_length = base64_encode_block (comp_data, comp_length,
+diff --git a/test/test_builtin.c b/test/test_builtin.c
+index 371aff6..9a99c2d 100644
+--- a/test/test_builtin.c
++++ b/test/test_builtin.c
+@@ -27,7 +27,7 @@
+
+ /* truthfully, the libraries below are not builtin anymore */
+ #ifdef SC_HAVE_ZLIB
+-#include <zlib.h>
++#include <zlib-ng.h>
+ #endif
+
+ static int
+@@ -87,13 +87,13 @@ test_zlib (void)
+ char b3[BUFSIZ];
+ uLong adler0, adler1, adler2, adler3a, adler3b;
+
+- adler0 = adler32 (0L, Z_NULL, 0);
+- adler1 = adler32 (adler0, (const Bytef *) b1, l1);
+- adler2 = adler32 (adler0, (const Bytef *) b2, l2);
+- adler3a = adler32_combine (adler1, adler2, l2);
++ adler0 = zng_adler32 (0L, Z_NULL, 0);
++ adler1 = zng_adler32 (adler0, (const Bytef *) b1, l1);
++ adler2 = zng_adler32 (adler0, (const Bytef *) b2, l2);
++ adler3a = zng_adler32_combine (adler1, adler2, l2);
+
+ snprintf (b3, BUFSIZ, "%s%s", b1, b2);
+- adler3b = adler32 (adler0, (const Bytef *) b3, l1 + l2);
++ adler3b = zng_adler32 (adler0, (const Bytef *) b3, l1 + l2);
+
+ return adler3a != adler3b;
+ }
diff --git a/sci-libs/libsc/libsc-2.8.5.ebuild
b/sci-libs/libsc/libsc-2.8.5.ebuild
new file mode 100644
index 000000000000..e6f5712f4c17
--- /dev/null
+++ b/sci-libs/libsc/libsc-2.8.5.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake toolchain-funcs
+
+DESCRIPTION="Support for parallel scientific applications"
+HOMEPAGE="http://www.p4est.org/"
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/cburstedde/${PN}.git"
+ EGIT_BRANCH="develop"
+else
+ SRC_URI="https://github.com/cburstedde/${PN}/archive/v${PV}.tar.gz ->
${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="LGPL-2.1+"
+SLOT="0"
+IUSE="debug examples mpi openmp threads"
+
+RDEPEND="
+ sys-apps/util-linux
+ sys-libs/zlib-ng
+ virtual/blas
+ virtual/lapack
+ mpi? ( virtual/mpi[romio] )"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-set_version.patch
+ "${FILESDIR}"/${P}-fix_build_system.patch
+ "${FILESDIR}"/${P}-do_not_compile_zlib-ng.patch
+ "${FILESDIR}"/${P}-use_zlib-ng_symbols.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -Dmpi="$(usex mpi)"
+ -Dopenmp="$(usex openmp)"
+ -Dlibrary_reldir="$(get_libdir)"
+ )
+
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ rm -r "${ED}"/usr/cmake || die "rm failed"
+
+ rm -r "${ED}"/usr/include/getopt.h \
+ "${ED}"/usr/include/getopt_int.h \
+ "${ED}"/usr/include/sc_builtin || die "rm failed"
+
+ mv "${ED}"/usr/share/docs/SC/* "${ED}"/usr/share/doc/${P}/ || die "mv
failed"
+ rm -r "${ED}"/usr/share/docs || die "rm failed"
+}