Resolves https://github.com/microsoft/vcpkg/issues/37839
Reverts #37199
See https://www.openwall.com/lists/oss-security/2024/03/29/4
Note that the version database is unmodified, only the baseline is
changed.
Because vcpkg builds liblzma from cmake sources downloaded from github
and this backdoor required modifications only present in the release
tarballs, it is our belief that vcpkg customers are not affected by this
problem. However, we are reverting this version out of an abundance of
caution as the threat actor clearly has broad access to liblzma
infrastructure, and because we believe customers will start flagging
this package by version as being a problem.
The custom CMakeLists.txt in the port installs headers under `rply/` and
expects `#include <rply/rply.h>` correspondingly as the include.
However, the code samples in the RPly project use a plain `#include
"rply.h"` instead: https://w3.impa.br/~diego/software/rply/
This PR adds `include/rply/` to the `target_include_directories()` to
support both conventions.
The project exports only two distinctly-named headers (`rply.h` and
`rplyfile.h`) so the non-prefixed includes causing a collision somewhere
is unlikely.
Also added license info to vcpkg.json and a usage file.
This PR adds a patch from upstream that fixes C++20 support. [In C++20,
template parameters from the class template are no longer allowed in
constructors and destructors
declarations](https://eel.is/c++draft/diff.cpp17#class-2). The Qhull C++
headers have a few instances of these, and don't compile under compliant
C++20 (or later). Specifically, since version 11, GCC generates an error
diagnostic.
[While this has been fixed in the
upstream](https://github.com/qhull/qhull/pull/122), the slow Qhull
release cycle means it might be quite a while longer until a new
official release it available. It's already been a year and a half since
the fix, [and the next release is still in
alpha](https://github.com/qhull/qhull/wiki#qhull-81-alpha3-20230102)
with no clear timeline. As C++20 becomes more mainstream, I believe it's
important to ensure support for this library.
Recently when I was using vcpkg-qmake, I found that a function in the
`ports/vcpkg-qmake/vcpkg_qmake_configure.cmake` file was repeated:
be9eb66945/ports/vcpkg-qmake/vcpkg_qmake_configure.cmake (L143)
By running this line of code, we will configure the generated `qt.conf`
file. At the same time, if the
`${CURRENT_BUILDTREES_DIR}/${config_triplet}/` path does not exist, we
will also generate it.
Then we back up the environment variables and run the code
be9eb66945/ports/vcpkg-qmake/vcpkg_qmake_configure.cmake (L149)
to generate the existing path above.