Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tiledb: update to version 2.26.0 #25731

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

teo-tsirpanis
Copy link
Contributor

Description

This PR updates TileDB to version 2.26.0, and removes some no longer applicable patches and workarounds.

Type(s)
  • bugfix
  • enhancement
  • security fix
Tested on

CI on my fork

Verification

Have you

  • followed our Commit Message Guidelines?
  • squashed and minimized your commits?
  • checked that there aren't other open pull requests for the same change?
  • referenced existing tickets on Trac with full URL in commit message?
  • checked your Portfile with port lint --nitpick?
  • tried existing tests with sudo port test?
  • tried a full install with sudo port -vst install?
  • tested basic functionality of all binary files?
  • checked that the Portfile's most important variants haven't been broken?

@macportsbot
Copy link

Notifying maintainers:
@barracuda156 for port tiledb.

Copy link
Contributor

@barracuda156 barracuda156 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to:

  1. Sort out dependencies, following changes in TileDB.
  2. Fix patches which fail to apply now (this I will do).

# Patch TileDB to find lz4 manually, because the lz4 package does not provide CMake configs.
# Updating the lz4 port is blocked on lz4 releasing a new version, with some official
# linkage-agnostic targets.
patchfiles-append lz4_fix.diff
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Aside from the issue which I pointed out in the ticket, there are extra changes needed here, since now patches do not apply. We also need to add a dependency on libmagic from looks of things, and libpng (?).

I have already fixed patches, I will make a commit and you can pick that.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Libmagic is being obtained through the dependency on the file port, and libpng is optionally needed for some tests and there is a dependency to it in the test variant (see line 138 in the new portfile).

Copy link
Contributor

@barracuda156 barracuda156 Sep 13, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, then only fixing the second patch is left. (libatomic one, not libmagic.)

@barracuda156
Copy link
Contributor

barracuda156 commented Sep 13, 2024

@teo-tsirpanis Please modify libmagic part however needed for it to use MacPorts one. (Notice, that is not the only required change, there are some purely technical.)

00eaf7d

@teo-tsirpanis
Copy link
Contributor Author

I don't think any patches to FindLibMagic.cmake are needed anymore. I removed patching this file from patch-linking.diff.

@barracuda156
Copy link
Contributor

I don't think any patches to FindLibMagic.cmake are needed anymore. I removed patching this file from patch-linking.diff.

Does it find MacPorts libmagic? We rather not use vcpkg here.

P. S. databases/tiledb/files/patch-libatomic-32-bit.diff patch should be updated as well (just copy from my commit).

@teo-tsirpanis
Copy link
Contributor Author

Does it find MacPorts libmagic? We rather not use vcpkg here.

Yes, vcpkg is not being used at all since #24239.

P. S. databases/tiledb/files/patch-libatomic-32-bit.diff patch should be updated as well (just copy from my commit).

Done.

@barracuda156
Copy link
Contributor

barracuda156 commented Sep 13, 2024

This should also be removed from the portfile, since that patch is gone:

    post-patch {
        reinplace "s,@PREFIX@,${prefix},g" ${worksrcpath}/cmake/Modules/FindMagic_EP.cmake
    }

UPD. @teo-tsirpanis You could just borrow this 570da65

@barracuda156
Copy link
Contributor

Configuring from your update, I still get all these not found during configure:

--->  Configuring tiledb
        (using ccache)
Executing:  cd "/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_databases_tiledb/tiledb/work/build" && /opt/local/bin/cmake -G "CodeBlocks - Unix Makefiles" -DCMAKE_BUILD_TYPE=MacPorts -DCMAKE_INSTALL_PREFIX="/opt/local" -DCMAKE_INSTALL_NAME_DIR="/opt/local/lib" -DCMAKE_SYSTEM_PREFIX_PATH="/opt/local;/usr" -DCMAKE_C_COMPILER_LAUNCHER=/opt/local/bin/ccache -DCMAKE_CXX_COMPILER_LAUNCHER=/opt/local/bin/ccache -DCMAKE_Fortran_COMPILER_LAUNCHER=/opt/local/bin/ccache -DCMAKE_OBJC_COMPILER_LAUNCHER=/opt/local/bin/ccache -DCMAKE_OBJCXX_COMPILER_LAUNCHER=/opt/local/bin/ccache -DCMAKE_ISPC_COMPILER_LAUNCHER=/opt/local/bin/ccache -DCMAKE_C_COMPILER="$CC" -DCMAKE_CXX_COMPILER="$CXX" -DCMAKE_OBJC_COMPILER="$CC" -DCMAKE_OBJCXX_COMPILER="$CXX" -DCMAKE_POLICY_DEFAULT_CMP0025=NEW -DCMAKE_POLICY_DEFAULT_CMP0060=NEW -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_COLOR_MAKEFILE=ON -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_MAKE_PROGRAM=/usr/bin/make -DCMAKE_MODULE_PATH="/opt/local/share/cmake/Modules;/opt/local/lib/libfmt10/cmake" -DCMAKE_PREFIX_PATH="/opt/local/share/cmake/Modules;/opt/local/lib/libfmt10/cmake" -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=ON -DCMAKE_INSTALL_RPATH="/opt/local/lib" -Wno-dev -DCATCH_INCLUDE_DIR:STRING=/opt/local/include -DTILEDB_ASSERIONS=OFF -DTILEDB_AZURE=OFF -DTILEDB_CPP_API=ON -DTILEDB_EXPERIMENTAL_FEATURES=OFF -DTILEDB_GCS=OFF -DTILEDB_HDFS=OFF -DTILEDB_SERIALIZATION=OFF -DTILEDB_TESTS=OFF -DTILEDB_TOOLS=OFF -DTILEDB_VERBOSE=ON -DTILEDB_WEBP=OFF -DTILEDB_WERROR=OFF -DCOMPILER_SUPPORTS_AVX2=OFF -DOPENSSL_ROOT_DIR=/opt/local/libexec/openssl3 -DOPENSSL_INCLUDE_DIR=/opt/local/libexec/openssl3/include -DWITH_SSL=/opt/local/libexec/openssl3 -DCMAKE_OSX_ARCHITECTURES="ppc" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.6" -DCMAKE_OSX_SYSROOT="/" /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_databases_tiledb/tiledb/work/TileDB-2.26.0 
Using vcpkg features: 
-- Found Doxygen: /opt/local/bin/doxygen (found version "1.12.0") found components: doxygen dot
-- Not found clang-tidy
-- Not found clang-format
-- was unable to find clang-format
-- The C compiler identification is GNU 14.2.0
-- The CXX compiler identification is GNU 14.2.0
-- Checking whether C compiler has -isysroot
-- Checking whether C compiler has -isysroot - yes
-- Checking whether C compiler supports OSX deployment target flag
-- Checking whether C compiler supports OSX deployment target flag - yes
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /opt/local/bin/gcc-mp-14 - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Checking whether CXX compiler has -isysroot
-- Checking whether CXX compiler has -isysroot - yes
-- Checking whether CXX compiler supports OSX deployment target flag
-- Checking whether CXX compiler supports OSX deployment target flag - yes
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /opt/local/bin/g++-mp-14 - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Starting TileDB regular build.
--   CMake version: 3.30.3
AVX2 compiler support disabled by COMPILER_SUPPORTS_AVX2=OFF
-- Using vendored cpp17::pmr for polymorphic allocators because of macOS deployment target 10.6 < 14
-- Building with cpp17::pmr
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Found BZip2: /opt/local/lib/libbz2.dylib (found version "1.0.8")
-- Looking for BZ2_bzCompressInit
-- Looking for BZ2_bzCompressInit - found
-- Could NOT find lz4 (missing: lz4_DIR)
-- Found LZ4: /opt/local/lib/liblz4.dylib
-- Found ZLIB: /opt/local/lib/libz.dylib (found version "1.3.1")
-- Found OpenSSL: /opt/local/libexec/openssl3/lib/libcrypto.dylib (found version "3.3.2")
-- Could NOT find unofficial-libmagic (missing: unofficial-libmagic_DIR)
-- Found libmagic: /opt/local/include
-- The TileDB library is compiled with verbosity.
-- The TileDB library is compiled with stats enabled.
-- Could NOT find lz4 (missing: lz4_DIR)
-- Could NOT find unofficial-libmagic (missing: unofficial-libmagic_DIR)
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
-- Found PNG: /opt/local/lib/libpng.dylib (found version "1.6.43")
-- Configuring done (20.6s)
-- Generating done (8.4s)

This is confusing when the last info messages repeat not found after dependencies were already found above. This looks like a bug, even if it is harmless to the build as such.

It is probably worth getting rid of all these unofficial tags. MacPorts does not use that.

@barracuda156
Copy link
Contributor

A couple of questions:

  1. I see that the build uses bundled blosc: -I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_databases_tiledb/tiledb/work/TileDB-2.26.0/external/blosc/include. Is it possible to use MacPorts' blosc instead? This does not have to be addressed now, but if it is a matter of a configure flag, it would be nice.
  2. Do we still need to keep blacklist of macports-clang-18? Related issue: 2.24.2 fails at linking on macOS 13 (only there): Undefined symbols for architecture x86_64: "std::exception_ptr::__from_native_exception_pointer(void*) TileDB-Inc/TileDB#5164

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
maintainer: open Affects an openmaintainer port type: update
Development

Successfully merging this pull request may close these issues.

3 participants