[Openssl] update to 3.0.1

Describe the pull request
This PR adds openssl version 3.0.1. The consensus was to create a new port for version 3 (see linked issue).

What does your PR fix?
Fixes #20031

Which triplets are supported/not supported? Have you updated the CI baseline?
No

Does your PR follow the maintainer guide?

Yes

Thanks for this PR!
Please change this to upgrade the existing openssl port in place; see the discussion as part of https://github.com/microsoft/vcpkg/issues/20031.

Seems like the URL to "https://www.openssl.org/source/3.0.1/openssl-${OPENSSL_VERSION}.tar.gz" is not stable as it will change to "https://www.openssl.org/source/OLD/3.0.1/openssl-${OPENSSL_VERSION}.tar.gz" if additional versions will be released. Should I remove this URL or should I keep it for now?

What did I do wrong?

I was able to fix all CI issues except for those on UWP. They still fail with the following error:
@ras0219-msft What are these logs trying to tell me and how to fix it?
2022-02-01T15:23:58.8318113Z -- Downloading https://www.openssl.org/source/openssl-3.0.1.tar.gz -> openssl-3.0.1.tar.gz...
2022-02-01T15:23:59.1837231Z -- Downloading https://strawberryperl.com/download/<IP_ADDRESS>/strawberry-perl-<IP_ADDRESS>-32bit.zip -> strawberry-perl-<IP_ADDRESS>-32bit.zip...
2022-02-01T15:24:04.6547465Z -- Downloading https://download.qt.io/official_releases/jom/jom_1_1_3.zip;https://mirrors.ocf.berkeley.edu/qt/official_releases/jom/jom_1_1_3.zip -> jom_1_1_3.zip...
2022-02-01T15:24:05.0570883Z -- Extracting source D:/downloads/openssl-3.0.1.tar.gz
2022-02-01T15:24:05.7822147Z -- Applying patch uwp/EnableUWPSupport.patch
2022-02-01T15:24:05.7975604Z CMake Error at scripts/cmake/z_vcpkg_apply_patches.cmake:61 (message):
2022-02-01T15:24:05.7981793Z   Applying patch failed: Checking patch Configurations/10-main.conf...
2022-02-01T15:24:05.7984635Z
2022-02-01T15:24:05.7990829Z   error: while searching for:
2022-02-01T15:24:05.7993704Z
2022-02-01T15:24:05.7999688Z       },
2022-02-01T15:24:05.8005603Z       "VC-WIN64I" => {
2022-02-01T15:24:05.8011562Z           inherit_from     => [ "VC-WIN64-common", asm("ia64_asm"),
2022-02-01T15:24:05.8017453Z                                 sub { $disabled{shared} ? () : "ia64_uplink" } ],
2022-02-01T15:24:05.8023290Z           AS               => "ias",
2022-02-01T15:24:05.8029181Z           ASFLAGS          => "-d debug",
2022-02-01T15:24:05.8035061Z           asoutflag        => "-o ",
2022-02-01T15:24:05.8037872Z
2022-02-01T15:24:05.8043848Z
2022-02-01T15:24:05.8046698Z
2022-02-01T15:24:05.8052771Z   error: patch failed: Configurations/10-main.conf:1287
2022-02-01T15:24:05.8055497Z
2022-02-01T15:24:05.8061636Z   error: Configurations/10-main.conf: patch does not apply
2022-02-01T15:24:05.8064379Z
2022-02-01T15:24:05.8070487Z   Checking patch Configurations/50-win-onecore.conf...
2022-02-01T15:24:05.8073267Z
2022-02-01T15:24:05.8079282Z   error: while searching for:
2022-02-01T15:24:05.8082067Z
2022-02-01T15:24:05.8088082Z   # Windows OneCore targets.
2022-02-01T15:24:05.8090971Z
2022-02-01T15:24:05.8096984Z   #
2022-02-01T15:24:05.8099830Z
2022-02-01T15:24:05.8105917Z   # OneCore is new API stability "contract" that transcends Desktop, IoT and
2022-02-01T15:24:05.8108618Z
2022-02-01T15:24:05.8114566Z
2022-02-01T15:24:05.8117391Z
2022-02-01T15:24:05.8123956Z   error: patch failed: Configurations/50-win-onecore.conf:1
2022-02-01T15:24:05.8126694Z
2022-02-01T15:24:05.8132755Z   error: Configurations/50-win-onecore.conf: patch does not apply
2022-02-01T15:24:05.8135492Z
2022-02-01T15:24:05.8141566Z   Checking patch Configure...
2022-02-01T15:24:05.8144443Z
2022-02-01T15:24:05.8150462Z   warning: Configure has type 100644, expected 100755
2022-02-01T15:24:05.8153213Z
2022-02-01T15:24:05.8159178Z   error: while searching for:
2022-02-01T15:24:05.8161949Z
2022-02-01T15:24:05.8167926Z       "ubsan",
2022-02-01T15:24:05.8173812Z       "ui-console",
2022-02-01T15:24:05.8179713Z       "unit-test",
2022-02-01T15:24:05.8186156Z       "whirlpool",
2022-02-01T15:24:05.8192132Z       "weak-ssl-ciphers",
2022-02-01T15:24:05.8197642Z       "zlib",
2022-02-01T15:24:05.8200387Z
2022-02-01T15:24:05.8206359Z
2022-02-01T15:24:05.8209188Z
2022-02-01T15:24:05.8215256Z   error: patch failed: Configure:407
2022-02-01T15:24:05.8218006Z
2022-02-01T15:24:05.8224061Z   error: Configure: patch does not apply
2022-02-01T15:24:05.8226833Z
2022-02-01T15:24:05.8232853Z   Checking patch INSTALL...
2022-02-01T15:24:05.8235659Z
2022-02-01T15:24:05.8241701Z   error: INSTALL: No such file or directory
2022-02-01T15:24:05.8244485Z
2022-02-01T15:24:05.8251637Z Call Stack (most recent call first):
2022-02-01T15:24:05.8257517Z   scripts/cmake/vcpkg_extract_source_archive.cmake:230 (z_vcpkg_apply_patches)
2022-02-01T15:24:05.8263512Z   scripts/cmake/vcpkg_extract_source_archive_ex.cmake:32 (vcpkg_extract_source_archive)
2022-02-01T15:24:05.8269430Z   ports/openssl/uwp/portfile.cmake:10 (vcpkg_extract_source_archive_ex)
2022-02-01T15:24:05.8275348Z   ports/openssl/portfile.cmake:18 (include)
2022-02-01T15:24:05.8281336Z   scripts/ports.cmake:145 (include)
2022-02-01T15:24:05.8284114Z
2022-02-01T15:24:05.8287134Z
2022-02-01T15:24:06.0252171Z Error: Building package openssl:arm-uwp failed with: BUILD_FAILED```

Yes, unfortunately openssl is widely used so any change tends to rebuild the world so CI will unfortunately be slow.
This log is indicating that the patch for UWP support1 is no longer able to apply to the source code because it changed too much for the tools to match. I'll take a look at the openssl source and come back with next steps.

It looks like the patch may no longer be required, as openssl has official guidance1 for building on UWP. Could you try removing the patch and applying the build suggestions?

@ras0219-msft Build fails for ~10 packages. Is it sufficient to change their openssl version to the previous one?
Do I need to enable the UWP workload in Visual Studio to test UWP builds on my dev machine?

UWP builds working fine!

@JonLiu1993
Some packages that depend on openssl fail to build with version 3.0.1. I tried to make those libraries use a previous version of openssl (following this guide). When I tested it on my local machine, vcpkg installs always the latest version (3.0.1).
Here an example manifest with boinc:
{
  "name": "boinc",
  "version": "7.18.1",
  "port-version": 4,
  "description": "Open-source software for volunteer computing and grid computing.",
  "homepage": "https://boinc.berkeley.edu/",
  "supports": "!(windows & arm) & !uwp",
  "dependencies": [
    "openssl",
    {
      "name": "vcpkg-cmake",
      "host": true
    },
    {
      "name": "vcpkg-cmake-config",
      "host": true
    }
  ],
  "overrides": [
    {
      "name": "openssl",
      "version": "1.1.1"
    }
  ]
}

I also tried other versions like 1.1.1.m
Any solution?

@JonLiu1993 Some packages that depend on openssl fail to build with version 3.0.1. I tried to make those libraries use a previous version of openssl
[...]
Any solution?

Version overrides of that form are only applied in an end-user manifest; in a given installed tree only one version of a port may be selected, so for our curated catalog the downstream ports must be fixed.
(This is a C++ rule not a vcpkg rule since different versions of the same thing are generally not link compatible with one another)

I can fix this for boinc since I'm a maintainer of it (we basically have OpenSSL3 support on our master but it's just not ready for release right now) and provide a patch to the port

Version overrides of that form are only applied in an end-user manifest; in a given installed tree only one version of a port may be selected, so for our curated catalog the downstream ports must be fixed.

@BillyONeal
If I understand you correctly, we need to wait until all downstream ports are compatible with openssl 3, and there is no way to fix those ports here. I think in this case you can label this PR "depends:upstream-changes".
Additionally, can you (or someone else) review this PR, so that merging will be faster if all compatibility issues are fixed?

@BillyONeal If I understand you correctly, we need to wait until all downstream ports are compatible with openssl 3

Yes.

there is no way to fix those ports here.

It is likely reasonable to just patch the downstream dependencies. If they're "rename this thing" kind of complexity we can just do that, if it's more "rewrite this whole component" level changes we probably need to wait for upstreams. It looks like the last major version upgrade for openssl was https://github.com/microsoft/vcpkg/pull/8566/

I think in this case you can label this PR "depends:upstream-changes". Additionally, can you (or someone else) review this PR, so that merging will be faster if all compatibility issues are fixed?

The changes seem OK to me modulo that one nitpick once downstreams are fixed.

Fix for [boinc] port: https://github.com/microsoft/vcpkg/pull/22945

@BillyONeal what about making version 1.1.1 a feature and make the ports that don't support version 3 use that feature?

what about making version 1.1.1 a feature and make the ports that don't support version 3 use that feature?

This doesn't work. It breaks versioning in user projects (manifest mode). And it breaks CI where there is only one set of features per package tested.

Glad there is an in-progress work.
https://github.com/microsoft/vcpkg/pull/22878#issuecomment-1028779172
I had to close #20428 because of libmysql...
Honestly, I don't think vcpkg openssl can be updated to 3.0 version unless there are consumer ports that use the removed API.

Glad there is an in-progress work.
#22878 (comment) I had to close #20428 because of libmysql...

@luncliff
The problem with libmysql seems to be simple: It uses removed FIPS functions of OpenSSL:
D:\buildtrees\libmysql\src\a9fb86d137-188c26847b.clean\vio\viosslfactories.cc(500): error C3861: 'FIPS_mode': identifier not found
D:\buildtrees\libmysql\src\a9fb86d137-188c26847b.clean\vio\viosslfactories.cc(505): error C3861: 'FIPS_mode_set': identifier not found
D:\buildtrees\libmysql\src\a9fb86d137-188c26847b.clean\vio\viosslfactories.cc(513): error C3861: 'FIPS_mode_set': identifier not found
D:\buildtrees\libmysql\src\a9fb86d137-188c26847b.clean\vio\viosslfactories.cc(527): error C3861: 'FIPS_mode': identifier not found

They need to be replaced with EVP_default_properties_is_fips_enabled and EVP_default_properties_enable_fips.
This could be done via a patch

It turns out that I need to implement openssl-1 in a separate PR.

@JonLiu1993 librabbitmq fails on UWP because deprecation warnings are treated as errors. What is the best way to treat them just as warnings?

@Thomas1664
For uwp, msvc is stricter for code checking. So you have the following three ways:

Add /wd${WARNING_NUM} to mask these problems.
Make a patch to fix these problems.
Add !uwp to the support field in vcpkg.json.

@Thomas1664 For uwp, msvc is stricter for code checking. So you have the following three ways:

Add /wd${WARNING_NUM} to mask these problems.

@JackBoosY How to add /wd${WARNING_NUM}? Do I need to do it in a patch or is there a way to do it in portfile.cmake?

@JackBoosY How to add /wd${WARNING_NUM}? Do I need to do it in a patch or is there a way to do it in portfile.cmake?

Unfortunately last I heard OpenSSL had its own custom perl build system thing so you may need to do patching. It's a compiler flag, so if they have a way to pass those in then it would be doable in portfile.cmake.

Unfortunately last I heard OpenSSL had its own custom perl build system thing so you may need to do patching. It's a compiler flag, so if they have a way to pass those in then it would be doable in portfile.cmake.

@BillyONeal My intention was to set the flag in ports that depend on OpenSSL. E.g. in #23241 I tried to set CMAKE_C_FLAGS_DEBUG in the portfile.cmake of libfido2 right after vcpkg_cmake_configure but it didn't work. I had to use a patch. Is this intended/ normal or is there a way of doing this inside portfile.cmake as well?

@BillyONeal My intention was to set the flag in ports that depend on OpenSSL.

Sorry, there's probably a nuance I missed here. Is the issue that the new OpenSSL headers trigger warnings that occur in the builds of other ports rather than OpenSSL itself?
In that case it seems best to try to suppress the warning, if spurious, in the header itself so that it also suppresses it for all customers, including those who aren't other ports.

E.g. in #23241 I tried to set CMAKE_C_FLAGS_DEBUG in the portfile.cmake of libfido2 right after vcpkg_cmake_configure but it didn't work. I had to use a patch. Is this intended/ normal or is there a way of doing this inside portfile.cmake as well?

Right, there is no direct connection between variables in portfile.cmake and variables in the build systems invoked from there unless such connections are made. For example:
https://github.com/microsoft/vcpkg/blob/2b84a6a5889bad2d230acaf41391bc579cd20f81/ports/vcpkg-cmake/vcpkg_cmake_configure.cmake#L304-L333
collects variables which are passed on the command line at:
https://github.com/microsoft/vcpkg/blob/2b84a6a5889bad2d230acaf41391bc579cd20f81/ports/vcpkg-cmake/vcpkg_cmake_configure.cmake#L444-L454
You would need to add extra flags to affect the command line to the call to vcpkg_cmake_configure itself.

Sorry, there's probably a nuance I missed here. Is the issue that the new OpenSSL headers trigger warnings that occur in the builds of other ports rather than OpenSSL itself?

Yes

In that case it seems best to try to suppress the warning, if spurious, in the header itself so that it also suppresses it for all customers, including those who aren't other ports.

I don't know if these warnings are in fact "spurious". The warnings refer to functions that are in fact deprecated and people shouldn't use them. But these functions still work and there is no plan to remove them.
Of course it is less work to disable those warnings inside the header that is responsible for it and it makes sense because consumers of other ports that use OpenSSL can't do anything about it. On the other hand, end users don't realize that they are using deprecated functions.
The alternative is to patch every port that uses OpenSSL to disable deprecation warnings.
What do you consider the better solution?

I don't know if these warnings are in fact "spurious". The warnings refer to functions that are in fact deprecated and people shouldn't use them. But these functions still work and there is no plan to remove them.

Ah, and they are deprecated by OpenSSL?

Ah, and they are deprecated by OpenSSL?

Yes

Ah, in that case I think patching downstream customers as you were doing was right. (Sorry, I'm so used to 4996 being emitted by people calling strcpy I've become blind to "oh yeah, other people can use [[deprecated]])

Still waiting for comments on the concern I raised in the issue almost a month ago. It will be unfortunate if vcpkg breaks us and we have to revert to manual dependency management.

Still waiting for comments on the concern I raised in the issue almost a month ago. It will be unfortunate if vcpkg breaks us and we have to revert to manual dependency management.

@Hoikas PR #23223 adds port openssl-1.

Please consider merge #23223 changes into this PR.

The vcpkg maintainers talked about the warning situation today with the following results:

We would like to know if the warning situation only happens for MSVC because UWP is passing /WX (warnings as errors) or something similar, or if this also affects other compilers like gcc?
We agree targeted suppression (via pragma warning in headers or /wd4996 in sources) in the downstream ports is the correct behavior.

Still waiting for comments on the concern I raised in the issue almost a month ago. It will be unfortunate if vcpkg breaks us and we have to revert to manual dependency management.

The version mechanism intends to have the capability to support this: we create another branch and add ports we want there, and make them appear in the version database in master without ever introducing the older version itself into master. You'll need a manifest with a version override to get it and we won't be validating all downstreams like we do for the primary catalog but it should enable you to continue.
Alternately you can use or we can create a separate registry for this.
Note: we observe that OpenSSL 1.x goes out of support at the end of 2023 so we encourage you to upgrade.

On OSX no port fails because of deprecation warnings as errors, they all have real errors.
There are some deprecation warnings on Linux as well, but they aren't treated as errors and are not the main cause for a build failure because there are other actual errors.
To summarize: the problem on MSVC platforms is much bigger than on Linux although 2 ports treat deprecation warnings as errors on Linux. 1 port has only deprecation warnings.
Exampels:
azure-c-shared-utility:
/mnt/vcpkg-ci/buildtrees/azure-c-shared-utility/src/38163cefc7-1f7ff84507.clean/adapters/x509_openssl.c:140:5: warning: ‘EVP_PKEY_get1_RSA’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
/mnt/vcpkg-ci/buildtrees/azure-c-shared-utility/src/38163cefc7-1f7ff84507.clean/adapters/x509_openssl.c:150:9: warning: ‘SSL_CTX_use_RSAPrivateKey’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
[...]

But open62541 treats (deprecation) warnings as errors on all platforms. Additionally, OpenSSL 3 introduces real errors:
/mnt/vcpkg-ci/buildtrees/open62541/x64-linux-dbg/open62541.c:58592:5: error: ‘RSA_size’ is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations]
/mnt/vcpkg-ci/buildtrees/open62541/x64-linux-dbg/open62541.c:58663:9: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
[...]

The reason why qpid-proton fails on Linux are exclusively OpenSSL deprecation warnings as errors:
/mnt/vcpkg-ci/buildtrees/qpid-proton/src/a55d0f5f42-727c185a76.clean/c/src/ssl/openssl.c:548:5: error: ‘DH_free’ is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations]
[...]

@BillyONeal Is the vcpkg team OK with openssl-1 as an intermediate port for backward compatibility?

libmysql needs to be patched because of conflicts between openssl and openssl-1

@BillyONeal Is the vcpkg team OK with openssl-1 as an intermediate port for backward compatibility?

I don't see why we would need to do that now that we have version override support. The different openssl versions can't be used together so the curated catalog has to pick one.

I don't see why we would need to do that now that we have version override support. The different openssl versions can't be used together so the curated catalog has to pick one.

Does that mean that OpenSSL 3 can't be merged into master until all ports support it?

I don't see why we would need to do that now that we have version override support. The different openssl versions can't be used together so the curated catalog has to pick one.

Does that mean that OpenSSL 3 can't be merged into master until all ports support it?

To a high approximation, yes. If something in the "cone of destruction" is now totally unmaintained we may not hold the update for that but making sure downstreams work is standard operating procedure.

@BillyONeal 2 more questions:
How to disable C4996 on Linux as well?
This OpenSSL 3 port is missing the file include/openssl/applink.c which is currently needed by at least 1 port. I posted an issue upstream. They suggest to apply this patch on FindOpenSSL.cmake. Is this a possible solution for vcpkg and if so how to apply this patch? As a normal port patch?

To a high approximation, yes. If something in the "cone of destruction" is now totally unmaintained we may not hold the update for that but making sure downstreams work is standard operating procedure.

Looking at the latest CI run in #23223 I have to agree with you. I suspect it is related to azure-c-shared-utility. There might be a few ports that don't introduce conflicts but in the long term if some port introduces a dependence on a port that depends on openssl-1 things will break - not in CI because of CI baseline. On the other hand, it might turn out that bigger or breaking changes need to be made to a port to support OpenSSL 3. In this case there is no other choice than using openssl-1.

How to disable C4996 on Linux as well?

I'm not sure what this means, that's not a thing on Linux. (C4996 is an MSVC++ error code) I know the other compilers have mechanisms to suppress similar warnings but I've not done a lot of that myself recently to be authoritative here. (As in, anything I saw will be worse than "how do I suppress warnings gcc" google queries)

I posted an issue https://github.com/openssl/openssl/issues/17767#issue-1149136981. They suggest to apply this patch on FindOpenSSL.cmake.

IMO we should wait and see what Kitware does with that before proceeding.

Is this a possible solution for vcpkg and if so how to apply this patch?

Not directly. We do have a mechanism to replace builtin find handlers (vcpkg_cmake_wrapper) but that's a sledgehammer solution: we would have to copy the find module out of a cmake, apply the patch, then check the whole thing in, which is really not business we want to be in if we can help it.

On the other hand, it might turn out that bigger or breaking changes need to be made to a port to support OpenSSL 3. In this case there is no other choice than using openssl-1.

openssl-1 is not a choice; it breaks the "all ports must be installable together" rule. (Unless you're saying there are no header/library/symbol names shared between OpenSSL 1 and 3)
That said, I don't believe taking this update is a massively high priority thing. We have time for upstreams to be notified of problems and take action given that OpenSSL 1 doesn't go out of support until the end of 2023.

@JackBoosY @JonLiu1993 @BillyONeal
A quick update:
I could fix most ports. Only 3 ports remain broken:
azure-c-shared-utility on x64-linux:
Build fails with the following error:
FAILED: CMakeFiles/aziotsharedutil.dir/adapters/x509_openssl.c.o
/usr/bin/cc -DARCHITECTURE_x86_64=1 -DCURL_STATICLIB -I/mnt/vcpkg-ci/buildtrees/azure-c-shared-utility/src/38163cefc7-1f7ff84507.clean/inc -I/mnt/vcpkg-ci/buildtrees/azure-c-shared-utility/src/38163cefc7-1f7ff84507.clean/pal/linux -I/mnt/vcpkg-ci/installed/x64-linux/share/azure_macro_utils_c/include -isystem /mnt/vcpkg-ci/installed/x64-linux/include -D_POSIX_C_SOURCE=200112L -fPIC -Wall -Wextra -Wformat=2 -Wformat-security -DUSE_OPENSSL -Wno-unused-variable -Wno-missing-braces -Wno-missing-field-initializers -Wno-format-nonliteral -g -fPIC -std=gnu99 -MD -MT CMakeFiles/aziotsharedutil.dir/adapters/x509_openssl.c.o -MF CMakeFiles/aziotsharedutil.dir/adapters/x509_openssl.c.o.d -o CMakeFiles/aziotsharedutil.dir/adapters/x509_openssl.c.o -c /mnt/vcpkg-ci/buildtrees/azure-c-shared-utility/src/38163cefc7-1f7ff84507.clean/adapters/x509_openssl.c
/mnt/vcpkg-ci/buildtrees/azure-c-shared-utility/src/38163cefc7-1f7ff84507.clean/adapters/x509_openssl.c: In function ‘load_certificate_chain’:
/mnt/vcpkg-ci/buildtrees/azure-c-shared-utility/src/38163cefc7-1f7ff84507.clean/adapters/x509_openssl.c:81:28: error: dereferencing pointer to incomplete type ‘SSL_CTX’ {aka ‘struct ssl_ctx_st’}
   81 |                 if (ssl_ctx->extra_certs != NULL)
      |                            ^~

I can't make it use openssl-1 because of conflicts with openssl.
libmysql
Errors will be fixed by updating to the latest version 8.0.28. I already filed PR #23380 but I need help with a patch.
open62541
C2220 + C4090 (warnings about different const qualifiers as error)
Can I disable this warning as well?
luasec
luasec will be the only port that uses openssl-1. There is no port that depends on luasec. It's impossible to fix until CMake 3.23 is released because the file openssl/include/applink.c is missing. See this issue: https://github.com/openssl/openssl/issues/17767

It's impossible to fix until CMake 3.23

vcpkg-cmake-wrapper.cmake ?

vcpkg-cmake-wrapper.cmake ?

@Neumann-A
I added applink to vcpkg-cmake-wrapper.cmake.in. The problem is that applink.c isn't copied properly to packages directory.

Please get failure logs in https://dev.azure.com/vcpkg/public/_build/results?buildId=68371&view=artifacts&pathAsName=false&type=publishedArtifacts

Please get failure logs in https://dev.azure.com/vcpkg/public/_build/results?buildId=68371&view=artifacts&pathAsName=false&type=publishedArtifacts

@JackBoosY Why? I know why those ports are failing and that onnx fails is not my fault, see PR #23411

@Thomas1664 You are right, sorry for the disturb.

The problem is that applink.c isn't copied properly to packages directory.

In the OpenSSL port or where?

azure-c-shared-utility on x64-linux:

either an include is missing or the struct SSL_CTX cannot be accessed directly anymore and a function call to retrieve the extra certs is necessary.

Can I disable this warning as well?

probably. Does the CMakeLists.txt somewhere do /WX or something like that? If yes, just patch it out.

In the OpenSSL port or where?

@Neumann-A
It tuned out that the file is copied properly. The only difference between the ports openssl and openssl-1 is that openssl has a DLL called legacy. Looking at the diff, it is obvious that the CMake bug is the problem.

@Thomas1664 that might be the case but you can simply add the code into the wrapper?

@Thomas1664 that might be the case but you can simply add the code into the wrapper?

@Neumann-A Do you suggest to copy everything from the if statement to vcpkg-cmake-wrapper.cmake.in?
if("${OPENSSL_VERSION_MAJOR}.${OPENSSL_VERSION_MINOR}.${OPENSSL_VERSION_FIX}" VERSION_GREATER_EQUAL "0.9.8")

Do you suggest to copy everything from ...

yes. Since users might not use newest CMake the wrapper has to fix it.

@Neumann-A It turned out that the typo in FindOpenSSL.cmake has no effect. Instead, some variables were unset. I successfully fixed this issue!

@JackBoosY @JonLiu1993 @BillyONeal @dg0yt
Finally, this PR is ready for review. All ports are using port openssl now.
No port uses openssl-1. Should I remove it?
CI should pass for all triplets now.

I made a few changes but didn't commit them to this branch because the new CI issues might cause CI runs to fail. Therefore I filed 3 PRs on my fork:
https://github.com/Thomas1664/vcpkg/pull/4 (Quotes, etc)
https://github.com/Thomas1664/vcpkg/pull/5 (Remove openssl-1)
https://github.com/Thomas1664/vcpkg/pull/3 (Rename openssl-1 to openssl1 as proposed here)
CC: @JackBoosY @JonLiu1993 @BillyONeal
Please review soon.

@JackBoosY Thanks for your review.
Can you review this big PR as well?

Some ports fail because of Python issues introduced by the latest tool update. See #23431 and #23478.
Unrelated to this. Yesterday, all CIs were green.

introduced by the latest tool

More like runner update which broke msiexec. Has nothing to do with the tool itself.

Depends on https://github.com/microsoft/vcpkg/pull/23525.

Depends on #23581

Depends on #23589

This looks like a similar failure we saw when deploying VS 2022. Hmmmmm.... @strega-nil did you see that?

/azp run

This looks like a similar failure we saw when deploying VS 2022. Hmmmmm.... @strega-nil did you see that?

Agreed:
cmd.exe /C "cd . && D:\downloads\tools\cmake-3.22.2-windows\cmake-3.22.2-windows-i386\bin\cmake.exe -E vs_link_exe --intdir=src\tools\dumpqmltypes\CMakeFiles\appman-dumpqmltypes.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100190~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100190~1.0\x64\mt.exe --manifests  -- C:\PROGRA~1\MICROS~1\2022\ENTERP~1\VC\Tools\MSVC\1431~1.311\bin\Hostx64\x64\link.exe  @CMakeFiles\appman-dumpqmltypes.rsp  /out:bin\appman-dumpqmltypes.exe /implib:src\tools\dumpqmltypes\appman-dumpqmltypes.lib /pdb:bin\appman-dumpqmltypes.pdb /version:0.0 /machine:x64 /nologo    /debug /INCREMENTAL /subsystem:console   -DYNAMICBASE -NXCOMPAT  && cmd.exe /C "cd /D D:\buildtrees\qtapplicationmanager\x64-windows-dbg\src\tools\dumpqmltypes && D:\downloads\tools\cmake-3.22.2-windows\cmake-3.22.2-windows-i386\bin\cmake.exe -E env "PATH=D:\buildtrees\qtapplicationmanager\x64-windows-dbg\src\tools\dumpqmltypes\\;D:\packages\qtapplicationmanager_x64-windows\debug\bin\\;D:\installed\x64-windows\bin\\;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.31.31103\bin\HostX64\x64\;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\VC\VCPackages\;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TestWindow\;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\bin\Roslyn\;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Team Tools\Performance Tools\x64\;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Team Tools\Performance Tools\;C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\\;C:\Program Files (x86)\HTML Help Workshop\;C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\\x64\;C:\Program Files (x86)\Windows Kits\10\bin\\x64\;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\\MSBuild\Current\Bin\amd64\;C:\Windows\Microsoft.NET\Framework64\v4.0.30319\;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\\;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\\;C:\Program Files\PowerShell\7\;C:\Windows\system32\;C:\Windows\;C:\Windows\system32\Wbem\;C:\Windows\system32\WindowsPowerShell\v1.0\\;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\Llvm\x64\bin\;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\VC\Linux\bin\ConnectionManagerExe\;D:/downloads/tools/perl/<IP_ADDRESS>/perl/bin\;D:/downloads/tools/python/python-3.10.2-x64\;D:/downloads/tools/ninja/1.10.2-windows\;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.31.31103\bin\HostX64\x64;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\VC\VCPackages;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TestWindow;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\bin\Roslyn;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Team Tools\Performance Tools\x64;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Team Tools\Performance Tools;C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\;C:\Program Files (x86)\HTML Help Workshop;C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\\x64;C:\Program Files (x86)\Windows Kits\10\bin\\x64;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\\MSBuild\Current\Bin\amd64;C:\Windows\Microsoft.NET\Framework64\v4.0.30319;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\;C:\Program Files\PowerShell\7;C:\Windows\system32;C:\Windows;C:\Windows\system32\Wbem;C:\Windows\system32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\Llvm\x64\bin;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\VC\Linux\bin\ConnectionManagerExe;D:/downloads/tools/perl/<IP_ADDRESS>/perl/bin;D:/downloads/tools/python/python-3.10.2-x64;D:/downloads/tools/ninja/1.10.2-windows" D:/buildtrees/qtapplicationmanager/x64-windows-dbg/bin/appman-dumpqmltypes D:/buildtrees/qtapplicationmanager/x64-windows-dbg/src/tools/dumpqmltypes/qmltypes""
Exit code 0xc0000135

Missing dependency dll?

Please wait for other PR to fix the qt component regression.

Depends on #23726
@BillyONeal I hope you continue review although the PR depends on a different PR
@JackBoosY Why did you add "requires:author-response"? @BillyONeal wants to discuss this with the team on Thursday. I think the label "requires:vcpkg-team-review" should be added instead.

Depends on #23729

@BillyONeal Are you done with your review or do you want to have another look?

@Thomas1664 Can you squash the commits?

@Thomas1664 Can you squash the commits?

This will be done automatically by git policy during PR merge

@Thomas1664 Can you squash the commits?

This will be done automatically by git policy during PR merge

I disagree. Merge don't squash your commits, it leave it there in the main branch, also it keep it dates and order. That why the git graph intend to be complicated.
There is an option to do squash merge, but I doubt it will merge like this. I think this option should be the only option for merge.
But until then, I can ask nicely to squash commits on a large amount of commits in important pr/libraries

@talregev, I'm sure for this repo option 2 is selected:

Because as you can see on the log, there is no merge commits at all, and if you look at any PR that contains more than 1 commit, you will never find those commits on the master, so they are exactly squashed and then merged with fast-forward option on.

@talregev, I'm sure for this repo option 2 is selected:  Because as you can see on the log, there is no merge commits at all, and if you look at any PR that contains more than 1 commit, you will never find those commits on the master, so they are exactly squashed and then merged with fast-forward option on.

Why you don't enable this option on boinc by default?

Why you don't enable this option on boinc by default?

This is a wrong place for such discussion

@Thomas1664 , Looks the CI test failed on x64-windows triplet, this is error log, please take a look:
config-x64-windows-out.log

@Thomas1664 , Looks the CI test failed on x64-windows triplet, this is error log, please take a look: config-x64-windows-out.log

It's a baseline issue.
cc @Neumann-A

Can you please resolve the file conflicts since the qtinterfaceframework regression was fixed?
Thanks.

I will take a look at the quickfix regressions.

I will take a look at the quickfix regressions. Is the regressions related to this changes?

The quickfix regressions are related to a baseline "fail" bug in vcpkg tool since the last update, cf. https://github.com/microsoft/vcpkg/issues/23862, https://github.com/microsoft/vcpkg/pull/23886.
And @Thomas1664 offers a PR to remove quickfix "fail" from the baseline, #23878.

@Thomas1664 I just want to know if that's intentional, then I'll merge

@Thomas1664 I just want to know if that's intentional, then I'll merge

@strega-nil-ms this should be 2. Should I make the commit or will you fix this on merge?

I'll fix it.

Thanks!

Damn, there is a bug in this port that fails Release-only build:
 CMake Error at ports/openssl/windows/portfile.cmake:142 (file):
           file RENAME failed to rename

             D:/a/boinc/boinc/3rdParty/Windows/vcpkg/packages/openssl_x64-windows-static/debug/lib/ossl-modules/legacy.dll

           to

             D:/a/boinc/boinc/3rdParty/Windows/vcpkg/packages/openssl_x64-windows-static/debug/bin/legacy.dll

           because: The system cannot find the path specified.

Damn, there is a bug in this port that fails Release-only build:
 CMake Error at ports/openssl/windows/portfile.cmake:142 (file):
           file RENAME failed to rename

             D:/a/boinc/boinc/3rdParty/Windows/vcpkg/packages/openssl_x64-windows-static/debug/lib/ossl-modules/legacy.dll

           to

             D:/a/boinc/boinc/3rdParty/Windows/vcpkg/packages/openssl_x64-windows-static/debug/bin/legacy.dll

           because: The system cannot find the path specified.

Yes, this is impacting also all our internal pipelines as a regression...


Repeat a String Repeat a String - Portuguese

Solution added to .md

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

Closes #XXXXX

Thanks!


Add a create issue and pull request template

I'll love to add on a create issue And pull request template if assigned to me

i assigned it to you @Onyelaudochukwuka


Add API Route to Get Likes/Dislikes of an Article with Pagination

GitHub Issue: Add API Route to Get Likes/Dislikes of an Article with Pagination
Objective: Develop an API route that allows users to retrieve the likes or dislikes of a specific article with pagination in our application.
Description:
Tasks:

Create API Route for Getting Likes/Dislikes of an Article:

Develop a new API route, e.g., /api/user/article/:id/likes/:status/:size/:cursor, to enable users to fetch and return the likes or dislikes of a specific article with pagination.
Implement the necessary logic to retrieve the likes or dislikes based on the article ID, status (e.g., "liked" or "disliked"), page size (size), and cursor for pagination.

Validation:

Implement validation to ensure that the provided article ID, status, size, and cursor parameters are valid.
Verify that the article with the provided ID exists.

Database Interaction:

Integrate the API route with Prisma or our chosen database library to fetch a paginated list of likes or dislikes for the specified article.

Pagination:

Implement pagination to handle large datasets of likes or dislikes effectively. Allow users to specify the page size (size) and provide a cursor for paginating through the likes or dislikes.

User Experience:

Ensure clear and user-friendly responses for successful retrieval of likes or dislikes and any potential errors.

Acceptance Criteria:

Users can retrieve the likes or dislikes of a specific article with pagination based on the provided article ID, status, page size (size), and cursor using the /api/user/article/:id/likes/:status/:size/:cursor route.
Validation is in place to ensure the provided article ID, status, size, and cursor are valid, and the article exists.
The API fetches and returns a paginated list of likes or dislikes for the specified article.
Pagination is implemented to handle large like or dislike datasets effectively.
Proper error handling is in place for any issues during like or dislike retrieval.

hey @prasenjeet-symon I would like to work with on this issue , but upon running ts-node-dev --respawn src/index.ts I encounter a few issues can you help me resolve these so I can work on creating the api endpoint , thanks

@Vayras Thank you for expressing your interest in this project. We highly appreciate your enthusiasm and willingness to contribute. To stay updated on new issues, please enable notifications for this repository. We eagerly anticipate your valuable contributions and look forward to collaborating with you.


Add maven rat plugin

To avoid source file without Apache License V2.0 header, we need to add maven rat plugin for this project.

@ralf0131 I'll help to do this.


Grab rest of path

I'd like to be able to have a route match and give me the full path, for example:
<stencil-route path="/:fullPath"></stencil-route>
And then match against <stencil-route-link url="/this/whole/path"></stencil-route>
Right now it only gives me the first part of the path.
I wonder if this is a limitation of path-to-regexp.

Ah, looks like you just add an asterisk to the end and it Just Works:
url="/:thing*


[Bug]: Cannot run shopify app dev

Please confirm that you have:

[X] Searched existing issues to see if your issue is a duplicate. (If you’ve found a duplicate issue, feel free to add additional information in a comment on it.)
[X] Reproduced the issue in the latest CLI version.

In which of these areas are you experiencing a problem?
Extension
Expected behavior
Running shopify app dev should open my app in development mode
Actual behavior
The command fails with the error "Couldn't find the app with Client ID a37713c7a190c925231a282fb793e1dc", which doesn't match the client ID of my app.
Verbose output
2024-08-13T20:45:34.050Z: Running command app dev
╭─ warning ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│                                                                                │
│  The flag `api-key` has been deprecated in favor of `client-id`                                                                                │
│                                                                                │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

2024-08-13T20:45:34.071Z: Getting a random port...
2024-08-13T20:45:34.076Z: Random port obtained: 56783
2024-08-13T20:45:34.116Z: cloudflared already installed, skipping
2024-08-13T20:45:34.119Z:
Running system process:
  · Command: /Users/patrick.son/.nvm/versions/node/v20.13.1/lib/node_modules/@shopify/cli/bin/cloudflared tunnel --url http://localhost:56783 --no-autoupdate
  · Working directory: /Users/patrick.son/Klaviyo/Repos/atlas/customer-hub-widgets

2024-08-13T20:45:34.122Z: Reading cached app information for directory /Users/patrick.son/Klaviyo/Repos/atlas/customer-hub-widgets...
2024-08-13T20:45:34.123Z: Reading the content of file at shopify.app.toml...
2024-08-13T20:45:34.125Z: Reading the content of file at shopify.app.toml...
2024-08-13T20:45:34.154Z: 2024-08-13T20:45:34Z INF Thank you for trying Cloudflare Tunnel. Doing so, without a Cloudflare account, is a quick way to experiment and try it out. However, be aware that these account-less Tunnels have no uptime guarantee. If you intend to use Tunnels in production you should use a pre-created named tunnel by following: https://developers.cloudflare.com/cloudflare-one/connections/connect-apps
2024-08-13T20:45:34Z INF Requesting new quick Tunnel on trycloudflare.com...

2024-08-13T20:45:34.194Z: Reading cached app information for directory /Users/patrick.son/Klaviyo/Repos/atlas/customer-hub-widgets...
2024-08-13T20:45:34.195Z: Reading cached app information for directory /Users/patrick.son/Klaviyo/Repos/atlas/customer-hub-widgets...
2024-08-13T20:45:34.196Z: Reading cached app information for directory /Users/patrick.son/Klaviyo/Repos/atlas/customer-hub-widgets...
2024-08-13T20:45:34.196Z: Reading the content of file at shopify.app.toml...
2024-08-13T20:45:34.197Z: Reading the content of file at shopify.app.toml...
2024-08-13T20:45:34.268Z: Ensuring that the user is authenticated with the Partners API with the following scopes:
[]

2024-08-13T20:45:34.268Z: Getting session store...
2024-08-13T20:45:34.269Z: Validating existing session against the scopes:
[
  "openid",
  "https://api.shopify.com/auth/shop.admin.graphql",
  "https://api.shopify.com/auth/shop.admin.themes",
  "https://api.shopify.com/auth/partners.collaborator-relationships.readonly",
  "https://api.shopify.com/auth/shop.storefront-renderer.devtools",
  "https://api.shopify.com/auth/partners.app.cli.access",
  "https://api.shopify.com/auth/destinations.readonly"
]
For applications:
{
  "partnersApi": {
    "scopes": []
  }
}

2024-08-13T20:45:34.269Z: Sending Identity Introspection request to URL: https://accounts.shopify.com/oauth/introspection
2024-08-13T20:45:34.269Z: Sending POST request to URL https://accounts.shopify.com/oauth/introspection
With request headers:
 - User-Agent: Shopify CLI; v=3.65.3
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-08-13T20:45:34.393Z: Request to https://accounts.shopify.com/oauth/introspection completed in 121 ms
With response headers:
 - cache-control: no-cache, no-store, private, must-revalidate, max-age=0
 - content-type: application/json; charset=utf-8
 - etag: W/"8829de07feb780ec4a1d99070fcabc1a"
 - x-request-id: 9f6974f8-2579-48b9-bebb-9733afce6d3b-1723581934

2024-08-13T20:45:34.397Z: The identity token is valid: true
2024-08-13T20:45:34.397Z:
The validation of the token for application/identity completed with the following results:
- It's expired: false
- It's invalid in identity: false

2024-08-13T20:45:34.397Z: Verifying that the user has a Partner organization
2024-08-13T20:45:34.402Z: Sending "Partners" GraphQL request:
  {
    organizations(first: 1) {
      nodes {
        id
      }
    }
  }

With request headers:
 - User-Agent: Shopify CLI; v=3.65.3
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-08-13T20:45:34.560Z: Request to https://partners.shopify.com/api/cli/graphql completed in 147 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"98032ab2090e5e60f6be7356693e7d1d"
 - x-request-id: 82e1e3d0-b0b6-4cf6-a44b-da2897bcfab6-1723581934

2024-08-13T20:45:34.565Z: Sending "Partners" GraphQL request:
  query currentAccountInfo {
    currentAccountInfo {
      __typename
      ... on ServiceAccount {
        orgName
      }
      ... on UserAccount {
        email
      }
    }
  }

With request headers:
 - User-Agent: Shopify CLI; v=3.65.3
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-08-13T20:45:34.652Z: Request to https://partners.shopify.com/api/cli/graphql completed in 85 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"0949b073c2c971e08cce5e62a0810e5e"
 - x-request-id: 7b4a0ef2-702b-46a4-b24c-8aa5ccb88a09-1723581934

2024-08-13T20:45:34.716Z: Sending "Partners" GraphQL request:
  query FindApp($apiKey: String!) {
    app(apiKey: $apiKey) {
      id
      title
      apiKey
      organizationId
      apiSecretKeys {
        secret
      }
      appType
      grantedScopes
      applicationUrl
      redirectUrlWhitelist
      requestedAccessScopes
      webhookApiVersion
      embedded
      posEmbedded
      preferencesUrl
      gdprWebhooks {
        customerDeletionUrl
        customerDataRequestUrl
        shopDeletionUrl
      }
      appProxy {
        subPath
        subPathPrefix
        url
      }
      developmentStorePreviewEnabled
      disabledFlags
    }
  }

With variables:
{
  "apiKey": "*****"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.65.3
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-08-13T20:45:35.413Z: Request to https://partners.shopify.com/api/cli/graphql completed in 696 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"d7924c5ecb00aff9958bb88e845f5b5d"
 - x-request-id: 6d75dfc2-b8ca-43c8-b2d4-ea243638c926-1723581934

2024-08-13T20:45:35.420Z: Sending "Partners" GraphQL request:
  query FindOrganization($id: ID!) {
    organizations(id: $id, first: 1) {
      nodes {
        id
        businessName
      }
    }
  }

With variables:
{
  "id": "3647805"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.65.3
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-08-13T20:45:35.513Z: Request to https://partners.shopify.com/api/cli/graphql completed in 91 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"3855bfacf7d0b6d979b0d619a02f193b"
 - x-request-id: ffa2285f-155a-4489-897e-86783df31926-1723581935

2024-08-13T20:45:35.569Z: Sending "Partners" GraphQL request:
  query FindApp($apiKey: String!) {
    app(apiKey: $apiKey) {
      id
      title
      apiKey
      organizationId
      apiSecretKeys {
        secret
      }
      appType
      grantedScopes
      applicationUrl
      redirectUrlWhitelist
      requestedAccessScopes
      webhookApiVersion
      embedded
      posEmbedded
      preferencesUrl
      gdprWebhooks {
        customerDeletionUrl
        customerDataRequestUrl
        shopDeletionUrl
      }
      appProxy {
        subPath
        subPathPrefix
        url
      }
      developmentStorePreviewEnabled
      disabledFlags
    }
  }

With variables:
{
  "apiKey": "*****"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.65.3
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-08-13T20:45:35.659Z: Request to https://partners.shopify.com/api/cli/graphql completed in 88 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"b1a4c0d269b1a9a93a32e8105871a637"
 - x-request-id: c430c296-69ed-4eee-9568-46af7ce2ae15-1723581935

╭─ error ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│                                                                                │
│  Couldn't find the app with Client ID `a37713c7a190c925231a282fb793e1dc`                                                                                │
│                                                                                │
│  You can pass `--reset` to your command to reset your app configuration.                                                                                │
│                                                                                │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

2024-08-13T20:45:35.676Z:
Running system process:
  · Command: npm prefix
  · Working directory: /Users/patrick.son/Klaviyo/Repos/atlas/customer-hub-widgets

2024-08-13T20:45:35.811Z: Obtaining the dependency manager in directory /Users/patrick.son/Klaviyo/Repos/atlas/customer-hub-widgets...
2024-08-13T20:45:35.919Z:
Running system process:
  · Command: ruby -v
  · Working directory: /Users/patrick.son/Klaviyo/Repos/atlas/customer-hub-widgets

2024-08-13T20:45:35.996Z: Request to https://monorail-edge.shopifysvc.com/v1/produce completed in 65 ms
With response headers:
 - x-request-id: e5b33c4d-c82f-4a85-baa8-221b8b7e9085

2024-08-13T20:45:35.997Z: Analytics event sent: {
  "command": "app dev",
  "time_start":<PHONE_NUMBER>051,
  "time_end":<PHONE_NUMBER>672,
  "total_time": 1621,
  "success": false,
  "cli_version": "3.65.3",
  "ruby_version": "2.6.10",
  "node_version": "20.13.1",
  "is_employee": false,
  "uname": "darwin arm64",
  "env_ci": false,
  "env_plugin_installed_any_custom": false,
  "env_plugin_installed_shopify": "[\"@shopify/cli\"]",
  "env_shell": "zsh",
  "env_device_id": "f21e8ebe51e5e58936877cc31013f4dc5388b5b2",
  "env_cloud": "localhost",
  "env_package_manager": "npm",
  "env_is_global": true,
  "cmd_app_warning_api_key_deprecation_displayed": true,
  "cmd_app_all_configs_any": true,
  "cmd_app_all_configs_clients": "{\"shopify.app.toml\":\"afb7f660ab05585110849d8706a812a4\"}",
  "cmd_app_linked_config_used": true,
  "cmd_app_linked_config_name": "shopify.app.toml",
  "cmd_app_linked_config_git_tracked": true,
  "cmd_app_linked_config_source": "cached",
  "partner_id": 3647805,
  "api_key": "****",
  "cmd_all_timing_network_ms": 1247,
  "cmd_all_timing_prompts_ms": 0,
  "cmd_all_launcher": "unknown",
  "cmd_all_topic": "app",
  "cmd_all_plugin": "@shopify/app",
  "cmd_all_verbose": true,
  "cmd_all_path_override": true,
  "cmd_all_path_override_hash": "e53cdc56a3a5edaac4dd54315399ce917bd07dca",
  "cmd_app_dependency_installation_skipped": false,
  "cmd_app_reset_used": false,
  "cmd_dev_tunnel_type": "cloudflare",
  "cmd_all_timing_active_ms": 373,
  "cmd_all_exit": "expected_error",
  "args": "--verbose",
  "error_message": "Couldn't find the app with Client ID a37713c7a190c925231a282fb793e1dc",
  "env_plugin_installed_all": "[\"@shopify/cli\"]",
  "metadata": "{\"extraPublic\":{},\"extraSensitive\":{}}"
}
2024-08-13T20:45:36.007Z: Reporting handled error to Bugsnag: Couldn't find the app with Client ID a37713c7a190c925231a282fb793e1dc
2024-08-13T20:45:36.356Z:
Running system process:
  · Command: npm prefix
  · Working directory: /Users/patrick.son/Klaviyo/Repos/atlas/customer-hub-widgets

2024-08-13T20:45:36.457Z: Obtaining the dependency manager in directory /Users/patrick.son/Klaviyo/Repos/atlas/customer-hub-widgets...

Reproduction steps

init a new extension only app
Run shopify app dev
Observe that it doesn't work

Operating System
macOS Sonoma 14.6.1
Shopify CLI version (check your project's package.json if you're not sure)
3.65.3
Shell
zsh
Node version (run node -v if you're not sure)
v20.13.1
What language and version are you using in your application?
No response

Hi @patrick-r-son, have you tried running with --reset as the error message suggested?

This is likely happening because you have a environment variable that overrides the client-id that you are using: look for SHOPIFY_FLAG_APP_API_KEY or SHOPIFY_FLAG_CLIENT_ID with that value (a37713c7a190c925231a282fb793e1dc)


Initialization Skipped

Hi guys,
Getting this error while booting up
[2019-5-25 10:01:23] [homebridge-eWeLink.eWeLink] Initialization skipped. Missing configuration data. Setup Payload: X-HM://0023NJY59N94F
I ran the code sudo npm -g install homebridge-ewelink-max then changed my config file to whats below, any ideas? Might look a mess on here but jsonlint verifies it as valid.
{
  "bridge": {
    "name": "Toms Homebridge",
    "username": "CC:22:3D:E3:CE:30",
    "port": 51826,
    "pin": "111-22-333"
  },

  "description": "This is an example configuration file with one fake accessory and one fake platform. You can use this as a template for creating your own configuration file containing devices you actually own.",
  "ports": {
    "start": 52100,
    "end": 52500,
    "comment": "This section is used to control the range of ports that separate accessory (like camera or television) should be bind to."
  },

  "platforms": [
    {
	"platform": "Camera-ffmpeg",
	"cameras": [{
		"name": "Drive Camera",
		"videoConfig": {
			"source": "-rtsp_transport tcp -re -i rtsp://<IP_ADDRESS>:554/user=admin&password=&channel=1&stream=0.sdp?",
			"maxStreams": 2,
			"maxWidth": 1280,
			"maxHeight": 720,
			"maxFPS": 20
		}
              },
                {
                    "name": "Garage Camera",
                    "videoConfig": {
                        "source": "-rtsp_transport tcp -re -i rtsp://<IP_ADDRESS>:554/user=admin&password=&channel=3&stream=0.sdp?",
                        "maxStreams": 2,
                        "maxWidth": 1280,
                        "maxHeight": 720,
                        "maxFPS": 20
		}
              },
            {
            "platform" : "eWeLink",
            "name" : "eWeLink",
            "email" : "HIDDENEMAIL",
            "password" : "HIDDENPW",
            "imei" : "136E1790-E312-466D-AAD1-50F861F94F6E"
               }
	]
}
  ]
}

Hi @BigTomFPV, you mistakenly put the eWeLink platform into the cameras array of the Camera-ffmpeg platform. It won't work that way. Instead, you should put the eWeLink platform configuration in the platforms array. Like this:
{
  "bridge": {
    "name": "Toms Homebridge",
    "username": "CC:22:3D:E3:CE:30",
    "port": 51826,
    "pin": "111-22-333"
  },

  "description": "This is an example configuration file with one fake accessory and one fake platform. You can use this as a template for creating your own configuration file containing devices you actually own.",
  "ports": {
    "start": 52100,
    "end": 52500,
    "comment": "This section is used to control the range of ports that separate accessory (like camera or television) should be bind to."
  },

  "platforms": [
    {
      "platform": "Camera-ffmpeg",
      "cameras": [
        {
          "name": "Drive Camera",
          "videoConfig": {
            "source": "-rtsp_transport tcp -re -i rtsp://<IP_ADDRESS>:554/user=admin&password=&channel=1&stream=0.sdp?",
            "maxStreams": 2,
            "maxWidth": 1280,
            "maxHeight": 720,
            "maxFPS": 20
          }
        },
        {
          "name": "Garage Camera",
          "videoConfig": {
            "source": "-rtsp_transport tcp -re -i rtsp://<IP_ADDRESS>:554/user=admin&password=&channel=3&stream=0.sdp?",
            "maxStreams": 2,
            "maxWidth": 1280,
            "maxHeight": 720,
            "maxFPS": 20
          }
        }
      ]
    },
    {
      "platform" : "eWeLink",
      "name" : "eWeLink",
      "email" : "HIDDENEMAIL",
      "password" : "HIDDENPW",
      "imei" : "136E1790-E312-466D-AAD1-50F861F94F6E"
    }
  ]
}


Multiple build errors in VS 2013/2015

I get a number of build errors from both Visual Studio 2013 and 2015. For example, VS 2013 doesn't like the $ prefix in SortedSetResult.cs on lines 22 and 41. RedisSubject.cs won't compile in VS 2015.
Also, what's up with the mixture of BookSleeve and StackExchange.Redis? It appears that only part of this has been converted to StackExchange.Redis. I'm not sure what state this project is in.

Solution File only supports on Visual Studio 2015.
CloudStructures.Rx (RedisSubject) is dropped development currently.