-
Notifications
You must be signed in to change notification settings - Fork 6.4k
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
[proj4] Update to 8.1.1, revise features and dependencies #20443
Conversation
Okay, libspatialite needs to learn transitive dependencies. |
ports/proj4/portfile.cmake
Outdated
if("net" IN_LIST FEATURES) | ||
vcpkg_list(APPEND TOOL_NAMES projsync) | ||
set(feature_for_projsync "tools") | ||
else() | ||
set(VCPKG_BUILD_SHARED_LIBS OFF) | ||
set(TOOL_NAMES cct cs2cs geod gie proj projinfo) | ||
set(feature_for_projsync "net") | ||
endif() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I personally don't like this, this will increase variability.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I personally don't like this, this will increase variability.
What is your proposal? It just implements upstream feature design: With net and tools, there is projsync. But there is no AND
in `vcpkg_check_features´.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use the original method:
if ("tools" IN_LIST FEATURES OR "net" IN_LIST FEATURES)
set(ADDITIONAL_OPTIONS "-DBUILD_PROJSYNC=ON")
endif()
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The original method was variation in number of FEATURES
supplied to check_feature_options
(before check_feature_options
, sometimes adding tools BUILD_PROJSYNC
to EXTRA_FEATURES
).
You propose another alternative, adding the setting to another variable, independent of check_feature_options
.
I dislike both approaches for the inconsistency. All other tools are handled by vcpkg_check_features
. vcpkg_check_features
doesn't only set FEATURE_OPTIONS
(functional effect) but also individual variables (side effect). I wanted to have the same behaviour for BUILD_PROJSYNC
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See #20147.
This situation cannot be handled in vcpkg_check_features
at present, we can only do so.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This situation can be handled in vcpkg_check_features
, but only in the proposed way: Changing the feature name.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well, please complete this PR and let my colleague review it further.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I will complete it when the pc file PR is merged (#20458). We need to carry transitive usage requirements for static linkage. That's why it is a draft.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rewritten.
Depends on #20480. |
Seems to need #21594 which in turn needs #21599 which needs review from @JackBoosY. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!
After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 80be868eb552a8d2f94cda5ee1ce94d49612ce12 -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/baseline.json b/versions/baseline.json
index c557c01..674bfc4 100644
--- a/versions/baseline.json
+++ b/versions/baseline.json
@@ -5401,7 +5401,7 @@
"port-version": 1
},
"proj4": {
- "baseline": "8.0.0",
+ "baseline": "8.1.1",
"port-version": 0
},
"prometheus-cpp": {
libcrypto from openssl needs user32.lib. This is not an issue with CMake which has implicit link libraries. But it is an isse with nmake when relying only on pkg-config.
Alternative A: Update libcrypto.pc. Rebuilds all dependencies of openssl. I tend towards B. It seems to more consistent overall behaviour in vcpkg. |
@dg0yt Put them into |
Something like |
To unblock the highly desired proj changes now, I implemented alternative C: Add user32.lib explicitly where needed. In the long run, I still prefer alternative B. But this would be a fundamental change. It would better go to a new port vcpkg-nmake instead of the currrent unversioned maintainer script. |
CI strangeness: On osx, it rebuilds some ports which should be cached and are not affected by the changes. From the logs: Build 1, 0f07f0f: Rebuilding readosm,
Build 2, d5bc878: Rebuiding freexl
Build 2 was started after completing build 1, the ABI hashes didn't change, and |
Thanks for the updates! |
What does your PR fix?
net
feature. It is enabled by default, following upstream.Network support (via libcurl) was bound to the
tools
feature but in fact it is independent.(I wonder if there is an established name for such a feature. Alternatives are "network" or "online".)
The key issue was properly exporting the dependencies for consumers (cmake config and pkgconfig).
Which triplets are supported/not supported? Have you updated the CI baseline?
unchanged
Does your PR follow the maintainer guide?
yes
If you have added/updated a port: Have you run
./vcpkg x-add-version --all
and committed the result?yes
Important behavioural change
The opt-in feature
tools
no longer implies network support.