-
Notifications
You must be signed in to change notification settings - Fork 260
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
Use "IE Proxy Settings" correctly on Windows in vcpkg. #49
Conversation
…oad.c", "vcpkg/base/downloads.cpp". Add an helper code in "build.cpp:409" to make setting proxy easier.
@cnSchwarzer it fails at "create diff" because the formatting is off; you can just download the diff file which was created and apply it to your code via |
Here's the python implementation, for reference: https://github.com/python/cpython/blob/7215d1ae25525c92b026166f9d5cac85fb1defe1/Lib/urllib/request.py#L2655 |
The CI failure is that you need to clang-format various files. If you look in the artifacts for the build failure there's a format.diff with the changes to apply. |
@BillyONeal I find out that setting Which means, We even don't need to worry about that, just remove the |
The difference between HTTP and HTTPS proxies is end-to-end security. My understanding is: When an https request go through HTTP proxy, the proxy can see plain request and then make a real secure https request at proxy server side. However HTTPS proxy accepts an CONNECT verb and can't see plain request, is that true? And is that a vcpkg's security concern (tls12-download only wants to accept real secure HTTPS proxy)? |
👀Any update on this? @BillyONeal By the way, should I add an flag like |
I'm new to PR rules and I don't get it why this PR stucks at this state? Anything should I do before it can get merged? 🙏Please point out, much thanks! |
Not right now.
I don't think you need to do that although I wouldn't argue against it.
Sorry for the delay; maintainer folks have just been hyper busy over the last few days. |
🙏Sorry! Thanks all of you for your works! Take your time! @BillyONeal |
Don't need to be sorry! Completely reasonable to ask what the heck is going on with a review with a signoff sitting for like a week. I would probably have merged by now but I'm not technically a vcpkg maintainer right now. |
Thanks @cnSchwarzer, sorry for not merging earlier :) |
microsoft/vcpkg#17688 <-- It looks like this change causes us to crash... maybe? |
Oh, let me check it. |
Not related, the current vcpkg's repository didn't update tls12-download.exe, it's still old Feb version. |
Yeah, sorry for the assumption :) |
…l to .\scripts\ci.baseline.txt. REGRESSION: geogram:x64-osx. If expected, add geogram:x64-osx=fail to .\scripts\ci.baseline.txt. REGRESSION: geogram:x64-windows-static-md. If expected, add geogram:x64-windows-static-md=fail to .\scripts\ci.baseline.txt. REGRESSION: geogram:x64-windows-static. If expected, add geogram:x64-windows-static=fail to .\scripts\ci.baseline.txt. REGRESSION: geogram:x64-windows. If expected, add geogram:x64-windows=fail to .\scripts\ci.baseline.txt. REGRESSION: geogram:x86-windows. If expected, add geogram:x86-windows=fail to .\scripts\ci.baseline.txt. Upstream is gone: https://gforge.inria.fr/frs/download.php/file/38314/geogram_1.7.5.tar.gz: % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 curl: (60) SSL: no alternative certificate subject name matches target host name 'gforge.inria.fr' More details here: https://curl.haxx.se/docs/sslcerts.html curl failed to verify the legitimacy of the server and therefore could not establish a secure connection to it. To learn more about this situation and how to fix it, please visit the web page mentioned above. [DEBUG] /agent/_work/1/s/buildtrees/_vcpkg/src/vcpkg-tool-2021-09-10/src/vcpkg/base/downloads.cpp(626) [DEBUG] Exiting after 583.7 ms us (582562 us) CMake Error at scripts/cmake/vcpkg_download_distfile.cmake:83 (message): Failed to download file with error: 1 If you use a proxy, please check your proxy setting. Possible causes are: 1. You are actually using an HTTP proxy, but setting HTTPS_PROXY variable to `https://address:port`. This is not correct, because `https://` prefix claims the proxy is an HTTPS proxy, while your proxy (v2ray, shadowsocksr , etc..) is an HTTP proxy. Try setting `http://address:port` to both HTTP_PROXY and HTTPS_PROXY instead. 2. You are using Fiddler. Currently a bug (microsoft#17752) will set HTTPS_PROXY to `https://fiddler_address:port` which lead to problem 1 above. Workaround is open Windows 10 Settings App, and search for Proxy Configuration page, Change `http=address:port;https=address:port` to `address`, and fill the port number. 3. You proxy's remote server is out of service. In future vcpkg releases, if you are using Windows, you no longer need to set HTTP(S)_PROXY environment variables. Vcpkg will simply apply Windows IE Proxy Settings set by your proxy software. See (microsoft/vcpkg-tool#49) and (microsoft/vcpkg-tool#77) Otherwise, please submit an issue at https://github.com/Microsoft/vcpkg/issues Call Stack (most recent call first): scripts/cmake/vcpkg_download_distfile.cmake:274 (z_vcpkg_download_distfile_show_proxy_and_fail) ports/geogram/portfile.cmake:4 (vcpkg_download_distfile) scripts/ports.cmake:141 (include) Skipped in ci.baseline.txt.
#20518) * REGRESSION: chartdir:x64-linux. If expected, add chartdir:x64-linux=fail to .\scripts\ci.baseline.txt. -- Note: chartdir only supports dynamic library linkage. Building dynamic library. -- Downloading http://www.advsofteng.net/chartdir_cpp_linux_64.tar.gz -> chartdir_cpp_linux_64-7.0.0.tar.gz... [DEBUG] Feature flag 'binarycaching' unset [DEBUG] Feature flag 'manifests' = off [DEBUG] Feature flag 'compilertracking' unset [DEBUG] Feature flag 'registries' unset [DEBUG] Feature flag 'versions' unset [DEBUG] popen(curl --fail -L "https://vcpkgassetcache.blob.core.windows.net/assets/e7e71b64b3a756b6df174758c392ab4c9310b4d265e521dccbd009eeefd46e021a74572e7212de5564725df20ddf189e1599e88a116b426f1256f7d34b0131aa?sp=racwl&st=2021-06-29T20:09:46Z&se=2021-10-02T04:09:46Z&spr=https&sv=2020-08-04&sr=c&sig=g3shlIpD0R923OUzfIsrTwjX0vc6OzNXGEDO3URXmYc%3D" --create-dirs --output /mnt/vcpkg-ci/downloads/chartdir_cpp_linux_64-7.0.0.tar.gz.1003174.part 2>&1) [DEBUG] cmd_execute_and_stream_data() returned 5632 after 31162 us [DEBUG] popen(curl --fail -L http://www.advsofteng.net/chartdir_cpp_linux_64.tar.gz --create-dirs --output /mnt/vcpkg-ci/downloads/chartdir_cpp_linux_64-7.0.0.tar.gz.1003174.part 2>&1) [DEBUG] cmd_execute_and_stream_data() returned 0 after 8512565 us Error: Failed to download from mirror set: https://vcpkgassetcache.blob.core.windows.net/assets/e7e71b64b3a756b6df174758c392ab4c9310b4d265e521dccbd009eeefd46e021a74572e7212de5564725df20ddf189e1599e88a116b426f1256f7d34b0131aa?*** SECRET ***: % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 curl: (22) The requested URL returned error: 403 Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature. File does not have the expected hash: url : [ http://www.advsofteng.net/chartdir_cpp_linux_64.tar.gz ] File path : [ /mnt/vcpkg-ci/downloads/chartdir_cpp_linux_64-7.0.0.tar.gz.1003174.part ] Expected hash : [ e7e71b64b3a756b6df174758c392ab4c9310b4d265e521dccbd009eeefd46e021a74572e7212de5564725df20ddf189e1599e88a116b426f1256f7d34b0131aa ] Actual hash : [ ea2e05f28dd9647fed49feaf130d8034065067463965f144b3fae4eae482579b1ecf528dc86d1b3602887d5ca0c3b1569404489b0f4cb2300b798fed940cd467 ] Updated SHAs and added quotes. These are the changes made by upstream: ``` diff --git a/new_sha/ChartDirector/cppdemo/surfacetexture/surfacetexture.cpp b/old_sha/ChartDirector/cppdemo/surfacetexture/surfacetexture.cpp index 79f15be..302eb78 100644 --- a/new_sha/ChartDirector/cppdemo/surfacetexture/surfacetexture.cpp +++ b/old_sha/ChartDirector/cppdemo/surfacetexture/surfacetexture.cpp @@ -108,7 +108,9 @@ void createChart(int chartIndex, const char *filename) const int dataZ_size = dataX_size * dataY_size; double dataZ[dataZ_size]; for(int yIndex = 0; yIndex < dataY_size; ++yIndex) { + double y = dataY[yIndex]; for(int xIndex = 0; xIndex < dataX_size; ++xIndex) { + double x = dataX[xIndex]; dataZ[yIndex * dataX_size + xIndex] = dataX[xIndex] * dataY[yIndex]; } } @@ -176,7 +178,7 @@ void createChart(int chartIndex, const char *filename) // Use a DrawArea to load the image DrawArea* d = new DrawArea(); d->load("maptexture.png"); - d->resize(c->getPlotRegionWidth(), c->getPlotRegionDepth()); + d->resize(240, 210); // Set the DrawArea as a resource c->setResource("texture", d); diff --git a/new_sha/ChartDirector/lib/libchartdir.so.7.0.0 b/old_sha/ChartDirector/lib/libchartdir.so.7.0.0 index b1ea97f..bfb1d4b 100644 Binary files a/new_sha/ChartDirector/lib/libchartdir.so.7.0.0 and b/old_sha/ChartDirector/lib/libchartdir.so.7.0.0 differ diff --git a/new_sha/ChartDirector/qtdemo/helloworld/qchartviewer.cpp b/old_sha/ChartDirector/qtdemo/helloworld/qchartviewer.cpp index 5736d60..423120f 100644 --- a/new_sha/ChartDirector/qtdemo/helloworld/qchartviewer.cpp +++ b/old_sha/ChartDirector/qtdemo/helloworld/qchartviewer.cpp @@ -107,9 +107,9 @@ private: QCursor *hZoomOutCursor; QCursor *hNoZoomCursor; - QCursor &getZoomCursor(QCursor **cache, double scale, int flags) + QCursor &getZoomCursor(QCursor *cache, double scale, int flags) { - if (0 == *cache) + if (0 == cache) { DrawArea d; d.setSize(32, 32, Chart::Transparent); @@ -127,9 +127,9 @@ private: MemBlock m = d.outPNG(); QImage img = QImage::fromData((const uchar*)m.data, m.len); img.setDevicePixelRatio(scale); - *cache = new QCursor(QPixmap::fromImage(img), 15, 15); + cache = new QCursor(QPixmap::fromImage(img), 15, 15); } - return **cache; + return *cache; } public: @@ -145,15 +145,15 @@ public: } QCursor &getZoomInCursor(double scale) { - return getZoomCursor(&hZoomInCursor, scale, 3); + return getZoomCursor(hZoomInCursor, scale, 3); } QCursor &getZoomOutCursor(double scale) { - return getZoomCursor(&hZoomOutCursor, scale, 1); + return getZoomCursor(hZoomOutCursor, scale, 1); } QCursor &getNoZoomCursor(double scale) { - return getZoomCursor(&hNoZoomCursor, scale, 0); + return getZoomCursor(hNoZoomCursor, scale, 0); } } cursorManager; diff --git a/new_sha/ChartDirector/qtdemo/qtdemo/democharts.cpp b/old_sha/ChartDirector/qtdemo/qtdemo/democharts.cpp index a3b7962..d706853 100644 --- a/new_sha/ChartDirector/qtdemo/qtdemo/democharts.cpp +++ b/old_sha/ChartDirector/qtdemo/qtdemo/democharts.cpp @@ -10954,7 +10954,9 @@ void surfacetexture(QChartViewer *viewer, int chartIndex) const int dataZ_size = dataX_size * dataY_size; double dataZ[dataZ_size]; for(int yIndex = 0; yIndex < dataY_size; ++yIndex) { + double y = dataY[yIndex]; for(int xIndex = 0; xIndex < dataX_size; ++xIndex) { + double x = dataX[xIndex]; dataZ[yIndex * dataX_size + xIndex] = dataX[xIndex] * dataY[yIndex]; } } @@ -11022,7 +11024,7 @@ void surfacetexture(QChartViewer *viewer, int chartIndex) // Use a DrawArea to load the image DrawArea* d = new DrawArea(); d->load("@/images/maptexture.png"); - d->resize(c->getPlotRegionWidth(), c->getPlotRegionDepth()); + d->resize(240, 210); // Set the DrawArea as a resource c->setResource("texture", d); @@ -12304,6 +12306,11 @@ void treemapcolors(QChartViewer *viewer, int /* chartIndex */) void treemaplayout(QChartViewer *viewer, int chartIndex) { + // Labels for the tree map + const char* energy_types[] = {"Coal", "Oil", "Gas", "Nuclear", "Hydro", "Solar", "Wind", + "Biomass", "Geothermal", "Wave"}; + const int energy_types_size = (int)(sizeof(energy_types)/sizeof(*energy_types)); + // Random data for the tree map RanSeries* r = new RanSeries(3); DoubleArray data = r->getSeries(20, 20, 400); @@ -14163,10 +14170,7 @@ void circularbarmeter2(QChartViewer *viewer, int chartIndex) m->setCap(0, Chart::Transparent); // In this example, the circular bar has 20 segments - int segmentCount = 20; - - // The angular step - double angleStep = 360.0 / segmentCount; + int angleStep = 360 / 20; // The gap between segments is 4.5 degrees double angleGap = 4.5; @@ -14205,39 +14209,28 @@ void circularbarmeter2(QChartViewer *viewer, int chartIndex) stepColorScale_size)); } - // - // Now we draw the segments of the bar meter - // - - // The segment that contains the value - int currentSegment = (int)(angle / angleStep); - - // Segments after the current segment is colored with the blank color - for(int i = currentSegment + 1; i < segmentCount; ++i) { - m->addRingSector(radius, radius - 20, i * angleStep, (i + 1) * angleStep - angleGap, - blankColor); + // Draw the blank part of the circular bar + if (angle < 360) { + // Iterate the segments in the blank part of the circular bar + for(int startAngle = (int)(angle / angleStep) * angleStep; startAngle < 360; startAngle += + angleStep) { + // The first segment may be partially filled + double partialAngle = (startAngle >= angle ? 0 : (angle - startAngle) * (1 - angleGap / + angleStep)); + m->addRingSector(radius, radius - 20, startAngle + partialAngle, startAngle + angleStep + - angleGap, blankColor); } - - // Segments before the current segment is colored with the fill color - for(int i = 0; i < currentSegment; ++i) { - m->addRingSector(radius, radius - 20, i * angleStep, (i + 1) * angleStep - angleGap, - fillColor); } - // Segment that contains the angle will be partially filled and partially blank. We need to - // adjust the angle to compensated for the angle gap. - double adjustedAngle = currentSegment * angleStep + (angle - currentSegment * angleStep) * (1 - - angleGap / angleStep); - - // The blank part of the segment - if ((currentSegment + 1) * angleStep > angle) { - m->addRingSector(radius, radius - 20, adjustedAngle, (currentSegment + 1) * angleStep - - angleGap, blankColor); + // Draw the fill part of the circular bar + if (angle > 0) { + // Iterate the segments in the fill part of the circular bar + for(int startAngle = 0; startAngle < angle; startAngle += angleStep) { + // The last segment may be partially filled + double angleSpan = (angleStep - angleGap) * (angle >= startAngle + angleStep ? 1 : ( + angle - startAngle) / angleStep); + m->addRingSector(radius, radius - 20, startAngle, startAngle + angleSpan, fillColor); } - - // The filled part of the segment. - if (angle > currentSegment * angleStep) { - m->addRingSector(radius, radius - 20, currentSegment * angleStep, adjustedAngle, fillColor); } // Add a label at the center to display the value diff --git a/new_sha/ChartDirector/qtdemo/qtdemo/financedemo.cpp b/old_sha/ChartDirector/qtdemo/qtdemo/financedemo.cpp index 7b8c1f5..b029776 100644 --- a/new_sha/ChartDirector/qtdemo/qtdemo/financedemo.cpp +++ b/old_sha/ChartDirector/qtdemo/qtdemo/financedemo.cpp @@ -315,13 +315,6 @@ void FinanceDemo::onLineEditChanged() int new_avgPeriod2 = m_MovAvg2->text().toInt(); QString tickerKey = m_TickerSymbol->text(); - if (tickerKey.isEmpty()) - { - // Default tickerKey - tickerKey = "ASE"; - m_TickerSymbol->setText(tickerKey); - } - QString compareKey = m_CompareWith->text(); bool needReloadData = (m_tickerKey != tickerKey) || (m_compareKey != compareKey); @@ -367,16 +360,12 @@ void FinanceDemo::loadData(const QString& ticker, const QString& compare) if (m_compareKey != compare) { m_compareKey = compare; - if (m_compareKey.isEmpty()) - m_dailyPrice.compareData.clear(); - else - { + // Simulator to generate realistic random OHLC values FinanceSimulator db2(compare.toUtf8().data(), Chart::chartTime(2010, 1, 1), Chart::chartTime(2020, 12, 31), 86400); m_dailyPrice.compareData = arrayToVector(db2.getCloseData()); } - } // In this example, we will compute the weekly and monthly prices on demand. We just // need to clear the old data here. diff --git a/new_sha/ChartDirector/qtdemo/qtdemo/qchartviewer.cpp b/old_sha/ChartDirector/qtdemo/qtdemo/qchartviewer.cpp index 5736d60..423120f 100644 --- a/new_sha/ChartDirector/qtdemo/qtdemo/qchartviewer.cpp +++ b/old_sha/ChartDirector/qtdemo/qtdemo/qchartviewer.cpp @@ -107,9 +107,9 @@ private: QCursor *hZoomOutCursor; QCursor *hNoZoomCursor; - QCursor &getZoomCursor(QCursor **cache, double scale, int flags) + QCursor &getZoomCursor(QCursor *cache, double scale, int flags) { - if (0 == *cache) + if (0 == cache) { DrawArea d; d.setSize(32, 32, Chart::Transparent); @@ -127,9 +127,9 @@ private: MemBlock m = d.outPNG(); QImage img = QImage::fromData((const uchar*)m.data, m.len); img.setDevicePixelRatio(scale); - *cache = new QCursor(QPixmap::fromImage(img), 15, 15); + cache = new QCursor(QPixmap::fromImage(img), 15, 15); } - return **cache; + return *cache; } public: @@ -145,15 +145,15 @@ public: } QCursor &getZoomInCursor(double scale) { - return getZoomCursor(&hZoomInCursor, scale, 3); + return getZoomCursor(hZoomInCursor, scale, 3); } QCursor &getZoomOutCursor(double scale) { - return getZoomCursor(&hZoomOutCursor, scale, 1); + return getZoomCursor(hZoomOutCursor, scale, 1); } QCursor &getNoZoomCursor(double scale) { - return getZoomCursor(&hNoZoomCursor, scale, 0); + return getZoomCursor(hNoZoomCursor, scale, 0); } } cursorManager; ``` * REGRESSION: ccfits:arm64-windows. If expected, add ccfits:arm64-windows=fail to .\scripts\ci.baseline.txt. REGRESSION: ccfits:x64-linux. If expected, add ccfits:x64-linux=fail to .\scripts\ci.baseline.txt. REGRESSION: ccfits:x64-osx. If expected, add ccfits:x64-osx=fail to .\scripts\ci.baseline.txt. REGRESSION: ccfits:x64-windows-static-md. If expected, add ccfits:x64-windows-static-md=fail to .\scripts\ci.baseline.txt. REGRESSION: ccfits:x64-windows-static. If expected, add ccfits:x64-windows-static=fail to .\scripts\ci.baseline.txt. REGRESSION: ccfits:x64-windows. If expected, add ccfits:x64-windows=fail to .\scripts\ci.baseline.txt. REGRESSION: ccfits:x86-windows. If expected, add ccfits:x86-windows=fail to .\scripts\ci.baseline.txt. >[DEBUG] popen(curl --fail -L https://heasarc.gsfc.nasa.gov/fitsio/ccfits/CCfits-2.5.tar.gz --create-dirs --output /Users/bion/vcpkg/downloads/CCfits-2.5.tar.gz.15183.part 2>&1) >[DEBUG] cmd_execute_and_stream_data() returned 5632 after 415053 us >Error: Failed to download from mirror set: >https://heasarc.gsfc.nasa.gov/fitsio/ccfits/CCfits-2.5.tar.gz: % Total % Received % Xferd Average Speed Time Time Time Current > Dload Upload Total Spent Left Speed > 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 >curl: (22) The requested URL returned error: 404 Not Found Fixed link and modernized portfile. * REGRESSION: geogram:x64-linux. If expected, add geogram:x64-linux=fail to .\scripts\ci.baseline.txt. REGRESSION: geogram:x64-osx. If expected, add geogram:x64-osx=fail to .\scripts\ci.baseline.txt. REGRESSION: geogram:x64-windows-static-md. If expected, add geogram:x64-windows-static-md=fail to .\scripts\ci.baseline.txt. REGRESSION: geogram:x64-windows-static. If expected, add geogram:x64-windows-static=fail to .\scripts\ci.baseline.txt. REGRESSION: geogram:x64-windows. If expected, add geogram:x64-windows=fail to .\scripts\ci.baseline.txt. REGRESSION: geogram:x86-windows. If expected, add geogram:x86-windows=fail to .\scripts\ci.baseline.txt. Upstream is gone: https://gforge.inria.fr/frs/download.php/file/38314/geogram_1.7.5.tar.gz: % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 curl: (60) SSL: no alternative certificate subject name matches target host name 'gforge.inria.fr' More details here: https://curl.haxx.se/docs/sslcerts.html curl failed to verify the legitimacy of the server and therefore could not establish a secure connection to it. To learn more about this situation and how to fix it, please visit the web page mentioned above. [DEBUG] /agent/_work/1/s/buildtrees/_vcpkg/src/vcpkg-tool-2021-09-10/src/vcpkg/base/downloads.cpp(626) [DEBUG] Exiting after 583.7 ms us (582562 us) CMake Error at scripts/cmake/vcpkg_download_distfile.cmake:83 (message): Failed to download file with error: 1 If you use a proxy, please check your proxy setting. Possible causes are: 1. You are actually using an HTTP proxy, but setting HTTPS_PROXY variable to `https://address:port`. This is not correct, because `https://` prefix claims the proxy is an HTTPS proxy, while your proxy (v2ray, shadowsocksr , etc..) is an HTTP proxy. Try setting `http://address:port` to both HTTP_PROXY and HTTPS_PROXY instead. 2. You are using Fiddler. Currently a bug (#17752) will set HTTPS_PROXY to `https://fiddler_address:port` which lead to problem 1 above. Workaround is open Windows 10 Settings App, and search for Proxy Configuration page, Change `http=address:port;https=address:port` to `address`, and fill the port number. 3. You proxy's remote server is out of service. In future vcpkg releases, if you are using Windows, you no longer need to set HTTP(S)_PROXY environment variables. Vcpkg will simply apply Windows IE Proxy Settings set by your proxy software. See (microsoft/vcpkg-tool#49) and (microsoft/vcpkg-tool#77) Otherwise, please submit an issue at https://github.com/Microsoft/vcpkg/issues Call Stack (most recent call first): scripts/cmake/vcpkg_download_distfile.cmake:274 (z_vcpkg_download_distfile_show_proxy_and_fail) ports/geogram/portfile.cmake:4 (vcpkg_download_distfile) scripts/ports.cmake:141 (include) Skipped in ci.baseline.txt.
…1 (#20518) * REGRESSION: chartdir:x64-linux. If expected, add chartdir:x64-linux=fail to .\scripts\ci.baseline.txt. -- Note: chartdir only supports dynamic library linkage. Building dynamic library. -- Downloading http://www.advsofteng.net/chartdir_cpp_linux_64.tar.gz -> chartdir_cpp_linux_64-7.0.0.tar.gz... [DEBUG] Feature flag 'binarycaching' unset [DEBUG] Feature flag 'manifests' = off [DEBUG] Feature flag 'compilertracking' unset [DEBUG] Feature flag 'registries' unset [DEBUG] Feature flag 'versions' unset [DEBUG] popen(curl --fail -L "https://vcpkgassetcache.blob.core.windows.net/assets/e7e71b64b3a756b6df174758c392ab4c9310b4d265e521dccbd009eeefd46e021a74572e7212de5564725df20ddf189e1599e88a116b426f1256f7d34b0131aa?sp=racwl&st=2021-06-29T20:09:46Z&se=2021-10-02T04:09:46Z&spr=https&sv=2020-08-04&sr=c&sig=g3shlIpD0R923OUzfIsrTwjX0vc6OzNXGEDO3URXmYc%3D" --create-dirs --output /mnt/vcpkg-ci/downloads/chartdir_cpp_linux_64-7.0.0.tar.gz.1003174.part 2>&1) [DEBUG] cmd_execute_and_stream_data() returned 5632 after 31162 us [DEBUG] popen(curl --fail -L http://www.advsofteng.net/chartdir_cpp_linux_64.tar.gz --create-dirs --output /mnt/vcpkg-ci/downloads/chartdir_cpp_linux_64-7.0.0.tar.gz.1003174.part 2>&1) [DEBUG] cmd_execute_and_stream_data() returned 0 after 8512565 us Error: Failed to download from mirror set: https://vcpkgassetcache.blob.core.windows.net/assets/e7e71b64b3a756b6df174758c392ab4c9310b4d265e521dccbd009eeefd46e021a74572e7212de5564725df20ddf189e1599e88a116b426f1256f7d34b0131aa?*** SECRET ***: % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 curl: (22) The requested URL returned error: 403 Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature. File does not have the expected hash: url : [ http://www.advsofteng.net/chartdir_cpp_linux_64.tar.gz ] File path : [ /mnt/vcpkg-ci/downloads/chartdir_cpp_linux_64-7.0.0.tar.gz.1003174.part ] Expected hash : [ e7e71b64b3a756b6df174758c392ab4c9310b4d265e521dccbd009eeefd46e021a74572e7212de5564725df20ddf189e1599e88a116b426f1256f7d34b0131aa ] Actual hash : [ ea2e05f28dd9647fed49feaf130d8034065067463965f144b3fae4eae482579b1ecf528dc86d1b3602887d5ca0c3b1569404489b0f4cb2300b798fed940cd467 ] Updated SHAs and added quotes. These are the changes made by upstream: ``` diff --git a/new_sha/ChartDirector/cppdemo/surfacetexture/surfacetexture.cpp b/old_sha/ChartDirector/cppdemo/surfacetexture/surfacetexture.cpp index 79f15be..302eb78 100644 --- a/new_sha/ChartDirector/cppdemo/surfacetexture/surfacetexture.cpp +++ b/old_sha/ChartDirector/cppdemo/surfacetexture/surfacetexture.cpp @@ -108,7 +108,9 @@ void createChart(int chartIndex, const char *filename) const int dataZ_size = dataX_size * dataY_size; double dataZ[dataZ_size]; for(int yIndex = 0; yIndex < dataY_size; ++yIndex) { + double y = dataY[yIndex]; for(int xIndex = 0; xIndex < dataX_size; ++xIndex) { + double x = dataX[xIndex]; dataZ[yIndex * dataX_size + xIndex] = dataX[xIndex] * dataY[yIndex]; } } @@ -176,7 +178,7 @@ void createChart(int chartIndex, const char *filename) // Use a DrawArea to load the image DrawArea* d = new DrawArea(); d->load("maptexture.png"); - d->resize(c->getPlotRegionWidth(), c->getPlotRegionDepth()); + d->resize(240, 210); // Set the DrawArea as a resource c->setResource("texture", d); diff --git a/new_sha/ChartDirector/lib/libchartdir.so.7.0.0 b/old_sha/ChartDirector/lib/libchartdir.so.7.0.0 index b1ea97f..bfb1d4b 100644 Binary files a/new_sha/ChartDirector/lib/libchartdir.so.7.0.0 and b/old_sha/ChartDirector/lib/libchartdir.so.7.0.0 differ diff --git a/new_sha/ChartDirector/qtdemo/helloworld/qchartviewer.cpp b/old_sha/ChartDirector/qtdemo/helloworld/qchartviewer.cpp index 5736d60..423120f 100644 --- a/new_sha/ChartDirector/qtdemo/helloworld/qchartviewer.cpp +++ b/old_sha/ChartDirector/qtdemo/helloworld/qchartviewer.cpp @@ -107,9 +107,9 @@ private: QCursor *hZoomOutCursor; QCursor *hNoZoomCursor; - QCursor &getZoomCursor(QCursor **cache, double scale, int flags) + QCursor &getZoomCursor(QCursor *cache, double scale, int flags) { - if (0 == *cache) + if (0 == cache) { DrawArea d; d.setSize(32, 32, Chart::Transparent); @@ -127,9 +127,9 @@ private: MemBlock m = d.outPNG(); QImage img = QImage::fromData((const uchar*)m.data, m.len); img.setDevicePixelRatio(scale); - *cache = new QCursor(QPixmap::fromImage(img), 15, 15); + cache = new QCursor(QPixmap::fromImage(img), 15, 15); } - return **cache; + return *cache; } public: @@ -145,15 +145,15 @@ public: } QCursor &getZoomInCursor(double scale) { - return getZoomCursor(&hZoomInCursor, scale, 3); + return getZoomCursor(hZoomInCursor, scale, 3); } QCursor &getZoomOutCursor(double scale) { - return getZoomCursor(&hZoomOutCursor, scale, 1); + return getZoomCursor(hZoomOutCursor, scale, 1); } QCursor &getNoZoomCursor(double scale) { - return getZoomCursor(&hNoZoomCursor, scale, 0); + return getZoomCursor(hNoZoomCursor, scale, 0); } } cursorManager; diff --git a/new_sha/ChartDirector/qtdemo/qtdemo/democharts.cpp b/old_sha/ChartDirector/qtdemo/qtdemo/democharts.cpp index a3b7962..d706853 100644 --- a/new_sha/ChartDirector/qtdemo/qtdemo/democharts.cpp +++ b/old_sha/ChartDirector/qtdemo/qtdemo/democharts.cpp @@ -10954,7 +10954,9 @@ void surfacetexture(QChartViewer *viewer, int chartIndex) const int dataZ_size = dataX_size * dataY_size; double dataZ[dataZ_size]; for(int yIndex = 0; yIndex < dataY_size; ++yIndex) { + double y = dataY[yIndex]; for(int xIndex = 0; xIndex < dataX_size; ++xIndex) { + double x = dataX[xIndex]; dataZ[yIndex * dataX_size + xIndex] = dataX[xIndex] * dataY[yIndex]; } } @@ -11022,7 +11024,7 @@ void surfacetexture(QChartViewer *viewer, int chartIndex) // Use a DrawArea to load the image DrawArea* d = new DrawArea(); d->load("@/images/maptexture.png"); - d->resize(c->getPlotRegionWidth(), c->getPlotRegionDepth()); + d->resize(240, 210); // Set the DrawArea as a resource c->setResource("texture", d); @@ -12304,6 +12306,11 @@ void treemapcolors(QChartViewer *viewer, int /* chartIndex */) void treemaplayout(QChartViewer *viewer, int chartIndex) { + // Labels for the tree map + const char* energy_types[] = {"Coal", "Oil", "Gas", "Nuclear", "Hydro", "Solar", "Wind", + "Biomass", "Geothermal", "Wave"}; + const int energy_types_size = (int)(sizeof(energy_types)/sizeof(*energy_types)); + // Random data for the tree map RanSeries* r = new RanSeries(3); DoubleArray data = r->getSeries(20, 20, 400); @@ -14163,10 +14170,7 @@ void circularbarmeter2(QChartViewer *viewer, int chartIndex) m->setCap(0, Chart::Transparent); // In this example, the circular bar has 20 segments - int segmentCount = 20; - - // The angular step - double angleStep = 360.0 / segmentCount; + int angleStep = 360 / 20; // The gap between segments is 4.5 degrees double angleGap = 4.5; @@ -14205,39 +14209,28 @@ void circularbarmeter2(QChartViewer *viewer, int chartIndex) stepColorScale_size)); } - // - // Now we draw the segments of the bar meter - // - - // The segment that contains the value - int currentSegment = (int)(angle / angleStep); - - // Segments after the current segment is colored with the blank color - for(int i = currentSegment + 1; i < segmentCount; ++i) { - m->addRingSector(radius, radius - 20, i * angleStep, (i + 1) * angleStep - angleGap, - blankColor); + // Draw the blank part of the circular bar + if (angle < 360) { + // Iterate the segments in the blank part of the circular bar + for(int startAngle = (int)(angle / angleStep) * angleStep; startAngle < 360; startAngle += + angleStep) { + // The first segment may be partially filled + double partialAngle = (startAngle >= angle ? 0 : (angle - startAngle) * (1 - angleGap / + angleStep)); + m->addRingSector(radius, radius - 20, startAngle + partialAngle, startAngle + angleStep + - angleGap, blankColor); } - - // Segments before the current segment is colored with the fill color - for(int i = 0; i < currentSegment; ++i) { - m->addRingSector(radius, radius - 20, i * angleStep, (i + 1) * angleStep - angleGap, - fillColor); } - // Segment that contains the angle will be partially filled and partially blank. We need to - // adjust the angle to compensated for the angle gap. - double adjustedAngle = currentSegment * angleStep + (angle - currentSegment * angleStep) * (1 - - angleGap / angleStep); - - // The blank part of the segment - if ((currentSegment + 1) * angleStep > angle) { - m->addRingSector(radius, radius - 20, adjustedAngle, (currentSegment + 1) * angleStep - - angleGap, blankColor); + // Draw the fill part of the circular bar + if (angle > 0) { + // Iterate the segments in the fill part of the circular bar + for(int startAngle = 0; startAngle < angle; startAngle += angleStep) { + // The last segment may be partially filled + double angleSpan = (angleStep - angleGap) * (angle >= startAngle + angleStep ? 1 : ( + angle - startAngle) / angleStep); + m->addRingSector(radius, radius - 20, startAngle, startAngle + angleSpan, fillColor); } - - // The filled part of the segment. - if (angle > currentSegment * angleStep) { - m->addRingSector(radius, radius - 20, currentSegment * angleStep, adjustedAngle, fillColor); } // Add a label at the center to display the value diff --git a/new_sha/ChartDirector/qtdemo/qtdemo/financedemo.cpp b/old_sha/ChartDirector/qtdemo/qtdemo/financedemo.cpp index 7b8c1f5..b029776 100644 --- a/new_sha/ChartDirector/qtdemo/qtdemo/financedemo.cpp +++ b/old_sha/ChartDirector/qtdemo/qtdemo/financedemo.cpp @@ -315,13 +315,6 @@ void FinanceDemo::onLineEditChanged() int new_avgPeriod2 = m_MovAvg2->text().toInt(); QString tickerKey = m_TickerSymbol->text(); - if (tickerKey.isEmpty()) - { - // Default tickerKey - tickerKey = "ASE"; - m_TickerSymbol->setText(tickerKey); - } - QString compareKey = m_CompareWith->text(); bool needReloadData = (m_tickerKey != tickerKey) || (m_compareKey != compareKey); @@ -367,16 +360,12 @@ void FinanceDemo::loadData(const QString& ticker, const QString& compare) if (m_compareKey != compare) { m_compareKey = compare; - if (m_compareKey.isEmpty()) - m_dailyPrice.compareData.clear(); - else - { + // Simulator to generate realistic random OHLC values FinanceSimulator db2(compare.toUtf8().data(), Chart::chartTime(2010, 1, 1), Chart::chartTime(2020, 12, 31), 86400); m_dailyPrice.compareData = arrayToVector(db2.getCloseData()); } - } // In this example, we will compute the weekly and monthly prices on demand. We just // need to clear the old data here. diff --git a/new_sha/ChartDirector/qtdemo/qtdemo/qchartviewer.cpp b/old_sha/ChartDirector/qtdemo/qtdemo/qchartviewer.cpp index 5736d60..423120f 100644 --- a/new_sha/ChartDirector/qtdemo/qtdemo/qchartviewer.cpp +++ b/old_sha/ChartDirector/qtdemo/qtdemo/qchartviewer.cpp @@ -107,9 +107,9 @@ private: QCursor *hZoomOutCursor; QCursor *hNoZoomCursor; - QCursor &getZoomCursor(QCursor **cache, double scale, int flags) + QCursor &getZoomCursor(QCursor *cache, double scale, int flags) { - if (0 == *cache) + if (0 == cache) { DrawArea d; d.setSize(32, 32, Chart::Transparent); @@ -127,9 +127,9 @@ private: MemBlock m = d.outPNG(); QImage img = QImage::fromData((const uchar*)m.data, m.len); img.setDevicePixelRatio(scale); - *cache = new QCursor(QPixmap::fromImage(img), 15, 15); + cache = new QCursor(QPixmap::fromImage(img), 15, 15); } - return **cache; + return *cache; } public: @@ -145,15 +145,15 @@ public: } QCursor &getZoomInCursor(double scale) { - return getZoomCursor(&hZoomInCursor, scale, 3); + return getZoomCursor(hZoomInCursor, scale, 3); } QCursor &getZoomOutCursor(double scale) { - return getZoomCursor(&hZoomOutCursor, scale, 1); + return getZoomCursor(hZoomOutCursor, scale, 1); } QCursor &getNoZoomCursor(double scale) { - return getZoomCursor(&hNoZoomCursor, scale, 0); + return getZoomCursor(hNoZoomCursor, scale, 0); } } cursorManager; ``` * REGRESSION: ccfits:arm64-windows. If expected, add ccfits:arm64-windows=fail to .\scripts\ci.baseline.txt. REGRESSION: ccfits:x64-linux. If expected, add ccfits:x64-linux=fail to .\scripts\ci.baseline.txt. REGRESSION: ccfits:x64-osx. If expected, add ccfits:x64-osx=fail to .\scripts\ci.baseline.txt. REGRESSION: ccfits:x64-windows-static-md. If expected, add ccfits:x64-windows-static-md=fail to .\scripts\ci.baseline.txt. REGRESSION: ccfits:x64-windows-static. If expected, add ccfits:x64-windows-static=fail to .\scripts\ci.baseline.txt. REGRESSION: ccfits:x64-windows. If expected, add ccfits:x64-windows=fail to .\scripts\ci.baseline.txt. REGRESSION: ccfits:x86-windows. If expected, add ccfits:x86-windows=fail to .\scripts\ci.baseline.txt. >[DEBUG] popen(curl --fail -L https://heasarc.gsfc.nasa.gov/fitsio/ccfits/CCfits-2.5.tar.gz --create-dirs --output /Users/bion/vcpkg/downloads/CCfits-2.5.tar.gz.15183.part 2>&1) >[DEBUG] cmd_execute_and_stream_data() returned 5632 after 415053 us >Error: Failed to download from mirror set: >https://heasarc.gsfc.nasa.gov/fitsio/ccfits/CCfits-2.5.tar.gz: % Total % Received % Xferd Average Speed Time Time Time Current > Dload Upload Total Spent Left Speed > 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 >curl: (22) The requested URL returned error: 404 Not Found Fixed link and modernized portfile. * REGRESSION: geogram:x64-linux. If expected, add geogram:x64-linux=fail to .\scripts\ci.baseline.txt. REGRESSION: geogram:x64-osx. If expected, add geogram:x64-osx=fail to .\scripts\ci.baseline.txt. REGRESSION: geogram:x64-windows-static-md. If expected, add geogram:x64-windows-static-md=fail to .\scripts\ci.baseline.txt. REGRESSION: geogram:x64-windows-static. If expected, add geogram:x64-windows-static=fail to .\scripts\ci.baseline.txt. REGRESSION: geogram:x64-windows. If expected, add geogram:x64-windows=fail to .\scripts\ci.baseline.txt. REGRESSION: geogram:x86-windows. If expected, add geogram:x86-windows=fail to .\scripts\ci.baseline.txt. Upstream is gone: https://gforge.inria.fr/frs/download.php/file/38314/geogram_1.7.5.tar.gz: % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 curl: (60) SSL: no alternative certificate subject name matches target host name 'gforge.inria.fr' More details here: https://curl.haxx.se/docs/sslcerts.html curl failed to verify the legitimacy of the server and therefore could not establish a secure connection to it. To learn more about this situation and how to fix it, please visit the web page mentioned above. [DEBUG] /agent/_work/1/s/buildtrees/_vcpkg/src/vcpkg-tool-2021-09-10/src/vcpkg/base/downloads.cpp(626) [DEBUG] Exiting after 583.7 ms us (582562 us) CMake Error at scripts/cmake/vcpkg_download_distfile.cmake:83 (message): Failed to download file with error: 1 If you use a proxy, please check your proxy setting. Possible causes are: 1. You are actually using an HTTP proxy, but setting HTTPS_PROXY variable to `https://address:port`. This is not correct, because `https://` prefix claims the proxy is an HTTPS proxy, while your proxy (v2ray, shadowsocksr , etc..) is an HTTP proxy. Try setting `http://address:port` to both HTTP_PROXY and HTTPS_PROXY instead. 2. You are using Fiddler. Currently a bug (microsoft/vcpkg#17752) will set HTTPS_PROXY to `https://fiddler_address:port` which lead to problem 1 above. Workaround is open Windows 10 Settings App, and search for Proxy Configuration page, Change `http=address:port;https=address:port` to `address`, and fill the port number. 3. You proxy's remote server is out of service. In future vcpkg releases, if you are using Windows, you no longer need to set HTTP(S)_PROXY environment variables. Vcpkg will simply apply Windows IE Proxy Settings set by your proxy software. See (microsoft/vcpkg-tool#49) and (microsoft/vcpkg-tool#77) Otherwise, please submit an issue at https://github.com/Microsoft/vcpkg/issues Call Stack (most recent call first): scripts/cmake/vcpkg_download_distfile.cmake:274 (z_vcpkg_download_distfile_show_proxy_and_fail) ports/geogram/portfile.cmake:4 (vcpkg_download_distfile) scripts/ports.cmake:141 (include) Skipped in ci.baseline.txt.
It is common in China or any other countries and regions that needs an proxy software (v2ray, shadowsocks, etc.) for faster connection speed. These softwares typically sets Windows IE Proxy Settings, but not setting environment variables HTTP(S)_PROXY.
I found out that when vcpkg starts an external application (like cmake), it builds an environment variable list. We can use this design to make life easier. Because it is annoying to manually set variables in CLI, or open Advanced Computer Settings and set environment variables there. When using vcpkg in Visual Studio, we even need to restart VS to make the proxy variables take effects. It is also not a good way to just leave HTTP(S)_PROXY in the Windows environment variables list, because it may cause unintended behaviour, and sometimes we do not want to use a proxy at all.
As mentioned in #48, vcpkg wants an coherence design about using proxy that only detects HTTPS_PROXY. Thats reasonable because many external applications vcpkg uses (cmake, etc..) detects HTTP(S)_PROXY. But why not make life easier? We can do better than that and still follow this design.
By reading IE Proxy Settings manually, and sets HTTP(S)_PROXY in the environment variable list building process, this will make all external applications happy.
Then what's left is vcpkg itself. I found two places that use proxy.
This small application also tried to detect HTTPS_PROXY, we can add these code to detect IE Proxy Settings either.
This code uses deprecated API
IsWindows8Point1OrGreater
andIsWindows7OrGreater
to determine whether to use IE Proxy Settings. This have two errors.So I make two changes to that file.
WINHTTP_ACCESS_TYPE_NO_PROXY
to prevent WPAD use. (Provide better experience to Windows proxy users. #48)IsWindows8Point1OrGreater
andIsWindows7OrGreater
. Currently if there's no HTTPS_PROXY variable detected, it will detect IE Proxy Settings.I think these changes will make vcpkg much easier to use, and also keeps the vcpkg's design language.
I have no idea why Checks failed at 'Create Diff' too.Run 'format' target before commit!