-
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
[zstd] No debug postfix. No renaming of CMake config files. #22822
Conversation
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.
You have modified or added at least one vcpkg.json where a "license" field is missing.
If you feel able to do so, please consider adding a "license" field to the following files:
ports/blosc/vcpkg.json
ports/boost-iostreams/vcpkg.json
ports/elfutils/vcpkg.json
ports/libwandio/vcpkg.json
ports/qt5-base/vcpkg.json
Valid values for the license field are listed at https://spdx.org/licenses/
We should really consider patching out the |
PS this is a drive-by from testing gdal's coming cmake build system which only looks for |
This would probably also reduce the amount of patching from individual Find modules to zstd config. Where zstd config suffers from using different target names for static vs. shared. |
No. We are not in charge of upstream naming. Add a wrapper which does a
add an interface target (not ALIAS!) without the suffix which links to one of those depending on library linkage. You can probably use a genex which tests for the existence of one of the targets and use the other otherwise., |
My proposal to remove _static aims at two things:
I fully support the general policy.
There is no official CMake module so it would be a wrapper for what? The wrapper also doesn't help with autotools.
I have seen the genex, and it is fine. |
donwstream as to put up with every possibility upstream supports. If they don't they are wrong. But there are reason to have different naming... simply people want to have all variants in one and the same directory which is only possible if the names are different.
I am aware of the issues but as far as I remembered somebody renamed the variant to the non static variant. So I didn't bother. Wasn't I the one who left the comment about
Wondering if that support statement should really be
Downstream should use pkg-config !? (Instead of doing a
Ok then no wrapper just manually fixing every FindZSTD|Findzstd or providing our own version. I wish vcpkg would support vcpkg based modules instead of the wrapper. The main reason this isn't done because ras0219 says that some ports bomb
Doesn't have the same semantics as an IMPORTED target (for example you cannot promote an ALIAS to global). If you Wrap an |
Yes. You also wrote:
But actually the unexpected debug postfix created the the need for a wrapper. As does the
That's how I would patch. Generally, downstreams using autotools are really ambitiuous when it comes to MSVC support. Sidenote: Even Find modules from CMake use pkg-config to get a hint for the prefix. But instead of using all information, they do their own lookup with a limited set of names... Summary on
|
I think we should follow @Neumann-A suggestion since we have the policy that we shouldn't change the suffix which the upstream made. |
@ras0219-msft What is your opinion on removing I could put that to another PR, but when it is merged separately, it will force another major rebuild on users. |
FTR: The current state is ready for review, aligning the port with maintainer guidelines. |
In particular:
|
To summarize the current affairs as I see it:
Given all that, I see renaming the binary from Because downstream libraries SHOULD support shared linking of zstd, this should not create any new problems or additional patching requirements -- it's a strict win. Edit: The above is only addressing zlib_static -> zlib and doesn't talk about the debug suffix. Obviously the debug suffix is against policy, since upstream doesn't ever produce
? |
Finally, one other drive-by comment: in addition to the binary names, we definitely need an |
Naming is not inconsistent. It is just taking into account that you cannot have a import library and a static library in the same directory since both would be called |
This would be an Inventing a new unofficial target can be avoided @Neumann-A 's other proposal |
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.
You have modified or added at least one vcpkg.json where a "license" field is missing.
If you feel able to do so, please consider adding a "license" field to the following files:
ports/blosc/vcpkg.json
ports/boost-iostreams/vcpkg.json
ports/elfutils/vcpkg.json
ports/libwandio/vcpkg.json
ports/qt5-base/vcpkg.json
Valid values for the license field are listed at https://spdx.org/licenses/
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.
You have modified or added at least one vcpkg.json where a "license" field is missing.
If you feel able to do so, please consider adding a "license" field to the following files:
ports/blosc/vcpkg.json
ports/boost-iostreams/vcpkg.json
ports/elfutils/vcpkg.json
ports/libwandio/vcpkg.json
ports/qt5-base/vcpkg.json
Valid values for the license field are listed at https://spdx.org/licenses/
I personally support this modification. |
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.
You have modified or added at least one vcpkg.json where a "license" field is missing.
If you feel able to do so, please consider adding a "license" field to the following files:
ports/blosc/vcpkg.json
ports/boost-iostreams/vcpkg.json
ports/elfutils/vcpkg.json
ports/libwandio/vcpkg.json
ports/qt5-base/vcpkg.json
Valid values for the license field can be found in the documentation
Merge conflict resolved. Time for vcpkg team to move. |
Ping @ras0219-msft |
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.
You have modified or added at least one vcpkg.json where a "license" field is missing.
If you feel able to do so, please consider adding a "license" field to the following files:
ports/blosc/vcpkg.json
ports/boost-iostreams/vcpkg.json
ports/elfutils/vcpkg.json
ports/libwandio/vcpkg.json
ports/qt5-base/vcpkg.json
Valid values for the license field can be found in the documentation
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.
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.
You have modified or added at least one vcpkg.json where a "license" field is missing.
If you feel able to do so, please consider adding a "license" field to the following files:
ports/blosc/vcpkg.json
ports/boost-iostreams/vcpkg.json
ports/elfutils/vcpkg.json
ports/libwandio/vcpkg.json
ports/qt5-base/vcpkg.json
Valid values for the license field can be found in the documentation
After inspecting all references to I've pushed an additional commit that does two things:
|
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.
You have modified or added at least one vcpkg.json where a "license" field is missing.
If you feel able to do so, please consider adding a "license" field to the following files:
ports/blosc/vcpkg.json
ports/boost-iostreams/vcpkg.json
ports/elfutils/vcpkg.json
ports/libwandio/vcpkg.json
ports/qt5-base/vcpkg.json
Valid values for the license field can be found in the documentation
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.
LGTM if CI passes
What does your PR fix?
Restore upstream's original filenames.
Downstreams are unaware of vcpkg's debug postfix. That's why there are some patches.
Unfortunately, downstreams are also unaware of zstd's
_static
postfix which is only used on Windows, when building with CMake. This PR remove that postfix, too.Which triplets are supported/not supported? Have you updated the CI baseline?
unchanged, no
Does your PR follow the maintainer guide?
Yes. The port didn't.
If you have added/updated a port: Have you run
./vcpkg x-add-version --all
and committed the result?Yes.