Skip to content

Commit 2085d8c

Browse files
Bump the vcpkg builtin-baseline and remove most custom ports. (#4553)
[SC-37848](https://app.shortcut.com/tiledb-inc/story/37848/bump-the-vcpkg-builtin-baseline-and-remove-most-remaining-custom-ports) This PR bumps the vcpkg `builtin-baseline` which causes all of our dependencies to be updated to the most recent versions available on vcpkg. This removes the need for our custom ports and most were removed. The README of the ports folder was also updated to highlight that custom ports should be temporary. Apart from the remaining port overlays in the `ports` directory, the precise package versions we are using can be found in https://github.com/microsoft/vcpkg/blob/72010900b7cee36cea77aebb97695095c9358eaf/versions/baseline.json. --- TYPE: BUILD DESC: Update vcpkg version baseline to microsoft/vcpkg@7201090.
1 parent ca11ed2 commit 2085d8c

File tree

117 files changed

+105
-6344
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

117 files changed

+105
-6344
lines changed

.github/workflows/release.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ jobs:
5656
- name: Checkout TileDB
5757
# v4 uses node 20 which is incompatible with the libc version of the manylinux image
5858
uses: actions/checkout@v3
59+
- name: 'Homebrew setup'
60+
run: brew install automake pkg-config
61+
if: ${{ startsWith(matrix.os, 'macos-') == true }}
5962
- name: Export GitHub Actions cache variables
6063
uses: actions/github-script@v6
6164
with:

.github/workflows/unit-test-runs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
- uses: actions/checkout@v3
2525

2626
- name: 'Homebrew setup'
27-
run: brew install pkg-config
27+
run: brew install automake pkg-config
2828
if: ${{ startsWith(matrix.os, 'macos-') == true }}
2929

3030
# Configure required environment variables for vcpkg to use

cmake/Options/TileDBToolchain.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ if (NOT DEFINED CMAKE_TOOLCHAIN_FILE)
4545
# Inspired from https://github.com/Azure/azure-sdk-for-cpp/blob/azure-core_1.10.3/cmake-modules/AzureVcpkg.cmake
4646
message("TILEDB_DISABLE_AUTO_VCPKG is not defined. Fetch a local copy of vcpkg.")
4747
# To help with resolving conflicts, when you update the commit, also update its date.
48-
set(VCPKG_COMMIT_STRING ac2a14f35fcd57d7a38f09af75dd5258e96dd6ac) # 2023-11-16
48+
set(VCPKG_COMMIT_STRING 72010900b7cee36cea77aebb97695095c9358eaf) # 2023-12-05
4949
message("Vcpkg commit string used: ${VCPKG_COMMIT_STRING}")
5050
include(FetchContent)
5151
FetchContent_Declare(

ports/README.md

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,36 @@
1-
Port Overlays
2-
===
1+
# Port Overlays
32

4-
This directory contains the custom port overlays we're using for building depdencies. We're using overlays because some of our dependencies are quite old and getting working combinations from modern vcpkg was proving untenable. Overtime as our dependency versions are modernized, most if not all of the overlay ports will likely be removed.
3+
This directory contains the custom vcpkg port overlays we're using for building dependencies.
54

6-
Updating a Port
7-
---
5+
## Adding a Port
86

9-
The easiest way to update a port is to find the version of the port in the `microsoft/vcpkg` repository and extract it using a tool. So, for instance if we wanted to update our curl dependency from 7.80.0 to 7.84.0, we would look in the `path/to/microsoft/vcpkg/versions/c-/curl.json` file and find the tree-ish listed for 7.84.0. One thing to pay attention to here is that there can be multiple port versions for a given dependency version. So we want to pick the higest port version for the dependency at the version we are upgrading. In our hypothetical curl case that I may have just done, this gives us a treeish value of:
7+
> [!IMPORTANT]
8+
> Port overlays should be used as a temporary measure to fix issues with upstream ports or to add new ports that are not yet available to vcpkg. Once the upstream ports are fixed or added, the overlay ports should be removed.
109
11-
`588fa4742c417db9d7c0f89e652b618296388d1e`
10+
If modifying an existing port, you have to first determine the version of the port in the `microsoft/vcpkg` repository and extract it using a tool. If the port does not have a version pin in the [`vcpkg.json`](../vcpkg.json) manifest (in either a `version>=` field or an entry in the `overrides` section), browse the `microsoft/vcpkg` repository in the commit specified in the `builtin-baseline` field and copy the port directory from there.
11+
12+
If the port does have a version pin, and for instance we wanted to modify the curl port, which is in version 8.4.0, we would look in the [`versions/c-/curl.json` file](https://github.com/microsoft/vcpkg/blob/master/versions/c-/curl.json) and find the treeish listed for 8.4.0. One thing to pay attention to here is that there can be multiple port versions for a given dependency version. So we want to pick the highest port version for the dependency at the version we are upgrading. In our hypothetical curl case that I may have just done, this gives us a treeish value of:
13+
14+
`6125c796d6e2913a89a2996d7082375ce16b02dd`
1215

1316
Once we have the tree-ish, we just need to be able to extract all of the files and store them in our overlay ports directory. The easiest approach for this is to use something like [this script](https://gist.github.com/mhl/498447/b245d48f2a22301415a30ca8a68241f96e0b3861) to do just that. If you put that script on your path (and remember to `chmod +x path/to/extract-tree-from-git.py`) you can follow these simple steps for updating the port:
1417

1518
```bash
1619
$ rm ports/curl/*
1720
$ cd path/to/microsoft/vcpkg
18-
$ extract-tree-from-git.py 588fa4742c417db9d7c0f89e652b618296388d1e path/to/tiledb/ports/curl/
21+
$ extract-tree-from-git.py 6125c796d6e2913a89a2996d7082375ce16b02dd path/to/tiledb/ports/curl/
1922
$ cd path/to/tiledb
2023
$ git add ports
2124
$ git commit
2225
```
26+
27+
After copying the port, add an entry to the table below. You should also contribute your changes to vcpkg and/or the upstream package repository.
28+
29+
## List of port overlays
30+
31+
|Port|Reason|
32+
|----|------|
33+
|`libmagic`|Updating to the upstream port deferred due to failures.|
34+
|`openssl`|Pinning to OpenSSL 1.1 until we can move to 3.0 in January 2024.|
35+
|`pcre2`|To be removed alongside libmagic.|
36+
|`azure-storage-common-cpp`|Patching to disable default features on libxml2 (https://github.com/Azure/azure-sdk-for-cpp/pull/5221).|

ports/aws-c-auth/portfile.cmake

Lines changed: 0 additions & 32 deletions
This file was deleted.

ports/aws-c-auth/vcpkg.json

Lines changed: 0 additions & 25 deletions
This file was deleted.

ports/aws-c-cal/portfile.cmake

Lines changed: 0 additions & 33 deletions
This file was deleted.

ports/aws-c-cal/remove-libcrypto-messages.patch

Lines changed: 0 additions & 14 deletions
This file was deleted.

ports/aws-c-cal/vcpkg.json

Lines changed: 0 additions & 23 deletions
This file was deleted.

ports/aws-c-common/disable-internal-crt-option.patch

Lines changed: 0 additions & 20 deletions
This file was deleted.

0 commit comments

Comments
 (0)