Skip to content

tiledb: cleanup and migrate from legacy dependency management mode #21081

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

Closed
wants to merge 5 commits into from

Conversation

teo-tsirpanis
Copy link

This PR updates the tiledb package to obviate the need for 001-do-not-use-vcpkg.patch, and updates the build command to build only the necessary targets.

See each commit message for more details, and also macports/macports-ports#24239 and TileDB-Inc/TileDB#4960 (comment) for more background.

Validated locally by running makepkg-mingw --noconfirm --syncdeps.

The name `TILEDB_VCPKG` is misleading because it does not force the use of vcpkg.
Auto-downloading of vcpkg is disabled by the `TILEDB_DISABLE_AUTO_VCPKG` environment variable.
@MehdiChinoune
Copy link
Collaborator

The real solution is to keep a CMake option to disable VCPKG, This is the first time I see someone using an environment variable to enable/disable something.

@teo-tsirpanis
Copy link
Author

The vcpkg auto-download mechanism was based on the Azure SDK for C++, which uses an environment variable for reasons I don't know.

I opened TileDB-Inc/TileDB#5048 to add a CMake option in addition to the environment variable. I would suggest you to merge this PR either way.

@MehdiChinoune
Copy link
Collaborator

Isn't it weird to see the upstream patching the downstream for their own issue.
Why not applying the patch on tiledb?

@teo-tsirpanis
Copy link
Author

I don't understand. The MinGW package builds fine right now without any patches. I opened the upstream PR because I found the feature request reasonable and useful by itself, but that upstream PR should not block this PR.

@MehdiChinoune
Copy link
Collaborator

I don't understand. The MinGW package builds fine right now without any patches. I opened the upstream PR because I found the feature request reasonable and useful by itself, but that upstream PR should not block this PR.

You are working on TileDB and you want to patch Findlz4 for MinGW-packages. Why don't you fix it in TileDB first.

@teo-tsirpanis
Copy link
Author

Ah you are talking about the lz4 patch. That patch is a temporary workaround that disables finding lz4 from a CMake package (which is provided only by vcpkg at the moment) and not suitable for upstreaming.

The situation with lz4 is admittedly a bit messy and will be resolved in TileDB-Inc/TileDB#5021, which is a big PR that will be merged in the 2.26 timeframe. I could extract the lz4 fix from that PR but that too is non-trivial.

@MehdiChinoune
Copy link
Collaborator

This PR doesn't fix anything.

@teo-tsirpanis
Copy link
Author

Indeed it does not fix anything now, but will make updating easier after a couple releases. If you prefer it, you can defer these changes and make them when 2.26 gets released.

@MehdiChinoune
Copy link
Collaborator

Let's wait for the next release and see if they come with a friendly way to package tiledb (like any other library Instead of forcing vcpkg on all platforms)

@teo-tsirpanis teo-tsirpanis deleted the tiledb-cleanup branch June 5, 2024 22:30
KiterLuc pushed a commit to TileDB-Inc/TileDB that referenced this pull request Jun 11, 2024
[SC-48929](https://app.shortcut.com/tiledb-inc/story/48929/add-cmake-option-to-disable-auto-downloading-vcpkg)

This PR adds a CMake option to disable auto-downloading of vcpkg, as
requested in
msys2/MINGW-packages#21081 (comment).
There is already an environment variable that serves the same purpose,
but the CMake option has the advantage of being cached across
configures.

I also updated the error message when `TILEDB_VCPKG` is disabled, making
the migration path more clear.

Validated by configuring locally with this option specified, and
observing that vcpkg was not downloaded, and `find_package` calls
failed.

---
TYPE: BUILD
DESC: Automatic downloading of vcpkg can be disabled by enabling the
`TILEDB_DISABLE_AUTO_VCPKG` CMake option, in addition to setting the
environment variable with trhe same name.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants